{"version":3,"file":"toast.js","sources":["../src/toast.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.1.3'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Event = {\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE : 'fade',\n HIDE : 'hide',\n SHOW : 'show'\n}\n\nconst DefaultType = {\n animation : 'boolean',\n autohide : 'boolean',\n delay : 'number'\n}\n\nconst Default = {\n animation : true,\n autohide : true,\n delay : 500\n}\n\nconst Selector = {\n DATA_DISMISS : '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n show() {\n $(this._element).trigger(Event.SHOW)\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n $(this._element).trigger(Event.SHOWN)\n\n if (this._config.autohide) {\n this.hide()\n }\n }\n\n this._element.classList.add(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n hide(withoutTimeout) {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n $(this._element).trigger(Event.HIDE)\n\n if (withoutTimeout) {\n this._close()\n } else {\n this._timeout = setTimeout(() => {\n this._close()\n }, this._config.delay)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n $(this._element).off(Event.CLICK_DISMISS)\n\n $.removeData(this._element, DATA_KEY)\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...$(this._element).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n $(this._element).on(\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide(true)\n )\n }\n\n _close() {\n const complete = () => {\n $(this._element).trigger(Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n $element.data(DATA_KEY, data)\n }\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Toast._jQueryInterface\n$.fn[NAME].Constructor = Toast\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n}\n\nexport default Toast\n"],"names":["NAME","VERSION","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","$","fn","Event","CLICK_DISMISS","HIDE","HIDDEN","SHOW","SHOWN","ClassName","FADE","DefaultType","animation","autohide","delay","Default","Selector","DATA_DISMISS","Toast","element","config","_element","_config","_getConfig","_timeout","_setListeners","show","trigger","classList","add","complete","hide","transitionDuration","Util","getTransitionDurationFromElement","one","TRANSITION_END","emulateTransitionEnd","withoutTimeout","contains","_close","setTimeout","dispose","clearTimeout","remove","off","removeData","data","typeCheckConfig","constructor","on","_jQueryInterface","each","$element","TypeError","Constructor","noConflict"],"mappings":"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"}