JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr/*! * Bootstrap v5.3.1 (https://getbootstrap.com/) * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("@popperjs/core")):"function"==typeof define&&define.amd?define(["@popperjs/core"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).bootstrap=t(e.Popper)}(this,(function(e){"use strict";function t(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const n in e)if("default"!==n){const i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:()=>e[n]})}return t.default=e,Object.freeze(t)}const n=t(e);function i(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,i=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[i++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var f=new Map;const h=function(e,t,n){f.has(e)||f.set(e,new Map);var i=f.get(e); // make it clear we only want one instance per element // can be removed later when multiple key/instances are fine to be used i.has(t)||0===i.size?i.set(t,n): // eslint-disable-next-line no-console console.error("Bootstrap doesn't allow more than one instance per element. Bound instance: "+Array.from(i.keys())[0]+".")},d=function(e,t){return f.has(e)&&f.get(e).get(t)||null},_=function(e,t){if(f.has(e)){var n=f.get(e);n.delete(t), // free up element references if there are no instances left for an element 0===n.size&&f.delete(e)}}; /** * -------------------------------------------------------------------------- * Bootstrap util/index.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */var g="transitionend",p=function(e){return e&&window.CSS&&window.CSS.escape&&( // document.querySelector needs escaping to handle IDs (html5+) containing for instance / e=e.replace(/#([^\s"#']+)/g,(function(e,t){return"#"+CSS.escape(t)}))),e},m=function(e){e.dispatchEvent(new Event(g))},v=function(e){return!(!e||"object"!=typeof e)&&(void 0!==e.jquery&&(e=e[0]),void 0!==e.nodeType)},b=function(e){ // it's a jQuery object or a node element return v(e)?e.jquery?e[0]:e:"string"==typeof e&&e.length>0?document.querySelector(p(e)):null},y=function(e){if(!v(e)||0===e.getClientRects().length)return!1;var t="visible"===getComputedStyle(e).getPropertyValue("visibility"),n=e.closest("details:not([open])"); // Handle `details` element as its content may falsie appear visible when it is closed if(!n)return t;if(n!==e){var i=e.closest("summary");if(i&&i.parentNode!==n)return!1;if(null===i)return!1}return t},w=function(e){return!e||e.nodeType!==Node.ELEMENT_NODE||(!!e.classList.contains("disabled")||(void 0!==e.disabled?e.disabled:e.hasAttribute("disabled")&&"false"!==e.getAttribute("disabled")))},E=function e(t){if(!document.documentElement.attachShadow)return null; // Can find the shadow root otherwise it'll return the document if("function"==typeof t.getRootNode){var n=t.getRootNode();return n instanceof ShadowRoot?n:null}return t instanceof ShadowRoot?t: // when we don't find a shadow root t.parentNode?e(t.parentNode):null},A=function(){},k=function(e){e.offsetHeight;// eslint-disable-line no-unused-expressions },C=function(){return window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null},T=[],S=function(){return"rtl"===document.documentElement.dir},O=function(e){var t;t=function(){var t=C(); /* istanbul ignore if */if(t){var n=e.NAME,i=t.fn[n];t.fn[n]=e.jQueryInterface,t.fn[n].Constructor=e,t.fn[n].noConflict=function(){return t.fn[n]=i,e.jQueryInterface}}},"loading"===document.readyState?( // add listener on the first call when the document is in loading state T.length||document.addEventListener("DOMContentLoaded",(function(){for(var e=0,t=T;e 'click') return e=e.replace(D,""),F[e]||e}var X={on:function(e,t,n,i){R(e,t,n,i,!1)},one:function(e,t,n,i){R(e,t,n,i,!0)},off:function(e,t,n,i){if("string"==typeof t&&e){var r=W(t,n,i),o=r[0],s=r[1],a=r[2],l=a!==t,c=B(e),u=c[a]||{},f=t.startsWith(".");if(void 0===s){if(f)for(var h=0,d=Object.keys(c);h1?0:e.touches[0].clientX-this._deltaX},n._handleSwipe=function(){var e=Math.abs(this._deltaX);if(!(e<=40)){var t=e/this._deltaX;this._deltaX=0,t&&L(t>0?this._config.rightCallback:this._config.leftCallback)}},n._initEvents=function(){var e=this;this._supportPointerEvents?(X.on(this._element,me,(function(t){return e._start(t)})),X.on(this._element,ve,(function(t){return e._end(t)})),this._element.classList.add("pointer-event")):(X.on(this._element,_e,(function(t){return e._start(t)})),X.on(this._element,ge,(function(t){return e._move(t)})),X.on(this._element,pe,(function(t){return e._end(t)})))},n._eventIsPointerPenTouch=function(e){return this._supportPointerEvents&&("pen"===e.pointerType||"touch"===e.pointerType)} // Static ,t.isSupported=function(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0},r(t,null,[{key:"Default",get:function(){return be}},{key:"DefaultType",get:function(){return ye}},{key:"NAME",get:function(){return"swipe"}}]),t}(te),Ee=".bs.carousel",Ae=".data-api",ke="next",Ce="prev",Te="left",Se="right",Oe="slide"+Ee,Le="slid"+Ee,Ie="keydown"+Ee,Ne="mouseenter"+Ee,Pe="mouseleave"+Ee,De="dragstart"+Ee,je="load"+Ee+Ae,Me="click"+Ee+Ae,xe="carousel",Fe="active",ze=".active",He=".carousel-item",Be=ze+He,qe=((he={}).ArrowLeft=Se,he.ArrowRight=Te,he),We={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},Re={interval:"(number|boolean)", // TODO:v6 remove boolean support keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"},Ke=function(e){function t(t,n){var i;return(i=e.call(this,t,n)||this)._interval=null,i._activeElement=null,i._isSliding=!1,i.touchTimeout=null,i._swipeHelper=null,i._indicatorsElement=re.findOne(".carousel-indicators",i._element),i._addEventListeners(),i._config.ride===xe&&i.cycle(),i} // Getters s(t,e);var n=t.prototype; // Public return n.next=function(){this._slide(ke)},n.nextWhenVisible=function(){ // FIXME TODO use `document.visibilityState` // Don't call next when the page isn't visible // or the carousel or its parent isn't visible !document.hidden&&y(this._element)&&this.next()},n.prev=function(){this._slide(Ce)},n.pause=function(){this._isSliding&&m(this._element),this._clearInterval()},n.cycle=function(){var e=this;this._clearInterval(),this._updateInterval(),this._interval=setInterval((function(){return e.nextWhenVisible()}),this._config.interval)},n._maybeEnableCycle=function(){var e=this;this._config.ride&&(this._isSliding?X.one(this._element,Le,(function(){return e.cycle()})):this.cycle())},n.to=function(e){var t=this,n=this._getItems();if(!(e>n.length-1||e<0))if(this._isSliding)X.one(this._element,Le,(function(){return t.to(e)}));else{var i=this._getItemIndex(this._getActive());if(i!==e){var r=e>i?ke:Ce;this._slide(r,n[e])}}},n.dispose=function(){this._swipeHelper&&this._swipeHelper.dispose(),e.prototype.dispose.call(this)} // Private ,n._configAfterMerge=function(e){return e.defaultInterval=e.interval,e},n._addEventListeners=function(){var e=this;this._config.keyboard&&X.on(this._element,Ie,(function(t){return e._keydown(t)})),"hover"===this._config.pause&&(X.on(this._element,Ne,(function(){return e.pause()})),X.on(this._element,Pe,(function(){return e._maybeEnableCycle()}))),this._config.touch&&we.isSupported()&&this._addTouchEventListeners()},n._addTouchEventListeners=function(){for(var e,t=this,n=u(re.find(".carousel-item img",this._element));!(e=n()).done;){var i=e.value;X.on(i,De,(function(e){return e.preventDefault()}))}var r={leftCallback:function(){return t._slide(t._directionToOrder(Te))},rightCallback:function(){return t._slide(t._directionToOrder(Se))},endCallback:function(){"hover"===t._config.pause&&( // If it's a touch-enabled device, mouseenter/leave are fired as // part of the mouse compatibility events on first tap - the carousel // would stop cycling until user tapped out of it; // here, we listen for touchend, explicitly pause the carousel // (as if it's the second time we tap on it, mouseenter compat event // is NOT fired) and after a timeout (to allow for mouse compatibility // events to fire) we explicitly restart cycling t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout((function(){return t._maybeEnableCycle()}),500+t._config.interval))}};this._swipeHelper=new we(this._element,r)},n._keydown=function(e){if(!/input|textarea/i.test(e.target.tagName)){var t=qe[e.key];t&&(e.preventDefault(),this._slide(this._directionToOrder(t)))}},n._getItemIndex=function(e){return this._getItems().indexOf(e)},n._setActiveIndicatorElement=function(e){if(this._indicatorsElement){var t=re.findOne(ze,this._indicatorsElement);t.classList.remove(Fe),t.removeAttribute("aria-current");var n=re.findOne('[data-bs-slide-to="'+e+'"]',this._indicatorsElement);n&&(n.classList.add(Fe),n.setAttribute("aria-current","true"))}},n._updateInterval=function(){var e=this._activeElement||this._getActive();if(e){var t=Number.parseInt(e.getAttribute("data-bs-interval"),10);this._config.interval=t||this._config.defaultInterval}},n._slide=function(e,t){var n=this;if(void 0===t&&(t=null),!this._isSliding){var i=this._getActive(),r=e===ke,o=t||N(this._getItems(),i,r,this._config.wrap);if(o!==i){var s=this._getItemIndex(o),a=function(t){return X.trigger(n._element,t,{relatedTarget:o,direction:n._orderToDirection(e),from:n._getItemIndex(i),to:s})};if(!a(Oe).defaultPrevented&&i&&o){var l=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(s),this._activeElement=o;var c=r?"carousel-item-start":"carousel-item-end",u=r?"carousel-item-next":"carousel-item-prev";o.classList.add(u),k(o),i.classList.add(c),o.classList.add(c);this._queueCallback((function(){o.classList.remove(c,u),o.classList.add(Fe),i.classList.remove(Fe,u,c),n._isSliding=!1,a(Le)}),i,this._isAnimated()),l&&this.cycle()}}}},n._isAnimated=function(){return this._element.classList.contains("slide")},n._getActive=function(){return re.findOne(Be,this._element)},n._getItems=function(){return re.find(He,this._element)},n._clearInterval=function(){this._interval&&(clearInterval(this._interval),this._interval=null)},n._directionToOrder=function(e){return S()?e===Te?Ce:ke:e===Te?ke:Ce},n._orderToDirection=function(e){return S()?e===Ce?Te:Se:e===Ce?Se:Te} // Static ,t.jQueryInterface=function(e){return this.each((function(){var n=t.getOrCreateInstance(this,e);if("number"!=typeof e){if("string"==typeof e){if(void 0===n[e]||e.startsWith("_")||"constructor"===e)throw new TypeError('No method named "'+e+'"');n[e]()}}else n.to(e)}))},r(t,null,[{key:"Default",get:function(){return We}},{key:"DefaultType",get:function(){return Re}},{key:"NAME",get:function(){return"carousel"}}]),t}(ne); /** * Data API implementation */ X.on(document,Me,"[data-bs-slide], [data-bs-slide-to]",(function(e){var t=re.getElementFromSelector(this);if(t&&t.classList.contains(xe)){e.preventDefault();var n=Ke.getOrCreateInstance(t),i=this.getAttribute("data-bs-slide-to");if(i)return n.to(i),void n._maybeEnableCycle();if("next"===ee(this,"slide"))return n.next(),void n._maybeEnableCycle();n.prev(),n._maybeEnableCycle()}})),X.on(window,je,(function(){for(var e,t=u(re.find('[data-bs-ride="carousel"]'));!(e=t()).done;){var n=e.value;Ke.getOrCreateInstance(n)}})), /** * jQuery */ O(Ke); /** * Constants */ var Ve=".bs.collapse",Qe="show"+Ve,Xe="shown"+Ve,Ye="hide"+Ve,Ue="hidden"+Ve,$e="click"+Ve+".data-api",Ge="show",Je="collapse",Ze="collapsing",et=":scope ."+Je+" ."+Je,tt='[data-bs-toggle="collapse"]',nt={parent:null,toggle:!0},it={parent:"(null|element)",toggle:"boolean"},rt=function(e){function t(t,n){var i;(i=e.call(this,t,n)||this)._isTransitioning=!1,i._triggerArray=[];for(var r,o=u(re.find(tt));!(r=o()).done;){var s=r.value,a=re.getSelectorFromElement(s),l=re.find(a).filter((function(e){return e===i._element}));null!==a&&l.length&&i._triggerArray.push(s)}return i._initializeChildren(),i._config.parent||i._addAriaAndCollapsedClass(i._triggerArray,i._isShown()),i._config.toggle&&i.toggle(),i} // Getters s(t,e);var n=t.prototype; // Public return n.toggle=function(){this._isShown()?this.hide():this.show()},n.show=function(){var e=this;if(!this._isTransitioning&&!this._isShown()){var n=[]; // find active children if(this._config.parent&&(n=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((function(t){return t!==e._element})).map((function(e){return t.getOrCreateInstance(e,{toggle:!1})}))),!n.length||!n[0]._isTransitioning)if(!X.trigger(this._element,Qe).defaultPrevented){for(var i,r=u(n);!(i=r()).done;){i.value.hide()}var o=this._getDimension();this._element.classList.remove(Je),this._element.classList.add(Ze),this._element.style[o]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;var s="scroll"+(o[0].toUpperCase()+o.slice(1));this._queueCallback((function(){e._isTransitioning=!1,e._element.classList.remove(Ze),e._element.classList.add(Je,Ge),e._element.style[o]="",X.trigger(e._element,Xe)}),this._element,!0),this._element.style[o]=this._element[s]+"px"}}},n.hide=function(){var e=this;if(!this._isTransitioning&&this._isShown()&&!X.trigger(this._element,Ye).defaultPrevented){var t=this._getDimension();this._element.style[t]=this._element.getBoundingClientRect()[t]+"px",k(this._element),this._element.classList.add(Ze),this._element.classList.remove(Je,Ge);for(var n,i=u(this._triggerArray);!(n=i()).done;){var r=n.value,o=re.getElementFromSelector(r);o&&!this._isShown(o)&&this._addAriaAndCollapsedClass([r],!1)}this._isTransitioning=!0;this._element.style[t]="",this._queueCallback((function(){e._isTransitioning=!1,e._element.classList.remove(Ze),e._element.classList.add(Je),X.trigger(e._element,Ue)}),this._element,!0)}},n._isShown=function(e){return void 0===e&&(e=this._element),e.classList.contains(Ge)} // Private ,n._configAfterMerge=function(e){return e.toggle=Boolean(e.toggle),// Coerce string values e.parent=b(e.parent),e},n._getDimension=function(){return this._element.classList.contains("collapse-horizontal")?"width":"height"},n._initializeChildren=function(){if(this._config.parent)for(var e,t=u(this._getFirstLevelChildren(tt));!(e=t()).done;){var n=e.value,i=re.getElementFromSelector(n);i&&this._addAriaAndCollapsedClass([n],this._isShown(i))}},n._getFirstLevelChildren=function(e){var t=re.find(et,this._config.parent); // remove children if greater depth return re.find(e,this._config.parent).filter((function(e){return!t.includes(e)}))},n._addAriaAndCollapsedClass=function(e,t){if(e.length)for(var n,i=u(e);!(n=i()).done;){var r=n.value;r.classList.toggle("collapsed",!t),r.setAttribute("aria-expanded",t)}} // Static ,t.jQueryInterface=function(e){var n={};return"string"==typeof e&&/show|hide/.test(e)&&(n.toggle=!1),this.each((function(){var i=t.getOrCreateInstance(this,n);if("string"==typeof e){if(void 0===i[e])throw new TypeError('No method named "'+e+'"');i[e]()}}))},r(t,null,[{key:"Default",get:function(){return nt}},{key:"DefaultType",get:function(){return it}},{key:"NAME",get:function(){return"collapse"}}]),t}(ne); /** * Data API implementation */ X.on(document,$e,tt,(function(e){ // preventDefault only for elements (which change the URL) not inside the collapsible element ("A"===e.target.tagName||e.delegateTarget&&"A"===e.delegateTarget.tagName)&&e.preventDefault();for(var t,n=u(re.getMultipleElementsFromSelector(this));!(t=n()).done;){var i=t.value;rt.getOrCreateInstance(i,{toggle:!1}).toggle()}})), /** * jQuery */ O(rt); /** * Constants */ var ot="dropdown",st=".bs.dropdown",at=".data-api",lt="ArrowUp",ct="ArrowDown",ut="hide"+st,ft="hidden"+st,ht="show"+st,dt="shown"+st,_t="click"+st+at,gt="keydown"+st+at,pt="keyup"+st+at,mt="show",vt='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',bt=vt+"."+mt,yt=".dropdown-menu",wt=S()?"top-end":"top-start",Et=S()?"top-start":"top-end",At=S()?"bottom-end":"bottom-start",kt=S()?"bottom-start":"bottom-end",Ct=S()?"left-start":"right-start",Tt=S()?"right-start":"left-start",St={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},Ot={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"},Lt=function(e){function t(t,n){var i;return(i=e.call(this,t,n)||this)._popper=null,i._parent=i._element.parentNode,// dropdown wrapper // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/ i._menu=re.next(i._element,yt)[0]||re.prev(i._element,yt)[0]||re.findOne(yt,i._parent),i._inNavbar=i._detectNavbar(),i} // Getters s(t,e);var i=t.prototype; // Public return i.toggle=function(){return this._isShown()?this.hide():this.show()},i.show=function(){if(!w(this._element)&&!this._isShown()){var e={relatedTarget:this._element};if(!X.trigger(this._element,ht,e).defaultPrevented){ // If this is a touch-enabled device we add extra // empty mouseover listeners to the body's immediate children; // only needed because of broken event delegation on iOS // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(var t,n=u((i=[]).concat.apply(i,document.body.children));!(t=n()).done;){var i,r=t.value;X.on(r,"mouseover",A)}this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(mt),this._element.classList.add(mt),X.trigger(this._element,dt,e)}}},i.hide=function(){if(!w(this._element)&&this._isShown()){var e={relatedTarget:this._element};this._completeHide(e)}},i.dispose=function(){this._popper&&this._popper.destroy(),e.prototype.dispose.call(this)},i.update=function(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()} // Private ,i._completeHide=function(e){if(!X.trigger(this._element,ut,e).defaultPrevented){ // If this is a touch-enabled device we remove the extra // empty mouseover listeners we added for iOS support if("ontouchstart"in document.documentElement)for(var t,n=u((i=[]).concat.apply(i,document.body.children));!(t=n()).done;){var i,r=t.value;X.off(r,"mouseover",A)}this._popper&&this._popper.destroy(),this._menu.classList.remove(mt),this._element.classList.remove(mt),this._element.setAttribute("aria-expanded","false"),J(this._menu,"popper"),X.trigger(this._element,ft,e)}},i._getConfig=function(t){if("object"==typeof(t=e.prototype._getConfig.call(this,t)).reference&&!v(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect) // Popper virtual elements require a getBoundingClientRect method throw new TypeError(ot.toUpperCase()+': Option "reference" provided type "object" without a required "getBoundingClientRect" method.');return t},i._createPopper=function(){if(void 0===n)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");var e=this._element;"parent"===this._config.reference?e=this._parent:v(this._config.reference)?e=b(this._config.reference):"object"==typeof this._config.reference&&(e=this._config.reference);var t=this._getPopperConfig();this._popper=n.createPopper(e,this._menu,t)},i._isShown=function(){return this._menu.classList.contains(mt)},i._getPlacement=function(){var e=this._parent;if(e.classList.contains("dropend"))return Ct;if(e.classList.contains("dropstart"))return Tt;if(e.classList.contains("dropup-center"))return"top";if(e.classList.contains("dropdown-center"))return"bottom"; // We need to trim the value because custom properties can also include spaces var t="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return e.classList.contains("dropup")?t?Et:wt:t?kt:At},i._detectNavbar=function(){return null!==this._element.closest(".navbar")},i._getOffset=function(){var e=this,t=this._config.offset;return"string"==typeof t?t.split(",").map((function(e){return Number.parseInt(e,10)})):"function"==typeof t?function(n){return t(n,e._element)}:t},i._getPopperConfig=function(){var e={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]}; // Disable Popper if we have a static display or Dropdown is in Navbar return(this._inNavbar||"static"===this._config.display)&&(G(this._menu,"popper","static"),// TODO: v6 remove e.modifiers=[{name:"applyStyles",enabled:!1}]),o({},e,L(this._config.popperConfig,[e]))},i._selectMenuItem=function(e){var t=e.key,n=e.target,i=re.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((function(e){return y(e)}));i.length&& // if target isn't included in items (e.g. when expanding the dropdown) // allow cycling to get the last item in case key equals ARROW_UP_KEY N(i,n,t===ct,!i.includes(n)).focus()} // Static ,t.jQueryInterface=function(e){return this.each((function(){var n=t.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},t.clearMenus=function(e){if(2!==e.button&&("keyup"!==e.type||"Tab"===e.key))for(var n,i=u(re.find(bt));!(n=i()).done;){var r=n.value,o=t.getInstance(r);if(o&&!1!==o._config.autoClose){var s=e.composedPath(),a=s.includes(o._menu);if(!(s.includes(o._element)||"inside"===o._config.autoClose&&!a||"outside"===o._config.autoClose&&a||o._menu.contains(e.target)&&("keyup"===e.type&&"Tab"===e.key||/input|select|option|textarea|form/i.test(e.target.tagName)))) // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu {var l={relatedTarget:o._element};"click"===e.type&&(l.clickEvent=e),o._completeHide(l)}}}},t.dataApiKeydownHandler=function(e){ // If not an UP | DOWN | ESCAPE key => not a dropdown command // If input/textarea && if key is other than ESCAPE => not a dropdown command var n=/input|textarea/i.test(e.target.tagName),i="Escape"===e.key,r=[lt,ct].includes(e.key);if((r||i)&&(!n||i)){e.preventDefault(); // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/ var o=this.matches(vt)?this:re.prev(this,vt)[0]||re.next(this,vt)[0]||re.findOne(vt,e.delegateTarget.parentNode),s=t.getOrCreateInstance(o);if(r)return e.stopPropagation(),s.show(),void s._selectMenuItem(e);s._isShown()&&( // else is escape and we check if it is shown e.stopPropagation(),s.hide(),o.focus())}},r(t,null,[{key:"Default",get:function(){return St}},{key:"DefaultType",get:function(){return Ot}},{key:"NAME",get:function(){return ot}}]),t}(ne); /** * Data API implementation */ X.on(document,gt,vt,Lt.dataApiKeydownHandler),X.on(document,gt,yt,Lt.dataApiKeydownHandler),X.on(document,_t,Lt.clearMenus),X.on(document,pt,Lt.clearMenus),X.on(document,_t,vt,(function(e){e.preventDefault(),Lt.getOrCreateInstance(this).toggle()})), /** * jQuery */ O(Lt); /** * Constants */ var It="backdrop",Nt="show",Pt="mousedown.bs."+It,Dt={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0, // if false, we use the backdrop helper without adding any element to the dom rootElement:"body"},jt={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"},Mt=function(e){function t(t){var n;return(n=e.call(this)||this)._config=n._getConfig(t),n._isAppended=!1,n._element=null,n} // Getters s(t,e);var n=t.prototype; // Public return n.show=function(e){if(this._config.isVisible){this._append();var t=this._getElement();this._config.isAnimated&&k(t),t.classList.add(Nt),this._emulateAnimation((function(){L(e)}))}else L(e)},n.hide=function(e){var t=this;this._config.isVisible?(this._getElement().classList.remove(Nt),this._emulateAnimation((function(){t.dispose(),L(e)}))):L(e)},n.dispose=function(){this._isAppended&&(X.off(this._element,Pt),this._element.remove(),this._isAppended=!1)} // Private ,n._getElement=function(){if(!this._element){var e=document.createElement("div");e.className=this._config.className,this._config.isAnimated&&e.classList.add("fade"),this._element=e}return this._element},n._configAfterMerge=function(e){ // use getElement() with the default "body" to get a fresh Element on each instantiation return e.rootElement=b(e.rootElement),e},n._append=function(){var e=this;if(!this._isAppended){var t=this._getElement();this._config.rootElement.append(t),X.on(t,Pt,(function(){L(e._config.clickCallback)})),this._isAppended=!0}},n._emulateAnimation=function(e){I(e,this._getElement(),this._config.isAnimated)},r(t,null,[{key:"Default",get:function(){return Dt}},{key:"DefaultType",get:function(){return jt}},{key:"NAME",get:function(){return It}}]),t}(te),xt=".bs.focustrap",Ft="focusin"+xt,zt="keydown.tab"+xt,Ht="backward",Bt={autofocus:!0,trapElement:null},qt={autofocus:"boolean",trapElement:"element"},Wt=function(e){function t(t){var n;return(n=e.call(this)||this)._config=n._getConfig(t),n._isActive=!1,n._lastTabNavDirection=null,n} // Getters s(t,e);var n=t.prototype; // Public return n.activate=function(){var e=this;this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),X.off(document,xt),// guard against infinite focus loop X.on(document,Ft,(function(t){return e._handleFocusin(t)})),X.on(document,zt,(function(t){return e._handleKeydown(t)})),this._isActive=!0)},n.deactivate=function(){this._isActive&&(this._isActive=!1,X.off(document,xt))} // Private ,n._handleFocusin=function(e){var t=this._config.trapElement;if(e.target!==document&&e.target!==t&&!t.contains(e.target)){var n=re.focusableChildren(t);0===n.length?t.focus():this._lastTabNavDirection===Ht?n[n.length-1].focus():n[0].focus()}},n._handleKeydown=function(e){"Tab"===e.key&&(this._lastTabNavDirection=e.shiftKey?Ht:"forward")},r(t,null,[{key:"Default",get:function(){return Bt}},{key:"DefaultType",get:function(){return qt}},{key:"NAME",get:function(){return"focustrap"}}]),t}(te),Rt=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",Kt=".sticky-top",Vt="padding-right",Qt="margin-right",Xt=function(){function e(){this._element=document.body} // Public var t=e.prototype;return t.getWidth=function(){ // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes var e=document.documentElement.clientWidth;return Math.abs(window.innerWidth-e)},t.hide=function(){var e=this.getWidth();this._disableOverFlow(), // give padding to element to balance the hidden scrollbar width this._setElementAttributes(this._element,Vt,(function(t){return t+e})), // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth this._setElementAttributes(Rt,Vt,(function(t){return t+e})),this._setElementAttributes(Kt,Qt,(function(t){return t-e}))},t.reset=function(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,Vt),this._resetElementAttributes(Rt,Vt),this._resetElementAttributes(Kt,Qt)},t.isOverflowing=function(){return this.getWidth()>0} // Private ,t._disableOverFlow=function(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"},t._setElementAttributes=function(e,t,n){var i=this,r=this.getWidth();this._applyManipulationCallback(e,(function(e){if(!(e!==i._element&&window.innerWidth>e.clientWidth+r)){i._saveInitialAttribute(e,t);var o=window.getComputedStyle(e).getPropertyValue(t);e.style.setProperty(t,n(Number.parseFloat(o))+"px")}}))},t._saveInitialAttribute=function(e,t){var n=e.style.getPropertyValue(t);n&&G(e,t,n)},t._resetElementAttributes=function(e,t){this._applyManipulationCallback(e,(function(e){var n=ee(e,t); // We only want to remove the property if the value is `null`; the value can also be zero null!==n?(J(e,t),e.style.setProperty(t,n)):e.style.removeProperty(t)}))},t._applyManipulationCallback=function(e,t){if(v(e))t(e);else for(var n,i=u(re.find(e,this._element));!(n=i()).done;){t(n.value)}},e}(),Yt=".bs.modal",Ut="hide"+Yt,$t="hidePrevented"+Yt,Gt="hidden"+Yt,Jt="show"+Yt,Zt="shown"+Yt,en="resize"+Yt,tn="click.dismiss"+Yt,nn="mousedown.dismiss"+Yt,rn="keydown.dismiss"+Yt,on="click"+Yt+".data-api",sn="modal-open",an="show",ln="modal-static",cn={backdrop:!0,focus:!0,keyboard:!0},un={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"},fn=function(e){function t(t,n){var i;return(i=e.call(this,t,n)||this)._dialog=re.findOne(".modal-dialog",i._element),i._backdrop=i._initializeBackDrop(),i._focustrap=i._initializeFocusTrap(),i._isShown=!1,i._isTransitioning=!1,i._scrollBar=new Xt,i._addEventListeners(),i} // Getters s(t,e);var n=t.prototype; // Public return n.toggle=function(e){return this._isShown?this.hide():this.show(e)},n.show=function(e){var t=this;this._isShown||this._isTransitioning||(X.trigger(this._element,Jt,{relatedTarget:e}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(sn),this._adjustDialog(),this._backdrop.show((function(){return t._showElement(e)}))))},n.hide=function(){var e=this;this._isShown&&!this._isTransitioning&&(X.trigger(this._element,Ut).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(an),this._queueCallback((function(){return e._hideModal()}),this._element,this._isAnimated())))},n.dispose=function(){X.off(window,Yt),X.off(this._dialog,Yt),this._backdrop.dispose(),this._focustrap.deactivate(),e.prototype.dispose.call(this)},n.handleUpdate=function(){this._adjustDialog()} // Private ,n._initializeBackDrop=function(){return new Mt({isVisible:Boolean(this._config.backdrop), // 'static' option will be translated to true, and booleans will keep their value, isAnimated:this._isAnimated()})},n._initializeFocusTrap=function(){return new Wt({trapElement:this._element})},n._showElement=function(e){var t=this; // try to append dynamic modal document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;var n=re.findOne(".modal-body",this._dialog);n&&(n.scrollTop=0),k(this._element),this._element.classList.add(an);this._queueCallback((function(){t._config.focus&&t._focustrap.activate(),t._isTransitioning=!1,X.trigger(t._element,Zt,{relatedTarget:e})}),this._dialog,this._isAnimated())},n._addEventListeners=function(){var e=this;X.on(this._element,rn,(function(t){"Escape"===t.key&&(e._config.keyboard?e.hide():e._triggerBackdropTransition())})),X.on(window,en,(function(){e._isShown&&!e._isTransitioning&&e._adjustDialog()})),X.on(this._element,nn,(function(t){ // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks X.one(e._element,tn,(function(n){e._element===t.target&&e._element===n.target&&("static"!==e._config.backdrop?e._config.backdrop&&e.hide():e._triggerBackdropTransition())}))}))},n._hideModal=function(){var e=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((function(){document.body.classList.remove(sn),e._resetAdjustments(),e._scrollBar.reset(),X.trigger(e._element,Gt)}))},n._isAnimated=function(){return this._element.classList.contains("fade")},n._triggerBackdropTransition=function(){var e=this;if(!X.trigger(this._element,$t).defaultPrevented){var t=this._element.scrollHeight>document.documentElement.clientHeight,n=this._element.style.overflowY; // return if the following background transition hasn't yet completed "hidden"===n||this._element.classList.contains(ln)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(ln),this._queueCallback((function(){e._element.classList.remove(ln),e._queueCallback((function(){e._element.style.overflowY=n}),e._dialog)}),this._dialog),this._element.focus())}} /** * The following methods are used to handle overflowing modals */,n._adjustDialog=function(){var e=this._element.scrollHeight>document.documentElement.clientHeight,t=this._scrollBar.getWidth(),n=t>0;if(n&&!e){var i=S()?"paddingLeft":"paddingRight";this._element.style[i]=t+"px"}if(!n&&e){var r=S()?"paddingRight":"paddingLeft";this._element.style[r]=t+"px"}},n._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""} // Static ,t.jQueryInterface=function(e,n){return this.each((function(){var i=t.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===i[e])throw new TypeError('No method named "'+e+'"');i[e](n)}}))},r(t,null,[{key:"Default",get:function(){return cn}},{key:"DefaultType",get:function(){return un}},{key:"NAME",get:function(){return"modal"}}]),t}(ne); /** * Data API implementation */ X.on(document,on,'[data-bs-toggle="modal"]',(function(e){var t=this,n=re.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&e.preventDefault(),X.one(n,Jt,(function(e){e.defaultPrevented||X.one(n,Gt,(function(){y(t)&&t.focus()}))})); // avoid conflict when clicking modal toggler while another one is open var i=re.findOne(".modal.show");i&&fn.getInstance(i).hide(),fn.getOrCreateInstance(n).toggle(this)})),oe(fn), /** * jQuery */ O(fn); /** * Constants */ var hn=".bs.offcanvas",dn=".data-api",_n="load"+hn+dn,gn="show",pn="showing",mn="hiding",vn=".offcanvas.show",bn="show"+hn,yn="shown"+hn,wn="hide"+hn,En="hidePrevented"+hn,An="hidden"+hn,kn="resize"+hn,Cn="click"+hn+dn,Tn="keydown.dismiss"+hn,Sn={backdrop:!0,keyboard:!0,scroll:!1},On={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"},Ln=function(e){function t(t,n){var i;return(i=e.call(this,t,n)||this)._isShown=!1,i._backdrop=i._initializeBackDrop(),i._focustrap=i._initializeFocusTrap(),i._addEventListeners(),i} // Getters s(t,e);var n=t.prototype; // Public return n.toggle=function(e){return this._isShown?this.hide():this.show(e)},n.show=function(e){var t=this;if(!this._isShown&&!X.trigger(this._element,bn,{relatedTarget:e}).defaultPrevented){this._isShown=!0,this._backdrop.show(),this._config.scroll||(new Xt).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(pn);this._queueCallback((function(){t._config.scroll&&!t._config.backdrop||t._focustrap.activate(),t._element.classList.add(gn),t._element.classList.remove(pn),X.trigger(t._element,yn,{relatedTarget:e})}),this._element,!0)}},n.hide=function(){var e=this;if(this._isShown&&!X.trigger(this._element,wn).defaultPrevented){this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add(mn),this._backdrop.hide();this._queueCallback((function(){e._element.classList.remove(gn,mn),e._element.removeAttribute("aria-modal"),e._element.removeAttribute("role"),e._config.scroll||(new Xt).reset(),X.trigger(e._element,An)}),this._element,!0)}},n.dispose=function(){this._backdrop.dispose(),this._focustrap.deactivate(),e.prototype.dispose.call(this)} // Private ,n._initializeBackDrop=function(){var e=this,t=Boolean(this._config.backdrop);return new Mt({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?function(){"static"!==e._config.backdrop?e.hide():X.trigger(e._element,En)}:null})},n._initializeFocusTrap=function(){return new Wt({trapElement:this._element})},n._addEventListeners=function(){var e=this;X.on(this._element,Tn,(function(t){"Escape"===t.key&&(e._config.keyboard?e.hide():X.trigger(e._element,En))}))} // Static ,t.jQueryInterface=function(e){return this.each((function(){var n=t.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===n[e]||e.startsWith("_")||"constructor"===e)throw new TypeError('No method named "'+e+'"');n[e](this)}}))},r(t,null,[{key:"Default",get:function(){return Sn}},{key:"DefaultType",get:function(){return On}},{key:"NAME",get:function(){return"offcanvas"}}]),t}(ne); /** * Data API implementation */ X.on(document,Cn,'[data-bs-toggle="offcanvas"]',(function(e){var t=this,n=re.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&e.preventDefault(),!w(this)){X.one(n,An,(function(){ // focus on trigger when it is closed y(t)&&t.focus()})); // avoid conflict when clicking a toggler of an offcanvas, while another is open var i=re.findOne(vn);i&&i!==n&&Ln.getInstance(i).hide(),Ln.getOrCreateInstance(n).toggle(this)}})),X.on(window,_n,(function(){for(var e,t=u(re.find(vn));!(e=t()).done;){var n=e.value;Ln.getOrCreateInstance(n).show()}})),X.on(window,kn,(function(){for(var e,t=u(re.find("[aria-modal][class*=show][class*=offcanvas-]"));!(e=t()).done;){var n=e.value;"fixed"!==getComputedStyle(n).position&&Ln.getOrCreateInstance(n).hide()}})),oe(Ln), /** * jQuery */ O(Ln); /** * -------------------------------------------------------------------------- * Bootstrap util/sanitizer.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ // js-docs-start allow-list var In={ // Global attributes allowed on any supplied element below. "*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Nn=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Pn=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Dn=function(e,t){var n=e.nodeName.toLowerCase();return t.includes(n)?!Nn.has(n)||Boolean(Pn.test(e.nodeValue)):t.filter((function(e){return e instanceof RegExp})).some((function(e){return e.test(n)})); // Check if a regular expression validates the attribute. }; /** * Constants */ var jn={allowList:In,content:{}, // { selector : text , selector2 : text2 , } extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},Mn={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},xn={entry:"(string|element|function|null)",selector:"(string|element)"},Fn=function(e){function t(t){var n;return(n=e.call(this)||this)._config=n._getConfig(t),n} // Getters s(t,e);var n=t.prototype; // Public return n.getContent=function(){var e=this;return Object.values(this._config.content).map((function(t){return e._resolvePossibleFunction(t)})).filter(Boolean)},n.hasContent=function(){return this.getContent().length>0},n.changeContent=function(e){return this._checkContent(e),this._config.content=o({},this._config.content,e),this},n.toHtml=function(){var e=document.createElement("div");e.innerHTML=this._maybeSanitize(this._config.template);for(var t=0,n=Object.entries(this._config.content);t
',title:"",trigger:"hover focus"},Xn={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"},Yn=function(e){function t(t,i){var r;if(void 0===n)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)"); // Private return(r=e.call(this,t,i)||this)._isEnabled=!0,r._timeout=0,r._isHovered=null,r._activeTrigger={},r._popper=null,r._templateFactory=null,r._newContent=null, // Protected r.tip=null,r._setListeners(),r._config.selector||r._fixTitle(),r} // Getters s(t,e);var i=t.prototype; // Public return i.enable=function(){this._isEnabled=!0},i.disable=function(){this._isEnabled=!1},i.toggleEnabled=function(){this._isEnabled=!this._isEnabled},i.toggle=function(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())},i.dispose=function(){clearTimeout(this._timeout),X.off(this._element.closest(qn),Wn,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),e.prototype.dispose.call(this)},i.show=function(){var e=this;if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(this._isWithContent()&&this._isEnabled){var t=X.trigger(this._element,this.constructor.eventName("show")),n=(E(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(!t.defaultPrevented&&n){ // TODO: v6 remove this or make it optional this._disposePopper();var i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));var r=this._config.container; // If this is a touch-enabled device we add extra // empty mouseover listeners to the body's immediate children; // only needed because of broken event delegation on iOS // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html if(this._element.ownerDocument.documentElement.contains(this.tip)||(r.append(i),X.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(Bn),"ontouchstart"in document.documentElement)for(var o,s=u((a=[]).concat.apply(a,document.body.children));!(o=s()).done;){var a,l=o.value;X.on(l,"mouseover",A)}this._queueCallback((function(){X.trigger(e._element,e.constructor.eventName("shown")),!1===e._isHovered&&e._leave(),e._isHovered=!1}),this.tip,this._isAnimated())}}},i.hide=function(){var e=this;if(this._isShown()&&!X.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){ // If this is a touch-enabled device we remove the extra // empty mouseover listeners we added for iOS support if(this._getTipElement().classList.remove(Bn),"ontouchstart"in document.documentElement)for(var t,n=u((i=[]).concat.apply(i,document.body.children));!(t=n()).done;){var i,r=t.value;X.off(r,"mouseover",A)}this._activeTrigger.click=!1,this._activeTrigger[Kn]=!1,this._activeTrigger[Rn]=!1,this._isHovered=null;this._queueCallback((function(){e._isWithActiveTrigger()||(e._isHovered||e._disposePopper(),e._element.removeAttribute("aria-describedby"),X.trigger(e._element,e.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}},i.update=function(){this._popper&&this._popper.update()} // Protected ,i._isWithContent=function(){return Boolean(this._getTitle())},i._getTipElement=function(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip},i._createTipElement=function(e){var t=this._getTemplateFactory(e).toHtml(); // TODO: remove this check in v6 if(!t)return null;t.classList.remove(Hn,Bn), // TODO: v6 the following can be achieved with CSS only t.classList.add("bs-"+this.constructor.NAME+"-auto");var n=function(e){do{e+=Math.floor(1e6*Math.random())}while(document.getElementById(e));return e}(this.constructor.NAME).toString();return t.setAttribute("id",n),this._isAnimated()&&t.classList.add(Hn),t},i.setContent=function(e){this._newContent=e,this._isShown()&&(this._disposePopper(),this.show())},i._getTemplateFactory=function(e){return this._templateFactory?this._templateFactory.changeContent(e):this._templateFactory=new Fn(o({},this._config,{ // the `content` var has to be after `this._config` // to override config.content in case of popover content:e,extraClass:this._resolvePossibleFunction(this._config.customClass)})),this._templateFactory},i._getContentForTemplate=function(){var e;return(e={})[".tooltip-inner"]=this._getTitle(),e},i._getTitle=function(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")} // Private ,i._initializeOnDelegatedTarget=function(e){return this.constructor.getOrCreateInstance(e.delegateTarget,this._getDelegateConfig())},i._isAnimated=function(){return this._config.animation||this.tip&&this.tip.classList.contains(Hn)},i._isShown=function(){return this.tip&&this.tip.classList.contains(Bn)},i._createPopper=function(e){var t=L(this._config.placement,[this,e,this._element]),i=Vn[t.toUpperCase()];return n.createPopper(this._element,e,this._getPopperConfig(i))},i._getOffset=function(){var e=this,t=this._config.offset;return"string"==typeof t?t.split(",").map((function(e){return Number.parseInt(e,10)})):"function"==typeof t?function(n){return t(n,e._element)}:t},i._resolvePossibleFunction=function(e){return L(e,[this._element])},i._getPopperConfig=function(e){var t=this,n={placement:e,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:"."+this.constructor.NAME+"-arrow"}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:function(e){ // Pre-set Popper's placement attribute in order to read the arrow sizes properly. // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement t._getTipElement().setAttribute("data-popper-placement",e.state.placement)}}]};return o({},n,L(this._config.popperConfig,[n]))},i._setListeners=function(){for(var e,t=this,n=u(this._config.trigger.split(" "));!(e=n()).done;){var i=e.value;if("click"===i)X.on(this._element,this.constructor.eventName("click"),this._config.selector,(function(e){t._initializeOnDelegatedTarget(e).toggle()}));else if("manual"!==i){var r=i===Rn?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),o=i===Rn?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");X.on(this._element,r,this._config.selector,(function(e){var n=t._initializeOnDelegatedTarget(e);n._activeTrigger["focusin"===e.type?Kn:Rn]=!0,n._enter()})),X.on(this._element,o,this._config.selector,(function(e){var n=t._initializeOnDelegatedTarget(e);n._activeTrigger["focusout"===e.type?Kn:Rn]=n._element.contains(e.relatedTarget),n._leave()}))}}this._hideModalHandler=function(){t._element&&t.hide()},X.on(this._element.closest(qn),Wn,this._hideModalHandler)},i._fixTitle=function(){var e=this._element.getAttribute("title");e&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",e),this._element.setAttribute("data-bs-original-title",e),// DO NOT USE IT. Is only for backwards compatibility this._element.removeAttribute("title"))},i._enter=function(){var e=this;this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((function(){e._isHovered&&e.show()}),this._config.delay.show))},i._leave=function(){var e=this;this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((function(){e._isHovered||e.hide()}),this._config.delay.hide))},i._setTimeout=function(e,t){clearTimeout(this._timeout),this._timeout=setTimeout(e,t)},i._isWithActiveTrigger=function(){return Object.values(this._activeTrigger).includes(!0)},i._getConfig=function(e){for(var t=Z(this._element),n=0,i=Object.keys(t);n this.constructor.Default[entry[0]] !== this._config[entry[0]]) // `Object.fromEntries(keysWithDifferentValues)` return e.selector=!1,e.trigger="manual",e},i._disposePopper=function(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)} // Static ,t.jQueryInterface=function(e){return this.each((function(){var n=t.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},r(t,null,[{key:"Default",get:function(){return Qn}},{key:"DefaultType",get:function(){return Xn}},{key:"NAME",get:function(){return"tooltip"}}]),t}(ne); /** * jQuery */ O(Yn); /** * Constants */ var Un=o({},Yn.Default,{content:"",offset:[0,8],placement:"right",template:'',trigger:"click"}),$n=o({},Yn.DefaultType,{content:"(null|string|element|function)"}),Gn=function(e){function t(){return e.apply(this,arguments)||this}s(t,e);var n=t.prototype; // Overrides return n._isWithContent=function(){return this._getTitle()||this._getContent()} // Private ,n._getContentForTemplate=function(){var e;return(e={})[".popover-header"]=this._getTitle(),e[".popover-body"]=this._getContent(),e},n._getContent=function(){return this._resolvePossibleFunction(this._config.content)} // Static ,t.jQueryInterface=function(e){return this.each((function(){var n=t.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},r(t,null,[{key:"Default",get: // Getters function(){return Un}},{key:"DefaultType",get:function(){return $n}},{key:"NAME",get:function(){return"popover"}}]),t}(Yn); /** * jQuery */ O(Gn); /** * Constants */ var Jn=".bs.scrollspy",Zn="activate"+Jn,ei="click"+Jn,ti="load"+Jn+".data-api",ni="active",ii="[href]",ri=".nav-link",oi=ri+", .nav-item > "+ri+", .list-group-item",si={offset:null, // TODO: v6 @deprecated, keep it for backwards compatibility reasons rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},ai={offset:"(number|null)", // TODO v6 @deprecated, keep it for backwards compatibility reasons rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"},li=function(e){function t(t,n){var i;// initialize // this._element is the observablesContainer and config.target the menu links wrapper return(i=e.call(this,t,n)||this)._targetLinks=new Map,i._observableSections=new Map,i._rootElement="visible"===getComputedStyle(i._element).overflowY?null:i._element,i._activeTarget=null,i._observer=null,i._previousScrollData={visibleEntryTop:0,parentScrollTop:0},i.refresh(),i} // Getters s(t,e);var n=t.prototype; // Public return n.refresh=function(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(var e,t=u(this._observableSections.values());!(e=t()).done;){var n=e.value;this._observer.observe(n)}},n.dispose=function(){this._observer.disconnect(),e.prototype.dispose.call(this)} // Private ,n._configAfterMerge=function(e){ // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case return e.target=b(e.target)||document.body, // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only e.rootMargin=e.offset?e.offset+"px 0px -30%":e.rootMargin,"string"==typeof e.threshold&&(e.threshold=e.threshold.split(",").map((function(e){return Number.parseFloat(e)}))),e},n._maybeEnableSmoothScroll=function(){var e=this;this._config.smoothScroll&&( // unregister any previous listeners X.off(this._config.target,ei),X.on(this._config.target,ei,ii,(function(t){var n=e._observableSections.get(t.target.hash);if(n){t.preventDefault();var i=e._rootElement||window,r=n.offsetTop-e._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:r,behavior:"smooth"}); // Chrome 60 doesn't support `scrollTo` i.scrollTop=r}})))},n._getNewObserver=function(){var e=this,t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((function(t){return e._observerCallback(t)}),t)} // The logic of selection ,n._observerCallback=function(e){var t=this,n=function(e){return t._targetLinks.get("#"+e.target.id)},i=function(e){t._previousScrollData.visibleEntryTop=e.target.offsetTop,t._process(n(e))},r=(this._rootElement||document.documentElement).scrollTop,o=r>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=r;for(var s,a=u(e);!(s=a()).done;){var l=s.value;if(l.isIntersecting){var c=l.target.offsetTop>=this._previousScrollData.visibleEntryTop; // if we are scrolling down, pick the bigger offsetTop if(o&&c){ // if parent isn't scrolled, let's keep the first visible item, breaking the iteration if(i(l),!r)return}else // if we are scrolling up, pick the smallest offsetTop o||c||i(l)}else this._activeTarget=null,this._clearActiveClass(n(l))}},n._initializeTargetsAndObservables=function(){this._targetLinks=new Map,this._observableSections=new Map;for(var e,t=u(re.find(ii,this._config.target));!(e=t()).done;){var n=e.value; // ensure that the anchor has an id and is not disabled if(n.hash&&!w(n)){var i=re.findOne(decodeURI(n.hash),this._element); // ensure that the observableSection exists & is visible y(i)&&(this._targetLinks.set(decodeURI(n.hash),n),this._observableSections.set(n.hash,i))}}},n._process=function(e){this._activeTarget!==e&&(this._clearActiveClass(this._config.target),this._activeTarget=e,e.classList.add(ni),this._activateParents(e),X.trigger(this._element,Zn,{relatedTarget:e}))},n._activateParents=function(e){ // Activate dropdown parents if(e.classList.contains("dropdown-item"))re.findOne(".dropdown-toggle",e.closest(".dropdown")).classList.add(ni);else for(var t,n=u(re.parents(e,".nav, .list-group"));!(t=n()).done;) // Set triggered links parents as active // With both
    and