mirror of
https://github.com/twbs/bootstrap.git
synced 2024-12-01 13:24:25 +01:00
1 line
35 KiB
Plaintext
1 line
35 KiB
Plaintext
{"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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"} |