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