Open main menu

Changes

MediaWiki:Common.js

2,003 bytes removed, 20:28, 8 March 2021
no edit summary
"use strict";
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
// =====================JAVASCRIPT AREA=====================
// configuration
var let colorForSpecialElements = '#933221'; // can be one of: <ro> <hu> <en>
var let configuredFor = 'ro';var let roNWTURL = 'http://localhost:3001/ro/';var let huNWTURL = 'http://localhost:3001/hu/';var let enNWTURL = 'http://localhost:3001/en/'; // DOM side effects
var verses = Array.prototype.slice.call(document.getElementsByClassName("bible-verse"), 0);
verses.forEach(function (verse) => { verse.addEventListener("mouseover", function () => {
verse.style.cursor = "pointer";
});
});
verses.forEach(function (verse) => { verse.addEventListener("click", /*#__PURE__*/_asyncToGenerator( regeneratorRuntime.mark(function _callee* () { var newLis; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: toggleState(verse);
if (!areVersesAlreadyFetched(verse)) { _context.next = 5 return; break; }else {  return _context.abrupt("return");  case 5: verse.setAttribute('loaded', true); _context.next let newLis = 8; return yield createDinamicLis(verse);  case 8: newLis = _context.sent; clearAllChildrenAndAddElementsToParrent(verse.children[2].children[1], newLis);  case 10: case "end": return _context.stop(); } } }, _callee); })));
});
function clearAllChildrenAndAddElementsToParrent(parrent, children) {
parrent.innerHTML = '';
children.forEach(function (child) { return => parrent.appendChild(child); });
}
function _createDinamicLis() {
_createDinamicLis = _asyncToGenerator( /function*#__PURE__*/regeneratorRuntime.mark(function _callee2(verse) { var parsedVerse, ulElement; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: let parsedVerse = verse.children[0].innerText; //let parsedVerse = verse.getAttribute("verse")
let ulElement = verse.children[2].children[1]; _context2.next fetchedVerses = 4; return yield fetchNWTVerses(parseVerseAttribute(parsedVerse));  case 4: fetchedVerses = _context2.sent; return _context2.abrupt("return", createLiElements(fetchedVerses, ulElement));  case 6: case "end": return _context2.stop(); } } }, _callee2); }));
return _createDinamicLis.apply(this, arguments);
}
function createLiElements(fetchedVerses, ul) {
var let result = []; fetchedVerses.forEach(function (versesGroup) => { var let li = document.createElement('li');
li.style.color = colorForSpecialElements;
li.style.fontSize = '1.5em';
li.innerHTML = versesGroup.book + ' ' + versesGroup.chapter;
result.push(li);
versesGroup.verseElements.forEach(function (verse) => { var let li = document.createElement('li'); var let hr = document.createElement('hr');
hr.style.borderStyle = 'ridge';
var let liContent = ""; verse.forEach(function (el) => {
liContent = liContent + el + '<br>';
});
function toggleState(verse) {
var let verseDisplay = verse.getElementsByClassName("translations-container")[0].style.display;
hideAllVerses(verses);
verse.getElementsByClassName("translations-container")[0].style.display = renderState(verseDisplay, "block");
function hideAllVerses(elements) {
elements.forEach(function (element) => {
element.getElementsByClassName("translations-container")[0].style.display = "none";
});
function getVersesFromMainBlock(mainBlock) {
var let result = [];
changeNumberOfTheFirstVerseWithNumberOne(mainBlock);
Array.from(mainBlock.children).forEach(function (verse) => { var let verseContent = [];
if (verse.classList.contains('verse')) {
Array.from(verse.children).forEach(function (child) => {
if (child.innerText != '') {
verseContent.push(stripSymbols(['+', '*'], child.innerText));
function changeColorOfVerseNumber(verseContent) {
var let re = new RegExp(/^\d+|\d+\b|\d+(?=\w)/g); //starts with digit, one or more
var let m = re.exec(verseContent[0]);
if (m != null) {
function changeNumberOfTheFirstVerseWithNumberOne(mainBlock) {
var let re = new RegExp(/^\d+|\d+\b|\d+(?=\w)/g); //starts with digit, one or more
var let m = re.exec(mainBlock.getElementsByClassName('verse')[0].children[0].innerText);
mainBlock.getElementsByClassName('verse')[0].children[0].innerText = '&nbsp' + mainBlock.getElementsByClassName('verse')[0].children[0].innerText.replace(m[0], 1);
}
function getSpecificVerses(versesList, arrayOfSpecificVerses) {
var let result = []; arrayOfSpecificVerses.forEach(function (verseNumber) => {
result.push(versesList[verseNumber - 1]);
});
function parseVerseAttribute(verseString) {
// 21:1;22:2
var let arrayOfGroupsDelimiter = ';'; // 21:1-7,9
var let versesGroupsDelimiter = ','; var let book = verseString.replace(/ .*/, ''); var let stringWithoutBook = verseString.replace(book, ''); var let result = {
book: book,
groups: processChaptersAndVerses(stringWithoutBook)
function processChaptersAndVerses(stringWithoutBook) {
var let groups = stringWithoutBook.split(arrayOfGroupsDelimiter); var let result = []; groups.forEach(function (group) => {
result.push(processGroup(group));
});
if (verseString.includes(";")) {
var _book let book = verseString.replace(/ .*/, '');  var _stringWithoutBook let stringWithoutBook = verseString.replace(_bookbook, '');  var let groups = _stringWithoutBookstringWithoutBook.split(';');  var let parsedGroups = []; groups.forEach(function (group) => {
parsedGroups.push(createObjectForStringGroup(group));
});
function processGroup(group) {
var let chapter = group.split(':')[0]; var let verses = group.split(':')[1];
return {
chapter: parseInt(chapter),
function processVersesGroups(verses) {
var let versesGroups = verses.split(','); var let result = []; versesGroups.forEach(function (verseGroup) => {
if (isRangeVerseGroup(verseGroup)) {
Array.prototype.push.apply(result, processVerseGroup(verseGroup));
if (isRangeVerseGroup(group)) {
var let parsed = group.split('-'); var _result let result = [];
for (var let i = Number(parsed[0]); i <= Number(parsed[1]); i++) { _resultresult.push(Number(i));
}
return _resultresult;
}
}
function createObjectForStringGroup(group) {
var let chapter = Number(group.split(":")[0]); var let verses = group.split(":")[1]; var let parsedVerses = parseVerses(verses);
console.log('');
}
function _fetchNWTVerses() {
_fetchNWTVerses = _asyncToGenerator( /function*#__PURE__*/regeneratorRuntime.mark(function _callee3(verses) { var book; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: // let roBaseURL = 'https://www.jw.org/ro/biblioteca/biblia/nwt/carti/' if (configuredFor === 'ro') { URL = roNWTURL; }
if (configuredFor === 'hu') { URL = huNWTURL; }
if (configuredFor === 'en') { URL = enNWTURL; }
let book = verses.book; return _context3.abrupt("return", new Promise(function (resolve, reject) => { var let result = [];
var _loop for (let i = function _loop(0; i < verses.groups.length; i++) { var let url = URL + book + "/" + verses.groups[i].chapter; fetch(url).then(function (response) { return => response.text(); }).then(function (data) => { var parser = new DOMParser(); var htmlDoc = parser.parseFromString(data, 'text/html'); return htmlDoc; }).then(function (parser) => { var let mainBlock = parser.getElementById('bibleText');
if (verses.groups.length - 1 == i) { result.push({ book: clearDashSimbolFromInputString(book), chapter: verses.groups[i].chapter, verseElements: getSpecificVerses(getVersesFromMainBlock(mainBlock), verses.groups[i].verses) }); resolve(result); } else { result.push({ book: clearDashSimbolFromInputString(book), chapter: verses.groups[i].chapter, verseElements: getSpecificVerses(getVersesFromMainBlock(mainBlock), verses.groups[i].verses) }); } })[".catch"](function (error) => { console.log(error); reject(); }); };  for (var i = 0; i < verses.groups.length; i++) { _loop(i); } }));  case 5: case "end": return _context3.stop(); }
}
}, _callee3); }));
return _fetchNWTVerses.apply(this, arguments);
}
function stripSymbols(symbolsToBeRemoved, verseElement) {
symbolsToBeRemoved.forEach(function (symbol) => {
verseElement = verseElement.replaceAll(symbol, '');
});