1
|
{"version":3,"file":"toast.js","sources":["../src/util/index.js","../src/toast.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\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 SHOWING: 'showing'\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 Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n EventHandler.trigger(this._element, Event.SHOW)\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n EventHandler.trigger(this._element, Event.HIDE)\n\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\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 EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide()\n )\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\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 static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\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}\n\nexport default Toast\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getTransitionDurationFromElement","element","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","document","createEvent","initEvent","dispatchEvent","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","NAME","VERSION","DATA_KEY","EVENT_KEY","Event","CLICK_DISMISS","HIDE","HIDDEN","SHOW","SHOWN","ClassName","FADE","SHOWING","DefaultType","animation","autohide","delay","Default","Selector","DATA_DISMISS","Toast","_element","_config","_getConfig","_timeout","_setListeners","Data","setData","show","EventHandler","trigger","classList","add","complete","remove","hide","one","contains","dispose","clearTimeout","off","removeData","Manipulator","getDataAttributes","constructor","on","_jQueryInterface","each","data","getData","TypeError","_getInstance","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"}
|