{"version":3,"file":"Toaster.js","names":["Toaster","a","setters","Component","default","mix","deepMerge","on","off","cookie","Accessibility","Event","DataLayer","execute","with","constructor","element","options","arguments","length","autoDisplay","autoDisplayTreshold","keepCollapsed","cookieDuration","showOverlay","_scrollable","ariaLabel","initCache","selectors","declineBtn","querySelector","closeBtn","closeDialogBtn","heading","container","titleBtn","initState","state","isOpen","isFirstOpen","lastScrollTop","bindEvents","onClose","bind","onDecline","onTriggerToggleDisplay","onKeyboardControl","onToasterClose","onOverlayCloseBefore","onModalOpen","afterInit","isHidden","remove","emit","window","scrollY","document","documentElement","scrollTop","setTimeout","toggleDisplay","onScroll","isAutoDisplay","handleDisplay","scrollHeight","isScrollDown","close","e","stopPropagation","declineWithCloseButton","closeOverlay","duration","parseInt","setCookie","setAccessibility","setAttribute","removeAccessibility","removeAttribute","onTabKey","event","focusTrap","key","style","getComputedStyle","display","get","classList","isUnblockScrollForAll","destroyModalPattern","add","preventClick","openOverlay","open","analytics","initModalPattern","forceOpen","destroy","removeListener"],"sources":["components/global/Toaster.js"],"sourcesContent":["import Component from 'core/Component';\nimport { mix } from 'core/mixwith';\nimport { deepMerge } from 'toolbox/deepMerge';\nimport { on, off } from 'toolbox/event';\nimport { cookie } from 'toolbox/cookie';\nimport Accessibility from 'mixins/Accessibility';\nimport { Event } from 'services/EventEmitter';\nimport DataLayer from 'services/DataLayer';\n\n/**\n * This is a description of the Toaster constructor function.\n * @class\n * @classdesc This is a description of the Toaster class. (must be edited)\n * @extends Component\n */\nexport default class Toaster extends mix(Component).with(Accessibility) {\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 super(element, deepMerge({\n // auto expand after {autoDisplay} ms\n autoDisplay: 0,\n // set to `0` to disable it\n // scroll treshold to display the toaster and requires autoDisplay to equal 0\n autoDisplayTreshold: 300,\n // expand only on click (from collapsed state), ignore autoDisplay and autoDisplayTreshold\n keepCollapsed: true,\n // days, to set cookie lifetime\n cookieDuration: 365,\n // show overlay and add event listener on overlay close\n showOverlay: false,\n _scrollable: true,\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=\"toaster-title\" will be pronounced\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.selectors.declineBtn = this.element.querySelector('[data-js-toaster-decline]');\n this.selectors.closeBtn = this.element.querySelector('[data-js-toaster-close]');\n this.selectors.closeDialogBtn = this.element.querySelector('[data-js-toaster-dialog-close]');\n this.selectors.heading = this.element.querySelector('[data-js-toaster-heading]');\n this.selectors.container = this.element.querySelector('[data-js-toaster-container]');\n this.selectors.titleBtn = this.element.querySelector('[data-js-toaster-button]');\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.isOpen = false;\n this.state.isFirstOpen = false;\n this.state.lastScrollTop = 0;\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 on('click', this.selectors.closeBtn, this.onClose.bind(this));\n on('click', this.selectors.closeDialogBtn, this.onClose.bind(this));\n if (this.selectors.declineBtn) {\n on('click', this.selectors.declineBtn, this.onDecline.bind(this));\n }\n on('click', this.selectors.heading, this.onTriggerToggleDisplay.bind(this));\n on('keydown', this.selectors.container, this.onKeyboardControl.bind(this));\n Event.on('toaster.close', this.onToasterClose, this);\n if (this.options.showOverlay) {\n Event.on('overlay.close.before', this.onOverlayCloseBefore, this);\n }\n Event.on('modal.open', this.onModalOpen, this);\n }\n\n /**\n * After init\n * Run any script after the component is fully initialized\n */\n afterInit() {\n if (this.isHidden()) {\n this.remove();\n }\n\n Event.emit('registry.registerChildren', this.element);\n this.state.lastScrollTop = window.scrollY || document.documentElement.scrollTop;\n const { autoDisplay } = this.options;\n if (autoDisplay && typeof autoDisplay === 'number' && !this.options.keepCollapsed && !this.state.isFirstOpen) {\n setTimeout(() => this.toggleDisplay(true), autoDisplay);\n }\n }\n\n /**\n * Handlers to onscroll event\n */\n onScroll() {\n const isAutoDisplay = this.options.autoDisplay === 0 && this.options.autoDisplayTreshold > 0;\n if (isAutoDisplay && !this.state.isFirstOpen && !this.options.keepCollapsed) {\n this.handleDisplay();\n }\n }\n\n /**\n * Show/Hide toaster based on scroll direction\n */\n handleDisplay() {\n const scrollTop = window.scrollY || document.documentElement.scrollTop;\n const scrollHeight = scrollTop - this.state.lastScrollTop;\n const isScrollDown = scrollTop > this.state.lastScrollTop;\n\n if (isScrollDown) {\n if (scrollHeight >= this.options.autoDisplayTreshold) {\n this.toggleDisplay(true);\n }\n } else {\n this.state.lastScrollTop = scrollTop <= 0 ? 0 : scrollTop; // For Mobile or negative scrolling\n }\n }\n\n /**\n * Method to handle toaster.close event\n */\n onToasterClose() {\n this.remove();\n }\n\n /**\n * Method to be executed right before overlay close\n */\n onOverlayCloseBefore() {\n this.close();\n }\n\n /**\n * Method to handle modal.open event\n */\n onModalOpen() {\n this.close();\n }\n\n /**\n * Method to handle close btn clicks. Might be two cases:\n * 1) when toaster is collapsed, it removes toaster from page\n * 2) when toaster is expanded, it collapses toaster\n * @param {Object} e event object\n */\n onClose(e) {\n e.stopPropagation();\n if (this.options.declineWithCloseButton) {\n this.onDecline();\n } else if (!this.state.isOpen) {\n this.remove();\n } else {\n this.close();\n }\n }\n\n /**\n * Method to handle decline btn clicks. Sets cookie and removes toaster from page\n */\n onDecline() {\n this.closeOverlay();\n let duration = parseInt(this.options.cookieDuration, 10);\n duration = typeof duration === 'number' ? duration : 0;\n if (duration > 0) {\n cookie.setCookie('toasterDisabled', 1, duration);\n }\n this.remove();\n }\n\n /**\n * Method to handle callback calls\n */\n onTriggerToggleDisplay() {\n this.toggleDisplay();\n }\n\n /**\n * Accessibility handling\n */\n setAccessibility() {\n // inform screen reader users that a custom dialog is being inserted\n this.selectors.container.setAttribute('role', 'dialog');\n this.selectors.container.setAttribute('aria-modal', 'true');\n if (this.options.ariaLabel) {\n this.selectors.container.setAttribute('aria-label', this.options.ariaLabel);\n } else {\n this.selectors.container.setAttribute('aria-labelledby', 'toaster-title');\n }\n }\n\n /**\n * Remove accessibility handling\n */\n removeAccessibility() {\n this.selectors.container.removeAttribute('role');\n this.selectors.container.removeAttribute('aria-modal');\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 /**\n * Keydown event handler\n *\n * @param {Object} event Event object\n */\n onKeyboardControl(event) {\n if (this.state.isOpen) {\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 /**\n * Check if Toaster is hidden through CSS\n *\n * @returns {Boolean} - true or false\n */\n isHidden() {\n const style = window.getComputedStyle(this.element);\n return (style.display === 'none') || DataLayer.get('page.isPageDesignerEditMode', false);\n }\n\n /**\n * Method to handle Toaster complete removal\n */\n remove() {\n this.element.remove();\n }\n\n /**\n * Method to close Toaster\n */\n close() {\n if (this.state.isOpen) {\n this.closeOverlay();\n this.state.isOpen = false;\n this.element.classList.remove('m-expanded');\n\n Event.emit('page.scroll.enabled', { isUnblockScrollForAll: this.options.showOverlay });\n this.removeAccessibility();\n this.destroyModalPattern();\n this.selectors.closeBtn.classList.remove('h-hidden');\n this.selectors.closeDialogBtn.classList.add('h-hidden');\n this.selectors.titleBtn.removeAttribute('tabindex');\n this.selectors.titleBtn.removeAttribute('aria-hidden');\n this.selectors.titleBtn.setAttribute('aria-expanded', false);\n }\n }\n\n /**\n * Method to close overlay\n */\n closeOverlay() {\n if (this.options.showOverlay) {\n Event.emit('overlay.close', {\n preventClick: false,\n });\n }\n }\n\n /**\n * Method to open overlay\n */\n openOverlay() {\n if (this.options.showOverlay) {\n Event.emit('overlay.open', {\n preventClick: false,\n });\n }\n }\n\n /**\n * Method to open Toaster\n */\n open() {\n Event.emit('page.scroll.disabled', this.options.showOverlay);\n Event.emit('analytics.event', this.analytics);\n\n this.openOverlay();\n this.state.isOpen = true;\n this.state.isFirstOpen = true;\n this.element.classList.add('m-expanded');\n this.setAccessibility();\n this.selectors.titleBtn.setAttribute('tabindex', '-1');\n this.selectors.titleBtn.setAttribute('aria-hidden', 'true');\n this.selectors.titleBtn.setAttribute('aria-expanded', true);\n this.selectors.closeBtn.classList.add('h-hidden');\n this.selectors.closeDialogBtn.classList.remove('h-hidden');\n\n this.initModalPattern(this.selectors.container);\n }\n\n /**\n * Toggle toaster display\n * @param {Boolean} forceOpen true to force toaster content to be displayed\n */\n toggleDisplay(forceOpen) {\n if (forceOpen) {\n if (!this.state.isOpen) {\n this.open();\n }\n } else if (this.state.isOpen) {\n this.close();\n } else {\n this.open();\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('click', this.selectors.closeBtn);\n if (this.selectors.declineBtn) {\n off('click', this.selectors.declineBtn);\n }\n off('click', this.selectors.heading);\n off('click', this.selectors.closeDialogBtn);\n off('keydown', this.selectors.container);\n Event.removeListener('toaster.close', this.onToasterClose, this);\n if (this.options.showOverlay) {\n Event.removeListener('overlay.close.before', this.onOverlayCloseBefore, this);\n }\n Event.removeListener('modal.open', this.onModalOpen, this);\n }\n}\n"],"mappings":"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","ignoreList":[]}