Welcome to mirror list, hosted at ThFree Co, Russian Federation.

toast.js.map « dist « js - github.com/twbs/bootstrap.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: e3b8a8e2bf54246f0fa56c23acbb01927cea0041 (plain)
1
{"version":3,"file":"toast.js","sources":["../src/util/index.js","../src/toast.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha2): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n  if (obj === null || obj === undefined) {\n    return `${obj}`\n  }\n\n  return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n  do {\n    prefix += Math.floor(Math.random() * MAX_UID)\n  } while (document.getElementById(prefix))\n\n  return prefix\n}\n\nconst getSelector = 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() : null\n  }\n\n  return selector\n}\n\nconst getSelectorFromElement = element => {\n  const selector = getSelector(element)\n\n  if (selector) {\n    return document.querySelector(selector) ? selector : null\n  }\n\n  return null\n}\n\nconst getElementFromSelector = element => {\n  const selector = getSelector(element)\n\n  return selector ? document.querySelector(selector) : null\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).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 isVisible = element => {\n  if (!element) {\n    return false\n  }\n\n  if (element.style && element.parentNode && element.parentNode.style) {\n    const elementStyle = getComputedStyle(element)\n    const parentNodeStyle = getComputedStyle(element.parentNode)\n\n    return elementStyle.display !== 'none' &&\n      parentNodeStyle.display !== 'none' &&\n      elementStyle.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\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n  const { jQuery } = window\n\n  if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n    return jQuery\n  }\n\n  return null\n}\n\nexport {\n  getjQuery,\n  TRANSITION_END,\n  getUID,\n  getSelectorFromElement,\n  getElementFromSelector,\n  getTransitionDurationFromElement,\n  triggerTransitionEnd,\n  isElement,\n  emulateTransitionEnd,\n  typeCheckConfig,\n  isVisible,\n  findShadowRoot,\n  noop,\n  reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha2): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n  getjQuery,\n  TRANSITION_END,\n  emulateTransitionEnd,\n  getTransitionDurationFromElement,\n  reflow,\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 = '5.0.0-alpha2'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLICK_DISMISS = `click.dismiss${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'\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\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]'\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    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      this._element.classList.add(CLASS_NAME_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(CLASS_NAME_HIDE)\n    reflow(this._element)\n    this._element.classList.add(CLASS_NAME_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(CLASS_NAME_SHOW)) {\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)\n      EventHandler.trigger(this._element, EVENT_HIDDEN)\n    }\n\n    this._element.classList.remove(CLASS_NAME_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    this._clearTimeout()\n\n    if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n      this._element.classList.remove(CLASS_NAME_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(NAME, config, this.constructor.DefaultType)\n\n    return config\n  }\n\n  _setListeners() {\n    EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n  }\n\n  _clearTimeout() {\n    clearTimeout(this._timeout)\n    this._timeout = null\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n *  add .toast to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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","toType","obj","undefined","toString","call","match","toLowerCase","getTransitionDurationFromElement","element","window","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","reflow","offsetHeight","getjQuery","jQuery","document","body","hasAttribute","NAME","VERSION","DATA_KEY","EVENT_KEY","EVENT_CLICK_DISMISS","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","SELECTOR_DATA_DISMISS","Toast","_element","_config","_getConfig","_timeout","_setListeners","Data","setData","show","showEvent","EventHandler","trigger","defaultPrevented","_clearTimeout","classList","add","complete","remove","hide","one","contains","hideEvent","dispose","off","removeData","Manipulator","getDataAttributes","constructor","on","clearTimeout","jQueryInterface","each","data","getData","TypeError","getInstance","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"}