1/*! 2 * Bootstrap v5.1.3 (https://getbootstrap.com/) 3 * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 4 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 5 */ 6(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?module.exports=factory(require('@popperjs/core')):typeof define==='function'&&define.amd?define(['@popperjs/core'],factory):(global=typeof globalThis!=='undefined'?globalThis:global||self,global.bootstrap=factory(global.Popper))})(this,(function(Popper){'use strict';function _interopNamespace(e){if(e&&e.__esModule)return e;const n=Object.create(null);if(e){for(const k in e){if(k!=='default'){const d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:!0,get:()=>e[k]})}}} 7n.default=e;return Object.freeze(n)} 8const Popper__namespace=_interopNamespace(Popper);const MAX_UID=1000000;const MILLISECONDS_MULTIPLIER=1000;const TRANSITION_END='transitionend';const toType=obj=>{if(obj===null||obj===undefined){return `${obj}`} 9return{}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase()};const getUID=prefix=>{do{prefix+=Math.floor(Math.random()*MAX_UID)}while(document.getElementById(prefix));return prefix};const getSelector=element=>{let selector=element.getAttribute('data-bs-target');if(!selector||selector==='#'){let hrefAttr=element.getAttribute('href');if(!hrefAttr||!hrefAttr.includes('#')&&!hrefAttr.startsWith('.')){return null} 10if(hrefAttr.includes('#')&&!hrefAttr.startsWith('#')){hrefAttr=`#${hrefAttr.split('#')[1]}`} 11selector=hrefAttr&&hrefAttr!=='#'?hrefAttr.trim():null} 12return selector};const getSelectorFromElement=element=>{const selector=getSelector(element);if(selector){return document.querySelector(selector)?selector:null} 13return null};const getElementFromSelector=element=>{const selector=getSelector(element);return selector?document.querySelector(selector):null};const getTransitionDurationFromElement=element=>{if(!element){return 0} 14let{transitionDuration,transitionDelay}=window.getComputedStyle(element);const floatTransitionDuration=Number.parseFloat(transitionDuration);const floatTransitionDelay=Number.parseFloat(transitionDelay);if(!floatTransitionDuration&&!floatTransitionDelay){return 0} 15transitionDuration=transitionDuration.split(',')[0];transitionDelay=transitionDelay.split(',')[0];return(Number.parseFloat(transitionDuration)+Number.parseFloat(transitionDelay))*MILLISECONDS_MULTIPLIER};const triggerTransitionEnd=element=>{element.dispatchEvent(new Event(TRANSITION_END))};const isElement=obj=>{if(!obj||typeof obj!=='object'){return!1} 16if(typeof obj.jquery!=='undefined'){obj=obj[0]} 17return typeof obj.nodeType!=='undefined'};const getElement=obj=>{if(isElement(obj)){return obj.jquery?obj[0]:obj} 18if(typeof obj==='string'&&obj.length>0){return document.querySelector(obj)} 19return null};const typeCheckConfig=(componentName,config,configTypes)=>{Object.keys(configTypes).forEach(property=>{const expectedTypes=configTypes[property];const value=config[property];const valueType=value&&isElement(value)?'element':toType(value);if(!new RegExp(expectedTypes).test(valueType)){throw new TypeError(`${componentName.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`)}})};const isVisible=element=>{if(!isElement(element)||element.getClientRects().length===0){return!1} 20return getComputedStyle(element).getPropertyValue('visibility')==='visible'};const isDisabled=element=>{if(!element||element.nodeType!==Node.ELEMENT_NODE){return!0} 21if(element.classList.contains('disabled')){return!0} 22if(typeof element.disabled!=='undefined'){return element.disabled} 23return element.hasAttribute('disabled')&&element.getAttribute('disabled')!=='false'};const findShadowRoot=element=>{if(!document.documentElement.attachShadow){return null} 24if(typeof element.getRootNode==='function'){const root=element.getRootNode();return root instanceof ShadowRoot?root:null} 25if(element instanceof ShadowRoot){return element} 26if(!element.parentNode){return null} 27return findShadowRoot(element.parentNode)};const noop=()=>{};const reflow=element=>{element.offsetHeight};const getjQuery=()=>{const{jQuery}=window;if(jQuery&&!document.body.hasAttribute('data-bs-no-jquery')){return jQuery} 28return null};const DOMContentLoadedCallbacks=[];const onDOMContentLoaded=callback=>{if(document.readyState==='loading'){if(!DOMContentLoadedCallbacks.length){document.addEventListener('DOMContentLoaded',()=>{DOMContentLoadedCallbacks.forEach(callback=>callback())})} 29DOMContentLoadedCallbacks.push(callback)}else{callback()}};const isRTL=()=>document.documentElement.dir==='rtl';const defineJQueryPlugin=plugin=>{onDOMContentLoaded(()=>{const $=getjQuery();if($){const name=plugin.NAME;const JQUERY_NO_CONFLICT=$.fn[name];$.fn[name]=plugin.jQueryInterface;$.fn[name].Constructor=plugin;$.fn[name].noConflict=()=>{$.fn[name]=JQUERY_NO_CONFLICT;return plugin.jQueryInterface}}})};const execute=callback=>{if(typeof callback==='function'){callback()}};const executeAfterTransition=(callback,transitionElement,waitForTransition=!0)=>
29{if(!waitForTransition){execute(callback);return} 30const durationPadding=5;const emulatedDuration=getTransitionDurationFromElement(transitionElement)+durationPadding;let called=!1;const handler=({target})=>{if(target!==transitionElement){return} 31called=!0;transitionElement.removeEventListener(TRANSITION_END,handler);execute(callback)};transitionElement.addEventListener(TRANSITION_END,handler);setTimeout(()=>{if(!called){triggerTransitionEnd(transitionElement)}},emulatedDuration)};const getNextActiveElement=(list,activeElement,shouldGetNext,isCycleAllowed)=>{let index=list.indexOf(activeElement);if(index===-1){return list[!shouldGetNext&&isCycleAllowed?list.length-1:0]} 32const listLength=list.length;index+=shouldGetNext?1:-1;if(isCycleAllowed){index=(index+listLength)%listLength} 33return list[Math.max(0,Math.min(index,listLength-1))]};const namespaceRegex=/[^.]*(?=\..*)\.|.*/;const stripNameRegex=/\..*/;const stripUidRegex=/::\d+$/;const eventRegistry={};let uidEvent=1;const customEvents={mouseenter:'mouseover',mouseleave:'mouseout'};const customEventsRegex=/^(mouseenter|mouseleave)/i;const nativeEvents=new Set(['click','dblclick','mouseup','mousedown','contextmenu','mousewheel','DOMMouseScroll','mouseover','mouseout','mousemove','selectstart','selectend','keydown','keypress','keyup','orientationchange','touchstart','touchmove','touchend','touchcancel','pointerdown','pointermove','pointerup','pointerleave','pointercancel','gesturestart','gesturechange','gestureend','focus','blur','change','reset','select','submit','focusin','focusout','load','unload','beforeunload','resize','move','DOMContentLoaded','readystatechange','error','abort','scroll']);function getUidEvent(element,uid){return uid&&`${uid}::${uidEvent++}`||element.uidEvent||uidEvent++} 34function getEvent(element){const uid=getUidEvent(element);element.uidEvent=uid;eventRegistry[uid]=eventRegistry[uid]||{};return eventRegistry[uid]} 35function bootstrapHandler(element,fn){return function handler(event){event.delegateTarget=element;if(handler.oneOff){EventHandler.off(element,event.type,fn)} 36return fn.apply(element,[event])}} 37function bootstrapDelegationHandler(element,selector,fn){return function handler(event){const domElements=element.querySelectorAll(selector);for(let{target}=event;target&&target!==this;target=target.parentNode){for(let i=domElements.length;i--;){if(domElements[i]===target){event.delegateTarget=target;if(handler.oneOff){EventHandler.off(element,event.type,selector,fn)} 38return fn.apply(target,[event])}}} 39return null}} 40function findHandler(events,handler,delegationSelector=null){const uidEventList=Object.keys(events);for(let i=0,len=uidEventList.length;i<len;i++){const event=events[uidEventList[i]];if(event.originalHandler===handler&&event.delegationSelector===delegationSelector){return event}} 41return null} 42function normalizeParams(originalTypeEvent,handler,delegationFn){const delegation=typeof handler==='string';const originalHandler=delegation?delegationFn:handler;let typeEvent=getTypeEvent(originalTypeEvent);const isNative=nativeEvents.has(typeEvent);if(!isNative){typeEvent=originalTypeEvent} 43return[delegation,originalHandler,typeEvent]} 44function addHandler(element,originalTypeEvent,handler,delegationFn,oneOff){if(typeof originalTypeEvent!=='string'||!element){return} 45if(!handler){handler=delegationFn;delegationFn=null} 46if(customEventsRegex.test(originalTypeEvent)){const wrapFn=fn=>{return function(event){if(!event.relatedTarget||event.relatedTarget!==event.delegateTarget&&!event.delegateTarget.contains(event.relatedTarget)){return fn.call(this,event)}}};if(delegationFn){delegationFn=wrapFn(delegationFn)}else{handler=wrapFn(handler)}} 47const[delegation,originalHandler,typeEvent]=normalizeParams(originalTypeEvent,handler,delegationFn);const events=getEvent(element);const handlers=events[typeEvent]||(events[typeEvent]={});const previousFn=findHandler(handlers,originalHandler,delegation?handler:null);if(previousFn){previousFn.oneOff=previousFn.oneOff&&oneOff;return} 48const uid=getUidEvent(originalHandler,originalTypeEvent.replace(namespaceRegex,''));const fn=delegation?bootstrapDelegationHandler(element,handler,delegationFn):bootstrapHandler(element,handler);fn.delegationSelector=delegation?handler:null;fn.originalHandler=originalHandler;fn.oneOff=oneOff;fn.uidEvent=uid;handlers[uid]=fn;element.addEventListener(typeEvent,fn,delegation)} 49function removeHandler(element,events,typeEvent,handler,delegationSelector){const fn=findHandler(events[typeEvent],handler,delegationSelector);if(!fn){return} 50element.removeEventListener(typeEvent,fn,Boolean(delegationSelector));delete events[typeEvent][fn.uidEvent]} 51function removeNamespacedHandlers(element,events,typeEvent,namespace){const storeElementEvent=events[typeEvent]||{};Object.keys(storeElementEvent).forEach(handlerKey=>{if(handlerKey.includes(namespace)){const event=storeElementEvent[handlerKey];removeHandler(element,events,typeEvent,event.originalHandler,event.delegationSelector)}})} 52function getTypeEvent(event){event=event.replace(stripNameRegex,'');return customEvents[event]||event} 53const EventHandler={on(element,event,handler,delegationFn){addHandler(element,event,handler,delegationFn,!1)},one(element,event,handler,delegationFn){addHandler(element,event,handler,delegationFn,!0)},off(element,originalTypeEvent,handler,delegationFn){if(typeof originalTypeEvent!=='string'||!element){return} 54const[delegation,originalHandler,typeEvent]=normalizeParams(originalTypeEvent,handler,delegationFn);const inNamespace=typeEvent!==originalTypeEvent;const events=getEvent(element);const isNamespace=originalTypeEvent.startsWith('.');if(typeof originalHandler!=='undefined'){if(!events||!events[typeEvent]){return} 55removeHandler(element,events,typeEvent,originalHandler,delegation?handler:null);return}
56if(isNamespace){Object.keys(events).forEach(elementEvent=>{removeNamespacedHandlers(element,events,elementEvent,originalTypeEvent.slice(1))})} 57const storeElementEvent=events[typeEvent]||{};Object.keys(storeElementEvent).forEach(keyHandlers=>{const handlerKey=keyHandlers.replace(stripUidRegex,'');if(!inNamespace||originalTypeEvent.includes(handlerKey)){const event=storeElementEvent[keyHandlers];removeHandler(element,events,typeEvent,event.originalHandler,event.delegationSelector)}})},trigger(element,event,args){if(typeof event!=='string'||!element){return null} 58const $=getjQuery();const typeEvent=getTypeEvent(event);const inNamespace=event!==typeEvent;const isNative=nativeEvents.has(typeEvent);let jQueryEvent;let bubbles=!0;let nativeDispatch=!0;let defaultPrevented=!1;let evt=null;if(inNamespace&&$){jQueryEvent=$.Event(event,args);$(element).trigger(jQueryEvent);bubbles=!jQueryEvent.isPropagationStopped();nativeDispatch=!jQueryEvent.isImmediatePropagationStopped();defaultPrevented=jQueryEvent.isDefaultPrevented()} 59if(isNative){evt=document.createEvent('HTMLEvents');evt.initEvent(typeEvent,bubbles,!0)}else{evt=new CustomEvent(event,{bubbles,cancelable:!0})} 60if(typeof args!=='undefined'){Object.keys(args).forEach(key=>{Object.defineProperty(evt,key,{get(){return args[key]}})})} 61if(defaultPrevented){evt.preventDefault()} 62if(nativeDispatch){element.dispatchEvent(evt)} 63if(evt.defaultPrevented&&typeof jQueryEvent!=='undefined'){jQueryEvent.preventDefault()} 64return evt}};const elementMap=new Map();const Data={set(element,key,instance){if(!elementMap.has(element)){elementMap.set(element,new Map())} 65const instanceMap=elementMap.get(element);if(!instanceMap.has(key)&&instanceMap.size!==0){console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);return} 66instanceMap.set(key,instance)},get(element,key){if(elementMap.has(element)){return elementMap.get(element).get(key)||null} 67return null},remove(element,key){if(!elementMap.has(element)){return} 68const instanceMap=elementMap.get(element);instanceMap.delete(key);if(instanceMap.size===0){elementMap.delete(element)}}};const VERSION='5.1.3';class BaseComponent{constructor(element){element=getElement(element);if(!element){return} 69this._element=element;Data.set(this._element,this.constructor.DATA_KEY,this)} 70dispose(){Data.remove(this._element,this.constructor.DATA_KEY);EventHandler.off(this._element,this.constructor.EVENT_KEY);Object.getOwnPropertyNames(this).forEach(propertyName=>{this[propertyName]=null})} 71_queueCallback(callback,element,isAnimated=!0){executeAfterTransition(callback,element,isAnimated)} 72static getInstance(element){return Data.get(getElement(element),this.DATA_KEY)} 73static getOrCreateInstance(element,config={}){return this.getInstance(element)||new this(element,typeof config==='object'?config:null)} 74static get VERSION(){return VERSION} 75static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')} 76static get DATA_KEY(){return `bs.${this.NAME}`} 77static get EVENT_KEY(){return `.${this.DATA_KEY}`}} 78const enableDismissTrigger=(component,method='hide')=>{const clickEvent=`click.dismiss${component.EVENT_KEY}`;const name=component.NAME;EventHandler.on(document,clickEvent,`[data-bs-dismiss="${name}"]`,function(event){if(['A','AREA'].includes(this.tagName)){event.preventDefault()} 79if(isDisabled(this)){return} 80const target=getElementFromSelector(this)||this.closest(`.${name}`);const instance=component.getOrCreateInstance(target);instance[method]()})};const NAME$d='alert';const DATA_KEY$c='bs.alert';const EVENT_KEY$c=`.${DATA_KEY$c}`;const EVENT_CLOSE=`close${EVENT_KEY$c}`;const EVENT_CLOSED=`closed${EVENT_KEY$c}`;const CLASS_NAME_FADE$5='fade';const CLASS_NAME_SHOW$8='show';class Alert extends BaseComponent{static get NAME(){return NAME$d} 81close(){const closeEvent=EventHandler.trigger(this._element,EVENT_CLOSE);if(closeEvent.defaultPrevented){return} 82this._element.classList.remove(CLASS_NAME_SHOW$8);const isAnimated=this._element.classList.contains(CLASS_NAME_FADE$5);this._queueCallback(()=>this._destroyElement(),this._element,isAnimated)} 83_destroyElement(){this._element.remove();EventHandler.trigger(this._element,EVENT_CLOSED);this.dispose()} 84static jQueryInterface(config){return this.each(function(){const data=Alert.getOrCreateInstance(this);if(typeof config!=='string'){return} 85if(data[config]===undefined||config.startsWith('_')||config==='constructor'){throw new TypeError(`No method n
85amed "${config}"`)} 86data[config](this)})}} 87enableDismissTrigger(Alert,'close');defineJQueryPlugin(Alert);const NAME$c='button';const DATA_KEY$b='bs.button';const EVENT_KEY$b=`.${DATA_KEY$b}`;const DATA_API_KEY$7='.data-api';const CLASS_NAME_ACTIVE$3='active';const SELECTOR_DATA_TOGGLE$5='[data-bs-toggle="button"]';const EVENT_CLICK_DATA_API$6=`click${EVENT_KEY$b}${DATA_API_KEY$7}`;class Button extends BaseComponent{static get NAME(){return NAME$c} 88toggle(){this._element.setAttribute('aria-pressed',this._element.classList.toggle(CLASS_NAME_ACTIVE$3))} 89static jQueryInterface(config){return this.each(function(){const data=Button.getOrCreateInstance(this);if(config==='toggle'){data[config]()}})}} 90EventHandler.on(document,EVENT_CLICK_DATA_API$6,SELECTOR_DATA_TOGGLE$5,event=>{event.preventDefault();const button=event.target.closest(SELECTOR_DATA_TOGGLE$5);const data=Button.getOrCreateInstance(button);data.toggle()});defineJQueryPlugin(Button);function normalizeData(val){if(val==='true'){return!0} 91if(val==='false'){return!1} 92if(val===Number(val).toString()){return Number(val)} 93if(val===''||val==='null'){return null} 94return val} 95function normalizeDataKey(key){return key.replace(/[A-Z]/g,chr=>`-${chr.toLowerCase()}`)} 96const Manipulator={setDataAttribute(element,key,value){element.setAttribute(`data-bs-${normalizeDataKey(key)}`,value)},removeDataAttribute(element,key){element.removeAttribute(`data-bs-${normalizeDataKey(key)}`)},getDataAttributes(element){if(!element){return{}} 97const attributes={};Object.keys(element.dataset).filter(key=>key.startsWith('bs')).forEach(key=>{let pureKey=key.replace(/^bs/,'');pureKey=pureKey.charAt(0).toLowerCase()+pureKey.slice(1,pureKey.length);attributes[pureKey]=normalizeData(element.dataset[key])});return attributes},getDataAttribute(element,key){return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`))},offset(element){const rect=element.getBoundingClientRect();return{top:rect.top+window.pageYOffset,left:rect.left+window.pageXOffset}},position(element){return{top:element.offsetTop,left:element.offsetLeft}}};const NODE_TEXT=3;const SelectorEngine={find(selector,element=document.documentElement){return[].concat(...Element.prototype.querySelectorAll.call(element,selector))},findOne(selector,element=document.documentElement){return Element.prototype.querySelector.call(element,selector)},children(element,selector){return[].concat(...element.children).filter(child=>child.matches(selector))},parents(element,selector){const parents=[];let ancestor=element.parentNode;while(ancestor&&ancestor.nodeType===Node.ELEMENT_NODE&&ancestor.nodeType!==NODE_TEXT){if(ancestor.matches(selector)){parents.push(ancestor)} 98ancestor=ancestor.parentNode} 99return parents},prev(element,selector){let previous=element.previousElementSibling;while(previous){if(previous.matches(selector)){return[previous]} 100previous=previous.previousElementSibling} 101return[]},next(element,selector){let next=element.nextElementSibling;while(next){if(next.matches(selector)){return[next]} 102next=next.nextElementSibling} 103return[]},focusableChildren(element){const focusables=['a','button','input','textarea','select','details','[tabindex]','[contenteditable="true"]'].map(selector=>`${selector}:not([tabindex^="-"])`).join(', ');return this.find(focusables,element).filter(el=>!isDisabled(el)&&isVisible(el))}};const NAME$b='carousel';const DATA_KEY$a='bs.carousel';const EVENT_KEY$a=`.${DATA_KEY$a}`;const DATA_API_KEY$6='.data-api';const ARROW_LEFT_KEY='ArrowLeft';const ARROW_RIGHT_KEY='ArrowRight';const TOUCHEVENT_COMPAT_WAIT=500;const SWIPE_THRESHOLD=40;const Default$a={interval:5000,keyboard:!0,slide:!1,pause:'hover',wrap:!0,touch:!0};const DefaultType$a={interval:'(number|boolean)',keyboard:'boolean',slide:'(boolean|string)',pause:'(string|boolean)',wrap:'boolean',touch:'boolean'};const ORDER_NEXT='next';const ORDER_PREV='prev';const DIRECTION_LEFT='left';const DIRECTION_RIGHT='right';const KEY_TO_DIRECTION={[ARROW_LEFT_KEY]:DIRECTION_RIGHT,[ARROW_RIGHT_KEY]:DIRECTION_LEFT};const EVENT_SLIDE=`slide${EVENT_KEY$a}`;const EVENT_SLID=`slid${EVENT_KEY$a}`;const EVENT_KEYDOWN=`keydown${EVENT_KEY$a}`;const EVENT_MOUSEENTER=`mouseenter${EVENT_KEY$a}`;const EVENT_MOUSELEAVE=`mouseleave${EVENT_KEY$a}`;const EVENT_TOUCHSTART=`touchstart${EVENT_KEY$a}`;const EVENT_TOUCHMOVE=`touchmove${EVENT_KEY$a}`;const EVENT_TOUCHEND=`touchend${EVENT_KEY$a}`;const EVENT_POINTERDOWN=`pointerdown${EVENT_KEY$a}`;const EVENT_POINTERUP=`pointerup${EVENT_KEY$a}`;const EVENT_DRAG_START=`dragstart${EVENT_KEY$a}`;const EVENT_LOAD_DATA_API$2=`load${EVENT_KEY$a}${DATA_API_KEY$6}`;const EVENT_CLICK_DATA_API$5=`click${EVENT_KEY$a}${DATA_API_KEY$6}`;const CLASS_NAME_CAROUSEL='carousel';const CLASS_NAME_ACTIVE$2='active';const CLASS_NAME_SLIDE='slide';const CLASS_NAME_END='carousel-item-end';const CLASS_NAME_START='carousel-item-start';const CLASS_NAME_NEXT='carousel-item-next';
103const CLASS_NAME_PREV='carousel-item-prev';const CLASS_NAME_POINTER_EVENT='pointer-event';const SELECTOR_ACTIVE$1='.active';const SELECTOR_ACTIVE_ITEM='.active.carousel-item';const SELECTOR_ITEM='.carousel-item';const SELECTOR_ITEM_IMG='.carousel-item img';const SELECTOR_NEXT_PREV='.carousel-item-next, .carousel-item-prev';const SELECTOR_INDICATORS='.carousel-indicators';const SELECTOR_INDICATOR='[data-bs-target]';const SELECTOR_DATA_SLIDE='[data-bs-slide], [data-bs-slide-to]';const SELECTOR_DATA_RIDE='[data-bs-ride="carousel"]';const POINTER_TYPE_TOUCH='touch';const POINTER_TYPE_PEN='pen';class Carousel extends BaseComponent{constructor(element,config){super(element);this._items=null;this._interval=null;this._activeElement=null;this._isPaused=!1;this._isSliding=!1;this.touchTimeout=null;this.touchStartX=0;this.touchDeltaX=0;this._config=this._getConfig(config);this._indicatorsElement=SelectorEngine.findOne(SELECTOR_INDICATORS,this._element);this._touchSupported='ontouchstart' in document.documentElement||navigator.maxTouchPoints>0;this._pointerEvent=Boolean(window.PointerEvent);this._addEventListeners()} 104static get Default(){return Default$a} 105static get NAME(){return NAME$b} 106next(){this._slide(ORDER_NEXT)} 107nextWhenVisible(){if(!document.hidden&&isVisible(this._element)){this.next()}} 108prev(){this._slide(ORDER_PREV)} 109pause(event){if(!event){this._isPaused=!0} 110if(SelectorEngine.findOne(SELECTOR_NEXT_PREV,this._element)){triggerTransitionEnd(this._element);this.cycle(!0)} 111clearInterval(this._interval);this._interval=null} 112cycle(event){if(!event){this._isPaused=!1} 113if(this._interval){clearInterval(this._interval);this._interval=null} 114if(this._config&&this._config.interval&&!this._isPaused){this._updateInterval();this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval)}} 115to(index){this._activeElement=SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM,this._element);const activeIndex=this._getItemIndex(this._activeElement);if(index>this._items.length-1||index<0){return} 116if(this._isSliding){EventHandler.one(this._element,EVENT_SLID,()=>this.to(index));return} 117if(activeIndex===index){this.pause();this.cycle();return} 118const order=index>activeIndex?ORDER_NEXT:ORDER_PREV;this._slide(order,this._items[index])} 119_getConfig(config){config={...Default$a,...Manipulator.getDataAttributes(this._element),...(typeof config==='object'?config:{})};typeCheckConfig(NAME$b,config,DefaultType$a);return config} 120_handleSwipe(){const absDeltax=Math.abs(this.touchDeltaX);if(absDeltax<=SWIPE_THRESHOLD){return} 121const direction=absDeltax/this.touchDeltaX;this.touchDeltaX=0;if(!direction){return} 122this._slide(direction>0?DIRECTION_RIGHT:DIRECTION_LEFT)} 123_addEventListeners(){if(this._config.keyboard){EventHandler.on(this._element,EVENT_KEYDOWN,event=>this._keydown(event))} 124if(this._config.pause==='hover'){EventHandler.on(this._element,EVENT_MOUSEENTER,event=>this.pause(event));EventHandler.on(this._element,EVENT_MOUSELEAVE,event=>this.cycle(event))} 125if(this._config.touch&&this._touchSupported){this._addTouchEventListeners()}} 126_addTouchEventListeners(){const hasPointerPenTouch=event=>{return this._pointerEvent&&(event.pointerType===POINTER_TYPE_PEN||event.pointerType===POINTER_TYPE_TOUCH)};const start=event=>{if(hasPointerPenTouch(event)){this.touchStartX=event.clientX}else if(!this._pointerEvent){this.touchStartX=event.touches[0].clientX}};const move=event=>{this.touchDeltaX=event.touches&&event.touches.length>1?0:event.touches[0].clientX-this.touchStartX};const end=event=>{if(hasPointerPenTouch(event)){this.touchDeltaX=event.clientX-this.touchStartX} 127this._handleSwipe();if(this._config.pause==='hover'){this.pause();if(this.touchTimeout){clearTimeout(this.touchTimeout)} 128this.touchTimeout=setTimeout(event=>this.cycle(event),TOUCHEVENT_COMPAT_WAIT+this._config.interval)}};SelectorEngine.find(SELECTOR_ITEM_IMG,this._element).forEach(itemImg=>{EventHandler.on(itemImg,EVENT_DRAG_START,event=>event.preventDefault())});if(this._pointerEvent){EventHandler.on(this._element,EVENT_POINTERDOWN,event=>start(event));EventHandler.on(this._element,EVENT_POINTERUP,event=>end(event));this._element.classList.add(CLASS_NAME_POINTER_EVENT)}else{EventHandler.on(this._element,EVENT_TOUCHSTART,event=>start(event));EventHandler.on(this._element,EVENT_TOUCHMOVE,event=>move(event));EventHandler.on(this._element,EVENT_TOUCHEND,event=>end(event))}} 129_keydown(event){if(/input|textarea/i.test(event.target.tagName)){return} 130const direction=KEY_TO_DIRECTION[event.key];if(direction){event.preventDefault();this._slide(direction)}} 131_getItemIndex(element){this._items=element&&element.parentNode?SelectorEngine.find(SELECTOR_ITEM,element.parentNode):[];return this._items.indexOf(element)} 132_getItemByOrder(order,activeElement){const isNext=order===ORDER_NEXT;return getNextActiveElement(this._items,activeElement,isNext,this._config.wrap)} 133_triggerSlideEvent(relatedTarget,eventDirectionName){const targetIndex=this._getItemIndex(relatedTarget);const fromIndex=this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM,this._element));return EventHandler.trigger(this._element,EVENT_SLIDE,{relatedTarget,direction:eventDirectionName,from:fromIndex,to:targetIndex})} 134_setActiveIndicatorElement(element){if(this._indicatorsElement){const activeIndicator=SelectorEngine.findOne(SELECTOR_ACTIVE$1,this._indicatorsElement);activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2);activeIndicator.removeAttribute('aria-current');const indicators=SelectorEngine.find(SELECTOR_INDICATOR,this._indicatorsElement);for(let i=0;i<indicators.length;i++){if(Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'),10)===this._getItemIndex(element)){indicators[i].classList.add(CLASS_NAME_ACTIVE$2);indicators[i].setAttribute('aria-current','true');break}}}} 135_updateInterval(){const element=this._activeElement||SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM,this._element);if(!element){return} 136const elementInterval=Number.parseInt(element.getAttribute('data-bs-interval'),10);if(elementInterval){this._config.defaultInterval=this._config.defaultInterval||this._config.interval;this._config.interval=elementInterval}else{this._config.interval=this._config.defaultInterval||this._config.interval}} 137_slide(directionOrOrder,element){const order=this._directionToOrder(directionOrOrder);const activeElement=SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM,this._element);const activeElementIndex=this._getItemIndex(activeElement);const nextElement=element||this._getItemByOrder(order,activeElement);const nextElementIndex=this._getItemIndex(nextElement);const isCycling=Boolean(this._interval);const isNext=order===ORDER_NEXT;const directionalClassName=isNext?CLASS_NAME_START:CLASS_NAME_END;const orderClassName=isNext?CLASS_NAME_NEXT:CLASS_NAME_PREV;const eventDirectionName=this._orderToDirection(order);
137if(nextElement&&nextElement.classList.contains(CLASS_NAME_ACTIVE$2)){this._isSliding=!1;return} 138if(this._isSliding){return} 139const slideEvent=this._triggerSlideEvent(nextElement,eventDirectionName);if(slideEvent.defaultPrevented){return} 140if(!activeElement||!nextElement){return} 141this._isSliding=!0;if(isCycling){this.pause()} 142this._setActiveIndicatorElement(nextElement);this._activeElement=nextElement;const triggerSlidEvent=()=>{EventHandler.trigger(this._element,EVENT_SLID,{relatedTarget:nextElement,direction:eventDirectionName,from:activeElementIndex,to:nextElementIndex})};if(this._element.classList.contains(CLASS_NAME_SLIDE)){nextElement.classList.add(orderClassName);reflow(nextElement);activeElement.classList.add(directionalClassName);nextElement.classList.add(directionalClassName);const completeCallBack=()=>{nextElement.classList.remove(directionalClassName,orderClassName);nextElement.classList.add(CLASS_NAME_ACTIVE$2);activeElement.classList.remove(CLASS_NAME_ACTIVE$2,orderClassName,directionalClassName);this._isSliding=!1;setTimeout(triggerSlidEvent,0)};this._queueCallback(completeCallBack,activeElement,!0)}else{activeElement.classList.remove(CLASS_NAME_ACTIVE$2);nextElement.classList.add(CLASS_NAME_ACTIVE$2);this._isSliding=!1;triggerSlidEvent()} 143if(isCycling){this.cycle()}} 144_directionToOrder(direction){if(![DIRECTION_RIGHT,DIRECTION_LEFT].includes(direction)){return direction} 145if(isRTL()){return direction===DIRECTION_LEFT?ORDER_PREV:ORDER_NEXT} 146return direction===DIRECTION_LEFT?ORDER_NEXT:ORDER_PREV} 147_orderToDirection(order){if(![ORDER_NEXT,ORDER_PREV].includes(order)){return order} 148if(isRTL()){return order===ORDER_PREV?DIRECTION_LEFT:DIRECTION_RIGHT} 149return order===ORDER_PREV?DIRECTION_RIGHT:DIRECTION_LEFT} 150static carouselInterface(element,config){const data=Carousel.getOrCreateInstance(element,config);let{_config}=data;if(typeof config==='object'){_config={..._config,...config}} 151const action=typeof config==='string'?config:_config.slide;if(typeof config==='number'){data.to(config)}else if(typeof action==='string'){if(typeof data[action]==='undefined'){throw new TypeError(`No method named "${action}"`)} 152data[action]()}else if(_config.interval&&_config.ride){data.pause();data.cycle()}} 153static jQueryInterface(config){return this.each(function(){Carousel.carouselInterface(this,config)})} 154static dataApiClickHandler(event){const target=getElementFromSelector(this);if(!target||!target.classList.contains(CLASS_NAME_CAROUSEL)){return} 155const config={...Manipulator.getDataAttributes(target),...Manipulator.getDataAttributes(this)};const slideIndex=this.getAttribute('data-bs-slide-to');if(slideIndex){config.interval=!1} 156Carousel.carouselInterface(target,config);if(slideIndex){Carousel.getInstance(target).to(slideIndex)} 157event.preventDefault()}} 158EventHandler.on(document,EVENT_CLICK_DATA_API$5,SELECTOR_DATA_SLIDE,Carousel.dataApiClickHandler);EventHandler.on(window,EVENT_LOAD_DATA_API$2,()=>{const carousels=SelectorEngine.find(SELECTOR_DATA_RIDE);for(let i=0,len=carousels.length;i<len;i++){Carousel.carouselInterface(carousels[i],Carousel.getInstance(carou
158sels[i]))}});defineJQueryPlugin(Carousel);const NAME$a='collapse';const DATA_KEY$9='bs.collapse';const EVENT_KEY$9=`.${DATA_KEY$9}`;const DATA_API_KEY$5='.data-api';const Default$9={toggle:!0,parent:null};const DefaultType$9={toggle:'boolean',parent:'(null|element)'};const EVENT_SHOW$5=`show${EVENT_KEY$9}`;const EVENT_SHOWN$5=`shown${EVENT_KEY$9}`;const EVENT_HIDE$5=`hide${EVENT_KEY$9}`;const EVENT_HIDDEN$5=`hidden${EVENT_KEY$9}`;const EVENT_CLICK_DATA_API$4=`click${EVENT_KEY$9}${DATA_API_KEY$5}`;const CLASS_NAME_SHOW$7='show';const CLASS_NAME_COLLAPSE='collapse';const CLASS_NAME_COLLAPSING='collapsing';const CLASS_NAME_COLLAPSED='collapsed';const CLASS_NAME_DEEPER_CHILDREN=`:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;const CLASS_NAME_HORIZONTAL='collapse-horizontal';const WIDTH='width';const HEIGHT='height';const SELECTOR_ACTIVES='.collapse.show, .collapse.collapsing';const SELECTOR_DATA_TOGGLE$4='[data-bs-toggle="collapse"]';class Collapse extends BaseComponent{constructor(element,config){super(element);this._isTransitioning=!1;this._config=this._getConfig(config);this._triggerArray=[];const toggleList=SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);for(let i=0,len=toggleList.length;i<len;i++){const elem=toggleList[i];const selector=getSelectorFromElement(elem);const filterElement=SelectorEngine.find(selector).filter(foundElem=>foundElem===this._element);if(selector!==null&&filterElement.length){this._selector=selector;this._triggerArray.push(elem)}} 159this._initializeChildren();if(!this._config.parent){this._addAriaAndCollapsedClass(this._triggerArray,this._isShown())} 160if(this._config.toggle){this.toggle()}} 161static get Default(){return Default$9} 162static get NAME(){return NAME$a} 163toggle(){if(this._isShown()){this.hide()}else{this.show()}} 164show(){if(this._isTransitioning||this._isShown()){return} 165let actives=[];let activesData;if(this._config.parent){const children=SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN,this._config.parent);actives=SelectorEngine.find(SELECTOR_ACTIVES,this._config.parent).filter(elem=>!children.includes(elem))} 166const container=SelectorEngine.findOne(this._selector);if(actives.length){const tempActiveData=actives.find(elem=>container!==elem);activesData=tempActiveData?Collapse.getInstance(tempActiveData):null;if(activesData&&activesData._isTransitioning){return}} 167const startEvent=EventHandler.trigger(this._element,EVENT_SHOW$5);if(startEvent.defaultPrevented){return} 168actives.forEach(elemActive=>{if(container!==elemActive){Collapse.getOrCreateInstance(elemActive,{toggle:!1}).hide()} 169if(!activesData){Data.set(elemActive,DATA_KEY$9,null)}});const dimension=this._getDimension();this._element.classList.remove(CLASS_NAME_COLLAPSE);this._element.classList.add(CLASS_NAME_COLLAPSING);this._element.style[dimension]=0;this._addAriaAndCollapsedClass(this._triggerArray,!0);this._isTransitioning=!0;const complete=()=>{this._isTransitioning=!1;this._element.classList.remove(CLASS_NAME_COLLAPSING);this._element.classList.add(CLASS_NAME_COLLAPSE,CLASS_NAME_SHOW$7);this._element.style[dimension]='';EventHandler.trigger(this._element,EVENT_SHOWN$5)};const capitalizedDimension=dimension[0].toUpperCase()+dimension.slice(1);const scrollSize=`scroll${capitalizedDimension}`;this._queueCallback(complete,this._element,!0);this._element.style[dimension]=`${this._element[scrollSize]}px`} 170hide(){if(this._isTransitioning||!this._isShown()){return} 171const startEvent=EventHandler.trigger(this._element,EVENT_HIDE$5);if(startEvent.defaultPrevented){return} 172const dimension=this._getDimension();this._element.style[dimension]=`${this._element.getBoundingClientRect()[dimension]}px`;reflow(this._element);this._element.classList.add(CLASS_NAME_COLLAPSING);this._element.classList.remove(CLASS_NAME_COLLAPSE,CLASS_NAME_SHOW$7);const triggerArrayLength=this._triggerArray.length;for(let i=0;i<triggerArrayLength;i++){const trigger=this._triggerArray[i];const elem=getElementFromSelector(trigger);if(elem&&!this._isShown(elem)){this._addAriaAndCollapsedClass([trigger],!1)}} 173this._isTransitioning=!0;const complete=()=>{this._isTransitioning=!1;this._element.classList.remove(CLASS_NAME_COLLAPSING);this._element.classList.add(CLASS_NAME_COLLAPSE);EventHandler.trigger(this._element,EVENT_HIDDEN$5)};this._element.style[dimension]='';this._queueCallback(complete,this._element,!0)} 174_isShown(element=this._element){return element.classList.contains(CLASS_NAME_SHOW$7)} 175_getConfig(config){config={...Default$9,...Manipulator.getDataAttributes(this._element),...config};
175config.toggle=Boolean(config.toggle);config.parent=getElement(config.parent);typeCheckConfig(NAME$a,config,DefaultType$9);return config} 176_getDimension(){return this._element.classList.contains(CLASS_NAME_HORIZONTAL)?WIDTH:HEIGHT} 177_initializeChildren(){if(!this._config.parent){return} 178const children=SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN,this._config.parent);SelectorEngine.find(SELECTOR_DATA_TOGGLE$4,this._config.parent).filter(elem=>!children.includes(elem)).forEach(element=>{const selected=getElementFromSelector(element);if(selected){this._addAriaAndCollapsedClass([element],this._isShown(selected))}})} 179_addAriaAndCollapsedClass(triggerArray,isOpen){if(!triggerArray.length){return} 180triggerArray.forEach(elem=>{if(isOpen){elem.classList.remove(CLASS_NAME_COLLAPSED)}else{elem.classList.add(CLASS_NAME_COLLAPSED)} 181elem.setAttribute('aria-expanded',isOpen)})} 182static jQueryInterface(config){return this.each(function(){const _config={};if(typeof config==='string'&&/show|hide/.test(config)){_config.toggle=!1} 183const data=Collapse.getOrCreateInstance(this,_config);if(typeof config==='string'){if(typeof data[config]==='undefined'){throw new TypeError(`No method named "${config}"`)} 184data[config]()}})}} 185EventHandler.on(document,EVENT_CLICK_DATA_API$4,SELECTOR_DATA_TOGGLE$4,function(event){if(event.target.tagName==='A'||event.delegateTarget&&event.delegateTarget.tagName==='A'){event.preventDefault()} 186const selector=getSelectorFromElement(this);const selectorElements=SelectorEngine.find(selector);selectorElements.forEach(element=>{Collapse.getOrCreateInstance(element,{toggle:!1}).toggle()})});defineJQueryPlugin(Collapse);const NAME$9='dropdown';const DATA_KEY$8='bs.dropdown';const EVENT_KEY$8=`.${DATA_KEY$8}`;const DATA_API_KEY$4='.data-api';const ESCAPE_KEY$2='Escape';const SPACE_KEY='Space';const TAB_KEY$1='Tab';const ARROW_UP_KEY='ArrowUp';const ARROW_DOWN_KEY='ArrowDown';const RIGHT_MOUSE_BUTTON=2;const REGEXP_KEYDOWN=new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_KEY$2}`);const EVENT_HIDE$4=`hide${EVENT_KEY$8}`;const EVENT_HIDDEN$4=`hidden${EVENT_KEY$8}`;const EVENT_SHOW$4=`show${EVENT_KEY$8}`;const EVENT_SHOWN$4=`shown${EVENT_KEY$8}`;const EVENT_CLICK_DATA_API$3=`click${EVENT_KEY$8}${DATA_API_KEY$4}`;const EVENT_KEYDOWN_DATA_API=`keydown${EVENT_KEY$8}${DATA_API_KEY$4}`;const EVENT_KEYUP_DATA_API=`keyup${EVENT_KEY$8}${DATA_API_KEY$4}`;const CLASS_NAME_SHOW$6='show';const CLASS_NAME_DROPUP='dropup';const CLASS_NAME_DROPEND='dropend';const CLASS_NAME_DROPSTART='dropstart';const CLASS_NAME_NAVBAR='navbar';const SELECTOR_DATA_TOGGLE$3='[data-bs-toggle="dropdown"]';const SELECTOR_MENU='.dropdown-menu';const SELECTOR_NAVBAR_NAV='.navbar-nav';const SELECTOR_VISIBLE_ITEMS='.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';const PLACEMENT_TOP=isRTL()?'top-end':'top-start';const PLACEMENT_TOPEND=isRTL()?'top-start':'top-end';const PLACEMENT_BOTTOM=isRTL()?'bottom-end':'bottom-start';const PLACEMENT_BOTTOMEND=isRTL()?'bottom-start':'bottom-end';const PLACEMENT_RIGHT=isRTL()?'left-start':'right-start';const PLACEMENT_LEFT=isRTL()?'right-start':'left-start';const Default$8={offset:[0,2],boundary:'clippingParents',reference:'toggle',display:'dynamic',popperConfig:null,autoClose:!0};const DefaultType$8={offset:'(array|string|function)',boundary:'(string|element)',reference:'(string|element|object)',display:'string',popperConfig:'(null|object|function)',autoClose:'(boolean|string)'};class Dropdown extends BaseComponent{constructor(element,config){super(element);this._popper=null;this._config=this._getConfig(config);this._menu=this._getMenuElement();this._inNavbar=this._detectNavbar()} 187static get Default(){return Default$8} 188static get DefaultType(){return DefaultType$8} 189static get NAME(){return NAME$9} 190toggle(){return this._isShown()?this.hide():this.show()} 191show(){if(isDisabled(this._element)||this._isShown(this._menu)){return} 192const relatedTarget={relatedTarget:this._element};const showEvent=EventHandler.trigger(this._element,EVENT_SHOW$4,relatedTarget);if(showEvent.defaultPrevented){return} 193const parent=Dropdown.getParentFromElement(this._element);if(this._inNavbar){Manipulator.setDataAttribute(this._menu,'popper','none')}else{this._createPopper(parent)} 194if('ontouchstart' in document.documentElement&&!parent.closest(SELECTOR_NAVBAR_NAV)){[].concat(...document.body.children).forEac
194h(elem=>EventHandler.on(elem,'mouseover',noop))} 195this._element.focus();this._element.setAttribute('aria-expanded',!0);this._menu.classList.add(CLASS_NAME_SHOW$6);this._element.classList.add(CLASS_NAME_SHOW$6);EventHandler.trigger(this._element,EVENT_SHOWN$4,relatedTarget)} 196hide(){if(isDisabled(this._element)||!this._isShown(this._menu)){return} 197const relatedTarget={relatedTarget:this._element};this._completeHide(relatedTarget)} 198dispose(){if(this._popper){this._popper.destroy()} 199super.dispose()} 200update(){this._inNavbar=this._detectNavbar();if(this._popper){this._popper.update()}} 201_completeHide(relatedTarget){const hideEvent=EventHandler.trigger(this._element,EVENT_HIDE$4,relatedTarget);if(hideEvent.defaultPrevented){return} 202if('ontouchstart' in document.documentElement){[].concat(...document.body.children).forEach(elem=>EventHandler.off(elem,'mouseover',noop))} 203if(this._popper){this._popper.destroy()} 204this._menu.classList.remove(CLASS_NAME_SHOW$6);this._element.classList.remove(CLASS_NAME_SHOW$6);this._element.setAttribute('aria-expanded','false');Manipulator.removeDataAttribute(this._menu,'popper');EventHandler.trigger(this._element,EVENT_HIDDEN$4,relatedTarget)} 205_getConfig(config){config={...this.constructor.Default,...Manipulator.getDataAttributes(this._element),...config};typeCheckConfig(NAME$9,config,this.constructor.DefaultType);if(typeof config.reference==='object'&&!isElement(config.reference)&&typeof config.reference.getBoundingClientRect!=='function'){throw new TypeError(`${NAME$9.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`)} 206return config} 207_createPopper(parent){if(typeof Popper__namespace==='undefined'){throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)')} 208let referenceElement=this._element;if(this._config.reference==='parent'){referenceElement=parent}else if(isElement(this._config.reference)){referenceElement=getElement(this._config.reference)}else if(typeof this._config.reference==='object'){referenceElement=this._config.reference} 209const popperConfig=this._getPopperConfig();const isDisplayStatic=popperConfig.modifiers.find(modifier=>modifier.name==='applyStyles'&&modifier.enabled===!1);this._popper=Popper__namespace.createPopper(referenceElement,this._menu,popperConfig);if(isDisplayStatic){Manipulator.setDataAttribute(this._menu,'popper','static')}} 210_isShown(element=this._element){return element.classList.contains(CLASS_NAME_SHOW$6)} 211_getMenuElement(){return SelectorEngine.next(this._element,SELECTOR_MENU)[0]} 212_getPlacement(){const parentDropdown=this._element.parentNode;if(parentDropdown.classList.contains(CLASS_NAME_DROPEND)){return PLACEMENT_RIGHT} 213if(parentDropdown.classList.contains(CLASS_NAME_DROPSTART)){return PLACEMENT_LEFT} 214const isEnd=getComputedStyle(this._menu).getPropertyValue('--bs-position').trim()==='end';if(parentDropdown.classList.contains(CLASS_NAME_DROPUP)){return isEnd?PLACEMENT_TOPEND:PLACEMENT_TOP} 215return isEnd?PLACEMENT_BOTTOMEND:PLACEMENT_BOTTOM} 216_detectNavbar(){return this._element.closest(`.${CLASS_NAME_NAVBAR}`)!==null} 217_getOffset(){const{offset}=this._config;if(typeof offset==='string'){return offset.split(',').map(val=>Number.parseInt(val,10))} 218if(typeof offset==='function'){return popperData=>offset(popperData,this._element)} 219return offset} 220_getPopperConfig(){const defaultBsPopperConfig={placement:this._getPlacement(),modifiers:[{name:'preventOverflow',options:{boundary:this._config.boundary}},{name:'offset',options:{offset:this._getOffset()}}]};if(this._config.display==='static'){defaultBsPopperConfig.modifiers=[{name:'applyStyles',enabled:!1}]} 221return{...defaultBsPopperConfig,...(typeof this._config.popperConfig==='function'?this._config.popperConfig(defaultBsPopperConfig):this._config.popperConfig)}} 222_selectMenuItem({key,target}){const items=SelectorEngine.find(SELECTOR_VISIBLE_ITEMS,this._menu).filter(isVisible);if(!items.length){return} 223getNextActiveElement(items,target,key===ARROW_DOWN_KEY,!items.includes(target)).focus()} 224static jQueryInterface(config){return this.each(function(){const data=Dropdown.getOrCreateInstance(this,config);if(typeof config!=='string'){return} 225if(typeof data[config]==='undefined'){throw new TypeError(`No method n
225amed "${config}"`)} 226data[config]()})} 227static clearMenus(event){if(event&&(event.button===RIGHT_MOUSE_BUTTON||event.type==='keyup'&&event.key!==TAB_KEY$1)){return} 228const toggles=SelectorEngine.find(SELECTOR_DATA_TOGGLE$3);for(let i=0,len=toggles.length;i<len;i++){const context=Dropdown.getInstance(toggles[i]);if(!context||context._config.autoClose===!1){continue} 229if(!context._isShown()){continue} 230const relatedTarget={relatedTarget:context._element};if(event){const composedPath=event.composedPath();const isMenuTarget=composedPath.includes(context._menu);if(composedPath.includes(context._element)||context._config.autoClose==='inside'&&!isMenuTarget||context._config.autoClose==='outside'&&isMenuTarget){continue} 231if(context._menu.contains(event.target)&&(event.type==='keyup'&&event.key===TAB_KEY$1||/input|select|option|textarea|form/i.test(event.target.tagName))){continue} 232if(event.type==='click'){relatedTarget.clickEvent=event}} 233context._completeHide(relatedTarget)}} 234static getParentFromElement(element){return getElementFromSelector(element)||element.parentNode} 235static dataApiKeydownHandler(event){if(/input|textarea/i.test(event.target.tagName)?event.key===SPACE_KEY||event.key!==ESCAPE_KEY$2&&(event.key!==ARROW_DOWN_KEY&&event.key!==ARROW_UP_KEY||event.target.closest(SELECTOR_MENU)):!REGEXP_KEYDOWN.test(event.key)){return} 236const isActive=this.classList.contains(CLASS_NAME_SHOW$6);if(!isActive&&event.key===ESCAPE_KEY$2){return} 237event.preventDefault();event.stopPropagation();if(isDisabled(this)){return} 238const getToggleButton=this.matches(SELECTOR_DATA_TOGGLE$3)?this:SelectorEngine.prev(this,SELECTOR_DATA_TOGGLE$3)[0];const instance=Dropdown.getOrCreateInstance(getToggleButton);if(event.key===ESCAPE_KEY$2){instance.hide();return} 239if(event.key===ARROW_UP_KEY||event.key===ARROW_DOWN_KEY){if(!isActive){instance.show()} 240instance._selectMenuItem(event);return} 241if(!isActive||event.key===SPACE_KEY){Dropdown.clearMenus()}}} 242EventHandler.on(document,EVENT_KEYDOWN_DATA_API,SELECTOR_DATA_TOGGLE$3,Dropdown.dataApiKeydownHandler);EventHandler.on(document,EVENT_KEYDOWN_DATA_API,SELECTOR_MENU,Dropdown.dataApiKeydownHandler);EventHandler.on(document,EVENT_CLICK_DATA_API$3,Dropdown.clearMenus);EventHandler.on(document,EVENT_KEYUP_DATA_API,Dropdown.clearMenus);EventHandler.on(document,EVENT_CLICK_DATA_API$3,SELECTOR_DATA_TOGGLE$3,function(event){event.preventDefault();Dropdown.getOrCreateInstance(this).toggle()});defineJQueryPlugin(Dropdown);const SELECTOR_FIXED_CONTENT='.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';const SELECTOR_STICKY_CONTENT='.sticky-top';class ScrollBarHelper{constructor(){this._element=document.body} 243getWidth(){const documentWidth=document.documentElement.clientWidth;return Math.abs(window.innerWidth-documentWidth)} 244hide(){const width=this.getWidth();this._disableOverFlow();this._setElementAttributes(this._element,'paddingRight',calculatedValue=>calculatedValue+width);this._setElementAttributes(SELECTOR_FIXED_CONTENT,'paddingRight',calculatedValue=>calculatedValue+width);this._setElementAttributes(SELECTOR_STICKY_CONTENT,'marginRight',calculatedValue=>calculatedValue-width)} 245_disableOverFlow(){this._saveInitialAttribute(this._element,'overflow');this._element.style.overflow='hidden'} 246_setElementAttributes(selector,styleProp,callback){const scrollbarWidth=this.getWidth();const manipulationCallBack=element=>{if(element!==this._element&&window.innerWidth>element.clientWidth+scrollbarWidth){return} 247this._saveInitialAttribute(element,styleProp);const calculatedValue=window.getComputedStyle(element)[styleProp];element.style[styleProp]=`${callback(Number.parseFloat(calculatedValue))}px`};this._applyManipulationCallback(selector,manipulationCallBack)} 248reset(){this._resetElementAttributes(this._element,'overflow');this._resetElementAttributes(this._element,'paddingRight');this._resetElementAttributes(SELECTOR_FIXED_CONTENT,'paddingRight');this._resetElementAttributes(SELECTOR_STICKY_CONTENT,'marginRight')} 249_saveInitialAttribute(element,styleProp){const actualValue=element.style[styleProp];if(actualValue){Manipulator.setDataAttribute(element,styleProp,actualValue)}} 250_resetElementAttributes(selector,styleProp){const manipulationCallBack=element=>{const value=Manipulator.getDataAttribute(element,styleProp);if(typeof value==='undefined'){element.style.removeProperty(styleProp)}else{Manipulator.removeDataAttribute(element,styleProp);element.style[styleProp]=value}};this._applyManipulationCallback(selector,manipulationCallBack)} 251_applyManipulationCallback(selector,callBack){if(isElement(selector)){callBack(selector)}else{SelectorEngine.find(selector,this._element).forEach(callBack)}} 252isOverflowing(){return this.getWidth()>0}} 253const Default$7={className:'modal-backdrop',isVisible:!0,isAnimated:!1,rootElement:'body',clickCallback:null};const DefaultType$7={className:'string',isVisible:'boolean',isAnimated:'boolean',rootElement:'(element|string)',clickCallback:'(function|null)'};const NAME$8='backdrop';const CLASS_NAME_FADE$4='fade';const CLASS_NAME_SHOW$5='show';const EVENT_MOUSEDOWN=`mousedown.bs.${NAME$8}`;class Backdrop{constructor(config){this._config=this._getConfig(config);this._isAppended=!1;this._element=null} 254show(callback){if(!this._config.isVisible){execute(callback);return} 255this._append();if(this._config.isAnimated){reflow(this._getElement())} 256this._getElement().classList.add(CLASS_NAME_SHOW$5);this._emulateAnimation(()=>{execute(callback)})} 257hide(callback){if(!this._config.isVisible){execute(callback);return} 258this._getElement().classList.remove(CLASS_NAME_SHOW$5);this._emulateAnimation(()=>{this.dispose();execute(callback)})} 259_getElement(){if(!this._element){const backdrop=document.createElement('div');backdrop.className=this._config.className;if(this._config.isAnimated){backdrop.classList.add(CLASS_NAME_FADE$4)} 260this._element=backdrop} 261return this._element} 262_getConfig(config){config={...Default$7,...(typeof config==='object'?config:{})};config.rootElement=getElement(config.rootElement);typeCheckConfig(NAME$8,config,DefaultType$7);return config} 263_append(){if(this._isAppended){return} 264this._config.rootElement.append(this._getElement());EventHandler.on(this._getElement(),EVENT_MOUSEDOWN,()=>{execute(this._config.clickCallback)});this._isAppended=!0} 265dispose(){if(!this._isAppended){return} 266EventHandler.off(this._element,EVENT_MOUSEDOWN);this._element.remove();this._isAppended=!1} 267_emulateAnimation(callback){executeAfterTransition(callback,this._getElement(),this._config.isAnimated)}} 268const Default$6={trapElement:null,autofocus:!0};const DefaultType$6={trapElement:'element',autofocus:'boolean'};const NAME$7='focustrap';const DATA_KEY$7='bs.focustrap';const EVENT_KEY$7=`.${DATA_KEY$7}`;const EVENT_FOCUSIN$1=`focusin${EVENT_KEY$7}`;const EVENT_KEYDOWN_TAB=`keydown.tab${EVENT_KEY$7}`;const TAB_KEY='Tab';
268const TAB_NAV_FORWARD='forward';const TAB_NAV_BACKWARD='backward';class FocusTrap{constructor(config){this._config=this._getConfig(config);this._isActive=!1;this._lastTabNavDirection=null} 269activate(){const{trapElement,autofocus}=this._config;if(this._isActive){return} 270if(autofocus){trapElement.focus()} 271EventHandler.off(document,EVENT_KEY$7);EventHandler.on(document,EVENT_FOCUSIN$1,event=>this._handleFocusin(event));EventHandler.on(document,EVENT_KEYDOWN_TAB,event=>this._handleKeydown(event));this._isActive=!0} 272deactivate(){if(!this._isActive){return} 273this._isActive=!1;EventHandler.off(document,EVENT_KEY$7)} 274_handleFocusin(event){const{target}=event;const{trapElement}=this._config;if(target===document||target===trapElement||trapElement.contains(target)){return} 275const elements=SelectorEngine.focusableChildren(trapElement);if(elements.length===0){trapElement.focus()}else if(this._lastTabNavDirection===TAB_NAV_BACKWARD){elements[elements.length-1].focus()}else{elements[0].focus()}} 276_handleKeydown(event){if(event.key!==TAB_KEY){return} 277this._lastTabNavDirection=event.shiftKey?TAB_NAV_BACKWARD:TAB_NAV_FORWARD} 278_getConfig(config){config={...Default$6,...(typeof config==='object'?config:{})};typeCheckConfig(NAME$7,config,DefaultType$6);return config}} 279const NAME$6='modal';const DATA_KEY$6='bs.modal';const EVENT_KEY$6=`.${DATA_KEY$6}`;const DATA_API_KEY$3='.data-api';const ESCAPE_KEY$1='Escape';const Default$5={backdrop:!0,keyboard:!0,focus:!0};const DefaultType$5={backdrop:'(boolean|string)',keyboard:'boolean',focus:'boolean'};const EVENT_HIDE$3=`hide${EVENT_KEY$6}`;const EVENT_HIDE_PREVENTED=`hidePrevented${EVENT_KEY$6}`;const EVENT_HIDDEN$3=`hidden${EVENT_KEY$6}`;const EVENT_SHOW$3=`show${EVENT_KEY$6}`;const EVENT_SHOWN$3=`shown${EVENT_KEY$6}`;const EVENT_RESIZE=`resize${EVENT_KEY$6}`;const EVENT_CLICK_DISMISS=`click.dismiss${EVENT_KEY$6}`;const EVENT_KEYDOWN_DISMISS$1=`keydown.dismiss${EVENT_KEY$6}`;const EVENT_MOUSEUP_DISMISS=`mouseup.dismiss${EVENT_KEY$6}`;const EVENT_MOUSEDOWN_DISMISS=`mousedown.dismiss${EVENT_KEY$6}`;const EVENT_CLICK_DATA_API$2=`click${EVENT_KEY$6}${DATA_API_KEY$3}`;const CLASS_NAME_OPEN='modal-open';const CLASS_NAME_FADE$3='fade';const CLASS_NAME_SHOW$4='show';const CLASS_NAME_STATIC='modal-static';const OPEN_SELECTOR$1='.modal.show';const SELECTOR_DIALOG='.modal-dialog';const SELECTOR_MODAL_BODY='.modal-body';const SELECTOR_DATA_TOGGLE$2='[data-bs-toggle="modal"]';class Modal extends BaseComponent{constructor(element,config){super(element);this._config=this._getConfig(config);this._dialog=SelectorEngine.findOne(SELECTOR_DIALOG,this._element);this._backdrop=this._initializeBackDrop();this._focustrap=this._initializeFocusTrap();this._isShown=!1;this._ignoreBackdropClick=!1;this._isTransitioning=!1;this._scrollBar=new ScrollBarHelper()} 280static get Default(){return Default$5} 281static get NAME(){return NAME$6} 282toggle(relatedTarget){return this._isShown?this.hide():this.show(relatedTarget)} 283show(relatedTarget){if(this._isShown||this._isTransitioning){return} 284const showEvent=EventHandler.trigger(this._element,EVENT_SHOW$3,{relatedTarget});if(showEvent.defaultPrevented){return} 285this._isShown=!0;if(this._isAnimated()){this._isTransitioning=!0} 286this._scrollBar.hide();document.body.classList.add(CLASS_NAME_OPEN);this._adjustDialog();this._setEscapeEvent();this._setResizeEvent();EventHandler.on(this._dialog,EVENT_MOUSEDOWN_DISMISS,()=>{EventHandler.one(this._element,EVENT_MOUSEUP_DISMISS,event=>{if(event.target===this._element){this._ignoreBackdropClick=!0}})});this._showBackdrop(()=>this._showElement(relatedTarget))} 287hide(){if(!this._isShown||this._isTransitioning){return} 288const hideEvent=EventHandler.trigger(this._element,EVENT_HIDE$3);if(hideEvent.defaultPrevented){return} 289this._isShown=!1;const isAnimated=this._isAnimated();if(isAnimated){this._isTransitioning=!0} 290this._setEscapeEvent();this._setResizeEvent();this._focustrap.deactivate();this._element.classList.remove(CLASS_NAME_SHOW$4);EventHandler.off(this._element,EVENT_CLICK_DISMISS);EventHandler.off(this._dialog,EVENT_MOUSEDOWN_DISMISS);this._queueCallback(()=>this._hideModal(),this._element,isAnimated)} 291dispose(){[window,this._dialog].forEach(htmlElement=>EventHandler.off(htmlElement,EVENT_KEY$6));this._backdrop.dispose();this._focustrap.deactivate();super.dispose()} 292handleUpdate(){this._adjustDialog()} 293_initializeBackDrop(){return new Backdrop({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})} 294_initializeFocusTrap(){return new FocusTrap({trapElement:this._element})} 295_getConfig(config){config={...Default$5,...Manipulator.getDataAttributes(this._element),...(typeof config==='object'?config:{})};
295typeCheckConfig(NAME$6,config,DefaultType$5);return config} 296_showElement(relatedTarget){const isAnimated=this._isAnimated();const modalBody=SelectorEngine.findOne(SELECTOR_MODAL_BODY,this._dialog);if(!this._element.parentNode||this._element.parentNode.nodeType!==Node.ELEMENT_NODE){document.body.append(this._element)} 297this._element.style.display='block';this._element.removeAttribute('aria-hidden');this._element.setAttribute('aria-modal',!0);this._element.setAttribute('role','dialog');this._element.scrollTop=0;if(modalBody){modalBody.scrollTop=0} 298if(isAnimated){reflow(this._element)} 299this._element.classList.add(CLASS_NAME_SHOW$4);const transitionComplete=()=>{if(this._config.focus){this._focustrap.activate()} 300this._isTransitioning=!1;EventHandler.trigger(this._element,EVENT_SHOWN$3,{relatedTarget})};this._queueCallback(transitionComplete,this._dialog,isAnimated)} 301_setEscapeEvent(){if(this._isShown){EventHandler.on(this._element,EVENT_KEYDOWN_DISMISS$1,event=>{if(this._config.keyboard&&event.key===ESCAPE_KEY$1){event.preventDefault();this.hide()}else if(!this._config.keyboard&&event.key===ESCAPE_KEY$1){this._triggerBackdropTransition()}})}else{EventHandler.off(this._element,EVENT_KEYDOWN_DISMISS$1)}} 302_setResizeEvent(){if(this._isShown){EventHandler.on(window,EVENT_RESIZE,()=>this._adjustDialog())}else{EventHandler.off(window,EVENT_RESIZE)}} 303_hideModal(){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(()=>{document.body.classList.remove(CLASS_NAME_OPEN);this._resetAdjustments();this._scrollBar.reset();EventHandler.trigger(this._element,EVENT_HIDDEN$3)})} 304_showBackdrop(callback){EventHandler.on(this._element,EVENT_CLICK_DISMISS,event=>{if(this._ignoreBackdropClick){this._ignoreBackdropClick=!1;return} 305if(event.target!==event.currentTarget){return} 306if(this._config.backdrop===!0){this.hide()}else if(this._config.backdrop==='static'){this._triggerBackdropTransition()}});this._backdrop.show(callback)} 307_isAnimated(){return this._element.classList.contains(CLASS_NAME_FADE$3)} 308_triggerBackdropTransition(){const hideEvent=EventHandler.trigger(this._element,EVENT_HIDE_PREVENTED);if(hideEvent.defaultPrevented){return} 309const{classList,scrollHeight,style}=this._element;const isModalOverflowing=scrollHeight>document.documentElement.clientHeight;if(!isModalOverflowing&&style.overflowY==='hidden'||classList.contains(CLASS_NAME_STATIC)){return} 310if(!isModalOverflowing){style.overflowY='hidden'} 311classList.add(CLASS_NAME_STATIC);this._queueCallback(()=>{classList.remove(CLASS_NAME_STATIC);if(!isModalOverflowing){this._queueCallback(()=>{style.overflowY=''},this._dialog)}},this._dialog);this._element.focus()} 312_adjustDialog(){const isModalOverflowing=this._element.scrollHeight>document.documentElement.clientHeight;const scrollbarWidth=this._scrollBar.getWidth();const isBodyOverflowing=scrollbarWidth>0;if(!isBodyOverflowing&&isModalOverflowing&&!isRTL()||isBodyOverflowing&&!isModalOverflowing&&isRTL()){this._element.style.paddingLeft=`${scrollbarWidth}px`} 313if(isBodyOverflowing&&!isModalOverflowing&&!isRTL()||!isBodyOverflowing&&isModalOverflowing&&isRTL()){this._element.style.paddingRight=`${scrollbarWidth}px`}} 314_resetAdjustments(){this._element.style.paddingLeft='';this._element.style.paddingRight=''} 315static jQueryInterface(config,relatedTarget){return this.each(function(){const data=Modal.getOrCreateInstance(this,config);if(typeof config!=='string'){return} 316if(typeof data[config]==='undefined'){throw new TypeError(`No method named "${config}"`)} 317data[config](relatedTarget)})}} 318EventHandler.on(document,EVENT_CLICK_DATA_API$2,SELECTOR_DATA_TOGGLE$2,function(event){const target=getElementFromSelector(this);if(['A','AREA'].includes(this.tagName)){event.preventDefault()} 319EventHandler.one(target,EVENT_SHOW$3,showEvent=>{if(showEvent.defaultPrevented){return} 320EventHandler.one(target,EVENT_HIDDEN$3,()=>{if(isVisible(this)){this.focus()}})});const allReadyOpen=SelectorEngine.findOne(OPEN_SELECTOR$1);if(allReadyOpen){Modal.getInstance(allReadyOpen).hide()} 321const data=Modal.getOrCreateInstance(target);data.toggle(this)});enableDismissTrigger(Modal);defineJQueryPlugin(Modal);const NAME$5='offcanvas';const DATA_KEY$5='bs.offcanvas';const EVENT_KEY$5=`.${DATA_KEY$5}`;const DATA_API_KEY$2='.data-api';const EVENT_LOAD_DATA_API$1=`load${EVENT_KEY$5}${DATA_API_KEY$2}`;const ESCAPE_KEY='Escape';const Default$4={backdrop:!0,keyboard:!0,scroll:!1};const DefaultType$4={backdrop:'boolean',keyboard:'boolean',scroll:'boolean'};const CLASS_NAME_SHOW$3='show';const CLASS_NAME_BACKDROP='offcanvas-backdrop';const OPEN_SELECTOR='.offcanvas.show';const EVENT_SHOW$2=`show${EVENT_KEY$5}`;const EVENT_SHOWN$2=`shown${EVENT_KEY$5}`;const EVENT_HIDE$2=`hide${EVENT_KEY$5}`;const EVENT_HIDDEN$2=`hidden${EVENT_KEY$5}`;const EVENT_CLICK_DATA_API$1=`click${EVENT_KEY$5}${DATA_API_KEY$2}`;const EVENT_KEYDOWN_DISMISS=`keydown.dismiss${EVENT_KEY$5}`;const SELECTOR_DATA_TOGGLE$1='[data-bs-toggle="offcanvas"]';class Offcanvas extends BaseComponent{constructor(element,config){super(element);this._config=this._getConfig(config);this._isShown=!1;this._backdrop=this._initializeBackDrop();this._focustrap=this._initializeFocusTrap();this._addEventListeners()} 322static get NAME(){return NAME$5} 323static get Default(){return Default$4} 324toggle(relatedTarget){return this._isShown?this.hide():this.show(relatedTarget)} 325show(relatedTarget){if(this._isShown){return} 326const showEvent=EventHandler.trigger(this._element,EVENT_SHOW$2,{relatedTarget});if(showEvent.defaultPrevented){return} 327this._isShown=!0;this._element.style.visibility='visible';this._backdrop.show();if(!this._config.scroll){new ScrollBarHelper().hide()} 328this._element.removeAttribute('aria-hidden');this._element.setAttribute('aria-modal',!0);this._element.setAttribute('role','dialog');this._element.classList.add(CLASS_NAME_SHOW$3);const completeCallBack=()=>
328{if(!this._config.scroll){this._focustrap.activate()} 329EventHandler.trigger(this._element,EVENT_SHOWN$2,{relatedTarget})};this._queueCallback(completeCallBack,this._element,!0)} 330hide(){if(!this._isShown){return} 331const hideEvent=EventHandler.trigger(this._element,EVENT_HIDE$2);if(hideEvent.defaultPrevented){return} 332this._focustrap.deactivate();this._element.blur();this._isShown=!1;this._element.classList.remove(CLASS_NAME_SHOW$3);this._backdrop.hide();const completeCallback=()=>{this._element.setAttribute('aria-hidden',!0);this._element.removeAttribute('aria-modal');this._element.removeAttribute('role');this._element.style.visibility='hidden';if(!this._config.scroll){new ScrollBarHelper().reset()} 333EventHandler.trigger(this._element,EVENT_HIDDEN$2)};this._queueCallback(completeCallback,this._element,!0)} 334dispose(){this._backdrop.dispose();this._focustrap.deactivate();super.dispose()} 335_getConfig(config){config={...Default$4,...Manipulator.getDataAttributes(this._element),...(typeof config==='object'?config:{})};typeCheckConfig(NAME$5,config,DefaultType$4);return config} 336_initializeBackDrop(){return new Backdrop({className:CLASS_NAME_BACKDROP,isVisible:this._config.backdrop,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:()=>this.hide()})} 337_initializeFocusTrap(){return new FocusTrap({trapElement:this._element})} 338_addEventListeners(){EventHandler.on(this._element,EVENT_KEYDOWN_DISMISS,event=>{if(this._config.keyboard&&event.key===ESCAPE_KEY){this.hide()}})} 339static jQueryInterface(config){return this.each(function(){const data=Offcanvas.getOrCreateInstance(this,config);if(typeof config!=='string'){return} 340if(data[config]===undefined||config.startsWith('_')||config==='constructor'){throw new TypeError(`No method named "${config}"`)} 341data[config](this)})}} 342EventHandler.on(document,EVENT_CLICK_DATA_API$1,SELECTOR_DATA_TOGGLE$1,function(event){const target=getElementFromSelector(this);if(['A','AREA'].includes(this.tagName)){event.preventDefault()} 343if(isDisabled(this)){return} 344EventHandler.one(target,EVENT_HIDDEN$2,()=>{if(isVisible(this)){this.focus()}});const allReadyOpen=SelectorEngine.findOne(OPEN_SELECTOR);if(allReadyOpen&&allReadyOpen!==target){Offcanvas.getInstance(allReadyOpen).hide()} 345const data=Offcanvas.getOrCreateInstance(target);data.toggle(this)});EventHandler.on(window,EVENT_LOAD_DATA_API$1,()=>SelectorEngine.find(OPEN_SELECTOR).forEach(el=>Offcanvas.getOrCreateInstance(el).show()));enableDismissTrigger(Offcanvas);defineJQueryPlugin(Offcanvas);const uriAttributes=new Set(['background','cite','href','itemtype','longdesc','poster','src','xlink:href']);const ARIA_ATTRIBUTE_PATTERN=/^aria-[\w-]*$/i;const SAFE_URL_PATTERN=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i;const DATA_URL_PATTERN=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;const allowedAttribute=(attribute,allowedAttributeList)=>{const attributeName=attribute.nodeName.toLowerCase();if(allowedAttributeList.includes(attributeName)){if(uriAttributes.has(attributeName)){return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue)||DATA_URL_PATTERN.test(attribute.nodeValue))} 346return!0} 347const regExp=allowedAttributeList.filter(attributeRegex=>attributeRegex instanceof RegExp);for(let i=0,len=regExp.length;i<len;i++){if(regExp[i].test(attributeName)){return!0}} 348return!1};const DefaultAllowlist={'*':['class','dir','id','lang','role',ARIA_ATTRIBUTE_PATTERN],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:[]};function sanitizeHtml(unsafeHtml,allowList,sanitizeFn){if(!unsafeHtml.length){return unsafeHtml} 349if(sanitizeFn&&typeof sanitizeFn==='function'){return sanitizeFn(unsafeHtml)} 350const domParser=new window.DOMParser();const createdDocument=domParser.parseFromString(unsafeHtml,'text/html');const elements=[].concat(...createdDocument.body.querySelectorAll('*'));for(let i=0,len=elements.length;i<len;i++){const element=elements[i];const elementName=element.nodeName.toLowerCase();if(!Object.keys(allowList).includes(elementName)){element.remove();continue} 351const attributeList=[].concat(...element.attributes);const allowedAttributes=[].concat(allowList['*']||[],allowList[elementName]||[]);attributeList.forEach(attribute=>{if(!allowedAttribute(attribute,allowedAttributes)){element.removeAttribute(attribute.no
351deName)}})} 352return createdDocument.body.innerHTML} 353const NAME$4='tooltip';const DATA_KEY$4='bs.tooltip';const EVENT_KEY$4=`.${DATA_KEY$4}`;const CLASS_PREFIX$1='bs-tooltip';const DISALLOWED_ATTRIBUTES=new Set(['sanitize','allowList','sanitizeFn']);const DefaultType$3={animation:'boolean',template:'string',title:'(string|element|function)',trigger:'string',delay:'(number|object)',html:'boolean',selector:'(string|boolean)',placement:'(string|function)',offset:'(array|string|function)',container:'(string|element|boolean)',fallbackPlacements:'array',boundary:'(string|element)',customClass:'(string|function)',sanitize:'boolean',sanitizeFn:'(null|function)',allowList:'object',popperConfig:'(null|object|function)'};const AttachmentMap={AUTO:'auto',TOP:'top',RIGHT:isRTL()?'left':'right',BOTTOM:'bottom',LEFT:isRTL()?'right':'left'};const Default$3={animation:!0,template:'<div class="tooltip" role="tooltip">'+'<div class="tooltip-arrow"></div>'+'<div class="tooltip-inner"></div>'+'</div>',trigger:'hover focus',title:'',delay:0,html:!1,selector:!1,placement:'top',offset:[0,0],container:!1,fallbackPlacements:['top','right','bottom','left'],boundary:'clippingParents',customClass:'',sanitize:!0,sanitizeFn:null,allowList:DefaultAllowlist,popperConfig:null};const Event$2={HIDE:`hide${EVENT_KEY$4}`,HIDDEN:`hidden${EVENT_KEY$4}`,SHOW:`show${EVENT_KEY$4}`,SHOWN:`shown${EVENT_KEY$4}`,INSERTED:`inserted${EVENT_KEY$4}`,CLICK:`click${EVENT_KEY$4}`,FOCUSIN:`focusin${EVENT_KEY$4}`,FOCUSOUT:`focusout${EVENT_KEY$4}`,MOUSEENTER:`mouseenter${EVENT_KEY$4}`,MOUSELEAVE:`mouseleave${EVENT_KEY$4}`};const CLASS_NAME_FADE$2='fade';const CLASS_NAME_MODAL='modal';const CLASS_NAME_SHOW$2='show';const HOVER_STATE_SHOW='show';const HOVER_STATE_OUT='out';const SELECTOR_TOOLTIP_INNER='.tooltip-inner';const SELECTOR_MODAL=`.${CLASS_NAME_MODAL}`;const EVENT_MODAL_HIDE='hide.bs.modal';const TRIGGER_HOVER='hover';const TRIGGER_FOCUS='focus';const TRIGGER_CLICK='click';const TRIGGER_MANUAL='manual';class Tooltip extends BaseComponent{constructor(element,config){if(typeof Popper__namespace==='undefined'){throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)')} 354super(element);this._isEnabled=!0;this._timeout=0;this._hoverState='';this._activeTrigger={};this._popper=null;this._config=this._getConfig(config);this.tip=null;this._setListeners()} 355static get Default(){return Default$3} 356static get NAME(){return NAME$4} 357static get Event(){return Event$2} 358static get DefaultType(){return DefaultType$3} 359enable(){this._isEnabled=!0} 360disable(){this._isEnabled=!1} 361toggleEnabled(){this._isEnabled=!this._isEnabled} 362toggle(event){if(!this._isEnabled){return} 363if(event){const context=this._initializeOnDelegatedTarget(event);context._activeTrigger.click=!context._activeTrigger.click;if(context._isWithActiveTrigger()){context._enter(null,context)}else{context._leave(null,context)}}else{if(this.getTipElement().classList.contains(CLASS_NAME_SHOW$2)){this._leave(null,this);return} 364this._enter(null,this)}} 365dispose(){clearTimeout(this._timeout);EventHandler.off(this._element.closest(SELECTOR_MODAL),EVENT_MODAL_HIDE,this._hideModalHandler);if(this.tip){this.tip.remove()} 366this._disposePopper();super.dispose()} 367show(){if(this._element.style.display==='none'){throw new Error('Please use show on visible elements')} 368if(!(this.isWithContent()&&this._isEnabled)){return} 369const showEvent=EventHandler.trigger(this._element,this.constructor.Event.SHOW);const shadowRoot=findShadowRoot(this._element);const isInTheDom=shadowRoot===null?this._element.ownerDocument.documentElement.contains(this._element):shadowRoot.contains(this._element);if(showEvent.defaultPrevented||!isInTheDom){return} 370if(this.constructor.NAME==='tooltip'&&this.tip&&this.getTitle()!==this.tip.querySelector(SELECTOR_TOOLTIP_INNER).innerHTML){this._disposePopper();this.tip.remove();this.tip=null} 371const tip=this.getTipElement();const tipId=getUID(this.constructor.NAME);tip.setAttribute('id',tipId);this._element.setAttribute('aria-describedby',tipId);if(this._config.animation){tip.classList.add(CLASS_NAME_FADE$2)} 372const placement=typeof this._config.placement==='function'?this._config.placement.call(this,tip,this._element):this._config.placement;const attachment=this._getAttachment(placement);this._addAttachmentClass(attachment);const{container}=this._config;Data.set(tip,this.constructor.DATA_KEY,this);if(!this._element.ownerDocument.documentElement.contains(this.tip)){container.append(tip);EventHandler.trigger(this._element,this.constructor.Event.INSERTED)}
373if(this._popper){this._popper.update()}else{this._popper=Popper__namespace.createPopper(this._element,tip,this._getPopperConfig(attachment))} 374tip.classList.add(CLASS_NAME_SHOW$2);const customClass=this._resolvePossibleFunction(this._config.customClass);if(customClass){tip.classList.add(...customClass.split(' '))} 375if('ontouchstart' in document.documentElement){[].concat(...document.body.children).forEach(element=>{EventHandler.on(element,'mouseover',noop)})} 376const complete=()=>{const prevHoverState=this._hoverState;this._hoverState=null;EventHandler.trigger(this._element,this.constructor.Event.SHOWN);if(prevHoverState===HOVER_STATE_OUT){this._leave(null,this)}};const isAnimated=this.tip.classList.contains(CLASS_NAME_FADE$2);this._queueCallback(complete,this.tip,isAnimated)} 377hide(){if(!this._popper){return} 378const tip=this.getTipElement();const complete=()=>{if(this._isWithActiveTrigger()){return} 379if(this._hoverState!==HOVER_STATE_SHOW){tip.remove()} 380this._cleanTipClass();this._element.removeAttribute('aria-describedby');EventHandler.trigger(this._element,this.constructor.Event.HIDDEN);this._disposePopper()};const hideEvent=EventHandler.trigger(this._element,this.constructor.Event.HIDE);if(hideEvent.defaultPrevented){return} 381tip.classList.remove(CLASS_NAME_SHOW$2);if('ontouchstart' in document.documentElement){[].concat(...document.body.children).forEach(element=>EventHandler.off(element,'mouseover',noop))} 382this._activeTrigger[TRIGGER_CLICK]=!1;this._activeTrigger[TRIGGER_FOCUS]=!1;this._activeTrigger[TRIGGER_HOVER]=!1;const isAnimated=this.tip.classList.contains(CLASS_NAME_FADE$2);this._queueCallback(complete,this.tip,isAnimated);this._hoverState=''} 383update(){if(this._popper!==null){this._popper.update()}} 384isWithContent(){return Boolean(this.getTitle())} 385getTipElement(){if(this.tip){return this.tip} 386const element=document.createElement('div');element.innerHTML=this._config.template;const tip=element.children[0];this.setContent(tip);tip.classList.remove(CLASS_NAME_FADE$2,CLASS_NAME_SHOW$2);this.tip=tip;return this.tip} 387setContent(tip){this._sanitizeAndSetContent(tip,this.getTitle(),SELECTOR_TOOLTIP_INNER)} 388_sanitizeAndSetContent(template,content,selector){const templateElement=SelectorEngine.findOne(selector,template);
388if(!content&&templateElement){templateElement.remove();return} 389this.setElementContent(templateElement,content)} 390setElementContent(element,content){if(element===null){return} 391if(isElement(content)){content=getElement(content);if(this._config.html){if(content.parentNode!==element){element.innerHTML='';element.append(content)}}else{element.textContent=content.textContent} 392return} 393if(this._config.html){if(this._config.sanitize){content=sanitizeHtml(content,this._config.allowList,this._config.sanitizeFn)} 394element.innerHTML=content}else{element.textContent=content}} 395getTitle(){const title=this._element.getAttribute('data-bs-original-title')||this._config.title;return this._resolvePossibleFunction(title)} 396updateAttachment(attachment){if(attachment==='right'){return'end'} 397if(attachment==='left'){return'start'} 398return attachment} 399_initializeOnDelegatedTarget(event,context){return context||this.constructor.getOrCreateInstance(event.delegateTarget,this._getDelegateConfig())} 400_getOffset(){const{offset}=this._config;if(typeof offset==='string'){return offset.split(',').map(val=>Number.parseInt(val,10))} 401if(typeof offset==='function'){return popperData=>offset(popperData,this._element)} 402return offset} 403_resolvePossibleFunction(content){return typeof content==='function'?content.call(this._element):content} 404_getPopperConfig(attachment){const defaultBsPopperConfig={placement:attachment,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:'onChange',enabled:!0,phase:'afterWrite',fn:data=>this._handlePopperPlacementChange(data)}],onFirstUpdate:data=>{if(data.options.placement!==data.placement){this._handlePopperPlacementChange(data)}}};return{...defaultBsPopperConfig,...(typeof this._config.popperConfig==='function'?this._config.popperConfig(defaultBsPopperConfig):this._config.popperConfig)}} 405_addAttachmentClass(attachment){this.getTipElement().classList.add(`${this._getBasicClassPrefix()}-${this.updateAttachment(attachment)}`)} 406_getAttachment(placement){return AttachmentMap[placement.toUpperCase()]} 407_setListeners(){const triggers=this._config.trigger.split(' ');triggers.forEach(trigger=>{if(trigger==='click'){EventHandler.on(this._element,this.constructor.Event.CLICK,this._config.selector,event=>this.toggle(event))}else if(trigger!==TRIGGER_MANUAL){const eventIn=trigger===TRIGGER_HOVER?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN;const eventOut=trigger===TRIGGER_HOVER?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;EventHandler.on(this._element,eventIn,this._config.selector,event=>this._enter(event));EventHandler.on(this._element,eventOut,this._config.selector,event=>this._leave(event))}});this._hideModalHandler=()=>{if(this._element){this.hide()}};EventHandler.on(this._element.closest(SELECTOR_MODAL),EVENT_MODAL_HIDE,this._hideModalHandler);if(this._config.selector){this._config={...this._config,trigger:'manual',selector:''}}else{this._fixTitle()}} 408_fixTitle(){const title=this._element.getAttribute('title');const originalTitleType=typeof this._element.getAttribute('data-bs-original-title');if(title||originalTitleType!=='string'){this._element.setAttribute('data-bs-original-title',title||'');if(title&&!this._element.getAttribute('aria-label')&&!this._element.textContent){this._element.setAttribute('aria-label',title)} 409this._element.setAttribute('title','')}} 410_enter(event,context){context=this._initializeOnDelegatedTarget(event,context);if(event){context._activeTrigger[event.type==='focusin'?TRIGGER_FOCUS:TRIGGER_HOVER]=!0} 411if(context.getTipElement().classList.contains(CLASS_NAME_SHOW$2)||context._hoverState===HOVER_STATE_SHOW){context._hoverState=HOVER_STATE_SHOW;return} 412clearTimeout(context._timeout);context._hoverState=HOVER_STATE_SHOW;if(!context._config.delay||!context._config.delay.show){context.show();return} 413context._timeout=setTimeout(()=>{if(context._hoverState===HOVER_STATE_SHOW){context.show()}},context._config.delay.show)} 414_leave(event,context){context=this._initializeOnDelegatedTarget(event,context);if(event){context._activeTrigger[event.type==='focusout'?TRIGGER_FOCUS:TRIGGER_HOVER]=context._element.contains(event.relatedTarget)} 415if(context._isWithActiveTrigger()){return} 416clearTimeout(context._timeout);context._hoverState=HOVER_STATE_OUT;if(!context._config.delay||!context._config.delay.hide){context.hide();return} 417context._timeout=setTimeout(()=>{if(context._hoverState===HOVER_STATE_OUT){context.hide()}},context._config.delay.hide)} 418_isWithActiveTrigger(){for(const trigger in this._activeTrigger){if(this._activeTrigger[trigger]){return!0}} 419return!1} 420_getConfig(config){const dataAttributes=Manipulator.getDataAttributes(this._element);
420Object.keys(dataAttributes).forEach(dataAttr=>{if(DISALLOWED_ATTRIBUTES.has(dataAttr)){delete dataAttributes[dataAttr]}});config={...this.constructor.Default,...dataAttributes,...(typeof config==='object'&&config?config:{})};config.container=config.container===!1?document.body:getElement(config.container);if(typeof config.delay==='number'){config.delay={show:config.delay,hide:config.delay}} 421if(typeof config.title==='number'){config.title=config.title.toString()} 422if(typeof config.content==='number'){config.content=config.content.toString()} 423typeCheckConfig(NAME$4,config,this.constructor.DefaultType);if(config.sanitize){config.template=sanitizeHtml(config.template,config.allowList,config.sanitizeFn)} 424return config} 425_getDelegateConfig(){const config={};for(const key in this._config){if(this.constructor.Default[key]!==this._config[key]){config[key]=this._config[key]}} 426return config} 427_cleanTipClass(){const tip=this.getTipElement();const basicClassPrefixRegex=new RegExp(`(^|\\s)${this._getBasicClassPrefix()}\\S+`,'g');const tabClass=tip.getAttribute('class').match(basicClassPrefixRegex);if(tabClass!==null&&tabClass.length>0){tabClass.map(token=>token.trim()).forEach(tClass=>tip.classList.remove(tClass))}} 428_getBasicClassPrefix(){return CLASS_PREFIX$1} 429_handlePopperPlacementChange(popperData){const{state}=popperData;if(!state){return} 430this.tip=state.elements.popper;this._cleanTipClass();this._addAttachmentClass(this._getAttachment(state.placement))} 431_disposePopper(){if(this._popper){this._popper.destroy();this._popper=null}} 432static jQueryInterface(config){return this.each(function(){const data=Tooltip.getOrCreateInstance(this,config);if(typeof config==='string'){if(typeof data[config]==='undefined'){throw new TypeError(`No method named "${config}"`)} 433data[config]()}})}} 434defineJQueryPlugin(Tooltip);const NAME$3='popover';const DATA_KEY$3='bs.popover';const EVENT_KEY$3=`.${DATA_KEY$3}`;const CLASS_PREFIX='bs-popover';const Default$2={...Tooltip.Default,placement:'right',offset:[0,8],trigger:'click',content:'',template:'<div class="popover" role="tooltip">'+'<div class="popover-arrow"></div>'+'<h3 class="popover-header"></h3>'+'<div class="popover-body"></div>'+'</div>'};const DefaultType$2={...Tooltip.DefaultType,content:'(string|element|function)'};const Event$1={HIDE:`hide${EVENT_KEY$3}`,HIDDEN:`hidden${EVENT_KEY$3}`,SHOW:`show${EVENT_KEY$3}`,SHOWN:`shown${EVENT_KEY$3}`,INSERTED:`inserted${EVENT_KEY$3}`,CLICK:`click${EVENT_KEY$3}`,FOCUSIN:`focusin${EVENT_KEY$3}`,FOCUSOUT:`focusout${EVENT_KEY$3}`,MOUSEENTER:`mouseenter${EVENT_KEY$3}`,MOUSELEAVE:`mouseleave${EVENT_KEY$3}`};const SELECTOR_TITLE='.popover-header';const SELECTOR_CONTENT='.popover-body';class Popover extends Tooltip{static get Default(){return Default$2} 435static get NAME(){return NAME$3} 436static get Event(){return Event$1} 437static get DefaultType(){return DefaultType$2} 438isWithContent(){return this.getTitle()||this._getContent()} 439setContent(tip){this._sanitizeAndSetContent(tip,this.getTitle(),SELECTOR_TITLE);this._sanitizeAndSetContent(tip,this._getContent(),SELECTOR_CONTENT)} 440_getContent(){return this._resolvePossibleFunction(this._config.content)} 441_getBasicClassPrefix(){return CLASS_PREFIX} 442static jQueryInterface(config){return this.each(function(){const data=Popover.getOrCreateInstance(this,config);if(typeof config==='string'){if(typeof data[config]==='undefined'){throw new TypeError(`No method named "${config}"`)} 443data[config]()}})}} 444defineJQueryPlugin(Popover);const NAME$2='scrollspy';const DATA_KEY$2='bs.scrollspy';const EVENT_KEY$2=`.${DATA_KEY$2}`;const DATA_API_KEY$1='.data-api';const Default$1={offset:10,method:'auto',target:''};const DefaultType$1={offset:'number',method:'string',target:'(string|element)'};const EVENT_ACTIVATE=`activate${EVENT_KEY$2}`;const EVENT_SCROLL=`scroll${EVENT_KEY$2}`;const EVENT_LOAD_DATA_API=`load${EVENT_KEY$2}${DATA_API_KEY$1}`;const CLASS_NAME_DROPDOWN_ITEM='dropdown-item';const CLASS_NAME_ACTIVE$1='active';const SELECTOR_DATA_SPY='[data-bs-spy="scroll"]';const SELECTOR_NAV_LIST_GROUP$1='.nav, .list-group';const SELECTOR_NAV_LINKS='.nav-link';const SELECTOR_NAV_ITEMS='.nav-item';const SELECTOR_LIST_ITEMS='.list-group-item';const SELECTOR_LINK_ITEMS=`${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}
444, .${CLASS_NAME_DROPDOWN_ITEM}`;const SELECTOR_DROPDOWN$1='.dropdown';const SELECTOR_DROPDOWN_TOGGLE$1='.dropdown-toggle';const METHOD_OFFSET='offset';const METHOD_POSITION='position';class ScrollSpy extends BaseComponent{constructor(element,config){super(element);this._scrollElement=this._element.tagName==='BODY'?window:this._element;this._config=this._getConfig(config);this._offsets=[];this._targets=[];this._activeTarget=null;this._scrollHeight=0;EventHandler.on(this._scrollElement,EVENT_SCROLL,()=>this._process());this.refresh();this._process()} 445static get Default(){return Default$1} 446static get NAME(){return NAME$2} 447refresh(){const autoMethod=this._scrollElement===this._scrollElement.window?METHOD_OFFSET:METHOD_POSITION;const offsetMethod=this._config.method==='auto'?autoMethod:this._config.method;const offsetBase=offsetMethod===METHOD_POSITION?this._getScrollTop():0;this._offsets=[];this._targets=[];this._scrollHeight=this._getScrollHeight();const targets=SelectorEngine.find(SELECTOR_LINK_ITEMS,this._config.target);targets.map(element=>{const targetSelector=getSelectorFromElement(element);const target=targetSelector?SelectorEngine.findOne(targetSelector):null;if(target){const targetBCR=target.getBoundingClientRect();if(targetBCR.width||targetBCR.height){return[Manipulator[offsetMethod](target).top+offsetBase,targetSelector]}} 448return null}).filter(item=>item).sort((a,b)=>a[0]-b[0]).forEach(item=>{this._offsets.push(item[0]);this._targets.push(item[1])})} 449dispose(){EventHandler.off(this._scrollElement,EVENT_KEY$2);super.dispose()} 450_getConfig(config){config={...Default$1,...Manipulator.getDataAttributes(this._element),...(typeof config==='object'&&config?config:{})};config.target=getElement(config.target)||document.documentElement;typeCheckConfig(NAME$2,config,DefaultType$1);return config} 451_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop} 452_getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)} 453_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height} 454_process(){const scrollTop=this._getScrollTop()+this._config.offset;const scrollHeight=this._getScrollHeight();const maxScroll=this._config.offset+scrollHeight-this._getOffsetHeight();if(this._scrollHeight!==scrollHeight){this.refresh()} 455if(scrollTop>=maxScroll){const target=this._targets[this._targets.length-1];if(this._activeTarget!==target){this._activate(target)} 456return} 457if(this._activeTarget&&scrollTop<this._offsets[0]&&this._offsets[0]>0){this._activeTarget=null;this._clear();return} 458for(let i=this._offsets.length;i--;){const isActiveTarget=this._activeTarget!==this._targets[i]&&scrollTop>=this._offsets[i]&&(typeof this._offsets[i+1]==='undefined'||scrollTop<this._offsets[i+1]);if(isActiveTarget){this._activate(this._targets[i])}}} 459_activate(target){this._activeTarget=target;this._clear();const queries=SELECTOR_LINK_ITEMS.split(',').map(selector=>`${selector}[data-bs-target="${target}"],${selector}[href="${target}"]`);const link=SelectorEngine.findOne(queries.join(','),this._config.target);link.classList.add(CLASS_NAME_ACTIVE$1);if(link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)){SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1,link.closest(SELECTOR_DROPDOWN$1)).classList.add(CLASS_NAME_ACTIVE$1)}else{SelectorEngine.parents(link,SELECTOR_NAV_LIST_GROUP$1).forEach(listGroup=>{SelectorEngine.prev(listGroup,`${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`).forEach(item=>item.classList.add(CLASS_NAME_ACTIVE$1));SelectorEngine.prev(listGroup,SELECTOR_NAV_ITEMS).forEach(navItem=>{SelectorEngine.children(navItem,SELECTOR_NAV_LINKS).forEach(item=>item.classList.add(CLASS_NAME_ACTIVE$1))})})} 460EventHandler.trigger(this._scrollElement,EVENT_ACTIVATE,{relatedTarget:target})} 461_clear(){SelectorEngine.find(SELECTOR_LINK_ITEMS,this._config.target).filter(node=>node.classList.contains(CLASS_NAME_ACTIVE$1)).forEach(node=>node.classList.remove(CLASS_NAME_ACTIVE$1))} 462static jQueryInterface(config){return this.each(function(){const data=ScrollSpy.getOrCreateInstance(this,config);if(typeof config!=='string'){return} 463if(typeof data[config]==='undefined'){throw new TypeError(`No method n
463amed "${config}"`)} 464data[config]()})}} 465EventHandler.on(window,EVENT_LOAD_DATA_API,()=>{SelectorEngine.find(SELECTOR_DATA_SPY).forEach(spy=>new ScrollSpy(spy))});defineJQueryPlugin(ScrollSpy);const NAME$1='tab';const DATA_KEY$1='bs.tab';const EVENT_KEY$1=`.${DATA_KEY$1}`;const DATA_API_KEY='.data-api';const EVENT_HIDE$1=`hide${EVENT_KEY$1}`;const EVENT_HIDDEN$1=`hidden${EVENT_KEY$1}`;const EVENT_SHOW$1=`show${EVENT_KEY$1}`;const EVENT_SHOWN$1=`shown${EVENT_KEY$1}`;const EVENT_CLICK_DATA_API=`click${EVENT_KEY$1}${DATA_API_KEY}`;const CLASS_NAME_DROPDOWN_MENU='dropdown-menu';const CLASS_NAME_ACTIVE='active';const CLASS_NAME_FADE$1='fade';const CLASS_NAME_SHOW$1='show';const SELECTOR_DROPDOWN='.dropdown';const SELECTOR_NAV_LIST_GROUP='.nav, .list-group';const SELECTOR_ACTIVE='.active';const SELECTOR_ACTIVE_UL=':scope > li > .active';const SELECTOR_DATA_TOGGLE='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]';const SELECTOR_DROPDOWN_TOGGLE='.dropdown-toggle';const SELECTOR_DROPDOWN_ACTIVE_CHILD=':scope > .dropdown-menu .active';class Tab extends BaseComponent{static get NAME(){return NAME$1} 466show(){if(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(CLASS_NAME_ACTIVE)){return} 467let previous;const target=getElementFromSelector(this._element);const listElement=this._element.closest(SELECTOR_NAV_LIST_GROUP);if(listElement){const itemSelector=listElement.nodeName==='UL'||listElement.nodeName==='OL'?SELECTOR_ACTIVE_UL:SELECTOR_ACTIVE;previous=SelectorEngine.find(itemSelector,listElement);previous=previous[previous.length-1]} 468const hideEvent=previous?EventHandler.trigger(previous,EVENT_HIDE$1,{relatedTarget:this._element}):null;const showEvent=EventHandler.trigger(this._element,EVENT_SHOW$1,{relatedTarget:previous});if(showEvent.defaultPrevented||hideEvent!==null&&hideEvent.defaultPrevented){return} 469this._activate(this._element,listElement);const complete=()=>{EventHandler.trigger(previous,EVENT_HIDDEN$1,{relatedTarget:this._element});EventHandler.trigger(this._element,EVENT_SHOWN$1,{relatedTarget:previous})};if(target){this._activate(target,target.parentNode,complete)}else{complete()}} 470_activate(element,container,callback){const activeElements=container&&(container.nodeName==='UL'||container.nodeName==='OL')?SelectorEngine.find(SELECTOR_ACTIVE_UL,container):SelectorEngine.children(container,SELECTOR_ACTIVE);const active=activeElements[0];const isTransitioning=callback&&active&&active.classList.contains(CLASS_NAME_FADE$1);const complete=()=>this._transitionComplete(element,active,callback);if(active&&isTransitioning){active.classList.remove(CLASS_NAME_SHOW$1);this._queueCallback(complete,element,!0)}else{complete()}} 471_transitionComplete(element,active,callback){if(active){active.classList.remove(CLASS_NAME_ACTIVE);const dropdownChild=SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD,active.parentNode);if(dropdownChild){dropdownChild.classList.remove(CLASS_NAME_ACTIVE)} 472if(active.getAttribute('role')==='tab'){active.setAttribute('aria-selected',!1)}} 473element.classList.add(CLASS_NAME_ACTIVE);if(element.getAttribute('role')==='tab'){element.setAttribute('aria-selected',!0)} 474reflow(element);if(element.classList.contains(CLASS_NAME_FADE$1)){element.classList.add(CLASS_NAME_SHOW$1)} 475let parent=element.parentNode;if(parent&&parent.nodeName==='LI'){parent=parent.parentNode} 476if(parent&&parent.classList.contains(CLASS_NAME_DROPDOWN_MENU)){const dropdownElement=element.closest(SELECTOR_DROPDOWN);if(dropdownElement){SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE,dropdownElement).forEach(dropdown=>dropdown.classList.add(CLASS_NAME_ACTIVE))} 477element.setAttribute('aria-expanded',!0)} 478if(callback){callback()}} 479static jQueryInterface(config){return this.each(function(){const data=Tab.getOrCreateInstance(this);if(typeof config==='string'){if(typeof data[config]==='undefined'){throw new TypeError(`No method named "${config}"`)} 480data[config]()}})}} 481EventHandler.on(document,EVENT_CLICK_DATA_API,SELECTOR_DATA_TOGGLE,function(event){if(['A','AREA'].includes(this.tagName)){event.preventDefault()} 482if(isDisabled(this)){return} 483const data=Tab.getOrCreateInstance(this);data.show()});defineJQueryPlugin(Tab);const NAME='toast';const DATA_KEY='bs.toast';const EVENT_KEY=`.${DATA_KEY}`;const EVENT_MOUSEOVER=`mouseover${EVENT_KEY}`;const EVENT_MOUSEOUT=`mouseout${EVENT_KEY}`;const EVENT_FOCUSIN=`focusin${EVENT_KEY}`;const EVENT_FOCUSOUT=`focusout${EVENT_KEY}`;const EVENT_HIDE=`hide${EVENT_KEY}`;const EVENT_HIDDEN=`hidden${EVENT_KEY}`;const EVENT_SHOW=`show${EVENT_KEY}`;const EVENT_SHOWN=`shown${EVENT_KEY}`;const CLASS_NAME_FADE='fade';const CLASS_NAME_HIDE='hide';const CLASS_NAME_SHOW='show';const CLASS_NAME_SHOWING='showing';const DefaultType={animation:'boolean',autohide:'boolean',delay:'number'};const Default={animation:!0,autohide:!0,delay:5000};class Toast extends BaseComponent{constructor(element,config){super(element);this._config=this._getConfig(config);this._timeout=null;this._hasMouseInteraction=!1;this._hasKeyboardInteraction=!1;this._setListeners()} 484static get DefaultType(){return DefaultType} 485static get Default(){return Default} 486static get NAME(){return NAME} 487show(){const showEvent=EventHandler.trigger(this._element,EVENT_SHOW);if(showEvent.defaultPrevented){return} 488this._clearTimeout();if(this._config.animation){this._element.classList.add(CLASS_NAME_FADE)} 489const complete=()=>{this._element.classList.remove(CLASS_NAME_SHOWING);EventHandler.trigger(this._element,EVENT_SHOWN);this._maybeScheduleHide()};this._element.classList.remove(CLASS_NAME_HIDE);reflow(this._element);this._element.classList.add(CLASS_NAME_SHOW);this._element.classList.add(CLASS_NAME_SHOWING);this._queueCallback(complete,this._element,this._config.animation)}
490hide(){if(!this._element.classList.contains(CLASS_NAME_SHOW)){return} 491const hideEvent=EventHandler.trigger(this._element,EVENT_HIDE);if(hideEvent.defaultPrevented){return} 492const complete=()=>{this._element.classList.add(CLASS_NAME_HIDE);this._element.classList.remove(CLASS_NAME_SHOWING);this._element.classList.remove(CLASS_NAME_SHOW);EventHandler.trigger(this._element,EVENT_HIDDEN)};this._element.classList.add(CLASS_NAME_SHOWING);this._queueCallback(complete,this._element,this._config.animation)} 493dispose(){this._clearTimeout();if(this._element.classList.contains(CLASS_NAME_SHOW)){this._element.classList.remove(CLASS_NAME_SHOW)} 494super.dispose()} 495_getConfig(config){config={...Default,...Manipulator.getDataAttributes(this._element),...(typeof config==='object'&&config?config:{})};typeCheckConfig(NAME,config,this.constructor.DefaultType);return config} 496_maybeScheduleHide(){if(!this._config.autohide){return} 497if(this._hasMouseInteraction||this._hasKeyboardInteraction){return} 498this._timeout=setTimeout(()=>{this.hide()},this._config.delay)} 499_onInteraction(event,isInteracting){switch(event.type){case 'mouseover':case 'mouseout':this._hasMouseInteraction=isInteracting;break;case 'focusin':case 'focusout':this._hasKeyboardInteraction=isInteracting;break} 500if(isInteracting){this._clearTimeout();return} 501const nextElement=event.relatedTarget;if(this._element===nextElement||this._element.contains(nextElement)){return} 502this._maybeScheduleHide()} 503_setListeners(){EventHandler.on(this._element,EVENT_MOUSEOVER,event=>this._onInteraction(event,!0));EventHandler.on(this._element,EVENT_MOUSEOUT,event=>this._onInteraction(event,!1));EventHandler.on(this._element,EVENT_FOCUSIN,event=>this._onInteraction(event,!0));EventHandler.on(this._element,EVENT_FOCUSOUT,event=>this._onInteraction(event,!1))} 504_clearTimeout(){clearTimeout(this._timeout);this._timeout=null} 505static jQueryInterface(config){return this.each(function(){const data=Toast.getOrCreateInstance(this,config);if(typeof config==='string'){if(typeof data[config]==='undefined'){throw new TypeError(`No method named "${config}"`)} 506data[config](this)}})}} 507enableDismissTrigger(Toast);defineJQueryPlugin(Toast);const index_umd={Alert,Button,Carousel,Collapse,Dropdown,Modal,Offcanvas,Popover,ScrollSpy,Tab,Toast,Tooltip};return index_umd}))
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.