{"version":3,"file":"ToolTip.js","names":["ToolTip","a","setters","Component","default","AOS","mix","on","off","debounce","deepMerge","Accessibility","AccessibilityService","LoaderMixin","isTouchDevice","isFiresTouchEvents","isChildOf","Event","execute","with","constructor","element","options","arguments","length","_resizable","classNames","modifier","position","text","preventOverflow","preventOverflowOffset","flip","scroll","resize","destroyOnHide","strategy","removeOnDestroy","triggerSelector","showOnClick","trackFocusedElements","width","closeLabel","hideTooltipOnMouseLeave","tooltipArrowOffset","tooltipOffset","afterClose","initCache","classes","tooltip","tooltipArrow","tooltipAriaLink","tooltipClose","tooltipContent","tooltipTitle","tooltipBody","activeModifier","selectors","target","querySelector","createTooltipLayout","popperInstance","cssClass","ariaLabel","hasAttribute","getAttribute","titleCssClass","titleClassNames","forEach","className","titleTemplate","title","id","innerHTML","closeTemplate","ariaLinkTemplate","template","document","createElement","initState","state","isActive","hasContent","areCustomEventsBound","isForceContentLoad","isFocusDisabled","bindEvents","onDocumentClick","bind","onMouseEnter","onMouseLeave","onKeyboardControl","onClick","onDocumentKeyDown","checkComponent","onTooltipTouchOpened","afterInit","bindCustomTooltipEvents","onContentMouseLeave","onTooltipKeyboardControl","onTooltipCloseClick","unbindCustomTooltipEvents","event","keyBoardActions","Enter","toggleContentFromKeyboard","\" \"","Tab","onTabKey","Escape","focus","hideContent","focusTrap","toggleContent","preventDefault","stopImmediatePropagation","showContent","relatedTarget","contains","addDialogMarkup","showAriaLink","showCloseButton","setAttribute","setDialogTitle","tooltipTitleElement","removeDialogMarkup","hideAriaLink","hideCloseButton","removeAttribute","classList","remove","add","hideContentFromMouse","emit","obj","key","isContentValid","saveLastFocusState","closest","initAccessibility","body","appendChild","createPopper","addNewState","setContent","updatePopper","indexOf","onResize","content","update","popperOptions","placement","eventsEnabled","modifiers","name","padding","offset","tether","rootBoundary","flipVariations","gpuAcceleration","onFirstUpdate","onPopperCreate","popper","SystemJS","import","then","forceUpdate","setWidth","refresh","initModalPattern","setFocusedOrder","style","destroyPopper","destroy","destroyModalPattern","resetFocusedOrder","restorePrevState","removeListener"],"sources":["components/global/ToolTip.js"],"sourcesContent":["/* eslint max-lines: off */\nimport Component from 'core/Component';\nimport AOS from 'aos';\nimport { mix } from 'core/mixwith';\nimport { on, off } from 'toolbox/event';\nimport { debounce } from 'toolbox/debounce';\nimport { deepMerge } from 'toolbox/deepMerge';\nimport Accessibility from 'mixins/Accessibility';\nimport AccessibilityService from 'services/Accessibility';\nimport LoaderMixin from 'mixins/Loader';\nimport { isTouchDevice, isFiresTouchEvents } from 'toolbox/device';\nimport { isChildOf } from 'toolbox/html';\nimport { Event } from 'services/EventEmitter';\n\n/**\n * This is a description of the ToolTip constructor function.\n * See documentation for API: https://popper.js.org/docs/v2/\n * @class\n * @classdesc This is a description of the ToolTip class.\n * @extends Component\n */\nexport default class ToolTip extends mix(Component).with(Accessibility, LoaderMixin) {\n    /**\n     * Constructor of the class that mainly merge the options of the components\n     *\n     * @param {HTMLElement} element HTMLElement of the component\n     * @param {Object} options options that belongs to the component\n     * @typedef {Object} optionsObject\n     * @property {String} classNames.modifier - Additional class modifier inserted on Tooltip\n     * @property {enum} position - Popper placement (see API).\n     *                             List of accepted placements: `auto`, `top`, `right`, `bottom`, `left`\n     *                             Each placement can have a variation suffix: '-start`, `-end'\n     *                             Some valid examples: `top-end`, `right-start`, `bottom`, `auto-end`\n     * @property {String} text - text to show in a tooltip.\n     * @property {Boolean} preventOverflow - Set to true to prevent the popper from being positioned outside the boundary\n     * @property {Boolean} preventOverflowOffset - Padding on all four sides of view port.\n     *                                             Different padding on certain sides – unspecified sides are 0\n     *                                             padding: { top: 8, right: 16 },\n     * @property {String} tooltipArrowOffset - You can pass a number, which will set an equal padding for all four sides,\n     *                                         or an object containing side properties each with their own padding value.\n     * @property {Array} tooltipOffset - [0, 0], The first number, skidding, displaces the popper along the reference element.\n*                                        The second number, distance, displaces the popper away from, or toward,\n*                                        the reference element in the direction of its placement. A positive number displaces it\n                                         further away, while a negative number lets it overlap the reference.\n     * @property {Boolean} flip - Set to true to flip the popper’s placement when it starts to overlap its reference element\n     *                            Requires the preventOverflow modifier before it in order to work\n     * @property {Boolean} scroll - Determines if scroll listeners are added.\n     * @property {Boolean} resize - Determines if resize listeners are added.\n     * @property {Boolean} strategy - Set position of popper. By default, it is absolute\n     *                                Accepted placements: `fixed`, `sticky`, `relative`\n     * @property {Boolean} removeOnDestroy - Set to true if you want to automatically remove the popper when you call\n     *                                       the destroy method\n     * @property {Number} width - width of a tooltip content in px. Set to 0 if the width is defined by the content inside\n     * @property {Function} afterClose - Function which will be executed right after Tooltip is closed\n     */\n    constructor(element, options = {}) {\n        super(element, deepMerge({\n            _resizable: true,\n            classNames: { modifier: null },\n            position: 'bottom',\n            text: null,\n            preventOverflow: true,\n            preventOverflowOffset: 10,\n            flip: true,\n            scroll: false,\n            resize: true,\n            destroyOnHide: true,\n            strategy: 'absolute',\n            removeOnDestroy: true,\n            triggerSelector: null, // dom selector for the custom target\n            showOnClick: false, // show content on click (disable mouse enter/leave events)\n            trackFocusedElements: true,\n            width: 0,\n            closeLabel: 'Close',\n            hideTooltipOnMouseLeave: true, // hide tooltip on mouse tooltip leave\n            tooltipArrowOffset: 5, // 5px from the edges of the popper\n            tooltipOffset: [], // 0px from the edges of the reference element\n            /**\n             * It will execute right after Tooltip is closed\n             */\n            afterClose() {\n                // Callback methods\n            },\n        }, options));\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            tooltip: 'c-tooltip',\n            tooltipArrow: 'c-tooltip__arrow',\n            tooltipAriaLink: 'c-tooltip__arialink',\n            tooltipClose: 'c-tooltip__close',\n            tooltipContent: 'c-tooltip__content',\n            tooltipTitle: 'c-tooltip__title',\n            tooltipBody: 'c-tooltip__body',\n            activeModifier: 'm-active',\n        };\n\n        this.selectors.target = (this.options.triggerSelector && this.element.querySelector(this.options.triggerSelector))\n            || this.element;\n\n        this.tooltip = this.createTooltipLayout();\n\n        this.selectors.tooltipArrow = this.tooltip.querySelector(`.${this.classes.tooltipArrow}`);\n        this.selectors.tooltipAriaLink = this.tooltip.querySelector(`.${this.classes.tooltipAriaLink}`);\n        this.selectors.tooltipClose = this.tooltip.querySelector(`.${this.classes.tooltipClose}`);\n        this.selectors.tooltipBody = this.tooltip.querySelector(`.${this.classes.tooltipBody}`);\n        this.selectors.tooltipContent = this.tooltip.querySelector(`.${this.classes.tooltipContent}`);\n\n        this.popperInstance = null;\n    }\n\n    /* eslint-disable complexity */\n    /**\n     * Create the tooltip HTML structure\n     *\n     * @returns { HTMLElement } tooltip container\n     */\n    createTooltipLayout() {\n        const cssClass = this.options.classNames.modifier !== null ? `${this.classes.tooltip} ${this.options.classNames.modifier}` : this.classes.tooltip;\n        const ariaLabel = this.selectors.target.hasAttribute('aria-label') ? `aria-label=\"${this.selectors.target.getAttribute('aria-label')}\"` : '';\n\n        let titleCssClass = this.classes.tooltipTitle;\n        if (this.options.titleClassNames) {\n            this.options.titleClassNames.forEach((className) => {\n                titleCssClass += ` ${className}`;\n            });\n        }\n        const titleTemplate = `<div class=\"${this.options.title ? titleCssClass : 'h-hidden'}\" id=\"tooltip-title-${this.id}\">${this.options.title || this.selectors.target.getAttribute('aria-label') || this.selectors.target.innerHTML}</div>`;\n\n        const closeLabel = this.selectors.target.hasAttribute('data-js-aria-close-label') ? this.selectors.target.getAttribute('data-js-aria-close-label') : this.options.closeLabel;\n        const closeTemplate = `<button class=\"${this.classes.tooltipClose} h-hidden\"><span aria-hidden=\"true\">X</span><span class=\"h-show-for-sr\">${closeLabel}</span></button>`;\n\n        const ariaLinkTemplate = this.selectors.target.getAttribute('data-href')\n            ? `<a class=\"${this.classes.tooltipAriaLink} h-hidden\" ${ariaLabel} href=\"${this.selectors.target.getAttribute('data-href')}\">${this.selectors.target.innerHTML}</a>` : '';\n\n        const template = `<div class=\"${cssClass}\" id=\"${this.id}\"><div class=\"${this.classes.tooltipArrow}\"></div><div class=\"${this.classes.tooltipContent}\">${ariaLinkTemplate}${titleTemplate}<div class=\"${this.classes.tooltipBody}\"></div>${closeTemplate}</div></div>`;\n\n        const tooltip = document.createElement('div');\n        tooltip.innerHTML = template;\n\n        return tooltip.querySelector(`.${this.classes.tooltip}`);\n    }\n    /* eslint-enable complexity */\n\n    /**\n     * Init the different state of the component\n     * It helps to avoid heavy DOM manipulation\n     */\n    initState() {\n        this.state.isActive = false;\n        this.state.hasContent = false;\n        this.state.areCustomEventsBound = false;\n        this.state.isForceContentLoad = false;\n        this.state.isFocusDisabled = false;\n    }\n\n    /**\n     * Should contain only event listeners and nothing else\n     * All the event handlers should be into a separated function. No usage of anonyous function\n     */\n    bindEvents() {\n        if (!isTouchDevice() && !this.options.showOnClick) {\n            on('mouseenter', this.selectors.target, this.onMouseEnter.bind(this));\n            on('mouseleave', this.selectors.target, debounce(this.onMouseLeave.bind(this)));\n        } else {\n            on(`click.${this.id}`, document, this.onDocumentClick.bind(this));\n        }\n        on('keydown', this.selectors.target, this.onKeyboardControl.bind(this));\n        on('click.tooltip', this.selectors.target, this.onClick.bind(this));\n        on(`keydown.${this.id}`, document, this.onDocumentKeyDown.bind(this));\n        on('tooltip.checkcomponent', this.element, this.checkComponent.bind(this));\n        Event.on('tooltip.touch.opened', this.onTooltipTouchOpened, this);\n\n        super.bindEvents();\n    }\n\n    /**\n     * After init\n     * Run any script after the component is fully initialized\n     */\n    afterInit() {\n        this.state.isFocusDisabled = true;\n    }\n\n    /**\n     * Bind events for custom select\n     */\n    bindCustomTooltipEvents() {\n        if (!this.state.areCustomEventsBound) {\n            if (!this.options.showOnClick && this.options.hideTooltipOnMouseLeave) {\n                on('mouseleave', this.tooltip, debounce(this.onContentMouseLeave.bind(this)));\n            }\n            // Accessibility events\n            on('keydown', this.tooltip, this.onTooltipKeyboardControl.bind(this));\n            on('click', this.selectors.tooltipClose, this.onTooltipCloseClick.bind(this));\n            this.state.areCustomEventsBound = true;\n        }\n    }\n\n    /**\n     * Unbind custom select event\n     */\n    unbindCustomTooltipEvents() {\n        if (this.state.areCustomEventsBound) {\n            off('mouseleave keydown', this.tooltip);\n            off('click', this.selectors.tooltipClose);\n            this.state.areCustomEventsBound = false;\n        }\n    }\n\n    /**\n     * Shows/hides on keypress\n     * @param {Event} event - Event object\n     */\n    onKeyboardControl(event) {\n        const keyBoardKeys = {\n            Enter: () => { // 'Enter' key\n                this.toggleContentFromKeyboard(event);\n            },\n            ' ': () => { // 'Space' key\n                this.toggleContentFromKeyboard(event);\n            },\n        };\n        this.keyBoardActions(event, keyBoardKeys);\n    }\n\n    /**\n     * Hide and focus on keypress\n     * @param {Event} event - Event object\n     */\n    onTooltipKeyboardControl(event) {\n        this.state.isFocusDisabled = false;\n        const keyBoardKeys = {\n            Tab: () => { // 'TAB' key\n                this.onTabKey(event);\n            },\n            Escape: () => { // 'Escape' key\n                this.selectors.target.focus();\n                this.hideContent();\n                this.unbindCustomTooltipEvents();\n            },\n        };\n\n        this.keyBoardActions(event, keyBoardKeys);\n    }\n\n    /**\n     * Tab key event\n     *\n     * @param {Object} event Event object\n    */\n    onTabKey(event) {\n        super.focusTrap(this.tooltip, event);\n    }\n\n    /**\n     * Tooltip Close click event handler\n     */\n    onTooltipCloseClick() {\n        if (!this.state.isFocusDisabled) {\n            this.selectors.target.focus();\n        }\n\n        this.hideContent();\n        this.unbindCustomTooltipEvents();\n    }\n\n    /**\n     * Toggle content on key event\n     * @param {Event} event - Event object\n     */\n    toggleContentFromKeyboard(event) {\n        this.state.isFocusDisabled = false;\n        this.toggleContent(event);\n    }\n\n    /**\n     * Toggle content\n     * @param {Event} event - Event object\n     */\n    toggleContent(event) {\n        if (event) {\n            event.preventDefault();\n            event.stopImmediatePropagation();\n        }\n\n        if (this.state.isActive) {\n            this.hideContent();\n        } else {\n            this.showContent();\n        }\n    }\n\n    /**\n     * MouseDown/TouchStart event handler\n     * @param { Object } event Event object\n     */\n    onDocumentClick(event) {\n        const { target, relatedTarget } = event;\n\n        if (this.tooltip.contains(target) || this.tooltip.contains(relatedTarget) || relatedTarget === this.tooltip) {\n            return;\n        }\n        this.state.isFocusDisabled = true;\n        if (this.state.isActive) {\n            if (this.options.showOnClick) {\n                if (!isChildOf(event.target, this.tooltip) && !isChildOf(event.target, this.selectors.target)) {\n                    this.hideContent();\n                    this.unbindCustomTooltipEvents();\n                }\n            } else {\n                event.preventDefault();\n                this.hideContent();\n                this.unbindCustomTooltipEvents();\n            }\n        }\n    }\n\n    /**\n     * Add modal dialog window markup for a tooltip\n     */\n    addDialogMarkup() {\n        if (!this.state.isFocusDisabled || this.options.showOnClick) {\n            this.showAriaLink();\n            this.showCloseButton();\n        }\n        this.tooltip.setAttribute('role', 'dialog');\n        this.tooltip.setAttribute('aria-modal', 'true');\n        this.tooltip.setAttribute('aria-labelledby', this.setDialogTitle());\n    }\n\n    /**\n     * Check if explicit tooltip title is defined. Otherwise the target element is used as a title\n     * @returns {string} - title ID\n     */\n    setDialogTitle() {\n        const tooltipTitle = `tooltip-title-${this.id}`;\n        // Check if tooltip title was defined by merchandiser and if yes, make the ID unique\n        const tooltipTitleElement = this.tooltip.querySelector('#tooltip-title');\n        if (tooltipTitleElement) {\n            tooltipTitleElement.setAttribute('id', `tooltip-title-${this.id}`);\n        }\n\n        return tooltipTitle;\n    }\n\n    /**\n     * Remove modal dialog window markup for a tooltip\n     */\n    removeDialogMarkup() {\n        if (!this.state.isFocusDisabled || this.options.showOnClick) {\n            this.hideAriaLink();\n            this.hideCloseButton();\n        }\n        this.tooltip.removeAttribute('role');\n        this.tooltip.removeAttribute('aria-modal');\n        this.tooltip.removeAttribute('aria-labelledby');\n    }\n\n    /**\n     * Show aria link on keyboard navigation\n     */\n    showAriaLink() {\n        if (this.selectors.tooltipAriaLink) {\n            this.selectors.tooltipAriaLink.classList.remove('h-hidden');\n        }\n    }\n\n    /**\n     * Hide aria link on keyboard navigation\n     */\n    hideAriaLink() {\n        if (this.selectors.tooltipAriaLink) {\n            this.selectors.tooltipAriaLink.classList.add('h-hidden');\n        }\n    }\n\n    /**\n     * Show close button on keyboard navigation\n     */\n    showCloseButton() {\n        this.selectors.tooltipClose.classList.remove('h-hidden');\n    }\n\n    /**\n     * Hide close button on keyboard navigation\n     */\n    hideCloseButton() {\n        this.selectors.tooltipClose.classList.add('h-hidden');\n    }\n\n    /**\n     * Hide content on mouse iteraction\n     */\n    hideContentFromMouse() {\n        this.hideContent();\n    }\n\n    /**\n     * Show content on mouse enter\n     */\n    onMouseEnter() {\n        this.state.isFocusDisabled = true;\n        if (this.state.isForceContentLoad) {\n            this.showContent(true);\n        } else {\n            this.showContent();\n        }\n    }\n\n    /**\n     * Hide content on mouse leave\n     *  @param {Event} event - Event object\n     */\n    onMouseLeave(event) {\n        if (event) {\n            const { target, relatedTarget } = event;\n\n            if (this.tooltip.contains(target) || this.tooltip.contains(relatedTarget) || relatedTarget === this.tooltip) {\n                return;\n            }\n        }\n        this.hideContentFromMouse();\n    }\n\n    /**\n     * Click event handler\n     * @param {Event} event - Event object\n     */\n    onClick(event) {\n        event.preventDefault();\n\n        if ((event && isFiresTouchEvents(event)) || this.options.showOnClick) {\n            if (!this.state.isActive) {\n                Event.emit('tooltip.touch.opened', this.id);\n            }\n            this.state.isFocusDisabled = false;\n            this.toggleContent(event);\n        }\n    }\n\n    /**\n     * Hide tooltip when another is open\n     * @param {String} id parent component ID\n     */\n    onTooltipTouchOpened(id) {\n        if (id !== this.id && this.state.isActive) {\n            this.state.isFocusDisabled = true;\n            this.hideContent();\n        }\n    }\n\n    /**\n     * Hide content on tooltip mouse leave\n     */\n    onContentMouseLeave() {\n        this.hideContent();\n        this.unbindCustomTooltipEvents();\n    }\n\n    /**\n     * Shows/hides on keypress\n     * @param {Event} event - Event object\n     * @param {Object} obj - Code key object\n     */\n    keyBoardActions(event, obj) {\n        if (obj[event.key]) {\n            obj[event.key]();\n        }\n    }\n\n    /**\n     * Shows a tooltip\n     */\n    showContent() {\n        if (this.state.isActive || !this.isContentValid()) {\n            return;\n        }\n        if (!this.state.isFocusDisabled) {\n            this.saveLastFocusState();\n        }\n\n        this.state.isActive = true;\n        this.selectors.target.setAttribute('aria-expanded', 'true');\n        this.tooltip.classList.add(this.classes.activeModifier);\n\n        if (this.selectors.target.closest('[data-js-header]')) {\n            Event.emit('header.focused');\n        }\n\n        if (!this.popperInstance) {\n            document.body.appendChild(this.tooltip);\n            this.createPopper();\n        } else {\n            this.initAccessibility();\n        }\n\n        if (!this.state.isFocusDisabled) {\n            AccessibilityService.addNewState();\n        }\n\n        if (!this.state.hasContent) {\n            this.setContent(this.options.text);\n        }\n\n        this.updatePopper();\n    }\n\n    /**\n    * Check if tooltip contains component\n    */\n    checkComponent() {\n        if (this.tooltip.querySelector('[data-component]')) {\n            this.state.isForceContentLoad = true;\n        } else {\n            this.state.isForceContentLoad = false;\n        }\n    }\n\n    /**\n     * Document keydown handler\n     * @param { Object } event Event object\n     */\n    onDocumentKeyDown(event) {\n        if (this.state.isActive && event && ['Escape'].indexOf(event.key) !== -1) {\n            event.preventDefault();\n            event.stopImmediatePropagation();\n            this.hideContent();\n        }\n    }\n\n    /**\n     * Update popper position when window is resized\n     */\n    onResize() {\n        this.updatePopper();\n    }\n\n    /**\n     * Content is valid only if at least a content is passed somewhere\n     *\n     * @returns {Boolean} - true or false\n     */\n    isContentValid() {\n        return this.options.text && this.options.text !== '';\n    }\n\n    /**\n     * Update the text of the tooltip\n     *\n     * @param {String} content - tooltip text\n     */\n    setContent(content) {\n        if (content) {\n            if (this.popperInstance) {\n                this.popperInstance.update();\n            }\n            this.state.hasContent = true;\n            this.selectors.tooltipBody.innerHTML = content;\n        }\n    }\n\n    /**\n     * Getter which defines options object for popper.js module\n     *\n     * @return {Object} - Options for popper.js module\n     */\n    get popperOptions() {\n        return {\n            placement: this.options.position,\n            eventsEnabled: this.options.eventsEnabled,\n            removeOnDestroy: this.options.removeOnDestroy,\n            strategy: this.options.strategy,\n            modifiers: [\n                {\n                    name: 'arrow',\n                    options: {\n                        element: this.selectors.tooltipArrow,\n                        padding: this.options.tooltipArrowOffset,\n                    },\n                },\n                {\n                    name: 'offset',\n                    options: {\n                        offset: this.options.tooltipOffset,\n                    },\n                },\n                {\n                    name: 'preventOverflow',\n                    options: {\n                        tether: this.options.preventOverflow,\n                        rootBoundary: document.body,\n                        padding: this.options.preventOverflowOffset,\n                    },\n                },\n                {\n                    name: 'flip',\n                    options: {\n                        flipVariations: this.options.flip,\n                        padding: 0,\n                    },\n                },\n                {\n                    name: 'computeStyles',\n                    options: {\n                        gpuAcceleration: false,\n                    },\n                },\n                {\n                    name: 'eventListeners',\n                    options: {\n                        scroll: this.options.scroll,\n                        resize: this.options.resize,\n                    },\n                },\n            ],\n            onFirstUpdate: this.onPopperCreate.bind(this),\n        };\n    }\n\n    /**\n     * Creates a popper.js instance, which sets initial position or updates position of the tooltip\n     *\n     * @returns {Object} popper\n     */\n    createPopper() {\n        this.popper = SystemJS.import('@popperjs/core').then(({ createPopper }) => {\n            if (this.state.isActive) {\n                this.popperInstance = createPopper(this.selectors.target, this.tooltip, this.popperOptions);\n            }\n        });\n\n        return this.popper;\n    }\n\n    /**\n     * Re-calculate popper position\n     */\n    updatePopper() {\n        if (this.popperInstance) {\n            this.popperInstance.forceUpdate();\n        }\n    }\n\n    /**\n     * onCreate Popper callback\n     */\n    onPopperCreate() {\n        if (this.options.width) {\n            this.setWidth(this.options.width);\n        }\n        AOS.refresh();\n        this.initAccessibility();\n    }\n\n    /**\n     * Init accessibility actions for the opened tooltip\n     * - mask page from a screen reader (only tooltip content must be visible)\n     * - set up a keyboard trap\n     */\n    initAccessibility() {\n        if (this.state.isActive) {\n            this.addDialogMarkup();\n            if (!this.state.isFocusDisabled) {\n                this.initModalPattern(this.tooltip);\n                this.setFocusedOrder(this.tooltip);\n            }\n            this.bindCustomTooltipEvents(); // bind events on keydown actions inside Tooltip\n        }\n    }\n\n    /**\n     * Set the popper width if defined in options\n     * @param {number} width - tooltip width\n     */\n    setWidth(width) {\n        if (this.popperInstance && this.tooltip) {\n            this.tooltip.style.width = `${width}px`;\n            this.popperInstance.forceUpdate();\n        }\n    }\n\n    /**\n     * Destroy the popper.js instance\n     */\n    destroyPopper() {\n        if (this.popperInstance) {\n            this.popperInstance.destroy();\n            this.popperInstance = null;\n        }\n    }\n\n    /**\n     * Hides a tooltip\n     */\n    hideContent() {\n        if (this.state.isActive) {\n            if (!this.state.isFocusDisabled) {\n                this.destroyModalPattern();\n                this.resetFocusedOrder(this.tooltip);\n            }\n            Event.emit('tooltip.hide.content', this.id);\n            this.tooltip.classList.remove(this.classes.activeModifier);\n            this.selectors.target.setAttribute('aria-expanded', 'false');\n            this.state.isActive = false;\n\n            this.removeDialogMarkup();\n\n            if (this.options.destroyOnHide) {\n                this.destroyPopper();\n            }\n            if (this.state.isFocusDisabled && this.selectors.target.closest('[data-js-header]')) {\n                Event.emit('header.unfocused');\n            }\n\n            this.options.afterClose(this.element);\n\n            if (!this.state.isFocusDisabled) {\n                AccessibilityService.restorePrevState();\n            }\n        }\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        off(this.element);\n        off(this.selectors.target);\n\n        this.destroyPopper();\n        this.unbindCustomTooltipEvents();\n        off(`keydown.${this.id}`, document);\n\n        Event.removeListener('tooltip.touch.opened', this.onTooltipTouchOpened, this);\n\n        if (isTouchDevice() || this.options.showOnClick) {\n            off(`click.${this.id}`, document);\n        }\n    }\n}\n"],"mappings":"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","ignoreList":[]}