{"version":3,"sources":["webpack://geloso_ordering_portal/./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack://geloso_ordering_portal/./node_modules/bootstrap/js/dist/alert.js","webpack://geloso_ordering_portal/./node_modules/bootstrap/js/dist/collapse.js","webpack://geloso_ordering_portal/./node_modules/bootstrap/js/dist/dropdown.js","webpack://geloso_ordering_portal/./node_modules/bootstrap/js/dist/modal.js"],"names":["this","Rails","linkClickSelector","buttonClickSelector","selector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","call","nonce","loadCSPNonce","ref","document","querySelector","content","cspNonce","m","Element","prototype","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","element","getData","key","setData","value","$","Array","slice","querySelectorAll","csrfParam","csrfToken","meta","CSRFProtection","xhr","token","setRequestHeader","refreshCSRFTokens","param","forEach","input","CustomEvent","fire","preventDefault","window","event","params","evt","createEvent","initCustomEvent","bubbles","cancelable","detail","Event","result","defaultPrevented","Object","defineProperty","get","obj","name","data","dispatchEvent","stopEverything","e","target","stopPropagation","stopImmediatePropagation","delegate","eventType","handler","addEventListener","parentNode","AcceptHeaders","createXHR","prepareOptions","processResponse","text","html","xml","json","script","ajax","options","response","responseText","getResponseHeader","Math","floor","status","success","statusText","error","complete","beforeSend","readyState","XMLHttpRequest","OPENED","send","url","location","href","type","toUpperCase","indexOf","dataType","accept","done","open","crossDomain","withCredentials","onreadystatechange","DONE","parser","match","JSON","parse","createElement","setAttribute","head","appendChild","removeChild","DOMParser","replace","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","host","toArray","serializeElement","additionalParam","inputs","elements","disabled","option","selected","push","checked","map","encodeURIComponent","join","formElements","form","filter","el","allowAction","handleConfirm","confirm","message","answer","callback","getAttribute","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","innerHTML","originalText","removeEventListener","handleMethod","formContent","link","method","action","style","display","body","click","isRemote","handleRemote","button","enctype","FormData","append","args","arguments","length","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","Error","ajaxPrefilter","originalOptions","start","_rails_loaded","setTimeout","module","exports","SelectorEngine","Data","EventHandler","BaseComponent","_interopDefaultLegacy","Data__default","EventHandler__default","BaseComponent__default","getSelector","hrefAttr","includes","startsWith","split","trim","getElementFromSelector","getjQuery","hasAttribute","onDOMContentLoaded","defineJQueryPlugin","plugin","NAME","JQUERY_NO_CONFLICT","fn","jQueryInterface","Constructor","noConflict","DATA_KEY","EVENT_KEY","SELECTOR_DISMISS","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","CLASS_NAME_ALERT","CLASS_NAME_FADE","CLASS_NAME_SHOW","Alert","close","rootElement","_getRootElement","_element","customEvent","_triggerCloseEvent","_removeElement","closest","trigger","classList","remove","isAnimated","contains","_queueCallback","_destroyElement","static","config","each","alertInstance","on","handleDismiss","factory","Manipulator","SelectorEngine__default","Manipulator__default","toType","undefined","toString","toLowerCase","getSelectorFromElement","isElement","jquery","nodeType","getElement","findOne","typeCheckConfig","componentName","configTypes","keys","property","expectedTypes","valueType","RegExp","test","TypeError","reflow","offsetHeight","Default","toggle","parent","DefaultType","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","WIDTH","HEIGHT","SELECTOR_ACTIVES","SELECTOR_DATA_TOGGLE","Collapse","constructor","super","_isTransitioning","_config","_getConfig","_triggerArray","find","id","toggleList","i","len","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","elemActive","collapseInterface","set","dimension","_getDimension","add","setTransitioning","scrollSize","getBoundingClientRect","triggerArrayLength","isTransitioning","Boolean","triggerArray","isOpen","getDataAttributes","tagName","delegateTarget","triggerData","Popper","_interopNamespace","__esModule","n","create","k","d","getOwnPropertyDescriptor","enumerable","freeze","Popper__namespace","isVisible","elementStyle","getComputedStyle","parentNodeStyle","visibility","isDisabled","Node","ELEMENT_NODE","noop","isRTL","documentElement","dir","DATA_API_KEY","ESCAPE_KEY","SPACE_KEY","TAB_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","RIGHT_MOUSE_BUTTON","REGEXP_KEYDOWN","EVENT_CLICK","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DROPUP","CLASS_NAME_DROPEND","CLASS_NAME_DROPSTART","CLASS_NAME_NAVBAR","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","offset","boundary","reference","popperConfig","autoClose","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","_addEventListeners","getParentFromElement","relatedTarget","setDataAttribute","referenceElement","_getPopperConfig","isDisplayStatic","modifiers","modifier","enabled","createPopper","concat","children","focus","_completeHide","dispose","destroy","update","off","removeDataAttribute","next","_getPlacement","parentDropdown","isEnd","getPropertyValue","_getOffset","val","Number","parseInt","popperData","defaultBsPopperConfig","placement","_selectMenuItem","items","index","dropdownInterface","toggles","context","composedPath","isMenuTarget","clickEvent","isActive","getToggleButton","prev","clearMenus","getInstance","dataApiKeydownHandler","MILLISECONDS_MULTIPLIER","TRANSITION_END","getTransitionDurationFromElement","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","triggerTransitionEnd","emulateTransitionEnd","duration","called","emulatedDuration","listener","execute","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","getWidth","documentWidth","clientWidth","abs","innerWidth","width","_disableOverFlow","_setElementAttributes","calculatedValue","actualValue","overflow","styleProp","scrollbarWidth","reset","_resetElementAttributes","getDataAttribute","removeProperty","Default$1","clickCallback","DefaultType$1","NAME$1","CLASS_NAME_BACKDROP","CLASS_NAME_FADE$1","CLASS_NAME_SHOW$1","EVENT_MOUSEDOWN","Backdrop","_isAppended","_append","_getElement","_emulateAnimation","backdrop","className","backdropTransitionDuration","one","keyboard","EVENT_HIDE_PREVENTED","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_OPEN","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_DISMISS","Modal","_dialog","_backdrop","_initializeBackDrop","_isShown","_ignoreBackdropClick","_isAnimated","showEvent","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","_hideModal","htmlElement","handleUpdate","modalBody","removeAttribute","scrollTop","_enforceFocus","transitionComplete","_triggerBackdropTransition","_resetAdjustments","currentTarget","isModalOverflowing","scrollHeight","clientHeight","overflowY","modalTransitionDuration","isBodyOverflowing","paddingLeft","paddingRight"],"mappings":"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","file":"js/261-813d9cee51ae37adfa9c.js","sourcesContent":["/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/master/actionview/app/assets/javascripts\nReleased under the MIT license\n */;\n\n(function() {\n var context = this;\n\n (function() {\n (function() {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form',\n formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n\n }).call(this);\n }).call(context);\n\n var Rails = context.Rails;\n\n (function() {\n (function() {\n var nonce;\n\n nonce = null;\n\n Rails.loadCSPNonce = function() {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function() {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n\n }).call(this);\n (function() {\n var expando, m;\n\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function(element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function(element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function(element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n return element[expando][key] = value;\n };\n\n Rails.$ = function(selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n\n }).call(this);\n (function() {\n var $, csrfParam, csrfToken;\n\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function() {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function() {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function(xhr) {\n var token;\n token = csrfToken();\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function() {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n if ((token != null) && (param != null)) {\n return $('form input[name=\"' + param + '\"]').forEach(function(input) {\n return input.value = token;\n });\n }\n };\n\n }).call(this);\n (function() {\n var CustomEvent, fire, matches, preventDefault;\n\n matches = Rails.matches;\n\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function(event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n CustomEvent.prototype.preventDefault = function() {\n var result;\n result = preventDefault.call(this);\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function() {\n return true;\n }\n });\n }\n return result;\n };\n }\n\n fire = Rails.fire = function(obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function(e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function(element, selector, eventType, handler) {\n return element.addEventListener(eventType, function(e) {\n var target;\n target = e.target;\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n\n }).call(this);\n (function() {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function(options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function() {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n if ((options.beforeSend != null) && !options.beforeSend(xhr, options)) {\n return false;\n }\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n options.accept = AcceptHeaders[options.dataType];\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n return options;\n };\n\n createXHR = function(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n CSRFProtection(xhr);\n xhr.withCredentials = !!options.withCredentials;\n xhr.onreadystatechange = function() {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n return xhr;\n };\n\n processResponse = function(response, type) {\n var parser, script;\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n return response;\n };\n\n Rails.href = function(element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function(url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n try {\n urlAnchor.href = url;\n return !(((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host) || (originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host));\n } catch (error) {\n e = error;\n return true;\n }\n };\n\n }).call(this);\n (function() {\n var matches, toArray;\n\n matches = Rails.matches;\n\n toArray = function(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function(element, additionalParam) {\n var inputs, params;\n inputs = [element];\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n params = [];\n inputs.forEach(function(input) {\n if (!input.name || input.disabled) {\n return;\n }\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function(option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n if (additionalParam) {\n params.push(additionalParam);\n }\n return params.map(function(param) {\n if (param.name != null) {\n return (encodeURIComponent(param.name)) + \"=\" + (encodeURIComponent(param.value));\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function(form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function(el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n\n }).call(this);\n (function() {\n var allowAction, fire, stopEverything;\n\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function(e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n Rails.confirm = function(message, element) {\n return confirm(message);\n };\n\n allowAction = function(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n if (!message) {\n return true;\n }\n answer = false;\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n callback = fire(element, 'confirm:complete', [answer]);\n }\n return answer && callback;\n };\n\n }).call(this);\n (function() {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n Rails.handleDisabledElement = function(e) {\n var element;\n element = this;\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function(e) {\n var element;\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n element = e.target;\n } else {\n element = e;\n }\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function(e) {\n var element;\n element = e instanceof Event ? e.target : e;\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function(element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function(element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n setData(element, 'ujs:enable-with', null);\n }\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function(event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n\n }).call(this);\n (function() {\n var stopEverything;\n\n stopEverything = Rails.stopEverything;\n\n Rails.handleMethod = function(e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n if (!method) {\n return;\n }\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n if ((csrfParam != null) && (csrfToken != null) && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n\n }).call(this);\n (function() {\n var ajax, fire, getData, isCrossDomain, isRemote, matches, serializeElement, setData, stopEverything,\n slice = [].slice;\n\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n isRemote = function(element) {\n var value;\n value = element.getAttribute('data-remote');\n return (value != null) && value !== 'false';\n };\n\n Rails.handleRemote = function(e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n if (!isRemote(element)) {\n return true;\n }\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function(xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: (withCredentials != null) && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function(e) {\n var button, form;\n button = this;\n form = button.form;\n if (!form) {\n return;\n }\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function(e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = (e.button != null) && e.button !== 0;\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n\n }).call(this);\n (function() {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if ((typeof jQuery !== \"undefined\" && jQuery !== null) && (jQuery.ajax != null)) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function(options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function() {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n window.addEventListener('pageshow', function() {\n $(Rails.formEnableSelector).forEach(function(el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function(el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function(e) {\n return setTimeout((function() {\n return disableElement(e);\n }), 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n\n }).call(this);\n }).call(this);\n\n if (typeof module === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);\n","/*!\n * Bootstrap alert.js v5.0.1 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/selector-engine.js'), require('./dom/data.js'), require('./dom/event-handler.js'), require('./base-component.js')) :\n typeof define === 'function' && define.amd ? define(['./dom/selector-engine', './dom/data', './dom/event-handler', './base-component'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Alert = factory(global.SelectorEngine, global.Data, global.EventHandler, global.Base));\n}(this, (function (SelectorEngine, Data, EventHandler, BaseComponent) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);\n var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);\n\n const getSelector = element => {\n let selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n let hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n\n if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = `#${hrefAttr.split('#')[1]}`;\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\n }\n\n return selector;\n };\n\n const getElementFromSelector = element => {\n const selector = getSelector(element);\n return selector ? document.querySelector(selector) : null;\n };\n\n const getjQuery = () => {\n const {\n jQuery\n } = window;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n };\n\n const onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback);\n } else {\n callback();\n }\n };\n\n const defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n const name = plugin.NAME;\n const JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'alert';\n const DATA_KEY = 'bs.alert';\n const EVENT_KEY = `.${DATA_KEY}`;\n const DATA_API_KEY = '.data-api';\n const SELECTOR_DISMISS = '[data-bs-dismiss=\"alert\"]';\n const EVENT_CLOSE = `close${EVENT_KEY}`;\n const EVENT_CLOSED = `closed${EVENT_KEY}`;\n const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\n const CLASS_NAME_ALERT = 'alert';\n const CLASS_NAME_FADE = 'fade';\n const CLASS_NAME_SHOW = 'show';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Alert extends BaseComponent__default['default'] {\n // Getters\n static get NAME() {\n return NAME;\n } // Public\n\n\n close(element) {\n const rootElement = element ? this._getRootElement(element) : this._element;\n\n const customEvent = this._triggerCloseEvent(rootElement);\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return;\n }\n\n this._removeElement(rootElement);\n } // Private\n\n\n _getRootElement(element) {\n return getElementFromSelector(element) || element.closest(`.${CLASS_NAME_ALERT}`);\n }\n\n _triggerCloseEvent(element) {\n return EventHandler__default['default'].trigger(element, EVENT_CLOSE);\n }\n\n _removeElement(element) {\n element.classList.remove(CLASS_NAME_SHOW);\n const isAnimated = element.classList.contains(CLASS_NAME_FADE);\n\n this._queueCallback(() => this._destroyElement(element), element, isAnimated);\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element);\n }\n\n EventHandler__default['default'].trigger(element, EVENT_CLOSED);\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data__default['default'].get(this, DATA_KEY);\n\n if (!data) {\n data = new Alert(this);\n }\n\n if (config === 'close') {\n data[config](this);\n }\n });\n }\n\n static handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault();\n }\n\n alertInstance.close(this);\n };\n }\n\n }\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert()));\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Alert to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(Alert);\n\n return Alert;\n\n})));\n//# sourceMappingURL=alert.js.map\n","/*!\n * Bootstrap collapse.js v5.0.1 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/selector-engine.js'), require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./base-component.js')) :\n typeof define === 'function' && define.amd ? define(['./dom/selector-engine', './dom/data', './dom/event-handler', './dom/manipulator', './base-component'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Collapse = factory(global.SelectorEngine, global.Data, global.EventHandler, global.Manipulator, global.Base));\n}(this, (function (SelectorEngine, Data, EventHandler, Manipulator, BaseComponent) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);\n var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);\n var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);\n var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);\n\n const 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 const getSelector = element => {\n let selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n let hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n\n if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = `#${hrefAttr.split('#')[1]}`;\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\n }\n\n return selector;\n };\n\n const 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\n const getElementFromSelector = element => {\n const selector = getSelector(element);\n return selector ? document.querySelector(selector) : null;\n };\n\n const isElement = obj => {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n if (typeof obj.jquery !== 'undefined') {\n obj = obj[0];\n }\n\n return typeof obj.nodeType !== 'undefined';\n };\n\n const getElement = obj => {\n if (isElement(obj)) {\n // it's a jQuery object or a node element\n return obj.jquery ? obj[0] : obj;\n }\n\n if (typeof obj === 'string' && obj.length > 0) {\n return SelectorEngine__default['default'].findOne(obj);\n }\n\n return null;\n };\n\n const 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) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(`${componentName.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`);\n }\n });\n };\n\n const reflow = element => element.offsetHeight;\n\n const getjQuery = () => {\n const {\n jQuery\n } = window;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n };\n\n const onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback);\n } else {\n callback();\n }\n };\n\n const defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n const name = plugin.NAME;\n const JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'collapse';\n const DATA_KEY = 'bs.collapse';\n const EVENT_KEY = `.${DATA_KEY}`;\n const DATA_API_KEY = '.data-api';\n const Default = {\n toggle: true,\n parent: ''\n };\n const DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n };\n const EVENT_SHOW = `show${EVENT_KEY}`;\n const EVENT_SHOWN = `shown${EVENT_KEY}`;\n const EVENT_HIDE = `hide${EVENT_KEY}`;\n const EVENT_HIDDEN = `hidden${EVENT_KEY}`;\n const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\n const CLASS_NAME_SHOW = 'show';\n const CLASS_NAME_COLLAPSE = 'collapse';\n const CLASS_NAME_COLLAPSING = 'collapsing';\n const CLASS_NAME_COLLAPSED = 'collapsed';\n const WIDTH = 'width';\n const HEIGHT = 'height';\n const SELECTOR_ACTIVES = '.show, .collapsing';\n const SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Collapse extends BaseComponent__default['default'] {\n constructor(element, config) {\n super(element);\n this._isTransitioning = false;\n this._config = this._getConfig(config);\n this._triggerArray = SelectorEngine__default['default'].find(`${SELECTOR_DATA_TOGGLE}[href=\"#${this._element.id}\"],` + `${SELECTOR_DATA_TOGGLE}[data-bs-target=\"#${this._element.id}\"]`);\n const toggleList = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE);\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i];\n const selector = getSelectorFromElement(elem);\n const filterElement = SelectorEngine__default['default'].find(selector).filter(foundElem => foundElem === this._element);\n\n if (selector !== null && filterElement.length) {\n this._selector = selector;\n\n this._triggerArray.push(elem);\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null;\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray);\n }\n\n if (this._config.toggle) {\n this.toggle();\n }\n } // Getters\n\n\n static get Default() {\n return Default;\n }\n\n static get NAME() {\n return NAME;\n } // Public\n\n\n toggle() {\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n show() {\n if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {\n return;\n }\n\n let actives;\n let activesData;\n\n if (this._parent) {\n actives = SelectorEngine__default['default'].find(SELECTOR_ACTIVES, this._parent).filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-bs-parent') === this._config.parent;\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE);\n });\n\n if (actives.length === 0) {\n actives = null;\n }\n }\n\n const container = SelectorEngine__default['default'].findOne(this._selector);\n\n if (actives) {\n const tempActiveData = actives.find(elem => container !== elem);\n activesData = tempActiveData ? Data__default['default'].get(tempActiveData, DATA_KEY) : null;\n\n if (activesData && activesData._isTransitioning) {\n return;\n }\n }\n\n const startEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW);\n\n if (startEvent.defaultPrevented) {\n return;\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse.collapseInterface(elemActive, 'hide');\n }\n\n if (!activesData) {\n Data__default['default'].set(elemActive, DATA_KEY, null);\n }\n });\n }\n\n const dimension = this._getDimension();\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE);\n\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n this._element.style[dimension] = 0;\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(CLASS_NAME_COLLAPSED);\n element.setAttribute('aria-expanded', true);\n });\n }\n\n this.setTransitioning(true);\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\n\n this._element.style[dimension] = '';\n this.setTransitioning(false);\n EventHandler__default['default'].trigger(this._element, EVENT_SHOWN);\n };\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n const scrollSize = `scroll${capitalizedDimension}`;\n\n this._queueCallback(complete, this._element, true);\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`;\n }\n\n hide() {\n if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {\n return;\n }\n\n const startEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE);\n\n if (startEvent.defaultPrevented) {\n return;\n }\n\n const dimension = this._getDimension();\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;\n reflow(this._element);\n\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\n\n const triggerArrayLength = this._triggerArray.length;\n\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i];\n const elem = getElementFromSelector(trigger);\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED);\n trigger.setAttribute('aria-expanded', false);\n }\n }\n }\n\n this.setTransitioning(true);\n\n const complete = () => {\n this.setTransitioning(false);\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n this._element.classList.add(CLASS_NAME_COLLAPSE);\n\n EventHandler__default['default'].trigger(this._element, EVENT_HIDDEN);\n };\n\n this._element.style[dimension] = '';\n\n this._queueCallback(complete, this._element, true);\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning;\n } // Private\n\n\n _getConfig(config) {\n config = { ...Default,\n ...config\n };\n config.toggle = Boolean(config.toggle); // Coerce string values\n\n typeCheckConfig(NAME, config, DefaultType);\n return config;\n }\n\n _getDimension() {\n return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT;\n }\n\n _getParent() {\n let {\n parent\n } = this._config;\n parent = getElement(parent);\n const selector = `${SELECTOR_DATA_TOGGLE}[data-bs-parent=\"${parent}\"]`;\n SelectorEngine__default['default'].find(selector, parent).forEach(element => {\n const selected = getElementFromSelector(element);\n\n this._addAriaAndCollapsedClass(selected, [element]);\n });\n return parent;\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (!element || !triggerArray.length) {\n return;\n }\n\n const isOpen = element.classList.contains(CLASS_NAME_SHOW);\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED);\n } else {\n elem.classList.add(CLASS_NAME_COLLAPSED);\n }\n\n elem.setAttribute('aria-expanded', isOpen);\n });\n } // Static\n\n\n static collapseInterface(element, config) {\n let data = Data__default['default'].get(element, DATA_KEY);\n const _config = { ...Default,\n ...Manipulator__default['default'].getDataAttributes(element),\n ...(typeof config === 'object' && config ? config : {})\n };\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n\n if (!data) {\n data = new Collapse(element, _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]();\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Collapse.collapseInterface(this, config);\n });\n }\n\n }\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {\n event.preventDefault();\n }\n\n const triggerData = Manipulator__default['default'].getDataAttributes(this);\n const selector = getSelectorFromElement(this);\n const selectorElements = SelectorEngine__default['default'].find(selector);\n selectorElements.forEach(element => {\n const data = Data__default['default'].get(element, DATA_KEY);\n let config;\n\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent;\n data._parent = data._getParent();\n }\n\n config = 'toggle';\n } else {\n config = triggerData;\n }\n\n Collapse.collapseInterface(element, config);\n });\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Collapse to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(Collapse);\n\n return Collapse;\n\n})));\n//# sourceMappingURL=collapse.js.map\n","/*!\n * Bootstrap dropdown.js v5.0.1 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@popperjs/core'), require('./dom/selector-engine.js'), require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./base-component.js')) :\n typeof define === 'function' && define.amd ? define(['@popperjs/core', './dom/selector-engine', './dom/data', './dom/event-handler', './dom/manipulator', './base-component'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Dropdown = factory(global.Popper, global.SelectorEngine, global.Data, global.EventHandler, global.Manipulator, global.Base));\n}(this, (function (Popper, SelectorEngine, Data, EventHandler, Manipulator, BaseComponent) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n function _interopNamespace(e) {\n if (e && e.__esModule) return e;\n var n = Object.create(null);\n if (e) {\n Object.keys(e).forEach(function (k) {\n if (k !== 'default') {\n var d = Object.getOwnPropertyDescriptor(e, k);\n Object.defineProperty(n, k, d.get ? d : {\n enumerable: true,\n get: function () {\n return e[k];\n }\n });\n }\n });\n }\n n['default'] = e;\n return Object.freeze(n);\n }\n\n var Popper__namespace = /*#__PURE__*/_interopNamespace(Popper);\n var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);\n var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);\n var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);\n var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);\n\n const 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 const getSelector = element => {\n let selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n let hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n\n if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = `#${hrefAttr.split('#')[1]}`;\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\n }\n\n return selector;\n };\n\n const getElementFromSelector = element => {\n const selector = getSelector(element);\n return selector ? document.querySelector(selector) : null;\n };\n\n const isElement = obj => {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n if (typeof obj.jquery !== 'undefined') {\n obj = obj[0];\n }\n\n return typeof obj.nodeType !== 'undefined';\n };\n\n const getElement = obj => {\n if (isElement(obj)) {\n // it's a jQuery object or a node element\n return obj.jquery ? obj[0] : obj;\n }\n\n if (typeof obj === 'string' && obj.length > 0) {\n return SelectorEngine__default['default'].findOne(obj);\n }\n\n return null;\n };\n\n const 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) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(`${componentName.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`);\n }\n });\n };\n\n const 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 return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden';\n }\n\n return false;\n };\n\n const isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true;\n }\n\n if (element.classList.contains('disabled')) {\n return true;\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled;\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';\n };\n\n const noop = () => {};\n\n const getjQuery = () => {\n const {\n jQuery\n } = window;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n };\n\n const onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback);\n } else {\n callback();\n }\n };\n\n const isRTL = () => document.documentElement.dir === 'rtl';\n\n const defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n const name = plugin.NAME;\n const JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'dropdown';\n const DATA_KEY = 'bs.dropdown';\n const EVENT_KEY = `.${DATA_KEY}`;\n const DATA_API_KEY = '.data-api';\n const ESCAPE_KEY = 'Escape';\n const SPACE_KEY = 'Space';\n const TAB_KEY = 'Tab';\n const ARROW_UP_KEY = 'ArrowUp';\n const ARROW_DOWN_KEY = 'ArrowDown';\n const RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button\n\n const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_KEY}`);\n const EVENT_HIDE = `hide${EVENT_KEY}`;\n const EVENT_HIDDEN = `hidden${EVENT_KEY}`;\n const EVENT_SHOW = `show${EVENT_KEY}`;\n const EVENT_SHOWN = `shown${EVENT_KEY}`;\n const EVENT_CLICK = `click${EVENT_KEY}`;\n const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\n const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`;\n const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`;\n const CLASS_NAME_SHOW = 'show';\n const CLASS_NAME_DROPUP = 'dropup';\n const CLASS_NAME_DROPEND = 'dropend';\n const CLASS_NAME_DROPSTART = 'dropstart';\n const CLASS_NAME_NAVBAR = 'navbar';\n const SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dropdown\"]';\n const SELECTOR_MENU = '.dropdown-menu';\n const SELECTOR_NAVBAR_NAV = '.navbar-nav';\n const SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\n const PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start';\n const PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end';\n const PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start';\n const PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end';\n const PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start';\n const PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start';\n const Default = {\n offset: [0, 2],\n boundary: 'clippingParents',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null,\n autoClose: true\n };\n const DefaultType = {\n offset: '(array|string|function)',\n boundary: '(string|element)',\n reference: '(string|element|object)',\n display: 'string',\n popperConfig: '(null|object|function)',\n autoClose: '(boolean|string)'\n };\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Dropdown extends BaseComponent__default['default'] {\n constructor(element, config) {\n super(element);\n this._popper = null;\n this._config = this._getConfig(config);\n this._menu = this._getMenuElement();\n this._inNavbar = this._detectNavbar();\n\n this._addEventListeners();\n } // Getters\n\n\n static get Default() {\n return Default;\n }\n\n static get DefaultType() {\n return DefaultType;\n }\n\n static get NAME() {\n return NAME;\n } // Public\n\n\n toggle() {\n if (isDisabled(this._element)) {\n return;\n }\n\n const isActive = this._element.classList.contains(CLASS_NAME_SHOW);\n\n if (isActive) {\n this.hide();\n return;\n }\n\n this.show();\n }\n\n show() {\n if (isDisabled(this._element) || this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return;\n }\n\n const parent = Dropdown.getParentFromElement(this._element);\n const relatedTarget = {\n relatedTarget: this._element\n };\n const showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW, relatedTarget);\n\n if (showEvent.defaultPrevented) {\n return;\n } // Totally disable Popper for Dropdowns in Navbar\n\n\n if (this._inNavbar) {\n Manipulator__default['default'].setDataAttribute(this._menu, 'popper', 'none');\n } else {\n if (typeof Popper__namespace === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n }\n\n let referenceElement = this._element;\n\n if (this._config.reference === 'parent') {\n referenceElement = parent;\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference);\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference;\n }\n\n const popperConfig = this._getPopperConfig();\n\n const isDisplayStatic = popperConfig.modifiers.find(modifier => modifier.name === 'applyStyles' && modifier.enabled === false);\n this._popper = Popper__namespace.createPopper(referenceElement, this._menu, popperConfig);\n\n if (isDisplayStatic) {\n Manipulator__default['default'].setDataAttribute(this._menu, 'popper', 'static');\n }\n } // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) {\n [].concat(...document.body.children).forEach(elem => EventHandler__default['default'].on(elem, 'mouseover', noop));\n }\n\n this._element.focus();\n\n this._element.setAttribute('aria-expanded', true);\n\n this._menu.classList.toggle(CLASS_NAME_SHOW);\n\n this._element.classList.toggle(CLASS_NAME_SHOW);\n\n EventHandler__default['default'].trigger(this._element, EVENT_SHOWN, relatedTarget);\n }\n\n hide() {\n if (isDisabled(this._element) || !this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return;\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n };\n\n this._completeHide(relatedTarget);\n }\n\n dispose() {\n if (this._popper) {\n this._popper.destroy();\n }\n\n super.dispose();\n }\n\n update() {\n this._inNavbar = this._detectNavbar();\n\n if (this._popper) {\n this._popper.update();\n }\n } // Private\n\n\n _addEventListeners() {\n EventHandler__default['default'].on(this._element, EVENT_CLICK, event => {\n event.preventDefault();\n this.toggle();\n });\n }\n\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE, relatedTarget);\n\n if (hideEvent.defaultPrevented) {\n return;\n } // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n\n if ('ontouchstart' in document.documentElement) {\n [].concat(...document.body.children).forEach(elem => EventHandler__default['default'].off(elem, 'mouseover', noop));\n }\n\n if (this._popper) {\n this._popper.destroy();\n }\n\n this._menu.classList.remove(CLASS_NAME_SHOW);\n\n this._element.classList.remove(CLASS_NAME_SHOW);\n\n this._element.setAttribute('aria-expanded', 'false');\n\n Manipulator__default['default'].removeDataAttribute(this._menu, 'popper');\n EventHandler__default['default'].trigger(this._element, EVENT_HIDDEN, relatedTarget);\n }\n\n _getConfig(config) {\n config = { ...this.constructor.Default,\n ...Manipulator__default['default'].getDataAttributes(this._element),\n ...config\n };\n typeCheckConfig(NAME, config, this.constructor.DefaultType);\n\n if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(`${NAME.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`);\n }\n\n return config;\n }\n\n _getMenuElement() {\n return SelectorEngine__default['default'].next(this._element, SELECTOR_MENU)[0];\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode;\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT;\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT;\n } // We need to trim the value because custom properties can also include spaces\n\n\n const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n }\n\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;\n }\n\n _detectNavbar() {\n return this._element.closest(`.${CLASS_NAME_NAVBAR}`) !== null;\n }\n\n _getOffset() {\n const {\n offset\n } = this._config;\n\n if (typeof offset === 'string') {\n return offset.split(',').map(val => Number.parseInt(val, 10));\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n\n return offset;\n }\n\n _getPopperConfig() {\n const defaultBsPopperConfig = {\n placement: this._getPlacement(),\n modifiers: [{\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }]\n }; // Disable Popper if we have a static display\n\n if (this._config.display === 'static') {\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }];\n }\n\n return { ...defaultBsPopperConfig,\n ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n };\n }\n\n _selectMenuItem(event) {\n const items = SelectorEngine__default['default'].find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(isVisible);\n\n if (!items.length) {\n return;\n }\n\n let index = items.indexOf(event.target); // Up\n\n if (event.key === ARROW_UP_KEY && index > 0) {\n index--;\n } // Down\n\n\n if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {\n index++;\n } // index is -1 if the first keydown is an ArrowUp\n\n\n index = index === -1 ? 0 : index;\n items[index].focus();\n } // Static\n\n\n static dropdownInterface(element, config) {\n let data = Data__default['default'].get(element, DATA_KEY);\n\n const _config = typeof config === 'object' ? config : null;\n\n if (!data) {\n data = new Dropdown(element, _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]();\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Dropdown.dropdownInterface(this, config);\n });\n }\n\n static clearMenus(event) {\n if (event && (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY)) {\n return;\n }\n\n const toggles = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE);\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const context = Data__default['default'].get(toggles[i], DATA_KEY);\n\n if (!context || context._config.autoClose === false) {\n continue;\n }\n\n if (!context._element.classList.contains(CLASS_NAME_SHOW)) {\n continue;\n }\n\n const relatedTarget = {\n relatedTarget: context._element\n };\n\n if (event) {\n const composedPath = event.composedPath();\n const isMenuTarget = composedPath.includes(context._menu);\n\n if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) {\n continue;\n } // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n\n\n if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue;\n }\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event;\n }\n }\n\n context._completeHide(relatedTarget);\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || element.parentNode;\n }\n\n static dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ? event.key === SPACE_KEY || event.key !== ESCAPE_KEY && (event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY || event.target.closest(SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.key)) {\n return;\n }\n\n const isActive = this.classList.contains(CLASS_NAME_SHOW);\n\n if (!isActive && event.key === ESCAPE_KEY) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if (isDisabled(this)) {\n return;\n }\n\n const getToggleButton = () => this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine__default['default'].prev(this, SELECTOR_DATA_TOGGLE)[0];\n\n if (event.key === ESCAPE_KEY) {\n getToggleButton().focus();\n Dropdown.clearMenus();\n return;\n }\n\n if (!isActive && (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY)) {\n getToggleButton().click();\n return;\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus();\n return;\n }\n\n Dropdown.getInstance(getToggleButton())._selectMenuItem(event);\n }\n\n }\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler__default['default'].on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown.dataApiKeydownHandler);\n EventHandler__default['default'].on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);\n EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, Dropdown.clearMenus);\n EventHandler__default['default'].on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);\n EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault();\n Dropdown.dropdownInterface(this);\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Dropdown to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(Dropdown);\n\n return Dropdown;\n\n})));\n//# sourceMappingURL=dropdown.js.map\n","/*!\n * Bootstrap modal.js v5.0.1 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/selector-engine.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./base-component.js')) :\n typeof define === 'function' && define.amd ? define(['./dom/selector-engine', './dom/event-handler', './dom/manipulator', './base-component'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Modal = factory(global.SelectorEngine, global.EventHandler, global.Manipulator, global.Base));\n}(this, (function (SelectorEngine, EventHandler, Manipulator, BaseComponent) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);\n var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);\n var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);\n\n const MILLISECONDS_MULTIPLIER = 1000;\n const TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n const 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 const getSelector = element => {\n let selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n let hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n\n if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = `#${hrefAttr.split('#')[1]}`;\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\n }\n\n return selector;\n };\n\n const getElementFromSelector = element => {\n const selector = getSelector(element);\n return selector ? document.querySelector(selector) : null;\n };\n\n const getTransitionDurationFromElement = element => {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element);\n const floatTransitionDuration = Number.parseFloat(transitionDuration);\n const floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n };\n\n const triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END));\n };\n\n const isElement = obj => {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n if (typeof obj.jquery !== 'undefined') {\n obj = obj[0];\n }\n\n return typeof obj.nodeType !== 'undefined';\n };\n\n const emulateTransitionEnd = (element, duration) => {\n let called = false;\n const durationPadding = 5;\n const emulatedDuration = duration + durationPadding;\n\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\n const 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) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(`${componentName.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`);\n }\n });\n };\n\n const 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 return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden';\n }\n\n return false;\n };\n\n const reflow = element => element.offsetHeight;\n\n const getjQuery = () => {\n const {\n jQuery\n } = window;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n };\n\n const onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback);\n } else {\n callback();\n }\n };\n\n const isRTL = () => document.documentElement.dir === 'rtl';\n\n const defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n const name = plugin.NAME;\n const JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n const execute = callback => {\n if (typeof callback === 'function') {\n callback();\n }\n };\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.1): util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\n const SELECTOR_STICKY_CONTENT = '.sticky-top';\n\n const getWidth = () => {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n const documentWidth = document.documentElement.clientWidth;\n return Math.abs(window.innerWidth - documentWidth);\n };\n\n const hide = (width = getWidth()) => {\n _disableOverFlow(); // give padding to element to balances the hidden scrollbar width\n\n\n _setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + width); // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements, to keep shown fullwidth\n\n\n _setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + width);\n\n _setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - width);\n };\n\n const _disableOverFlow = () => {\n const actualValue = document.body.style.overflow;\n\n if (actualValue) {\n Manipulator__default['default'].setDataAttribute(document.body, 'overflow', actualValue);\n }\n\n document.body.style.overflow = 'hidden';\n };\n\n const _setElementAttributes = (selector, styleProp, callback) => {\n const scrollbarWidth = getWidth();\n SelectorEngine__default['default'].find(selector).forEach(element => {\n if (element !== document.body && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return;\n }\n\n const actualValue = element.style[styleProp];\n const calculatedValue = window.getComputedStyle(element)[styleProp];\n Manipulator__default['default'].setDataAttribute(element, styleProp, actualValue);\n element.style[styleProp] = `${callback(Number.parseFloat(calculatedValue))}px`;\n });\n };\n\n const reset = () => {\n _resetElementAttributes('body', 'overflow');\n\n _resetElementAttributes('body', 'paddingRight');\n\n _resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight');\n\n _resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight');\n };\n\n const _resetElementAttributes = (selector, styleProp) => {\n SelectorEngine__default['default'].find(selector).forEach(element => {\n const value = Manipulator__default['default'].getDataAttribute(element, styleProp);\n\n if (typeof value === 'undefined') {\n element.style.removeProperty(styleProp);\n } else {\n Manipulator__default['default'].removeDataAttribute(element, styleProp);\n element.style[styleProp] = value;\n }\n });\n };\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.1): util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n const Default$1 = {\n isVisible: true,\n // if false, we use the backdrop helper without adding any element to the dom\n isAnimated: false,\n rootElement: document.body,\n // give the choice to place backdrop under different elements\n clickCallback: null\n };\n const DefaultType$1 = {\n isVisible: 'boolean',\n isAnimated: 'boolean',\n rootElement: 'element',\n clickCallback: '(function|null)'\n };\n const NAME$1 = 'backdrop';\n const CLASS_NAME_BACKDROP = 'modal-backdrop';\n const CLASS_NAME_FADE$1 = 'fade';\n const CLASS_NAME_SHOW$1 = 'show';\n const EVENT_MOUSEDOWN = `mousedown.bs.${NAME$1}`;\n\n class Backdrop {\n constructor(config) {\n this._config = this._getConfig(config);\n this._isAppended = false;\n this._element = null;\n }\n\n show(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n\n this._append();\n\n if (this._config.isAnimated) {\n reflow(this._getElement());\n }\n\n this._getElement().classList.add(CLASS_NAME_SHOW$1);\n\n this._emulateAnimation(() => {\n execute(callback);\n });\n }\n\n hide(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n\n this._getElement().classList.remove(CLASS_NAME_SHOW$1);\n\n this._emulateAnimation(() => {\n this.dispose();\n execute(callback);\n });\n } // Private\n\n\n _getElement() {\n if (!this._element) {\n const backdrop = document.createElement('div');\n backdrop.className = CLASS_NAME_BACKDROP;\n\n if (this._config.isAnimated) {\n backdrop.classList.add(CLASS_NAME_FADE$1);\n }\n\n this._element = backdrop;\n }\n\n return this._element;\n }\n\n _getConfig(config) {\n config = { ...Default$1,\n ...(typeof config === 'object' ? config : {})\n };\n config.rootElement = config.rootElement || document.body;\n typeCheckConfig(NAME$1, config, DefaultType$1);\n return config;\n }\n\n _append() {\n if (this._isAppended) {\n return;\n }\n\n this._config.rootElement.appendChild(this._getElement());\n\n EventHandler__default['default'].on(this._getElement(), EVENT_MOUSEDOWN, () => {\n execute(this._config.clickCallback);\n });\n this._isAppended = true;\n }\n\n dispose() {\n if (!this._isAppended) {\n return;\n }\n\n EventHandler__default['default'].off(this._element, EVENT_MOUSEDOWN);\n\n this._getElement().parentNode.removeChild(this._element);\n\n this._isAppended = false;\n }\n\n _emulateAnimation(callback) {\n if (!this._config.isAnimated) {\n execute(callback);\n return;\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._getElement());\n EventHandler__default['default'].one(this._getElement(), 'transitionend', () => execute(callback));\n emulateTransitionEnd(this._getElement(), backdropTransitionDuration);\n }\n\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'modal';\n const DATA_KEY = 'bs.modal';\n const EVENT_KEY = `.${DATA_KEY}`;\n const DATA_API_KEY = '.data-api';\n const ESCAPE_KEY = 'Escape';\n const Default = {\n backdrop: true,\n keyboard: true,\n focus: true\n };\n const DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean'\n };\n const EVENT_HIDE = `hide${EVENT_KEY}`;\n const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`;\n const EVENT_HIDDEN = `hidden${EVENT_KEY}`;\n const EVENT_SHOW = `show${EVENT_KEY}`;\n const EVENT_SHOWN = `shown${EVENT_KEY}`;\n const EVENT_FOCUSIN = `focusin${EVENT_KEY}`;\n const EVENT_RESIZE = `resize${EVENT_KEY}`;\n const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`;\n const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`;\n const EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`;\n const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`;\n const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\n const CLASS_NAME_OPEN = 'modal-open';\n const CLASS_NAME_FADE = 'fade';\n const CLASS_NAME_SHOW = 'show';\n const CLASS_NAME_STATIC = 'modal-static';\n const SELECTOR_DIALOG = '.modal-dialog';\n const SELECTOR_MODAL_BODY = '.modal-body';\n const SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]';\n const SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"modal\"]';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Modal extends BaseComponent__default['default'] {\n constructor(element, config) {\n super(element);\n this._config = this._getConfig(config);\n this._dialog = SelectorEngine__default['default'].findOne(SELECTOR_DIALOG, this._element);\n this._backdrop = this._initializeBackDrop();\n this._isShown = false;\n this._ignoreBackdropClick = false;\n this._isTransitioning = false;\n } // Getters\n\n\n static get Default() {\n return Default;\n }\n\n static get NAME() {\n return NAME;\n } // Public\n\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._isAnimated()) {\n this._isTransitioning = true;\n }\n\n const showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW, {\n relatedTarget\n });\n\n if (this._isShown || showEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = true;\n hide();\n document.body.classList.add(CLASS_NAME_OPEN);\n\n this._adjustDialog();\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, event => this.hide(event));\n EventHandler__default['default'].on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {\n EventHandler__default['default'].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__default['default'].trigger(this._element, EVENT_HIDE);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = false;\n\n const isAnimated = this._isAnimated();\n\n if (isAnimated) {\n this._isTransitioning = true;\n }\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n EventHandler__default['default'].off(document, EVENT_FOCUSIN);\n\n this._element.classList.remove(CLASS_NAME_SHOW);\n\n EventHandler__default['default'].off(this._element, EVENT_CLICK_DISMISS);\n EventHandler__default['default'].off(this._dialog, EVENT_MOUSEDOWN_DISMISS);\n\n this._queueCallback(() => this._hideModal(), this._element, isAnimated);\n }\n\n dispose() {\n [window, this._dialog].forEach(htmlElement => EventHandler__default['default'].off(htmlElement, EVENT_KEY));\n\n this._backdrop.dispose();\n\n super.dispose();\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\n EventHandler__default['default'].off(document, EVENT_FOCUSIN);\n }\n\n handleUpdate() {\n this._adjustDialog();\n } // Private\n\n\n _initializeBackDrop() {\n return new Backdrop({\n isVisible: Boolean(this._config.backdrop),\n // 'static' option will be translated to true, and booleans will keep their value\n isAnimated: this._isAnimated()\n });\n }\n\n _getConfig(config) {\n config = { ...Default,\n ...Manipulator__default['default'].getDataAttributes(this._element),\n ...config\n };\n typeCheckConfig(NAME, config, DefaultType);\n return config;\n }\n\n _showElement(relatedTarget) {\n const isAnimated = this._isAnimated();\n\n const modalBody = SelectorEngine__default['default'].findOne(SELECTOR_MODAL_BODY, this._dialog);\n\n if (!this._element.parentNode || 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\n this._element.removeAttribute('aria-hidden');\n\n this._element.setAttribute('aria-modal', true);\n\n this._element.setAttribute('role', 'dialog');\n\n this._element.scrollTop = 0;\n\n if (modalBody) {\n modalBody.scrollTop = 0;\n }\n\n if (isAnimated) {\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__default['default'].trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n });\n };\n\n this._queueCallback(transitionComplete, this._dialog, isAnimated);\n }\n\n _enforceFocus() {\n EventHandler__default['default'].off(document, EVENT_FOCUSIN); // guard against infinite focus loop\n\n EventHandler__default['default'].on(document, EVENT_FOCUSIN, event => {\n if (document !== event.target && this._element !== event.target && !this._element.contains(event.target)) {\n this._element.focus();\n }\n });\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n EventHandler__default['default'].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__default['default'].off(this._element, EVENT_KEYDOWN_DISMISS);\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler__default['default'].on(window, EVENT_RESIZE, () => this._adjustDialog());\n } else {\n EventHandler__default['default'].off(window, EVENT_RESIZE);\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none';\n\n this._element.setAttribute('aria-hidden', true);\n\n this._element.removeAttribute('aria-modal');\n\n this._element.removeAttribute('role');\n\n this._isTransitioning = false;\n\n this._backdrop.hide(() => {\n document.body.classList.remove(CLASS_NAME_OPEN);\n\n this._resetAdjustments();\n\n reset();\n EventHandler__default['default'].trigger(this._element, EVENT_HIDDEN);\n });\n }\n\n _showBackdrop(callback) {\n EventHandler__default['default'].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 === true) {\n this.hide();\n } else if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition();\n }\n });\n\n this._backdrop.show(callback);\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE);\n }\n\n _triggerBackdropTransition() {\n const hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE_PREVENTED);\n\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\n const modalTransitionDuration = getTransitionDurationFromElement(this._dialog);\n EventHandler__default['default'].off(this._element, 'transitionend');\n EventHandler__default['default'].one(this._element, 'transitionend', () => {\n this._element.classList.remove(CLASS_NAME_STATIC);\n\n if (!isModalOverflowing) {\n EventHandler__default['default'].one(this._element, 'transitionend', () => {\n this._element.style.overflowY = '';\n });\n emulateTransitionEnd(this._element, modalTransitionDuration);\n }\n });\n emulateTransitionEnd(this._element, modalTransitionDuration);\n\n this._element.focus();\n } // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n const scrollbarWidth = getWidth();\n const isBodyOverflowing = scrollbarWidth > 0;\n\n if (!isBodyOverflowing && isModalOverflowing && !isRTL() || isBodyOverflowing && !isModalOverflowing && isRTL()) {\n this._element.style.paddingLeft = `${scrollbarWidth}px`;\n }\n\n if (isBodyOverflowing && !isModalOverflowing && !isRTL() || !isBodyOverflowing && isModalOverflowing && isRTL()) {\n this._element.style.paddingRight = `${scrollbarWidth}px`;\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n } // Static\n\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n const data = Modal.getInstance(this) || new Modal(this, typeof config === 'object' ? config : {});\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config](relatedTarget);\n });\n }\n\n }\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this);\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n EventHandler__default['default'].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__default['default'].one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus();\n }\n });\n });\n const data = Modal.getInstance(target) || new Modal(target);\n data.toggle(this);\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Modal to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(Modal);\n\n return Modal;\n\n})));\n//# sourceMappingURL=modal.js.map\n"],"sourceRoot":""}