{"version":3,"file":"Modal.js","names":["Modal","a","setters","Component","default","mix","Event","ajax","on","off","trigger","animate","transition","deepMerge","throttle","Accessibility","LoaderMixin","DataLayer","execute","with","constructor","element","options","arguments","length","document","createElement","header","footer","contentUrl","cssPath","content","closeLabel","title","ariaLabel","closeTimeout","escapeClose","clickOutsideClose","showOverlay","keepOverlayOpened","afterCloseReload","afterCloseRedirectUrl","enableStacking","isStackable","openInPageDesignerEditor","motion","delay","duration","type","text","accessibility","processingStatusMessage","finishedStatusMessage","focusReturnElement","beforeOpen","afterOpen","beforeClose","afterClose","classNames","container","body","wrapper","dialogOpen","dialogClose","classList","contains","_createLayout","openPromise","initState","state","isOpened","isOpening","isClosing","initContent","isOverlayOpened","hasCustomCSS","isCustomCSSLoaded","isCustomCSSLoading","isPreventRedirectAfterClose","isActive","isScrollEventAttached","initCache","classes","openedState","innerContent","modalClickHandler","event","target","hasAttribute","close","closeActionTargetType","add","forEach","className","split","map","item","template","concat","join","innerHTML","querySelector","get","setMotion","setAttribute","_insertInDocument","appendChild","_addContent","setHeader","setTitle","setFooter","configId","url","then","response","Promise","reject","Error","setContent","bind","removeLoader","updateStatusMessage","catch","resolve","open","emit","keepOpened","_appendLayout","_importCSS","sendEvent","addLoader","onContentUpdated","window","setTimeout","updateComponents","onModalScroll","scrollThrottle","func","passive","id","onKeyboardControl","initModalPattern","triggerAfterOpenAnalyticsEvents","closeAll","remove","destroyModalPattern","_doClose","isUnblockScrollForAll","isInstantScroll","location","reload","assign","Array","from","children","removeAttribute","appendedScripts","querySelectorAll","script","srcScript","async","defer","head","push","_bindModalEvents","setAccessibility","preventClick","SystemJS","import","console","error","onOverlayCloseBefore","keepOpen","onSlidingPanelOpen","onSlidingPanelClose","_removeModalEvents","removeListener","key","onTabKey","eventType","analytics","virtualPageURL","virtualPageTitle","afterModalOpen","offsetHeight","scrollHeight","componentsToUpdate","component","focusTrap","destroy","removeChild"],"sources":["components/global/Modal.js"],"sourcesContent":["/* eslint max-lines: off */\nimport Component from 'core/Component';\nimport { mix } from 'core/mixwith';\nimport { Event } from 'services/EventEmitter';\nimport { ajax } from 'toolbox/ajax';\nimport { on, off, trigger } from 'toolbox/event';\nimport { animate, transition } from 'toolbox/animate';\nimport { deepMerge } from 'toolbox/deepMerge';\nimport { throttle } from 'toolbox/throttle';\nimport Accessibility from 'mixins/Accessibility';\nimport LoaderMixin from 'mixins/Loader';\nimport DataLayer from 'services/DataLayer';\n// [ROLLUP]import loadjs from 'loadjs';\n\n/**\n * This is a description of the Modal constructor function.\n * @class\n * @classdesc This is a description of the Modal class.\n * @extends Component\n */\nexport default class Modal extends mix(Component).with(Accessibility, LoaderMixin) {\n    /**\n     * Constructor of the class that mainly merge the options of the components\n     * @param {HTMLElement} element HTMLElement of the component\n     * @param {Object} options options that belongs to the component\n     */\n    constructor(element, options = {}) {\n        element = element || document.createElement('div');\n        super(element, deepMerge({\n            header: null, // HTML content for header\n            footer: null, // HTML content for footer\n            contentUrl: null,\n            cssPath: null, // CSS path that needs to be loaded with the modal\n            content: null, // If contentURL is used, this property will not be used\n            closeLabel: 'Close',\n            title: null,\n            ariaLabel: '', // If defined, this copy will be used as the aria-label of a Modal to pronounce the modal title by screen reader. If empty, the text with the id=\"modal-title\" will be pronounced\n            closeTimeout: 0, // Time to wait (ms) before afterClose() is called\n            escapeClose: true, // Set this to 'false' to disable closing when escape key pressed\n            clickOutsideClose: true, // Click on the overlay will close the modal\n            showOverlay: true, // Display the overlay behind the modal or not\n            // If set, do not remove overlay after the modal is closed (e.g. if modal called from element with another overlay)\n            keepOverlayOpened: false,\n            afterCloseReload: false, // If set, reload current page after modal is closed\n            afterCloseRedirectUrl: null, // If set, redirects to this URL after modal is closed\n            enableStacking: false, // Activates the the stacking mode for previous modal that is already opened (old modal).\n            isStackable: true, // Allow or deny stacking of current modal if the stacking mode is activated by the next modal\n            openInPageDesignerEditor: true, // Specifies if modal can be opened in Page Designer Editor\n            motion: {\n                delay: null, // values from a list: 50, 200, 500, 1000 (can be changed in sass\\01-utilities\\aos\\_core.scss)\n                duration: null, // values from a list: 50, 200, 400, 1000 (can be changed in sass\\01-utilities\\aos\\_core.scss)\n                type: 'fade-up', // types of motion (fade-down, fade-right, fade-left, etc.): https://github.com/michalsnik/aos#predefined-options\n            },\n            text: {\n                accessibility: { processingStatusMessage: '', finishedStatusMessage: '' },\n            },\n            focusReturnElement: null,\n            // Callbacks\n\n            /**\n             * It will execute right before the dialog is shown\n             */\n            beforeOpen() {\n                // Callback method\n            },\n\n            /**\n             * It will execute just after the dialog is shown\n             */\n            afterOpen() {\n                // Callback method\n            },\n\n            /**\n             * It will execute just after the dialog is shown\n             */\n            beforeClose() {\n                // Callback method\n            },\n\n            /**\n             * It will execute just after the dialog is closed\n             */\n            afterClose() {\n                // Callback method\n            },\n\n            // ClassNames\n            classNames: {\n                container: [], // Added to the modal element\n                title: '', // Added to the modal title element\n                body: [], // Added to the modal body element\n                wrapper: [], // Added to the modal wrapper element\n                dialogOpen: 'h-fade-in', // Added to dialog element classes after it is opened\n                dialogClose: 'h-fade-out', // Added to dialog element classes before it is closed\n            },\n        }, options));\n\n        if (!this.element.classList.contains('c-modal')) {\n            this._createLayout();\n        }\n        this.enableStacking = false;\n        this.openPromise = null;\n    }\n\n    /**\n     * Init the different state of the component\n     * It helps to avoid heavy DOM manipulation\n     */\n    initState() {\n        this.state.isOpened = false;\n        this.state.isOpening = false;\n        this.state.isClosing = false;\n        this.state.initContent = false;\n        this.state.isOverlayOpened = false;\n        this.state.hasCustomCSS = !!this.options.cssPath;\n        this.state.isCustomCSSLoaded = false;\n        this.state.isCustomCSSLoading = false;\n        this.state.isPreventRedirectAfterClose = false;\n        this.state.isActive = true;\n        this.state.isScrollEventAttached = false;\n    }\n\n    /**\n     * All selectors must be cached. Never cache elements that are out of the component scope\n     */\n    initCache() {\n        this.classes = {\n            openedState: 'm-opened',\n            motion: 'm-motion',\n        };\n        this.wrapper = null;\n        this.header = null;\n        this.content = null;\n        this.innerContent = null;\n        this.footer = null;\n    }\n\n    /**\n     * modalClickHandler event handler\n     *\n     * @param {Object} event Event object\n     */\n    modalClickHandler(event) {\n        const { target } = event;\n\n        if (target.hasAttribute('data-js-prevent-redirect')) {\n            this.state.isPreventRedirectAfterClose = true;\n        }\n\n        if (target.hasAttribute('data-js-close-modal')) {\n            this.close(undefined, { closeActionTargetType: target.type });\n        }\n    }\n\n    /**\n     * Create Layout for the modal\n     */\n    _createLayout() {\n        this.element.classList.add('c-modal');\n\n        this.options.classNames.container.forEach((className) => {\n            className.split(' ').map(item => this.element.classList.add(item));\n        });\n\n        const template = `\n            <div class=\"c-modal__wrapper ${this.options.classNames.wrapper.join(' ')}\">\n                <header class=\"c-modal__header\"><h2 class=\"c-modal__title\" id=\"modal-title\"></h2></header>\n                <div class=\"c-modal__body\"></div>\n                <footer class=\"c-modal__footer\"></footer>\n                <button type=\"button\" class=\"c-modal__close\" data-js-close-modal>${this.options.closeLabel}</button>\n            </div>\n        `;\n\n        this.element.innerHTML = template;\n        this.wrapper = this.element.querySelector('.c-modal__wrapper');\n        this.header = this.element.querySelector('.c-modal__header');\n        this.title = this.element.querySelector('.c-modal__title');\n        this.content = this.element.querySelector('.c-modal__body');\n        this.footer = this.element.querySelector('.c-modal__footer');\n        if (this.options.motion && DataLayer.get('uiconfig.motion.modalsEnabled')) {\n            this.element.classList.add(this.classes.motion);\n            this.setMotion(this.header);\n        }\n\n        this.options.classNames.body.forEach((className) => {\n            this.content.classList.add(className);\n        });\n    }\n\n    /**\n     * Set Motion attributes\n     *\n     * @param {HTMLElement} element motion element\n     */\n    setMotion(element) {\n        element.setAttribute('data-aos', this.options.motion.type);\n        if (this.options.motion.duration) {\n            element.setAttribute('data-aos-duration', this.options.motion.duration);\n        }\n        if (this.options.motion.delay) {\n            element.setAttribute('data-aos-delay', this.options.motion.delay);\n        }\n    }\n\n    /**\n     * Insert In Document element\n     */\n    _insertInDocument() {\n        document.body.appendChild(this.element);\n    }\n\n    /**\n     * Add Content to the modal\n     *\n     * @returns {Promise} object\n     */\n    _addContent() {\n        if (this.options.header) {\n            this.setHeader(this.options.header);\n        } else if (this.options.title) {\n            this.setTitle(this.options.title);\n        } else {\n            this.header.innerHTML = '';\n        }\n\n        if (this.options.footer) {\n            this.setFooter(this.options.footer);\n        }\n\n        const { content, configId } = this.options;\n        const url = this.options.contentUrl;\n        if (url) {\n            return ajax(url, { configId })\n                .then((response) => {\n                    // It might be possible that modal is closed before the ajax request is complete\n                    if (!this.element) {\n                        return Promise.reject(new Error('Modal removed'));\n                    }\n\n                    this.state.initContent = true;\n                    return response;\n                })\n                .then(this.setContent.bind(this))\n                .then(() => {\n                    this.removeLoader();\n                    this.updateStatusMessage(this.options.text.accessibility.finishedStatusMessage || false);\n                })\n                .catch(() => {\n                    if (this.element) {\n                        this.removeLoader();\n                        this.updateStatusMessage(this.options.text.accessibility.finishedStatusMessage || false);\n                    }\n                });\n        }\n\n        if (content) {\n            this.state.initContent = true;\n            this.removeLoader();\n            this.updateStatusMessage(this.options.text.accessibility.finishedStatusMessage || false);\n            return this.setContent(content);\n        }\n\n        return Promise.resolve();\n    }\n\n    /*\n     * API\n     */\n\n    /**\n     * Open the modal\n     *\n     * @returns {Promise} object\n     */\n    open() {\n        if (this.options.afterCloseRedirectUrl && !this.state.isPreventRedirectAfterClose) {\n            this.options.keepOverlayOpened = true;\n            Event.emit('overlay.open', {\n                keepOpened: this.options.keepOverlayOpened,\n            });\n            this.state.isOverlayOpened = true;\n        }\n\n        if (this.state.isOpened || this.state.isOpening\n            || (!this.options.openInPageDesignerEditor && DataLayer.get('page.isPageDesignerEditMode', false))) {\n            return Promise.reject();\n        }\n\n        this.state.isOpened = true;\n        this.state.isOpening = true;\n\n        this.openPromise = this.beforeOpen()\n            .then(this._appendLayout.bind(this))\n            .then(this._importCSS.bind(this))\n            .then(() => {\n                if (this.enableStacking) {\n                    return Promise.resolve();\n                }\n                return this._addContent();\n            })\n            .then(() => {\n                if (this.element) {\n                    this.afterOpen();\n                }\n            });\n        return this.openPromise;\n    }\n\n    /**\n     * Triggered before the modal is opened\n     *\n     * @returns {Promise} object\n     */\n    beforeOpen() {\n        if (typeof this.options.beforeOpen === 'function') {\n            this.options.beforeOpen(this.element);\n        }\n        this.sendEvent('modal.open.before');\n\n        if (!this.state.initContent) {\n            this.addLoader();\n            this.updateStatusMessage(this.options.text.accessibility.processingStatusMessage || true);\n        }\n\n        return Promise.resolve();\n    }\n\n    /**\n     * ContentUpdated event handler\n     */\n    onContentUpdated() {\n        Event.emit('registry.registerChildren', this.element);\n\n        window.setTimeout(() => {\n            this.updateComponents();\n        }, 200);\n    }\n\n    /**\n     * Trigger Focus Highlighter position updating\n     */\n    onModalScroll() {\n        Event.emit('highlighter.update');\n    }\n\n    /**\n     * Used to set state to avoid removing a non-existent event listener in cases\n     * when the user closes the modal before it has fully loaded.\n     *\n     * @returns {Function} - trottled function\n     */\n    scrollThrottle() {\n        const func = throttle(this.onModalScroll.bind(this), 20);\n        this.state.isScrollEventAttached = true;\n        return func;\n    }\n\n    /**\n     * Triggered after the modal is opened\n     */\n    afterOpen() {\n        on('scroll', this.wrapper, this.scrollThrottle(), {\n            passive: true,\n        });\n\n        if (this.options.escapeClose) {\n            window.setTimeout(() => {\n                on(`keydown.${this.id}`, document, this.onKeyboardControl.bind(this));\n            }, 200);\n        }\n\n        if (typeof this.options.afterOpen === 'function') {\n            this.options.afterOpen(this.element);\n        }\n\n        // Put the focus into the Modal window after content is loaded and mask the main page from screen reader\n        this.initModalPattern(this.wrapper, this.options.focusReturnElement);\n\n        this.triggerAfterOpenAnalyticsEvents();\n\n        this.sendEvent('modal.open.after');\n        this.state.isOpening = false;\n        this.openPromise = null;\n    }\n\n    /**\n     * Close the modal\n     *\n     * @param {Boolean} closeAll used to close all stacked modals after closing the current one\n     * @param {Object} options - object with params\n     * @returns {Promise} object\n     */\n    close(closeAll = false, options = {}) {\n        // It happens that modal close is called while it's not even opened. So we wait the modal to be opened before closing it\n        // if (this.openPromise) {\n        //     return this.openPromise.then(() => {\n        //         this.close();\n        //     });\n        // }\n        if (!this.state.isOpened || this.state.isClosing) {\n            return Promise.resolve();\n        }\n\n        this.state.isClosing = true;\n\n        this.beforeClose(options);\n        this.element.classList.remove(this.options.classNames.dialogOpen);\n        animate(this.options.classNames.dialogClose, this.element).then(() => {\n            this.element.classList.remove(this.classes.openedState);\n        });\n        this.destroyModalPattern();\n\n        return new Promise((resolve) => {\n            // always close modal with timeout to allow all modal event handlers to be executed\n            // before content destroyed\n            setTimeout(() => {\n                this._doClose(closeAll);\n                resolve();\n            }, this.options.closeTimeout);\n        });\n    }\n\n    /**\n     * Close the modal\n     *\n     * @param {Boolean} closeAll used to close all stacked modals after closing the current one\n     */\n    _doClose(closeAll) {\n        if (!this.enableStacking) {\n            this.element.remove();\n\n            if (this.state.isOverlayOpened) {\n                Event.emit('overlay.close');\n                this.state.isOverlayOpened = false;\n            }\n        }\n\n        Event.emit('page.scroll.enabled', {\n            isUnblockScrollForAll: true,\n            isInstantScroll: true,\n        });\n\n        this.afterClose(closeAll);\n    }\n\n    /**\n     * Triggered before the modal is closed\n     *\n     * @param {Object} options - object with params\n     */\n    beforeClose(options) {\n        if (this.state.isScrollEventAttached) {\n            off('scroll', this.wrapper);\n        }\n        this.options.beforeClose(this.element, options);\n        this.sendEvent('modal.close.before');\n    }\n\n    /**\n     * Triggered after the modal is closed\n     *\n     * @param {Boolean} closeAll used to close all stacked modals after closing the current one\n     */\n    afterClose(closeAll) {\n        this.closeAll = closeAll;\n        this.state.isOpened = false;\n        this.state.isClosing = false;\n\n        this.options.afterClose(this.element);\n        this.sendEvent('modal.close.after');\n        if (this.options.afterCloseReload) {\n            window.location.reload();\n        }\n\n        if (this.options.afterCloseRedirectUrl && !this.state.isPreventRedirectAfterClose) {\n            window.location.assign(this.options.afterCloseRedirectUrl);\n        }\n\n        this.state.isPreventRedirectAfterClose = false;\n    }\n\n    /**\n     * Set Content\n     *\n     * @param {HTML} content Data\n     * @returns {Promise} object\n     */\n    setContent(content) {\n        this.content.innerHTML = content;\n        if (this.options.motion && DataLayer.get('uiconfig.motion.modalsEnabled')) {\n            this.innerContent = Array.from(this.content.children);\n            if (this.innerContent.length) {\n                this.innerContent.forEach((item) => {\n                    this.setMotion(item);\n                    transition(item, () => {\n                        item.removeAttribute('data-aos');\n                        this.updateComponents();\n                    });\n                });\n            }\n\n            this.element.classList.remove(this.classes.motion);\n        }\n        // evals response content inline javascripts\n        this.appendedScripts = [];\n        this.content.querySelectorAll('script').forEach((script) => {\n            const srcScript = document.createElement('script');\n\n            srcScript.text = script.innerHTML;\n            srcScript.async = script.async;\n            srcScript.defer = script.defer;\n            srcScript.type = script.type;\n            document.head.appendChild(srcScript);\n            this.appendedScripts.push(srcScript);\n        });\n\n        return Promise.resolve(content).then(this.onContentUpdated.bind(this));\n    }\n\n    /**\n     * Set Header\n     *\n     * @param {HTML} header Data\n     * @returns {Promise} object\n     */\n    setHeader(header) {\n        this.header.innerHTML = header;\n        return Promise.resolve(header);\n    }\n\n    /**\n     * Set Title\n     *\n     * @param {HTML} title Data\n     * @returns {Promise} object\n     */\n    setTitle(title) {\n        if (this.options.classNames.title) {\n            this.title.classList.add(this.options.classNames.title);\n        }\n        this.title.innerHTML = title;\n        return Promise.resolve(title);\n    }\n\n    /**\n     * Set footer content\n     *\n     * @param {HTML} footer Content\n     * @returns {Promise} object\n     */\n    setFooter(footer) {\n        this.footer.innerHTML = footer;\n        return Promise.resolve(footer);\n    }\n\n    /**\n     * Append the modal layout\n     * @returns {Promise} object\n     */\n    _appendLayout() {\n        if (!this.enableStacking) {\n            // if already existing, no need to inject the content again\n            this._insertInDocument();\n        }\n\n        // bind events are lost for the first modal after closing the second one\n        this._bindModalEvents();\n\n        this.element.classList.add(this.classes.openedState);\n        this.element.classList.add(this.options.classNames.dialogOpen);\n\n        this.setAccessibility();\n\n        Event.emit('page.scroll.disabled', true);\n\n        if (this.options.showOverlay) {\n            this.sendEvent('slidingPanel.check.active');\n            Event.emit('overlay.open', {\n                preventClick: !this.options.clickOutsideClose,\n                keepOpened: this.options.keepOverlayOpened,\n            });\n            this.options.keepOverlayOpened = false;\n            this.state.isOverlayOpened = true;\n        }\n\n        return Promise.resolve();\n    }\n\n    /**\n     * Async loading of the CSS\n     * @param {String} path - CSS relative path\n     * @returns {Promise} - Promise\n     */\n    _importCSS() {\n        if (this.state.hasCustomCSS && !this.state.isCustomCSSLoaded && !this.state.isCustomCSSLoading) {\n            this.state.isCustomCSSLoading = true;\n\n            // [ROLLUP]return loadjs([`${window.lora.baseURL}css/${this.options.cssPath}`], { returnPromise: true })\n            // [SYSTEMJS]\n            return SystemJS.import(`cssComponent/${this.options.cssPath}!`)\n            // [/SYSTEMJS]\n                .then(() => {\n                    this.state.isCustomCSSLoading = false;\n                })\n                .catch(() => {\n                    this.state.isCustomCSSLoading = false;\n                    console.error('CSS file cannot be found');\n                });\n        }\n\n        return Promise.resolve();\n    }\n\n    /**\n     * Bind Modal Events\n     */\n    _bindModalEvents() {\n        Event.on('overlay.close.before', this.onOverlayCloseBefore, this);\n        Event.on('modal.close', this.close, this);\n        Event.on('modal.keep.overlay.open', this.keepOpen, this);\n        Event.on('slidingPanel.open.after', this.onSlidingPanelOpen, this);\n        Event.on('slidingPanel.close.after', this.onSlidingPanelClose, this);\n\n        on('click', this.element, this.modalClickHandler.bind(this));\n    }\n\n    /**\n     * Remove Modal Events\n     */\n    _removeModalEvents() {\n        if (this.options.escapeClose) {\n            off(`keydown.${this.id}`, document);\n        }\n\n        off('click', this.element);\n        Event.removeListener('overlay.close.before', this.onOverlayCloseBefore);\n        Event.removeListener('modal.close', this.close);\n        Event.removeListener('slidingPanel.open.after', this.onSlidingPanelOpen);\n        Event.removeListener('slidingPanel.close.after', this.onSlidingPanelClose);\n        Event.removeListener('modal.keep.overlay.open', this.keepOpen);\n    }\n\n    /**\n     * Set keepOverlayOpened option to true if sliding panel is active\n     */\n    keepOpen() {\n        this.options.keepOverlayOpened = true;\n    }\n\n    /**\n     * Sliding panel open handler\n     */\n    onSlidingPanelOpen() {\n        this.state.isActive = false;\n    }\n\n    /**\n     * Sliding panel close handler\n     */\n    onSlidingPanelClose() {\n        this.state.isActive = true;\n    }\n\n    /**\n     * Keydown event handler\n     *\n     * @param {Object} event Event object\n     */\n    onKeyboardControl(event) {\n        if (!this.state.isActive) {\n            return;\n        }\n\n        switch (event.key) {\n        case 'Tab': // 'Tab' key\n            this.onTabKey(event);\n            break;\n        case 'Escape': // 'Escape' key\n            this.close();\n            break;\n        default:\n            break;\n        }\n    }\n\n    /**\n     * Send Event\n     *\n     * @param {String} eventType custom\n     */\n    sendEvent(eventType) {\n        Event.emit(eventType, this);\n    }\n\n    /**\n     * Trigger Analytics Events after the modal is opened\n     */\n    triggerAfterOpenAnalyticsEvents() {\n        if (!this.analytics) {\n            return;\n        }\n\n        if (this.analytics.virtualPageURL && this.analytics.virtualPageTitle) {\n            Event.emit('analytics.virtualPage', {\n                virtualPageURL: this.analytics && this.analytics.virtualPageURL,\n                virtualPageTitle: this.analytics && this.analytics.virtualPageTitle,\n            });\n        }\n\n        if (this.analytics.afterModalOpen) {\n            Event.emit('analytics.event', this.analytics.afterModalOpen);\n        }\n    }\n\n    /**\n     * Accessibility handling\n    */\n    setAccessibility() {\n        // inform screen reader users that a custom dialog is being inserted\n        this.element.setAttribute('role', 'dialog');\n        this.element.setAttribute('aria-modal', 'true');\n\n        if (this.options.ariaLabel) {\n            this.element.setAttribute('aria-label', this.options.ariaLabel);\n        } else {\n            this.element.setAttribute('aria-labelledby', 'modal-title');\n        }\n    }\n\n    /**\n     * Update components if scrollbar appears\n    */\n    updateComponents() {\n        if (this.content.offsetHeight > this.element.scrollHeight) {\n            const componentsToUpdate = this.content.querySelectorAll('[data-component=\"global/Carousel\"]');\n            if (componentsToUpdate.length) {\n                componentsToUpdate.forEach((component) => {\n                    trigger('carousel.update', component);\n                });\n            }\n        }\n    }\n\n    /**\n     * Tab key event\n     *\n     * @param {Object} event Event object\n    */\n    onTabKey(event) {\n        super.focusTrap(this.element, event);\n    }\n\n    /** overlay.close.before event handler\n     * Prevent overlay.close event fired if the overlay is already the closing initiator\n    */\n    onOverlayCloseBefore() {\n        this.state.isOverlayOpened = false;\n        this.close();\n    }\n\n    /**\n     * Destroy is called automatically after the component is being removed from the DOM\n     * You must always destroy the listeners attached to an element to avoid any memory leaks\n     */\n    destroy() {\n        this._removeModalEvents();\n        (this.appendedScripts || []).forEach((srcScript) => {\n            document.head.removeChild(srcScript);\n        });\n    }\n}\n"],"mappings":"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","ignoreList":[]}