{"version":3,"file":"modal.min.js","sources":["https:\/\/hivtrainingcdu.remote-learner.net\/theme\/boost\/amd\/src\/bootstrap\/modal.js"],"sourcesContent":["\/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.0): modal.js\n * Licensed under MIT (https:\/\/github.com\/twbs\/bootstrap\/blob\/master\/LICENSE)\n * --------------------------------------------------------------------------\n *\/\n\nimport $ from 'jquery'\nimport Util from '.\/util'\n\n\/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n *\/\n\nconst NAME = 'modal'\nconst VERSION = '4.5.0'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 \/\/ KeyboardEvent.which value for Escape (Esc) key\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_SCROLLABLE = 'modal-dialog-scrollable'\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-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-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 = element.querySelector(SELECTOR_DIALOG)\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 }\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).hasClass(CLASS_NAME_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 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._isShown || this._isTransitioning) {\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(CLASS_NAME_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(CLASS_NAME_SHOW)\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n $(this._dialog).off(EVENT_MOUSEDOWN_DISMISS)\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 [window, this._element, this._dialog]\n .forEach((htmlElement) => $(htmlElement).off(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 $(document).off(EVENT_FOCUSIN)\n\n $.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 Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED)\n\n $(this._element).trigger(hideEventPrevented)\n if (hideEventPrevented.defaultPrevented) {\n return\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n\n const modalTransitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n })\n .emulateTransitionEnd(modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\n }\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n const modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null\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\n if ($(this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(CLASS_NAME_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._dialog)\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) {\n $(this._element).on(EVENT_KEYDOWN_DISMISS, (event) => {\n if (this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition()\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._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(CLASS_NAME_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(CLASS_NAME_FADE)\n ? CLASS_NAME_FADE : ''\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 $(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\n this._triggerBackdropTransition()\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(CLASS_NAME_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(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(CLASS_NAME_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 = 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 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 $(document.body).addClass(CLASS_NAME_OPEN)\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 = 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 = $(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\nexport default Modal\n"],"names":["NAME","EVENT_KEY","JQUERY_NO_CONFLICT","$","fn","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","Modal","element","config","_config","this","_getConfig","_element","_dialog","querySelector","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_isTransitioning","_scrollbarWidth","relatedTarget","each","data","_typeof","TypeError","hide","hasClass","showEvent","Event","trigger","isDefaultPrevented","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","on","event","_this","one","target","is","_showBackdrop","_showElement","preventDefault","hideEvent","transition","document","off","removeClass","transitionDuration","Util","getTransitionDurationFromElement","TRANSITION_END","_this2","_hideModal","emulateTransitionEnd","window","forEach","htmlElement","removeData","typeCheckConfig","hideEventPrevented","defaultPrevented","classList","add","modalTransitionDuration","_this3","remove","modalBody","parentNode","nodeType","Node","ELEMENT_NODE","body","appendChild","style","display","removeAttribute","setAttribute","scrollTop","reflow","addClass","_enforceFocus","shownEvent","transitionComplete","_this4","_this5","has","length","_this6","which","_triggerBackdropTransition","_this7","handleUpdate","_this8","_resetAdjustments","_resetScrollbar","callback","animate","createElement","className","appendTo","_this9","currentTarget","backdropTransitionDuration","callbackRemove","_removeBackdrop","isModalOverflowing","scrollHeight","documentElement","clientHeight","paddingLeft","paddingRight","rect","getBoundingClientRect","Math","round","left","right","innerWidth","_getScrollbarWidth","fixedContent","slice","call","querySelectorAll","stickyContent","index","actualPadding","calculatedPadding","css","parseFloat","_this10","actualMargin","marginRight","calculatedMargin","padding","elements","margin","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","selector","getSelectorFromElement","tagName","$target","_this11","_jQueryInterface","Constructor","noConflict"],"mappings":"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"}