vendor: 4,489 bytes, lines 1-99
1/*! 2 * Bootstrap v5.3.3 (https://getbootstrap.com/) 3 * Copyright 2011-2024 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(t, e) { 7 "object" == typeof exports && "undefined" != typeof module ? module.exports = e(require("@popperjs/core")) : "function" == typeof define && define.amd ? define(["@popperjs/core"], e) : (t = "undefined" != typeof globalThis ? globalThis : t || self).bootstrap = e(t.Popper) 8}(this, (function(t) { 9 "use strict"; 10 11 function e(t) { 12 const e = Object.create(null, { 13 [Symbol.toStringTag]: { 14 value: "Module" 15 } 16 }); 17 if (t) 18 for (const i in t) 19 if ("default" !== i) { 20 const s = Object.getOwnPropertyDescriptor(t, i); 21 Object.defineProperty(e, i, s.get ? s : { 22 enumerable: !0, 23 get: () => t[i] 24 }) 25 } 26 return e.default = t, Object.freeze(e) 27 } 28 const i = e(t), 29 s = new Map, 30 n = { 31 set(t, e, i) { 32 s.has(t) || s.set(t, new Map); 33 const n = s.get(t); 34 n.has(e) || 0 === n.size ? n.set(e, i) : console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`) 35 }, 36 get: (t, e) => s.has(t) && s.get(t).get(e) || null, 37 remove(t, e) { 38 if (!s.has(t)) return; 39 const i = s.get(t); 40 i.delete(e), 0 === i.size && s.delete(t) 41 } 42 }, 43 o = "transitionend", 44 r = t => (t && window.CSS && window.CSS.escape && (t = t.replace(/#([^\s"#']+)/g, ((t, e) => `#${CSS.escape(e)}`))), t), 45 a = t => { 46 t.dispatchEvent(new Event(o)) 47 }, 48 l = t => !(!t || "object" != typeof t) && (void 0 !== t.jquery && (t = t[0]), void 0 !== t.nodeType), 49 c = t => l(t) ? t.jquery ? t[0] : t : "string" == typeof t && t.length > 0 ? document.querySelector(r(t)) : null, 50 h = t => { 51 if (!l(t) || 0 === t.getClientRects().length) return !1; 52 const e = "visible" === getComputedStyle(t).getPropertyValue("visibility"), 53 i = t.closest("details:not([open])"); 54 if (!i) return e; 55 if (i !== t) { 56 const e = t.closest("summary"); 57 if (e && e.parentNode !== i) return !1; 58 if (null === e) return !1 59 } 60 return e 61 }, 62 d = t => !t || t.nodeType !== Node.ELEMENT_NODE || !!t.classList.contains("disabled") || (void 0 !== t.disabled ? t.disabled : t.hasAttribute("disabled") && "false" !== t.getAttribute("disabled")), 63 u = t => { 64 if (!document.documentElement.attachShadow) return null; 65 if ("function" == typeof t.getRootNode) { 66 const e = t.getRootNode(); 67 return e instanceof ShadowRoot ? e : null 68 } 69 return t instanceof ShadowRoot ? t : t.parentNode ? u(t.parentNode) : null 70 }, 71 _ = () => {}, 72 g = t => { 73 t.offsetHeight 74 }, 75 f = () => window.jQuery && !document.body.hasAttribute("data-bs-no-jquery") ? window.jQuery : null, 76 m = [], 77 p = () => "rtl" === document.documentElement.dir, 78 b = t => { 79 var e; 80 e = () => { 81 const e = f(); 82 if (e) { 83 const i = t.NAME, 84 s = e.fn[i]; 85 e.fn[i] = t.jQueryInterface, e.fn[i].Constructor = t, e.fn[i].noConflict = () => (e.fn[i] = s, t.jQueryInterface) 86 } 87 }, "loading" === document.readyState ? (m.length || document.addEventListener("DOMContentLoaded", (() => { 88 for (const t of m) t() 89 })), m.push(e)) : e() 90 }, 91 v = (t, e = [], i = t) => "function" == typeof t ? t(...e) : i, 92 y = (t, e, i = !0) => { 93 if (!i) return void v(t); 94 const s = (t => { 95 if (!t) return 0; 96 let { 97 transitionDuration: e, 98 transitionDelay: i 99 } = window.getComputedStyle(t);
vendor: 13,276 bytes, lines 100-430
100 const s = Number.parseFloat(e), 101 n = Number.parseFloat(i); 102 return s || n ? (e = e.split(",")[0], i = i.split(",")[0], 1e3 * (Number.parseFloat(e) + Number.parseFloat(i))) : 0 103 })(e) + 5; 104 let n = !1; 105 const r = ({ 106 target: i 107 }) => { 108 i === e && (n = !0, e.removeEventListener(o, r), v(t)) 109 }; 110 e.addEventListener(o, r), setTimeout((() => { 111 n || a(e) 112 }), s) 113 }, 114 w = (t, e, i, s) => { 115 const n = t.length; 116 let o = t.indexOf(e); 117 return -1 === o ? !i && s ? t[n - 1] : t[0] : (o += i ? 1 : -1, s && (o = (o + n) % n), t[Math.max(0, Math.min(o, n - 1))]) 118 }, 119 A = /[^.]*(?=\..*)\.|.*/, 120 E = /\..*/, 121 C = /::\d+$/, 122 T = {}; 123 let k = 1; 124 const $ = { 125 mouseenter: "mouseover", 126 mouseleave: "mouseout" 127 }, 128 S = 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"]); 129 130 function L(t, e) { 131 return e && `${e}::${k++}` || t.uidEvent || k++ 132 } 133 134 function O(t) { 135 const e = L(t); 136 return t.uidEvent = e, T[e] = T[e] || {}, T[e] 137 } 138 139 function I(t, e, i = null) { 140 return Object.values(t).find((t => t.callable === e && t.delegationSelector === i)) 141 } 142 143 function D(t, e, i) { 144 const s = "string" == typeof e, 145 n = s ? i : e || i; 146 let o = M(t); 147 return S.has(o) || (o = t), [s, n, o] 148 } 149 150 function N(t, e, i, s, n) { 151 if ("string" != typeof e || !t) return; 152 let [o, r, a] = D(e, i, s); 153 if (e in $) { 154 const t = t => function(e) { 155 if (!e.relatedTarget || e.relatedTarget !== e.delegateTarget && !e.delegateTarget.contains(e.relatedTarget)) return t.call(this, e) 156 }; 157 r = t(r) 158 } 159 const l = O(t), 160 c = l[a] || (l[a] = {}), 161 h = I(c, r, o ? i : null); 162 if (h) return void(h.oneOff = h.oneOff && n); 163 const d = L(r, e.replace(A, "")), 164 u = o ? function(t, e, i) { 165 return function s(n) { 166 const o = t.querySelectorAll(e); 167 for (let { 168 target: r 169 } = n; r && r !== this; r = r.parentNode) 170 for (const a of o) 171 if (a === r) return F(n, { 172 delegateTarget: r 173 }), s.oneOff && j.off(t, n.type, e, i), i.apply(r, [n]) 174 } 175 }(t, i, r) : function(t, e) { 176 return function i(s) { 177 return F(s, { 178 delegateTarget: t 179 }), i.oneOff && j.off(t, s.type, e), e.apply(t, [s]) 180 } 181 }(t, r); 182 u.delegationSelector = o ? i : null, u.callable = r, u.oneOff = n, u.uidEvent = d, c[d] = u, t.addEventListener(a, u, o) 183 } 184 185 function P(t, e, i, s, n) { 186 const o = I(e[i], s, n); 187 o && (t.removeEventListener(i, o, Boolean(n)), delete e[i][o.uidEvent]) 188 } 189 190 function x(t, e, i, s) { 191 const n = e[i] || {}; 192 for (const [o, r] of Object.entries(n)) o.includes(s) && P(t, e, i, r.callable, r.delegationSelector) 193 } 194 195 function M(t) { 196 return t = t.replace(E, ""), $[t] || t 197 } 198 const j = { 199 on(t, e, i, s) { 200 N(t, e, i, s, !1) 201 }, 202 one(t, e, i, s) { 203 N(t, e, i, s, !0) 204 }, 205 off(t, e, i, s) { 206 if ("string" != typeof e || !t) return; 207 const [n, o, r] = D(e, i, s), a = r !== e, l = O(t), c = l[r] || {}, h = e.startsWith("."); 208 if (void 0 === o) { 209 if (h) 210 for (const i of Object.keys(l)) x(t, l, i, e.slice(1)); 211 for (const [i, s] of Object.entries(c)) { 212 const n = i.replace(C, ""); 213 a && !e.includes(n) || P(t, l, r, s.callable, s.delegationSelector) 214 } 215 } else { 216 if (!Object.keys(c).length) return; 217 P(t, l, r, o, n ? i : null) 218 } 219 }, 220 trigger(t, e, i) { 221 if ("string" != typeof e || !t) return null; 222 const s = f(); 223 let n = null, 224 o = !0, 225 r = !0, 226 a = !1; 227 e !== M(e) && s && (n = s.Event(e, i), s(t).trigger(n), o = !n.isPropagationStopped(), r = !n.isImmediatePropagationStopped(), a = n.isDefaultPrevented()); 228 const l = F(new Event(e, { 229 bubbles: o, 230 cancelable: !0 231 }), i); 232 return a && l.preventDefault(), r && t.dispatchEvent(l), l.defaultPrevented && n && n.preventDefault(), l 233 } 234 }; 235 236 function F(t, e = {}) { 237 for (const [i, s] of Object.entries(e)) try { 238 t[i] = s 239 } catch (e) { 240 Object.defineProperty(t, i, { 241 configurable: !0, 242 get: () => s 243 }) 244 } 245 return t 246 } 247 248 function z(t) { 249 if ("true" === t) return !0; 250 if ("false" === t) return !1; 251 if (t === Number(t).toString()) return Number(t); 252 if ("" === t || "null" === t) return null; 253 if ("string" != typeof t) return t; 254 try { 255 return JSON.parse(decodeURIComponent(t)) 256 } catch (e) { 257 return t 258 } 259 } 260 261 function H(t) { 262 return t.replace(/[A-Z]/g, (t => `-${t.toLowerCase()}`)) 263 } 264 const B = { 265 setDataAttribute(t, e, i) { 266 t.setAttribute(`data-bs-${H(e)}`, i) 267 }, 268 removeDataAttribute(t, e) { 269 t.removeAttribute(`data-bs-${H(e)}`) 270 }, 271 getDataAttributes(t) { 272 if (!t) return {}; 273 const e = {}, 274 i = Object.keys(t.dataset).filter((t => t.startsWith("bs") && !t.startsWith("bsConfig"))); 275 for (const s of i) { 276 let i = s.replace(/^bs/, ""); 277 i = i.charAt(0).toLowerCase() + i.slice(1, i.length), e[i] = z(t.dataset[s]) 278 } 279 return e 280 }, 281 getDataAttribute: (t, e) => z(t.getAttribute(`data-bs-${H(e)}`)) 282 }; 283 class q { 284 static get Default() { 285 return {} 286 } 287 static get DefaultType() { 288 return {} 289 } 290 static get NAME() { 291 throw new Error('You have to implement the static method "NAME", for each component!') 292 } 293 _getConfig(t) { 294 return t = this._mergeConfigObj(t), t = this._configAfterMerge(t), this._typeCheckConfig(t), t 295 } 296 _configAfterMerge(t) { 297 return t 298 } 299 _mergeConfigObj(t, e) { 300 const i = l(e) ? B.getDataAttribute(e, "config") : {}; 301 return { ...this.constructor.Default, 302 ..."object" == typeof i ? i : {}, 303 ...l(e) ? B.getDataAttributes(e) : {}, 304 ..."object" == typeof t ? t : {} 305 } 306 } 307 _typeCheckConfig(t, e = this.constructor.DefaultType) { 308 for (const [s, n] of Object.entries(e)) { 309 const e = t[s], 310 o = l(e) ? "element" : null == (i = e) ? `${i}` : Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase(); 311 if (!new RegExp(n).test(o)) throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${s}" provided type "${o}" but expected type "${n}".`) 312 } 313 var i 314 } 315 } 316 class W extends q { 317 constructor(t, e) { 318 super(), (t = c(t)) && (this._element = t, this._config = this._getConfig(e), n.set(this._element, this.constructor.DATA_KEY, this)) 319 } 320 dispose() { 321 n.remove(this._element, this.constructor.DATA_KEY), j.off(this._element, this.constructor.EVENT_KEY); 322 for (const t of Object.getOwnPropertyNames(this)) this[t] = null 323 } 324 _queueCallback(t, e, i = !0) { 325 y(t, e, i) 326 } 327 _getConfig(t) { 328 return t = this._mergeConfigObj(t, this._element), t = this._configAfterMerge(t), this._typeCheckConfig(t), t 329 } 330 static getInstance(t) { 331 return n.get(c(t), this.DATA_KEY) 332 } 333 static getOrCreateInstance(t, e = {}) { 334 return this.getInstance(t) || new this(t, "object" == typeof e ? e : null) 335 } 336 static get VERSION() { 337 return "5.3.3" 338 } 339 static get DATA_KEY() { 340 return `bs.${this.NAME}` 341 } 342 static get EVENT_KEY() { 343 return `.${this.DATA_KEY}` 344 } 345 static eventName(t) { 346 return `${t}${this.EVENT_KEY}` 347 } 348 } 349 const R = t => { 350 let e = t.getAttribute("data-bs-target"); 351 if (!e || "#" === e) { 352 let i = t.getAttribute("href"); 353 if (!i || !i.includes("#") && !i.startsWith(".")) return null; 354 i.includes("#") && !i.startsWith("#") && (i = `#${i.split("#")[1]}`), e = i && "#" !== i ? i.trim() : null 355 } 356 return e ? e.split(",").map((t => r(t))).join(",") : null 357 }, 358 K = { 359 find: (t, e = document.documentElement) => [].concat(...Element.prototype.querySelectorAll.call(e, t)), 360 findOne: (t, e = document.documentElement) => Element.prototype.querySelector.call(e, t), 361 children: (t, e) => [].concat(...t.children).filter((t => t.matches(e))), 362 parents(t, e) { 363 const i = []; 364 let s = t.parentNode.closest(e); 365 for (; s;) i.push(s), s = s.parentNode.closest(e); 366 return i 367 }, 368 prev(t, e) { 369 let i = t.previousElementSibling; 370 for (; i;) { 371 if (i.matches(e)) return [i]; 372 i = i.previousElementSibling 373 } 374 return [] 375 }, 376 next(t, e) { 377 let i = t.nextElementSibling; 378 for (; i;) { 379 if (i.matches(e)) return [i]; 380 i = i.nextElementSibling 381 } 382 return [] 383 }, 384 focusableChildren(t) { 385 const e = ["a", "button", "input", "textarea", "select", "details", "[tabindex]", '[contenteditable="true"]'].map((t => `${t}:not([tabindex^="-"])`)).join(","); 386 return this.find(e, t).filter((t => !d(t) && h(t))) 387 }, 388 getSelectorFromElement(t) { 389 const e = R(t); 390 return e && K.findOne(e) ? e : null 391 }, 392 getElementFromSelector(t) { 393 const e = R(t); 394 return e ? K.findOne(e) : null 395 }, 396 getMultipleElementsFromSelector(t) { 397 const e = R(t); 398 return e ? K.find(e) : [] 399 } 400 }, 401 V = (t, e = "hide") => { 402 const i = `click.dismiss${t.EVENT_KEY}`, 403 s = t.NAME; 404 j.on(document, i, `[data-bs-dismiss="${s}"]`, (function(i) { 405 if (["A", "AREA"].includes(this.tagName) && i.preventDefault(), d(this)) return; 406 const n = K.getElementFromSelector(this) || this.closest(`.${s}`); 407 t.getOrCreateInstance(n)[e]() 408 })) 409 }, 410 Q = ".bs.alert", 411 X = `close${Q}`, 412 Y = `closed${Q}`; 413 class U extends W { 414 static get NAME() { 415 return "alert" 416 } 417 close() { 418 if (j.trigger(this._element, X).defaultPrevented) return; 419 this._element.classList.remove("show"); 420 const t = this._element.classList.contains("fade"); 421 this._queueCallback((() => this._destroyElement()), this._element, t) 422 } 423 _destroyElement() { 424 this._element.remove(), j.trigger(this._element, Y), this.dispose() 425 } 426 static jQueryInterface(t) { 427 return this.each((function() { 428 const e = U.getOrCreateInstance(this); 429 if ("string" == typeof t) { 430 if (void 0 === e[t] || t.startsWith("_") || "constructor" === t) throw new TypeError(`No method n
430amed "${t}"`); 431 e[t](this) 432 } 433 })) 434 } 435 } 436 V(U, "close"), b(U); 437 const G = '[data-bs-toggle="button"]'; 438 class J extends W { 439 static get NAME() { 440 return "button" 441 } 442 toggle() { 443 this._element.setAttribute("aria-pressed", this._element.classList.toggle("active")) 444 } 445 static jQueryInterface(t) { 446 return this.each((function() { 447 const e = J.getOrCreateInstance(this); 448 "toggle" === t && e[t]() 449 })) 450 } 451 } 452 j.on(document, "click.bs.button.data-api", G, (t => { 453 t.preventDefault(); 454 const e = t.target.closest(G); 455 J.getOrCreateInstance(e).toggle() 456 })), b(J); 457 const Z = ".bs.swipe", 458 tt = `touchstart${Z}`, 459 et = `touchmove${Z}`, 460 it = `touchend${Z}`, 461 st = `pointerdown${Z}`, 462 nt = `pointerup${Z}`, 463 ot = { 464 endCallback: null, 465 leftCallback: null, 466 rightCallback: null 467 }, 468 rt = { 469 endCallback: "(function|null)", 470 leftCallback: "(function|null)", 471 rightCallback: "(function|null)" 472 }; 473 class at extends q { 474 constructor(t, e) { 475 super(), this._element = t, t && at.isSupported() && (this._config = this._getConfig(e), this._deltaX = 0, this._supportPointerEvents = Boolean(window.PointerEvent), this._initEvents()) 476 } 477 static get Default() { 478 return ot 479 } 480 static get DefaultType() { 481 return rt 482 } 483 static get NAME() { 484 return "swipe" 485 } 486 dispose() { 487 j.off(this._element, Z) 488 } 489 _start(t) { 490 this._supportPointerEvents ? this._eventIsPointerPenTouch(t) && (this._deltaX = t.clientX) : this._deltaX = t.touches[0].clientX 491 } 492 _end(t) { 493 this._eventIsPointerPenTouch(t) && (this._deltaX = t.clientX - this._deltaX), this._handleSwipe(), v(this._config.endCallback) 494 } 495 _move(t) { 496 this._deltaX = t.touches && t.touches.length > 1 ? 0 : t.touches[0].clientX - this._deltaX 497 } 498 _handleSwipe() { 499 const t = Math.abs(this._deltaX); 500 if (t <= 40) return; 501 const e = t / this._deltaX; 502 this._deltaX = 0, e && v(e > 0 ? this._config.rightCallback : this._config.leftCallback) 503 } 504 _initEvents() { 505 this._supportPointerEvents ? (j.on(this._element, st, (t => this._start(t))), j.on(this._element, nt, (t => this._end(t))), this._element.classList.add("pointer-event")) : (j.on(this._element, tt, (t => this._start(t))), j.on(this._element, et, (t => this._move(t))), j.on(this._element, it, (t => this._end(t)))) 506 } 507 _eventIsPointerPenTouch(t) { 508 return this._supportPointerEvents && ("pen" === t.pointerType || "touch" === t.pointerType) 509 } 510 static isSupported() { 511 return "ontouchstart" in document.documentElement || navigator.maxTouchPoints > 0 512 } 513 } 514 const lt = ".bs.carousel", 515 ct = ".data-api", 516 ht = "next", 517 dt = "prev", 518 ut = "left", 519 _t = "right", 520 gt = `slide${lt}`, 521 ft = `slid${lt}`, 522 mt = `keydown${lt}`, 523 pt = `mouseenter${lt}`, 524 bt = `mouseleave${lt}`, 525 vt = `dragstart${lt}`, 526 yt = `load${lt}${ct}`, 527 wt = `click${lt}${ct}`, 528 At = "carousel", 529 Et = "active", 530 Ct = ".active", 531 Tt = ".carousel-item", 532 kt = Ct + Tt, 533 $t = { 534 ArrowLeft: _t, 535 ArrowRight: ut 536 }, 537 St = { 538 interval: 5e3, 539 keyboard: !0, 540 pause: "hover", 541 ride: !1, 542 touch: !0, 543 wrap: !0 544 }, 545 Lt = { 546 interval: "(number|boolean)", 547 keyboard: "boolean", 548 pause: "(string|boolean)", 549 ride: "(boolean|string)", 550 touch: "boolean", 551 wrap: "boolean" 552 }; 553 class Ot extends W { 554 constructor(t, e) { 555 super(t, e), this._interval = null, this._activeElement = null, this._isSliding = !1, this.touchTimeout = null, this._swipeHelper = null, this._indicatorsElement = K.findOne(".carousel-indicators", this._element), this._addEventListeners(), this._config.ride === At && this.cycle() 556 } 557 static get Default() { 558 return St 559 } 560 static get DefaultType() { 561 return Lt 562 } 563 static get NAME() { 564 return "carousel" 565 } 566 next() { 567 this._slide(ht) 568 } 569 nextWhenVisible() { 570 !document.hidden && h(this._element) && this.next() 571 } 572 prev() { 573 this._slide(dt) 574 } 575 pause() { 576 this._isSliding && a(this._element), this._clearInterval() 577 } 578 cycle() { 579 this._clearInterval(), this._updateInterval(), this._interval = setInterval((() => this.nextWhenVisible()), this._config.interval) 580 } 581 _maybeEnableCycle() { 582 this._config.ride && (this._isSliding ? j.one(this._element, ft, (() => this.cycle())) : this.cycle()) 583 } 584 to(t) { 585 const e = this._getItems();
vendor: 4,760 bytes, lines 586-680
586 if (t > e.length - 1 || t < 0) return; 587 if (this._isSliding) return void j.one(this._element, ft, (() => this.to(t))); 588 const i = this._getItemIndex(this._getActive()); 589 if (i === t) return; 590 const s = t > i ? ht : dt; 591 this._slide(s, e[t]) 592 } 593 dispose() { 594 this._swipeHelper && this._swipeHelper.dispose(), super.dispose() 595 } 596 _configAfterMerge(t) { 597 return t.defaultInterval = t.interval, t 598 } 599 _addEventListeners() { 600 this._config.keyboard && j.on(this._element, mt, (t => this._keydown(t))), "hover" === this._config.pause && (j.on(this._element, pt, (() => this.pause())), j.on(this._element, bt, (() => this._maybeEnableCycle()))), this._config.touch && at.isSupported() && this._addTouchEventListeners() 601 } 602 _addTouchEventListeners() { 603 for (const t of K.find(".carousel-item img", this._element)) j.on(t, vt, (t => t.preventDefault())); 604 const t = { 605 leftCallback: () => this._slide(this._directionToOrder(ut)), 606 rightCallback: () => this._slide(this._directionToOrder(_t)), 607 endCallback: () => { 608 "hover" === this._config.pause && (this.pause(), this.touchTimeout && clearTimeout(this.touchTimeout), this.touchTimeout = setTimeout((() => this._maybeEnableCycle()), 500 + this._config.interval)) 609 } 610 }; 611 this._swipeHelper = new at(this._element, t) 612 } 613 _keydown(t) { 614 if (/input|textarea/i.test(t.target.tagName)) return; 615 const e = $t[t.key]; 616 e && (t.preventDefault(), this._slide(this._directionToOrder(e))) 617 } 618 _getItemIndex(t) { 619 return this._getItems().indexOf(t) 620 } 621 _setActiveIndicatorElement(t) { 622 if (!this._indicatorsElement) return; 623 const e = K.findOne(Ct, this._indicatorsElement); 624 e.classList.remove(Et), e.removeAttribute("aria-current"); 625 const i = K.findOne(`[data-bs-slide-to="${t}"]`, this._indicatorsElement); 626 i && (i.classList.add(Et), i.setAttribute("aria-current", "true")) 627 } 628 _updateInterval() { 629 const t = this._activeElement || this._getActive(); 630 if (!t) return; 631 const e = Number.parseInt(t.getAttribute("data-bs-interval"), 10); 632 this._config.interval = e || this._config.defaultInterval 633 } 634 _slide(t, e = null) { 635 if (this._isSliding) return; 636 const i = this._getActive(), 637 s = t === ht, 638 n = e || w(this._getItems(), i, s, this._config.wrap); 639 if (n === i) return; 640 const o = this._getItemIndex(n), 641 r = e => j.trigger(this._element, e, { 642 relatedTarget: n, 643 direction: this._orderToDirection(t), 644 from: this._getItemIndex(i), 645 to: o 646 }); 647 if (r(gt).defaultPrevented) return; 648 if (!i || !n) return; 649 const a = Boolean(this._interval); 650 this.pause(), this._isSliding = !0, this._setActiveIndicatorElement(o), this._activeElement = n; 651 const l = s ? "carousel-item-start" : "carousel-item-end", 652 c = s ? "carousel-item-next" : "carousel-item-prev"; 653 n.classList.add(c), g(n), i.classList.add(l), n.classList.add(l), this._queueCallback((() => { 654 n.classList.remove(l, c), n.classList.add(Et), i.classList.remove(Et, c, l), this._isSliding = !1, r(ft) 655 }), i, this._isAnimated()), a && this.cycle() 656 } 657 _isAnimated() { 658 return this._element.classList.contains("slide") 659 } 660 _getActive() { 661 return K.findOne(kt, this._element) 662 } 663 _getItems() { 664 return K.find(Tt, this._element) 665 } 666 _clearInterval() { 667 this._interval && (clearInterval(this._interval), this._interval = null) 668 } 669 _directionToOrder(t) { 670 return p() ? t === ut ? dt : ht : t === ut ? ht : dt 671 } 672 _orderToDirection(t) { 673 return p() ? t === dt ? ut : _t : t === dt ? _t : ut 674 } 675 static jQueryInterface(t) { 676 return this.each((function() { 677 const e = Ot.getOrCreateInstance(this, t); 678 if ("number" != typeof t) { 679 if ("string" == typeof t) { 680 if (void 0 === e[t] || t.startsWith("_") || "constructor" === t) throw new TypeError(`No method n
680amed "${t}"`); 681 e[t]() 682 } 683 } else e.to(t) 684 })) 685 } 686 } 687 j.on(document, wt, "[data-bs-slide], [data-bs-slide-to]", (function(t) { 688 const e = K.getElementFromSelector(this); 689 if (!e || !e.classList.contains(At)) return; 690 t.preventDefault(); 691 const i = Ot.getOrCreateInstance(e), 692 s = this.getAttribute("data-bs-slide-to"); 693 return s ? (i.to(s), void i._maybeEnableCycle()) : "next" === B.getDataAttribute(this, "slide") ? (i.next(), void i._maybeEnableCycle()) : (i.prev(), void i._maybeEnableCycle()) 694 })), j.on(window, yt, (() => { 695 const t = K.find('[data-bs-ride="carousel"]'); 696 for (const e of t) Ot.getOrCreateInstance(e) 697 })), b(Ot); 698 const It = ".bs.collapse", 699 Dt = `show${It}`, 700 Nt = `shown${It}`, 701 Pt = `hide${It}`, 702 xt = `hidden${It}`, 703 Mt = `click${It}.data-api`, 704 jt = "show", 705 Ft = "collapse", 706 zt = "collapsing", 707 Ht = `:scope .${Ft} .${Ft}`, 708 Bt = '[data-bs-toggle="collapse"]', 709 qt = { 710 parent: null, 711 toggle: !0 712 }, 713 Wt = { 714 parent: "(null|element)", 715 toggle: "boolean" 716 }; 717 class Rt extends W { 718 constructor(t, e) { 719 super(t, e), this._isTransitioning = !1, this._triggerArray = []; 720 const i = K.find(Bt); 721 for (const t of i) { 722 const e = K.getSelectorFromElement(t), 723 i = K.find(e).filter((t => t === this._element)); 724 null !== e && i.length && this._triggerArray.push(t) 725 } 726 this._initializeChildren(), this._config.parent || this._addAriaAndCollapsedClass(this._triggerArray, this._isShown()), this._config.toggle && this.toggle() 727 } 728 static get Default() { 729 return qt 730 } 731 static get DefaultType() { 732 return Wt 733 } 734 static get NAME() { 735 return "collapse" 736 } 737 toggle() { 738 this._isShown() ? this.hide() : this.show() 739 } 740 show() { 741 if (this._isTransitioning || this._isShown()) return; 742 let t = []; 743 if (this._config.parent && (t = this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t => t !== this._element)).map((t => Rt.getOrCreateInstance(t, { 744 toggle: !1 745 })))), t.length && t[0]._isTransitioning) return; 746 if (j.trigger(this._element, Dt).defaultPrevented) return; 747 for (const e of t) e.hide(); 748 const e = this._getDimension(); 749 this._element.classList.remove(Ft), this._element.classList.add(zt), this._element.style[e] = 0, this._addAriaAndCollapsedClass(this._triggerArray, !0), this._isTransitioning = !0; 750 const i = `scroll${e[0].toUpperCase()+e.slice(1)}`; 751 this._queueCallback((() => { 752 this._isTransitioning = !1, this._element.classList.remove(zt), this._element.classList.add(Ft, jt), this._element.style[e] = "", j.trigger(this._element, Nt) 753 }), this._element, !0), this._element.style[e] = `${this._element[i]}px` 754 } 755 hide() { 756 if (this._isTransitioning || !this._isShown()) return; 757 if (j.trigger(this._element, Pt).defaultPrevented) return; 758 const t = this._getDimension(); 759 this._element.style[t] = `${this._element.getBoundingClientRect()[t]}px`, g(this._element), this._element.classList.add(zt), this._element.classList.remove(Ft, jt); 760 for (const t of this._triggerArray) { 761 const e = K.getElementFromSelector(t); 762 e && !this._isShown(e) && this._addAriaAndCollapsedClass([t], !1) 763 } 764 this._isTransitioning = !0, this._element.style[t] = "", this._queueCallback((() => { 765 this._isTransitioning = !1, this._element.classList.remove(zt), this._element.classList.add(Ft), j.trigger(this._element, xt) 766 }), this._element, !0) 767 } 768 _isShown(t = this._element) { 769 return t.classList.contains(jt) 770 } 771 _configAfterMerge(t) { 772 return t.toggle = Boolean(t.toggle), t.parent = c(t.parent), t 773 } 774 _getDimension() { 775 return this._element.classList.contains("collapse-horizontal") ? "width" : "height" 776 } 777 _initializeChildren() { 778 if (!this._config.parent) return; 779 const t = this._getFirstLevelChildren(Bt); 780 for (const e of t) { 781 const t = K.getElementFromSelector(e); 782 t && this._addAriaAndCollapsedClass([e], this._isShown(t)) 783 } 784 } 785 _getFirstLevelChildren(t) { 786 const e = K.find(Ht, this._config.parent); 787 return K.find(t, this._config.parent).filter((t => !e.includes(t))) 788 } 789 _addAriaAndCollapsedClass(t, e) { 790 if (t.length) 791 for (const i of t) i.classList.toggle("collapsed", !e), i.setAttribute("aria-expanded", e) 792 } 793 static jQueryInterface(t) { 794 const e = {}; 795 return "string" == typeof t && /show|hide/.test(t) && (e.toggle = !1), this.each((function() { 796 const i = Rt.getOrCreateInstance(this, e); 797 if ("string" == typeof t) { 798 if (void 0 === i[t]) throw new TypeError(`No method n
798amed "${t}"`); 799 i[t]() 800 } 801 })) 802 } 803 } 804 j.on(document, Mt, Bt, (function(t) { 805 ("A" === t.target.tagName || t.delegateTarget && "A" === t.delegateTarget.tagName) && t.preventDefault(); 806 for (const t of K.getMultipleElementsFromSelector(this)) Rt.getOrCreateInstance(t, { 807 toggle: !1 808 }).toggle() 809 })), b(Rt); 810 const Kt = "dropdown", 811 Vt = ".bs.dropdown", 812 Qt = ".data-api", 813 Xt = "ArrowUp", 814 Yt = "ArrowDown", 815 Ut = `hide${Vt}`, 816 Gt = `hidden${Vt}`, 817 Jt = `show${Vt}`, 818 Zt = `shown${Vt}`, 819 te = `click${Vt}${Qt}`, 820 ee = `keydown${Vt}${Qt}`, 821 ie = `keyup${Vt}${Qt}`, 822 se = "show", 823 ne = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)', 824 oe = `${ne}.${se}`, 825 re = ".dropdown-menu", 826 ae = p() ? "top-end" : "top-start", 827 le = p() ? "top-start" : "top-end", 828 ce = p() ? "bottom-end" : "bottom-start", 829 he = p() ? "bottom-start" : "bottom-end", 830 de = p() ? "left-start" : "right-start", 831 ue = p() ? "right-start" : "left-start", 832 _e = { 833 autoClose: !0, 834 boundary: "clippingParents", 835 display: "dynamic", 836 offset: [0, 2], 837 popperConfig: null, 838 reference: "toggle" 839 }, 840 ge = { 841 autoClose: "(boolean|string)", 842 boundary: "(string|element)", 843 display: "string", 844 offset: "(array|string|function)", 845 popperConfig: "(null|object|function)", 846 reference: "(string|element|object)" 847 }; 848 class fe extends W { 849 constructor(t, e) { 850 super(t, e), this._popper = null, this._parent = this._element.parentNode, this._menu = K.next(this._element, re)[0] || K.prev(this._element, re)[0] || K.findOne(re, this._parent), this._inNavbar = this._detectNavbar() 851 } 852 static get Default() { 853 return _e 854 } 855 static get DefaultType() { 856 return ge 857 } 858 static get NAME() { 859 return Kt 860 } 861 toggle() { 862 return this._isShown() ? this.hide() : this.show() 863 } 864 show() { 865 if (d(this._element) || this._isShown()) return; 866 const t = { 867 relatedTarget: this._element 868 }; 869 if (!j.trigger(this._element, Jt, t).defaultPrevented) { 870 if (this._createPopper(), "ontouchstart" in document.documentElement && !this._parent.closest(".
vendor: 2,798 bytes, lines 870-918
870navbar-nav")) 871 for (const t of [].concat(...document.body.children)) j.on(t, "mouseover", _); 872 this._element.focus(), this._element.setAttribute("aria-expanded", !0), this._menu.classList.add(se), this._element.classList.add(se), j.trigger(this._element, Zt, t) 873 } 874 } 875 hide() { 876 if (d(this._element) || !this._isShown()) return; 877 const t = { 878 relatedTarget: this._element 879 }; 880 this._completeHide(t) 881 } 882 dispose() { 883 this._popper && this._popper.destroy(), super.dispose() 884 } 885 update() { 886 this._inNavbar = this._detectNavbar(), this._popper && this._popper.update() 887 } 888 _completeHide(t) { 889 if (!j.trigger(this._element, Ut, t).defaultPrevented) { 890 if ("ontouchstart" in document.documentElement) 891 for (const t of [].concat(...document.body.children)) j.off(t, "mouseover", _); 892 this._popper && this._popper.destroy(), this._menu.classList.remove(se), this._element.classList.remove(se), this._element.setAttribute("aria-expanded", "false"), B.removeDataAttribute(this._menu, "popper"), j.trigger(this._element, Gt, t) 893 } 894 } 895 _getConfig(t) { 896 if ("object" == typeof(t = super._getConfig(t)).reference && !l(t.reference) && "function" != typeof t.reference.getBoundingClientRect) throw new TypeError(`${Kt.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`); 897 return t 898 } 899 _createPopper() { 900 if (void 0 === i) throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)"); 901 let t = this._element; 902 "parent" === this._config.reference ? t = this._parent : l(this._config.reference) ? t = c(this._config.reference) : "object" == typeof this._config.reference && (t = this._config.reference); 903 const e = this._getPopperConfig(); 904 this._popper = i.createPopper(t, this._menu, e) 905 } 906 _isShown() { 907 return this._menu.classList.contains(se) 908 } 909 _getPlacement() { 910 const t = this._parent; 911 if (t.classList.contains("dropend")) return de; 912 if (t.classList.contains("dropstart")) return ue; 913 if (t.classList.contains("dropup-center")) return "top"; 914 if (t.classList.contains("dropdown-center")) return "bottom"; 915 const e = "end" === getComputedStyle(this._menu).getPropertyValue("--bs-position").trim(); 916 return t.classList.contains("dropup") ? e ? le : ae : e ? he : ce 917 } 918 _detectNavbar() {
vendor: 6,474 bytes, lines 919-1081
919 return null !== this._element.closest(".navbar") 920 } 921 _getOffset() { 922 const { 923 offset: t 924 } = this._config; 925 return "string" == typeof t ? t.split(",").map((t => Number.parseInt(t, 10))) : "function" == typeof t ? e => t(e, this._element) : t 926 } 927 _getPopperConfig() { 928 const t = { 929 placement: this._getPlacement(), 930 modifiers: [{ 931 name: "preventOverflow", 932 options: { 933 boundary: this._config.boundary 934 } 935 }, { 936 name: "offset", 937 options: { 938 offset: this._getOffset() 939 } 940 }] 941 }; 942 return (this._inNavbar || "static" === this._config.display) && (B.setDataAttribute(this._menu, "popper", "static"), t.modifiers = [{ 943 name: "applyStyles", 944 enabled: !1 945 }]), { ...t, 946 ...v(this._config.popperConfig, [t]) 947 } 948 } 949 _selectMenuItem({ 950 key: t, 951 target: e 952 }) { 953 const i = K.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)", this._menu).filter((t => h(t))); 954 i.length && w(i, e, t === Yt, !i.includes(e)).focus() 955 } 956 static jQueryInterface(t) { 957 return this.each((function() { 958 const e = fe.getOrCreateInstance(this, t); 959 if ("string" == typeof t) { 960 if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`); 961 e[t]() 962 } 963 })) 964 } 965 static clearMenus(t) { 966 if (2 === t.button || "keyup" === t.type && "Tab" !== t.key) return; 967 const e = K.find(oe); 968 for (const i of e) { 969 const e = fe.getInstance(i); 970 if (!e || !1 === e._config.autoClose) continue; 971 const s = t.composedPath(), 972 n = s.includes(e._menu); 973 if (s.includes(e._element) || "inside" === e._config.autoClose && !n || "outside" === e._config.autoClose && n) continue; 974 if (e._menu.contains(t.target) && ("keyup" === t.type && "Tab" === t.key || /input|select|option|textarea|form/i.test(t.target.tagName))) continue; 975 const o = { 976 relatedTarget: e._element 977 }; 978 "click" === t.type && (o.clickEvent = t), e._completeHide(o) 979 } 980 } 981 static dataApiKeydownHandler(t) { 982 const e = /input|textarea/i.test(t.target.tagName), 983 i = "Escape" === t.key, 984 s = [Xt, Yt].includes(t.key); 985 if (!s && !i) return; 986 if (e && !i) return; 987 t.preventDefault(); 988 const n = this.matches(ne) ? this : K.prev(this, ne)[0] || K.next(this, ne)[0] || K.findOne(ne, t.delegateTarget.parentNode), 989 o = fe.getOrCreateInstance(n); 990 if (s) return t.stopPropagation(), o.show(), void o._selectMenuItem(t); 991 o._isShown() && (t.stopPropagation(), o.hide(), n.focus()) 992 } 993 } 994 j.on(document, ee, ne, fe.dataApiKeydownHandler), j.on(document, ee, re, fe.dataApiKeydownHandler), j.on(document, te, fe.clearMenus), j.on(document, ie, fe.clearMenus), j.on(document, te, ne, (function(t) { 995 t.preventDefault(), fe.getOrCreateInstance(this).toggle() 996 })), b(fe); 997 const me = "backdrop", 998 pe = "show", 999 be = `mousedown.bs.${me}`, 1000 ve = { 1001 className: "modal-backdrop", 1002 clickCallback: null, 1003 isAnimated: !1, 1004 isVisible: !0, 1005 rootElement: "body" 1006 }, 1007 ye = { 1008 className: "string", 1009 clickCallback: "(function|null)", 1010 isAnimated: "boolean", 1011 isVisible: "boolean", 1012 rootElement: "(element|string)" 1013 }; 1014 class we extends q { 1015 constructor(t) { 1016 super(), this._config = this._getConfig(t), this._isAppended = !1, this._element = null 1017 } 1018 static get Default() { 1019 return ve 1020 } 1021 static get DefaultType() { 1022 return ye 1023 } 1024 static get NAME() { 1025 return me 1026 } 1027 show(t) { 1028 if (!this._config.isVisible) return void v(t); 1029 this._append(); 1030 const e = this._getElement(); 1031 this._config.isAnimated && g(e), e.classList.add(pe), this._emulateAnimation((() => { 1032 v(t) 1033 })) 1034 } 1035 hide(t) { 1036 this._config.isVisible ? (this._getElement().classList.remove(pe), this._emulateAnimation((() => { 1037 this.dispose(), v(t) 1038 }))) : v(t) 1039 } 1040 dispose() { 1041 this._isAppended && (j.off(this._element, be), this._element.remove(), this._isAppended = !1) 1042 } 1043 _getElement() { 1044 if (!this._element) { 1045 const t = document.createElement("div"); 1046 t.className = this._config.className, this._config.isAnimated && t.classList.add("fade"), this._element = t 1047 } 1048 return this._element 1049 } 1050 _configAfterMerge(t) { 1051 return t.rootElement = c(t.rootElement), t 1052 } 1053 _append() { 1054 if (this._isAppended) return; 1055 const t = this._getElement(); 1056 this._config.rootElement.append(t), j.on(t, be, (() => { 1057 v(this._config.clickCallback) 1058 })), this._isAppended = !0 1059 } 1060 _emulateAnimation(t) { 1061 y(t, this._getElement(), this._config.isAnimated) 1062 } 1063 } 1064 const Ae = ".bs.focustrap", 1065 Ee = `focusin${Ae}`, 1066 Ce = `keydown.tab${Ae}`, 1067 Te = "backward", 1068 ke = { 1069 autofocus: !0, 1070 trapElement: null 1071 }, 1072 $e = { 1073 autofocus: "boolean", 1074 trapElement: "element" 1075 }; 1076 class Se extends q { 1077 constructor(t) { 1078 super(), this._config = this._getConfig(t), this._isActive = !1, this._lastTabNavDirection = null 1079 } 1080 static get Default() { 1081 return ke
vendor: 3,638 bytes, lines 1082-1169
1082 } 1083 static get DefaultType() { 1084 return $e 1085 } 1086 static get NAME() { 1087 return "focustrap" 1088 } 1089 activate() { 1090 this._isActive || (this._config.autofocus && this._config.trapElement.focus(), j.off(document, Ae), j.on(document, Ee, (t => this._handleFocusin(t))), j.on(document, Ce, (t => this._handleKeydown(t))), this._isActive = !0) 1091 } 1092 deactivate() { 1093 this._isActive && (this._isActive = !1, j.off(document, Ae)) 1094 } 1095 _handleFocusin(t) { 1096 const { 1097 trapElement: e 1098 } = this._config; 1099 if (t.target === document || t.target === e || e.contains(t.target)) return; 1100 const i = K.focusableChildren(e); 1101 0 === i.length ? e.focus() : this._lastTabNavDirection === Te ? i[i.length - 1].focus() : i[0].focus() 1102 } 1103 _handleKeydown(t) { 1104 "Tab" === t.key && (this._lastTabNavDirection = t.shiftKey ? Te : "forward") 1105 } 1106 } 1107 const Le = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top", 1108 Oe = ".sticky-top", 1109 Ie = "padding-right", 1110 De = "margin-right"; 1111 class Ne { 1112 constructor() { 1113 this._element = document.body 1114 } 1115 getWidth() { 1116 const t = document.documentElement.clientWidth; 1117 return Math.abs(window.innerWidth - t) 1118 } 1119 hide() { 1120 const t = this.getWidth(); 1121 this._disableOverFlow(), this._setElementAttributes(this._element, Ie, (e => e + t)), this._setElementAttributes(Le, Ie, (e => e + t)), this._setElementAttributes(Oe, De, (e => e - t)) 1122 } 1123 reset() { 1124 this._resetElementAttributes(this._element, "overflow"), this._resetElementAttributes(this._element, Ie), this._resetElementAttributes(Le, Ie), this._resetElementAttributes(Oe, De) 1125 } 1126 isOverflowing() { 1127 return this.getWidth() > 0 1128 } 1129 _disableOverFlow() { 1130 this._saveInitialAttribute(this._element, "overflow"), this._element.style.overflow = "hidden" 1131 } 1132 _setElementAttributes(t, e, i) { 1133 const s = this.getWidth(); 1134 this._applyManipulationCallback(t, (t => { 1135 if (t !== this._element && window.innerWidth > t.clientWidth + s) return; 1136 this._saveInitialAttribute(t, e); 1137 const n = window.getComputedStyle(t).getPropertyValue(e); 1138 t.style.setProperty(e, `${i(Number.parseFloat(n))}px`) 1139 })) 1140 } 1141 _saveInitialAttribute(t, e) { 1142 const i = t.style.getPropertyValue(e); 1143 i && B.setDataAttribute(t, e, i) 1144 } 1145 _resetElementAttributes(t, e) { 1146 this._applyManipulationCallback(t, (t => { 1147 const i = B.getDataAttribute(t, e); 1148 null !== i ? (B.removeDataAttribute(t, e), t.style.setProperty(e, i)) : t.style.removeProperty(e) 1149 })) 1150 } 1151 _applyManipulationCallback(t, e) { 1152 if (l(t)) e(t); 1153 else 1154 for (const i of K.find(t, this._element)) e(i) 1155 } 1156 } 1157 const Pe = ".bs.modal", 1158 xe = `hide${Pe}`, 1159 Me = `hidePrevented${Pe}`, 1160 je = `hidden${Pe}`, 1161 Fe = `show${Pe}`, 1162 ze = `shown${Pe}`, 1163 He = `resize${Pe}`, 1164 Be = `click.dismiss${Pe}`, 1165 qe = `mousedown.dismiss${Pe}`, 1166 We = `keydown.dismiss${Pe}`, 1167 Re = `click${Pe}.data-api`, 1168 Ke = "modal-open", 1169 Ve = "show",
vendor: 5,694 bytes, lines 1170-1280
1170 Qe = "modal-static", 1171 Xe = { 1172 backdrop: !0, 1173 focus: !0, 1174 keyboard: !0 1175 }, 1176 Ye = { 1177 backdrop: "(boolean|string)", 1178 focus: "boolean", 1179 keyboard: "boolean" 1180 }; 1181 class Ue extends W { 1182 constructor(t, e) { 1183 super(t, e), this._dialog = K.findOne(".modal-dialog", this._element), this._backdrop = this._initializeBackDrop(), this._focustrap = this._initializeFocusTrap(), this._isShown = !1, this._isTransitioning = !1, this._scrollBar = new Ne, this._addEventListeners() 1184 } 1185 static get Default() { 1186 return Xe 1187 } 1188 static get DefaultType() { 1189 return Ye 1190 } 1191 static get NAME() { 1192 return "modal" 1193 } 1194 toggle(t) { 1195 return this._isShown ? this.hide() : this.show(t) 1196 } 1197 show(t) { 1198 this._isShown || this._isTransitioning || j.trigger(this._element, Fe, { 1199 relatedTarget: t 1200 }).defaultPrevented || (this._isShown = !0, this._isTransitioning = !0, this._scrollBar.hide(), document.body.classList.add(Ke), this._adjustDialog(), this._backdrop.show((() => this._showElement(t)))) 1201 } 1202 hide() { 1203 this._isShown && !this._isTransitioning && (j.trigger(this._element, xe).defaultPrevented || (this._isShown = !1, this._isTransitioning = !0, this._focustrap.deactivate(), this._element.classList.remove(Ve), this._queueCallback((() => this._hideModal()), this._element, this._isAnimated()))) 1204 } 1205 dispose() { 1206 j.off(window, Pe), j.off(this._dialog, Pe), this._backdrop.dispose(), this._focustrap.deactivate(), super.dispose() 1207 } 1208 handleUpdate() { 1209 this._adjustDialog() 1210 } 1211 _initializeBackDrop() { 1212 return new we({ 1213 isVisible: Boolean(this._config.backdrop), 1214 isAnimated: this._isAnimated() 1215 }) 1216 } 1217 _initializeFocusTrap() { 1218 return new Se({ 1219 trapElement: this._element 1220 }) 1221 } 1222 _showElement(t) { 1223 document.body.contains(this._element) || document.body.append(this._element), this._element.style.display = "block", this._element.removeAttribute("aria-hidden"), this._element.setAttribute("aria-modal", !0), this._element.setAttribute("role", "dialog"), this._element.scrollTop = 0; 1224 const e = K.findOne(".modal-body", this._dialog); 1225 e && (e.scrollTop = 0), g(this._element), this._element.classList.add(Ve), this._queueCallback((() => { 1226 this._config.focus && this._focustrap.activate(), this._isTransitioning = !1, j.trigger(this._element, ze, { 1227 relatedTarget: t 1228 }) 1229 }), this._dialog, this._isAnimated()) 1230 } 1231 _addEventListeners() { 1232 j.on(this._element, We, (t => { 1233 "Escape" === t.key && (this._config.keyboard ? this.hide() : this._triggerBackdropTransition()) 1234 })), j.on(window, He, (() => { 1235 this._isShown && !this._isTransitioning && this._adjustDialog() 1236 })), j.on(this._element, qe, (t => { 1237 j.one(this._element, Be, (e => { 1238 this._element === t.target && this._element === e.target && ("static" !== this._config.backdrop ? this._config.backdrop && this.hide() : this._triggerBackdropTransition()) 1239 })) 1240 })) 1241 } 1242 _hideModal() { 1243 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((() => { 1244 document.body.classList.remove(Ke), this._resetAdjustments(), this._scrollBar.reset(), j.trigger(this._element, je) 1245 })) 1246 } 1247 _isAnimated() { 1248 return this._element.classList.contains("fade") 1249 } 1250 _triggerBackdropTransition() { 1251 if (j.trigger(this._element, Me).defaultPrevented) return; 1252 const t = this._element.scrollHeight > document.documentElement.clientHeight, 1253 e = this._element.style.overflowY; 1254 "hidden" === e || this._element.classList.contains(Qe) || (t || (this._element.style.overflowY = "hidden"), this._element.classList.add(Qe), this._queueCallback((() => { 1255 this._element.classList.remove(Qe), this._queueCallback((() => { 1256 this._element.style.overflowY = e 1257 }), this._dialog) 1258 }), this._dialog), this._element.focus()) 1259 } 1260 _adjustDialog() { 1261 const t = this._element.scrollHeight > document.documentElement.clientHeight, 1262 e = this._scrollBar.getWidth(), 1263 i = e > 0; 1264 if (i && !t) { 1265 const t = p() ? "paddingLeft" : "paddingRight"; 1266 this._element.style[t] = `${e}px` 1267 } 1268 if (!i && t) { 1269 const t = p() ? "paddingRight" : "paddingLeft"; 1270 this._element.style[t] = `${e}px` 1271 } 1272 } 1273 _resetAdjustments() { 1274 this._element.style.paddingLeft = "", this._element.style.paddingRight = "" 1275 } 1276 static jQueryInterface(t, e) { 1277 return this.each((function() { 1278 const i = Ue.getOrCreateInstance(this, t); 1279 if ("string" == typeof t) { 1280 if (void 0 === i[t]) throw new TypeError(`No method n
1280amed "${t}"`); 1281 i[t](e) 1282 } 1283 })) 1284 } 1285 } 1286 j.on(document, Re, '[data-bs-toggle="modal"]', (function(t) { 1287 const e = K.getElementFromSelector(this); 1288 ["A", "AREA"].includes(this.tagName) && t.preventDefault(), j.one(e, Fe, (t => { 1289 t.defaultPrevented || j.one(e, je, (() => { 1290 h(this) && this.focus() 1291 })) 1292 })); 1293 const i = K.findOne(".modal.show"); 1294 i && Ue.getInstance(i).hide(), Ue.getOrCreateInstance(e).toggle(this) 1295 })), V(Ue), b(Ue); 1296 const Ge = ".bs.offcanvas", 1297 Je = ".data-api", 1298 Ze = `load${Ge}${Je}`, 1299 ti = "show", 1300 ei = "showing", 1301 ii = "hiding", 1302 si = ".offcanvas.show", 1303 ni = `show${Ge}`, 1304 oi = `shown${Ge}`, 1305 ri = `hide${Ge}`, 1306 ai = `hidePrevented${Ge}`, 1307 li = `hidden${Ge}`, 1308 ci = `resize${Ge}`, 1309 hi = `click${Ge}${Je}`, 1310 di = `keydown.dismiss${Ge}`, 1311 ui = { 1312 backdrop: !0, 1313 keyboard: !0, 1314 scroll: !1 1315 }, 1316 _i = { 1317 backdrop: "(boolean|string)", 1318 keyboard: "boolean", 1319 scroll: "boolean" 1320 }; 1321 class gi extends W { 1322 constructor(t, e) { 1323 super(t, e), this._isShown = !1, this._backdrop = this._initializeBackDrop(), this._focustrap = this._initializeFocusTrap(), this._addEventListeners() 1324 } 1325 static get Default() { 1326 return ui 1327 } 1328 static get DefaultType() { 1329 return _i 1330 } 1331 static get NAME() { 1332 return "offcanvas" 1333 } 1334 toggle(t) { 1335 return this._isShown ? this.hide() : this.show(t) 1336 } 1337 show(t) { 1338 this._isShown || j.trigger(this._element, ni, { 1339 relatedTarget: t 1340 }).defaultPrevented || (this._isShown = !0, this._backdrop.show(), this._config.scroll || (new Ne).hide(), this._element.setAttribute("aria-modal", !0), this._element.setAttribute("role", "dialog"), this._element.classList.add(ei), this._queueCallback((() => { 1341 this._config.scroll && !this._config.backdrop || this._focustrap.activate(), this._element.classList.add(ti), this._element.classList.remove(ei), j.trigger(this._element, oi, { 1342 relatedTarget: t 1343 }) 1344 }), this._element, !0)) 1345 } 1346 hide() { 1347 this._isShown && (j.trigger(this._element, ri).defaultPrevented || (this._focustrap.deactivate(), this._element.blur(), this._isShown = !1, this._element.classList.add(ii), this._backdrop.hide(), this._queueCallback((() => { 1348 this._element.classList.remove(ti, ii), this._element.removeAttribute("aria-modal"), this._element.removeAttribute("role"), this._config.scroll || (new Ne).reset(), j.trigger(this._element, li) 1349 }), this._element, !0))) 1350 } 1351 dispose() { 1352 this._backdrop.dispose(), this._focustrap.deactivate(), super.dispose() 1353 } 1354 _initializeBackDrop() { 1355 const t = Boolean(this._config.backdrop); 1356 return new we({ 1357 className: "offcanvas-backdrop", 1358 isVisible: t, 1359 isAnimated: !0, 1360 rootElement: this._element.parentNode, 1361 clickCallback: t ? () => { 1362 "static" !== this._config.backdrop ? this.hide() : j.trigger(this._element, ai) 1363 } : null 1364 }) 1365 } 1366 _initializeFocusTrap() { 1367 return new Se({ 1368 trapElement: this._element 1369 }) 1370 } 1371 _addEventListeners() { 1372 j.on(this._element, di, (t => { 1373 "Escape" === t.key && (this._config.keyboard ? this.hide() : j.trigger(this._element, ai)) 1374 })) 1375 } 1376 static jQueryInterface(t) { 1377 return this.each((function() { 1378 const e = gi.getOrCreateInstance(this, t); 1379 if ("string" == typeof t) { 1380 if (void 0 === e[t] || t.startsWith("_") || "constructor" === t) throw new TypeError(`No method n
1380amed "${t}"`); 1381 e[t](this) 1382 } 1383 })) 1384 } 1385 } 1386 j.on(document, hi, '[data-bs-toggle="offcanvas"]', (function(t) { 1387 const e = K.getElementFromSelector(this); 1388 if (["A", "AREA"].includes(this.tagName) && t.preventDefault(), d(this)) return; 1389 j.one(e, li, (() => { 1390 h(this) && this.focus() 1391 })); 1392 const i = K.findOne(si); 1393 i && i !== e && gi.getInstance(i).hide(), gi.getOrCreateInstance(e).toggle(this) 1394 })), j.on(window, Ze, (() => { 1395 for (const t of K.find(si)) gi.getOrCreateInstance(t).show() 1396 })), j.on(window, ci, (() => { 1397 for (const t of K.find("[aria-modal][class*=show][class*=offcanvas-]")) "fixed" !== getComputedStyle(t).position && gi.getOrCreateInstance(t).hide() 1398 })), V(gi), b(gi); 1399 const fi = { 1400 "*": ["class", "dir", "id", "lang", "role", /^aria-[\w-]*$/i], 1401 a: ["target", "href", "title", "rel"], 1402 area: [], 1403 b: [], 1404 br: [], 1405 col: [], 1406 code: [], 1407 dd: [], 1408 div: [], 1409 dl: [], 1410 dt: [], 1411 em: [], 1412 hr: [], 1413 h1: [], 1414 h2: [], 1415 h3: [], 1416 h4: [], 1417 h5: [], 1418 h6: [], 1419 i: [], 1420 img: ["src", "srcset", "alt", "title", "width", "height"], 1421 li: [], 1422 ol: [], 1423 p: [], 1424 pre: [], 1425 s: [], 1426 small: [], 1427 span: [], 1428 sub: [], 1429 sup: [], 1430 strong: [], 1431 u: [], 1432 ul: [] 1433 }, 1434 mi = new Set(["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"]), 1435 pi = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i, 1436 bi = (t, e) => { 1437 const i = t.nodeName.toLowerCase(); 1438 return e.includes(i) ? !mi.has(i) || Boolean(pi.test(t.nodeValue)) : e.filter((t => t instanceof RegExp)).some((t => t.test(i))) 1439 }, 1440 vi = { 1441 allowList: fi, 1442 content: {}, 1443 extraClass: "", 1444 html: !1, 1445 sanitize: !0, 1446 sanitizeFn: null, 1447 template: "<div></div>" 1448 }, 1449 yi = { 1450 allowList: "object", 1451 content: "object", 1452 extraClass: "(string|function)", 1453 html: "boolean", 1454 sanitize: "boolean", 1455 sanitizeFn: "(null|function)", 1456 template: "string" 1457 }, 1458 wi = { 1459 entry: "(string|element|function|null)", 1460 selector: "(string|element)" 1461 }; 1462 class Ai extends q { 1463 constructor(t) { 1464 super(), this._config = this._getConfig(t) 1465 } 1466 static get Default() { 1467 return vi 1468 } 1469 static get DefaultType() { 1470 return yi 1471 } 1472 static get NAME() { 1473 return "TemplateFactory" 1474 } 1475 getContent() { 1476 return Object.values(this._config.content).map((t => this._resolvePossibleFunction(t))).filter(Boolean) 1477 } 1478 hasContent() { 1479 return this.getContent().length > 0 1480 } 1481 changeContent(t) { 1482 return this._checkContent(t), this._config.content = { ...this._config.content, 1483 ...t 1484 }, this 1485 } 1486 toHtml() { 1487 const t = document.createElement("div"); 1488 t.innerHTML = this._maybeSanitize(this._config.template); 1489 for (const [e, i] of Object.entries(this._config.content)) this._setContent(t, i, e); 1490 const e = t.children[0], 1491 i = this._resolvePossibleFunction(this._config.extraClass); 1492 return i && e.classList.add(...i.split(" ")), e 1493 } 1494 _typeCheckConfig(t) { 1495 super._typeCheckConfig(t), this._checkContent(t.content) 1496 } 1497 _checkContent(t) { 1498 for (const [e, i] of Object.entries(t)) super._typeCheckConfig({ 1499 selector: e, 1500 entry: i 1501 }, wi) 1502 } 1503 _setContent(t, e, i) { 1504 const s = K.findOne(i, t); 1505 s && ((e = this._resolvePossibleFunction(e)) ? l(e) ? this._putElementInTemplate(c(e), s) : this._config.html ? s.innerHTML = this._maybeSanitize(e) : s.textContent = e : s.remove()) 1506 } 1507 _maybeSanitize(t) { 1508 return this._config.sanitize ? function(t, e, i) { 1509 if (!t.length) return t; 1510 if (i && "function" == typeof i) return i(t); 1511 const s = (new window.DOMParser).parseFromString(t, "text/html"), 1512 n = [].concat(...s.body.querySelectorAll("*")); 1513 for (const t of n) { 1514 const i = t.nodeName.toLowerCase(); 1515 if (!Object.keys(e).includes(i)) { 1516 t.remove(); 1517 continue 1518 } 1519 const s = [].concat(...t.attributes), 1520 n = [].concat(e["*"] || [], e[i] || []); 1521 for (const e of s) bi(e, n) || t.removeAttribute(e.nodeName) 1522 } 1523 return s.body.innerHTML 1524 }(t, this._config.allowList, this._config.sanitizeFn) : t 1525 } 1526 _resolvePossibleFunction(t) { 1527 return v(t, [this]) 1528 } 1529 _putElementInTemplate(t, e) { 1530 if (this._config.html) return e.innerHTML = "", void e.append(t); 1531 e.textContent = t.textContent 1532 } 1533 } 1534 const Ei = new Set(["sanitize", "allowList", "sanitizeFn"]), 1535 Ci = "fade", 1536 Ti = "show", 1537 ki = ".modal", 1538 $i = "hide.bs.modal", 1539 Si = "hover", 1540 Li = "focus", 1541 Oi = { 1542 AUTO: "auto", 1543 TOP: "top", 1544 RIGHT: p() ? "left" : "right", 1545 BOTTOM: "bottom", 1546 LEFT: p() ? "right" : "left" 1547 }, 1548 Ii = { 1549 allowList: fi, 1550 animation: !0, 1551 boundary: "clippingParents", 1552 container: !1, 1553 customClass: "", 1554 delay: 0, 1555 fallbackPlacements: ["top", "right", "bottom", "left"], 1556 html: !1, 1557 offset: [0, 6], 1558 placement: "top", 1559 popperConfig: null, 1560 sanitize: !0, 1561 sanitizeFn: null, 1562 selector: !1, 1563 template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>', 1564 title: "", 1565 trigger: "hover focus" 1566 }, 1567 Di = { 1568 allowList: "object", 1569 animation: "boolean", 1570 boundary: "(string|element)", 1571 container: "(string|element|boolean)", 1572 customClass: "(string|function)", 1573 delay: "(number|object)", 1574 fallbackPlacements: "array", 1575 html: "boolean", 1576 offset: "(array|string|function)", 1577 placement: "(string|function)", 1578 popperConfig: "(null|object|function)", 1579 sanitize: "boolean", 1580 sanitizeFn: "(null|function)", 1581 selector: "(string|boolean)", 1582 template: "string", 1583 title: "(string|element|function)", 1584 trigger: "string" 1585 }; 1586 class Ni extends W { 1587 constructor(t, e) { 1588 if (void 0 === i) throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)"); 1589 super(t, e), this._isEnabled = !0, this._timeout = 0, this._isHovered = null, this._activeTrigger = {}, this._popper = null, this._templateFactory = null, this._newContent = null, this.tip = null, this._setListeners(), this._config.selector || this._fixTitle() 1590 } 1591 static get Default() { 1592 return Ii 1593 } 1594 static get DefaultType() { 1595 return Di 1596 } 1597 static get NAME() { 1598 return "tooltip" 1599 } 1600 enable() { 1601 this._isEnabled = !0 1602 } 1603 disable() { 1604 this._isEnabled = !1 1605 } 1606 toggleEnabled() { 1607 this._isEnabled = !this._isEnabled 1608 } 1609 toggle() { 1610 this._isEnabled && (this._activeTrigger.click = !this._activeTrigger.click, this._isShown() ? this._leave() : this._enter()) 1611 } 1612 dispose() { 1613 clearTimeout(this._timeout), j.off(this._element.closest(ki), $i, this._hideModalHandler), this._element.getAttribute("data-bs-original-title") && this._element.setAttribute("title", this._element.getAttribute("data-bs-original-title")), this._disposePopper(), super.dispose() 1614 } 1615 show() { 1616 if ("none" === this._element.style.display) throw new Error("Please use show on visible elements"); 1617 if (!this._isWithContent() || !this._isEnabled) return; 1618 const t = j.trigger(this._element, this.constructor.eventName("show")), 1619 e = (u(this._element) || this._element.ownerDocument.documentElement).contains(this._element); 1620 if (t.defaultPrevented || !e) return; 1621 this._disposePopper(); 1622 const i = this._getTipElement(); 1623 this._element.setAttribute("aria-describedby", i.getAttribute("id")); 1624 const { 1625 container: s 1626 } = this._config; 1627 if (this._element.ownerDocument.documentElement.contains(this.tip) || (s.append(i), j.trigger(this._element, this.constructor.eventName("inserted"))), this._popper = this._createPopper(i), i.classList.add(Ti), "ontouchstart" in document.documentElement) 1628 for (const t of [].concat(...document.body.children)) j.on(t, "mouseover", _); 1629 this._queueCallback((() => { 1630 j.trigger(this._element, this.constructor.eventName("shown")), !1 === this._isHovered && this._leave(), this._isHovered = !1 1631 }), this.tip, this._isAnimated()) 1632 } 1633 hide() { 1634 if (this._isShown() && !j.trigger(this._element, this.constructor.eventName("hide")).defaultPrevented) { 1635 if (this._getTipElement().classList.remove(Ti), "ontouchstart" in document.documentElement) 1636 for (const t of [].concat(...document.body.children)) j.off(t, "mouseover", _); 1637 this._activeTrigger.click = !1, this._activeTrigger[Li] = !1, this._activeTrigger[Si] = !1, this._isHovered = null, this._queueCallback((() => { 1638 this._isWithActiveTrigger() || (this._isHovered || this._disposePopper(), this._element.removeAttribute("aria-describedby"), j.trigger(this._element, this.constructor.eventName("hidden"))) 1639 }), this.tip, this._isAnimated()) 1640 } 1641 } 1642 update() {
vendor: 7,613 bytes, lines 1643-1805
1643 this._popper && this._popper.update() 1644 } 1645 _isWithContent() { 1646 return Boolean(this._getTitle()) 1647 } 1648 _getTipElement() { 1649 return this.tip || (this.tip = this._createTipElement(this._newContent || this._getContentForTemplate())), this.tip 1650 } 1651 _createTipElement(t) { 1652 const e = this._getTemplateFactory(t).toHtml(); 1653 if (!e) return null; 1654 e.classList.remove(Ci, Ti), e.classList.add(`bs-${this.constructor.NAME}-auto`); 1655 const i = (t => { 1656 do { 1657 t += Math.floor(1e6 * Math.random()) 1658 } while (document.getElementById(t)); 1659 return t 1660 })(this.constructor.NAME).toString(); 1661 return e.setAttribute("id", i), this._isAnimated() && e.classList.add(Ci), e 1662 } 1663 setContent(t) { 1664 this._newContent = t, this._isShown() && (this._disposePopper(), this.show()) 1665 } 1666 _getTemplateFactory(t) { 1667 return this._templateFactory ? this._templateFactory.changeContent(t) : this._templateFactory = new Ai({ ...this._config, 1668 content: t, 1669 extraClass: this._resolvePossibleFunction(this._config.customClass) 1670 }), this._templateFactory 1671 } 1672 _getContentForTemplate() { 1673 return { 1674 ".tooltip-inner": this._getTitle() 1675 } 1676 } 1677 _getTitle() { 1678 return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute("data-bs-original-title") 1679 } 1680 _initializeOnDelegatedTarget(t) { 1681 return this.constructor.getOrCreateInstance(t.delegateTarget, this._getDelegateConfig()) 1682 } 1683 _isAnimated() { 1684 return this._config.animation || this.tip && this.tip.classList.contains(Ci) 1685 } 1686 _isShown() { 1687 return this.tip && this.tip.classList.contains(Ti) 1688 } 1689 _createPopper(t) { 1690 const e = v(this._config.placement, [this, t, this._element]), 1691 s = Oi[e.toUpperCase()]; 1692 return i.createPopper(this._element, t, this._getPopperConfig(s)) 1693 } 1694 _getOffset() { 1695 const { 1696 offset: t 1697 } = this._config; 1698 return "string" == typeof t ? t.split(",").map((t => Number.parseInt(t, 10))) : "function" == typeof t ? e => t(e, this._element) : t 1699 } 1700 _resolvePossibleFunction(t) { 1701 return v(t, [this._element]) 1702 } 1703 _getPopperConfig(t) { 1704 const e = { 1705 placement: t, 1706 modifiers: [{ 1707 name: "flip", 1708 options: { 1709 fallbackPlacements: this._config.fallbackPlacements 1710 } 1711 }, { 1712 name: "offset", 1713 options: { 1714 offset: this._getOffset() 1715 } 1716 }, { 1717 name: "preventOverflow", 1718 options: { 1719 boundary: this._config.boundary 1720 } 1721 }, { 1722 name: "arrow", 1723 options: { 1724 element: `.${this.constructor.NAME}-arrow` 1725 } 1726 }, { 1727 name: "preSetPlacement", 1728 enabled: !0, 1729 phase: "beforeMain", 1730 fn: t => { 1731 this._getTipElement().setAttribute("data-popper-placement", t.state.placement) 1732 } 1733 }] 1734 }; 1735 return { ...e, 1736 ...v(this._config.popperConfig, [e]) 1737 } 1738 } 1739 _setListeners() { 1740 const t = this._config.trigger.split(" "); 1741 for (const e of t) 1742 if ("click" === e) j.on(this._element, this.constructor.eventName("click"), this._config.selector, (t => { 1743 this._initializeOnDelegatedTarget(t).toggle() 1744 })); 1745 else if ("manual" !== e) { 1746 const t = e === Si ? this.constructor.eventName("mouseenter") : this.constructor.eventName("focusin"), 1747 i = e === Si ? this.constructor.eventName("mouseleave") : this.constructor.eventName("focusout"); 1748 j.on(this._element, t, this._config.selector, (t => { 1749 const e = this._initializeOnDelegatedTarget(t); 1750 e._activeTrigger["focusin" === t.type ? Li : Si] = !0, e._enter() 1751 })), j.on(this._element, i, this._config.selector, (t => { 1752 const e = this._initializeOnDelegatedTarget(t); 1753 e._activeTrigger["focusout" === t.type ? Li : Si] = e._element.contains(t.relatedTarget), e._leave() 1754 })) 1755 } 1756 this._hideModalHandler = () => { 1757 this._element && this.hide() 1758 }, j.on(this._element.closest(ki), $i, this._hideModalHandler) 1759 } 1760 _fixTitle() { 1761 const t = this._element.getAttribute("title"); 1762 t && (this._element.getAttribute("aria-label") || this._element.textContent.trim() || this._element.setAttribute("aria-label", t), this._element.setAttribute("data-bs-original-title", t), this._element.removeAttribute("title")) 1763 } 1764 _enter() { 1765 this._isShown() || this._isHovered ? this._isHovered = !0 : (this._isHovered = !0, this._setTimeout((() => { 1766 this._isHovered && this.show() 1767 }), this._config.delay.show)) 1768 } 1769 _leave() { 1770 this._isWithActiveTrigger() || (this._isHovered = !1, this._setTimeout((() => { 1771 this._isHovered || this.hide() 1772 }), this._config.delay.hide)) 1773 } 1774 _setTimeout(t, e) { 1775 clearTimeout(this._timeout), this._timeout = setTimeout(t, e) 1776 } 1777 _isWithActiveTrigger() { 1778 return Object.values(this._activeTrigger).includes(!0) 1779 } 1780 _getConfig(t) { 1781 const e = B.getDataAttributes(this._element); 1782 for (const t of Object.keys(e)) Ei.has(t) && delete e[t]; 1783 return t = { ...e, 1784 ..."object" == typeof t && t ? t : {} 1785 }, t = this._mergeConfigObj(t), t = this._configAfterMerge(t), this._typeCheckConfig(t), t 1786 } 1787 _configAfterMerge(t) { 1788 return t.container = !1 === t.container ? document.body : c(t.container), "number" == typeof t.delay && (t.delay = { 1789 show: t.delay, 1790 hide: t.delay 1791 }), "number" == typeof t.title && (t.title = t.title.toString()), "number" == typeof t.content && (t.content = t.content.toString()), t 1792 } 1793 _getDelegateConfig() { 1794 const t = {}; 1795 for (const [e, i] of Object.entries(this._config)) this.constructor.Default[e] !== i && (t[e] = i); 1796 return t.selector = !1, t.trigger = "manual", t 1797 } 1798 _disposePopper() { 1799 this._popper && (this._popper.destroy(), this._popper = null), this.tip && (this.tip.remove(), this.tip = null) 1800 } 1801 static jQueryInterface(t) { 1802 return this.each((function() { 1803 const e = Ni.getOrCreateInstance(this, t); 1804 if ("string" == typeof t) { 1805 if (void 0 === e[t]) throw new TypeError(`No method n
1805amed "${t}"`); 1806 e[t]() 1807 } 1808 })) 1809 } 1810 } 1811 b(Ni); 1812 const Pi = { ...Ni.Default, 1813 content: "", 1814 offset: [0, 8], 1815 placement: "right", 1816 template: '<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>', 1817 trigger: "click" 1818 }, 1819 xi = { ...Ni.DefaultType, 1820 content: "(null|string|element|function)" 1821 }; 1822 class Mi extends Ni { 1823 static get Default() { 1824 return Pi 1825 } 1826 static get DefaultType() { 1827 return xi 1828 } 1829 static get NAME() { 1830 return "popover" 1831 } 1832 _isWithContent() { 1833 return this._getTitle() || this._getContent() 1834 } 1835 _getContentForTemplate() { 1836 return { 1837 ".popover-header": this._getTitle(), 1838 ".popover-body": this._getContent() 1839 } 1840 } 1841 _getContent() { 1842 return this._resolvePossibleFunction(this._config.content) 1843 } 1844 static jQueryInterface(t) { 1845 return this.each((function() { 1846 const e = Mi.getOrCreateInstance(this, t); 1847 if ("string" == typeof t) { 1848 if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`); 1849 e[t]() 1850 } 1851 })) 1852 } 1853 } 1854 b(Mi); 1855 const ji = ".bs.scrollspy", 1856 Fi = `activate${ji}`, 1857 zi = `click${ji}`, 1858 Hi = `load${ji}.data-api`, 1859 Bi = "active", 1860 qi = "[href]", 1861 Wi = ".nav-link", 1862 Ri = `${Wi}, .nav-item > ${Wi}, .list-group-item`, 1863 Ki = { 1864 offset: null, 1865 rootMargin: "0px 0px -25%", 1866 smoothScroll: !1, 1867 target: null, 1868 threshold: [.1, .5, 1] 1869 }, 1870 Vi = { 1871 offset: "(number|null)", 1872 rootMargin: "string", 1873 smoothScroll: "boolean", 1874 target: "element", 1875 threshold: "array" 1876 }; 1877 class Qi extends W { 1878 constructor(t, e) { 1879 super(t, e), this._targetLinks = new Map, this._observableSections = new Map, this._rootElement = "visible" === getComputedStyle(this._element).overflowY ? null : this._element, this._activeTarget = null, this._observer = null, this._previousScrollData = { 1880 visibleEntryTop: 0, 1881 parentScrollTop: 0 1882 }, this.refresh() 1883 } 1884 static get Default() { 1885 return Ki 1886 } 1887 static get DefaultType() { 1888 return Vi 1889 } 1890 static get NAME() { 1891 return "scrollspy" 1892 } 1893 refresh() { 1894 this._initializeTargetsAndObservables(), this._maybeEnableSmoothScroll(), this._observer ? this._observer.disconnect() : this._observer = this._getNewObserver(); 1895 for (const t of this._observableSections.values()) this._observer.observe(t) 1896 } 1897 dispose() { 1898 this._observer.disconnect(), super.dispose() 1899 } 1900 _configAfterMerge(t) { 1901 return t.target = c(t.target) || document.body, t.rootMargin = t.offset ? `${t.offset}px 0px -30%` : t.rootMargin, "string" == typeof t.threshold && (t.threshold = t.threshold.split(",").map((t => Number.parseFloat(t)))), t 1902 } 1903 _maybeEnableSmoothScroll() { 1904 this._config.smoothScroll && (j.off(this._config.target, zi), j.on(this._config.target, zi, qi, (t => { 1905 const e = this._observableSections.get(t.target.hash); 1906 if (e) { 1907 t.preventDefault(); 1908 const i = this._rootElement || window, 1909 s = e.offsetTop - this._element.offsetTop; 1910 if (i.scrollTo) return void i.scrollTo({ 1911 top: s, 1912 behavior: "smooth" 1913 }); 1914 i.scrollTop = s 1915 } 1916 }))) 1917 } 1918 _getNewObserver() { 1919 const t = { 1920 root: this._rootElement, 1921 threshold: this._config.threshold, 1922 rootMargin: this._config.rootMargin 1923 }; 1924 return new IntersectionObserver((t => this._observerCallback(t)), t) 1925 } 1926 _observerCallback(t) { 1927 const e = t => this._targetLinks.get(`#${t.target.id}`), 1928 i = t => { 1929 this._previousScrollData.visibleEntryTop = t.target.offsetTop, this._process(e(t)) 1930 }, 1931 s = (this._rootElement || document.documentElement).scrollTop, 1932 n = s >= this._previousScrollData.parentScrollTop; 1933 this._previousScrollData.parentScrollTop = s; 1934 for (const o of t) { 1935 if (!o.isIntersecting) { 1936 this._activeTarget = null, this._clearActiveClass(e(o)); 1937 continue 1938 } 1939 const t = o.target.offsetTop >= this._previousScrollData.visibleEntryTop; 1940 if (n && t) { 1941 if (i(o), !s) return 1942 } else n || t || i(o) 1943 } 1944 } 1945 _initializeTargetsAndObservables() { 1946 this._targetLinks = new Map, this._observableSections = new Map; 1947 const t = K.find(qi, this._config.target); 1948 for (const e of t) { 1949 if (!e.hash || d(e)) continue; 1950 const t = K.findOne(decodeURI(e.hash), this._element); 1951 h(t) && (this._targetLinks.set(decodeURI(e.hash), e), this._observableSections.set(e.hash, t)) 1952 } 1953 } 1954 _process(t) { 1955 this._activeTarget !== t && (this._clearActiveClass(this._config.target), this._activeTarget = t, t.classList.add(Bi), this._activateParents(t), j.trigger(this._element, Fi, { 1956 relatedTarget: t 1957 })) 1958 } 1959 _activateParents(t) { 1960 if (t.classList.contains("dropdown-item")) K.findOne(".dropdown-toggle", t.closest(".dropdown")).classList.add(Bi); 1961 else 1962 for (const e of K.parents(t, ".nav, .list-group")) 1963 for (const t of K.prev(e, Ri)) t.classList.add(Bi) 1964 } 1965 _clearActiveClass(t) { 1966 t.classList.remove(Bi); 1967 const e = K.find(`${qi}.${Bi}`, t); 1968 for (const t of e) t.classList.remove(Bi) 1969 } 1970 static jQueryInterface(t) { 1971 return this.each((function() { 1972 const e = Qi.getOrCreateInstance(this, t); 1973 if ("string" == typeof t) { 1974 if (void 0 === e[t] || t.startsWith("_") || "constructor" === t) throw new TypeError(`No method n
1974amed "${t}"`); 1975 e[t]() 1976 } 1977 })) 1978 } 1979 } 1980 j.on(window, Hi, (() => { 1981 for (const t of K.find('[data-bs-spy="scroll"]')) Qi.getOrCreateInstance(t) 1982 })), b(Qi); 1983 const Xi = ".bs.tab", 1984 Yi = `hide${Xi}`, 1985 Ui = `hidden${Xi}`, 1986 Gi = `show${Xi}`, 1987 Ji = `shown${Xi}`, 1988 Zi = `click${Xi}`, 1989 ts = `keydown${Xi}`, 1990 es = `load${Xi}`, 1991 is = "ArrowLeft", 1992 ss = "ArrowRight", 1993 ns = "ArrowUp", 1994 os = "ArrowDown", 1995 rs = "Home", 1996 as = "End", 1997 ls = "active", 1998 cs = "fade", 1999 hs = "show", 2000 ds = ".dropdown-toggle", 2001 us = `:not(${ds})`, 2002 _s = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]', 2003 gs = `.nav-link${us}, .list-group-item${us}, [role="tab"]${us}, ${_s}`, 2004 fs = `.${ls}[data-bs-toggle="tab"], .${ls}[data-bs-toggle="pill"], .${ls}[data-bs-toggle="list"]`; 2005 class ms extends W { 2006 constructor(t) { 2007 super(t), this._parent = this._element.closest('.list-group, .nav, [role="tablist"]'), this._parent && (this._setInitialAttributes(this._parent, this._getChildren()), j.on(this._element, ts, (t => this._keydown(t)))) 2008 } 2009 static get NAME() { 2010 return "tab" 2011 } 2012 show() { 2013 const t = this._element; 2014 if (this._elemIsActive(t)) return; 2015 const e = this._getActiveElem(), 2016 i = e ? j.trigger(e, Yi, { 2017 relatedTarget: t 2018 }) : null; 2019 j.trigger(t, Gi, { 2020 relatedTarget: e 2021 }).defaultPrevented || i && i.defaultPrevented || (this._deactivate(e, t), this._activate(t, e)) 2022 } 2023 _activate(t, e) { 2024 t && (t.classList.add(ls), this._activate(K.getElementFromSelector(t)), this._queueCallback((() => { 2025 "tab" === t.getAttribute("role") ? (t.removeAttribute("tabindex"), t.setAttribute("aria-selected", !0), this._toggleDropDown(t, !0), j.trigger(t, Ji, { 2026 relatedTarget: e 2027 })) : t.classList.add(hs) 2028 }), t, t.classList.contains(cs))) 2029 } 2030 _deactivate(t, e) { 2031 t && (t.classList.remove(ls), t.blur(), this._deactivate(K.getElementFromSelector(t)), this._queueCallback((() => { 2032 "tab" === t.getAttribute("role") ? (t.setAttribute("aria-selected", !1), t.setAttribute("tabindex", "-1"), this._toggleDropDown(t, !1), j.trigger(t, Ui, { 2033 relatedTarget: e 2034 })) : t.classList.remove(hs) 2035 }), t, t.classList.contains(cs))) 2036 } 2037 _keydown(t) { 2038 if (![is, ss, ns, os, rs, as].includes(t.key)) return; 2039 t.stopPropagation(), t.preventDefault(); 2040 const e = this._getChildren().filter((t => !d(t))); 2041 let i; 2042 if ([rs, as].includes(t.key)) i = e[t.key === rs ? 0 : e.length - 1]; 2043 else { 2044 const s = [ss, os].includes(t.key); 2045 i = w(e, t.target, s, !0) 2046 } 2047 i && (i.focus({ 2048 preventScroll: !0 2049 }), ms.getOrCreateInstance(i).show()) 2050 } 2051 _getChildren() { 2052 return K.find(gs, this._parent) 2053 } 2054 _getActiveElem() { 2055 return this._getChildren().find((t => this._elemIsActive(t))) || null 2056 } 2057 _setInitialAttributes(t, e) { 2058 this._setAttributeIfNotExists(t, "role", "tablist"); 2059 for (const t of e) this._setInitialAttributesOnChild(t) 2060 } 2061 _setInitialAttributesOnChild(t) { 2062 t = this._getInnerElement(t); 2063 const e = this._elemIsActive(t), 2064 i = this._getOuterElement(t); 2065 t.setAttribute("aria-selected", e), i !== t && this._setAttributeIfNotExists(i, "role", "presentation"), e || t.setAttribute("tabindex", "-1"), this._setAttributeIfNotExists(t, "role", "tab"), this._setInitialAttributesOnTargetPanel(t) 2066 } 2067 _setInitialAttributesOnTargetPanel(t) { 2068 const e = K.getElementFromSelector(t); 2069 e && (this._setAttributeIfNotExists(e, "role", "tabpanel"), t.id && this._setAttributeIfNotExists(e, "aria-labelledby", `${t.id}`)) 2070 } 2071 _toggleDropDown(t, e) { 2072 const i = this._getOuterElement(t); 2073 if (!i.classList.contains("dropdown")) return; 2074 const s = (t, s) => { 2075 const n = K.findOne(t, i); 2076 n && n.classList.toggle(s, e) 2077 }; 2078 s(ds, ls), s(".dropdown-menu", hs), i.setAttribute("aria-expanded", e) 2079 } 2080 _setAttributeIfNotExists(t, e, i) { 2081 t.hasAttribute(e) || t.setAttribute(e, i) 2082 } 2083 _elemIsActive(t) { 2084 return t.classList.contains(ls) 2085 } 2086 _getInnerElement(t) { 2087 return t.matches(gs) ? t : K.findOne(gs, t) 2088 } 2089 _getOuterElement(t) {
vendor: 4,203 bytes, lines 2090-2187
2090 return t.closest(".nav-item, .list-group-item") || t 2091 } 2092 static jQueryInterface(t) { 2093 return this.each((function() { 2094 const e = ms.getOrCreateInstance(this); 2095 if ("string" == typeof t) { 2096 if (void 0 === e[t] || t.startsWith("_") || "constructor" === t) throw new TypeError(`No method named "${t}"`); 2097 e[t]() 2098 } 2099 })) 2100 } 2101 } 2102 j.on(document, Zi, _s, (function(t) { 2103 ["A", "AREA"].includes(this.tagName) && t.preventDefault(), d(this) || ms.getOrCreateInstance(this).show() 2104 })), j.on(window, es, (() => { 2105 for (const t of K.find(fs)) ms.getOrCreateInstance(t) 2106 })), b(ms); 2107 const ps = ".bs.toast", 2108 bs = `mouseover${ps}`, 2109 vs = `mouseout${ps}`, 2110 ys = `focusin${ps}`, 2111 ws = `focusout${ps}`, 2112 As = `hide${ps}`, 2113 Es = `hidden${ps}`, 2114 Cs = `show${ps}`, 2115 Ts = `shown${ps}`, 2116 ks = "hide", 2117 $s = "show", 2118 Ss = "showing", 2119 Ls = { 2120 animation: "boolean", 2121 autohide: "boolean", 2122 delay: "number" 2123 }, 2124 Os = { 2125 animation: !0, 2126 autohide: !0, 2127 delay: 5e3 2128 }; 2129 class Is extends W { 2130 constructor(t, e) { 2131 super(t, e), this._timeout = null, this._hasMouseInteraction = !1, this._hasKeyboardInteraction = !1, this._setListeners() 2132 } 2133 static get Default() { 2134 return Os 2135 } 2136 static get DefaultType() { 2137 return Ls 2138 } 2139 static get NAME() { 2140 return "toast" 2141 } 2142 show() { 2143 j.trigger(this._element, Cs).defaultPrevented || (this._clearTimeout(), this._config.animation && this._element.classList.add("fade"), this._element.classList.remove(ks), g(this._element), this._element.classList.add($s, Ss), this._queueCallback((() => { 2144 this._element.classList.remove(Ss), j.trigger(this._element, Ts), this._maybeScheduleHide() 2145 }), this._element, this._config.animation)) 2146 } 2147 hide() { 2148 this.isShown() && (j.trigger(this._element, As).defaultPrevented || (this._element.classList.add(Ss), this._queueCallback((() => { 2149 this._element.classList.add(ks), this._element.classList.remove(Ss, $s), j.trigger(this._element, Es) 2150 }), this._element, this._config.animation))) 2151 } 2152 dispose() { 2153 this._clearTimeout(), this.isShown() && this._element.classList.remove($s), super.dispose() 2154 } 2155 isShown() { 2156 return this._element.classList.contains($s) 2157 } 2158 _maybeScheduleHide() { 2159 this._config.autohide && (this._hasMouseInteraction || this._hasKeyboardInteraction || (this._timeout = setTimeout((() => { 2160 this.hide() 2161 }), this._config.delay))) 2162 } 2163 _onInteraction(t, e) { 2164 switch (t.type) { 2165 case "mouseover": 2166 case "mouseout": 2167 this._hasMouseInteraction = e; 2168 break; 2169 case "focusin": 2170 case "focusout": 2171 this._hasKeyboardInteraction = e 2172 } 2173 if (e) return void this._clearTimeout(); 2174 const i = t.relatedTarget; 2175 this._element === i || this._element.contains(i) || this._maybeScheduleHide() 2176 } 2177 _setListeners() { 2178 j.on(this._element, bs, (t => this._onInteraction(t, !0))), j.on(this._element, vs, (t => this._onInteraction(t, !1))), j.on(this._element, ys, (t => this._onInteraction(t, !0))), j.on(this._element, ws, (t => this._onInteraction(t, !1))) 2179 } 2180 _clearTimeout() { 2181 clearTimeout(this._timeout), this._timeout = null 2182 } 2183 static jQueryInterface(t) { 2184 return this.each((function() { 2185 const e = Is.getOrCreateInstance(this, t); 2186 if ("string" == typeof t) { 2187 if (void 0 === e[t]) throw new TypeError(`No method n
2187amed "${t}"`); 2188 e[t](this) 2189 } 2190 })) 2191 } 2192 } 2193 return V(Is), b(Is), { 2194 Alert: U, 2195 Button: J, 2196 Carousel: Ot, 2197 Collapse: Rt, 2198 Dropdown: fe, 2199 Modal: Ue, 2200 Offcanvas: gi, 2201 Popover: Mi, 2202 ScrollSpy: Qi, 2203 Tab: ms, 2204 Toast: Is, 2205 Tooltip: Ni 2206 } 2207}));
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.