mirror of
https://github.com/twbs/bootstrap.git
synced 2024-12-01 13:24:25 +01:00
1 line
19 KiB
Plaintext
1 line
19 KiB
Plaintext
{"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.jQuery\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 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 (err) {\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 element.dispatchEvent(new Event(TRANSITION_END))\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' : 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/eventHandler'\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.hide()\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(withoutTimeout) {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n EventHandler.trigger(this._element, 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 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(true)\n )\n }\n\n _close() {\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 // 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","jQuery","window","toType","obj","toString","call","match","toLowerCase","getTransitionDurationFromElement","element","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","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","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","withoutTimeout","contains","_close","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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"} |