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

modal.js.map « dist « js - github.com/twbs/bootstrap.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 1d9ac43a623634512af5b0aa77b81fdffe3704ae (plain)
1
{"version":3,"file":"modal.js","sources":["../src/util/index.js","../src/modal.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): 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-bs-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 = Number.parseFloat(transitionDuration)\n  const floatTransitionDelay = Number.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 (Number.parseFloat(transitionDuration) + Number.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-bs-no-jquery')) {\n    return jQuery\n  }\n\n  return null\n}\n\nconst onDOMContentLoaded = callback => {\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', callback)\n  } else {\n    callback()\n  }\n}\n\nexport {\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  getjQuery,\n  onDOMContentLoaded\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n  getjQuery,\n  onDOMContentLoaded,\n  TRANSITION_END,\n  emulateTransitionEnd,\n  getElementFromSelector,\n  getTransitionDurationFromElement,\n  isVisible,\n  reflow,\n  typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '5.0.0-alpha3'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEY = 'Escape'\n\nconst Default = {\n  backdrop: true,\n  keyboard: true,\n  focus: true,\n  show: true\n}\n\nconst DefaultType = {\n  backdrop: '(boolean|string)',\n  keyboard: 'boolean',\n  focus: 'boolean',\n  show: 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n  constructor(element, config) {\n    this._config = this._getConfig(config)\n    this._element = element\n    this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, element)\n    this._backdrop = null\n    this._isShown = false\n    this._isBodyOverflowing = false\n    this._ignoreBackdropClick = false\n    this._isTransitioning = false\n    this._scrollbarWidth = 0\n    Data.setData(element, DATA_KEY, this)\n  }\n\n  // Getters\n\n  static get VERSION() {\n    return VERSION\n  }\n\n  static get Default() {\n    return Default\n  }\n\n  // Public\n\n  toggle(relatedTarget) {\n    return this._isShown ? this.hide() : this.show(relatedTarget)\n  }\n\n  show(relatedTarget) {\n    if (this._isShown || this._isTransitioning) {\n      return\n    }\n\n    if (this._element.classList.contains(CLASS_NAME_FADE)) {\n      this._isTransitioning = true\n    }\n\n    const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n      relatedTarget\n    })\n\n    if (this._isShown || showEvent.defaultPrevented) {\n      return\n    }\n\n    this._isShown = true\n\n    this._checkScrollbar()\n    this._setScrollbar()\n\n    this._adjustDialog()\n\n    this._setEscapeEvent()\n    this._setResizeEvent()\n\n    EventHandler.on(this._element,\n      EVENT_CLICK_DISMISS,\n      SELECTOR_DATA_DISMISS,\n      event => this.hide(event)\n    )\n\n    EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {\n      EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => {\n        if (event.target === this._element) {\n          this._ignoreBackdropClick = true\n        }\n      })\n    })\n\n    this._showBackdrop(() => this._showElement(relatedTarget))\n  }\n\n  hide(event) {\n    if (event) {\n      event.preventDefault()\n    }\n\n    if (!this._isShown || this._isTransitioning) {\n      return\n    }\n\n    const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n    if (hideEvent.defaultPrevented) {\n      return\n    }\n\n    this._isShown = false\n    const transition = this._element.classList.contains(CLASS_NAME_FADE)\n\n    if (transition) {\n      this._isTransitioning = true\n    }\n\n    this._setEscapeEvent()\n    this._setResizeEvent()\n\n    EventHandler.off(document, EVENT_FOCUSIN)\n\n    this._element.classList.remove(CLASS_NAME_SHOW)\n\n    EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n    EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS)\n\n    if (transition) {\n      const transitionDuration = getTransitionDurationFromElement(this._element)\n\n      EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n      emulateTransitionEnd(this._element, transitionDuration)\n    } else {\n      this._hideModal()\n    }\n  }\n\n  dispose() {\n    [window, this._element, this._dialog]\n      .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n    /**\n     * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n     * Do not move `document` in `htmlElements` array\n     * It will remove `EVENT_CLICK_DATA_API` event that should remain\n     */\n    EventHandler.off(document, EVENT_FOCUSIN)\n\n    Data.removeData(this._element, DATA_KEY)\n\n    this._config = null\n    this._element = null\n    this._dialog = null\n    this._backdrop = null\n    this._isShown = null\n    this._isBodyOverflowing = null\n    this._ignoreBackdropClick = null\n    this._isTransitioning = null\n    this._scrollbarWidth = null\n  }\n\n  handleUpdate() {\n    this._adjustDialog()\n  }\n\n  // Private\n\n  _getConfig(config) {\n    config = {\n      ...Default,\n      ...config\n    }\n    typeCheckConfig(NAME, config, DefaultType)\n    return config\n  }\n\n  _showElement(relatedTarget) {\n    const transition = this._element.classList.contains(CLASS_NAME_FADE)\n    const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n\n    if (!this._element.parentNode ||\n        this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n      // Don't move modal's DOM position\n      document.body.appendChild(this._element)\n    }\n\n    this._element.style.display = 'block'\n    this._element.removeAttribute('aria-hidden')\n    this._element.setAttribute('aria-modal', true)\n    this._element.setAttribute('role', 'dialog')\n    this._element.scrollTop = 0\n\n    if (modalBody) {\n      modalBody.scrollTop = 0\n    }\n\n    if (transition) {\n      reflow(this._element)\n    }\n\n    this._element.classList.add(CLASS_NAME_SHOW)\n\n    if (this._config.focus) {\n      this._enforceFocus()\n    }\n\n    const transitionComplete = () => {\n      if (this._config.focus) {\n        this._element.focus()\n      }\n\n      this._isTransitioning = false\n      EventHandler.trigger(this._element, EVENT_SHOWN, {\n        relatedTarget\n      })\n    }\n\n    if (transition) {\n      const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n      EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n      emulateTransitionEnd(this._dialog, transitionDuration)\n    } else {\n      transitionComplete()\n    }\n  }\n\n  _enforceFocus() {\n    EventHandler.off(document, EVENT_FOCUSIN) // guard against infinite focus loop\n    EventHandler.on(document, EVENT_FOCUSIN, event => {\n      if (document !== event.target &&\n          this._element !== event.target &&\n          !this._element.contains(event.target)) {\n        this._element.focus()\n      }\n    })\n  }\n\n  _setEscapeEvent() {\n    if (this._isShown) {\n      EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n        if (this._config.keyboard && event.key === ESCAPE_KEY) {\n          event.preventDefault()\n          this.hide()\n        } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\n          this._triggerBackdropTransition()\n        }\n      })\n    } else {\n      EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS)\n    }\n  }\n\n  _setResizeEvent() {\n    if (this._isShown) {\n      EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog())\n    } else {\n      EventHandler.off(window, EVENT_RESIZE)\n    }\n  }\n\n  _hideModal() {\n    this._element.style.display = 'none'\n    this._element.setAttribute('aria-hidden', true)\n    this._element.removeAttribute('aria-modal')\n    this._element.removeAttribute('role')\n    this._isTransitioning = false\n    this._showBackdrop(() => {\n      document.body.classList.remove(CLASS_NAME_OPEN)\n      this._resetAdjustments()\n      this._resetScrollbar()\n      EventHandler.trigger(this._element, EVENT_HIDDEN)\n    })\n  }\n\n  _removeBackdrop() {\n    this._backdrop.parentNode.removeChild(this._backdrop)\n    this._backdrop = null\n  }\n\n  _showBackdrop(callback) {\n    const animate = this._element.classList.contains(CLASS_NAME_FADE) ?\n      CLASS_NAME_FADE :\n      ''\n\n    if (this._isShown && this._config.backdrop) {\n      this._backdrop = document.createElement('div')\n      this._backdrop.className = CLASS_NAME_BACKDROP\n\n      if (animate) {\n        this._backdrop.classList.add(animate)\n      }\n\n      document.body.appendChild(this._backdrop)\n\n      EventHandler.on(this._element, EVENT_CLICK_DISMISS, event => {\n        if (this._ignoreBackdropClick) {\n          this._ignoreBackdropClick = false\n          return\n        }\n\n        if (event.target !== event.currentTarget) {\n          return\n        }\n\n        if (this._config.backdrop === 'static') {\n          this._triggerBackdropTransition()\n        } else {\n          this.hide()\n        }\n      })\n\n      if (animate) {\n        reflow(this._backdrop)\n      }\n\n      this._backdrop.classList.add(CLASS_NAME_SHOW)\n\n      if (!animate) {\n        callback()\n        return\n      }\n\n      const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n      EventHandler.one(this._backdrop, TRANSITION_END, callback)\n      emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n    } else if (!this._isShown && this._backdrop) {\n      this._backdrop.classList.remove(CLASS_NAME_SHOW)\n\n      const callbackRemove = () => {\n        this._removeBackdrop()\n        callback()\n      }\n\n      if (this._element.classList.contains(CLASS_NAME_FADE)) {\n        const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n        EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n        emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n      } else {\n        callbackRemove()\n      }\n    } else {\n      callback()\n    }\n  }\n\n  _triggerBackdropTransition() {\n    const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n    if (hideEvent.defaultPrevented) {\n      return\n    }\n\n    const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n    if (!isModalOverflowing) {\n      this._element.style.overflowY = 'hidden'\n    }\n\n    this._element.classList.add(CLASS_NAME_STATIC)\n    const modalTransitionDuration = getTransitionDurationFromElement(this._dialog)\n    EventHandler.off(this._element, TRANSITION_END)\n    EventHandler.one(this._element, TRANSITION_END, () => {\n      this._element.classList.remove(CLASS_NAME_STATIC)\n      if (!isModalOverflowing) {\n        EventHandler.one(this._element, TRANSITION_END, () => {\n          this._element.style.overflowY = ''\n        })\n        emulateTransitionEnd(this._element, modalTransitionDuration)\n      }\n    })\n    emulateTransitionEnd(this._element, modalTransitionDuration)\n    this._element.focus()\n  }\n\n  // ----------------------------------------------------------------------\n  // the following methods are used to handle overflowing modals\n  // ----------------------------------------------------------------------\n\n  _adjustDialog() {\n    const isModalOverflowing =\n      this._element.scrollHeight > document.documentElement.clientHeight\n\n    if (!this._isBodyOverflowing && isModalOverflowing) {\n      this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n    }\n\n    if (this._isBodyOverflowing && !isModalOverflowing) {\n      this._element.style.paddingRight = `${this._scrollbarWidth}px`\n    }\n  }\n\n  _resetAdjustments() {\n    this._element.style.paddingLeft = ''\n    this._element.style.paddingRight = ''\n  }\n\n  _checkScrollbar() {\n    const rect = document.body.getBoundingClientRect()\n    this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n    this._scrollbarWidth = this._getScrollbarWidth()\n  }\n\n  _setScrollbar() {\n    if (this._isBodyOverflowing) {\n      // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n      //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n      // Adjust fixed content padding\n      SelectorEngine.find(SELECTOR_FIXED_CONTENT)\n        .forEach(element => {\n          const actualPadding = element.style.paddingRight\n          const calculatedPadding = window.getComputedStyle(element)['padding-right']\n          Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n          element.style.paddingRight = `${Number.parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n        })\n\n      // Adjust sticky content margin\n      SelectorEngine.find(SELECTOR_STICKY_CONTENT)\n        .forEach(element => {\n          const actualMargin = element.style.marginRight\n          const calculatedMargin = window.getComputedStyle(element)['margin-right']\n          Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n          element.style.marginRight = `${Number.parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n        })\n\n      // Adjust body padding\n      const actualPadding = document.body.style.paddingRight\n      const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n      Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n      document.body.style.paddingRight = `${Number.parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n    }\n\n    document.body.classList.add(CLASS_NAME_OPEN)\n  }\n\n  _resetScrollbar() {\n    // Restore fixed content padding\n    SelectorEngine.find(SELECTOR_FIXED_CONTENT)\n      .forEach(element => {\n        const padding = Manipulator.getDataAttribute(element, 'padding-right')\n        if (typeof padding !== 'undefined') {\n          Manipulator.removeDataAttribute(element, 'padding-right')\n          element.style.paddingRight = padding\n        }\n      })\n\n    // Restore sticky content and navbar-toggler margin\n    SelectorEngine.find(`${SELECTOR_STICKY_CONTENT}`)\n      .forEach(element => {\n        const margin = Manipulator.getDataAttribute(element, 'margin-right')\n        if (typeof margin !== 'undefined') {\n          Manipulator.removeDataAttribute(element, 'margin-right')\n          element.style.marginRight = margin\n        }\n      })\n\n    // Restore body padding\n    const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n    if (typeof padding === 'undefined') {\n      document.body.style.paddingRight = ''\n    } else {\n      Manipulator.removeDataAttribute(document.body, 'padding-right')\n      document.body.style.paddingRight = padding\n    }\n  }\n\n  _getScrollbarWidth() { // thx d.walsh\n    const scrollDiv = document.createElement('div')\n    scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n    document.body.appendChild(scrollDiv)\n    const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n    document.body.removeChild(scrollDiv)\n    return scrollbarWidth\n  }\n\n  // Static\n\n  static jQueryInterface(config, relatedTarget) {\n    return this.each(function () {\n      let data = Data.getData(this, DATA_KEY)\n      const _config = {\n        ...Default,\n        ...Manipulator.getDataAttributes(this),\n        ...(typeof config === 'object' && config ? config : {})\n      }\n\n      if (!data) {\n        data = new Modal(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](relatedTarget)\n      } else if (_config.show) {\n        data.show(relatedTarget)\n      }\n    })\n  }\n\n  static getInstance(element) {\n    return Data.getData(element, DATA_KEY)\n  }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n  const target = getElementFromSelector(this)\n\n  if (this.tagName === 'A' || this.tagName === 'AREA') {\n    event.preventDefault()\n  }\n\n  EventHandler.one(target, EVENT_SHOW, showEvent => {\n    if (showEvent.defaultPrevented) {\n      // only register focus restorer if modal will actually get shown\n      return\n    }\n\n    EventHandler.one(target, EVENT_HIDDEN, () => {\n      if (isVisible(this)) {\n        this.focus()\n      }\n    })\n  })\n\n  let data = Data.getData(target, DATA_KEY)\n  if (!data) {\n    const config = {\n      ...Manipulator.getDataAttributes(target),\n      ...Manipulator.getDataAttributes(this)\n    }\n\n    data = new Modal(target, config)\n  }\n\n  data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Modal to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n  const $ = getjQuery()\n  /* istanbul ignore if */\n  if ($) {\n    const JQUERY_NO_CONFLICT = $.fn[NAME]\n    $.fn[NAME] = Modal.jQueryInterface\n    $.fn[NAME].Constructor = Modal\n    $.fn[NAME].noConflict = () => {\n      $.fn[NAME] = JQUERY_NO_CONFLICT\n      return Modal.jQueryInterface\n    }\n  }\n})\n\nexport default Modal\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","toType","obj","undefined","toString","call","match","toLowerCase","getSelector","element","selector","getAttribute","hrefAttr","trim","getElementFromSelector","document","querySelector","getTransitionDurationFromElement","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","Number","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","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","onDOMContentLoaded","callback","readyState","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","ESCAPE_KEY","Default","backdrop","keyboard","focus","show","DefaultType","EVENT_HIDE","EVENT_HIDE_PREVENTED","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_CLICK_DATA_API","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_FADE","CLASS_NAME_SHOW","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_TOGGLE","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_config","_getConfig","_element","_dialog","SelectorEngine","findOne","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_isTransitioning","_scrollbarWidth","Data","setData","toggle","relatedTarget","hide","classList","contains","showEvent","EventHandler","trigger","defaultPrevented","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","on","event","one","target","_showBackdrop","_showElement","preventDefault","hideEvent","transition","off","remove","_hideModal","dispose","htmlElement","removeData","handleUpdate","modalBody","Node","ELEMENT_NODE","appendChild","removeAttribute","setAttribute","scrollTop","add","_enforceFocus","transitionComplete","key","_triggerBackdropTransition","_resetAdjustments","_resetScrollbar","_removeBackdrop","removeChild","animate","createElement","className","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","documentElement","clientHeight","overflowY","modalTransitionDuration","paddingLeft","paddingRight","rect","getBoundingClientRect","Math","round","left","right","innerWidth","_getScrollbarWidth","find","actualPadding","calculatedPadding","Manipulator","setDataAttribute","actualMargin","marginRight","calculatedMargin","padding","getDataAttribute","removeDataAttribute","margin","scrollDiv","scrollbarWidth","width","clientWidth","jQueryInterface","each","data","getData","getDataAttributes","TypeError","getInstance","tagName","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"}