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: 5be4b53394c6fb6e28ba76c4867b32a45197b0d1 (plain)
1
{"version":3,"file":"modal.js","sources":["../src/modal.js"],"sourcesContent":["import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME               = 'modal'\n  const VERSION            = '4.1.3'\n  const DATA_KEY           = 'bs.modal'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const DATA_API_KEY       = '.data-api'\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n  const ESCAPE_KEYCODE     = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n  const Default = {\n    backdrop : true,\n    keyboard : true,\n    focus    : true,\n    show     : true\n  }\n\n  const DefaultType = {\n    backdrop : '(boolean|string)',\n    keyboard : 'boolean',\n    focus    : 'boolean',\n    show     : 'boolean'\n  }\n\n  const Event = {\n    HIDE              : `hide${EVENT_KEY}`,\n    HIDDEN            : `hidden${EVENT_KEY}`,\n    SHOW              : `show${EVENT_KEY}`,\n    SHOWN             : `shown${EVENT_KEY}`,\n    FOCUSIN           : `focusin${EVENT_KEY}`,\n    RESIZE            : `resize${EVENT_KEY}`,\n    CLICK_DISMISS     : `click.dismiss${EVENT_KEY}`,\n    KEYDOWN_DISMISS   : `keydown.dismiss${EVENT_KEY}`,\n    MOUSEUP_DISMISS   : `mouseup.dismiss${EVENT_KEY}`,\n    MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n    CLICK_DATA_API    : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n    BACKDROP           : 'modal-backdrop',\n    OPEN               : 'modal-open',\n    FADE               : 'fade',\n    SHOW               : 'show'\n  }\n\n  const Selector = {\n    DIALOG             : '.modal-dialog',\n    DATA_TOGGLE        : '[data-toggle=\"modal\"]',\n    DATA_DISMISS       : '[data-dismiss=\"modal\"]',\n    FIXED_CONTENT      : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n    STICKY_CONTENT     : '.sticky-top'\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Modal {\n    constructor(element, config) {\n      this._config              = this._getConfig(config)\n      this._element             = element\n      this._dialog              = element.querySelector(Selector.DIALOG)\n      this._backdrop            = null\n      this._isShown             = false\n      this._isBodyOverflowing   = false\n      this._ignoreBackdropClick = false\n      this._scrollbarWidth      = 0\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._isTransitioning || this._isShown) {\n        return\n      }\n\n      if ($(this._element).hasClass(ClassName.FADE)) {\n        this._isTransitioning = true\n      }\n\n      const showEvent = $.Event(Event.SHOW, {\n        relatedTarget\n      })\n\n      $(this._element).trigger(showEvent)\n\n      if (this._isShown || showEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._isShown = true\n\n      this._checkScrollbar()\n      this._setScrollbar()\n\n      this._adjustDialog()\n\n      $(document.body).addClass(ClassName.OPEN)\n\n      this._setEscapeEvent()\n      this._setResizeEvent()\n\n      $(this._element).on(\n        Event.CLICK_DISMISS,\n        Selector.DATA_DISMISS,\n        (event) => this.hide(event)\n      )\n\n      $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n        $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n          if ($(event.target).is(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._isTransitioning || !this._isShown) {\n        return\n      }\n\n      const hideEvent = $.Event(Event.HIDE)\n\n      $(this._element).trigger(hideEvent)\n\n      if (!this._isShown || hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._isShown = false\n      const transition = $(this._element).hasClass(ClassName.FADE)\n\n      if (transition) {\n        this._isTransitioning = true\n      }\n\n      this._setEscapeEvent()\n      this._setResizeEvent()\n\n      $(document).off(Event.FOCUSIN)\n\n      $(this._element).removeClass(ClassName.SHOW)\n\n      $(this._element).off(Event.CLICK_DISMISS)\n      $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n\n      if (transition) {\n        const transitionDuration  = Util.getTransitionDurationFromElement(this._element)\n\n        $(this._element)\n          .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n          .emulateTransitionEnd(transitionDuration)\n      } else {\n        this._hideModal()\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      $(window, document, this._element, this._backdrop).off(EVENT_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._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      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _showElement(relatedTarget) {\n      const transition = $(this._element).hasClass(ClassName.FADE)\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.scrollTop = 0\n\n      if (transition) {\n        Util.reflow(this._element)\n      }\n\n      $(this._element).addClass(ClassName.SHOW)\n\n      if (this._config.focus) {\n        this._enforceFocus()\n      }\n\n      const shownEvent = $.Event(Event.SHOWN, {\n        relatedTarget\n      })\n\n      const transitionComplete = () => {\n        if (this._config.focus) {\n          this._element.focus()\n        }\n        this._isTransitioning = false\n        $(this._element).trigger(shownEvent)\n      }\n\n      if (transition) {\n        const transitionDuration  = Util.getTransitionDurationFromElement(this._element)\n\n        $(this._dialog)\n          .one(Util.TRANSITION_END, transitionComplete)\n          .emulateTransitionEnd(transitionDuration)\n      } else {\n        transitionComplete()\n      }\n    }\n\n    _enforceFocus() {\n      $(document)\n        .off(Event.FOCUSIN) // Guard against infinite focus loop\n        .on(Event.FOCUSIN, (event) => {\n          if (document !== event.target &&\n              this._element !== event.target &&\n              $(this._element).has(event.target).length === 0) {\n            this._element.focus()\n          }\n        })\n    }\n\n    _setEscapeEvent() {\n      if (this._isShown && this._config.keyboard) {\n        $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n          if (event.which === ESCAPE_KEYCODE) {\n            event.preventDefault()\n            this.hide()\n          }\n        })\n      } else if (!this._isShown) {\n        $(this._element).off(Event.KEYDOWN_DISMISS)\n      }\n    }\n\n    _setResizeEvent() {\n      if (this._isShown) {\n        $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n      } else {\n        $(window).off(Event.RESIZE)\n      }\n    }\n\n    _hideModal() {\n      this._element.style.display = 'none'\n      this._element.setAttribute('aria-hidden', true)\n      this._isTransitioning = false\n      this._showBackdrop(() => {\n        $(document.body).removeClass(ClassName.OPEN)\n        this._resetAdjustments()\n        this._resetScrollbar()\n        $(this._element).trigger(Event.HIDDEN)\n      })\n    }\n\n    _removeBackdrop() {\n      if (this._backdrop) {\n        $(this._backdrop).remove()\n        this._backdrop = null\n      }\n    }\n\n    _showBackdrop(callback) {\n      const animate = $(this._element).hasClass(ClassName.FADE)\n        ? ClassName.FADE : ''\n\n      if (this._isShown && this._config.backdrop) {\n        this._backdrop = document.createElement('div')\n        this._backdrop.className = ClassName.BACKDROP\n\n        if (animate) {\n          this._backdrop.classList.add(animate)\n        }\n\n        $(this._backdrop).appendTo(document.body)\n\n        $(this._element).on(Event.CLICK_DISMISS, (event) => {\n          if (this._ignoreBackdropClick) {\n            this._ignoreBackdropClick = false\n            return\n          }\n          if (event.target !== event.currentTarget) {\n            return\n          }\n          if (this._config.backdrop === 'static') {\n            this._element.focus()\n          } else {\n            this.hide()\n          }\n        })\n\n        if (animate) {\n          Util.reflow(this._backdrop)\n        }\n\n        $(this._backdrop).addClass(ClassName.SHOW)\n\n        if (!callback) {\n          return\n        }\n\n        if (!animate) {\n          callback()\n          return\n        }\n\n        const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n        $(this._backdrop)\n          .one(Util.TRANSITION_END, callback)\n          .emulateTransitionEnd(backdropTransitionDuration)\n      } else if (!this._isShown && this._backdrop) {\n        $(this._backdrop).removeClass(ClassName.SHOW)\n\n        const callbackRemove = () => {\n          this._removeBackdrop()\n          if (callback) {\n            callback()\n          }\n        }\n\n        if ($(this._element).hasClass(ClassName.FADE)) {\n          const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n          $(this._backdrop)\n            .one(Util.TRANSITION_END, callbackRemove)\n            .emulateTransitionEnd(backdropTransitionDuration)\n        } else {\n          callbackRemove()\n        }\n      } else if (callback) {\n        callback()\n      }\n    }\n\n    // ----------------------------------------------------------------------\n    // the following methods are used to handle overflowing modals\n    // todo (fat): these should probably be refactored out of modal.js\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 = 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        const fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT))\n        const stickyContent = [].slice.call(document.querySelectorAll(Selector.STICKY_CONTENT))\n\n        // Adjust fixed content padding\n        $(fixedContent).each((index, element) => {\n          const actualPadding = element.style.paddingRight\n          const calculatedPadding = $(element).css('padding-right')\n          $(element)\n            .data('padding-right', actualPadding)\n            .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n        })\n\n        // Adjust sticky content margin\n        $(stickyContent).each((index, element) => {\n          const actualMargin = element.style.marginRight\n          const calculatedMargin = $(element).css('margin-right')\n          $(element)\n            .data('margin-right', actualMargin)\n            .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n        })\n\n        // Adjust body padding\n        const actualPadding = document.body.style.paddingRight\n        const calculatedPadding = $(document.body).css('padding-right')\n        $(document.body)\n          .data('padding-right', actualPadding)\n          .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n      }\n    }\n\n    _resetScrollbar() {\n      // Restore fixed content padding\n      const fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT))\n      $(fixedContent).each((index, element) => {\n        const padding = $(element).data('padding-right')\n        $(element).removeData('padding-right')\n        element.style.paddingRight = padding ? padding : ''\n      })\n\n      // Restore sticky content\n      const elements = [].slice.call(document.querySelectorAll(`${Selector.STICKY_CONTENT}`))\n      $(elements).each((index, element) => {\n        const margin = $(element).data('margin-right')\n        if (typeof margin !== 'undefined') {\n          $(element).css('margin-right', margin).removeData('margin-right')\n        }\n      })\n\n      // Restore body padding\n      const padding = $(document.body).data('padding-right')\n      $(document.body).removeData('padding-right')\n      document.body.style.paddingRight = padding ? padding : ''\n    }\n\n    _getScrollbarWidth() { // thx d.walsh\n      const scrollDiv = document.createElement('div')\n      scrollDiv.className = ClassName.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 = $(this).data(DATA_KEY)\n        const _config = {\n          ...Default,\n          ...$(this).data(),\n          ...typeof config === 'object' && config ? config : {}\n        }\n\n        if (!data) {\n          data = new Modal(this, _config)\n          $(this).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          data[config](relatedTarget)\n        } else if (_config.show) {\n          data.show(relatedTarget)\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    let target\n    const selector = Util.getSelectorFromElement(this)\n\n    if (selector) {\n      target = document.querySelector(selector)\n    }\n\n    const config = $(target).data(DATA_KEY)\n      ? 'toggle' : {\n        ...$(target).data(),\n        ...$(this).data()\n      }\n\n    if (this.tagName === 'A' || this.tagName === 'AREA') {\n      event.preventDefault()\n    }\n\n    const $target = $(target).one(Event.SHOW, (showEvent) => {\n      if (showEvent.isDefaultPrevented()) {\n        // Only register focus restorer if modal will actually get shown\n        return\n      }\n\n      $target.one(Event.HIDDEN, () => {\n        if ($(this).is(':visible')) {\n          this.focus()\n        }\n      })\n    })\n\n    Modal._jQueryInterface.call($(target), config, this)\n  })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\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  return Modal\n})($)\n\nexport default Modal\n"],"names":["Modal","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","ESCAPE_KEYCODE","Default","backdrop","keyboard","focus","show","DefaultType","Event","HIDE","HIDDEN","SHOW","SHOWN","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","CLICK_DATA_API","ClassName","SCROLLBAR_MEASURER","BACKDROP","OPEN","FADE","Selector","DIALOG","DATA_TOGGLE","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","element","config","_config","_getConfig","_element","_dialog","querySelector","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","toggle","relatedTarget","hide","_isTransitioning","hasClass","showEvent","trigger","isDefaultPrevented","_checkScrollbar","_setScrollbar","_adjustDialog","document","body","addClass","_setEscapeEvent","_setResizeEvent","on","event","one","target","is","_showBackdrop","_showElement","preventDefault","hideEvent","transition","off","removeClass","transitionDuration","Util","getTransitionDurationFromElement","TRANSITION_END","_hideModal","emulateTransitionEnd","dispose","removeData","window","handleUpdate","typeCheckConfig","parentNode","nodeType","Node","ELEMENT_NODE","appendChild","style","display","removeAttribute","scrollTop","reflow","_enforceFocus","shownEvent","transitionComplete","has","length","which","setAttribute","_resetAdjustments","_resetScrollbar","_removeBackdrop","remove","callback","animate","createElement","className","classList","add","appendTo","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","documentElement","clientHeight","paddingLeft","paddingRight","rect","getBoundingClientRect","left","right","innerWidth","_getScrollbarWidth","fixedContent","slice","call","querySelectorAll","stickyContent","each","index","actualPadding","calculatedPadding","css","data","parseFloat","actualMargin","marginRight","calculatedMargin","padding","elements","margin","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","_jQueryInterface","TypeError","selector","getSelectorFromElement","tagName","$target","Constructor","noConflict"],"mappings":"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"}