Difference between revisions of "MediaWiki:Common.js"
Jump to navigation
Jump to search
Line 1: | Line 1: | ||
$(function () { | $(function () { | ||
+ | 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); } } | ||
+ | |||
+ | function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } | ||
+ | |||
+ | // =====================JAVASCRIPT AREA===================== | ||
+ | // configuration | ||
+ | var colorForSpecialElements = '#933221'; // can be one of: <ro> <hu> <en> | ||
+ | |||
+ | var configuredFor = 'ro'; | ||
+ | var roNWTURL = 'http://localhost:3001/ro/'; | ||
+ | var huNWTURL = 'http://localhost:3001/hu/'; | ||
+ | var 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( /*#__PURE__*/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; | ||
+ | break; | ||
+ | } | ||
+ | |||
+ | return _context.abrupt("return"); | ||
+ | |||
+ | case 5: | ||
+ | verse.setAttribute('loaded', true); | ||
+ | _context.next = 8; | ||
+ | return 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 areVersesAlreadyFetched(verse) { | ||
+ | return verse.getAttribute('loaded') == 'true'; | ||
+ | } | ||
+ | |||
+ | function createDinamicLis(_x) { | ||
+ | return _createDinamicLis.apply(this, arguments); | ||
+ | } | ||
+ | |||
+ | function _createDinamicLis() { | ||
+ | _createDinamicLis = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(verse) { | ||
+ | var parsedVerse, ulElement; | ||
+ | return regeneratorRuntime.wrap(function _callee2$(_context2) { | ||
+ | while (1) { | ||
+ | switch (_context2.prev = _context2.next) { | ||
+ | case 0: | ||
+ | parsedVerse = verse.children[0].innerText; //let parsedVerse = verse.getAttribute("verse") | ||
+ | |||
+ | ulElement = verse.children[2].children[1]; | ||
+ | _context2.next = 4; | ||
+ | return 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 result = []; | ||
+ | fetchedVerses.forEach(function (versesGroup) { | ||
+ | var li = document.createElement('li'); | ||
+ | li.style.color = colorForSpecialElements; | ||
+ | li.style.fontSize = '1.5em'; | ||
+ | li.style.textTransform = 'capitalize'; | ||
+ | li.style.paddingBottom = '0.3em'; | ||
+ | li.innerHTML = versesGroup.book + ' ' + versesGroup.chapter; | ||
+ | result.push(li); | ||
+ | versesGroup.verseElements.forEach(function (verse) { | ||
+ | var li = document.createElement('li'); | ||
+ | var hr = document.createElement('hr'); | ||
+ | hr.style.borderStyle = 'ridge'; | ||
+ | var liContent = ""; | ||
+ | verse.forEach(function (el) { | ||
+ | liContent = liContent + el + '<br>'; | ||
+ | }); | ||
+ | li.innerHTML = liContent; | ||
+ | result.push(li); | ||
+ | result.push(hr); | ||
+ | }); | ||
+ | }); | ||
+ | return result; | ||
+ | } | ||
+ | |||
+ | function toggleState(verse) { | ||
+ | var 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 renderState(currentState, toggledState) { | ||
+ | if (currentState === "none") { | ||
+ | return toggledState; | ||
+ | } | ||
+ | |||
+ | return "none"; | ||
+ | } | ||
+ | |||
+ | function getVersesFromMainBlock(mainBlock) { | ||
+ | var result = []; | ||
+ | changeNumberOfTheFirstVerseWithNumberOne(mainBlock); | ||
+ | Array.from(mainBlock.children).forEach(function (verse) { | ||
+ | var verseContent = []; | ||
+ | |||
+ | if (verse.classList.contains('verse')) { | ||
+ | Array.from(verse.children).forEach(function (child) { | ||
+ | if (child.innerText != '') { | ||
+ | verseContent.push(stripSymbols(['+', '*'], child.innerText)); | ||
+ | } | ||
+ | }); | ||
+ | changeColorOfVerseNumber(verseContent); | ||
+ | result.push(verseContent); | ||
+ | } | ||
+ | }); | ||
+ | return result; | ||
+ | } | ||
+ | |||
+ | function changeColorOfVerseNumber(verseContent) { | ||
+ | var re = new RegExp(/^\d+|\d+\b|\d+(?=\w)/g); //starts with digit, one or more | ||
+ | |||
+ | var m = re.exec(verseContent[0]); | ||
+ | |||
+ | if (m != null) { | ||
+ | verseContent[0] = verseContent[0].replace(m[0], '<strong style="color: ' + colorForSpecialElements + '"' + '>' + m[0] + '</strong>'); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | function changeNumberOfTheFirstVerseWithNumberOne(mainBlock) { | ||
+ | var re = new RegExp(/^\d+|\d+\b|\d+(?=\w)/g); //starts with digit, one or more | ||
+ | |||
+ | var m = re.exec(mainBlock.getElementsByClassName('verse')[0].children[0].innerText); | ||
+ | mainBlock.getElementsByClassName('verse')[0].children[0].innerText = ' ' + mainBlock.getElementsByClassName('verse')[0].children[0].innerText.replace(m[0], 1); | ||
+ | } | ||
+ | |||
+ | function getSpecificVerses(versesList, arrayOfSpecificVerses) { | ||
+ | var result = []; | ||
+ | arrayOfSpecificVerses.forEach(function (verseNumber) { | ||
+ | result.push(versesList[verseNumber - 1]); | ||
+ | }); | ||
+ | return result; | ||
+ | } // Bussiness logic | ||
+ | |||
+ | |||
+ | function parseVerseAttribute(verseString) { | ||
+ | // 21:1;22:2 | ||
+ | var arrayOfGroupsDelimiter = ';'; // 21:1-7,9 | ||
+ | |||
+ | var versesGroupsDelimiter = ','; | ||
+ | var book = verseString.replace(/ .*/, ''); | ||
+ | var stringWithoutBook = verseString.replace(book, ''); | ||
+ | var result = { | ||
+ | book: book, | ||
+ | groups: processChaptersAndVerses(stringWithoutBook) | ||
+ | }; | ||
+ | return result; | ||
+ | |||
+ | function processChaptersAndVerses(stringWithoutBook) { | ||
+ | var groups = stringWithoutBook.split(arrayOfGroupsDelimiter); | ||
+ | var result = []; | ||
+ | groups.forEach(function (group) { | ||
+ | result.push(processGroup(group)); | ||
+ | }); | ||
+ | return result; | ||
+ | } | ||
+ | |||
+ | if (verseString.includes(";")) { | ||
+ | var _book = verseString.replace(/ .*/, ''); | ||
+ | |||
+ | var _stringWithoutBook = verseString.replace(_book, ''); | ||
+ | |||
+ | var groups = _stringWithoutBook.split(';'); | ||
+ | |||
+ | var parsedGroups = []; | ||
+ | groups.forEach(function (group) { | ||
+ | parsedGroups.push(createObjectForStringGroup(group)); | ||
+ | }); | ||
+ | } | ||
+ | |||
+ | function processGroup(group) { | ||
+ | var chapter = group.split(':')[0]; | ||
+ | var verses = group.split(':')[1]; | ||
+ | return { | ||
+ | chapter: parseInt(chapter), | ||
+ | verses: processVersesGroups(verses) | ||
+ | }; | ||
+ | } | ||
+ | |||
+ | function processVersesGroups(verses) { | ||
+ | var versesGroups = verses.split(','); | ||
+ | var result = []; | ||
+ | versesGroups.forEach(function (verseGroup) { | ||
+ | if (isRangeVerseGroup(verseGroup)) { | ||
+ | Array.prototype.push.apply(result, processVerseGroup(verseGroup)); | ||
+ | } else { | ||
+ | result.push(processVerseGroup(verseGroup)); | ||
+ | } | ||
+ | }); | ||
+ | return result; | ||
+ | } | ||
+ | |||
+ | function processVerseGroup(group) { | ||
+ | if (isSimpleVerseGroup(group)) { | ||
+ | return Number(group); | ||
+ | } | ||
+ | |||
+ | if (isMultipleVerseGroup(group)) { | ||
+ | console.log("Range verse group: " + group); | ||
+ | } | ||
+ | |||
+ | if (isRangeVerseGroup(group)) { | ||
+ | var parsed = group.split('-'); | ||
+ | var _result = []; | ||
+ | |||
+ | for (var i = Number(parsed[0]); i <= Number(parsed[1]); i++) { | ||
+ | _result.push(Number(i)); | ||
+ | } | ||
+ | |||
+ | return _result; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | function createObjectForStringGroup(group) { | ||
+ | var chapter = Number(group.split(":")[0]); | ||
+ | var verses = group.split(":")[1]; | ||
+ | var parsedVerses = parseVerses(verses); | ||
+ | console.log(''); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | function fetchNWTVerses(_x2) { | ||
+ | return _fetchNWTVerses.apply(this, arguments); | ||
+ | } | ||
+ | |||
+ | function _fetchNWTVerses() { | ||
+ | _fetchNWTVerses = _asyncToGenerator( /*#__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; | ||
+ | } | ||
+ | |||
+ | book = verses.book; | ||
+ | return _context3.abrupt("return", new Promise(function (resolve, reject) { | ||
+ | var result = []; | ||
+ | |||
+ | var _loop = function _loop(i) { | ||
+ | var 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 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 clearDashSimbolFromInputString(string) { | ||
+ | return string.replaceAll('-', ' '); | ||
+ | } | ||
+ | |||
+ | function stripSymbols(symbolsToBeRemoved, verseElement) { | ||
+ | symbolsToBeRemoved.forEach(function (symbol) { | ||
+ | verseElement = verseElement.replaceAll(symbol, ''); | ||
+ | }); | ||
+ | return verseElement; | ||
+ | } | ||
+ | |||
+ | function isSimpleVerseGroup(group) { | ||
+ | if (Number(group)) { | ||
+ | return true; | ||
+ | } | ||
+ | |||
+ | return false; | ||
+ | } | ||
+ | |||
+ | function isMultipleVerseGroup(group) { | ||
+ | if (group.includes(',')) { | ||
+ | return true; | ||
+ | } | ||
+ | |||
+ | return false; | ||
+ | } | ||
+ | |||
+ | function isRangeVerseGroup(group) { | ||
+ | if (group.includes('-')) { | ||
+ | return true; | ||
+ | } | ||
+ | |||
+ | return false; | ||
+ | } | ||
}()); | }()); |
Revision as of 20:18, 8 March 2021
$(function () {
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); } }
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
// =====================JAVASCRIPT AREA=====================
// configuration
var colorForSpecialElements = '#933221'; // can be one of: <ro> <hu> <en>
var configuredFor = 'ro';
var roNWTURL = 'http://localhost:3001/ro/';
var huNWTURL = 'http://localhost:3001/hu/';
var 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( /*#__PURE__*/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;
break;
}
return _context.abrupt("return");
case 5:
verse.setAttribute('loaded', true);
_context.next = 8;
return 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 areVersesAlreadyFetched(verse) {
return verse.getAttribute('loaded') == 'true';
}
function createDinamicLis(_x) {
return _createDinamicLis.apply(this, arguments);
}
function _createDinamicLis() {
_createDinamicLis = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(verse) {
var parsedVerse, ulElement;
return regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
parsedVerse = verse.children[0].innerText; //let parsedVerse = verse.getAttribute("verse")
ulElement = verse.children[2].children[1];
_context2.next = 4;
return 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 result = [];
fetchedVerses.forEach(function (versesGroup) {
var li = document.createElement('li');
li.style.color = colorForSpecialElements;
li.style.fontSize = '1.5em';
li.style.textTransform = 'capitalize';
li.style.paddingBottom = '0.3em';
li.innerHTML = versesGroup.book + ' ' + versesGroup.chapter;
result.push(li);
versesGroup.verseElements.forEach(function (verse) {
var li = document.createElement('li');
var hr = document.createElement('hr');
hr.style.borderStyle = 'ridge';
var liContent = "";
verse.forEach(function (el) {
liContent = liContent + el + '<br>';
});
li.innerHTML = liContent;
result.push(li);
result.push(hr);
});
});
return result;
}
function toggleState(verse) {
var 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 renderState(currentState, toggledState) {
if (currentState === "none") {
return toggledState;
}
return "none";
}
function getVersesFromMainBlock(mainBlock) {
var result = [];
changeNumberOfTheFirstVerseWithNumberOne(mainBlock);
Array.from(mainBlock.children).forEach(function (verse) {
var verseContent = [];
if (verse.classList.contains('verse')) {
Array.from(verse.children).forEach(function (child) {
if (child.innerText != '') {
verseContent.push(stripSymbols(['+', '*'], child.innerText));
}
});
changeColorOfVerseNumber(verseContent);
result.push(verseContent);
}
});
return result;
}
function changeColorOfVerseNumber(verseContent) {
var re = new RegExp(/^\d+|\d+\b|\d+(?=\w)/g); //starts with digit, one or more
var m = re.exec(verseContent[0]);
if (m != null) {
verseContent[0] = verseContent[0].replace(m[0], '<strong style="color: ' + colorForSpecialElements + '"' + '>' + m[0] + '</strong>');
}
}
function changeNumberOfTheFirstVerseWithNumberOne(mainBlock) {
var re = new RegExp(/^\d+|\d+\b|\d+(?=\w)/g); //starts with digit, one or more
var m = re.exec(mainBlock.getElementsByClassName('verse')[0].children[0].innerText);
mainBlock.getElementsByClassName('verse')[0].children[0].innerText = ' ' + mainBlock.getElementsByClassName('verse')[0].children[0].innerText.replace(m[0], 1);
}
function getSpecificVerses(versesList, arrayOfSpecificVerses) {
var result = [];
arrayOfSpecificVerses.forEach(function (verseNumber) {
result.push(versesList[verseNumber - 1]);
});
return result;
} // Bussiness logic
function parseVerseAttribute(verseString) {
// 21:1;22:2
var arrayOfGroupsDelimiter = ';'; // 21:1-7,9
var versesGroupsDelimiter = ',';
var book = verseString.replace(/ .*/, '');
var stringWithoutBook = verseString.replace(book, '');
var result = {
book: book,
groups: processChaptersAndVerses(stringWithoutBook)
};
return result;
function processChaptersAndVerses(stringWithoutBook) {
var groups = stringWithoutBook.split(arrayOfGroupsDelimiter);
var result = [];
groups.forEach(function (group) {
result.push(processGroup(group));
});
return result;
}
if (verseString.includes(";")) {
var _book = verseString.replace(/ .*/, '');
var _stringWithoutBook = verseString.replace(_book, '');
var groups = _stringWithoutBook.split(';');
var parsedGroups = [];
groups.forEach(function (group) {
parsedGroups.push(createObjectForStringGroup(group));
});
}
function processGroup(group) {
var chapter = group.split(':')[0];
var verses = group.split(':')[1];
return {
chapter: parseInt(chapter),
verses: processVersesGroups(verses)
};
}
function processVersesGroups(verses) {
var versesGroups = verses.split(',');
var result = [];
versesGroups.forEach(function (verseGroup) {
if (isRangeVerseGroup(verseGroup)) {
Array.prototype.push.apply(result, processVerseGroup(verseGroup));
} else {
result.push(processVerseGroup(verseGroup));
}
});
return result;
}
function processVerseGroup(group) {
if (isSimpleVerseGroup(group)) {
return Number(group);
}
if (isMultipleVerseGroup(group)) {
console.log("Range verse group: " + group);
}
if (isRangeVerseGroup(group)) {
var parsed = group.split('-');
var _result = [];
for (var i = Number(parsed[0]); i <= Number(parsed[1]); i++) {
_result.push(Number(i));
}
return _result;
}
}
function createObjectForStringGroup(group) {
var chapter = Number(group.split(":")[0]);
var verses = group.split(":")[1];
var parsedVerses = parseVerses(verses);
console.log('');
}
}
function fetchNWTVerses(_x2) {
return _fetchNWTVerses.apply(this, arguments);
}
function _fetchNWTVerses() {
_fetchNWTVerses = _asyncToGenerator( /*#__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;
}
book = verses.book;
return _context3.abrupt("return", new Promise(function (resolve, reject) {
var result = [];
var _loop = function _loop(i) {
var 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 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 clearDashSimbolFromInputString(string) {
return string.replaceAll('-', ' ');
}
function stripSymbols(symbolsToBeRemoved, verseElement) {
symbolsToBeRemoved.forEach(function (symbol) {
verseElement = verseElement.replaceAll(symbol, '');
});
return verseElement;
}
function isSimpleVerseGroup(group) {
if (Number(group)) {
return true;
}
return false;
}
function isMultipleVerseGroup(group) {
if (group.includes(',')) {
return true;
}
return false;
}
function isRangeVerseGroup(group) {
if (group.includes('-')) {
return true;
}
return false;
}
}());