{"version":3,"file":"scripts/menubuilder.620c09ee.js","mappings":"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","sources":["webpack://OAJ/webpack/universalModuleDefinition","webpack://OAJ/webpack/bootstrap","webpack://OAJ/./ui-development/js/menu-builder.js","webpack://OAJ/webpack/runtime/define property getters","webpack://OAJ/webpack/runtime/hasOwnProperty shorthand","webpack://OAJ/webpack/runtime/make namespace object"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"menubuilder\"] = factory();\n\telse\n\t\troot[\"OAJ\"] = root[\"OAJ\"] || {}, root[\"OAJ\"][\"menubuilder\"] = factory();\n})(self, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","/**\r\n * Functions for sub navigation\r\n **/\r\n\r\nvar lang;\r\nvar openText;\r\nvar backText;\r\nvar navigationSections = [];\r\nvar timeoutDefault = 300; // do not set under 300\r\n\r\nvar loadingSpinner = document.createElement('div')\r\nloadingSpinner.classList.add('spinner-border', 'text-primary')\r\nloadingSpinner.setAttribute('role', 'status')\r\nloadingSpinner.innerHTML = 'Loading...'\r\n\r\ndocument.addEventListener('DOMContentLoaded', function (event) {\r\n const submenuCollapsibles = document.querySelectorAll('.main-menu-item .submenu');\r\n\r\n submenuCollapsibles.forEach((menu) => {\r\n menu.addEventListener('show.bs.collapse', event => {\r\n document.body.classList.add('submenu-open')\r\n updateCommonVariables(event.target);\r\n getNavigation(event.target, false)\r\n })\r\n\r\n menu.addEventListener('hidden.bs.collapse', event => {\r\n if (document.querySelectorAll('.submenu.show, .submenu.collapsing').length === 0) {\r\n document.body.classList.remove('submenu-open')\r\n }\r\n\r\n event.target.querySelectorAll('.submenu-container').forEach((el) => el.remove())\r\n })\r\n })\r\n\r\n document.addEventListener('click', (e) => {\r\n if (!document.body.classList.contains('mobile-nav-open') && !e.target.classList.contains('submenu-element')) {\r\n closeCollapses()\r\n }\r\n })\r\n\r\n document.addEventListener('keyup', handleEscape);\r\n})\r\n\r\n/**\r\n * Close collapses\r\n */\r\n\r\nexport function closeCollapses() {\r\n var mainmenuList = document.querySelector('#main-menu-list')\r\n mainmenuList.querySelectorAll('.collapse').forEach((c) => { c.classList.remove('show') })\r\n mainmenuList.querySelectorAll('.main-menu-item .menu-toggle').forEach((c) => { c.classList.add('collapsed') })\r\n document.querySelectorAll('.submenu-wrapper div').forEach((el) => el.remove())\r\n document.body.classList.remove('submenu-open')\r\n} \r\n\r\nvar handleEscape = (event) => {\r\n var key = event.which || event.keyCode;\r\n if (!isMobile() && key === 27 && document.body.classList.contains('submenu-open')) {\r\n closeCollapses()\r\n event.stopPropagation()\r\n }\r\n};\r\n\r\n/**\r\n * Sets Common used API variables.\r\n * \r\n * @param {Element} el \r\n */ \r\nfunction updateCommonVariables(el) {\r\n if (!lang) {\r\n lang = el.getAttribute('data-oaj-lang')\r\n }\r\n\r\n if (!openText) {\r\n openText = el.getAttribute('data-oaj-open-text')\r\n }\r\n\r\n if (!backText) {\r\n backText = el.getAttribute('data-oaj-nav-back')\r\n }\r\n}\r\n\r\n/**\r\n * Helper to find out if mobile layout\r\n */\r\n\r\nfunction isMobile() {\r\n return window.innerWidth < 992\r\n}\r\n\r\n/**\r\n * Gets more levels after first one is opened.\r\n * \r\n * @param {Element} el \r\n */ \r\nfunction getmore(el) {\r\n getNavigation(el.target, true)\r\n}\r\n\r\n/**\r\n * Creates navigation li items\r\n * \r\n * @param {NavItem} item \r\n */\r\nfunction createNavItem(item) {\r\n var li = document.createElement('li')\r\n li.classList.add('mb-4', 'd-flex', 'align-items-center', 'justify-content-between', 'submenu-element')\r\n\r\n var a = document.createElement('a')\r\n a.href = item.pageUrl\r\n a.classList.add('submenu-item', 'text-md', 'submenu-element')\r\n a.innerText = item.pageTitle\r\n a.setAttribute('data-oaj-pageid', item.pageId)\r\n li.append(a)\r\n\r\n if (item.hasChildren) {\r\n var loadMoreBtn = document.createElement('button')\r\n loadMoreBtn.classList.add('border-0', 'bg-transparent', 'menu-toggle', 'submenu-element')\r\n loadMoreBtn.onclick = getmore\r\n loadMoreBtn.setAttribute('aria-label', openText.replace('{0}', item.pageTitle))\r\n loadMoreBtn.setAttribute('data-oaj-pageid', item.pageId)\r\n li.append(loadMoreBtn)\r\n }\r\n\r\n return li\r\n}\r\n\r\n/**\r\n * Removes current additional layer\r\n * \r\n * @param {Element} el \r\n */\r\nfunction removeLayer(el) {\r\n\r\n var layerToRemove = el.target.closest('.additional')\r\n \r\n if (isMobile() && !layerToRemove) {\r\n layerToRemove = el.target.closest('.submenu-container')\r\n }\r\n layerToRemove.classList.add('right')\r\n\r\n var layerToShow = layerToRemove.previousElementSibling\r\n\r\n if (layerToShow) {\r\n layerToShow.classList.remove('d-none')\r\n setTimeout(() => {\r\n layerToShow.classList.remove('left')\r\n layerToShow.setAttribute('aria-hidden', 'false')\r\n }, timeoutDefault - 250)\r\n \r\n\r\n setTimeout(() => {\r\n layerToShow.querySelector('.title').focus()\r\n }, timeoutDefault + 150)\r\n\r\n } else {\r\n closeCollapses()\r\n }\r\n\r\n setTimeout(() => { layerToRemove.remove() }, timeoutDefault + 50) \r\n}\r\n\r\n/**\r\n * Creates back button to additional layers \r\n */\r\nfunction createBackBtn() {\r\n\r\n var btn = document.createElement('button')\r\n btn.classList.add('back-btn', 'submenu-element')\r\n btn.onclick = removeLayer\r\n btn.innerText = backText\r\n\r\n return btn\r\n}\r\n\r\n/**\r\n * Gets target element where to inject navigation\r\n * \r\n * @param {Element} el \r\n */\r\nfunction getTarget(el) {\r\n var targetElement\r\n\r\n if (!el.classList.contains('submenu')) {\r\n targetElement = el.closest('.submenu-wrapper')\r\n } else {\r\n targetElement = el.querySelector('.submenu-wrapper')\r\n }\r\n\r\n return targetElement\r\n}\r\n\r\n/**\r\n * Gets section heading text\r\n * \r\n * @param {Element} el \r\n */\r\nfunction getSectionHeadingText(el) {\r\n\r\n var heading = document.createElement('div')\r\n heading.classList.add('title')\r\n heading.setAttribute('tabindex', '-1')\r\n\r\n var text = el.getAttribute('data-oaj-section-name')\r\n\r\n if (!text) {\r\n text = el.previousSibling.innerText\r\n }\r\n\r\n heading.innerText = text \r\n\r\n return heading\r\n}\r\n\r\n/**\r\n * Creates Navigation UL element with LIs\r\n * \r\n * @param {Element} target Element where to inject list \r\n * @param items List from API\r\n * @param {Element} el calling element\r\n * @param {boolean} isAdditionalLayer Is additional ul after first ul\r\n */ \r\nfunction createNavigationList(targetElement, items, el, isAdditionalLayer) {\r\n\r\n if (!el.classList.contains('submenu')) {\r\n targetElement = el.closest('.submenu-wrapper')\r\n } else {\r\n targetElement = el.querySelector('.submenu-wrapper')\r\n }\r\n\r\n var div = document.createElement('div')\r\n div.classList.add('submenu-container', 'submenu-element', 'px-5', 'px-lg-0')\r\n\r\n var ul = document.createElement('ul')\r\n ul.classList.add('list-style-none', 'ps-0', 'submenu-element')\r\n\r\n items.forEach((item) => {\r\n ul.append(createNavItem(item))\r\n })\r\n\r\n div.append(createBackBtn())\r\n div.append(getSectionHeadingText(el))\r\n\r\n if (isAdditionalLayer || isMobile()) {\r\n div.classList.add('additional')\r\n div.classList.add('right');\r\n targetElement.querySelectorAll('div:not(.left):not(.title)').forEach(el => {\r\n el.classList.add('left')\r\n el.setAttribute('aria-hidden', 'true')\r\n })\r\n }\r\n\r\n div.append(ul)\r\n\r\n var spinner = targetElement.querySelector('.spinner-border')\r\n if (spinner) spinner.remove()\r\n\r\n targetElement.append(div)\r\n\r\n setTimeout(() => {\r\n div.classList.remove('right')\r\n }, timeoutDefault - 200)\r\n\r\n setTimeout(() => {\r\n targetElement.querySelector('.submenu-container:not(.left) .title').focus()\r\n targetElement.querySelectorAll('.submenu-container.left').forEach(el => {\r\n el.classList.add('d-none')\r\n })\r\n }, timeoutDefault + 100)\r\n}\r\n\r\n/**\r\n * Gets Navigation using API\r\n * \r\n * @param {Element} el Can be button or bs collapsible element.\r\n * @param {boolean} isAdditionalLayer Is additional ul after first ul.\r\n */\r\nfunction getNavigation(el, isAdditionalLayer) {\r\n var pageid = el.getAttribute('data-oaj-pageid')\r\n var itemList = navigationSections.find((i) => i.id === pageid)\r\n var targetElement = getTarget(el)\r\n\r\n if (itemList?.items) {\r\n createNavigationList(targetElement, itemList.items, el, isAdditionalLayer)\r\n } else {\r\n targetElement.append(loadingSpinner)\r\n const request = new Request(`/api/navigation/pages/${pageid}/${lang}`);\r\n\r\n fetch(request)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else {\r\n throw new Error(\"Problem occured when getting navigation!\");\r\n }\r\n })\r\n .then((response) => {\r\n navigationSections.push({ id: pageid, items: response })\r\n createNavigationList(targetElement, response, el, isAdditionalLayer)\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n }\r\n}","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["root","factory","exports","module","define","amd","self","lang","openText","backText","__webpack_require__","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","navigationSections","timeoutDefault","loadingSpinner","document","createElement","closeCollapses","mainmenuList","querySelector","querySelectorAll","forEach","c","classList","remove","add","el","body","setAttribute","innerHTML","addEventListener","event","menu","getAttribute","updateCommonVariables","target","getNavigation","length","e","contains","handleEscape","which","keyCode","isMobile","stopPropagation","window","innerWidth","getmore","removeLayer","layerToRemove","closest","layerToShow","previousElementSibling","setTimeout","focus","createNavigationList","targetElement","items","isAdditionalLayer","div","btn","ul","item","append","li","a","href","pageUrl","innerText","pageTitle","pageId","hasChildren","loadMoreBtn","onclick","replace","createNavItem","heading","text","previousSibling","getSectionHeadingText","spinner","pageid","itemList","find","i","id","getTarget","request","Request","concat","fetch","then","response","status","json","Error","push","error","console"],"sourceRoot":""}