{"version":3,"sources":["toast.js"],"names":["BaseComponent","EventHandler","enableDismissTrigger","defineJQueryPlugin","reflow","NAME","DATA_KEY","EVENT_KEY","concat","EVENT_MOUSEOVER","EVENT_MOUSEOUT","EVENT_FOCUSIN","EVENT_FOCUSOUT","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","CLASS_NAME_FADE","CLASS_NAME_HIDE","CLASS_NAME_SHOW","CLASS_NAME_SHOWING","DefaultType","animation","autohide","delay","Default","Toast","element","config","_classCallCheck","this","_this","_callSuper","_timeout","_hasMouseInteraction","_hasKeyboardInteraction","_setListeners","_inherits","_createClass","key","value","_this2","trigger","_element","defaultPrevented","_clearTimeout","_config","classList","add","remove","_queueCallback","_maybeScheduleHide","_this3","isShown","hideEvent","_get","_getPrototypeOf","prototype","call","contains","_this4","setTimeout","hide","event","isInteracting","type","nextElement","relatedTarget","_this5","on","_onInteraction","clearTimeout","get","each","data","getOrCreateInstance","TypeError"],"mappings":"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","file":"toast.js","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport { defineJQueryPlugin, reflow } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'toast'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`\nconst EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_FOCUSOUT = `focusout${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide' // @deprecated - kept here only for backwards compatibility\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 5000\n}\n\n/**\n * Class definition\n */\n\nclass Toast extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._timeout = null\n this._hasMouseInteraction = false\n this._hasKeyboardInteraction = false\n this._setListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n show() {\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._clearTimeout()\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n EventHandler.trigger(this._element, EVENT_SHOWN)\n\n this._maybeScheduleHide()\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE) // @deprecated\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING)\n\n this._queueCallback(complete, this._element, this._config.animation)\n }\n\n hide() {\n if (!this.isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE) // @deprecated\n this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.add(CLASS_NAME_SHOWING)\n this._queueCallback(complete, this._element, this._config.animation)\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this.isShown()) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n super.dispose()\n }\n\n isShown() {\n return this._element.classList.contains(CLASS_NAME_SHOW)\n }\n\n // Private\n\n _maybeScheduleHide() {\n if (!this._config.autohide) {\n return\n }\n\n if (this._hasMouseInteraction || this._hasKeyboardInteraction) {\n return\n }\n\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n\n _onInteraction(event, isInteracting) {\n switch (event.type) {\n case 'mouseover':\n case 'mouseout': {\n this._hasMouseInteraction = isInteracting\n break\n }\n\n case 'focusin':\n case 'focusout': {\n this._hasKeyboardInteraction = isInteracting\n break\n }\n\n default: {\n break\n }\n }\n\n if (isInteracting) {\n this._clearTimeout()\n return\n }\n\n const nextElement = event.relatedTarget\n if (this._element === nextElement || this._element.contains(nextElement)) {\n return\n }\n\n this._maybeScheduleHide()\n }\n\n _setListeners() {\n EventHandler.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true))\n EventHandler.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false))\n EventHandler.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true))\n EventHandler.on(this._element, EVENT_FOCUSOUT, event => this._onInteraction(event, false))\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Toast.getOrCreateInstance(this, config)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Toast)\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Toast)\n\nexport default Toast\n"]}