{"version":3,"file":"faqnavbar.min.js","sources":["https:\/\/kundenportal.comm-unity.at\/local\/wb_faq\/amd\/src\/faqnavbar.js"],"sourcesContent":["\/\/ This file is part of Moodle - http:\/\/moodle.org\/\n\/\/\n\/\/ Moodle is free software: you can redistribute it and\/or modify\n\/\/ it under the terms of the GNU General Public License as published by\n\/\/ the Free Software Foundation, either version 3 of the License, or\n\/\/ (at your option) any later version.\n\/\/\n\/\/ Moodle is distributed in the hope that it will be useful,\n\/\/ but WITHOUT ANY WARRANTY; without even the implied warranty of\n\/\/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\/\/ GNU General Public License for more details.\n\/\/\n\/\/ You should have received a copy of the GNU General Public License\n\/\/ along with Moodle. If not, see .\n\n\/*\n * @package local_wunderbyte_table\n * @copyright Wunderbyte GmbH \n * @license http:\/\/www.gnu.org\/copyleft\/gpl.html GNU GPL v3 or later\n *\/\n\n\/\/\nimport {get_strings as getstrings} from \"core\/str\";\nimport Ajax from \"core\/ajax\";\nimport Templates from \"core\/templates\";\nimport MyModal from 'local_wb_faq\/custommodal';\nimport ModalFactory from 'core\/modal_factory';\n\/\/ Import ModalEvents from 'core\/modal_events'.\n\nvar modal = null;\nvar counterlimit = 0; \/\/ Can be overridden.\nvar counter = 0;\n\nvar SELECTORS = {\n TABS: 'faq-page-navbar-tab a.nav-link',\n FAQTAB: '#faq-nav-pillsone-tab',\n SUPPORTMESSAGEBUTTON: '[data-id=\"supportmessage-form\"]',\n THANKYOUTAB: '#faq-nav-pillsthree-tab',\n};\n\n\/**\n * Gets called from mustache template.\n *\n *\/\nexport function init() {\n\n addEvents();\n addLinks();\n}\n\n\/**\n * Function to increase counter. Also enables message tab, if counter is high enough.\n *\/\n\/**\n *\n * @param {boolean} max\n *\/\nexport function increaseCounter(max = false) {\n\n \/\/ If max is true, we enable message.\n if (max) {\n counter = counterlimit;\n }\n\n counter++;\n\n if (counter >= counterlimit) {\n const tabs = document.querySelectorAll(SELECTORS.SUPPORTMESSAGEBUTTON);\n\n tabs.forEach(tab => {\n tab.classList.remove('hidden');\n });\n }\n}\n\n\/**\n * Adds Evente to menu button\n *\/\nasync function addEvents() {\n let button = document.querySelector(\"[data-id='wb-faq-navbar-open-modal']\");\n\n if (!button) {\n\n return;\n }\n\n if (button.initialized) {\n return;\n }\n\n button.initialized = true;\n\n button.addEventListener('click', async () => {\n\n Ajax.call([\n {\n methodname: \"local_wb_faq_get_faq_data\",\n args: {},\n done: async function(faqdata) {\n\n if (button.dataset.supportthankyou.length > 0) {\n faqdata.thankyou = button.dataset.supportthankyou;\n }\n const data = await returnDataForModal(faqdata);\n\n if (!modal) {\n createModal(data, modal);\n } else {\n modal.show();\n }\n\n },\n fail: function(ex) {\n \/\/ eslint-disable-next-line no-console\n console.log(ex);\n },\n },\n ]);\n });\n}\n\n\/**\n * Function to create modal from data.\n * @param {*} data\n *\/\nasync function createModal(data) {\n\n modal = await ModalFactory.create({\n type: MyModal.TYPE,\n large: true,\n body: Templates.render('local_wb_faq\/navbar\/body', data),\n footer: '',\n }).then(modal => {\n modal.setRemoveOnClose(false);\n\n return modal;\n }).catch(e => {\n \/\/ eslint-disable-next-line no-console\n console.error(e);\n });\n\n modal.show();\n}\n\n\/**\n * Function do create the data structure for the modal.\n * @param {*} faqdata\n * @returns {object}\n *\/\nasync function returnDataForModal(faqdata) {\n\n const loadstrings = [\n {\n key: 'searchfaqs',\n component: 'local_wb_faq',\n },\n ];\n\n const strings = await getstrings(loadstrings);\n\n let data = {\n tabs: [\n {\n \"name\": strings[0],\n \"id\": 'one',\n \"active\": true,\n \"success\": true\n }\n ],\n body: {\n thankyou: faqdata.thankyou ?? false\n }\n };\n\n data.json = JSON.parse(faqdata.json);\n data.root = faqdata.root;\n data.uid = faqdata.uid;\n data.canedit = false;\n data.allowedit = false;\n\n return data;\n}\n\n\/**\n * Function to add links.\n *\/\nfunction addLinks() {\n\n \/\/ First, fetch the url from the corresponding but hidden link in the navbar.\n\n const ticketbuttons = document.querySelectorAll('a[data-id=\"ticket-aufgeben\"]');\n\n if (ticketbuttons) {\n ticketbuttons.forEach(button => {\n button.addEventListener('click', () => {\n document.querySelector('[data-id=\"wb-faq-navbar-open-modal\"]').click();\n\n });\n });\n }\n\n const vertriebslink = document.querySelector('[data-id=\"link-vertrieb\"]');\n const vertriebbuttons = document.querySelectorAll('a[data-id=\"anfrage-vertrieb\"]');\n if (vertriebbuttons) {\n vertriebbuttons.forEach(button => {\n button.setAttribute('href', vertriebslink);\n button.setAttribute('target', \"_blank\");\n });\n }\n\n const stoerunglink = document.querySelector('[data-id=\"link-stoerung\"]');\n const stoerungsbuttons = document.querySelectorAll('a[data-id=\"stoerung-melden\"]');\n if (stoerungsbuttons) {\n stoerungsbuttons.forEach(button => {\n button.setAttribute('href', stoerunglink);\n button.setAttribute('target', \"_blank\");\n });\n }\n\n const meinetickets = document.querySelector('[data-id=\"link-meine-tickets\"]');\n const meineticketsbuttons = document.querySelectorAll('a[data-id=\"meine-tickets\"]');\n if (meineticketsbuttons) {\n meineticketsbuttons.forEach(button => {\n button.setAttribute('href', meinetickets);\n button.setAttribute('target', \"_blank\");\n });\n }\n\n const weiterbildungslink = document.querySelector('[data-id=\"link-weiterbildung\"]');\n const weiterbildungsbuttons = document.querySelectorAll('a[data-id=\"weiterbildung\"]');\n if (weiterbildungsbuttons) {\n weiterbildungsbuttons.forEach(button => {\n button.setAttribute('href', weiterbildungslink);\n button.setAttribute('target', \"_blank\");\n });\n }\n\n}\n"],"names":["max","counter","document","querySelectorAll","SELECTORS","forEach","tab","classList","remove","button","querySelector","initialized","addEventListener","async","call","methodname","args","done","faqdata","dataset","supportthankyou","length","thankyou","data","loadstrings","key","component","tabs","body","json","JSON","parse","root","uid","canedit","allowedit","returnDataForModal","modal","show","ModalFactory","create","type","MyModal","TYPE","large","Templates","render","footer","then","setRemoveOnClose","catch","e","console","error","createModal","fail","ex","log","addEvents","ticketbuttons","click","vertriebslink","vertriebbuttons","setAttribute","stoerunglink","stoerungsbuttons","meinetickets","meineticketsbuttons","weiterbildungslink","weiterbildungsbuttons","addLinks"],"mappings":";;;;;qGAyDgCA,4DAG1BA,MACFC,QA\/Be,QAkCjBA,SAlCiB,EAoCY,CACdC,SAASC,iBAAiBC,gCAElCC,SAAQC,MACXA,IAAIC,UAAUC,OAAO,8DASrBC,OAASP,SAASQ,cAAc,4CAE\/BD,iBAKDA,OAAOE,mBAIXF,OAAOE,aAAc,EAErBF,OAAOG,iBAAiB,SAASC,wBAE1BC,KAAK,CACR,CACEC,WAAY,4BACZC,KAAM,GACNC,KAAMJ,eAAeK,SAEfT,OAAOU,QAAQC,gBAAgBC,OAAS,IAC1CH,QAAQI,SAAWb,OAAOU,QAAQC,uBAE9BG,0BA8CkBL,eAE1BM,YAAc,CAClB,CACEC,IAAK,aACLC,UAAW,qBAMXH,KAAO,CACTI,KAAM,CACJ,aAJkB,oBAAWH,cAKT,MACV,cACI,WACC,IAGjBI,KAAM,CACJN,SAAUJ,QAAQI,WAAY,WAIlCC,KAAKM,KAAOC,KAAKC,MAAMb,QAAQW,MAC\/BN,KAAKS,KAAOd,QAAQc,KACpBT,KAAKU,IAAMf,QAAQe,IACnBV,KAAKW,SAAU,EACfX,KAAKY,WAAY,EAEVZ,KA7EoBa,CAAmBlB,SAEjCmB,MAGHA,MAAMC,sBAiBSf,OAEzBc,YAAcE,uBAAaC,OAAO,CAChCC,KAAMC,qBAAQC,KACdC,OAAO,EACPhB,KAAMiB,mBAAUC,OAAO,2BAA4BvB,MACnDwB,OAAQ,KACPC,MAAKX,QACNA,MAAMY,kBAAiB,GAEhBZ,SACNa,OAAMC,IAEPC,QAAQC,MAAMF,OAGVb,OAnCIgB,CAAY\/B,OAMhBgC,KAAM,SAASC,IAEbJ,QAAQK,IAAID,YApEpBE,oBAgJMC,cAAgBzD,SAASC,iBAAiB,gCAE5CwD,eACFA,cAActD,SAAQI,SACpBA,OAAOG,iBAAiB,SAAS,KAC\/BV,SAASQ,cAAc,wCAAwCkD,oBAM\/DC,cAAgB3D,SAASQ,cAAc,6BACvCoD,gBAAkB5D,SAASC,iBAAiB,iCAC9C2D,iBACFA,gBAAgBzD,SAAQI,SACtBA,OAAOsD,aAAa,OAAQF,eAC5BpD,OAAOsD,aAAa,SAAU,mBAI5BC,aAAe9D,SAASQ,cAAc,6BACtCuD,iBAAmB\/D,SAASC,iBAAiB,gCAC\/C8D,kBACFA,iBAAiB5D,SAAQI,SACvBA,OAAOsD,aAAa,OAAQC,cAC5BvD,OAAOsD,aAAa,SAAU,mBAI5BG,aAAehE,SAASQ,cAAc,kCACtCyD,oBAAsBjE,SAASC,iBAAiB,8BAClDgE,qBACFA,oBAAoB9D,SAAQI,SAC1BA,OAAOsD,aAAa,OAAQG,cAC5BzD,OAAOsD,aAAa,SAAU,mBAI5BK,mBAAqBlE,SAASQ,cAAc,kCAC5C2D,sBAAwBnE,SAASC,iBAAiB,8BACpDkE,uBACFA,sBAAsBhE,SAAQI,SAC5BA,OAAOsD,aAAa,OAAQK,oBAC5B3D,OAAOsD,aAAa,SAAU,aA1LlCO,kMAlBEjC,MAAQ,KAERpC,QAAU,EAEVG,+BAGoB"}