{"version":3,"file":"js/modals.bundle.js","mappings":"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","sources":["webpack://horizon-mercury/./src/js/libraries/cw-modals.js"],"sourcesContent":["/**\n * Modals Plugin\n * Author Name: Consultwebs\n * Description: This is a plugin to use in our current framework\n */\nimport 'wicg-inert';\n/**\n * IE6 Class to Create Modals\n */\nclass CwModals {\n constructor(DOMclassName, settings = {}) {\n this.bodyElements = document.querySelectorAll('body > *:not(.cw__modal-dialog)');\n this.modalClass = DOMclassName;\n this.settings = settings;\n this.modalTarget = '';\n this.modal = '';\n this.closeButton = '';\n }\n\n /**\n * Function to initialize Modals\n */\n init() {\n if (!this.modalClass) throw new Error('No DOM class element specified!');\n window.addEventListener('click', (event) => {\n if (event.target.matches(this.modalClass)) {\n event.preventDefault();\n this.startModals(event.target);\n this.cwWindowEvs();\n }\n });\n }\n\n startModals(button) {\n this.modalTarget = button.dataset.cwTarget;\n this.modal = document.querySelector(this.modalTarget);\n this.previousActiveElement = document.activeElement;\n this.closeButton = this.modal.querySelector('.close');\n\n if (!this.modal) throw new Error(`Target modal is missing!`);\n this.closeButton.addEventListener('click', this.closeModal.bind(this));\n this.setInertProps(true);\n this.openModal();\n this.modal.addEventListener('click', (e) => {\n const isOutside = !e.target.closest('.inner-modal');\n if (isOutside) this.closeModal();\n });\n }\n\n /**\n * Using Inert library to deactivate DOM elements in the DOM when a Popup\n * Is showed up. This is useful for accessibility\n */\n setInertProps(setTo) {\n this.bodyElements.forEach((child) => {\n child.inert = setTo;\n });\n }\n\n cwWindowEvs() {\n // Handle ESC key\n window.addEventListener('keydown', (e) => {\n if (e.key === 'Escape') {\n if (this.modal.matches('.open')) {\n this.closeModal();\n }\n }\n });\n }\n\n openModal() {\n this.modal.classList.add('open');\n // Checking if this is a video modal\n const iFrame = document.querySelector('.inner-modal .modal-content .modal-body iframe');\n if (iFrame) {\n const src = iFrame.getAttribute('src') + \"&mute=1\";\n iFrame.setAttribute('src',src);\n } \n this.modal.focus();\n }\n\n closeModal() {\n if (this.modal.matches('.open')) {\n this.setInertProps(false);\n\n setTimeout(() => {\n this.modal.classList.remove('open');\n \n // Checking if this is a video modal\n const iFrame = document.querySelector('.inner-modal .modal-content .modal-body iframe');\n if (iFrame) {\n let src = iFrame.getAttribute(\"src\");\n if (src.search(\"mute=1\") > 0) {\n src = src.replace(\"&mute=1\", \"\");\n iFrame.setAttribute(\"src\", src);\n }\n }\n this.previousActiveElement.focus();\n }, 100);\n }\n }\n}\n\n// window.cwModals = cwModals;\n\nexport default CwModals;\n"],"names":["CwModals","constructor","DOMclassName","settings","bodyElements","document","querySelectorAll","modalClass","modalTarget","modal","closeButton","init","Error","window","addEventListener","event","target","matches","preventDefault","startModals","cwWindowEvs","button","dataset","cwTarget","querySelector","previousActiveElement","activeElement","closeModal","bind","setInertProps","openModal","e","isOutside","closest","setTo","forEach","child","inert","key","classList","add","iFrame","src","getAttribute","setAttribute","focus","setTimeout","remove","search","replace"],"sourceRoot":""}