1 2; /* Start:"a:4:{s:4:"full";s:62:"/local/templates/sever/build/main.e0b7c601.js?1790593303722209";s:6:"source";s:45:"/local/templates/sever/build/main.e0b7c601.js";s:3:"min";s:0:"";s:3:"map";s:0:"";}"*/ 3/*! For license information please see main.e0b7c601.js.LICENSE.txt */ 4(() => { 5 var e = { 6 755: function (e, t) { 7 var n; 8 !(function (t, n) { 9 "use strict"; 10 "object" == typeof e.exports 11 ? (e.exports = t.document 12 ? n(t, !0) 13 : function (e) { 14 if (!e.document) throw new Error("jQuery requires a window with a document"); 15 return n(e); 16 }) 17 : n(t); 18 })("undefined" != typeof window ? window : this, function (i, s) { 19 "use strict"; 20 var o = [], 21 r = Object.getPrototypeOf, 22 a = o.slice, 23 l = o.flat 24 ? function (e) { 25 return o.flat.call(e); 26 } 27 : function (e) { 28 return o.concat.apply([], e); 29 }, 30 c = o.push, 31 d = o.indexOf, 32 h = {}, 33 u = h.toString, 34 p = h.hasOwnProperty, 35 f = p.toString, 36 g = f.call(Object), 37 m = {}, 38 v = function (e) { 39 return "function" == typeof e && "number" != typeof e.nodeType && "function" != typeof e.item; 40 }, 41 b = function (e) { 42 return null != e && e === e.window; 43 }, 44 y = i.document, 45 w = { type: !0, src: !0, nonce: !0, noModule: !0 }; 46 function x(e, t, n) { 47 var i, 48 s, 49 o = (n = n || y).createElement("script"); 50 if (((o.text = e), t)) for (i in w) (s = t[i] || (t.getAttribute && t.getAttribute(i))) && o.setAttribute(i, s); 51 n.head.appendChild(o).parentNode.removeChild(o); 52 } 53 function _(e) { 54 return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? h[u.call(e)] || "object" : typeof e; 55 } 56 var C = "3.6.1", 57 T = function (e, t) { 58 return new T.fn.init(e, t); 59 }; 60 function E(e) { 61 var t = !!e && "length" in e && e.length, 62 n = _(e); 63 return !v(e) && !b(e) && ("array" === n || 0 === t || ("number" == typeof t && t > 0 && t - 1 in e)); 64 } 65 (T.fn = T.prototype = { 66 jquery: C, 67 constructor: T, 68 length: 0, 69 toArray: function () { 70 return a.call(this); 71 }, 72 get: function (e) { 73 return null == e ? a.call(this) : e < 0 ? this[e + this.length] : this[e]; 74 }, 75 pushStack: function (e) { 76 var t = T.merge(this.constructor(), e); 77 return (t.prevObject = this), t; 78 }, 79 each: function (e) { 80 return T.each(this, e); 81 }, 82 map: function (e) { 83 return this.pushStack( 84 T.map(this, function (t, n) { 85 return e.call(t, n, t); 86 }) 87 ); 88 }, 89 slice: function () { 90 return this.pushStack(a.apply(this, arguments)); 91 }, 92 first: function () { 93 return this.eq(0); 94 }, 95 last: function () { 96 return this.eq(-1); 97 }, 98 even: function () { 99 return this.pushStack( 100 T.grep(this, function (e, t) { 101 return (t + 1) % 2; 102 }) 103 ); 104 }, 105 odd: function () { 106 return this.pushStack( 107 T.grep(this, function (e, t) { 108 return t % 2; 109 }) 110 ); 111 }, 112 eq: function (e) { 113 var t = this.length, 114 n = +e + (e < 0 ? t : 0); 115 return this.pushStack(n >= 0 && n < t ? [this[n]] : []); 116 }, 117 end: function () { 118 return this.prevObject || this.constructor(); 119 }, 120 push: c, 121 sort: o.sort, 122 splice: o.splice, 123 }), 124 (T.extend = T.fn.extend = function () { 125 var e, 126 t, 127 n, 128 i, 129 s, 130 o, 131 r = arguments[0] || {}, 132 a = 1, 133 l = arguments.length, 134 c = !1; 135 for ("boolean" == typeof r && ((c = r), (r = arguments[a] || {}), a++), "object" == typeof r || v(r) || (r = {}), a === l && ((r = this), a--); a < l; a++) 136 if (null != (e = arguments[a])) 137 for (t in e) 138 (i = e[t]), 139 "__proto__" !== t && 140 r !== i && 141 (c && i && (T.isPlainObject(i) || (s = Array.isArray(i))) 142 ? ((n = r[t]), (o = s && !Array.isArray(n) ? [] : s || T.isPlainObject(n) ? n : {}), (s = !1), (r[t] = T.extend(c, o, i))) 143 : void 0 !== i && (r[t] = i)); 144 return r; 145 }), 146 T.extend({ 147 expando: "jQuery" + (C + Math.random()).replace(/\D/g, ""), 148 isReady: !0, 149 error: function (e) { 150 throw new Error(e); 151 }, 152 noop: function () {}, 153 isPlainObject: function (e) { 154 var t, n; 155 return !(!e || "[object Object]" !== u.call(e)) && (!(t = r(e)) || ("function" == typeof (n = p.call(t, "constructor") && t.constructor) && f.call(n) === g)); 156 }, 157 isEmptyObject: function (e) { 158 var t; 159 for (t in e) return !1; 160 return !0; 161 }, 162 globalEval: function (e, t, n) { 163 x(e, { nonce: t && t.nonce }, n); 164 }, 165 each: function (e, t) { 166 var n, 167 i = 0; 168 if (E(e)) for (n = e.length; i < n && !1 !== t.call(e[i], i, e[i]); i++); 169 else for (i in e) if (!1 === t.call(e[i], i, e[i])) break; 170 return e; 171 }, 172 makeArray: function (e, t) { 173 var n = t || []; 174 return null != e && (E(Object(e)) ? T.merge(n, "string" == typeof e ? [e] : e) : c.call(n, e)), n; 175 }, 176 inArray: function (e, t, n) { 177 return null == t ? -1 : d.call(t, e, n); 178 }, 179 merge: function (e, t) { 180 for (var n = +t.length, i = 0, s = e.length; i < n; i++) e[s++] = t[i]; 181 return (e.length = s), e; 182 }, 183 grep: function (e, t, n) { 184 for (var i = [], s = 0, o = e.length, r = !n; s < o; s++) !t(e[s], s) !== r && i.push(e[s]); 185 return i; 186 }, 187 map: function (e, t, n) { 188 var i, 189 s, 190 o = 0, 191 r = []; 192 if (E(e)) for (i = e.length; o < i; o++) null != (s = t(e[o], o, n)) && r.push(s); 193 else for (o in e) null != (s = t(e[o], o, n)) && r.push(s); 194 return l(r); 195 }, 196 guid: 1, 197 support: m, 198 }), 199 "function" == typeof Symbol && (T.fn[Symbol.iterator] = o[Symbol.iterator]), 200 T.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function (e, t) { 201 h["[object " + t + "]"] = t.toLowerCase(); 202 }); 203 var S = (function (e) { 204 var t, 205 n, 206 i, 207 s, 208 o, 209 r, 210 a, 211 l, 212 c, 213 d, 214 h, 215 u, 216 p, 217 f, 218 g, 219 m, 220 v, 221 b, 222 y, 223 w = "sizzle" + 1 * new Date(), 224 x = e.document, 225 _ = 0, 226 C = 0, 227 T = le(), 228 E = le(), 229 S = le(), 230 A = le(), 231 k = function (e, t) { 232 return e === t && (h = !0), 0; 233 }, 234 $ = {}.hasOwnProperty, 235 L = [], 236 P = L.pop, 237 O = L.push, 238 M = L.push, 239 D = L.slice, 240 N = function (e, t) { 241 for (var n = 0, i = e.length; n < i; n++) if (e[n] === t) return n; 242 return -1; 243 }, 244 I = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", 245 z = "[\\x20\\t\\r\\n\\f]", 246 j = "(?:\\\\[\\da-fA-F]{1,6}[\\x20\\t\\r\\n\\f]?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", 247 F = "\\[[\\x20\\t\\r\\n\\f]*(" + j + ")(?:" + z + "*([*^$|!~]?=)" + z + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + j + "))|)" + z + "*\\]", 248 H = ":(" + j + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + F + ")*)|.*)\\)|)", 249 R = new RegExp(z + "+", "g"), 250 B = new RegExp("^[\\x20\\t\\r\\n\\f]+|((?:^|[^\\\\])(?:\\\\.)*)[\\x20\\t\\r\\n\\f]+$", "g"), 251 q = new RegExp("^[\\x20\\t\\r\\n\\f]*,[\\x20\\t\\r\\n\\f]*"), 252 W = new RegExp("^[\\x20\\t\\r\\n\\f]*([>+~]|[\\x20\\t\\r\\n\\f])[\\x20\\t\\r\\n\\f]*"), 253 V = new RegExp(z + "|>"), 254 G = new RegExp(H), 255 X = new RegExp("^" + j + "$"), 256 Y = { 257 ID: new RegExp("^#(" + j + ")"), 258 CLASS: new RegExp("^\\.(" + j + ")"), 259 TAG: new RegExp("^(" + j + "|[*])"), 260 ATTR: new RegExp("^" + F), 261 PSEUDO: new RegExp("^" + H), 262 CHILD: new RegExp( 263 "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\([\\x20\\t\\r\\n\\f]*(even|odd|(([+-]|)(\\d*)n|)[\\x20\\t\\r\\n\\f]*(?:([+-]|)[\\x20\\t\\r\\n\\f]*(\\d+)|))[\\x20\\t\\r\\n\\f]*\\)|)", 264 "i" 265 ), 266 bool: new RegExp("^(?:" + I + ")$", "i"), 267 needsContext: new RegExp("^[\\x20\\t\\r\\n\\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\([\\x20\\t\\r\\n\\f]*((?:-\\d)?\\d*)[\\x20\\t\\r\\n\\f]*\\)|)(?=[^-]|$)", "i"), 268 }, 269 U = /HTML$/i, 270 K = /^(?:input|select|textarea|button)$/i, 271 Z = /^h\d$/i, 272 Q = /^[^{]+\{\s*\[native \w/, 273 J = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, 274 ee = /[+~]/, 275 te = new RegExp("\\\\[\\da-fA-F]{1,6}[\\x20\\t\\r\\n\\f]?|\\\\([^\\r\\n\\f])", "g"), 276 ne = function (e, t) { 277 var n = "0x" + e.slice(1) - 65536; 278 return t || (n < 0 ? String.fromCharCode(n + 65536) : String.fromCharCode((n >> 10) | 55296, (1023 & n) | 56320)); 279 }, 280 ie = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, 281 se = function (e, t) { 282 return t ? ("\0" === e ? "�" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " ") : "\\" + e; 283 }, 284 oe = function () { 285 u(); 286 }, 287 re = we( 288 function (e) { 289 return !0 === e.disabled && "fieldset" === e.nodeName.toLowerCase(); 290 }, 291 { dir: "parentNode", next: "legend" } 292 ); 293 try { 294 M.apply((L = D.call(x.childNodes)), x.childNodes), L[x.childNodes.length].nodeType; 295 } catch (e) { 296 M = { 297 apply: L.length 298 ? function (e, t) { 299 O.apply(e, D.call(t)); 300 } 301 : function (e, t) { 302 for (var n = e.length, i = 0; (e[n++] = t[i++]);
302); 303 e.length = n - 1; 304 }, 305 }; 306 } 307 function ae(e, t, i, s) { 308 var o, 309 a, 310 c, 311 d, 312 h, 313 f, 314 v, 315 b = t && t.ownerDocument, 316 x = t ? t.nodeType : 9; 317 if (((i = i || []), "string" != typeof e || !e || (1 !== x && 9 !== x && 11 !== x))) return i; 318 if (!s && (u(t), (t = t || p), g)) { 319 if (11 !== x && (h = J.exec(e))) 320 if ((o = h[1])) { 321 if (9 === x) { 322 if (!(c = t.getElementById(o))) return i; 323 if (c.id === o) return i.push(c), i; 324 } else if (b && (c = b.getElementById(o)) && y(t, c) && c.id === o) return i.push(c), i; 325 } else { 326 if (h[2]) return M.apply(i, t.getElementsByTagName(e)), i; 327 if ((o = h[3]) && n.getElementsByClassName && t.getElementsByClassName) return M.apply(i, t.getElementsByClassName(o)), i; 328 } 329 if (n.qsa && !A[e + " "] && (!m || !m.test(e)) && (1 !== x || "object" !== t.nodeName.toLowerCase())) { 330 if (((v = e), (b = t), 1 === x && (V.test(e) || W.test(e)))) { 331 for (((b = (ee.test(e) && ve(t.parentNode)) || t) === t && n.scope) || ((d = t.getAttribute("id")) ? (d = d.replace(ie, se)) : t.setAttribute("id", (d = w))), a = (f = r(e)).length; a--; ) 332 f[a] = (d ? "#" + d : ":scope") + " " + ye(f[a]); 333 v = f.join(","); 334 } 335 try { 336 return M.apply(i, b.querySelectorAll(v)), i; 337 } catch (t) { 338 A(e, !0); 339 } finally { 340 d === w && t.removeAttribute("id"); 341 } 342 } 343 } 344 return l(e.replace(B, "$1"), t, i, s); 345 } 346 function le() { 347 var e = []; 348 return function t(n, s) { 349 return e.push(n + " ") > i.cacheLength && delete t[e.shift()], (t[n + " "] = s); 350 }; 351 } 352 function ce(e) { 353 return (e[w] = !0), e; 354 } 355 function de(e) { 356 var t = p.createElement("fieldset"); 357 try { 358 return !!e(t); 359 } catch (e) { 360 return !1; 361 } finally { 362 t.parentNode && t.parentNode.removeChild(t), (t = null); 363 } 364 } 365 function he(e, t) { 366 for (var n = e.split("|"), s = n.length; s--; ) i.attrHandle[n[s]] = t; 367 } 368 function ue(e, t) { 369 var n = t && e, 370 i = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex; 371 if (i) return i; 372 if (n) for (; (n = n.nextSibling); ) if (n === t) return -1; 373 return e ? 1 : -1; 374 } 375 function pe(e) { 376 return function (t) { 377 return "input" === t.nodeName.toLowerCase() && t.type === e; 378 }; 379 } 380 function fe(e) { 381 return function (t) { 382 var n = t.nodeName.toLowerCase(); 383 return ("input" === n || "button" === n) && t.type === e; 384 }; 385 } 386 function ge(e) { 387 return function (t) { 388 return "form" in t 389 ? t.parentNode && !1 === t.disabled 390 ? "label" in t 391 ? "label" in t.parentNode 392 ? t.parentNode.disabled === e 393 : t.disabled === e 394 : t.isDisabled === e || (t.isDisabled !== !e && re(t) === e) 395 : t.disabled === e 396 : "label" in t && t.disabled === e; 397 }; 398 } 399 function me(e) { 400 return ce(function (t) { 401 return ( 402 (t = +t), 403 ce(function (n, i) { 404 for (var s, o = e([], n.length, t), r = o.length; r--; ) n[(s = o[r])] && (n[s] = !(i[s] = n[s])); 405 }) 406 ); 407 }); 408 } 409 function ve(e) { 410 return e && void 0 !== e.getElementsByTagName && e; 411 } 412 for (t in ((n = ae.support = {}), 413 (o = ae.isXML = function (e) { 414 var t = e && e.namespaceURI, 415 n = e && (e.ownerDocument || e).documentElement; 416 return !U.test(t || (n && n.nodeName) || "HTML"); 417 }), 418 (u = ae.setDocument = function (e) { 419 var t, 420 s, 421 r = e ? e.ownerDocument || e : x; 422 return r != p && 9 === r.nodeType && r.documentElement 423 ? ((f = (p = r).documentElement), 424 (g = !o(p)), 425 x != p && (s = p.defaultView) && s.top !== s && (s.addEventListener ? s.addEventListener("unload", oe, !1) : s.attachEvent && s.attachEvent("onunload", oe)), 426 (n.scope = de(function (e) { 427 return f.appendChild(e).appendChild(p.createElement("div")), void 0 !== e.querySelectorAll && !e.querySelectorAll(":scope fieldset div").length; 428 })), 429 (n.attributes = de(function (e) { 430 return (e.className = "i"), !e.getAttribute("className"); 431 })), 432 (n.getElementsByTagName = de(function (e) { 433 return e.appendChild(p.createComment("")), !e.getElementsByTagName("*").length; 434 })), 435 (n.getElementsByClassName = Q.test(p.getElementsByClassName)), 436 (n.getById = de(function (e) { 437 return (f.appendChild(e).id = w), !p.getElementsByName || !p.getElementsByName(w).length; 438 })), 439 n.getById 440 ? ((i.filter.ID = function (e) { 441 var t = e.replace(te, ne); 442 return function (e) { 443 return e.getAttribute("id") === t; 444 }; 445 }), 446 (i.find.ID = function (e, t) { 447 if (void 0 !== t.getElementById && g) { 448 var n = t.getElementById(e); 449 return n ? [n] : []; 450 } 451 })) 452 : ((i.filter.ID = function (e) { 453 var t = e.replace(te, ne); 454 return function (e) { 455 var n = void 0 !== e.getAttributeNode && e.getAttributeNode("id"); 456 return n && n.value === t; 457 }; 458 }), 459 (i.find.ID = function (e, t) { 460 if (void 0 !== t.getElementById && g) { 461 var n, 462 i, 463 s, 464 o = t.getElementById(e); 465 if (o) { 466 if ((n = o.getAttributeNode("id")) && n.value === e) return [o]; 467 for (s = t.getElementsByName(e), i = 0; (o = s[i++]); ) if ((n = o.getAttributeNode("id")) && n.value === e) return [o]; 468 } 469 return []; 470 } 471 })), 472 (i.find.TAG = n.getElementsByTagName 473 ? function (e, t) { 474 return void 0 !== t.getElementsByTagName ? t.getElementsByTagName(e) : n.qsa ? t.querySelectorAll(e) : void 0; 475 } 476 : function (e, t) { 477 var n, 478 i = [], 479 s = 0, 480 o = t.getElementsByTagName(e); 481 if ("*" === e) { 482 for (; (n = o[s++]); ) 1 === n.nodeType && i.push(n); 483 return i; 484 } 485 return o; 486 }), 487 (i.find.CLASS = 488 n.getElementsByClassName && 489 function (e, t) { 490 if (void 0 !== t.getElementsByClassName && g) return t.getElementsByClassName(e); 491 }), 492 (v = []), 493 (m = []), 494 (n.qsa = Q.test(p.querySelectorAll)) && 495 (de(function (e) { 496 var t; 497 (f.appendChild(e).innerHTML = "<a id='" + w + "'></a><select id='" + w + "-\r\\' msallowcapture=''><option selected=''></option></select>"), 498 e.querySelectorAll("[msallowcapture^='']").length && m.push("[*^$]=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"), 499 e.querySelectorAll("[selected]").length || m.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|" + I + ")"), 500 e.querySelectorAll("[id~=" + w + "-]").length || m.push("~="), 501 (t = p.createElement("input")).setAttribute("name", ""), 502 e.appendChild(t), 503 e.querySelectorAll("[name='']").length || m.push("\\[[\\x20\\t\\r\\n\\f]*name[\\x20\\t\\r\\n\\f]*=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"), 504 e.querySelectorAll(":checked").length || m.push(":checked"), 505 e.querySelectorAll("a#" + w + "+*").length || m.push(".#.+[+~]"), 506 e.querySelectorAll("\\\f"), 507 m.push("[\\r\\n\\f]"); 508 }), 509 de(function (e) { 510 e.innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>"; 511 var t = p.createElement("input"); 512 t.setAttribute("type", "hidden"), 513 e.appendChild(t).setAttribute("name", "D"), 514 e.querySelectorAll("[name=d]").length && m.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?="), 515 2 !== e.querySelectorAll(":enabled").length && m.push(":enabled", ":disabled"), 516 (f.appendChild(e).disabled = !0), 517 2 !== e.querySelectorAll(":disabled").length && m.push(":enabled", ":disabled"), 518 e.querySelectorAll("*,:x"), 519 m.push(",.*:"); 520 })), 521 (n.matchesSelector = Q.test((b = f.matches || f.webkitMatchesSelector || f.mozMatchesSelector || f.oMatchesSelector || f.msMatchesSelector))) && 522 de(function (e) { 523 (n.disconnectedMatch = b.call(e, "*")), b.call(e, "[s!='']:x"), v.push("!=", H); 524 }), 525 (m = m.length && new RegExp(m.join("|"))), 526 (v = v.length && new RegExp(v.j
526oin("|"))), 527 (t = Q.test(f.compareDocumentPosition)), 528 (y = 529 t || Q.test(f.contains) 530 ? function (e, t) { 531 var n = 9 === e.nodeType ? e.documentElement : e, 532 i = t && t.parentNode; 533 return e === i || !(!i || 1 !== i.nodeType || !(n.contains ? n.contains(i) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(i))); 534 } 535 : function (e, t) { 536 if (t) for (; (t = t.parentNode); ) if (t === e) return !0; 537 return !1; 538 }), 539 (k = t 540 ? function (e, t) { 541 if (e === t) return (h = !0), 0; 542 var i = !e.compareDocumentPosition - !t.compareDocumentPosition; 543 return ( 544 i || 545 (1 & (i = (e.ownerDocument || e) == (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || (!n.sortDetached && t.compareDocumentPosition(e) === i) 546 ? e == p || (e.ownerDocument == x && y(x, e)) 547 ? -1 548 : t == p || (t.ownerDocument == x && y(x, t)) 549 ? 1 550 : d 551 ? N(d, e) - N(d, t) 552 : 0 553 : 4 & i 554 ? -1 555 : 1) 556 ); 557 } 558 : function (e, t) { 559 if (e === t) return (h = !0), 0; 560 var n, 561 i = 0, 562 s = e.parentNode, 563 o = t.parentNode, 564 r = [e], 565 a = [t]; 566 if (!s || !o) return e == p ? -1 : t == p ? 1 : s ? -1 : o ? 1 : d ? N(d, e) - N(d, t) : 0; 567 if (s === o) return ue(e, t); 568 for (n = e; (n = n.parentNode); ) r.unshift(n); 569 for (n = t; (n = n.parentNode); ) a.unshift(n); 570 for (; r[i] === a[i]; ) i++; 571 return i ? ue(r[i], a[i]) : r[i] == x ? -1 : a[i] == x ? 1 : 0; 572 }), 573 p) 574 : p; 575 }), 576 (ae.matches = function (e, t) { 577 return ae(e, null, null, t); 578 }), 579 (ae.matchesSelector = function (e, t) { 580 if ((u(e), n.matchesSelector && g && !A[t + " "] && (!v || !v.test(t)) && (!m || !m.test(t)))) 581 try { 582 var i = b.call(e, t); 583 if (i || n.disconnectedMatch || (e.document && 11 !== e.document.nodeType)) return i; 584 } catch (e) { 585 A(t, !0); 586 } 587 return ae(t, p, null, [e]).length > 0; 588 }), 589 (ae.contains = function (e, t) { 590 return (e.ownerDocument || e) != p && u(e), y(e, t); 591 }), 592 (ae.attr = function (e, t) { 593 (e.ownerDocument || e) != p && u(e); 594 var s = i.attrHandle[t.toLowerCase()], 595 o = s && $.call(i.attrHandle, t.toLowerCase()) ? s(e, t, !g) : void 0; 596 return void 0 !== o ? o : n.attributes || !g ? e.getAttribute(t) : (o = e.getAttributeNode(t)) && o.specified ? o.value : null; 597 }), 598 (ae.escape = function (e) { 599 return (e + "").replace(ie, se); 600 }), 601 (ae.error = function (e) { 602 throw new Error("Syntax error, unrecognized expression: " + e); 603 }), 604 (ae.uniqueSort = function (e) { 605 var t, 606 i = [], 607 s = 0, 608 o = 0; 609 if (((h = !n.detectDuplicates), (d = !n.sortStable && e.slice(0)), e.sort(k), h)) { 610 for (; (t = e[o++]); ) t === e[o] && (s = i.push(o)); 611 for (; s--; ) e.splice(i[s], 1); 612 } 613 return (d = null), e; 614 }), 615 (s = ae.getText = function (e) { 616 var t, 617 n = "", 618 i = 0,
619 o = e.nodeType; 620 if (o) { 621 if (1 === o || 9 === o || 11 === o) { 622 if ("string" == typeof e.textContent) return e.textContent; 623 for (e = e.firstChild; e; e = e.nextSibling) n += s(e); 624 } else if (3 === o || 4 === o) return e.nodeValue; 625 } else for (; (t = e[i++]); ) n += s(t); 626 return n; 627 }), 628 (i = ae.selectors = { 629 cacheLength: 50, 630 createPseudo: ce, 631 match: Y, 632 attrHandle: {}, 633 find: {}, 634 relative: { ">": { dir: "parentNode", first: !0 }, " ": { dir: "parentNode" }, "+": { dir: "previousSibling", first: !0 }, "~": { dir: "previousSibling" } }, 635 preFilter: { 636 ATTR: function (e) { 637 return (e[1] = e[1].replace(te, ne)), (e[3] = (e[3] || e[4] || e[5] || "").replace(te, ne)), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4); 638 }, 639 CHILD: function (e) { 640 return ( 641 (e[1] = e[1].toLowerCase()), 642 "nth" === e[1].slice(0, 3) 643 ? (e[3] || ae.error(e[0]), (e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3]))), (e[5] = +(e[7] + e[8] || "odd" === e[3]))) 644 : e[3] && ae.error(e[0]), 645 e 646 ); 647 }, 648 PSEUDO: function (e) { 649 var t, 650 n = !e[6] && e[2]; 651 return Y.CHILD.test(e[0]) 652 ? null 653 : (e[3] ? (e[2] = e[4] || e[5] || "") : n && G.test(n) && (t = r(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && ((e[0] = e[0].slice(0, t)), (e[2] = n.slice(0, t))), e.slice(0, 3)); 654 }, 655 }, 656 filter: { 657 TAG: function (e) { 658 var t = e.replace(te, ne).toLowerCase(); 659 return "*" === e 660 ? function () { 661 return !0; 662 } 663 : function (e) { 664 return e.nodeName && e.nodeName.toLowerCase() === t; 665 }; 666 }, 667 CLASS: function (e) { 668 var t = T[e + " "]; 669 return ( 670 t || 671 ((t = new RegExp("(^|[\\x20\\t\\r\\n\\f])" + e + "(" + z + "|$)")) && 672 T(e, function (e) { 673 return t.test(("string" == typeof e.className && e.className) || (void 0 !== e.getAttribute && e.getAttribute("class")) || ""); 674 })) 675 ); 676 }, 677 ATTR: function (e, t, n) { 678 return function (i) { 679 var s = ae.attr(i, e); 680 return null == s 681 ? "!=" === t 682 : !t || 683 ((s += ""), 684 "=" === t 685 ? s === n 686 : "!=" === t 687 ? s !== n 688 : "^=" === t 689 ? n && 0 === s.indexOf(n) 690 : "*=" === t 691 ? n && s.indexOf(n) > -1 692 : "$=" === t 693 ? n && s.slice(-n.length) === n 694 : "~=" === t 695 ? (" " + s.replace(R, " ") + " ").indexOf(n) > -1 696 : "|=" === t && (s === n || s.slice(0, n.length + 1) === n + "-")); 697 }; 698 }, 699 CHILD: function (e, t, n, i, s) { 700 var o = "nth" !== e.slice(0, 3), 701 r = "last" !== e.slice(-4), 702 a = "of-type" === t; 703 return 1 === i && 0 === s 704 ? function (e) { 705 return !!e.parentNode; 706 } 707 : function (t, n, l) { 708 var c, 709 d, 710 h, 711 u, 712 p, 713 f, 714 g = o !== r ? "nextSibling" : "previousSibling", 715 m = t.parentNode, 716 v = a && t.nodeName.toLowerCase(), 717 b = !l && !a, 718 y = !1; 719 if (m) { 720 if (o) { 721 for (; g; ) { 722 for (u = t; (u = u[g]);
722 ) if (a ? u.nodeName.toLowerCase() === v : 1 === u.nodeType) return !1; 723 f = g = "only" === e && !f && "nextSibling"; 724 } 725 return !0; 726 } 727 if (((f = [r ? m.firstChild : m.lastChild]), r && b)) { 728 for ( 729 y = (p = (c = (d = (h = (u = m)[w] || (u[w] = {}))[u.uniqueID] || (h[u.uniqueID] = {}))[e] || [])[0] === _ && c[1]) && c[2], u = p && m.childNodes[p]; 730 (u = (++p && u && u[g]) || (y = p = 0) || f.pop()); 731 732 ) 733 if (1 === u.nodeType && ++y && u === t) { 734 d[e] = [_, p, y]; 735 break; 736 } 737 } else if ((b && (y = p = (c = (d = (h = (u = t)[w] || (u[w] = {}))[u.uniqueID] || (h[u.uniqueID] = {}))[e] || [])[0] === _ && c[1]), !1 === y)) 738 for ( 739 ; 740 (u = (++p && u && u[g]) || (y = p = 0) || f.pop()) && 741 ((a ? u.nodeName.toLowerCase() !== v : 1 !== u.nodeType) || !++y || (b && ((d = (h = u[w] || (u[w] = {}))[u.uniqueID] || (h[u.uniqueID] = {}))[e] = [_, y]), u !== t)); 742 743 ); 744 return (y -= s) === i || (y % i == 0 && y / i >= 0); 745 } 746 }; 747 }, 748 PSEUDO: function (e, t) { 749 var n, 750 s = i.pseudos[e] || i.setFilters[e.toLowerCase()] || ae.error("unsupported pseudo: " + e); 751 return s[w] 752 ? s(t) 753 : s.length > 1 754 ? ((n = [e, e, "", t]), 755 i.setFilters.hasOwnProperty(e.toLowerCase()) 756 ? ce(function (e, n) { 757 for (var i, o = s(e, t), r = o.length; r--; ) e[(i = N(e, o[r]))] = !(n[i] = o[r]); 758 }) 759 : function (e) { 760 return s(e, 0, n); 761 }) 762 : s; 763 }, 764 }, 765 pseudos: { 766 not: ce(function (e) { 767 var t = [], 768 n = [], 769 i = a(e.replace(B, "$1")); 770 return i[w] 771 ? ce(function (e, t, n, s) { 772 for (var o, r = i(e, null, s, []), a = e.length; a--; ) (o = r[a]) && (e[a] = !(t[a] = o)); 773 }) 774 : function (e, s, o) { 775 return (t[0] = e), i(t, null, o, n), (t[0] = null), !n.pop(); 776 }; 777 }), 778 has: ce(function (e) { 779 return function (t) { 780 return ae(e, t).length > 0; 781 }; 782 }), 783 contains: ce(function (e) { 784 return ( 785 (e = e.replace(te, ne)), 786 function (t) { 787 return (t.textContent || s(t)).indexOf(e) > -1; 788 } 789 ); 790 }), 791 lang: ce(function (e) { 792 return ( 793 X.test(e || "") || ae.error("unsupported lang: " + e), 794 (e = e.replace(te, ne).toLowerCase()), 795 function (t) { 796 var n; 797 do { 798 if ((n = g ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang"))) return (n = n.toLowerCase()) === e || 0 === n.indexOf(e + "-"); 799 } while ((t = t.parentNode) && 1 === t.nodeType); 800 return !1; 801 } 802 ); 803 }), 804 target: function (t) { 805 var n = e.location && e.location.hash; 806 return n && n.slice(1) === t.id; 807 }, 808 root: function (e) { 809 return e === f; 810 }, 811 focus: function (e) { 812 return e === p.activeElement && (!p.hasFocus || p.hasFocus()) && !!(e.type || e.href || ~e.tabIndex); 813 }, 814 enabled: ge(!1), 815 disabled: ge(!0), 816 checked: function (e) { 817 var t = e.nodeName.toLowerCase(); 818 return ("input" === t && !!e.checked) || ("option" === t && !!e.selected); 819 }, 820 selected: function (e) { 821 return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected; 822 }, 823 empty: function (e) { 824 for (e = e.firstChild; e; e = e.nextSibling) if (e.nodeType < 6) return !1; 825 return !0; 826 }, 827 parent: function (e) { 828 return !i.pseudos.empty(e); 829 }, 830 header: function (e) { 831 return Z.test(e.nodeName); 832 }, 833 input: function (e) { 834 return K.test(e.nodeName); 835 }, 836 button: function (e) { 837 var t = e.nodeName.toLowerCase(); 838 return ("input" === t && "button" === e.type) || "button" === t; 839 }, 840 text: function (e) { 841 var t; 842 return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase()); 843 }, 844 first: me(function () { 845 return [0]; 846 }), 847 last: me(function (e, t) { 848 return [t - 1]; 849 }), 850 eq: me(function (e, t, n) { 851 return [n < 0 ? n + t : n]; 852 }), 853 even: me(function (e, t) { 854 for (var n = 0; n < t; n += 2) e.push(n); 855 return e; 856 }), 857 odd: me(function (e, t) { 858 for (var n = 1; n < t; n += 2) e.push(n); 859 return e; 860 }), 861 lt: me(function (e, t, n) { 862 for (var i = n < 0 ? n + t : n > t ? t : n; --i >= 0; ) e.push(i); 863 return e; 864 }), 865 gt: me(function (e, t, n) { 866 for (var i = n < 0 ? n + t : n; ++i < t; ) e.push(i); 867 return e; 868 }), 869 }, 870 }), 871 (i.pseudos.nth = i.pseudos.eq), 872 { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 })) 873 i.pseudos[t] = pe(t); 874 for (t in { submit: !0, reset: !0 }) i.pseudos[t] = fe(t); 875 function be() {} 876 function ye(e) { 877 for (var t = 0, n = e.length, i = ""; t < n; t++) i += e[t].value; 878 return i; 879 } 880 function we(e, t, n) { 881 var i = t.dir, 882 s = t.next, 883 o = s || i, 884 r = n && "parentNode" === o, 885 a = C++; 886 return t.first 887 ? function (t, n, s) { 888 for (;
888 (t = t[i]); ) if (1 === t.nodeType || r) return e(t, n, s); 889 return !1; 890 } 891 : function (t, n, l) { 892 var c, 893 d, 894 h, 895 u = [_, a]; 896 if (l) { 897 for (; (t = t[i]); ) if ((1 === t.nodeType || r) && e(t, n, l)) return !0; 898 } else 899 for (; (t = t[i]); ) 900 if (1 === t.nodeType || r) 901 if (((d = (h = t[w] || (t[w] = {}))[t.uniqueID] || (h[t.uniqueID] = {})), s && s === t.nodeName.toLowerCase())) t = t[i] || t; 902 else { 903 if ((c = d[o]) && c[0] === _ && c[1] === a) return (u[2] = c[2]); 904 if (((d[o] = u), (u[2] = e(t, n, l)))) return !0; 905 } 906 return !1; 907 }; 908 } 909 function xe(e) { 910 return e.length > 1 911 ? function (t, n, i) { 912 for (var s = e.length; s--; ) if (!e[s](t, n, i)) return !1; 913 return !0; 914 } 915 : e[0]; 916 } 917 function _e(e, t, n, i, s) { 918 for (var o, r = [], a = 0, l = e.length, c = null != t; a < l; a++) (o = e[a]) && ((n && !n(o, i, s)) || (r.push(o), c && t.push(a))); 919 return r; 920 } 921 function Ce(e, t, n, i, s, o) { 922 return ( 923 i && !i[w] && (i = Ce(i)), 924 s && !s[w] && (s = Ce(s, o)), 925 ce(function (o, r, a, l) { 926 var c, 927 d, 928 h, 929 u = [], 930 p = [], 931 f = r.length, 932 g = 933 o || 934 (function (e, t, n) { 935 for (var i = 0, s = t.length; i < s; i++) ae(e, t[i], n); 936 return n; 937 })(t || "*", a.nodeType ? [a] : a, []), 938 m = !e || (!o && t) ? g : _e(g, u, e, a, l), 939 v = n ? (s || (o ? e : f || i) ? [] : r) : m; 940 if ((n && n(m, v, a, l), i)) for (c = _e(v, p), i(c, [], a, l), d = c.length; d--; ) (h = c[d]) && (v[p[d]] = !(m[p[d]] = h)); 941 if (o) { 942 if (s || e) { 943 if (s) { 944 for (c = [], d = v.length; d--; ) (h = v[d]) && c.push((m[d] = h)); 945 s(null, (v = []), c, l); 946 } 947 for (d = v.length; d--; ) (h = v[d]) && (c = s ? N(o, h) : u[d]) > -1 && (o[c] = !(r[c] = h)); 948 } 949 } else (v = _e(v === r ? v.splice(f, v.length) : v)), s ? s(null, r, v, l) : M.apply(r, v); 950 }) 951 ); 952 } 953 function Te(e) { 954 for ( 955 var t, 956 n, 957 s, 958 o = e.length, 959 r = i.relative[e[0].type], 960 a = r || i.relative[" "],
961 l = r ? 1 : 0, 962 d = we( 963 function (e) { 964 return e === t; 965 }, 966 a, 967 !0 968 ), 969 h = we( 970 function (e) { 971 return N(t, e) > -1; 972 }, 973 a, 974 !0 975 ), 976 u = [ 977 function (e, n, i) { 978 var s = (!r && (i || n !== c)) || ((t = n).nodeType ? d(e, n, i) : h(e, n, i)); 979 return (t = null), s; 980 }, 981 ]; 982 l < o; 983 l++ 984 ) 985 if ((n = i.relative[e[l].type])) u = [we(xe(u), n)]; 986 else { 987 if ((n = i.filter[e[l].type].apply(null, e[l].matches))[w]) { 988 for (s = ++l; s < o && !i.relative[e[s].type]; s++); 989 return Ce( 990 l > 1 && xe(u), 991 l > 1 && ye(e.slice(0, l - 1).concat({ value: " " === e[l - 2].type ? "*" : "" })).replace(B, "$1"), 992 n, 993 l < s && Te(e.slice(l, s)), 994 s < o && Te((e = e.slice(s))), 995 s < o && ye(e) 996 ); 997 } 998 u.push(n); 999 } 1000 return xe(u); 1001 } 1002 return ( 1003 (be.prototype = i.filters = i.pseudos), 1004 (i.setFilters = new be()), 1005 (r = ae.tokenize = function (e, t) { 1006 var n, 1007 s, 1008 o, 1009 r, 1010 a, 1011 l, 1012 c, 1013 d = E[e + " "]; 1014 if (d) return t ? 0 : d.slice(0); 1015 for (a = e, l = [], c = i.preFilter; a; ) { 1016 for (r in ((n && !(s = q.exec(a))) || (s && (a = a.slice(s[0].length) || a), l.push((o = []))), 1017 (n = !1), 1018 (s = W.exec(a)) && ((n = s.shift()), o.push({ value: n, type: s[0].replace(B, " ") }), (a = a.slice(n.length))), 1019 i.filter)) 1020 !(s = Y[r].exec(a)) || (c[r] && !(s = c[r](s))) || ((n = s.shift()), o.push({ value: n, type: r, matches: s }), (a = a.slice(n.length))); 1021 if (!n) break; 1022 } 1023 return t ? a.length : a ? ae.error(e) : E(e, l).slice(0); 1024 }), 1025 (a = ae.compile = function (e, t) { 1026 var n, 1027 s = [], 1028 o = [], 1029 a = S[e + " "]; 1030 if (!a) { 1031 for (t || (t = r(e)), n = t.length; n--; ) (a = Te(t[n]))[w] ? s.push(a) : o.push(a); 1032 (a = S( 1033 e, 1034 (function (e, t) { 1035 var n = t.length > 0, 1036 s = e.length > 0, 1037 o = function (o, r, a, l, d) { 1038 var h, 1039 f, 1040 m, 1041 v = 0, 1042 b = "0", 1043 y = o && [], 1044 w = [], 1045 x = c, 1046 C = o || (s && i.find.TAG("*", d)), 1047 T = (_ += null == x ? 1 : Math.random() || 0.1), 1048 E = C.length; 1049 for (d && (c = r == p || r || d); b !== E && null != (h = C[b]); b++) { 1050 if (s && h) { 1051 for (f = 0, r || h.ownerDocument == p || (u(h), (a = !g)); (m = e[f++]); ) 1052 if (m(h, r || p, a)) { 1053 l.push(h); 1054 break; 1055 } 1056 d && (_ = T); 1057 } 1058 n && ((h = !m && h) && v--, o && y.push(h)); 1059 } 1060 if (((v += b), n && b !== v)) { 1061 for (f = 0; (m = t[f++]); ) m(y, w, r, a); 1062 if (o) { 1063 if (v > 0) for (; b--; ) y[b] || w[b] || (w[b] = P.call(l)); 1064 w = _e(w); 1065 } 1066 M.apply(l, w), d && !o && w.length >
1066 0 && v + t.length > 1 && ae.uniqueSort(l); 1067 } 1068 return d && ((_ = T), (c = x)), y; 1069 }; 1070 return n ? ce(o) : o; 1071 })(o, s) 1072 )), 1073 (a.selector = e); 1074 } 1075 return a; 1076 }), 1077 (l = ae.select = function (e, t, n, s) { 1078 var o, 1079 l, 1080 c, 1081 d, 1082 h, 1083 u = "function" == typeof e && e, 1084 p = !s && r((e = u.selector || e)); 1085 if (((n = n || []), 1 === p.length)) { 1086 if ((l = p[0] = p[0].slice(0)).length > 2 && "ID" === (c = l[0]).type && 9 === t.nodeType && g && i.relative[l[1].type]) { 1087 if (!(t = (i.find.ID(c.matches[0].replace(te, ne), t) || [])[0])) return n; 1088 u && (t = t.parentNode), (e = e.slice(l.shift().value.length)); 1089 } 1090 for (o = Y.needsContext.test(e) ? 0 : l.length; o-- && ((c = l[o]), !i.relative[(d = c.type)]); ) 1091 if ((h = i.find[d]) && (s = h(c.matches[0].replace(te, ne), (ee.test(l[0].type) && ve(t.parentNode)) || t))) { 1092 if ((l.splice(o, 1), !(e = s.length && ye(l)))) return M.apply(n, s), n; 1093 break; 1094 } 1095 } 1096 return (u || a(e, p))(s, t, !g, n, !t || (ee.test(e) && ve(t.parentNode)) || t), n; 1097 }), 1098 (n.sortStable = w.split("").sort(k).join("") === w), 1099 (n.detectDuplicates = !!h), 1100 u(), 1101 (n.sortDetached = de(function (e) { 1102 return 1 & e.compareDocumentPosition(p.createElement("fieldset")); 1103 })), 1104 de(function (e) { 1105 return (e.innerHTML = "<a href='#'></a>"), "#" === e.firstChild.getAttribute("href"); 1106 }) || 1107 he("type|href|height|width", function (e, t, n) { 1108 if (!n) return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2); 1109 }), 1110 (n.attributes && 1111 de(function (e) { 1112 return (e.innerHTML = "<input/>"), e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value"); 1113 })) || 1114 he("value", function (e, t, n) { 1115 if (!n && "input" === e.nodeName.toLowerCase()) return e.defaultValue; 1116 }), 1117 de(function (e) { 1118 return null == e.getAttribute("disabled"); 1119 }) || 1120 he(I, function (e, t, n) { 1121 var i; 1122 if (!n) return !0 === e[t] ? t.toLowerCase() : (i = e.getAttributeNode(t)) && i.specified ? i.value : null; 1123 }), 1124 ae 1125 ); 1126 })(i); 1127 (T.find = S), (T.expr = S.selectors), (T.expr[":"] = T.expr.pseudos), (T.uniqueSort = T.unique = S.uniqueSort), (T.text = S.getText), (T.isXMLDoc = S.isXML), (T.contains = S.contains), (T.escapeSelector = S.escape); 1128 var A = function (e, t, n) { 1129 for (var i = [], s = void 0 !== n; (e = e[t]) && 9 !== e.nodeType; ) 1130 if (1 === e.nodeType) { 1131 if (s && T(e).is(n)) break; 1132 i.push(e); 1133 } 1134 return i; 1135 }, 1136 k = function (e, t) { 1137 for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e); 1138 return n; 1139 }, 1140 $ = T.expr.match.needsContext; 1141 function L(e, t) {
1142 return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase(); 1143 } 1144 var P = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; 1145 function O(e, t, n) { 1146 return v(t) 1147 ? T.grep(e, function (e, i) { 1148 return !!t.call(e, i, e) !== n; 1149 }) 1150 : t.nodeType 1151 ? T.grep(e, function (e) { 1152 return (e === t) !== n; 1153 }) 1154 : "string" != typeof t 1155 ? T.grep(e, function (e) { 1156 return d.call(t, e) > -1 !== n; 1157 }) 1158 : T.filter(t, e, n); 1159 } 1160 (T.filter = function (e, t, n) { 1161 var i = t[0]; 1162 return ( 1163 n && (e = ":not(" + e + ")"), 1164 1 === t.length && 1 === i.nodeType 1165 ? T.find.matchesSelector(i, e) 1166 ? [i] 1167 : [] 1168 : T.find.matches( 1169 e, 1170 T.grep(t, function (e) { 1171 return 1 === e.nodeType; 1172 }) 1173 ) 1174 ); 1175 }), 1176 T.fn.extend({ 1177 find: function (e) { 1178 var t, 1179 n, 1180 i = this.length, 1181 s = this; 1182 if ("string" != typeof e) 1183 return this.pushStack( 1184 T(e).filter(function () { 1185 for (t = 0; t < i; t++) if (T.contains(s[t], this)) return !0; 1186 }) 1187 ); 1188 for (n = this.pushStack([]), t = 0; t < i; t++) T.find(e, s[t], n); 1189 return i > 1 ? T.uniqueSort(n) : n; 1190 }, 1191 filter: function (e) { 1192 return this.pushStack(O(this, e || [], !1)); 1193 }, 1194 not: function (e) { 1195 return this.pushStack(O(this, e || [], !0)); 1196 }, 1197 is: function (e) { 1198 return !!O(this, "string" == typeof e && $.test(e) ? T(e) : e || [], !1).length; 1199 }, 1200 }); 1201 var M, 1202 D = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/; 1203 ((T.fn.init = function (e, t, n) { 1204 var i, s; 1205 if (!e) return this; 1206 if (((n = n || M), "string" == typeof e)) { 1207 if (!(i = "<" === e[0] && ">" === e[e.length - 1] && e.length >= 3 ? [null, e, null] : D.exec(e)) || (!i[1] && t)) return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e); 1208 if (i[1]) { 1209 if (((t = t instanceof T ? t[0] : t), T.merge(this, T.parseHTML(i[1], t && t.nodeType ? t.ownerDocument || t : y, !0)), P.test(i[1]) && T.isPlainObject(t))) 1210 for (i in t) v(this[i]) ? this[i](t[i]) : this.attr(i, t[i]); 1211 return this; 1212 } 1213 return (s = y.getElementById(i[2])) && ((this[0] = s), (this.length = 1)), this; 1214 }
1215 return e.nodeType ? ((this[0] = e), (this.length = 1), this) : v(e) ? (void 0 !== n.ready ? n.ready(e) : e(T)) : T.makeArray(e, this); 1216 }).prototype = T.fn), 1217 (M = T(y)); 1218 var N = /^(?:parents|prev(?:Until|All))/, 1219 I = { children: !0, contents: !0, next: !0, prev: !0 }; 1220 function z(e, t) { 1221 for (; (e = e[t]) && 1 !== e.nodeType; ); 1222 return e; 1223 } 1224 T.fn.extend({ 1225 has: function (e) { 1226 var t = T(e, this), 1227 n = t.length; 1228 return this.filter(function () { 1229 for (var e = 0; e < n; e++) if (T.contains(this, t[e])) return !0; 1230 }); 1231 }, 1232 closest: function (e, t) { 1233 var n, 1234 i = 0, 1235 s = this.length, 1236 o = [], 1237 r = "string" != typeof e && T(e); 1238 if (!$.test(e)) 1239 for (; i < s; i++) 1240 for (n = this[i]; n && n !== t; n = n.parentNode) 1241 if (n.nodeType < 11 && (r ? r.index(n) > -1 : 1 === n.nodeType && T.find.matchesSelector(n, e))) { 1242 o.push(n); 1243 break; 1244 } 1245 return this.pushStack(o.length > 1 ? T.uniqueSort(o) : o); 1246 }, 1247 index: function (e) { 1248 return e ? ("string" == typeof e ? d.call(T(e), this[0]) : d.call(this, e.jquery ? e[0] : e)) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1; 1249 }, 1250 add: function (e, t) { 1251 return this.pushStack(T.uniqueSort(T.merge(this.get(), T(e, t)))); 1252 }, 1253 addBack: function (e) { 1254 return this.add(null == e ? this.prevObject : this.prevObject.filter(e)); 1255 }, 1256 }), 1257 T.each( 1258 { 1259 parent: function (e) { 1260 var t = e.parentNode; 1261 return t && 11 !== t.nodeType ? t : null; 1262 }, 1263 parents: function (e) { 1264 return A(e, "parentNode"); 1265 }, 1266 parentsUntil: function (e, t, n) { 1267 return A(e, "parentNode", n); 1268 }, 1269 next: function (e) { 1270 return z(e, "nextSibling"); 1271 }, 1272 prev: function (e) { 1273 return z(e, "previousSibling"); 1274 }, 1275 nextAll: function (e) { 1276 return A(e, "nextSibling"); 1277 }, 1278 prevAll: function (e) { 1279 return A(e, "previousSibling"); 1280 }, 1281 nextUntil: function (e, t, n) { 1282 return A(e, "nextSibling", n); 1283 }, 1284 prevUntil: function (e, t, n) { 1285 return A(e, "previousSibling", n); 1286 }, 1287 siblings: function (e) { 1288 return k((e.parentNode || {}).firstChild, e); 1289 }, 1290 children: function (e) { 1291 return k(e.firstChild); 1292 }, 1293 contents: function (e) { 1294 return null != e.contentDocument && r(e.contentDocument) ? e.contentDocument : (L(e, "template") && (e = e.content || e), T.merge([], e.childNodes)); 1295 }, 1296 }, 1297 function (e, t) { 1298 T.fn[e] = function (n, i) { 1299 var s = T.map(this, t, n); 1300 return "Until" !== e.slice(-5) && (i = n), i && "string" == typeof i && (s = T.filter(i, s)), this.length > 1 && (I[e] || T.uniqueSort(s), N.test(e) && s.reverse()), this.pushStack(s); 1301 }; 1302 } 1303 ); 1304 var j = /[^\x20\t\r\n\f]+/g; 1305 function F(e) { 1306 return e; 1307 } 1308 function H(e) { 1309 throw e; 1310 } 1311 function R(e, t, n, i) { 1312 var s; 1313 try { 1314 e && v((s = e.promise)) ? s.call(e).done(t).fail(n) : e && v((s = e.then)) ? s.call(e, t, n) : t.apply(void 0, [e].slice(i)); 1315 } catch (e) { 1316 n.apply(void 0, [e]); 1317 } 1318 } 1319 (T.Callbacks = function (e) { 1320 e = 1321 "string" == typeof e 1322 ? (function (e) { 1323 var t = {}; 1324 return ( 1325 T.each(e.match(j) || [], function (e, n) { 1326 t[n] = !0; 1327 }), 1328 t 1329 ); 1330 })(e) 1331 : T.extend({}, e); 1332 var t, 1333 n, 1334 i, 1335 s, 1336 o = [], 1337 r = [], 1338 a = -1, 1339 l = function () { 1340 for (s = s || e.once, i = t = !0; r.length; a = -1) for (n = r.shift(); ++a < o.length; ) !1 === o[a].apply(n[0], n[1]) && e.stopOnFalse && ((a = o.length), (n = !1)); 1341 e.memory || (n = !1), (t = !1), s && (o = n ? [] : ""); 1342 }, 1343 c = { 1344 add: function () { 1345 return ( 1346 o && 1347 (n && !t && ((a = o.length - 1), r.push(n)), 1348 (function t(n) { 1349 T.each(n, function (n, i) { 1350 v(i) ? (e.unique && c.has(i)) || o.push(i) : i && i.length && "string" !== _(i) && t(i); 1351 }); 1352 })(arguments), 1353 n && !t && l()), 1354 this 1355 ); 1356 }, 1357 remove: function () { 1358 return ( 1359 T.each(arguments, function (e, t) { 1360 for (var n; (n = T.inArray(t, o, n)) > -1; ) o.splice(n, 1), n <= a && a--; 1361 }), 1362 this 1363 ); 1364 }, 1365 has: function (e) { 1366 return e ? T.inArray(e, o) > -1 : o.length > 0; 1367 }, 1368 empty: function () { 1369 return o && (o = []), this; 1370 }, 1371 disable: function () {
1372 return (s = r = []), (o = n = ""), this; 1373 }, 1374 disabled: function () { 1375 return !o; 1376 }, 1377 lock: function () { 1378 return (s = r = []), n || t || (o = n = ""), this; 1379 }, 1380 locked: function () { 1381 return !!s; 1382 }, 1383 fireWith: function (e, n) { 1384 return s || ((n = [e, (n = n || []).slice ? n.slice() : n]), r.push(n), t || l()), this; 1385 }, 1386 fire: function () { 1387 return c.fireWith(this, arguments), this; 1388 }, 1389 fired: function () { 1390 return !!i; 1391 }, 1392 }; 1393 return c; 1394 }), 1395 T.extend({ 1396 Deferred: function (e) { 1397 var t = [ 1398 ["notify", "progress", T.Callbacks("memory"), T.Callbacks("memory"), 2], 1399 ["resolve", "done", T.Callbacks("once memory"), T.Callbacks("once memory"), 0, "resolved"], 1400 ["reject", "fail", T.Callbacks("once memory"), T.Callbacks("once memory"), 1, "rejected"], 1401 ], 1402 n = "pending", 1403 s = { 1404 state: function () { 1405 return n; 1406 }, 1407 always: function () { 1408 return o.done(arguments).fail(arguments), this; 1409 }, 1410 catch: function (e) { 1411 return s.then(null, e); 1412 }, 1413 pipe: function () { 1414 var e = arguments; 1415 return T.Deferred(function (n) { 1416 T.each(t, function (t, i) { 1417 var s = v(e[i[4]]) && e[i[4]]; 1418 o[i[1]](function () { 1419 var e = s && s.apply(this, arguments); 1420 e && v(e.promise) ? e.promise().progress(n.notify).done(n.resolve).fail(n.reject) : n[i[0] + "With"](this, s ? [e] : arguments); 1421 }); 1422 }), 1423 (e = null); 1424 }).promise(); 1425 }, 1426 then: function (e, n, s) { 1427 var o = 0; 1428 function r(e, t, n, s) { 1429 return function () { 1430 var a = this, 1431 l = arguments, 1432 c = function () { 1433 var i, c; 1434 if (!(e < o)) { 1435 if ((i = n.apply(a, l)) === t.promise()) throw new TypeError("Thenable self-resolution"); 1436 (c = i && ("object" == typeof i || "function" == typeof i) && i.then), 1437 v(c) 1438 ? s 1439 ? c.call(i, r(o, t, F, s), r(o, t, H, s)) 1440 : (o++, c.call(i, r(o, t, F, s), r(o, t, H, s), r(o, t, F, t.notifyWith))) 1441 : (n !== F && ((a = void 0), (l = [i])), (s || t.resolveWith)(a, l)); 1442 } 1443 }, 1444 d = s 1445 ? c 1446 : function () { 1447 try { 1448 c(); 1449 } catch (i) { 1450 T.Deferred.exceptionHook && T.Deferred.exceptionHook(i, d.stackTrace), e + 1 >= o && (n !== H && ((a = void 0), (l = [i])), t.rejectWith(a, l)); 1451 } 1452 }; 1453 e ? d() : (T.Deferred.getStackHook && (d.stackTrace = T.Deferred.getStackHook()), i.setTimeout(d)); 1454 }; 1455 } 1456 return T.Deferred(function (i) { 1457 t[0][3].add(r(0, i, v(s) ? s : F, i.notifyWith)), t[1][3].add(r(0, i, v(e) ? e : F)), t[2][3].add(r(0, i, v(n) ? n : H)); 1458 }).promise(); 1459 }, 1460 promise: function (e) { 1461 return null != e ? T.extend(e, s) : s; 1462 }, 1463 }, 1464 o = {}; 1465 return ( 1466 T.each(t, function (e, i) { 1467 var r = i[2], 1468 a = i[5]; 1469 (s[i[1]] = r.add), 1470 a && 1471 r.add( 1472 function () { 1473 n = a; 1474 }, 1475 t[3 - e][2].disable, 1476 t[3 - e][3].disable, 1477 t[0][2].lock, 1478 t[0][3].lock 1479 ), 1480 r.add(i[3].fire), 1481 (o[i[0]] = function () { 1482 return o[i[0] + "With"](this === o ? void 0 : this, arguments), this; 1483 }), 1484 (o[i[0] + "With"] = r.fireWith); 1485 }), 1486 s.promise(o), 1487 e && e.call(o, o), 1488 o 1489 ); 1490 }, 1491 when: function (e) { 1492 var t = arguments.length, 1493 n = t, 1494 i = Array(n), 1495 s = a.call(arguments), 1496 o = T.Deferred(), 1497 r = function (e) { 1498 return function (n) { 1499 (i[e] = this), (s[e] = arguments.length > 1 ? a.call(arguments) : n), --t || o.resolveWith(i, s); 1500 }; 1501 }; 1502 if (t <= 1 && (R(e, o.done(r(n)).resolve, o.reject, !t), "pending" === o.state() || v(s[n] && s[n].then))) return o.then(); 1503 for (; n--; ) R(s[n], r(n), o.reject); 1504 return o.promise(); 1505 }, 1506 }); 1507 var B = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; 1508 (T.Deferred.exceptionHook = function (e, t) { 1509 i.console && i.console.warn && e && B.test(e.name) && i.console.warn("jQuery.Deferred exception: " + e.message, e.stack, t); 1510 }), 1511 (T.readyException = function (e) { 1512 i.setTimeout(function () { 1513 throw e; 1514 }); 1515 }); 1516 var q = T.Deferred(); 1517 function W() { 1518 y.removeEventListener("DOMContentLoaded", W), i.removeEventListener("load", W), T.ready(); 1519 } 1520 (T.fn.ready = function (e) { 1521 return ( 1522 q.then(e).catch(function (e) { 1523 T.readyException(e); 1524 }), 1525 this 1526 ); 1527 }), 1528 T.extend({ 1529 isReady: !1, 1530 readyWait: 1, 1531 ready: function (e) { 1532 (!0 === e ? --T.readyWait : T.isReady) || ((T.isReady = !0), (!0 !== e && --T.readyWait > 0) || q.resolveWith(y, [T])); 1533 }, 1534 }), 1535 (T.ready.then = q.then), 1536 "complete" === y.readyState || ("loading" !== y.readyState && !y.documentElement.doScroll) ? i.setTimeout(T.ready) : (y.addEventListener("DOMContentLoaded", W), i.addEventListener("load", W)); 1537 var V = function (e, t, n, i, s, o, r) { 1538 var a = 0, 1539 l = e.length, 1540 c = null == n; 1541 if ("object" === _(n)) for (a in ((s
1541= !0), n)) V(e, t, a, n[a], !0, o, r); 1542 else if ( 1543 void 0 !== i && 1544 ((s = !0), 1545 v(i) || (r = !0), 1546 c && 1547 (r 1548 ? (t.call(e, i), (t = null)) 1549 : ((c = t), 1550 (t = function (e, t, n) { 1551 return c.call(T(e), n); 1552 }))), 1553 t) 1554 ) 1555 for (; a < l; a++) t(e[a], n, r ? i : i.call(e[a], a, t(e[a], n))); 1556 return s ? e : c ? t.call(e) : l ? t(e[0], n) : o; 1557 }, 1558 G = /^-ms-/, 1559 X = /-([a-z])/g; 1560 function Y(e, t) { 1561 return t.toUpperCase(); 1562 } 1563 function U(e) { 1564 return e.replace(G, "ms-").replace(X, Y); 1565 } 1566 var K = function (e) { 1567 return 1 === e.nodeType || 9 === e.nodeType || !+e.n
1567odeType; 1568 }; 1569 function Z() { 1570 this.expando = T.expando + Z.uid++; 1571 } 1572 (Z.uid = 1), 1573 (Z.prototype = { 1574 cache: function (e) { 1575 var t = e[this.expando]; 1576 return t || ((t = {}), K(e) && (e.nodeType ? (e[this.expando] = t) : Object.defineProperty(e, this.expando, { value: t, configurable: !0 }))), t; 1577 }, 1578 set: function (e, t, n) { 1579 var i, 1580 s = this.cache(e); 1581 if ("string" == typeof t) s[U(t)] = n; 1582 else for (i in t) s[U(i)] = t[i]; 1583 return s; 1584 }, 1585 get: function (e, t) { 1586 return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][U(t)]; 1587 }, 1588 access: function (e, t, n) { 1589 return void 0 === t || (t && "string" == typeof t && void 0 === n) ? this.get(e, t) : (this.set(e, t, n), void 0 !== n ? n : t); 1590 }, 1591 remove: function (e, t) { 1592 var n, 1593 i = e[this.expando]; 1594 if (void 0 !== i) { 1595 if (void 0 !== t) { 1596 n = (t = Array.isArray(t) ? t.map(U) : (t = U(t)) in i ? [t] : t.match(j) || []).length; 1597 for (; n--; ) delete i[t[n]]; 1598 } 1599 (void 0 === t || T.isEmptyObject(i)) && (e.nodeType ? (e[this.expando] = void 0) : delete e[this.expando]); 1600 } 1601 }, 1602 hasData: function (e) { 1603 var t = e[this.expando]; 1604 return void 0 !== t && !T.isEmptyObject(t); 1605 }, 1606 }); 1607 var Q = new Z(), 1608 J = new Z(), 1609 ee = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, 1610 te = /[A-Z]/g; 1611 function ne(e, t, n) { 1612 var i; 1613 if (void 0 === n && 1 === e.nodeType) 1614 if (((i = "data-" + t.replace(te, "-$&").toLowerCase()), "string" == typeof (n = e.getAttribute(i)))) { 1615 try { 1616 n = (function (e) { 1617 return "true" === e || ("false" !== e && ("null" === e ? null : e === +e + "" ? +e : ee.test(e) ? JSON.parse(e) : e)); 1618 })(n); 1619 } catch (e) {} 1620 J.set(e, t, n); 1621 } else n = void 0; 1622 return n; 1623 } 1624 T.extend({ 1625 hasData: function (e) { 1626 return J.hasData(e) || Q.hasData(e); 1627 }, 1628 data: function (e, t, n) { 1629 return J.access(e, t, n); 1630 }, 1631 removeData: function (e, t) { 1632 J.remove(e, t); 1633 }, 1634 _data: function (e, t, n) { 1635 return Q.access(e, t, n); 1636 }, 1637 _removeData: function (e, t) { 1638 Q.remove(e, t); 1639 }, 1640 }), 1641 T.fn.extend({ 1642 data: function (e, t) { 1643 var n, 1644 i, 1645 s, 1646 o = this[0], 1647 r = o && o.attributes; 1648 if (void 0 === e) { 1649 if (this.length && ((s = J.get(o)), 1 === o.nodeType && !Q.get(o, "hasDataAttrs"))) { 1650 for (n = r.length; n--; ) r[n] && 0 === (i = r[n].name).indexOf("data-") && ((i = U(i.slice(5))), ne(o, i, s[i])); 1651 Q.set(o, "hasDataAttrs", !0); 1652 } 1653 return s; 1654 } 1655 return "object" == typeof e 1656 ? this.each(function () { 1657 J.set(this, e); 1658 }) 1659 : V( 1660 this, 1661 function (t) { 1662 var n; 1663 if (o && void 0 === t) return void 0 !== (n = J.get(o, e)) || void 0 !== (n = ne(o, e)) ? n : void 0; 1664 this.each(function () { 1665 J.set(this, e, t); 1666 }); 1667 }, 1668 null, 1669 t, 1670 arguments.length > 1, 1671 null, 1672 !0 1673 ); 1674 }, 1675 removeData: function (e) { 1676 return this.each(function () { 1677 J.remove(this, e); 1678 }); 1679 }, 1680 }), 1681 T.extend({ 1682 queue: function (e, t, n) { 1683 var i; 1684 if (e) return (t = (t || "fx") + "queue"), (i = Q.get(e, t)), n && (!i || Array.isArray(n) ? (i = Q.access(e, t, T.makeArray(n))) : i.push(n)), i || []; 1685 }, 1686 dequeue: function (e, t) { 1687 t = t || "fx"; 1688 var n = T.queue(e, t), 1689 i = n.length, 1690 s = n.shift(), 1691 o = T._queueHooks(e, t); 1692 "inprogress" === s && ((s = n.shift()), i--), 1693 s && 1694 ("fx" === t && n.unshift("inprogress"), 1695 delete o.stop, 1696 s.call( 1697 e, 1698 function () { 1699 T.dequeue(e, t); 1700 }, 1701 o 1702 )), 1703 !i && o && o.empty.fire(); 1704 }, 1705 _queueHooks: function (e, t) { 1706 var n = t + "queueHooks"; 1707 return ( 1708 Q.get(e, n) || 1709 Q.access(e, n, { 1710 empty: T.Callbacks("once memory").add(function () { 1711 Q.remove(e, [t + "queue", n]); 1712 }), 1713 }) 1714 ); 1715 }, 1716 }), 1717 T.fn.extend({ 1718 queue: function (e, t) { 1719 var n = 2; 1720 return ( 1721 "string" != typeof e && ((t = e), (e = "fx"), n--), 1722 arguments.length < n 1723 ? T.queue(this[0], e) 1724 : void 0 === t 1725 ? this 1726 : this.each(function () { 1727 var n = T.queue(this, e, t); 1728 T._queueHooks(this, e), "fx" === e && "inprogress" !== n[0] && T.dequeue(this, e); 1729 }) 1730 ); 1731 }, 1732 dequeue: function (e) { 1733 return this.each(function () { 1734 T.dequeue(this, e); 1735 }); 1736 }, 1737 clearQueue: function (e) { 1738 return this.queue(e || "fx", []); 1739 }, 1740 promise: function (e, t) { 1741 var n, 1742 i = 1, 1743 s = T.Deferred(), 1744 o = this, 1745 r = this.length, 1746 a = function () { 1747 --i || s.resolveWith(o, [o]); 1748 }; 1749 for ("string" != typeof e && ((t = e), (e = void 0)), e = e || "fx"; r--; ) (n = Q.get(o[r], e + "queueHooks")) && n.empty && (i++, n.empty.add(a)); 1750 return a(), s.promise(t); 1751 }, 1752 }); 1753 var ie = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, 1754 se = new RegExp("^(?:([+-])=|)(" + ie + ")([a-z
1754%]*)$", "i"), 1755 oe = ["Top", "Right", "Bottom", "Left"], 1756 re = y.documentElement, 1757 ae = function (e) { 1758 return T.contains(e.ownerDocument, e); 1759 }, 1760 le = { composed: !0 }; 1761 re.getRootNode && 1762 (ae = function (e) { 1763 return T.contains(e.ownerDocument, e) || e.getRootNode(le) === e.ownerDocument; 1764 }); 1765 var ce = function (e, t) { 1766 return "none" === (e = t || e).style.display || ("" === e.style.display && ae(e) && "none" === T.css(e, "display")); 1767 }; 1768 function de(e, t, n, i) { 1769 var s, 1770 o, 1771 r = 20, 1772 a = i 1773 ? function () { 1774 return i.cur(); 1775 } 1776 : function () { 1777 return T.css(e, t, ""); 1778 }, 1779 l = a(), 1780 c = (n && n[3]) || (T.cssNumber[t] ? "" : "px"), 1781 d = e.nodeType && (T.cssNumber[t] || ("px" !== c && +l)) && se.exec(T.css(e, t)); 1782 if (d && d[3] !== c) { 1783 for (l /= 2, c = c || d[3], d = +l || 1; r--; ) T.style(e, t, d + c), (1 - o) * (1 - (o = a() / l || 0.5)) <= 0 && (r = 0), (d /= o); 1784 (d *= 2), T.style(e, t, d + c), (n = n || []); 1785 } 1786 return n && ((d = +d || +l || 0), (s = n[1] ? d + (n[1] + 1) * n[2] : +n[2]), i && ((i.unit = c), (i.start = d), (i.end = s))), s; 1787 } 1788 var he = {}; 1789 function ue(e) { 1790 var t, 1791 n = e.ownerDocument, 1792 i = e.nodeName, 1793 s = he[i]; 1794 return s || ((t = n.body.appendChild(n.createElement(i))), (s = T.css(t, "dis
1794play")), t.parentNode.removeChild(t), "none" === s && (s = "block"), (he[i] = s), s); 1795 } 1796 function pe(e, t) { 1797 for (var n, i, s = [], o = 0, r = e.length; o < r; o++) 1798 (i = e[o]).style && 1799 ((n = i.style.display), 1800 t ? ("none" === n && ((s[o] = Q.get(i, "display") || null), s[o] || (i.style.display = "")), "" === i.style.display && ce(i) && (s[o] = ue(i))) : "none" !== n && ((s[o] = "none"), Q.set(i, "display", n))); 1801 for (o = 0; o < r; o++) null != s[o] && (e[o].style.display = s[o]); 1802 return e; 1803 } 1804 T.fn.extend({ 1805 show: function () { 1806 return pe(this, !0); 1807 }, 1808 hide: function () { 1809 return pe(this); 1810 }, 1811 toggle: function (e) { 1812 return "boolean" == typeof e 1813 ? e 1814 ? this.show() 1815 : this.hide() 1816 : this.each(function () { 1817 ce(this) ? T(this).show() : T(this).hide(); 1818 }); 1819 }, 1820 }); 1821 var fe, 1822 ge, 1823 me = /^(?:checkbox|radio)$/i, 1824 ve = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i, 1825 be = /^$|^module$|\/(?:java|ecma)script/i; 1826 (fe = y.createDocumentFragment().appendChild(y.createElement("div"))), 1827 (ge = y.createElement("input")).setAttribute("type", "radio"), 1828 ge.setAttribute("checked", "checked"), 1829 ge.setAttribute("name", "t"), 1830 fe.appendChild(ge), 1831 (m.checkClone = fe.cloneNode(!0).cloneNode(!0).lastChild.checked), 1832 (fe.innerHTML = "<textarea>x</textarea>"), 1833 (m.noCloneChecked = !!fe.cloneNode(!0).lastChild.defaultValue), 1834 (fe.innerHTML = "<option></option>"), 1835 (m.option = !!fe.lastChild); 1836 var ye = { 1837 thead: [1, "<table>", "</table>"], 1838 col: [2, "<table><colgroup>", "</colgroup></table>"], 1839 tr: [2, "<table><tbody>", "</tbody></table>"], 1840 td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], 1841 _default: [0, "", ""], 1842 }; 1843 function we(e, t) { 1844 var n; 1845 return (n = void 0 !== e.getElementsByTagName ? e.getElementsByTagName(t || "*") : void 0 !== e.querySelectorAll ? e.querySelectorAll(t || "*") : []), void 0 === t || (t && L(e, t)) ? T.merge([e], n) : n; 1846 } 1847 function xe(e, t) { 1848 for (var n = 0, i = e.length; n < i; n++) Q.set(e[n], "globalEval", !t || Q.get(t[n], "globalEval")); 1849 } 1850 (ye.tbody = ye.tfoot = ye.colgroup = ye.caption = ye.thead), (ye.th = ye.td), m.option || (ye.optgroup = ye.option = [1, "<select multiple='multiple'>", "</select>"]); 1851 var _e = /<|&#?\w+;/; 1852 function Ce(e, t, n, i, s) { 1853 for (var o, r, a, l, c, d, h = t.createDocumentFragment(), u = [], p = 0, f = e.length; p < f; p++) 1854 if ((o = e[p]) || 0 === o) 1855 if ("object" === _(o)) T.merge(u, o.nodeType ? [o] : o); 1856 else if (_e.test(o)) { 1857 for (r = r || h.appendChild(t.createElement("div")), a = (ve.exec(o) || ["", ""])[1].toLowerCase(), l = ye[a] || ye._default, r.innerHTML = l[1] + T.htmlPrefilter(o) + l[2], d = l[0]; d--; ) 1858 r = r.lastChild; 1859 T.merge(u, r.childNodes), ((r = h.firstChild).textContent = ""); 1860 } else u.push(t.createTextNode(o)); 1861 for (h.textContent = "", p = 0; (o = u[p++]); ) 1862 if (i && T.inArray(o, i) > -1) s && s.push(o); 1863 else if (((c = ae(o)), (r = we(h.appendChild(o), "script")), c && xe(r), n)) for (d = 0; (o = r[d++]); ) be.test(o.type || "") && n.push(o); 1864 return h; 1865 } 1866 var Te = /^([^.]*)(?:\.(.+)|)/; 1867 function Ee() { 1868 return !0; 1869 } 1870 function Se() { 1871 return !1; 1872 } 1873 function Ae(e, t) { 1874 return ( 1875 (e === 1876 (function () { 1877 try { 1878 return y.activeElement; 1879 } catch (e) {} 1880 })()) == 1881 ("focus" === t) 1882 ); 1883 } 1884 function ke(e, t, n, i, s, o) { 1885 var r, a; 1886 if ("object" == typeof t) { 1887 for (a in ("string" != typeof n && ((i = i || n), (n = void 0)), t)) ke(e, a, n, i, t[a], o); 1888 return e; 1889 } 1890 if ((null == i && null == s ? ((s = n), (i = n = void 0)) : null == s && ("string" == typeof n ? ((s = i), (i = void 0)) : ((s = i), (i = n), (n = void 0))), !1 === s)) s = Se; 1891 else if (!s) return e; 1892 return ( 1893 1 === o && 1894 ((r = s), 1895 (s = function (e) { 1896 return T().off(e), r.apply(this, arguments); 1897 }), 1898 (s.guid = r.guid || (r.guid = T.guid++))), 1899 e.each(function () { 1900 T.event.add(this, t, s, i, n); 1901 }) 1902 ); 1903 } 1904 function $e(e, t, n) { 1905 n 1906 ? (Q.set(e, t, !1), 1907 T.event.add(e, t, { 1908 namespace: !1, 1909 handler: function (e) { 1910 var i, 1911 s, 1912 o = Q.get(this, t); 1913 if (1 & e.isTrigger && this[t]) { 1914 if (o.length) (T.event.special[t] || {}).delegateType && e.stopPropagation(); 1915 else if (((o = a.call(arguments)), Q.set(this, t, o), (i = n(this, t)), this[t](), o !== (s = Q.get(this, t)) || i ? Q.set(this, t, !1) : (s = {}), o !== s)) 1916 return e.stopImmediatePropagation(), e.preventDefault(), s && s.value; 1917 } else o.length && (Q.set(this, t, { value: T.event.trigger(T.extend(o[0], T.Event.prototype), o.slice(1), this) }), e.stopImmediatePropagation()); 1918 }, 1919 })) 1920 : void 0 === Q.get(e, t) && T.event.add(e, t, Ee); 1921 } 1922 (T.event = { 1923 global: {}, 1924 add: function (e, t, n, i, s) { 1925 var o, 1926 r, 1927 a, 1928 l, 1929 c, 1930 d, 1931 h, 1932 u, 1933 p, 1934 f, 1935 g, 1936 m = Q.get(e); 1937 if (K(e)) 1938 for ( 1939 n.handler && ((n = (o = n).handler), (s = o.selector)), 1940 s && T.find.matchesSelector(re, s), 1941 n.guid || (n.guid = T.guid++), 1942 (l = m.events) || (l = m.events = Object.create(null)), 1943 (r = m.handle) || 1944 (r = m.handle = function (t) { 1945 return void 0 !== T && T.event.triggered !== t.type ? T.event.dispatch.apply(e, arguments) : void 0; 1946 }), 1947 c = (t = (t || "").match(j) || [""]).length; 1948 c--; 1949 1950 ) 1951 (p = g = (a = Te.exec(t[c]) || [])[1]), 1952 (f = (a[2] || "").split(".").sort()), 1953 p && 1954 ((h = T.event.special[p] || {}), 1955 (p = (s ? h.delegateType : h.bindType) || p), 1956 (h = T.event.special[p] || {}), 1957 (d = T.extend({ type: p, origType: g, data: i, handler: n, guid: n.guid, selector: s, needsContext: s && T.expr.match.needsContext.test(s), namespace: f.join(".") }, o)), 1958 (u = l[p]) || (((u = l[p] = []).delegateCount = 0), (h.setup && !1 !== h.setup.call(e, i, f, r)) || (e.addEventListener && e.addEventListener(p, r))), 1959 h.add && (h.add.call(e, d), d.handler.guid || (d.handler.guid = n.guid)), 1960 s ? u.splice(u.delegateCount++, 0, d) : u.push(d), 1961 (T.event.global[p] = !0)); 1962 }, 1963 remove: function (e, t, n, i, s) { 1964 var o, 1965 r, 1966 a, 1967 l, 1968 c, 1969 d, 1970 h, 1971 u, 1972 p, 1973 f, 1974 g, 1975 m = Q.hasData(e) && Q.get(e); 1976 if (m && (l = m.events)) { 1977 for (c = (t = (t || "").match(j) || [""]).length; c--; ) 1978 if (((p = g = (a = Te.exec(t[c]) || [])[1]), (f = (a[2] || "").split(".").sort()), p)) { 1979 for (h = T.event.special[p] || {}, u = l[(p = (i ? h.delegateType : h.bindType) || p)] || [], a = a[2] && new RegExp("(^|\\.)" + f.join("\\.(?:.*\\.|)") + "(\\.|$)"), r = o = u.length; o--; ) 1980 (d = u[o]), 1981 (!s && g !== d.origType) || 1982 (n && n.guid !== d.guid) || 1983 (a && !a.test(d.namespace)) || 1984 (i && i !== d.selector && ("**" !== i || !d.selector)) || 1985 (u.splice(o, 1), d.selector && u.delegateCount--, h.remove && h.remove.call(e, d)); 1986 r && !u.length && ((h.teardown && !1 !== h.teardown.call(e, f, m.handle)) || T.removeEvent(e, p, m.handle), delete l[p]); 1987 } else for (p in l) T.event.remove(e, p + t[c], n, i, !0); 1988 T.isEmptyObject(l) && Q.remove(e, "handle events"); 1989 } 1990 }, 1991 dispatch: function (e) { 1992 var t, 1993 n, 1994 i, 1995 s, 1996 o, 1997 r, 1998 a = new Array(arguments.length), 1999 l = T.event.fix(e), 2000 c = (Q.get(this, "events") || Object.create(null))[l.type] || [], 2001 d = T.event.special[l.type] || {}; 2002 for (a[0] = l, t = 1; t < arguments.length; t++) a[t] = arguments[t]; 2003 if (((l.delegateTarget = this), !d.preDispatch || !1 !== d.preDispatch.call(this, l))) { 2004 for (r = T.event.handlers.call(this, l, c), t = 0; (s = r[t++]) && !l.isPropagationStopped(); ) 2005 for (l.currentTarget = s.elem, n = 0; (o = s.handlers[n++]) && !l.isImmediatePropagationStopped(); ) 2006 (l.rnamespace && !1 !== o.namespace && !l.rnamespace.test(o.namespace)) || 2007 ((l.handleObj = o), 2008 (l.data = o.data), 2009 void 0 !== (i = ((T.event.special[o.origType] || {}).handle || o.handler).apply(s.elem, a)) && !1 === (l.result = i) && (l.preventDefault(), l.stopPropagation())); 2010 return d.postDispatch && d.postDispatch.call(this, l), l.result; 2011 } 2012 }, 2013 handlers: function (e, t) { 2014 var n, 2015 i, 2016 s, 2017 o, 2018 r, 2019 a = [], 2020 l = t.delegateCount, 2021 c = e.target; 2022 if (l && c.nodeType && !("click" === e.type && e.button >= 1)) 2023 for (; c !== this; c = c.parentNode || this) 2024 if (1 === c.nodeType && ("click" !== e.type || !0 !== c.disabled)) { 2025 for (o = [], r = {}, n = 0; n < l; n++) void 0 === r[(s = (i = t[n]).selector + " ")] && (r[s] = i.needsContext ? T(s, this).index(c) > -1 : T.find(s, this, null, [c]).length), r[s] && o.push(i); 2026 o.length && a.push({ elem: c, handlers: o }); 2027 } 2028 return (c = this), l < t.length && a.push({ elem: c, handlers: t.slice(l) }), a; 2029 }, 2030 addProp: function (e, t) { 2031 Object.defineProperty(T.Event.prototype, e, { 2032 enumerable: !0, 2033 configurable: !0, 2034 get: v(t) 2035 ? function () { 2036 if (this.originalEvent) return t(this.originalEvent); 2037 } 2038 : function () { 2039 if (this.originalEvent) return this.originalEvent[e]; 2040 }, 2041 set: function (t) { 2042 Object.defineProperty(this, e, { enumerable: !0, configurable: !0, writable: !0, value: t }); 2043 }, 2044 }); 2045 }, 2046 fix: function (e) { 2047 return e[T.expando] ? e : new T.Event(e); 2048 }, 2049 special: { 2050 load: { noBubble: !0 },
2051 click: { 2052 setup: function (e) { 2053 var t = this || e; 2054 return me.test(t.type) && t.click && L(t, "input") && $e(t, "click", Ee), !1; 2055 }, 2056 trigger: function (e) { 2057 var t = this || e; 2058 return me.test(t.type) && t.click && L(t, "input") && $e(t, "click"), !0; 2059 }, 2060 _default: function (e) { 2061 var t = e.target; 2062 return (me.test(t.type) && t.click && L(t, "input") && Q.get(t, "click")) || L(t, "a"); 2063 }, 2064 }, 2065 beforeunload: { 2066 postDispatch: function (e) { 2067 void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result); 2068 }, 2069 }, 2070 }, 2071 }), 2072 (T.removeEvent = function (e, t, n) { 2073 e.removeEventListener && e.removeEventListener(t, n); 2074 }), 2075 (T.Event = function (e, t) { 2076 if (!(this instanceof T.Event)) return new T.Event(e, t); 2077 e && e.type 2078 ? ((this.originalEvent = e), 2079 (this.type = e.type), 2080 (this.isDefaultPrevented = e.defaultPrevented || (void 0 === e.defaultPrevented && !1 === e.returnValue) ? Ee : Se), 2081 (this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target), 2082 (this.currentTarget = e.currentTarget), 2083 (this.relatedTarget = e.relatedTarget)) 2084 : (this.type = e), 2085 t && T.extend(this, t), 2086 (this.timeStamp = (e && e.timeStamp) || Date.now()), 2087 (this[T.expando] = !0); 2088 }), 2089 (T.Event.prototype = { 2090 constructor: T.Event, 2091 isDefaultPrevented: Se, 2092 isPropagationStopped: Se, 2093 isImmediatePropagationStopped: Se, 2094 isSimulated: !1, 2095 preventDefault: function () { 2096 var e = this.originalEvent; 2097 (this.isDefaultPrevented = Ee), e && !this.isSimulated && e.preventDefault(); 2098 }, 2099 stopPropagation: function () { 2100 var e = this.originalEvent; 2101 (this.isPropagationStopped = Ee), e && !this.isSimulated && e.stopPropagation(); 2102 }, 2103 stopImmediatePropagation: function () { 2104 var e = this.originalEvent; 2105 (this.isImmediatePropagationStopped = Ee), e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation(); 2106 }, 2107 }), 2108 T.each( 2109 { 2110 altKey: !0, 2111 bubbles: !0, 2112 cancelable: !0, 2113 changedTouches: !0, 2114 ctrlKey: !0, 2115 detail: !0, 2116 eventPhase: !0, 2117 metaKey: !0, 2118 pageX: !0, 2119 pageY: !0, 2120 shiftKey: !0, 2121 view: !0, 2122 char: !0, 2123 code: !0,
2124 charCode: !0, 2125 key: !0, 2126 keyCode: !0, 2127 button: !0, 2128 buttons: !0, 2129 clientX: !0, 2130 clientY: !0, 2131 offsetX: !0, 2132 offsetY: !0, 2133 pointerId: !0, 2134 pointerType: !0, 2135 screenX: !0, 2136 screenY: !0, 2137 targetTouches: !0, 2138 toElement: !0, 2139 touches: !0, 2140 which: !0, 2141 }, 2142 T.event.addProp 2143 ), 2144 T.each({ focus: "focusin", blur: "focusout" }, function (e, t) { 2145 T.event.special[e] = { 2146 setup: function () { 2147 return $e(this, e, Ae), !1; 2148 }, 2149 trigger: function () { 2150 return $e(this, e), !0; 2151 }, 2152 _default: function (t) { 2153 return Q.get(t.target, e); 2154 }, 2155 delegateType: t, 2156 }; 2157 }), 2158 T.each({ mouseenter: "mouseover", mouseleave: "mouseout", pointerenter: "pointerover", pointerleave: "pointerout" }, function (e, t) { 2159 T.event.special[e] = { 2160 delegateType: t, 2161 bindType: t, 2162 handle: function (e) { 2163 var n, 2164 i = this, 2165 s = e.relatedTarget, 2166 o = e.handleObj; 2167 return (s && (s === i || T.contains(i, s))) || ((e.type = o.origType), (n = o.handler.apply(this, arguments)), (e.type = t)), n; 2168 }, 2169 }; 2170 }), 2171 T.fn.extend({ 2172 on: function (e, t, n, i) { 2173 return ke(this, e, t, n, i); 2174 }, 2175 one: function (e, t, n, i) { 2176 return ke(this, e, t, n, i, 1); 2177 }, 2178 off: function (e, t, n) { 2179 var i, s; 2180 if (e && e.preventDefault && e.handleObj) return (i = e.handleObj), T(e.delegateTarget).off(i.namespace ? i.origType + "." + i.namespace : i.origType, i.selector, i.handler), this; 2181 if ("object" == typeof e) { 2182 for (s in e) this.off(s, t, e[s]); 2183 return this; 2184 } 2185 return ( 2186 (!1 !== t && "function" != typeof t) || ((n = t), (t = void 0)), 2187 !1 === n && (n = Se), 2188 this.each(function () { 2189 T.event.remove(this, e, n, t); 2190 }) 2191 ); 2192 }, 2193 }); 2194 var Le = /<script|<style|<link/i, 2195 Pe = /checked\s*(?:[^=]|=\s*.checked.)/i, 2196 Oe = /^\s*<!\[CDATA\[|\]\]>\s*$/g; 2197 function Me(e, t) { 2198 return (L(e, "table") && L(11 !== t.nodeType ? t : t.firstChild, "tr") && T(e).children("tbody")[0]) || e; 2199 } 2200 function De(e) { 2201 return (e.type = (null !== e.getAttribute("type")) + "/" + e.type), e; 2202 } 2203 function Ne(e) { 2204 return "true/" === (e.type || "").slice(0, 5) ? (e.type = e.type.slice(5)) : e.removeAttribute("type"), e; 2205 } 2206 function Ie(e, t) { 2207 var n, i, s, o, r, a; 2208 if (1 === t.nodeType) { 2209 if (Q.hasData(e) && (a = Q.get(e).events)) for (s in (Q.remove(t, "handle events"), a)) for (n = 0, i = a[s].length; n < i; n++) T.event.add(t, s, a[s][n]); 2210 J.hasData(e) && ((o = J.access(e)), (r = T.extend({}, o)), J.set(t, r)); 2211 } 2212 } 2213 function ze(e, t) { 2214 var n = t.nodeName.toLowerCase(); 2215 "input" === n && me.test(e.type) ? (t.checked = e.checked) : ("input" !== n && "textarea" !== n) || (t.defaultValue = e.defaultValue); 2216 } 2217 function je(e, t, n, i) { 2218 t = l(t); 2219 var s, 2220 o, 2221 r, 2222 a, 2223 c, 2224 d, 2225 h = 0, 2226 u = e.length, 2227 p = u - 1, 2228 f = t[0], 2229 g = v(f); 2230 if (g || (u > 1 && "string" == typeof f && !m.checkClone && Pe.test(f))) 2231 return e.each(function (s) { 2232 var o = e.eq(s); 2233 g && (t[0] = f.call(this, s, o.html())), je(o, t, n, i); 2234 }); 2235 if (u && ((o = (s = Ce(t, e[0].ownerDocument, !1, e, i)).firstChild), 1 === s.childNodes.length && (s = o), o || i)) { 2236 for (a = (r = T.map(we(s, "script"), De)).length; h < u; h++) (c = s), h !== p && ((c = T.clone(c, !0, !0)), a && T.merge(r, we(c, "script"))), n.call(e[h], c, h); 2237 if (a) 2238 for (d = r[r.length - 1].ownerDocument, T.map(r, Ne), h = 0; h < a; h++) 2239 (c = r[h]), 2240 be.test(c.type || "") && 2241 !Q.access(c, "globalEval") && 2242 T.contains(d, c) && 2243 (c.src && "module" !== (c.type || "").toLowerCase() ? T._evalUrl && !c.noModule && T._evalUrl(c.src, { nonce: c.nonce || c.getAttribute("nonce") }, d) : x(c.textContent.replace(Oe, ""), c, d)); 2244 } 2245 return e; 2246 } 2247 function Fe(e, t, n) { 2248 for (var i, s = t ? T.filter(t, e) : e, o = 0; null != (i = s[o]); o++) n || 1 !== i.nodeType || T.cleanData(we(i)), i.parentNode && (n && ae(i) && xe(we(i, "script")), i.parentNode.removeChild(i)); 2249 return e; 2250 } 2251 T.extend({ 2252 htmlPrefilter: function (e) { 2253 return e; 2254 }, 2255 clone: function (e, t, n) { 2256 var i, 2257 s, 2258 o, 2259 r, 2260 a = e.cloneNode(!0), 2261 l = ae(e);
2262 if (!(m.noCloneChecked || (1 !== e.nodeType && 11 !== e.nodeType) || T.isXMLDoc(e))) for (r = we(a), i = 0, s = (o = we(e)).length; i < s; i++) ze(o[i], r[i]); 2263 if (t) 2264 if (n) for (o = o || we(e), r = r || we(a), i = 0, s = o.length; i < s; i++) Ie(o[i], r[i]); 2265 else Ie(e, a); 2266 return (r = we(a, "script")).length > 0 && xe(r, !l && we(e, "script")), a; 2267 }, 2268 cleanData: function (e) { 2269 for (var t, n, i, s = T.event.special, o = 0; void 0 !== (n = e[o]); o++) 2270 if (K(n)) { 2271 if ((t = n[Q.expando])) { 2272 if (t.events) for (i in t.events) s[i] ? T.event.remove(n, i) : T.removeEvent(n, i, t.handle); 2273 n[Q.expando] = void 0; 2274 } 2275 n[J.expando] && (n[J.expando] = void 0); 2276 } 2277 }, 2278 }), 2279 T.fn.extend({ 2280 detach: function (e) { 2281 return Fe(this, e, !0); 2282 }, 2283 remove: function (e) { 2284 return Fe(this, e); 2285 }, 2286 text: function (e) { 2287 return V( 2288 this, 2289 function (e) { 2290 return void 0 === e 2291 ? T.text(this) 2292 : this.empty().each(function () { 2293 (1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType) || (this.textContent = e); 2294 }); 2295 }, 2296 null, 2297 e, 2298 arguments.length 2299 ); 2300 }, 2301 append: function () { 2302 return je(this, arguments, function (e) { 2303 (1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType) || Me(this, e).appendChild(e); 2304 }); 2305 }, 2306 prepend: function () { 2307 return je(this, arguments, function (e) { 2308 if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { 2309 var t = Me(this, e); 2310 t.insertBefore(e, t.firstChild); 2311 } 2312 }); 2313 }, 2314 before: function () { 2315 return je(this, arguments, function (e) { 2316 this.parentNode && this.parentNode.insertBefore(e, this); 2317 }); 2318 }, 2319 after: function () { 2320 return je(this, arguments, function (e) { 2321 this.parentNode && this.parentNode.insertBefore(e, this.nextSibling); 2322 }); 2323 }, 2324 empty: function () { 2325 for (var e, t = 0; null != (e = this[t]); t++) 1 === e.nodeType && (T.cleanData(we(e, !1)), (e.textContent = "")); 2326 return this; 2327 }, 2328 clone: function (e, t) { 2329 return ( 2330 (e = null != e && e), 2331 (t = null == t ? e : t), 2332 this.map(function () { 2333 return T.clone(this, e, t); 2334 }) 2335 ); 2336 }, 2337 html: function (e) { 2338 return V( 2339 this, 2340 function (e) { 2341 var t = this[0] || {}, 2342 n = 0, 2343 i = this.length; 2344 if (void 0 === e && 1 === t.nodeType) return t.innerHTML; 2345 if ("string" == typeof e && !Le.test(e) && !ye[(ve.exec(e) || ["", ""])[1].toLowerCase()]) { 2346 e = T.htmlPrefilter(e); 2347 try { 2348 for (; n < i; n++) 1 === (t = this[n] || {}).nodeType && (T.cleanData(we(t, !1)), (t.innerHTML = e)); 2349 t = 0; 2350 } catch (e) {} 2351 } 2352 t && this.empty().append(e); 2353 }, 2354 null, 2355 e, 2356 arguments.length 2357 ); 2358 }, 2359 replaceWith: function () { 2360 var e = []; 2361 return je( 2362 this, 2363 arguments, 2364 function (t) { 2365 var n = this.parentNode; 2366 T.inArray(this, e) < 0 && (T.cleanData(we(this)), n && n.replaceChild(t, this)); 2367 }, 2368 e 2369 ); 2370 }, 2371 }), 2372 T.each({ appendTo: "append", prependTo: "prepe
2372nd", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith" }, function (e, t) { 2373 T.fn[e] = function (e) { 2374 for (var n, i = [], s = T(e), o = s.length - 1, r = 0; r <= o; r++) (n = r === o ? this : this.clone(!0)), T(s[r])[t](n), c.apply(i, n.get()); 2375 return this.pushStack(i); 2376 }; 2377 }); 2378 var He = new RegExp("^(" + ie + ")(?!px)[a-z%]+$", "i"), 2379 Re = /^--/, 2380 Be = function (e) { 2381 var t = e.ownerDocument.defaultView; 2382 return (t && t.opener) || (t = i), t.getComputedStyle(e); 2383 }, 2384 qe = function (e, t, n) { 2385 var i, 2386 s, 2387 o = {}; 2388 for (s in t) (o[s] = e.style[s]), (e.style[s] = t[s]); 2389 for (s in ((i = n.call(e)), t)) e.style[s] = o[s]; 2390 return i; 2391 }, 2392 We = new RegExp(oe.join("|"), "i"), 2393 Ve = new RegExp("^[\\x20\\t\\r\\n\\f]+|((?:^|[^\\\\])(?:\\\\.)*)[\\x20\\t\\r\\n\\f]+$", "g"); 2394 function Ge(e, t, n) { 2395 var i, 2396 s, 2397 o, 2398 r, 2399 a = Re.test(t), 2400 l = e.style; 2401 return ( 2402 (n = n || Be(e)) && 2403 ((r = n.getPropertyValue(t) || n[t]), 2404 a && (r = r.replace(Ve, "$1")), 2405 "" !== r || ae(e) || (r = T.style(e, t)), 2406 !m.pixelBoxStyles() && 2407 He.test(r) && 2408 We.test(t) && 2409 ((i = l.width), (s = l.minWidth), (o = l.maxWidth), (l.minWidth = l.maxWidth = l.width = r), (r = n.width), (l.width = i), (l.minWidth = s), (l.maxWidth = o))), 2410 void 0 !== r ? r + "" : r 2411 ); 2412 } 2413 function Xe(e, t) { 2414 return { 2415 get: function () { 2416 if (!e()) return (this.get = t).apply(this, arguments); 2417 delete this.get; 2418 }, 2419 }; 2420 } 2421 !(function () { 2422 function e() { 2423 if (d) { 2424 (c.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0"), 2425 (d.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%"), 2426 re.appendChild(c).appendChild(d); 2427 var e = i.getComputedStyle(d); 2428 (n = "1%" !== e.top), 2429 (l = 12 === t(e.marginLeft)), 2430 (d.style.right = "60%"), 2431 (r = 36 === t(e.right)), 2432 (s = 36 === t(e.width)), 2433 (d.style.position = "absolute"), 2434 (o = 12 === t(d.offsetWidth / 3)), 2435 re.removeChild(c), 2436 (d = null); 2437 } 2438 } 2439 function t(e) { 2440 return Math.round(parseFloat(e)); 2441 } 2442 var n, 2443 s, 2444 o, 2445 r, 2446 a, 2447 l, 2448 c = y.createElement("div"), 2449 d = y.createElement("div"); 2450 d.style && 2451 ((d.style.backgroundClip = "content-box"), 2452 (d.cloneNode(!0).style.backgroundClip = ""), 2453 (m.clearCloneStyle = "content-box" === d.style.backgroundClip), 2454 T.extend(m, { 2455 boxSizingReliable: function () { 2456 return e(), s; 2457 }, 2458 pixelBoxStyles: function () { 2459 return e(), r; 2460 }, 2461 pixelPosition: function () { 2462 return e(), n; 2463 }, 2464 reliableMarginLeft: function () { 2465 return e(), l; 2466 }, 2467 scrollboxSize: function () { 2468 return e(), o; 2469 }, 2470 reliableTrDimensions: function () { 2471 var e, t, n, s; 2472 return ( 2473 null == a && 2474 ((e = y.createElement("table")), 2475 (t = y.createElement("tr")), 2476 (n = y.createElement("div")), 2477 (e.style.cssText = "position:absolute;
2477left:-11111px;border-collapse:separate"), 2478 (t.style.cssText = "border:1px solid"), 2479 (t.style.height = "1px"), 2480 (n.style.height = "9px"), 2481 (n.style.display = "block"), 2482 re.appendChild(e).appendChild(t).appendChild(n), 2483 (s = i.getComputedStyle(t)), 2484 (a = parseInt(s.height, 10) + parseInt(s.borderTopWidth, 10) + parseInt(s.borderBottomWidth, 10) === t.offsetHeight), 2485 re.removeChild(e)), 2486 a 2487 ); 2488 }, 2489 })); 2490 })(); 2491 var Ye = ["Webkit", "Moz", "ms"], 2492 Ue = y.createElement("div").style, 2493 Ke = {}; 2494 function Ze(e) { 2495 var t = T.cssProps[e] || Ke[e]; 2496 return ( 2497 t || 2498 (e in Ue 2499 ? e 2500 : (Ke[e] = 2501 (function (e) { 2502 for (var t = e[0].toUpperCase() + e.slice(1), n = Ye.length; n--; ) if ((e = Ye[n] + t) in Ue) return e; 2503 })(e) || e)) 2504 ); 2505 } 2506 var Qe = /^(none|table(?!-c[ea]).+)/, 2507 Je = { position: "absolute", visibility: "hidden", display: "block" }, 2508 et = { letterSpacing: "0", fontWeight: "400" }; 2509 function tt(e, t, n) { 2510 var i = se.exec(t); 2511 return i ? Math.max(0, i[2] - (n || 0)) + (i[3] || "px") : t; 2512 } 2513 function nt(e, t, n, i, s, o) { 2514 var r = "width" === t ? 1 : 0, 2515 a = 0, 2516 l = 0; 2517 if (n === (i ? "border" : "content")) return 0; 2518 for (; r < 4; r += 2) 2519 "margin" === n && (l += T.css(e, n + oe[r], !0, s)), 2520 i 2521 ? ("content" === n && (l -= T.css(e, "padding" + oe[r], !0, s)), "margin" !== n && (l -= T.css(e, "border" + oe[r] + "Width", !0, s))) 2522 : ((l += T.css(e, "padding" + oe[r], !0, s)), "padding" !== n ? (l += T.css(e, "border" + oe[r] + "Width", !0, s)) : (a += T.css(e, "border" + oe[r] + "Width", !0, s))); 2523 return !i && o >= 0 && (l += Math.max(0, Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - o - l - a - 0.5)) || 0), l; 2524 } 2525 function it(e, t, n) { 2526 var i = Be(e), 2527 s = (!m.boxSizingReliable() || n) && "border-box" === T.css(e, "boxSizing", !1, i), 2528 o = s, 2529 r = Ge(e, t, i), 2530 a = "offset" + t[0].toUpperCase() + t.slice(1); 2531 if (He.test(r)) { 2532 if (!n) return r; 2533 r = "auto"; 2534 } 2535 return ( 2536 ((!m.boxSizingReliable() && s) || (!m.reliableTrDimensions() && L(e, "tr")) || "auto" === r || (!parseFloat(r) && "inline" === T.css(e, "display", !1, i))) && 2537 e.getClientRects().length && 2538 ((s = "border-box" === T.css(e, "boxSizing", !1, i)), (o = a in e) && (r = e[a])), 2539 (r = parseFloat(r) || 0) + nt(e, t, n || (s ? "border" : "content"), o, i, r) + "px" 2540 ); 2541 } 2542 function st(e, t, n, i, s) { 2543 return new st.prototype.init(e, t, n, i, s); 2544 } 2545 T.extend({ 2546 cssHooks: { 2547 opacity: { 2548 get: function (e, t) { 2549 if (t) { 2550 var n = Ge(e, "opacity"); 2551 return "" === n ? "1" : n; 2552 } 2553 }, 2554 }, 2555 }, 2556 cssNumber: { 2557 animationIterationCount: !0, 2558 columnCount: !0, 2559 fillOpacity: !0, 2560 flexGrow: !0, 2561 flexShrink: !0, 2562 fontWeight: !0, 2563 gridArea: !0, 2564 gridColumn: !0, 2565 gridColumnEnd: !0, 2566 gridColumnStart: !0, 2567 gridRow: !0, 2568 gridRowEnd: !0, 2569 gridRowStart: !0, 2570 lineHeight: !0, 2571 opacity: !0, 2572 order: !0, 2573 orphans: !0, 2574 widows: !0, 2575 zIndex: !0, 2576 zoom: !0, 2577 }, 2578 cssProps: {}, 2579 style: function (e, t, n, i) { 2580 if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) { 2581 var s, 2582 o, 2583 r, 2584 a = U(t), 2585 l = Re.test(t), 2586 c = e.style; 2587 if ((l || (t = Ze(a)), (r = T.cssHooks[t] || T.cssHooks[a]), void 0 === n)) return r && "get" in r && void 0 !== (s = r.get(e, !1, i)) ? s : c[t]; 2588 "string" === (o = typeof n) && (s = se.exec(n)) && s[1] && ((n = de(e, t, s)), (o = "number")), 2589 null != n && 2590 n == n && 2591 ("number" !== o || l || (n += (s && s[3]) || (T.cssNumber[a] ? "" : "px")), 2592 m.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (c[t] = "inherit"), 2593 (r && "set" in r && void 0 === (n = r.set(e, n, i))) || (l ? c.setProperty(t, n) : (c[t] = n))); 2594 } 2595 }, 2596 css: function (e, t, n, i) { 2597 var s, 2598 o, 2599 r, 2600 a = U(t); 2601 return ( 2602 Re.test(t) || (t = Ze(a)), 2603 (r = T.cssHooks[t] || T.cssHooks[a]) && "get" in r && (s = r.get(e, !0, n)), 2604 void 0 === s && (s = Ge(e, t, i)), 2605 "normal" === s && t in et && (s = et[t]), 2606 "" === n || n ? ((o = parseFloat(s)), !0 === n || isFinite(o) ? o || 0 : s) : s 2607 ); 2608 }, 2609 }), 2610 T.each(["height", "width"], function (e, t) { 2611 T.cssHooks[t] = { 2612 get: function (e, n, i) { 2613 if (n) 2614 return !Qe.test(T.css(e, "display")) || (e.getClientRects().length && e.getBoundingClientRect().width) 2615 ? it(e, t, i) 2616 : qe(e, Je, function () { 2617 return it(e, t, i); 2618 }); 2619 }, 2620 set: function (e, n, i) { 2621 var s, 2622 o = Be(e), 2623 r = !m.scrollboxSize() && "absolute" === o.position, 2624 a = (r || i) && "border-box" === T.css(e, "boxSizing", !1, o), 2625 l = i ? nt(e, t, i, a, o) : 0; 2626 return ( 2627 a && r && (l -= Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - parseFloat(o[t]) - nt(e, t, "border", !1, o) - 0.5)), 2628 l && (s = se.exec(n)) && "px" !== (s[3] || "px") && ((e.style[t] = n), (n = T.css(e, t))), 2629 tt(0, n, l) 2630 ); 2631 }, 2632 }; 2633 }), 2634 (T.cssHooks.marginLeft = Xe(m.reliableMarginLeft, function (e, t) { 2635 if (t) 2636 return ( 2637 (parseFloat(Ge(e, "marginLeft")) || 2638 e.getBoundingClientRect().left - 2639 qe(e, { marginLeft: 0 }, function () { 2640 return e.getBoundingClientRect().left; 2641 })) + "px" 2642 ); 2643 })), 2644 T.each({ margin: "", padding: "", border: "Width" }, function (e, t) { 2645 (T.cssHooks[e + t] = { 2646 expand: function (n) { 2647 for (var i = 0, s = {}, o = "string" == typeof n ? n.split(" ") : [n]; i < 4; i++) s[e + oe[i] + t] = o[i] || o[i - 2] || o[0]; 2648 return s; 2649 }, 2650 }), 2651 "margin" !== e && (T.cssHooks[e + t].set = tt); 2652 }), 2653 T.fn.extend({ 2654 css: function (e, t) { 2655 return V( 2656 this, 2657 function (e, t, n) { 2658 var i, 2659 s, 2660 o = {}, 2661 r = 0; 2662 if (Array.isArray(t)) { 2663 for (i = Be(e), s = t.length; r < s; r++) o[t[r]] = T.css(e, t[r], !1, i); 2664 return o; 2665 } 2666 return void 0 !== n ? T.style(e, t, n) : T.css(e, t); 2667 }, 2668 e, 2669 t, 2670 arguments.length > 1 2671 ); 2672 }, 2673 }), 2674 (T.Tween = st), 2675 (st.prototype = { 2676 constructor: st, 2677 init: function (e, t, n, i, s, o) { 2678 (this.elem = e), (this.prop = n), (this.easing = s || T.easing._default), (this.options = t), (this.start = this.now = this.cur()), (this.end = i), (this.unit = o || (T.cssNumber[n] ? "" : "px")); 2679 }, 2680 cur: function () { 2681 var e = st.propHooks[this.prop]; 2682 return e && e.get ? e.get(this) : st.propHooks._default.get(this); 2683 }, 2684 run: function (e) { 2685 var t, 2686 n = st.propHooks[this.prop]; 2687 return ( 2688 this.options.duration ? (this.pos = t = T.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration)) : (this.pos = t = e),
2689 (this.now = (this.end - this.start) * t + this.start), 2690 this.options.step && this.options.step.call(this.elem, this.now, this), 2691 n && n.set ? n.set(this) : st.propHooks._default.set(this), 2692 this 2693 ); 2694 }, 2695 }), 2696 (st.prototype.init.prototype = st.prototype), 2697 (st.propHooks = { 2698 _default: { 2699 get: function (e) { 2700 var t; 2701 return 1 !== e.elem.nodeType || (null != e.elem[e.prop] && null == e.elem.style[e.prop]) ? e.elem[e.prop] : (t = T.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0; 2702 }, 2703 set: function (e) { 2704 T.fx.step[e.prop] ? T.fx.step[e.prop](e) : 1 !== e.elem.nodeType || (!T.cssHooks[e.prop] && null == e.elem.style[Ze(e.prop)]) ? (e.elem[e.prop] = e.now) : T.style(e.elem, e.prop, e.now + e.unit); 2705 }, 2706 }, 2707 }), 2708 (st.propHooks.scrollTop = st.propHooks.scrollLeft = { 2709 set: function (e) { 2710 e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now); 2711 }, 2712 }), 2713 (T.easing = { 2714 linear: function (e) { 2715 return e; 2716 }, 2717 swing: function (e) { 2718 return 0.5 - Math.cos(e * Math.PI) / 2; 2719 }, 2720 _default: "swing", 2721 }), 2722 (T.fx = st.prototype.init), 2723 (T.fx.step = {}); 2724 var ot, 2725 rt, 2726 at = /^(?:toggle|show|hide)$/, 2727 lt = /queueHooks$/; 2728 function ct() { 2729 rt && (!1 === y.hidden && i.requestAnimationFrame ? i.requestAnimationFrame(ct) : i.setTimeout(ct, T.fx.interval), T.fx.tick()); 2730 } 2731 function dt() { 2732 return ( 2733 i.setTimeout(function () { 2734 ot = void 0; 2735 }), 2736 (ot = Date.now()) 2737 ); 2738 } 2739 function ht(e, t) { 2740 var n, 2741 i = 0, 2742 s = { height: e }; 2743 for (t = t ? 1 : 0; i < 4; i += 2 - t) s["margin" + (n = oe[i])] = s["padding" + n] = e; 2744 return t && (s.opacity = s.width = e), s; 2745 } 2746 function ut(e, t, n) { 2747 for (var i, s = (pt.tweeners[t] || []).concat(pt.tweeners["*"]), o = 0, r = s.length; o < r; o++) if ((i = s[o].call(n, t, e))) return i; 2748 } 2749 function pt(e, t, n) { 2750 var i, 2751 s, 2752 o = 0, 2753 r = pt.prefilters.length, 2754 a = T.Deferred().always(function () { 2755 delete l.elem; 2756 }), 2757 l = function () { 2758 if (s) return !1; 2759 for (var t = ot || dt(), n = Math.max(0, c.startTime + c.duration - t), i = 1 - (n / c.duration || 0), o = 0, r = c.tweens.length; o < r; o++) c.tweens[o].run(i); 2760 return a.notifyWith(e, [c, i, n]), i < 1 && r ? n : (r || a.notifyWith(e, [c, 1, 0]), a.resolveWith(e, [c]), !1); 2761 }, 2762 c = a.promise({ 2763 elem: e, 2764 props: T.extend({}, t), 2765 opts: T.extend(!0, { specialEasing: {}, easing: T.easing._default }, n), 2766 originalProperties: t, 2767 originalOptions: n, 2768 startTime: ot || dt(), 2769 duration: n.duration, 2770 tweens: [], 2771 createTween: function (t, n) { 2772 var i = T.Tween(e, c.opts, t, n, c.opts.specialEasing[t] || c.opts.easing); 2773 return c.tweens.push(i), i; 2774 }, 2775 stop: function (t) { 2776 var n = 0, 2777 i = t ? c.tweens.length : 0; 2778 if (s) return this; 2779 for (s = !0; n < i; n++) c.tweens[n].run(1); 2780 return t ? (a.notifyWith(e, [c, 1, 0]), a.resolveWith(e, [c, t])) : a.rejectWith(e, [c, t]), this; 2781 }, 2782 }), 2783 d = c.props; 2784 for ( 2785 !(function (e, t) { 2786 var n, i, s, o, r; 2787 for (n in e) 2788 if (((s = t[(i = U(n))]), (o = e[n]), Array.isArray(o) && ((s = o[1]), (o = e[n] = o[0])), n !== i && ((e[i] = o), delete e[n]), (r = T.cssHooks[i]) && ("exp
2788and" in r))) 2789 for (n in ((o = r.expand(o)), delete e[i], o)) (n in e) || ((e[n] = o[n]), (t[n] = s)); 2790 else t[i] = s; 2791 })(d, c.opts.specialEasing); 2792 o < r; 2793 o++ 2794 ) 2795 if ((i = pt.prefilters[o].call(c, e, d, c.opts))) return v(i.stop) && (T._queueHooks(c.elem, c.opts.queue).stop = i.stop.bind(i)), i; 2796 return ( 2797 T.map(d, ut, c), 2798 v(c.opts.start) && c.opts.start.call(e, c), 2799 c.progress(c.opts.progress).done(c.opts.done, c.opts.complete).fail(c.opts.fail).always(c.opts.always), 2800 T.fx.timer(T.extend(l, { elem: e, anim: c, queue: c.opts.queue })), 2801 c 2802 ); 2803 } 2804 (T.Animation = T.extend(pt, { 2805 tweeners: { 2806 "*": [ 2807 function (e, t) { 2808 var n = this.createTween(e, t); 2809 return de(n.elem, e, se.exec(t), n), n; 2810 }, 2811 ], 2812 }, 2813 tweener: function (e, t) { 2814 v(e) ? ((t = e), (e = ["*"])) : (e = e.match(j)); 2815 for (var n, i = 0, s = e.length; i < s; i++) (n = e[i]), (pt.tweeners[n] = pt.tweeners[n] || []), pt.tweeners[n].unshift(t); 2816 }, 2817 prefilters: [ 2818 function (e, t, n) { 2819 var i, 2820 s, 2821 o, 2822 r, 2823 a, 2824 l, 2825 c, 2826 d, 2827 h = "width" in t || "height" in t, 2828 u = this, 2829 p = {}, 2830 f = e.style, 2831 g = e.nodeType && ce(e), 2832 m = Q.get(e, "fxshow"); 2833 for (i in (n.queue || 2834 (null == (r = T._queueHooks(e, "fx")).unqueued && 2835 ((r.unqueued = 0), 2836 (a = r.empty.fire), 2837 (r.empty.fire = function () { 2838 r.unqueued || a(); 2839 })), 2840 r.unqueued++, 2841 u.always(function () { 2842 u.always(function () { 2843 r.unqueued--, T.queue(e, "fx").length || r.empty.fire(); 2844 }); 2845 })), 2846 t)) 2847 if (((s = t[i]), at.test(s))) { 2848 if ((delete t[i], (o = o || "toggle" === s), s === (g ? "hide" : "show"))) { 2849 if ("show" !== s || !m || void 0 === m[i]) continue; 2850 g = !0; 2851 } 2852 p[i] = (m && m[i]) || T.style(e, i); 2853 } 2854 if ((l = !T.isEmptyObject(t)) || !T.isEmptyObject(p)) 2855 for (i in (h && 2856 1 === e.nodeType && 2857 ((n.overflow = [f.overflow, f.overflowX, f.overflowY]), 2858 null == (c = m && m.display) && (c = Q.get(e, "display")), 2859 "none" === (d = T.css(e, "display")) && (c ? (d = c) : (pe([e], !0), (c = e.style.display || c), (d = T.css(e, "display")), pe([e]))), 2860 ("inline" === d || ("inline-block" === d && null != c)) && 2861 "none" === T.css(e, "float") && 2862 (l || 2863 (u.done(function () { 2864 f.display = c; 2865 }), 2866 null == c && ((d = f.display), (c = "none" === d ? "" : d))), 2867 (f.display = "inline-block"))), 2868 n.overflow && 2869 ((f.overflow = "hidden"), 2870 u.always(function () { 2871 (f.overflow = n.overflow[0]), (f.overflowX = n.overflow[1]), (f.overflowY = n.overflow[2]); 2872 })), 2873 (l = !1), 2874 p)) 2875 l || 2876 (m ? "hidden" in m && (g = m.hidden) : (m = Q.access(e, "fxshow", { display: c })), 2877 o && (m.hidden = !g), 2878 g && pe([e], !0), 2879 u.done(function () { 2880 for (i in (g || pe([e]), Q.remove(e, "fxshow"), p)) T.style(e, i, p[i]); 2881 })), 2882 (l = ut(g ? m[i] : 0, i, u)), 2883 i in m || ((m[i] = l.start), g && ((l.end = l.start), (l.start = 0))); 2884 }, 2885 ], 2886 prefilter: function (e, t) { 2887 t ? pt.prefilters.unshift(e) : pt.prefilters.push(e); 2888 }, 2889 })), 2890 (T.speed = function (e, t, n) { 2891 var i = e && "object" == typeof e ? T.extend({}, e) : { complete: n || (!n && t) || (v(e) && e), duration: e, easing: (n && t) || (t && !v(t) && t) }; 2892 return ( 2893 T.fx.off ? (i.duration = 0) : "number" != typeof i.duration && (i.duration in T.fx.speeds ? (i.duration = T.fx.speeds[i.duration]) : (i.duration = T.fx.speeds._default)), 2894 (null != i.queue && !0 !== i.queue) || (i.queue = "fx"), 2895 (i.old = i.complete), 2896 (i.complete = function () { 2897 v(i.old) && i.old.call(this), i.queue && T.dequeue(this, i.queue); 2898 }), 2899 i 2900 ); 2901 }), 2902 T.fn.extend({ 2903 fadeTo: function (e, t, n, i) { 2904 return this.filter(ce).css("opacity", 0).show().end().animate({ opacity: t }, e, n, i); 2905 }, 2906 animate: function (e, t, n, i) { 2907 var s = T.isEmptyObject(e),
2908 o = T.speed(t, n, i), 2909 r = function () { 2910 var t = pt(this, T.extend({}, e), o); 2911 (s || Q.get(this, "finish")) && t.stop(!0); 2912 }; 2913 return (r.finish = r), s || !1 === o.queue ? this.each(r) : this.queue(o.queue, r); 2914 }, 2915 stop: function (e, t, n) { 2916 var i = function (e) { 2917 var t = e.stop; 2918 delete e.stop, t(n); 2919 }; 2920 return ( 2921 "string" != typeof e && ((n = t), (t = e), (e = void 0)), 2922 t && this.queue(e || "fx", []), 2923 this.each(function () { 2924 var t = !0, 2925 s = null != e && e + "queueHooks", 2926 o = T.timers, 2927 r = Q.get(this); 2928 if (s) r[s] && r[s].stop && i(r[s]); 2929 else for (s in r) r[s] && r[s].stop && lt.test(s) && i(r[s]); 2930 for (s = o.length; s--; ) o[s].elem !== this || (null != e && o[s].queue !== e) || (o[s].anim.stop(n), (t = !1), o.splice(s, 1)); 2931 (!t && n) || T.dequeue(this, e); 2932 }) 2933 ); 2934 }, 2935 finish: function (e) { 2936 return ( 2937 !1 !== e && (e = e || "fx"), 2938 this.each(function () { 2939 var t, 2940 n = Q.get(this), 2941 i = n[e + "queue"], 2942 s = n[e + "queueHooks"], 2943 o = T.timers, 2944 r = i ? i.length : 0; 2945 for (n.finish = !0, T.queue(this, e, []), s && s.stop && s.stop.call(this, !0), t = o.length; t--; ) o[t].elem === this && o[t].queue === e && (o[t].anim.stop(!0), o.splice(t, 1)); 2946 for (t = 0; t < r; t++) i[t] && i[t].finish && i[t].finish.call(this); 2947 delete n.finish; 2948 }) 2949 ); 2950 }, 2951 }), 2952 T.each(["toggle", "show", "hide"], function (e, t) { 2953 var n = T.fn[t]; 2954 T.fn[t] = function (e, i, s) { 2955 return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(ht(t, !0), e, i, s); 2956 }; 2957 }), 2958 T.each({ slideDown: ht("show"), slideUp: ht("hide"), slideToggle: ht("toggle"), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide" }, fadeToggle: { opacity: "toggle" } }, function (e, t) { 2959 T.fn[e] = function (e, n, i) { 2960 return this.animate(t, e, n, i); 2961 }; 2962 }), 2963 (T.timers = []), 2964 (T.fx.tick = function () { 2965 var e, 2966 t = 0, 2967 n = T.timers; 2968 for (ot = Date.now(); t < n.length; t++) (e = n[t])() || n[t] !== e || n.splice(t--, 1); 2969 n.length || T.fx.stop(), (ot = void 0); 2970 }), 2971 (T.fx.timer = function (e) { 2972 T.timers.push(e), T.fx.start(); 2973 }), 2974 (T.fx.interval = 13), 2975 (T.fx.start = function () { 2976 rt || ((rt = !0), ct()); 2977 }), 2978 (T.fx.stop = function () { 2979 rt = null; 2980 }), 2981 (T.fx.speeds = { slow: 600, fast: 200, _default: 400 }),
2982 (T.fn.delay = function (e, t) { 2983 return ( 2984 (e = (T.fx && T.fx.speeds[e]) || e), 2985 (t = t || "fx"), 2986 this.queue(t, function (t, n) { 2987 var s = i.setTimeout(t, e); 2988 n.stop = function () { 2989 i.clearTimeout(s); 2990 }; 2991 }) 2992 ); 2993 }), 2994 (function () { 2995 var e = y.createElement("input"), 2996 t = y.createElement("select").appendChild(y.createElement("option")); 2997 (e.type = "checkbox"), (m.checkOn = "" !== e.value), (m.optSelected = t.selected), ((e = y.createElement("input")).value = "t"), (e.type = "radio"), (m.radioValue = "t" === e.value); 2998 })(); 2999 var ft, 3000 gt = T.expr.attrHandle; 3001 T.fn.extend({ 3002 attr: function (e, t) { 3003 return V(this, T.attr, e, t, arguments.length > 1); 3004 }, 3005 removeAttr: function (e) { 3006 return this.each(function () { 3007 T.removeAttr(this, e); 3008 }); 3009 }, 3010 }), 3011 T.extend({ 3012 attr: function (e, t, n) { 3013 var i, 3014 s, 3015 o = e.nodeType; 3016 if (3 !== o && 8 !== o && 2 !== o) 3017 return void 0 === e.getAttribute 3018 ? T.prop(e, t, n) 3019 : ((1 === o && T.isXMLDoc(e)) || (s = T.attrHooks[t.toLowerCase()] || (T.expr.match.bool.test(t) ? ft : void 0)), 3020 void 0 !== n 3021 ? null === n 3022 ? void T.removeAttr(e, t) 3023 : s && "set" in s && void 0 !== (i = s.set(e, n, t)) 3024 ? i 3025 : (e.setAttribute(t, n + ""), n) 3026 : s && "get" in s && null !== (i = s.get(e, t)) 3027 ? i 3028 : null == (i = T.find.attr(e, t)) 3029 ? void 0 3030 : i); 3031 }, 3032 attrHooks: { 3033 type: { 3034 set: function (e, t) { 3035 if (!m.radioValue && "radio" === t && L(e, "input")) { 3036 var n = e.value; 3037 return e.setAttribute("type", t), n && (e.value = n), t; 3038 } 3039 }, 3040 }, 3041 }, 3042 removeAttr: function (e, t) { 3043 var n, 3044 i = 0, 3045 s = t && t.match(j); 3046 if (s && 1 === e.nodeType) for (; (n = s[i++]); ) e.removeAttribute(n); 3047 }, 3048 }), 3049 (ft = { 3050 set: function (e, t, n) { 3051 return !1 === t ? T.removeAttr(e, n) : e.setAttribute(n, n), n; 3052 }, 3053 }), 3054 T.each(T.expr.match.bool.source.match(/\w+/g), function (e, t) { 3055 var n = gt[t] || T.find.attr; 3056 gt[t] = function (e, t, i) { 3057 var s, 3058 o, 3059 r = t.toLowerCase(); 3060 return i || ((o = gt[r]), (gt[r] = s), (s = null != n(e, t, i) ? r : null), (gt[r] = o)), s; 3061 }; 3062 }); 3063 var mt = /^(?:input|select|textarea|button)$/i, 3064 vt = /^(?:a|area)$/i; 3065 function bt(e) { 3066 return (e.match(j) || []).join(" "); 3067 } 3068 function yt(e) { 3069 return (e.getAttribute && e.getAttribute("class")) || ""; 3070 } 3071 function wt(e) { 3072 return Array.isArray(e) ? e : ("string" == typeof e && e.match(j)) || []; 3073 } 3074 T.fn.extend({ 3075 prop: function (e, t) { 3076 return V(this, T.prop, e, t, arguments.length > 1); 3077 }, 3078 removeProp: function (e) { 3079 return this.each(function () { 3080 delete this[T.propFix[e] || e]; 3081 }); 3082 }, 3083 }), 3084 T.extend({ 3085 prop: function (e, t, n) { 3086 var i, 3087 s,
3088 o = e.nodeType; 3089 if (3 !== o && 8 !== o && 2 !== o) 3090 return ( 3091 (1 === o && T.isXMLDoc(e)) || ((t = T.propFix[t] || t), (s = T.propHooks[t])), 3092 void 0 !== n ? (s && "set" in s && void 0 !== (i = s.set(e, n, t)) ? i : (e[t] = n)) : s && "get" in s && null !== (i = s.get(e, t)) ? i : e[t] 3093 ); 3094 }, 3095 propHooks: { 3096 tabIndex: { 3097 get: function (e) { 3098 var t = T.find.attr(e, "tabindex"); 3099 return t ? parseInt(t, 10) : mt.test(e.nodeName) || (vt.test(e.nodeName) && e.href) ? 0 : -1; 3100 }, 3101 }, 3102 }, 3103 propFix: { for: "htmlFor", class: "className" }, 3104 }), 3105 m.optSelected || 3106 (T.propHooks.selected = { 3107 get: function (e) { 3108 var t = e.parentNode; 3109 return t && t.parentNode && t.parentNode.selectedIndex, null; 3110 }, 3111 set: function (e) { 3112 var t = e.parentNode; 3113 t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex); 3114 }, 3115 }), 3116 T.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function () { 3117 T.propFix[this.toLowerCase()] = this; 3118 }), 3119 T.fn.extend({ 3120 addClass: function (e) { 3121 var t, n, i, s, o, r; 3122 return v(e) 3123 ? this.each(function (t) { 3124 T(this).addClass(e.call(this, t, yt(this))); 3125 }) 3126 : (t = wt(e)).length 3127 ? this.each(function () { 3128 if (((i = yt(this)), (n = 1 === this.nodeType && " " + bt(i) + " "))) { 3129 for (o = 0; o < t.length; o++) (s = t[o]), n.indexOf(" " + s + " ") < 0 && (n += s + " "); 3130 (r = bt(n)), i !== r && this.setAttribute("class", r); 3131 } 3132 }) 3133 : this; 3134 }, 3135 removeClass: function (e) { 3136 var t, n, i, s, o, r; 3137 return v(e) 3138 ? this.each(function (t) { 3139 T(this).removeClass(e.call(this, t, yt(this))); 3140 }) 3141 : arguments.length 3142 ? (t = wt(e)).length 3143 ? this.each(function () { 3144 if (((i = yt(this)), (n = 1 === this.nodeType && " " + bt(i) + " "))) { 3145 for (o = 0; o < t.length; o++) for (s = t[o]; n.indexOf(" " + s + " ") > -1; ) n = n.replace(" " + s + " ", " "); 3146 (r = bt(n)), i !== r && this.setAttribute("class", r); 3147 } 3148 }) 3149 : this 3150 : this.attr("class", ""); 3151 }, 3152 toggleClass: function (e, t) { 3153 var n, 3154 i, 3155 s, 3156 o, 3157 r = typeof e, 3158 a = "string" === r || Array.isArray(e); 3159 return v(e) 3160 ? this.each(function (n) { 3161 T(this).toggleClass(e.call(this, n, yt(this), t), t); 3162 }) 3163 : "boolean" == typeof t && a 3164 ? t 3165 ? this.addClass(e) 3166 : this.removeClass(e) 3167 : ((n = wt(e)), 3168 this.each(function () { 3169 if (a) for (o = T(this), s = 0; s < n.length; s++) (i = n[s]), o.hasClass(i) ? o.removeClass(i) : o.addClass(i); 3170 else 3171 (void 0 !== e && "boolean" !== r) || 3172 ((i = yt(this)) && Q.set(this, "__className__", i), this.setAttribute && this.setAttribute("class", i || !1 === e ? "" : Q.get(this, "__className__") || "")); 3173 })); 3174 }, 3175 hasClass: function (e) { 3176 var t, 3177 n, 3178 i = 0; 3179 for (t = " " + e + " "; (n = this[i++]); ) if (1 === n.nodeType && (" " + bt(yt(n)) + " ").indexOf(t) > -1) return !0; 3180 return !1; 3181 }, 3182 }); 3183 var xt = /\r/g; 3184 T.fn.extend({ 3185 val: function (e) { 3186 var t, 3187 n, 3188 i, 3189 s = this[0]; 3190 return arguments.length 3191 ? ((i = v(e)), 3192 this.each(function (n) { 3193 var s; 3194 1 === this.nodeType && 3195 (null == (s = i ? e.call(this, n, T(this).val()) : e) 3196 ? (s = "") 3197 : "number" == typeof s 3198 ? (s += "") 3199 : Array.isArray(s) && 3200 (s = T.map(s, function (e) { 3201 return null == e ? "" : e + ""; 3202 })), 3203 ((t = T.valHooks[this.type] || T.valHooks[this.nodeName.toLowerCase()]) && "set" in t && void 0 !== t.set(this, s, "value")) || (this.value = s)); 3204 })) 3205 : s 3206 ? (t = T.valHooks[s.type] || T.valHooks[s.nodeName.toLowerCase()]) && "get" in t && void 0 !== (n = t.get(s, "value")) 3207 ? n 3208 : "string" == typeof (n = s.value) 3209 ? n.replace(xt, "") 3210 : null == n 3211 ? "" 3212 : n 3213 : void 0; 3214 }, 3215 }), 3216 T.extend({ 3217 valHooks: { 3218 option: { 3219 get: function (e) { 3220 var t = T.find.attr(e, "value"); 3221 return null != t ? t : bt(T.text(e)); 3222 }, 3223 }, 3224 select: { 3225 get: function (e) { 3226 var t, 3227 n, 3228 i, 3229 s = e.options, 3230 o = e.selectedIndex, 3231 r = "select-one" === e.type, 3232 a = r ? null : [], 3233 l = r ? o + 1 : s.length; 3234 for (i = o < 0 ? l : r ? o : 0; i < l; i++) 3235 if (((n = s[i]).selected || i === o) && !n.disabled && (!n.parentNode.disabled || !L(n.parentNode, "optgroup"))) { 3236 if (((t = T(n).val()), r)) return t; 3237 a.push(t); 3238 } 3239 return a; 3240 }, 3241 set: function (e, t) { 3242 for (var n, i, s = e.options, o = T.makeArray(t), r = s.length; r--; ) ((i = s[r]).selected = T.inArray(T.valHooks.option.get(i), o) > -1) && (n = !0); 3243 return n || (e.selectedIndex = -1), o; 3244 }, 3245 }, 3246 }, 3247 }), 3248 T.each(["radio", "checkbox"], function () { 3249 (T.valHooks[this] = { 3250 set: function (e, t) { 3251 if (Array.isArray(t)) return (e.checked = T.inArray(T(e).val(), t) > -1); 3252 }, 3253 }), 3254 m.checkOn || 3255 (T.valHooks[this].get = function (e) { 3256 return null === e.getAttribute("value") ? "on" : e.value; 3257 }); 3258 }),
3259 (m.focusin = "onfocusin" in i); 3260 var _t = /^(?:focusinfocus|focusoutblur)$/, 3261 Ct = function (e) { 3262 e.stopPropagation(); 3263 }; 3264 T.extend(T.event, { 3265 trigger: function (e, t, n, s) { 3266 var o, 3267 r, 3268 a, 3269 l, 3270 c, 3271 d, 3272 h, 3273 u, 3274 f = [n || y], 3275 g = p.call(e, "type") ? e.type : e, 3276 m = p.call(e, "namespace") ? e.namespace.split(".") : []; 3277 if ( 3278 ((r = u = a = n = n || y), 3279 3 !== n.nodeType && 3280 8 !== n.nodeType && 3281 !_t.test(g + T.event.triggered) && 3282 (g.indexOf(".") > -1 && ((m = g.split(".")), (g = m.shift()), m.sort()), 3283 (c = g.indexOf(":") < 0 && "on" + g), 3284 ((e = e[T.expando] ? e : new T.Event(g, "object" == typeof e && e)).isTrigger = s ? 2 : 3), 3285 (e.namespace = m.join(".")), 3286 (e.rnamespace = e.namespace ? new RegExp("(^|\\.)" + m.join("\\.(?:.*\\.|)") + "(\\.|$)") : null), 3287 (e.result = void 0), 3288 e.target || (e.target = n), 3289 (t = null == t ? [e] : T.makeArray(t, [e])), 3290 (h = T.event.special[g] || {}), 3291 s || !h.trigger || !1 !== h.trigger.apply(n, t))) 3292 ) { 3293 if (!s && !h.noBubble && !b(n)) { 3294 for (l = h.delegateType || g, _t.test(l + g) || (r = r.parentNode); r; r = r.parentNode) f.push(r), (a = r); 3295 a === (n.ownerDocument || y) && f.push(a.defaultView || a.parentWindow || i); 3296 } 3297 for (o = 0; (r = f[o++]) && !e.isPropagationStopped(); ) 3298 (u = r), 3299 (e.type = o > 1 ? l : h.bindType || g), 3300 (d = (Q.get(r, "events") || Object.create(null))[e.type] && Q.get(r, "handle")) && d.apply(r, t), 3301 (d = c && r[c]) && d.apply && K(r) && ((e.result = d.apply(r, t)), !1 === e.result && e.preventDefault()); 3302 return ( 3303 (e.type = g), 3304 s || 3305 e.isDefaultPrevented() || 3306 (h._default && !1 !== h._default.apply(f.pop(), t)) || 3307 !K(n) || 3308 (c && 3309 v(n[g]) && 3310 !b(n) && 3311 ((a = n[c]) && (n[c] = null), 3312 (T.event.triggered = g), 3313 e.isPropagationStopped() && u.addEventListener(g, Ct), 3314 n[g](), 3315 e.isPropagationStopped() && u.removeEventListener(g, Ct), 3316 (T.event.triggered = void 0), 3317 a && (n[c] = a))), 3318 e.result 3319 ); 3320 } 3321 }, 3322 simulate: function (e, t, n) { 3323 var i = T.extend(new T.Event(), n, { type: e, isSimulated: !0 }); 3324 T.event.trigger(i, null, t); 3325 }, 3326 }), 3327 T.fn.extend({ 3328 trigger: function (e, t) { 3329 return this.each(function () { 3330 T.event.trigger(e, t, this); 3331 }); 3332 }, 3333 triggerHandler: function (e, t) { 3334 var n = this[0]; 3335 if (n) return T.event.trigger(e, t, n, !0); 3336 }, 3337 }), 3338 m.focusin || 3339 T.each({ focus: "focusin", blur: "focusout" }, function (e, t) { 3340 var n = function (e) { 3341 T.event.simulate(t, e.target, T.event.fix(e)); 3342 }; 3343 T.event.special[t] = { 3344 setup: function () { 3345 var i = this.ownerDocument || this.document || this, 3346 s = Q.access(i, t); 3347 s || i.addEventListener(e, n, !0), Q.access(i, t, (s || 0) + 1); 3348 }, 3349 teardown: function () { 3350 var i = this.ownerDocument || this.document || this, 3351 s = Q.access(i, t) - 1; 3352 s ? Q.access(i, t, s) : (i.removeEventListener(e, n, !0), Q.remove(i, t)); 3353 }, 3354 }; 3355 }); 3356 var Tt = i.location, 3357 Et = { guid: Date.now() }, 3358 St = /\?/; 3359 T.parseXML = function (e) { 3360 var t, n; 3361 if (!e || "string" != typeof e) return null; 3362 try { 3363 t = new i.DOMParser().parseFromString(e, "text/xml"); 3364 } catch (e) {} 3365 return ( 3366 (n = t && t.getElementsByTagName("parsererror")[0]), 3367 (t && !n) || 3368 T.error( 3369 "Invalid XML: " + 3370 (n 3371 ? T.map(n.childNodes, function (e) { 3372 return e.textContent; 3373 }).join("\n") 3374 : e) 3375 ), 3376 t 3377 ); 3378 }; 3379 var At = /\[\]$/, 3380 kt = /\r?\n/g, 3381 $t = /^(?:submit|button|image|reset|file)$/i, 3382 Lt = /^(?:input|select|textarea|keygen)/i; 3383 function Pt(e, t, n, i) { 3384 var s; 3385 if (Array.isArray(t)) 3386 T.each(t, function (t, s) { 3387 n || At.test(e) ? i(e, s) : Pt(e + "[" + ("object" == typeof s && null != s ? t : "") + "]", s, n, i); 3388 }); 3389 else if (n || "object" !== _(t)) i(e, t); 3390 else for (s in t) Pt(e + "[" + s + "]", t[s], n, i); 3391 } 3392 (T.param = function (e, t) { 3393 var n, 3394 i = [], 3395 s = function (e, t) { 3396 var n = v(t) ? t() : t; 3397 i[i.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n); 3398 }; 3399 if (null == e) return ""; 3400 if (Array.isArray(e) || (e.jquery && !T.isPlainObject(e))) 3401 T.each(e, function () { 3402 s(this.name, this.value); 3403 }); 3404 else for (n in e) Pt(n, e[n], t, s); 3405 return i.join("&"); 3406 }), 3407 T.fn.extend({ 3408 serialize: function () { 3409 return T.param(this.serializeArray()); 3410 }, 3411 serializeArray: function () { 3412 return this.map(function () { 3413 var e = T.prop(this, "elements"); 3414 return e ? T.makeArray(e) : this; 3415 }) 3416 .filter(function () { 3417 var e = this.type; 3418 return this.name && !T(this).is(":disabled") && Lt.test(this.nodeName) && !$t.test(e) && (this.checked || !me.test(e)); 3419 }) 3420 .map(function (e, t) { 3421 var n = T(this).val(); 3422 return null == n 3423 ? null 3424 : Array.isArray(n) 3425 ? T.map(n, function (e) { 3426 return { name: t.name, value: e.replace(kt, "\r\n") }; 3427 }) 3428 : { name: t.name, value: n.replace(kt, "\r\n") }; 3429 }) 3430 .get(); 3431 }, 3432 }); 3433 var Ot = /%20/g, 3434 Mt = /#.*$/, 3435 Dt = /([?&])_=[^&]*/, 3436 Nt = /^(.*?):[ \t]*([^\r\n]*)$/gm, 3437 It = /^(?:GET|HEAD)$/, 3438 zt = /^\/\//, 3439 jt = {}, 3440 Ft = {}, 3441 Ht = "*/".concat("*"), 3442 Rt = y.createElement("a"); 3443 function Bt(e) { 3444 return function (t, n) { 3445 "string" != typeof t && ((n = t), (t = "*")); 3446 var i, 3447 s = 0, 3448 o = t.toLowerCase().match(j) || []; 3449 if (v(n)) for (; (i = o[s++]);
3449 ) "+" === i[0] ? ((i = i.slice(1) || "*"), (e[i] = e[i] || []).unshift(n)) : (e[i] = e[i] || []).push(n); 3450 }; 3451 } 3452 function qt(e, t, n, i) { 3453 var s = {}, 3454 o = e === Ft; 3455 function r(a) { 3456 var l; 3457 return ( 3458 (s[a] = !0), 3459 T.each(e[a] || [], function (e, a) { 3460 var c = a(t, n, i); 3461 return "string" != typeof c || o || s[c] ? (o ? !(l = c) : void 0) : (t.dataTypes.unshift(c), r(c), !1); 3462 }), 3463 l 3464 ); 3465 } 3466 return r(t.dataTypes[0]) || (!s["*"] && r("*")); 3467 } 3468 function Wt(e, t) { 3469 var n, 3470 i, 3471 s = T.ajaxSettings.flatOptions || {}; 3472 for (n in t) void 0 !== t[n] && ((s[n] ? e : i || (i = {}))[n] = t[n]); 3473 return i && T.extend(!0, e, i), e; 3474 } 3475 (Rt.href = Tt.href), 3476 T.extend({ 3477 active: 0, 3478 lastModified: {}, 3479 etag: {}, 3480 ajaxSettings: { 3481 url: Tt.href, 3482 type: "GET", 3483 isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Tt.protocol), 3484 global: !0, 3485 processData: !0, 3486 async: !0, 3487 contentType: "application/x-www-form-urlencoded; charset=UTF-8", 3488 accepts: { "*": Ht, text: "text/plain", html: "text/html", xml: "application/xml, text/xml", json: "application/json, text/javascript" }, 3489 contents: { xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/ }, 3490 responseFields: { xml: "responseXML", text: "responseText", json: "responseJSON" }, 3491 converters: { "* text": String, "text html": !0, "text json": JSON.parse, "text xml": T.parseXML }, 3492 flatOptions: { url: !0, context: !0 }, 3493 }, 3494 ajaxSetup: function (e, t) { 3495 return t ? Wt(Wt(e, T.ajaxSettings), t) : Wt(T.ajaxSettings, e); 3496 }, 3497 ajaxPrefilter: Bt(jt), 3498 ajaxTransport: Bt(Ft), 3499 ajax: function (e, t) { 3500 "object" == typeof e && ((t = e), (e = void 0)), (t = t || {}); 3501 var n, 3502 s, 3503 o, 3504 r, 3505 a, 3506 l, 3507 c, 3508 d, 3509 h, 3510 u, 3511 p = T.ajaxSetup({}, t), 3512 f = p.context || p, 3513 g = p.context && (f.nodeType || f.jquery) ? T(f) : T.event, 3514 m = T.Deferred(), 3515 v = T.Callbacks("once memory"), 3516 b = p.statusCode || {}, 3517 w = {}, 3518 x = {}, 3519 _ = "canceled", 3520 C = { 3521 readyState: 0, 3522 getResponseHeader: function (e) { 3523 var t; 3524 if (c) { 3525 if (!r) for (r = {}; (t = Nt.exec(o)); ) r[t[1].toLowerCase() + " "] = (r[t[1].toLowerCase() + " "] || []).concat(t[2]); 3526 t = r[e.toLowerCase() + " "]; 3527 } 3528 return null == t ? null : t.join(", "); 3529 }, 3530 getAllResponseHeaders: function () { 3531 return c ? o : null; 3532 }, 3533 setRequestHeader: function (e, t) { 3534 return null == c && ((e = x[e.toLowerCase()] = x[e.toLowerCase()] || e), (w[e] = t)), this; 3535 }, 3536 overrideMimeType: function (e) { 3537 return null == c && (p.mimeType = e), this; 3538 }, 3539 statusCode: function (e) { 3540 var t; 3541 if (e) 3542 if (c) C.always(e[C.status]); 3543 else for (t in e) b[t] = [b[t], e[t]]; 3544 return this; 3545 }, 3546 abort: function (e) { 3547 var t = e || _; 3548 return n && n.abort(t), E(0, t), this; 3549 }, 3550 }; 3551 if ( 3552 (m.promise(C), 3553 (p.url = ((e || p.url || Tt.href) + "").replace(zt, Tt.protocol + "//")), 3554 (p.type = t.method || t.type || p.method || p.t
3554ype), 3555 (p.dataTypes = (p.dataType || "*").toLowerCase().match(j) || [""]), 3556 null == p.crossDomain) 3557 ) { 3558 l = y.createElement("a"); 3559 try { 3560 (l.href = p.url), (l.href = l.href), (p.crossDomain = Rt.protocol + "//" + Rt.host != l.protocol + "//" + l.host); 3561 } catch (e) { 3562 p.crossDomain = !0; 3563 } 3564 } 3565 if ((p.data && p.processData && "string" != typeof p.data && (p.data = T.param(p.data, p.traditional)), qt(jt, p, t, C), c)) return C; 3566 for (h in ((d = T.event && p.global) && 0 == T.active++ && T.event.trigger("ajaxStart"), 3567 (p.type = p.type.toUpperCase()), 3568 (p.hasContent = !It.test(p.type)), 3569 (s = p.url.replace(Mt, "")), 3570 p.hasContent 3571 ? p.data && p.processData && 0 === (p.contentType || "").indexOf("application/x-www-form-urlencoded") && (p.data = p.data.replace(Ot, "+")) 3572 : ((u = p.url.slice(s.length)), 3573 p.data && (p.processData || "string" == typeof p.data) && ((s += (St.test(s) ? "&" : "?") + p.data), delete p.data), 3574 !1 === p.cache && ((s = s.replace(Dt, "$1")), (u = (St.test(s) ? "&" : "?") + "_=" + Et.guid++ + u)), 3575 (p.url = s + u)), 3576 p.ifModified && (T.lastModified[s] && C.setRequestHeader("If-Modified-Since", T.lastModified[s]), T.etag[s] && C.setRequestHeader("If-None-Match", T.etag[s])), 3577 ((p.data && p.hasContent && !1 !== p.contentType) || t.contentType) && C.setRequestHeader("Content-Type", p.contentType), 3578 C.setRequestHeader("Accept", p.dataTypes[0] && p.accepts[p.dataTypes[0]] ? p.accepts[p.dataTypes[0]] + ("*" !== p.dataTypes[0] ? ", " + Ht + "; q=0.01" : "") : p.accepts["*"]), 3579 p.headers)) 3580 C.setRequestHeader(h, p.headers[h]); 3581 if (p.beforeSend && (!1 === p.beforeSend.call(f, C, p) || c)) return C.abort(); 3582 if (((_ = "abort"), v.add(p.complete), C.done(p.success), C.fail(p.error), (n = qt(Ft, p, t, C)))) { 3583 if (((C.readyState = 1), d && g.trigger("ajaxSend", [C, p]), c)) return C; 3584 p.async && 3585 p.timeout > 0 && 3586 (a = i.setTimeout(function () { 3587 C.abort("timeout"); 3588 }, p.timeout)); 3589 try { 3590 (c = !1), n.send(w, E); 3591 } catch (e) { 3592 if (c) throw e; 3593 E(-1, e); 3594 } 3595 } else E(-1, "No Transport"); 3596 function E(e, t, r, l) { 3597 var h, 3598 u, 3599 y, 3600 w, 3601 x, 3602 _ = t; 3603 c || 3604 ((c = !0), 3605 a && i.clearTimeout(a), 3606 (n = void 0), 3607 (o = l || ""), 3608 (C.readyState = e > 0 ? 4 : 0), 3609 (h = (e >= 200 && e < 300) || 304 === e), 3610 r && 3611 (w = (function (e, t, n) { 3612 for (var i, s, o, r, a = e.contents, l = e.dataTypes; "*" === l[0]; ) l.shift(), void 0 === i && (i = e.mimeType || t.getResponseHeader("Content-Type")); 3613 if (i) 3614 for (s in a) 3615 if (a[s] && a[s].test(i)) { 3616 l.unshift(s); 3617 break; 3618 } 3619 if (l[0] in n) o = l[0]; 3620 else { 3621 for (s in n) { 3622 if (!l[0] || e.converters[s + " " + l[0]]) { 3623 o = s; 3624 break; 3625 } 3626 r || (r = s); 3627 } 3628 o = o || r; 3629 } 3630 if (o) return o !== l[0] && l.unshift(o), n[o]; 3631 })(p, C, r)), 3632 !h && T.inArray("script", p.dataTypes) > -1 && T.inArray("json", p.dataTypes) < 0 && (p.converters["text script"] = function () {}), 3633 (w = (function (e, t, n, i) { 3634 var s, 3635 o, 3636 r, 3637 a, 3638 l, 3639 c = {}, 3640 d = e.dataTypes.slice(); 3641 if (d[1]) for (r in e.converters) c[r.toLowerCase()] = e.converters[r]; 3642 for (o = d.shift(); o; ) 3643 if ((e.responseFields[o] && (n[e.responseFields[o]] = t), !l && i && e.dataFilter && (t = e.dataFilter(t, e.dataType)), (l = o), (o = d.shift()))) 3644 if ("*" === o) o = l; 3645 else if ("*" !== l && l !== o) { 3646 if (!(r = c[l + " " + o] || c["* " + o])) 3647 for (s in c) 3648 if ((a = s.split(" "))[1] === o && (r = c[l + " " + a[0]] || c["* " + a[0]])) { 3649 !0 === r ? (r = c[s]) : !0 !== c[s] && ((o = a[0]), d.unshift(a[1])); 3650 break; 3651 } 3652 if (!0 !== r) 3653 if (r && e.throws) t = r(t); 3654 else 3655 try { 3656 t = r(t); 3657 } catch (e) { 3658 return { state: "parsererror", error: r ? e : "No conversion from " + l + " to " + o }; 3659 } 3660 } 3661 return { state: "success", data: t }; 3662 })(p, w, C, h)), 3663 h 3664 ? (p.ifModified && ((x = C.getResponseHeader("Last-Modified")) && (T.lastModified[s] = x), (x = C.getResponseHeader("etag")) && (T.etag[s] = x)), 3665 204 === e || "HEAD" === p.type ? (_ = "nocontent") : 304 === e ? (_ = "notmodified") : ((_ = w.state), (u = w.data), (h = !(y = w.error)))) 3666 : ((y = _), (!e && _) || ((_ = "error"), e < 0 && (e = 0))), 3667 (C.status = e), 3668 (C.statusText = (t || _) + ""), 3669 h ? m.resolveWith(f, [u, _, C]) : m.rejectWith(f, [C, _, y]), 3670 C.statusCode(b), 3671 (b = void 0), 3672 d && g.trigger(h ? "ajaxSuccess" : "ajaxError", [C, p, h ? u : y]), 3673 v.fireWith(f, [C, _]), 3674 d && (g.trigger("ajaxComplete", [C, p]), --T.active || T.event.trigger("ajaxStop"))); 3675 } 3676 return C; 3677 }, 3678 getJSON: function (e, t, n) { 3679 return T.get(e, t, n, "json"); 3680 }, 3681 getScript: function (e, t) { 3682 return T.get(e, void 0, t, "script"); 3683 }, 3684 }), 3685 T.each(["get", "post"], function (e, t) { 3686 T[t] = function (e, n, i, s) { 3687 return v(n) && ((s = s || i), (i = n), (n = void 0)), T.ajax(T.extend({ url: e, type: t, dataType: s, data: n, success: i }, T.isPlainObject(e) && e)); 3688 }; 3689 }), 3690 T.ajaxPrefilter(function (e) { 3691 var t; 3692 for (t in e.headers) "content-type" === t.toLowerCase() && (e.contentType = e.headers[t] || ""); 3693 }), 3694 (T._evalUrl = function (e, t, n) { 3695 return T.ajax({ 3696 url: e, 3697 type: "GET", 3698 dataType: "script", 3699 cache: !0, 3700 async: !1, 3701 global: !1, 3702 converters: { "text script": function () {} }, 3703 dataFilter: function (e) { 3704 T.globalEval(e, t, n); 3705 }, 3706 }); 3707 }), 3708 T.fn.extend({ 3709 wrapAll: function (e) { 3710 var t; 3711 return ( 3712 this[0] && 3713 (v(e) && (e = e.call(this[0])), 3714 (t = T(e, this[0].ownerDocument).eq(0).clone(!0)), 3715 this[0].parentNode && t.insertBefore(this[0]), 3716 t 3717 .map(function () { 3718 for (var e = this; e.firstElementChild; ) e = e.firstElementChild; 3719 return e; 3720 }) 3721 .append(this)), 3722 this 3723 ); 3724 }, 3725 wrapInner: function (e) { 3726 return v(e) 3727 ? this.each(function (t) { 3728 T(this).wrapInner(e.call(this, t)); 3729 }) 3730 : this.each(function () {
3731 var t = T(this), 3732 n = t.contents(); 3733 n.length ? n.wrapAll(e) : t.append(e); 3734 }); 3735 }, 3736 wrap: function (e) { 3737 var t = v(e); 3738 return this.each(function (n) { 3739 T(this).wrapAll(t ? e.call(this, n) : e); 3740 }); 3741 }, 3742 unwrap: function (e) { 3743 return ( 3744 this.parent(e) 3745 .not("body") 3746 .each(function () { 3747 T(this).replaceWith(this.childNodes); 3748 }), 3749 this 3750 ); 3751 }, 3752 }), 3753 (T.expr.pseudos.hidden = function (e) { 3754 return !T.expr.pseudos.visible(e); 3755 }), 3756 (T.expr.pseudos.visible = function (e) { 3757 return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length); 3758 }), 3759 (T.ajaxSettings.xhr = function () { 3760 try { 3761 return new i.XMLHttpRequest(); 3762 } catch (e) {} 3763 }); 3764 var Vt = { 0: 200, 1223: 204 }, 3765 Gt = T.ajaxSettings.xhr(); 3766 (m.cors = !!Gt && "withCredentials" in Gt), 3767 (m.ajax = Gt = !!Gt), 3768 T.ajaxTransport(function (e) { 3769 var t, n; 3770 if (m.cors || (Gt && !e.crossDomain)) 3771 return { 3772 send: function (s, o) { 3773 var r, 3774 a = e.xhr(); 3775 if ((a.open(e.type, e.url, e.async, e.username, e.password), e.xhrFields)) for (r in e.xhrFields) a[r] = e.xhrFields[r]; 3776 for (r in (e.mimeType && a.overrideMimeType && a.overrideMimeType(e.mimeType), e.crossDomain || s["X-Requested-With"] || (s["X-Requested-With"] = "XMLHttpRequest"), s)) a.setRequestHeader(r, s[r]); 3777 (t = function (e) { 3778 return function () { 3779 t && 3780 ((t = n = a.onload = a.onerror = a.onabort = a.ontimeout = a.onreadystatechange = null), 3781 "abort" === e 3782 ? a.abort() 3783 : "error" === e 3784 ? "number" != typeof a.status 3785 ? o(0, "error") 3786 : o(a.status, a.statusText) 3787 : o( 3788 Vt[a.status] || a.status, 3789 a.statusText, 3790 "text" !== (a.responseType || "text") || "string" != typeof a.responseText ? { binary: a.response } : { text: a.responseText }, 3791 a.getAllResponseHeaders() 3792 )); 3793 }; 3794 }), 3795 (a.onload = t()), 3796 (n = a.onerror = a.ontimeout = t("error")), 3797 void 0 !== a.onabort 3798 ? (a.onabort = n) 3799 : (a.onreadystatechange = function () { 3800 4 === a.readyState && 3801 i.setTimeout(function () { 3802 t && n(); 3803 }); 3804 }), 3805 (t = t("abort")); 3806 try { 3807 a.send((e.hasContent && e.data) || null); 3808 } catch (e) { 3809 if (t) throw e; 3810 } 3811 }, 3812 abort: function () { 3813 t && t(); 3814 }, 3815 }; 3816 }), 3817 T.ajaxPrefilter(function (e) { 3818 e.crossDomain && (e.contents.script = !1); 3819 }), 3820 T.ajaxSetup({ 3821 accepts: { script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" }, 3822 contents: { script: /\b(?:java|ecma)script\b/ }, 3823 converters: { 3824 "text script": function (e) { 3825 return T.globalEval(e), e; 3826 }, 3827 }, 3828 }), 3829 T.ajaxPrefilter("script", function (e) { 3830 void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET"); 3831 }), 3832 T.ajaxTransport("script", function (e) { 3833 var t, n; 3834 if (e.crossDomain || e.scriptAttrs) 3835 return { 3836 send: function (i, s) { 3837 (t = T("<script>") 3838 .attr(e.scriptAttrs || {}) 3839 .prop({ charset: e.scriptCharset, src: e.url }) 3840 .on( 3841 "load error", 3842 (n = function (e) { 3843 t.remove(), (n = null), e && s("error" === e.type ? 404 : 200, e.type); 3844 }) 3845 )), 3846 y.head.appendChild(t[0]); 3847 }, 3848 abort: function () { 3849 n && n(); 3850 }, 3851 }; 3852 }); 3853 var Xt, 3854 Yt = [], 3855 Ut = /(=)\?(?=&|$)|\?\?/; 3856 T.ajaxSetup({ 3857 jsonp: "callback", 3858 jsonpCallback: function () { 3859 var e = Yt.pop() || T.expando + "_" + Et.guid++; 3860 return (this[e] = !0), e; 3861 }, 3862 }), 3863 T.ajaxPrefilter("json jsonp", function (e, t, n) { 3864 var s, 3865 o, 3866 r,
3867 a = !1 !== e.jsonp && (Ut.test(e.url) ? "url" : "string" == typeof e.data && 0 === (e.contentType || "").indexOf("application/x-www-form-urlencoded") && Ut.test(e.data) && "data"); 3868 if (a || "jsonp" === e.dataTypes[0]) 3869 return ( 3870 (s = e.jsonpCallback = v(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback), 3871 a ? (e[a] = e[a].replace(Ut, "$1" + s)) : !1 !== e.jsonp && (e.url += (St.test(e.url) ? "&" : "?") + e.jsonp + "=" + s), 3872 (e.converters["script json"] = function () { 3873 return r || T.error(s + " was not called"), r[0]; 3874 }), 3875 (e.dataTypes[0] = "json"), 3876 (o = i[s]), 3877 (i[s] = function () { 3878 r = arguments; 3879 }), 3880 n.always(function () { 3881 void 0 === o ? T(i).removeProp(s) : (i[s] = o), e[s] && ((e.jsonpCallback = t.jsonpCallback), Yt.push(s)), r && v(o) && o(r[0]), (r = o = void 0); 3882 }), 3883 "script" 3884 ); 3885 }), 3886 (m.createHTMLDocument = (((Xt = y.implementation.createHTMLDocument("").body).innerHTML = "<form></form><form></form>"), 2 === Xt.childNodes.length)), 3887 (T.parseHTML = function (e, t, n) { 3888 return "string" != typeof e 3889 ? [] 3890 : ("boolean" == typeof t && ((n = t), (t = !1)), 3891 t || (m.createHTMLDocument ? (((i = (t = y.implementation.createHTMLDocument("")).createElement("base")).href = y.location.href), t.head.appendChild(i)) : (t = y)), 3892 (o = !n && []), 3893 (s = P.exec(e)) ? [t.createElement(s[1])] : ((s = Ce([e], t, o)), o && o.length && T(o).remove(), T.merge([], s.childNodes))); 3894 var i, s, o; 3895 }), 3896 (T.fn.load = function (e, t, n) { 3897 var i, 3898 s, 3899 o, 3900 r = this, 3901 a = e.indexOf(" "); 3902 return ( 3903 a > -1 && ((i = bt(e.slice(a))), (e = e.slice(0, a))), 3904 v(t) ? ((n = t), (t = void 0)) : t && "object" == typeof t && (s = "POST"), 3905 r.length > 0 && 3906 T.ajax({ url: e, type: s || "GET", dataType: "html", data: t }) 3907 .done(function (e) { 3908 (o = arguments), r.html(i ? T("<div>").append(T.parseHTML(e)).find(i) : e); 3909 }) 3910 .always( 3911 n && 3912 function (e, t) { 3913 r.each(function () { 3914 n.apply(this, o || [e.responseText, t, e]); 3915 }); 3916 } 3917 ), 3918 this 3919 ); 3920 }), 3921 (T.expr.pseudos.animated = function (e) { 3922 return T.grep(T.timers, function (t) { 3923 return e === t.elem; 3924 }).length; 3925 }), 3926 (T.offset = { 3927 setOffset: function (e, t, n) { 3928 var i, 3929 s, 3930 o, 3931 r, 3932 a, 3933 l, 3934 c = T.css(e, "position"), 3935 d = T(e), 3936 h = {}; 3937 "static" === c && (e.style.position = "relative"), 3938 (a = d.offset()), 3939 (o = T.css(e, "top")), 3940 (l = T.css(e, "left")), 3941 ("absolute" === c || "fixed" === c) && (o + l).indexOf("auto") > -1 ? ((r = (i = d.position()).top), (s = i.left)) : ((r = parseFloat(o) || 0), (s = parseFloat(l) || 0)), 3942 v(t) && (t = t.call(e, n, T.extend({}, a))), 3943 null != t.top && (h.top = t.top - a.top + r), 3944 null != t.left && (h.left = t.left - a.left + s), 3945 "using" in t ? t.using.call(e, h) : d.css(h); 3946 }, 3947 }), 3948 T.fn.extend({ 3949 offset: function (e) { 3950 if (arguments.length) 3951 return void 0 === e 3952 ? this 3953 : this.each(function (t) { 3954 T.offset.setOffset(this, e, t); 3955 }); 3956 var t, 3957 n, 3958 i = this[0]; 3959 return i ? (i.getClientRects().length ? ((t = i.getBoundingClientRect()), (n = i.ownerDocument.defaultView), { top: t.top + n.pageYOffset, left: t.left + n.pageXOffset }) : { top: 0, left: 0 }) : void 0; 3960 }, 3961 position: function () { 3962 if (this[0]) { 3963 var e, 3964 t, 3965 n, 3966 i = this[0], 3967 s = { top: 0, left: 0 }; 3968 if ("fixed" === T.css(i, "position")) t = i.getBoundingClientRect(); 3969 else { 3970 for (t = this.offset(), n = i.ownerDocument, e = i.offsetParent || n.documentElement; e && (e === n.body || e === n.documentElement) && "static" === T.css(e, "position"); ) e = e.parentNode; 3971 e && e !== i && 1 === e.nodeType && (((s = T(e).offset()).top += T.css(e, "borderTopWidth", !0)), (s.left += T.css(e, "borderLeftWidth", !0))); 3972 } 3973 return { top: t.top - s.top - T.css(i, "marginTop", !0), left: t.left - s.left - T.css(i, "marginLeft", !0) }; 3974 } 3975 }, 3976 offsetParent: function () { 3977 return this.map(function () { 3978 for (var e = this.offsetParent; e && "static" === T.css(e, "position"); ) e = e.offsetParent; 3979 return e || re; 3980 }); 3981 }, 3982 }), 3983 T.each({ scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function (e, t) { 3984 var n = "pageYOffset" === t; 3985 T.fn[e] = function (i) { 3986 return V( 3987 this, 3988 function (e, i, s) { 3989 var o; 3990 if ((b(e) ? (o = e) : 9 === e.
3990nodeType && (o = e.defaultView), void 0 === s)) return o ? o[t] : e[i]; 3991 o ? o.scrollTo(n ? o.pageXOffset : s, n ? s : o.pageYOffset) : (e[i] = s); 3992 }, 3993 e, 3994 i, 3995 arguments.length 3996 ); 3997 }; 3998 }), 3999 T.each(["top", "left"], function (e, t) { 4000 T.cssHooks[t] = Xe(m.pixelPosition, function (e, n) { 4001 if (n) return (n = Ge(e, t)), He.test(n) ? T(e).position()[t] + "px" : n; 4002 }); 4003 }), 4004 T.each({ Height: "height", Width: "width" }, function (e, t) { 4005 T.each({ padding: "inner" + e, content: t, "": "outer" + e }, function (n, i) { 4006 T.fn[i] = function (s, o) { 4007 var r = arguments.length && (n || "boolean" != typeof s), 4008 a = n || (!0 === s || !0 === o ? "margin" : "border"); 4009 return V( 4010 this, 4011 function (t, n, s) { 4012 var o; 4013 return b(t) 4014 ? 0 === i.indexOf("outer") 4015 ? t["inner" + e] 4016 : t.document.documentElement["client" + e] 4017 : 9 === t.nodeType 4018 ? ((o = t.documentElement), Math.max(t.body["scroll" + e], o["scroll" + e], t.body["offset" + e], o["offset" + e], o["client" + e])) 4019 : void 0 === s 4020 ? T.css(t, n, a) 4021 : T.style(t, n, s, a); 4022 }, 4023 t, 4024 r ? s : void 0, 4025 r 4026 ); 4027 }; 4028 }); 4029 }), 4030 T.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function (e, t) { 4031 T.fn[t] = function (e) { 4032 return this.on(t, e); 4033 }; 4034 }), 4035 T.fn.extend({ 4036 bind: function (e, t, n) { 4037 return this.on(e, null, t, n); 4038 }, 4039 unbind: function (e, t) { 4040 return this.off(e, null, t); 4041 }, 4042 delegate: function (e, t, n, i) { 4043 return this.on(t, e, n, i); 4044 }, 4045 undelegate: function (e, t, n) { 4046 return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n); 4047 }, 4048 hover: function (e, t) { 4049 return this.mouseenter(e).mouseleave(t || e); 4050 }, 4051 }), 4052 T.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), function ( 4053 e, 4054 t 4055 ) { 4056 T.fn[t] = function (e, n) { 4057 return arguments.length > 0 ? this.on(t, null, e, n) : this.trigger(t); 4058 }; 4059 }); 4060 var Kt = /^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g; 4061 (T.proxy = function (e, t) { 4062 var n, i, s;
4063 if (("string" == typeof t && ((n = e[t]), (t = e), (e = n)), v(e))) 4064 return ( 4065 (i = a.call(arguments, 2)), 4066 (s = function () { 4067 return e.apply(t || this, i.concat(a.call(arguments))); 4068 }), 4069 (s.guid = e.guid = e.guid || T.guid++), 4070 s 4071 ); 4072 }), 4073 (T.holdReady = function (e) { 4074 e ? T.readyWait++ : T.ready(!0); 4075 }), 4076 (T.isArray = Array.isArray), 4077 (T.parseJSON = JSON.parse), 4078 (T.nodeName = L), 4079 (T.isFunction = v), 4080 (T.isWindow = b), 4081 (T.camelCase = U), 4082 (T.type = _), 4083 (T.now = Date.now), 4084 (T.isNumeric = function (e) { 4085 var t = T.type(e); 4086 return ("number" === t || "string" === t) && !isNaN(e - parseFloat(e)); 4087 }), 4088 (T.trim = function (e) { 4089 return null == e ? "" : (e + "").replace(Kt, "$1"); 4090 }), 4091 void 0 === 4092 (n = function () { 4093 return T; 4094 }.apply(t, [])) || (e.exports = n); 4095 var Zt = i.jQuery, 4096 Qt = i.$; 4097 return ( 4098 (T.noConflict = function (e) { 4099 return i.$ === T && (i.$ = Qt), e && i.jQuery === T && (i.jQuery = Zt), T; 4100 }), 4101 void 0 === s && (i.jQuery = i.$ = T), 4102 T 4103 ); 4104 }); 4105 }, 4106 }, 4107 t = {}; 4108 function n(i) { 4109 var s = t[i]; 4110 if (void 0 !== s) return s.exports; 4111 var o = (t[i] = { exports: {} }); 4112 return e[i].call(o.exports, o, o.exports, n), o.exports; 4113 } 4114 (n.n = (e) => { 4115 var t = e && e.__esModule ? () => e.default : () => e; 4116 return n.d(t, { a: t }), t; 4117 }), 4118 (n.d = (e, t) => { 4119 for (var i in t) n.o(t, i) && !n.o(e, i) && Object.defineProperty(e, i, { enumerable: !0, get: t[i] }); 4120 }), 4121 (n.g = (function () { 4122 if ("object" == typeof globalThis) return globalThis; 4123 try { 4124 return this || new Function("return this")(); 4125 } catch (e) { 4126 if ("object" == typeof window) return window; 4127 } 4128 })()), 4129 (n.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)), 4130 (n.r = (e) => { 4131 "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 }); 4132 }), 4133 (() => { 4134 "use strict"; 4135 var e = {}; 4136 n.r(e), 4137 n.d(e, { 4138 afterMain: () => at, 4139 afterRead: () => st, 4140 afterWrite: () => dt, 4141 applyStyles: () => vt, 4142 arrow: () => zt, 4143 auto: () => Ge, 4144 basePlacements: () => Xe, 4145 beforeMain: () => ot, 4146 beforeRead: () => nt, 4147 beforeWrite: () => lt, 4148 bottom: () => qe, 4149 clippingParents: () => Ke, 4150 computeStyles: () => Rt, 4151 createPopper: () => bn, 4152 createPopperBase: () => vn, 4153 createPopperLite: () => yn, 4154 detectOverflow: () => sn, 4155 end: () => Ue, 4156 eventListeners: () => qt, 4157 flip: () => on, 4158 hide: () => ln, 4159 left: () => Ve, 4160 main: () => rt, 4161 modifierPhases: () => ht, 4162 offset: () => cn, 4163 placements: () => tt, 4164 popper: () => Qe, 4165 popperGenerator: () => mn, 4166 popperOffsets: () => dn, 4167 preventOverflow: () => hn, 4168 read: () => it, 4169 reference: () => Je, 4170 right: () => We, 4171 start: () => Ye, 4172 top: () => Be, 4173 variationPlacements: () => et, 4174 viewport: () => Ze, 4175 write: () => ct, 4176 }); 4177 var t = n(755), 4178 i = n.n(t); 4179 function s(e) { 4180 return null !== e && "object" == typeof e && "constructor" in e && e.constructor === Object; 4181 } 4182 function o(e = {}, t = {}) { 4183 Object.keys(t).forEach((n) => { 4184 void 0 === e[n] ? (e[n] = t[n]) : s(t[n]) && s(e[n]) && Object.keys(t[n]).length > 0 && o(e[n], t[n]); 4185 }); 4186 } 4187 const r = { 4188 body: {}, 4189 addEventListener() {}, 4190 removeEventListener() {}, 4191 activeElement: { blur() {}, nodeName: "" }, 4192 querySelector: () => null, 4193 querySelectorAll: () => [], 4194 getElementById: () => null, 4195 createEvent: () => ({ initEvent() {} }), 4196 createElement: () => ({ children: [], childNodes: [], style: {}, setAttribute() {}, getElementsByTagName: () => [] }), 4197 createElementNS: () => ({}), 4198 importNode: () => null, 4199 location: { hash: "", host: "", hostname: "", href: "", origin: "", pathname: "", protocol: "", search: "" }, 4200 }; 4201 function a() { 4202 const e = "undefined" != typeof document ? document : {}; 4203 return o(e, r), e; 4204 } 4205 const l = { 4206 document: r, 4207 navigator: { userAgent: "" }, 4208 location: { hash: "", host: "", hostname: "", href: "", origin: "", pathname: "", protocol: "", search: "" }, 4209 history: { replaceState() {}, pushState() {}, go() {}, back() {} }, 4210 CustomEvent: function () { 4211 return this; 4212 }, 4213 addEventListener() {}, 4214 removeEventListener() {}, 4215 getComputedStyle: () => ({ getPropertyValue: () => "" }), 4216 Image() {}, 4217 Date() {}, 4218 screen: {}, 4219 setTimeout() {}, 4220 clearTimeout() {}, 4221 matchMedia: () => ({}), 4222 requestAnimationFrame: (e) => ("undefined" == typeof setTimeout ? (e(), null) : setTimeout(e, 0)), 4223 cancelAnimationFrame(e) { 4224 "undefined" != typeof setTimeout && clearTimeout(e); 4225 }, 4226 }; 4227 function c() { 4228 const e = "undefined" != typeof window ? window : {}; 4229 return o(e, l), e; 4230 } 4231 class d extends Array { 4232 constructor(e) { 4233 "number" == typeof e 4234 ? super(e) 4235 : (super(...(e || [])), 4236 (function (e) { 4237 const t = e.__proto__; 4238 Object.defineProperty(e, "__proto__", { 4239 get: () => t, 4240 set(e) { 4241 t.__proto__ = e; 4242 }, 4243 }); 4244 })(this)); 4245 } 4246 } 4247 function h(e = []) { 4248 const t = []; 4249 return ( 4250 e.forEach((e) => { 4251 Array.isArray(e) ? t.push(...h(e)) : t.push(e); 4252 }), 4253 t 4254 ); 4255 } 4256 function u(e, t) { 4257 return Array.prototype.filter.call(e, t); 4258 } 4259 function p(e, t) { 4260 const n = c(), 4261 i = a(); 4262 let s = []; 4263 if (!t && e instanceof d) return e; 4264 if (!e) return new d(s); 4265 if ("string" == typeof e) { 4266 const n = e.trim(); 4267 if (n.indexOf("<") >= 0 && n.indexOf(">") >= 0) { 4268 let e = "div"; 4269 0 === n.indexOf("<li") && (e = "ul"), 4270 0 === n.indexOf("<tr") && (e = "tbody"), 4271 (0 !== n.indexOf("<td") && 0 !== n.indexOf("<th")) || (e = "tr"), 4272 0 === n.indexOf("<tbody") && (e = "table"), 4273 0 === n.indexOf("<option") && (e = "select"); 4274 const t = i.createElement(e); 4275 t.innerHTML = n; 4276 for (let e = 0; e < t.childNodes.length; e += 1) s.push(t.childNodes[e]); 4277 } else 4278 s = (function (e, t) { 4279 if ("string" != typeof e) return [e]; 4280 const n = [], 4281 i = t.querySelectorAll(e); 4282 for (let e = 0; e < i.length; e += 1) n.push(i[e]); 4283 return n; 4284 })(e.trim(), t || i); 4285 } else if (e.nodeType || e === n || e === i) s.push(e); 4286 else if (Array.isArray(e)) { 4287 if (e instanceof d) return e; 4288 s = e; 4289 } 4290 return new d( 4291 (function (e) { 4292 const t = []; 4293 for (let n = 0; n < e.length; n += 1) -1 === t.indexOf(e[n]) && t.push(e[n]); 4294 return t; 4295 })(s) 4296 ); 4297 } 4298 p.fn = d.prototype; 4299 const f = "resize scroll".split(" "); 4300 function g(e) { 4301 return function (...t) { 4302 if (void 0 === t[0]) { 4303 for (let t = 0; t < this.length; t += 1) f.indexOf(e) < 0 && (e in this[t] ? this[t][e]() : p(this[t]).trigger(e)); 4304 return this; 4305 } 4306 return this.on(e, ...t); 4307 }; 4308 } 4309 g("click"), 4310 g("blur"), 4311 g("focus"), 4312 g("focusin"), 4313 g("focusout"), 4314 g("keyup"), 4315 g("keydown"), 4316 g("keypress"), 4317 g("submit"), 4318 g("change"), 4319 g("mousedown"), 4320 g("mousemove"), 4321 g("mouseup"), 4322 g("mouseenter"), 4323 g("mouseleave"), 4324 g("mouseout"), 4325 g("mouseover"), 4326 g("touchstart"), 4327 g("touchend"), 4328 g("touchmove"), 4329 g("resize"), 4330 g("scroll"); 4331 const m = { 4332 addClass: function (...e) { 4333 const t = h(e.map((e) => e.split(" "))); 4334 return ( 4335 this.forEach((e) => { 4336 e.classList.add(...t); 4337 }), 4338 this 4339 ); 4340 }, 4341 removeClass: function (...e) { 4342 const t = h(e.map((e) => e.split(" "))); 4343 return ( 4344 this.forEach((e) => { 4345 e.classList.remove(...t); 4346 }), 4347 this 4348 ); 4349 }, 4350 hasClass: function (...e) { 4351 const t = h(e.map((e) => e.split(" "))); 4352 return u(this, (e) => t.filter((t) => e.classList.contains(t)).length > 0).length > 0; 4353 }, 4354 toggleClass: function (...e) { 4355 const t = h(e.map((e) => e.split(" "))); 4356 this.forEach((e) => { 4357 t.forEach((t) => { 4358 e.classList.toggle(t); 4359 }); 4360 }); 4361 }, 4362 attr: function (e, t) { 4363 if (1 === arguments.length && "string" == typeof e) return this[0] ? this[0].getAttribute(e) : void 0; 4364 for (let n = 0; n < this.length; n += 1) 4365 if (2 === arguments.length) this[n].setAttribute(e, t); 4366 else for (const t in e) (this[n][t] = e[t]), this[n].setAttribute(t, e[t]); 4367 return this; 4368 }, 4369 removeAttr: function (e) { 4370 for (let t = 0; t < this.length; t += 1) this[t].removeAttribute(e); 4371 return this; 4372 }, 4373 transform: function (e) { 4374 for (let t = 0; t < this.length; t += 1) this[t].style.transform = e; 4375 return this; 4376 }, 4377 transition: function (e) { 4378 for (let t = 0; t < this.length; t += 1) this[t].style.transitionDuration = "string" != typeof e ? `${e}ms` : e; 4379 return this; 4380 }, 4381 on: function (...e) { 4382 let [t, n, i, s] = e; 4383 function o(e) { 4384 const t = e.target; 4385 if (!t) return; 4386 const s = e.target.dom7EventData || []; 4387 if ((s.indexOf(e) < 0 && s.unshift(e), p(t).is(n))) i.apply(t, s); 4388 else { 4389 const e = p(t).parents(); 4390 for (let t = 0; t < e.length; t += 1) p(e[t]).is(n) && i.apply(e[t], s); 4391 } 4392 } 4393 function r(e) { 4394 const t = (e && e.target && e.target.dom7EventData) || []; 4395 t.indexOf(e) < 0 && t.unshift(e), i.apply(this, t); 4396 } 4397 "function" == typeof e[1] && (([t, i, s] = e), (n = void 0)), s || (s = !1); 4398 const a = t.split(" "); 4399 let l; 4400 for (let e = 0; e < this.length; e += 1) { 4401 const t = this[e]; 4402 if (n) 4403 for (l = 0; l < a.length; l += 1) { 4404 const e = a[l]; 4405 t.dom7LiveListeners || (t.dom7LiveListeners = {}), t.dom7LiveListeners[e] || (t.dom7LiveListeners[e] = []), t.dom7LiveListeners[e].push({ listener: i, proxyListener: o }), t.addEventListener(e, o, s); 4406 } 4407 else 4408 for (l = 0; l < a.length; l += 1) { 4409 const e = a[l]; 4410 t.dom7Listeners || (t.dom7Listeners = {}), t.dom7Listeners[e] || (t.dom7Listeners[e] = []), t.dom7Listeners[e].push({ listener: i, proxyListener: r }), t.addEventListener(e, r, s); 4411 } 4412 } 4413 return this; 4414 }, 4415 off: function (...e) { 4416 let [t, n, i, s] = e; 4417 "function" == typeof e[1] && (([t, i, s] = e), (n = void 0)), s || (s = !1); 4418 const o = t.split(" "); 4419 for (let e = 0; e < o.length; e += 1) { 4420 const t = o[e]; 4421 for (let e = 0; e < this.length; e += 1) { 4422 const o = this[e]; 4423 let r; 4424 if ((!n && o.dom7Listeners ? (r = o.dom7Listeners[t]) : n && o.dom7LiveListeners && (r = o.dom7LiveListeners[t]), r && r.length)) 4425 for (let e = r.length - 1; e >= 0; e -= 1) { 4426 const n = r[e]; 4427
4427 (i && n.listener === i) || (i && n.listener && n.listener.dom7proxy && n.listener.dom7proxy === i) 4428 ? (o.removeEventListener(t, n.proxyListener, s), r.splice(e, 1)) 4429 : i || (o.removeEventListener(t, n.proxyListener, s), r.splice(e, 1)); 4430 } 4431 } 4432 } 4433 return this; 4434 }, 4435 trigger: function (...e) { 4436 const t = c(), 4437 n = e[0].split(" "), 4438 i = e[1]; 4439 for (let s = 0; s < n.length; s += 1) { 4440 const o = n[s]; 4441 for (let n = 0; n < this.length; n += 1) { 4442 const s = this[n]; 4443 if (t.CustomEvent) { 4444 const n = new t.CustomEvent(o, { detail: i, bubbles: !0, cancelable: !0 }); 4445 (s.dom7EventData = e.filter((e, t) => t > 0)), s.dispatchEvent(n), (s.dom7EventData = []), delete s.dom7EventData; 4446 } 4447 } 4448 } 4449 return this; 4450 }, 4451 transitionEnd: function (e) { 4452 const t = this; 4453 return ( 4454 e && 4455 t.on("transitionend", function n(i) { 4456 i.target === this && (e.call(this, i), t.off("transitionend", n)); 4457 }), 4458 this 4459 ); 4460 }, 4461 outerWidth: function (e) { 4462 if (this.length > 0) { 4463 if (e) { 4464 const e = this.styles(); 4465 return this[0].offsetWidth + parseFloat(e.getPropertyValue("margin-right")) + parseFloat(e.getPropertyValue("margin-left")); 4466 } 4467 return this[0].offsetWidth; 4468 } 4469 return null; 4470 }, 4471 outerHeight: function (e) { 4472 if (this.length > 0) { 4473 if (e) { 4474 const e = this.styles(); 4475 return this[0].offsetHeight + parseFloat(e.getPropertyValue("margin-top")) + parseFloat(e.getPropertyValue("margin-bottom")); 4476 } 4477 return this[0].offsetHeight; 4478 } 4479 return null; 4480 }, 4481 styles: function () { 4482 const e = c(); 4483 return this[0] ? e.getComputedStyle(this[0], null) : {}; 4484 }, 4485 offset: function () { 4486 if (this.length > 0) { 4487 const e = c(), 4488 t = a(), 4489 n = this[0], 4490 i = n.getBoundingClientRect(), 4491 s = t.body, 4492 o = n.clientTop || s.clientTop || 0, 4493 r = n.clientLeft || s.clientLeft || 0, 4494 l = n === e ? e.scrollY : n.scrollTop, 4495 d = n === e ? e.scrollX : n.scrollLeft; 4496 return { top: i.top + l - o, left: i.left + d - r }; 4497 } 4498 return null; 4499 }, 4500 css: function (e, t) { 4501 const n = c(); 4502 let i; 4503 if (1 === arguments.length) { 4504 if ("string" != typeof e) { 4505 for (i = 0; i < this.length; i += 1) for (const t in e) this[i].style[t] = e[t]; 4506 return this; 4507 } 4508 if (this[0]) return n.getComputedStyle(this[0], null).getPropertyValue(e); 4509 } 4510 if (2 === arguments.length && "string" == typeof e) { 4511 for (i = 0; i < this.length; i += 1) this[i].style[e] = t; 4512 return this; 4513 } 4514 return this; 4515 }, 4516 each: function (e) { 4517 return e 4518 ? (this.forEach((t, n) => { 4519 e.apply(t, [t, n]); 4520 }), 4521 this) 4522 : this; 4523 }, 4524 html: function (e) { 4525 if (void 0 === e) return this[0] ? this[0].innerHTML : null; 4526 for (let t = 0; t < this.length; t += 1) this[t].innerHTML = e; 4527 return this; 4528 }, 4529 text: function (e) { 4530 if (void 0 === e) return this[0] ? this[0].textContent.trim() : null; 4531 for (let t = 0; t < this.length; t += 1) this[t].textContent = e; 4532 return this; 4533 }, 4534 is: function (e) { 4535 const t = c(), 4536 n = a(), 4537 i = this[0]; 4538 let s, o; 4539 if (!i || void 0 === e) return !1; 4540 if ("string" == typeof e) { 4541 if (i.matches) return i.matches(e); 4542 if (i.webkitMatchesSelector) return i.webkitMatchesSelector(e); 4543 if (i.msMatchesSelector) return i.msMatchesSelector(e); 4544 for (s = p(e), o = 0; o < s.length; o += 1) if (s[o] === i) return !0; 4545 return !1; 4546 } 4547 if (e === n) return i === n; 4548 if (e === t) return i === t; 4549 if (e.nodeType || e instanceof d) {
4550 for (s = e.nodeType ? [e] : e, o = 0; o < s.length; o += 1) if (s[o] === i) return !0; 4551 return !1; 4552 } 4553 return !1; 4554 }, 4555 index: function () { 4556 let e, 4557 t = this[0]; 4558 if (t) { 4559 for (e = 0; null !== (t = t.previousSibling); ) 1 === t.nodeType && (e += 1); 4560 return e; 4561 } 4562 }, 4563 eq: function (e) { 4564 if (void 0 === e) return this; 4565 const t = this.length; 4566 if (e > t - 1) return p([]); 4567 if (e < 0) { 4568 const n = t + e; 4569 return p(n < 0 ? [] : [this[n]]); 4570 } 4571 return p([this[e]]); 4572 }, 4573 append: function (...e) { 4574 let t; 4575 const n = a(); 4576 for (let i = 0; i < e.length; i += 1) { 4577 t = e[i]; 4578 for (let e = 0; e < this.length; e += 1) 4579 if ("string" == typeof t) { 4580 const i = n.createElement("div"); 4581 for (i.innerHTML = t; i.firstChild; ) this[e].appendChild(i.firstChild); 4582 } else if (t instanceof d) for (let n = 0; n < t.length; n += 1) this[e].appendChild(t[n]); 4583 else this[e].appendChild(t); 4584 } 4585 return this; 4586 }, 4587 prepend: function (e) { 4588 const t = a(); 4589 let n, i; 4590 for (n = 0; n < this.length; n += 1) 4591 if ("string" == typeof e) { 4592 const s = t.createElement("div"); 4593 for (s.innerHTML = e, i = s.childNodes.length - 1; i >= 0; i -= 1) this[n].insertBefore(s.childNodes[i], this[n].childNodes[0]); 4594 } else if (e instanceof d) for (i = 0; i < e.length; i += 1) this[n].insertBefore(e[i], this[n].childNodes[0]); 4595 else this[n].insertBefore(e, this[n].childNodes[0]); 4596 return this; 4597 }, 4598 next: function (e) { 4599 return this.length > 0 ? (e ? (this[0].nextElementSibling && p(this[0].nextElementSibling).is(e) ? p([this[0].nextElementSibling]) : p([])) : this[0].nextElementSibling ? p([this[0].nextElementSibling]) : p([])) : p([]); 4600 }, 4601 nextAll: function (e) { 4602 const t = []; 4603 let n = this[0]; 4604 if (!n) return p([]); 4605 for (; n.nextElementSibling; ) { 4606 const i = n.nextElementSibling; 4607 e ? p(i).is(e) && t.push(i) : t.push(i), (n = i); 4608 } 4609 return p(t); 4610 }, 4611 prev: function (e) { 4612 if (this.length > 0) { 4613 const t = this[0]; 4614 return e ? (t.previousElementSibling && p(t.previousElementSibling).is(e) ? p([t.previousElementSibling]) : p([])) : t.previousElementSibling ? p([t.previousElementSibling]) : p([]); 4615 } 4616 return p([]); 4617 }, 4618 prevAll: function (e) { 4619 const t = []; 4620 let n = this[0]; 4621 if (!n) return p([]); 4622 for (; n.previousElementSibling; ) { 4623 const i = n.previousElementSibling; 4624 e ? p(i).is(e) && t.push(i) : t.push(i), (n = i); 4625 } 4626 return p(t); 4627 }, 4628 parent: function (e) { 4629 const t = []; 4630 for (let n = 0; n < this.length; n += 1) null !== this[n].parentNode && (e ? p(this[n].parentNode).is(e) && t.push(this[n].parentNode) : t.push(this[n].parentNode)); 4631 return p(t); 4632 }, 4633 parents: function (e) { 4634 const t = []; 4635 for (let n = 0; n < this.length; n += 1) { 4636 let i = this[n].parentNode; 4637 for (; i; ) e ? p(i).is(e) && t.push(i) : t.push(i), (i = i.parentNode); 4638 } 4639 return p(t); 4640 }, 4641 closest: function (e) { 4642 let t = this; 4643 return void 0 === e ? p([]) : (t.is(e) || (t = t.parents(e).eq(0)), t); 4644 }, 4645 find: function (e) { 4646 const t = []; 4647 for (let n = 0; n < this.length; n += 1) { 4648 const i = this[n].querySelectorAll(e); 4649 for (let e = 0; e < i.length; e += 1) t.push(i[e]); 4650 } 4651 return p(t); 4652 }, 4653 children: function (e) { 4654 const t = []; 4655 for (let n = 0; n < this.length; n += 1) { 4656 const i = this[n].children; 4657 for (let n = 0; n < i.length; n += 1) (e && !p(i[n]).is(e)) || t.push(i[n]); 4658 } 4659 return p(t); 4660 }, 4661 filter: function (e) { 4662 return p(u(this, e)); 4663 }, 4664 remove: function () { 4665 for (let e = 0; e < this.length; e += 1) this[e].parentNode && this[e].parentNode.removeChild(this[e]); 4666 return this; 4667 }, 4668 }; 4669 Object.keys(m).forEach((e) => { 4670 Object.defineProperty(p.fn, e, { value: m[e], writable: !0 }); 4671 }); 4672 const v = p; 4673 function b(e, t = 0) { 4674 return setTimeout(e, t); 4675 } 4676 function y() { 4677 return Date.now(); 4678 } 4679 function w(e, t = "x") { 4680 const n = c(); 4681 let i, s, o; 4682 const r = (function (e) { 4683 const t = c(); 4684 let n; 4685 return t.getComputedStyle && (n = t.getComputedStyle(e, null)), !n && e.currentStyle && (n = e.currentStyle), n || (n = e.style), n; 4686 })(e); 4687 return ( 4688 n.WebKitCSSMatrix 4689 ? ((s = r.transform || r.webkitTransform), 4690 s.split(",").length > 6 && 4691 (s = s 4692 .split(", ") 4693 .map((e) => e.replace(",", ".")) 4694 .join(", ")), 4695 (o = new n.WebKitCSSMatrix("none" === s ? "" : s))) 4696 : ((o = r.MozTransform || r.OTransform || r.MsTransform || r.msTransform || r.transform || r.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,")), (i = o.toString().split(","))), 4697 "x" === t && (s = n.WebKitCSSMatrix ? o.m41 : 16 === i.length ? parseFloat(i[12]) : parseFloat(i[4])), 4698 "y" === t && (s = n.WebKitCSSMatrix ? o.m42 : 16 === i.length ? parseFloat(i[13]) : parseFloat(i[5])), 4699 s || 0 4700 ); 4701 } 4702 function x(e) { 4703 return "object" == typeof e && null !== e && e.constructor && "Object" === Object.prototype.toString.call(e).slice(8, -1); 4704 } 4705 function _(...e) { 4706 const t = Object(e[0]), 4707 n = ["__proto__", "constructor", "prototype"]; 4708 for (let s = 1; s < e.length; s += 1) { 4709 const o = e[s]; 4710 if (null != o && ((i = o), !("undefined" != typeof window && void 0 !== window.HTMLElement ? i instanceof HTMLElement : i && (1 === i.nodeType || 11 === i.nodeType)))) { 4711 const e = Object.keys(Object(o)).filter((e) => n.indexOf(e) < 0); 4712 for (let n = 0, i = e.length; n < i; n += 1) { 4713 const i = e[n], 4714 s = Object.getOwnPropertyDescriptor(o, i); 4715 void 0 !== s && s.enumerable && (x(t[i]) && x(o[i]) ? (o[i].__swiper__ ? (t[i] = o[i]) : _(t[i], o[i])) : !x(t[i]) && x(o[i]) ? ((t[i] = {}), o[i].__swiper__ ? (t[i] = o[i]) : _(t[i], o[i])) : (t[i] = o[i])); 4716 } 4717 } 4718 } 4719 var i; 4720 return t; 4721 } 4722 function C(e, t, n) { 4723 e.style.setProperty(t, n); 4724 } 4725 function T({ swiper: e, targetPosition: t, side: n }) { 4726 const i = c(), 4727 s = -e.translate; 4728 let o, 4729 r = null; 4730 const a = e.params.speed; 4731 (e.wrapperEl.style.scrollSnapType = "none"), i.cancelAnimationFrame(e.cssModeFrameID); 4732 const l = t > s ? "next" : "prev", 4733 d = (e, t) => ("next" === l && e >= t) || ("prev" === l && e <= t), 4734 h = () => { 4735 (o = new Date().getTime()), null === r && (r = o); 4736 const l = Math.max(Math.min((o - r) / a, 1), 0), 4737 c = 0.5 - Math.cos(l * Math.PI) / 2; 4738 let u = s + c * (t - s); 4739 if ((d(u, t) && (u = t), e.wrapperEl.scrollTo({ [n]: u }), d(u, t))) 4740 return ( 4741 (e.wrapperEl.style.overflow = "hidden"), 4742 (e.wrapperEl.style.scrollSnapType = ""), 4743 setTimeout(() => { 4744 (e.wrapperEl.style.overflow = ""), e.wrapperEl.scrollTo({ [n]: u }); 4745 }), 4746 void i.cancelAnimationFrame(e.cssModeFrameID) 4747 ); 4748 e.cssModeFrameID = i.requestAnimationFrame(h); 4749 }; 4750 h(); 4751 } 4752 let E, S, A; 4753 function k() { 4754 return ( 4755 E || 4756 (E = (function () { 4757 const e = c(), 4758 t = a(); 4759 return { 4760 smoothScroll: t.documentElement && "scrollBehavior" in t.documentElement.style, 4761 touch: !!("ontouchstart" in e || (e.DocumentTouch && t instanceof e.DocumentTouch)), 4762 passiveListener: (function () { 4763 let t = !1; 4764 try { 4765 const n = Object.defineProperty({}, "passive", { 4766 get() { 4767 t = !0; 4768 }, 4769 }); 4770 e.addEventListener("testPassiveListener", null, n); 4771 } catch (e) {} 4772 return t; 4773 })(), 4774 gestures: "ongesturestart" in e, 4775 }; 4776 })()), 4777 E 4778 ); 4779 } 4780 function $(e = {}) { 4781 return ( 4782 S || 4783 (S = (function ({ userAgent: e } = {}) { 4784 const t = k(), 4785 n = c(), 4786 i = n.navigator.platform, 4787 s = e || n.navigator.userAgent, 4788 o = { ios: !1, android: !1 }, 4789 r = n.screen.width, 4790 a = n.screen.height, 4791 l = s.match(/(Android);?[\s\/]+([\d.]+)?/); 4792 let d = s.match(/(iPad).*OS\s([\d_]+)/); 4793 const h = s.match(/(iPod)(.*OS\s([\d_]+))?/), 4794 u = !d && s.match(/(iPhone\sOS|iOS)\s([\d_]+)/), 4795 p = "Win32" === i; 4796 let f = "MacIntel" === i; 4797 return ( 4798 !d && 4799 f && 4800 t.touch && 4801 ["1024x1366", "1366x1024", "834x1194", "1194x834", "834x1112", "1112x834", "768x1024", "1024x768", "820x1180", "1180x820", "810x1080", "1080x810"].indexOf(`${r}x${a}`) >= 0 && 4802 ((d = s.match(/(Version)\/([\d.]+)/)), d || (d = [0, 1, "13_0_0"]), (f = !1)), 4803 l && !p && ((o.os = "android"), (o.android = !0)), 4804 (d || u || h) && ((o.os = "ios"), (o.ios = !0)), 4805 o 4806 ); 4807 })(e)), 4808 S 4809 ); 4810 } 4811 function L() { 4812 return ( 4813 A || 4814 (A = (function () { 4815 const e = c(); 4816 return { 4817 isSafari: (function () { 4818 const t = e.navigator.userAgent.toLowerCase(); 4819 return t.indexOf("safari") >= 0 && t.indexOf("chrome") < 0 && t.indexOf("android") < 0; 4820 })(), 4821 isWebView: /(iPhone|iPod|iPad).*AppleWeb
4821Kit(?!.*Safari)/i.test(e.navigator.userAgent), 4822 }; 4823 })()), 4824 A 4825 ); 4826 } 4827 const P = { 4828 on(e, t, n) { 4829 const i = this; 4830 if (!i.eventsListeners || i.destroyed) return i; 4831 if ("function" != typeof t) return i; 4832 const s = n ? "unshift" : "push"; 4833 return ( 4834 e.split(" ").forEach((e) => { 4835 i.eventsListeners[e] || (i.eventsListeners[e] = []), i.eventsListeners[e][s](t); 4836 }), 4837 i 4838 ); 4839 }, 4840 once(e, t, n) { 4841 const i = this; 4842 if (!i.eventsListeners || i.destroyed) return i; 4843 if ("function" != typeof t) return i; 4844 function s(...n) { 4845 i.off(e, s), s.__emitterProxy && delete s.__emitterProxy, t.apply(i, n); 4846 } 4847 return (s.__emitterProxy = t), i.on(e, s, n); 4848 }, 4849 onAny(e, t) { 4850 const n = this; 4851 if (!n.eventsListeners || n.destroyed) return n; 4852 if ("function" != typeof e) return n; 4853 const i = t ? "unshift" : "push"; 4854 return n.eventsAnyListeners.indexOf(e) < 0 && n.eventsAnyListeners[i](e), n; 4855 }, 4856 offAny(e) { 4857 const t = this; 4858 if (!t.eventsListeners || t.destroyed) return t; 4859 if (!t.eventsAnyListeners) return t; 4860 const n = t.eventsAnyListeners.indexOf(e); 4861 return n >= 0 && t.eventsAnyListeners.splice(n, 1), t; 4862 }, 4863 off(e, t) { 4864 const n = this; 4865 return !n.eventsListeners || n.destroyed 4866 ? n 4867 : n.eventsListeners 4868 ? (e.split(" ").forEach((e) => { 4869 void 0 === t 4870 ? (n.eventsListeners[e] = []) 4871 : n.eventsListeners[e] && 4872 n.eventsListeners[e].forEach((i, s) => { 4873 (i === t || (i.__emitterProxy && i.__emitterProxy === t)) && n.eventsListeners[e].splice(s, 1); 4874 }); 4875 }), 4876 n) 4877 : n; 4878 }, 4879 emit(...e) { 4880 const t = this; 4881 if (!t.eventsListeners || t.destroyed) return t; 4882 if (!t.eventsListeners) return t; 4883 let n, i, s; 4884 "string" == typeof e[0] || Array.isArray(e[0]) ? ((n = e[0]), (i = e.slice(1, e.length)), (s = t)) : ((n = e[0].events), (i = e[0].data), (s = e[0].context || t)), i.unshift(s); 4885 return ( 4886 (Array.isArray(n) ? n : n.split(" ")).forEach((e) => { 4887 t.eventsAnyListeners && 4888 t.eventsAnyListeners.length && 4889 t.eventsAnyListeners.forEach((t) => { 4890 t.apply(s, [e, ...i]); 4891 }), 4892 t.eventsListeners && 4893 t.eventsListeners[e] && 4894 t.eventsListeners[e].forEach((e) => { 4895 e.apply(s, i); 4896 }); 4897 }), 4898 t 4899 ); 4900 }, 4901 }; 4902 const O = { 4903 updateSize: function () { 4904 const e = this; 4905 let t, n; 4906 const i = e.$el; 4907 (t = void 0 !== e.params.width && null !== e.params.width ? e.params.width : i[0].clientWidth), 4908 (n = void 0 !== e.params.height && null !== e.params.height ? e.params.height : i[0].clientHeight), 4909 (0 === t && e.isHorizontal()) || 4910 (0 === n && e.isVertical()) || 4911 ((t = t - parseInt(i.css("padding-left") || 0, 10) - parseInt(i.css("padding-right") || 0, 10)), 4912 (n = n - parseInt(i.css("padding-top") || 0, 10) - parseInt(i.css("padding-bottom") || 0, 10)), 4913 Number.isNaN(t) && (t = 0), 4914 Number.isNaN(n) && (n = 0), 4915 Object.assign(e, { width: t, height: n, size: e.isHorizontal() ? t : n })); 4916 }, 4917 updateSlides: function () { 4918 const e = this; 4919 function t(t) { 4920 return e.isHorizontal() 4921 ? t 4922 : { 4923 width: "height", 4924 "margin-top": "margin-left", 4925 "margin-bottom ": "margin-right", 4926 "margin-left": "margin-top", 4927 "margin-right": "margin-bottom", 4928 "padding-left": "padding-top", 4929 "padding-right": "padding-bottom", 4930 marginRight: "marginBottom", 4931 }[t]; 4932 } 4933 function n(e, n) { 4934 return parseFloat(e.getPropertyValue(t(n)) || 0); 4935 } 4936 const i = e.params, 4937 { $wrapperEl: s, size: o, rtlTranslate: r, wrongRTL: a } = e, 4938 l = e.virtual && i.virtual.enabled, 4939 c = l ? e.virtual.slides.length : e.slides.length, 4940 d = s.children(`.${e.params.slideClass}`), 4941 h = l ? e.virtual.slides.length : d.length; 4942 let u = []; 4943 const p = [], 4944 f = []; 4945 let g = i.slidesOffsetBefore; 4946 "function" == typeof g && (g = i.slidesOffsetBefore.call(e)); 4947 let m = i.slidesOffsetAfter; 4948 "function" == typeof m && (m = i.slidesOffsetAfter.call(e)); 4949 const v = e.snapGrid.length, 4950 b = e.slidesGrid.length; 4951 let y = i.spaceBetween, 4952 w = -g, 4953 x = 0, 4954 _ = 0; 4955 if (void 0 === o) return; 4956 "string" == typeof y && y.indexOf("%") >= 0 && (y = (parseFloat(y.replace("%", "")) / 100) * o), 4957 (e.virtualSize = -y), 4958 r ? d.css({ marginLeft: "", marginBottom: "", marginTop: "" }) : d.css({ marginRight: "", marginBottom: "", marginTop: "" }), 4959 i.centeredSlides && i.cssMode && (C(e.wrapperEl, "--swiper-centered-offset-before", ""), C(e.wrapperEl, "--swiper-centered-offset-after", "")); 4960 const T = i.grid && i.grid.rows > 1 && e.grid; 4961 let E; 4962 T && e.grid.initSlides(h); 4963 const S = "auto" === i.slidesPerView && i.breakpoints && Object.keys(i.breakpoints).filter((e) => void 0 !== i.breakpoints[e].slidesPerView).length > 0; 4964 for (let s = 0; s < h; s += 1) { 4965 E = 0; 4966 const r = d.eq(s); 4967 if ((T && e.grid.updateSlide(s, r, h, t), "none" !== r.css("display"))) { 4968 if ("auto" === i.slidesPerView) { 4969 S && (d[s].style[t("width")] = ""); 4970 const o = getComputedStyle(r[0]), 4971 a = r[0].style.transform, 4972 l = r[0].style.webkitTransform; 4973 if ((a && (r[0].style.transform = "none"), l && (r[0].style.webkitTransform = "none"), i.roundLengths)) E = e.isHorizontal() ? r.outerWidth(!0) : r.outerHeight(!0); 4974 else { 4975 const e = n(o, "width"), 4976 t = n(o, "padding-left"), 4977 i = n(o, "padding-right"), 4978 s = n(o, "margin-left"), 4979 a = n(o, "margin-right"), 4980 l = o.getPropertyValue("box-sizing"); 4981 if (l && "border-box" === l)
4981E = e + s + a; 4982 else { 4983 const { clientWidth: n, offsetWidth: o } = r[0]; 4984 E = e + t + i + s + a + (o - n); 4985 } 4986 } 4987 a && (r[0].style.transform = a), l && (r[0].style.webkitTransform = l), i.roundLengths && (E = Math.floor(E)); 4988 } else (E = (o - (i.slidesPerView - 1) * y) / i.slidesPerView), i.roundLengths && (E = Math.floor(E)), d[s] && (d[s].style[t("width")] = `${E}px`); 4989 d[s] && (d[s].swiperSlideSize = E), 4990 f.push(E), 4991 i.centeredSlides 4992 ? ((w = w + E / 2 + x / 2 + y), 4993 0 === x && 0 !== s && (w = w - o / 2 - y), 4994 0 === s && (w = w - o / 2 - y), 4995 Math.abs(w) < 0.001 && (w = 0), 4996 i.roundLengths && (w = Math.floor(w)), 4997 _ % i.slidesPerGroup == 0 && u.push(w), 4998 p.push(w)) 4999 : (i.roundLengths && (w = Math.floor(w)), (_ - Math.min(e.params.slidesPerGroupSkip, _)) % e.params.slidesPerGroup == 0 && u.push(w), p.push(w), (w = w + E + y)), 5000 (e.virtualSize += E + y), 5001 (x = E), 5002 (_ += 1); 5003 } 5004 } 5005 if ( 5006 ((e.virtualSize = Math.max(e.virtualSize, o) + m), 5007 r && a && ("slide" === i.effect || "coverflow" === i.effect) && s.css({ width: `${e.virtualSize + i.spaceBetween}px` }), 5008 i.setWrapperSize && s.css({ [t("width")]: `${e.virtualSize + i.spaceBetween}px` }), 5009 T && e.grid.updateWrapperSize(E, u, t), 5010 !i.centeredSlides) 5011 ) { 5012 const t = []; 5013 for (let n = 0; n < u.length; n += 1) { 5014 let s = u[n]; 5015 i.roundLengths && (s = Math.floor(s)), u[n] <= e.virtualSize - o && t.push(s); 5016 } 5017 (u = t), Math.floor(e.virtualSize - o) - Math.floor(u[u.length - 1]) > 1 && u.push(e.virtualSize - o); 5018 } 5019 if ((0 === u.length && (u = [0]), 0 !== i.spaceBetween)) { 5020 const n = e.isHorizontal() && r ? "marginLeft" : t("marginRight"); 5021 d.filter((e, t) => !i.cssMode || t !== d.length - 1).css({ [n]: `${y}px` }); 5022 } 5023 if (i.centeredSlides && i.centeredSlidesBounds) { 5024 let e = 0; 5025 f.forEach((t) => { 5026 e += t + (i.spaceBetween ? i.spaceBetween : 0); 5027 }), 5028 (e -= i.spaceBetween); 5029 const t = e - o; 5030 u = u.map((e) => (e < 0 ? -g : e > t ? t + m : e)); 5031 } 5032 if (i.centerInsufficientSlides) { 5033 let e = 0; 5034 if ( 5035 (f.forEach((t) => { 5036 e += t + (i.spaceBetween ? i.spaceBetween : 0); 5037 }), 5038 (e -= i.spaceBetween), 5039 e < o) 5040 ) { 5041 const t = (o - e) / 2; 5042 u.forEach((e, n) => { 5043 u[n] = e - t; 5044 }), 5045 p.forEach((e, n) => { 5046 p[n] = e + t; 5047 }); 5048 } 5049 } 5050 if ((Object.assign(e, { slides: d, snapGrid: u, slidesGrid: p, slidesSizesGrid: f }
5050), i.centeredSlides && i.cssMode && !i.centeredSlidesBounds)) { 5051 C(e.wrapperEl, "--swiper-centered-offset-before", -u[0] + "px"), C(e.wrapperEl, "--swiper-centered-offset-after", e.size / 2 - f[f.length - 1] / 2 + "px"); 5052 const t = -e.snapGrid[0], 5053 n = -e.slidesGrid[0]; 5054 (e.snapGrid = e.snapGrid.map((e) => e + t)), (e.slidesGrid = e.slidesGrid.map((e) => e + n)); 5055 } 5056 if ( 5057 (h !== c && e.emit("slidesLengthChange"), 5058 u.length !== v && (e.params.watchOverflow && e.checkOverflow(), e.emit("snapGridLengthChange")), 5059 p.length !== b && e.emit("slidesGridLengthChange"), 5060 i.watchSlidesProgress && e.updateSlidesOffset(), 5061 !(l || i.cssMode || ("slide" !== i.effect && "fade" !== i.effect))) 5062 ) { 5063 const t = `${i.containerModifierClass}backface-hidden`, 5064 n = e.$el.hasClass(t); 5065 h <= i.maxBackfaceHiddenSlides ? n || e.$el.addClass(t) : n && e.$el.removeClass(t); 5066 } 5067 }, 5068 updateAutoHeight: function (e) { 5069 const t = this, 5070 n = [], 5071 i = t.virtual && t.params.virtual.enabled; 5072 let s, 5073 o = 0; 5074 "number" == typeof e ? t.setTransition(e) : !0 === e && t.setTransition(t.params.speed); 5075 const r = (e) => (i ? t.slides.filter((t) => parseInt(t.getAttribute("data-swiper-slide-index"), 10) === e)[0] : t.slides.eq(e)[0]); 5076 if ("auto" !== t.params.slidesPerView && t.params.slidesPerView > 1) 5077 if (t.params.centeredSlides) 5078 (t.visibleSlides || v([])).each((e) => { 5079 n.push(e); 5080 }); 5081 else 5082 for (s = 0;
5082 s < Math.ceil(t.params.slidesPerView); s += 1) { 5083 const e = t.activeIndex + s; 5084 if (e > t.slides.length && !i) break; 5085 n.push(r(e)); 5086 } 5087 else n.push(r(t.activeIndex)); 5088 for (s = 0; s < n.length; s += 1) 5089 if (void 0 !== n[s]) { 5090 const e = n[s].offsetHeight; 5091 o = e > o ? e : o; 5092 } 5093 (o || 0 === o) && t.$wrapperEl.css("height", `${o}px`); 5094 }, 5095 updateSlidesOffset: function () { 5096 const e = this, 5097 t = e.slides; 5098 for (let n = 0; n < t.length; n += 1) t[n].swiperSlideOffset = e.isHorizontal() ? t[n].offsetLeft : t[n].offsetTop; 5099 }, 5100 updateSlidesProgress: function (e = (this && this.translate) || 0) { 5101 const t = this, 5102 n = t.params, 5103 { slides: i, rtlTranslate: s, snapGrid: o } = t; 5104 if (0 === i.length) return; 5105 void 0 === i[0].swiperSlideOffset && t.updateSlidesOffset(); 5106 let r = -e; 5107 s && (r = e), i.removeClass(n.slideVisibleClass), (t.visibleSlidesIndexes = []), (t.visibleSlides = []); 5108 for (let e = 0; e < i.length; e += 1) { 5109 const a = i[e]; 5110 let l = a.swiperSlideOffset; 5111 n.cssMode && n.centeredSlides && (l -= i[0].swiperSlideOffset); 5112 const c = (r + (n.centeredSlides ? t.minTranslate() : 0) - l) / (a.swiperSlideSize + n.spaceBetween), 5113 d = (r - o[0] + (n.centeredSlides ? t.minTranslate() : 0) - l) / (a.swiperSlideSize + n.spaceBetween), 5114 h = -(r - l), 5115 u = h + t.slidesSizesGrid[e]; 5116 ((h >= 0 && h < t.size - 1) || (u > 1 && u <= t.size) || (h <= 0 && u >= t.size)) && (t.visibleSlides.push(a), t.visibleSlidesIndexes.push(e), i.eq(e).addClass(n.slideVisibleClass)), 5117 (a.progress = s ? -c : c), 5118 (a.originalProgress = s ? -d : d); 5119 } 5120 t.visibleSlides = v(t.visibleSlides); 5121 }, 5122 updateProgress: function (e) { 5123 const t = this; 5124 if (void 0 === e) { 5125 const n = t.rtlTranslate ? -1 : 1; 5126 e = (t && t.translate && t.translate * n) || 0; 5127 } 5128 const n = t.params, 5129 i = t.maxTranslate() - t.minTranslate(); 5130 let { progress: s, isBeginning: o, isEnd: r } = t; 5131 const a = o, 5132 l = r; 5133 0 === i ? ((s = 0), (o = !0), (r = !0)) : ((s = (e - t.minTranslate()) / i), (o = s <= 0), (r = s >= 1)), 5134 Object.assign(t, { progress: s, isBeginning: o, isEnd: r }), 5135 (n.watchSlidesProgress || (n.centeredSlides && n.autoHeight)) && t.updateSlidesProgress(e), 5136 o && !a && t.emit("reachBeginning toEdge"), 5137 r && !l && t.emit("reachEnd toEdge"), 5138 ((a && !o) || (l && !r)) && t.emit("fromEdge"), 5139 t.emit("progress", s); 5140 }, 5141 updateSlidesClasses: function () { 5142 const e = this, 5143 { slides: t, params: n, $wrapperEl: i, activeIndex: s, realIndex: o } = e, 5144 r = e.virtual && n.virtual.enabled; 5145 let a; 5146 t.removeClass(`${n.slideActiveClass} ${n.slideNextClass} ${n.slidePrevClass} ${n.slideDuplicateActiveClass} ${n.slideDuplicateNextClass} ${n.slideDuplicatePrevClass}`), 5147 (a = r ? e.$wrapperEl.find(`.${n.slideClass}[data-swiper-slide-index="${s}"]`) : t.eq(s)), 5148 a.addClass(n.slideActiveClass), 5149 n.loop && 5150 (a.hasClass(n.slideDuplicateClass) 5151 ? i.children(`.${n.slideClass}:not(.${n.slideDuplicateClass})[data-swiper-slide-index="${o}"]`).addClass(n.slideDuplicateActiveClass) 5152 : i.children(`.${n.slideClass}.${n.slideDuplicateClass}[data-swiper-slide-index="${o}"]`).addClass(n.slideDuplicateActiveClass)); 5153 let l = a.nextAll(`.${n.slideClass}`).eq(0).addClass(n.slideNextClass); 5154 n.loop && 0 === l.length && ((l = t.eq(0)), l.addClass(n.slideNextClass)); 5155 let c = a.prevAll(`.${n.slideClass}`).eq(0).addClass(n.slidePrevClass); 5156 n.loop && 0 === c.length && ((c = t.eq(-1)), c.addClass(n.slidePrevClass)), 5157 n.loop && 5158 (l.hasClass(n.slideDuplicateClass) 5159 ? i.children(`.${n.slideClass}:not(.${n.slideDuplicateClass})[data-swiper-slide-index="${l.attr("data-swiper-slide-index")}"]`).addClass(n.slideDuplicateNextClass) 5160 : i.children(`.${n.slideClass}.${n.slideDuplicateClass}[data-swiper-slide-index="${l.attr("data-swiper-slide-index")}"]`).addClass(n.slideDuplicateNextClass), 5161 c.hasClass(n.slideDuplicateClass) 5162 ? i.children(`.${n.slideClass}:not(.${n.slideDuplicateClass})[data-swiper-slide-index="${c.attr("data-swiper-slide-index")}"]`).addClass(n.slideDuplicatePrevClass) 5163 : i.children(`.${n.slideClass}.${n.slideDuplicateClass}[data-swiper-slide-index="${c.attr("data-swiper-slide-index")}"]`).addClass(n.slideDuplicatePrevClass)), 5164 e.emitSlidesClasses(); 5165 }, 5166 updateActiveIndex: function (e) { 5167 const t = this, 5168 n = t.rtlTranslate ? t.translate : -t.translate, 5169 { slidesGrid: i, snapGrid: s, params: o, activeIndex: r, realIndex: a, snapIndex: l } = t; 5170 let c, 5171 d = e; 5172 if (void 0 === d) { 5173 for (let e = 0; e < i.length; e += 1) void 0 !== i[e + 1] ? (n >= i[e] && n < i[e + 1] - (i[e + 1] - i[e]) / 2 ? (d = e) : n >= i[e] && n < i[e + 1] && (d = e + 1)) : n >= i[e] && (d = e); 5174 o.normalizeSlideIndex && (d < 0 || void 0 === d) && (d = 0); 5175 } 5176 if (s.indexOf(n) >= 0) c = s.indexOf(n); 5177 else { 5178 const e = Math.min(o.slidesPerGroupSkip, d); 5179 c = e + Math.floor((d - e) / o.slidesPerGroup); 5180 } 5181 if ((c >= s.length && (c = s.length - 1), d === r)) return void (c !== l && ((t.snapIndex = c), t.emit("snapIndexChange"))); 5182 const h = parseInt(t.slides.eq(d).attr("data-swiper-slide-index") || d, 10); 5183 Object.assign(t, { snapIndex: c, realIndex: h, previousIndex: r, activeIndex: d }), 5184 t.emit("activeIndexChange"), 5185 t.emit("snapIndexChange"), 5186 a !== h && t.emit("realIndexChange"), 5187 (t.initialized || t.params.runCallbacksOnInit) && t.emit("slideChange"); 5188 }, 5189 updateClickedSlide: function (e) { 5190 const t = this, 5191 n = t.params, 5192 i = v(e).closest(`.${n.slideClass}`)[0]; 5193 let s, 5194 o = !1; 5195 if (i) 5196 for (let e = 0; e < t.slides.length; e += 1) 5197 if (t.slides[e] === i) { 5198 (o = !0), (s = e); 5199 break; 5200 } 5201 if (!i || !o) return (t.clickedSlide = void 0), void (t.clickedIndex = void 0); 5202 (t.clickedSlide = i), 5203 t.virtual && t.params.virtual.enabled ? (t.clickedIndex = parseInt(v(i).attr("data-swiper-slide-index"), 10)) : (t.clickedIndex = s), 5204 n.slideToClickedSlide && void 0 !== t.clickedIndex && t.clickedIndex !== t.activeIndex && t.slideToClickedSlide(); 5205 }, 5206 }; 5207 const M = { 5208 getTranslate: function (e = this.isHorizontal() ? "x" : "y") { 5209 const { params: t, rtlTranslate: n, translate: i, $wrapperEl: s } = this; 5210 if (t.virtualTranslate) return n ? -i : i; 5211 if (t.cssMode) return i; 5212 let o = w(s[0], e); 5213 return n && (o = -o), o || 0; 5214 }, 5215 setTranslate: function (e, t) { 5216 const n = this, 5217 { rtlTranslate: i, params: s, $wrapperEl: o, wrapperEl: r, progress: a } = n; 5218 let l, 5219 c = 0, 5220 d = 0; 5221 n.isHorizontal() ? (c = i ? -e : e) : (d = e), 5222 s.roundLengths && ((c = Math.floor(c)), (d = Math.floor(d))), 5223 s.cssMode ? (r[n.isHorizontal() ? "scrollLeft" : "scrollTop"] = n.isHorizontal() ? -c : -d) : s.virtualTranslate || o.transform(`translate3d(${c}
5223px, ${d}px, 0px)`), 5224 (n.previousTranslate = n.translate), 5225 (n.translate = n.isHorizontal() ? c : d); 5226 const h = n.maxTranslate() - n.minTranslate(); 5227 (l = 0 === h ? 0 : (e - n.minTranslate()) / h), l !== a && n.updateProgress(e), n.emit("setTranslate", n.translate, t); 5228 }, 5229 minTranslate: function () { 5230 return -this.snapGrid[0]; 5231 }, 5232 maxTranslate: function () { 5233 return -this.snapGrid[this.snapGrid.length - 1]; 5234 }, 5235 translateTo: function (e = 0, t = this.params.speed, n = !0, i = !0, s) { 5236 const o = this, 5237 { params: r, wrapperEl: a } = o; 5238 if (o.animating && r.preventInteractionOnTransition) return !1; 5239 const l = o.minTranslate(), 5240 c = o.maxTranslate(); 5241 let d; 5242 if (((d = i && e > l ? l : i && e < c ? c : e), o.updateProgress(d), r.cssMode)) { 5243 const e = o.isHorizontal(); 5244 if (0 === t) a[e ? "scrollLeft" : "scrollTop"] = -d; 5245 else { 5246 if (!o.support.smoothScroll) return T({ swiper: o, targetPosition: -d, side: e ? "left" : "top" }), !0; 5247 a.scrollTo({ [e ? "left" : "top"]: -d, behavior: "smooth" }); 5248 } 5249 return !0; 5250 } 5251 return ( 5252 0 === t 5253 ? (o.setTransition(0), o.setTranslate(d), n && (o.emit("beforeTransitionStart", t, s), o.emit("transitionEnd"))) 5254 : (o.setTransition(t), 5255 o.setTranslate(d), 5256 n && (o.emit("beforeTransitionStart", t, s), o.emit("transitionStart")), 5257 o.animating || 5258 ((o.animating = !0), 5259 o.onTranslateToWrapperTransitionEnd || 5260 (o.onTranslateToWrapperTransitionEnd = function (e) { 5261 o && 5262 !o.destroyed && 5263 e.target === this && 5264 (o.$wrapperEl[0].removeEventListener("transitionend", o.onTranslateToWrapperTransitionEnd), 5265 o.$wrapperEl[0].removeEventListener("webkitTransitionEnd", o.onTranslateToWrapperTransitionEnd), 5266 (o.onTranslateToWrapperTransitionEnd = null), 5267 delete o.onTranslateToWrapperTransitionEnd, 5268 n && o.emit("transitionEnd")); 5269 }), 5270 o.$wrapperEl[0].addEventListener("transitionend", o.onTranslateToWrapperTransitionEnd), 5271 o.$wrapperEl[0].addEventListener("webkitTransitionEnd", o.onTranslateToWrapperTransitionEnd))), 5272 !0 5273 ); 5274 }, 5275 }; 5276 function D({ swiper: e, runCallbacks: t, direction: n, step: i }) { 5277 const { activeIndex: s, previousIndex: o } = e; 5278 let r = n; 5279 if ((r || (r = s > o ? "next" : s < o ? "prev" : "reset"), e.emit(`transition${i}`), t && s !== o)) { 5280 if ("reset" === r) return void e.emit(`slideResetTransition${i}`); 5281 e.emit(`slideChangeTransition${i}`), "next" === r ? e.emit(`slideNextTransition${i}`) : e.emit(`slidePrevTransition${i}`); 5282 } 5283 } 5284 const N = { 5285 slideTo: function (e = 0, t = this.params.speed, n = !0, i, s) { 5286 if ("number" != typeof e && "string" != typeof e) throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof e}] given.`); 5287 if ("string" == typeof e) { 5288 const t = parseInt(e, 10); 5289 if (!isFinite(t)) throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${e}] given.`); 5290 e = t; 5291 } 5292 const o = this; 5293 let r = e; 5294 r < 0 && (r = 0); 5295 const { params: a, snapGrid: l, slidesGrid: c, previousIndex: d, activeIndex: h, rtlTranslate: u, wrapperEl: p, enabled: f } = o; 5296 if ((o.animating && a.preventInteractionOnTransition) || (!f && !i && !s)) return !1; 5297 const g = Math.min(o.params.slidesPerGroupSkip, r); 5298 let m = g + Math.floor((r - g) / o.params.slidesPerGroup); 5299 m >= l.length && (m = l.length - 1); 5300 const v = -l[m]; 5301 if (a.normalizeSlideIndex) 5302 for (let e = 0; e < c.length; e += 1) { 5303 const t = -Math.floor(100 * v), 5304 n = Math.floor(100 * c[e]), 5305 i = Math.floor(100 * c[e + 1]); 5306 void 0 !== c[e + 1] ? (t >= n && t < i - (i - n) / 2 ? (r = e) : t >= n && t < i && (r = e + 1)) : t >= n && (r = e); 5307 } 5308 if (o.initialized && r !== h) { 5309 if (!o.allowSlideNext && v < o.translate && v < o.minTranslate()) return !1; 5310 if (!o.allowSlidePrev && v > o.translate && v > o.maxTranslate() && (h || 0) !== r) return !1; 5311 } 5312 let b; 5313 if ((r !== (d || 0) && n && o.emit("beforeSlideChangeStart"), o.updateProgress(v), (b = r > h ? "next" : r < h ? "prev" : "reset"), (u && -v === o.translate) || (!u && v === o.translate))) 5314 return o.updateActiveIndex(r), a.autoHeight && o.updateAutoHeight(), o.updateSlidesClasses(), "slide" !== a.effect && o.setTranslate(v), "reset" !== b && (o.transitionStart(n, b), o.transitionEnd(n, b)), !1; 5315 if (a.cssMode) { 5316 const e = o.isHorizontal(), 5317 n = u ? v : -v; 5318 if (0 === t) { 5319 const t = o.virtual && o.params.virtual.enabled; 5320 t && ((o.wrapperEl.style.scrollSnapType = "none"), (o._immediateVirtual = !0)), 5321 (p[e ? "scrollLeft" : "scrollTop"] = n), 5322 t && 5323 requestAnimationFrame(() => { 5324 (o.wrapperEl.style.scrollSnapType = ""), (o._swiperImmediateVirtual = !1); 5325 }); 5326 } else { 5327 if (!o.support.smoothScroll) return T({ swiper: o, targetPosition: n, side: e ? "left" : "top" }), !0; 5328 p.scrollTo({ [e ? "left" : "top"]: n, behavior: "smooth" }); 5329 } 5330 return !0; 5331 } 5332 return ( 5333 o.setTransition(t), 5334 o.setTranslate(v), 5335 o.updateActiveIndex(r), 5336 o.updateSlidesClasses(), 5337 o.emit("beforeTransitionStart", t, i), 5338 o.transitionStart(n, b), 5339 0 === t 5340 ? o.transitionEnd(n, b) 5341 : o.animating || 5342 ((o.animating = !0), 5343 o.onSlideToWrapperTransitionEnd || 5344 (o.onSlideToWrapperTransitionEnd = function (e) { 5345 o && 5346 !o.destroyed && 5347 e.target === this && 5348 (o.$wrapperEl[0].removeEventListener("transitionend", o.onSlideToWrapperTransitionEnd), 5349 o.$wrapperEl[0].removeEventListener("webkitTransitionEnd", o.onSlideToWrapperTransitionEnd), 5350 (o.onSlideToWrapperTransitionEnd = null),
5351 delete o.onSlideToWrapperTransitionEnd, 5352 o.transitionEnd(n, b)); 5353 }), 5354 o.$wrapperEl[0].addEventListener("transitionend", o.onSlideToWrapperTransitionEnd), 5355 o.$wrapperEl[0].addEventListener("webkitTransitionEnd", o.onSlideToWrapperTransitionEnd)), 5356 !0 5357 ); 5358 }, 5359 slideToLoop: function (e = 0, t = this.params.speed, n = !0, i) { 5360 if ("string" == typeof e) { 5361 const t = parseInt(e, 10); 5362 if (!isFinite(t)) throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${e}] given.`); 5363 e = t; 5364 } 5365 const s = this; 5366 let o = e; 5367 return s.params.loop && (o += s.loopedSlides), s.slideTo(o, t, n, i); 5368 }, 5369 slideNext: function (e = this.params.speed, t = !0, n) { 5370 const i = this, 5371 { animating: s, enabled: o, params: r } = i; 5372 if (!o) return i; 5373 let a = r.slidesPerGroup; 5374 "auto" === r.slidesPerView && 1 === r.slidesPerGroup && r.slidesPerGroupAuto && (a = Math.max(i.slidesPerViewDynamic("current", !0), 1)); 5375 const l = i.activeIndex < r.slidesPerGroupSkip ? 1 : a; 5376 if (r.loop) { 5377 if (s && r.loopPreventsSlide) return !1; 5378 i.loopFix(), (i._clientLeft = i.$wrapperEl[0].clientLeft); 5379 } 5380 return r.rewind && i.isEnd ? i.slideTo(0, e, t, n) : i.slideTo(i.activeIndex + l, e, t, n); 5381 }, 5382 slidePrev: function (e = this.params.speed, t = !0, n) { 5383 const i = this, 5384 { params: s, animating: o, snapGrid: r, slidesGrid: a, rtlTranslate: l, enabled: c } = i; 5385 if (!c) return i; 5386 if (s.loop) { 5387 if (o && s.loopPreventsSlide) return !1; 5388 i.loopFix(), (i._clientLeft = i.$wrapperEl[0].clientLeft); 5389 } 5390 function d(e) { 5391 return e < 0 ? -Math.floor(Math.abs(e)) : Math.floor(e); 5392 } 5393 const h = d(l ? i.translate : -i.translate), 5394 u = r.map((e) => d(e)); 5395 let p = r[u.indexOf(h) - 1]; 5396 if (void 0 === p && s.cssMode) { 5397 let e; 5398 r.forEach((t, n) => { 5399 h >= t && (e = n); 5400 }), 5401 void 0 !== e && (p = r[e > 0 ? e - 1 : e]); 5402 } 5403 let f = 0; 5404 if ( 5405 (void 0 !== p && 5406 ((f = a.indexOf(p)), 5407 f < 0 && (f = i.activeIndex - 1), 5408 "auto" === s.slidesPerView && 1 === s.slidesPerGroup && s.slidesPerGroupAuto && ((f = f - i.slidesPerViewDynamic("previous", !0) + 1), (f = Math.max(f, 0)))), 5409 s.rewind && i.isBeginning) 5410 ) { 5411 const s = i.params.virtual && i.params.virtual.enabled && i.virtual ? i.virtual.slides.length - 1 : i.slides.length - 1; 5412 return i.slideTo(s, e, t, n); 5413 } 5414 return i.slideTo(f, e, t, n); 5415 }, 5416 slideReset: function (e = this.params.speed, t = !0, n) { 5417 return this.slideTo(this.activeIndex, e, t, n); 5418 }, 5419 slideToClosest: function (e = this.params.speed, t = !0, n, i = 0.5) { 5420 const s = this; 5421 let o = s.activeIndex; 5422 const r = Math.min(s.params.slidesPerGroupSkip, o), 5423 a = r + Math.floor((o - r) / s.params.slidesPerGroup), 5424 l = s.rtlTranslate ? s.translate : -s.translate; 5425 if (l >
5425= s.snapGrid[a]) { 5426 const e = s.snapGrid[a]; 5427 l - e > (s.snapGrid[a + 1] - e) * i && (o += s.params.slidesPerGroup); 5428 } else { 5429 const e = s.snapGrid[a - 1]; 5430 l - e <= (s.snapGrid[a] - e) * i && (o -= s.params.slidesPerGroup); 5431 } 5432 return (o = Math.max(o, 0)), (o = Math.min(o, s.slidesGrid.length - 1)), s.slideTo(o, e, t, n); 5433 }, 5434 slideToClickedSlide: function () { 5435 const e = this, 5436 { params: t, $wrapperEl: n } = e, 5437 i = "auto" === t.slidesPerView ? e.slidesPerViewDynamic() : t.slidesPerView; 5438 let s, 5439 o = e.clickedIndex; 5440 if (t.loop) { 5441 if (e.animating) return; 5442 (s = parseInt(v(e.clickedSlide).attr("data-swiper-slide-index"), 10)), 5443 t.centeredSlides 5444 ? o < e.loopedSlides - i / 2 || o > e.slides.length - e.loopedSlides + i / 2 5445 ? (e.loopFix(), 5446 (o = n.children(`.${t.slideClass}[data-swiper-slide-index="${s}"]:not(.${t.slideDuplicateClass})`).eq(0).index()), 5447 b(() => { 5448 e.slideTo(o); 5449 })) 5450 : e.slideTo(o) 5451 : o > e.slides.length - i 5452 ? (e.loopFix(), 5453 (o = n.children(`.${t.slideClass}[data-swiper-slide-index="${s}"]:not(.${t.slideDuplicateClass})`).eq(0).index()), 5454 b(() => { 5455 e.slideTo(o); 5456 })) 5457 : e.slideTo(o); 5458 } else e.slideTo(o); 5459 }, 5460 }; 5461 const I = { 5462 loopCreate: function () { 5463 const e = this, 5464 t = a(), 5465 { params: n, $wrapperEl: i } = e, 5466 s = i.children().length > 0 ? v(i.children()[0].parentNode) : i; 5467 s.children(`.${n.slideClass}.${n.slideDuplicateClass}`).remove(); 5468 let o = s.children(`.${n.slideClass}`); 5469 if (n.loopFillGroupWithBlank) { 5470 const e = n.slidesPerGroup - (o.length % n.slidesPerGroup); 5471 if (e !== n.slidesPerGroup) { 5472 for (let i = 0; i < e; i += 1) { 5473 const e = v(t.createElement("div")).addClass(`${n.slideClass} ${n.slideBlankClass}`); 5474 s.append(e); 5475 } 5476 o = s.children(`.${n.slideClass}`); 5477 } 5478 } 5479 "auto" !== n.slidesPerView || n.loopedSlides || (n.loopedSlides = o.length), 5480 (e.loopedSlides = Math.ceil(parseFloat(n.loopedSlides || n.slidesPerView, 10))), 5481 (e.loopedSlides += n.loopAdditionalSlides), 5482 e.loopedSlides > o.length && e.params.loopedSlidesLimit && (e.loopedSlides = o.length); 5483 const r = [], 5484 l = []; 5485 o.each((e, t) => { 5486 v(e).attr("data-swiper-slide-index", t); 5487 }); 5488 for (let t = 0; t < e.loopedSlides; t += 1) { 5489 const e = t - Math.floor(t / o.length) * o.length; 5490 l.push(o.eq(e)[0]), r.unshift(o.eq(o.length - e - 1)[0]); 5491 } 5492 for (let e = 0; e < l.length; e += 1) s.append(v(l[e].cloneNode(!0)).addClass(n.slideDuplicateClass)); 5493 for (let e = r.length - 1; e >= 0; e -= 1) s.prepend(v(r[e].cloneNode(!0)).addClass(n.slideDuplicateClass)); 5494 }, 5495 loopFix: function () { 5496 const e = this; 5497 e.emit("beforeLoopFix"); 5498 const { activeIndex: t, slides: n, loopedSlides: i, allowSlidePrev: s, allowSlideNext: o, snapGrid: r, rtlTranslate: a } = e; 5499 let l; 5500 (e.allowSlidePrev = !0), (e.allowSlideNext = !0); 5501 const c = -r[t] - e.getTranslate(); 5502 if (t < i) { 5503 (l = n.length - 3 * i + t), (l += i); 5504 e.slideTo(l, 0, !1, !0) && 0 !== c && e.setTranslate((a ? -e.translate : e.translate) - c); 5505 } else if (t >= n.length - i) { 5506 (l = -n.length + t + i), (l += i); 5507 e.slideTo(l, 0, !1, !0) && 0 !== c && e.setTranslate((a ? -e.translate : e.translate) - c); 5508 } 5509 (e.allowSlidePrev = s), (e.allowSlideNext = o), e.emit("loopFix"); 5510 }, 5511 loopDestroy: function () { 5512 const { $wrapperEl: e, params: t, slides: n } = this; 5513 e.children(`.${t.slideClass}.${t.slideDuplicateClass},.${t.slideClass}.${t.slideBlankClass}`).remove(), n.removeAttr("data-swiper-slide-index"); 5514 }, 5515 }; 5516 function z(e) { 5517 const t = this, 5518 n = a(), 5519 i = c(), 5520 s = t.touchEventsData, 5521 { params: o, touches: r, enabled: l } = t; 5522 if (!l) return; 5523 if (t.animating && o.preventInteractionOnTransition) return; 5524 !t.animating && o.cssMode && o.loop && t.loopFix(); 5525 let d = e; 5526 d.originalEvent && (d = d.originalEvent); 5527 let h = v(d.target); 5528 if ("wrapper" === o.touchEventsTarget && !h.closest(t.wrapperEl).length) return;
5529 if (((s.isTouchEvent = "touchstart" === d.type), !s.isTouchEvent && "which" in d && 3 === d.which)) return; 5530 if (!s.isTouchEvent && "button" in d && d.button > 0) return; 5531 if (s.isTouched && s.isMoved) return; 5532 const u = !!o.noSwipingClass && "" !== o.noSwipingClass, 5533 p = e.composedPath ? e.composedPath() : e.path; 5534 u && d.target && d.target.shadowRoot && p && (h = v(p[0])); 5535 const f = o.noSwipingSelector ? o.noSwipingSelector : `.${o.noSwipingClass}`, 5536 g = !(!d.target || !d.target.shadowRoot); 5537 if ( 5538 o.noSwiping && 5539 (g 5540 ? (function (e, t = this) { 5541 return (function t(n) { 5542 if (!n || n === a() || n === c()) return null; 5543 n.assignedSlot && (n = n.assignedSlot); 5544 const i = n.closest(e); 5545 return i || n.getRootNode ? i || t(n.getRootNode().host) : null; 5546 })(t); 5547 })(f, h[0]) 5548 : h.closest(f)[0]) 5549 ) 5550 return void (t.allowClick = !0); 5551 if (o.swipeHandler && !h.closest(o.swipeHandler)[0]) return; 5552 (r.currentX = "touchstart" === d.type ? d.targetTouches[0].pageX : d.pageX), (r.currentY = "touchstart" === d.type ? d.targetTouches[0].pageY : d.pageY); 5553 const m = r.currentX, 5554 b = r.currentY, 5555 w = o.edgeSwipeDetection || o.iOSEdgeSwipeDetection, 5556 x = o.edgeSwipeThreshold || o.iOSEdgeSwipeThreshold; 5557 if (w && (m <= x || m >= i.innerWidth - x)) { 5558 if ("prevent" !== w) return; 5559 e.preventDefault(); 5560 } 5561 if ( 5562 (Object.assign(s, { isTouched: !0, isMoved: !1, allowTouchCallbacks: !0, isScrolling: void 0, startMoving: void 0 }), 5563 (r.startX = m), 5564 (r.startY = b), 5565 (s.touchStartTime = y()), 5566 (t.allowClick = !0), 5567 t.updateSize(), 5568 (t.swipeDirection = void 0), 5569 o.threshold > 0 && (s.allowThresholdMove = !1), 5570 "touchstart" !== d.type) 5571 ) { 5572 let e = !0; 5573 h.is(s.focusableElements) && ((e = !1), "SELECT" === h[0].nodeName && (s.isTouched = !1)), n.activeElement && v(n.activeElement).is(s.focusableElements) && n.activeElement !== h[0] && n.activeElement.blur(); 5574 const i = e && t.allowTouchMove && o.touchStartPreventDefault; 5575 (!o.touchStartForcePreventDefault && !i) || h[0].isContentEditable || d.preventDefault(); 5576 } 5577 t.params.freeMode && t.params.freeMode.enabled && t.freeMode && t.animating && !o.cssMode && t.freeMode.onTouchStart(), t.emit("touchStart", d); 5578 } 5579 function j(e) { 5580 const t = a(), 5581 n = this, 5582 i = n.touchEventsData, 5583 { params: s, touches: o, rtlTranslate: r, enabled: l } = n; 5584 if (!l) return; 5585 let c = e; 5586 if ((c.originalEvent && (c = c.originalEvent), !i.isTouched)) return void (i.startMoving && i.isScrolling && n.emit("touchMoveOpposite", c)); 5587 if (i.isTouchEvent && "touchmove" !== c.type) return; 5588 const d = "touchmove" === c.type && c.targetTouches && (c.targetTouches[0] || c.changedTouches[0]), 5589 h = "touchmove" === c.type ? d.pageX : c.pageX, 5590 u = "touchmove" === c.type ? d.pageY : c.pageY; 5591 if (c.preventedByNestedSwiper) return (o.startX = h), void (o.startY = u); 5592 if (!n.allowTouchMove) return v(c.target).is(i.focusableElements) || (n.allowClick = !1), void (i.isTouched && (Object.assign(o, { startX: h, startY: u, currentX: h, currentY: u }), (i.touchStartTime = y()))); 5593 if (i.isTouchEvent && s.touchReleaseOnEdges && !s.loop) 5594 if (n.isVertical()) { 5595 if ((u < o.startY && n.translate <= n.maxTranslate()) || (u > o.startY && n.translate >= n.minTranslate())) return (i.isTouched = !1), void (i.isMoved = !1); 5596 } else if ((h < o.startX && n.translate <= n.maxTranslate()) || (h > o.startX && n.translate >= n.minTranslate())) return; 5597 if (i.isTouchEvent && t.activeElement && c.target === t.activeElement && v(c.target).is(i.focusableElements)) return (i.isMoved = !0), void (n.allowClick = !1); 5598 if ((i.allowTouchCallbacks && n.emit("touchMove", c), c.targetTouches && c.targetTouches.length > 1)) return; 5599 (o.currentX = h), (o.currentY = u); 5600 const p = o.currentX - o.startX, 5601 f = o.currentY - o.startY; 5602 if (n.params.threshold && Math.sqrt(p ** 2 + f ** 2) < n.params.threshold) return; 5603 if (void 0 === i.isScrolling) { 5604 let e; 5605 (n.isHorizontal() && o.currentY === o.startY) || (n.isVertical() && o.currentX === o.startX) 5606 ? (i.isScrolling = !1) 5607 : p * p + f * f >= 25 && ((e = (180 * Math.atan2(Math.abs(f), Math.abs(p))) / Math.PI), (i.isScrolling = n.isHorizontal() ? e > s.touchAngle : 90 - e > s.touchAngle)); 5608 } 5609 if ((i.isScrolling && n.emit("touchMoveOpposite", c), void 0 === i.startMoving && ((o.currentX === o.startX && o.currentY === o.startY) || (i.startMoving = !0)), i.isScrolling)) return void (i.isTouched = !1); 5610 if (!i.startMoving) return; 5611 (n.allowClick = !1), 5612 !s.cssMode && c.cancelable && c.preventDefault(), 5613 s.touchMoveStopPropagation && !s.nested && c.stopPropagation(), 5614 i.isMoved || 5615 (s.loop && !s.cssMode && n.loopFix(), 5616 (i.startTranslate = n.getTranslate()), 5617 n.setTransition(0), 5618 n.animating && n.$wrapperEl.trigger("webkitTransitionEnd transitionend"), 5619 (i.allowMomentumBounce = !1), 5620 !s.grabCursor || (!0 !== n.allowSlideNext && !0 !== n.allowSlidePrev) || n.setGrabCursor(!0), 5621 n.emit("sliderFirstMove", c)), 5622 n.emit("sliderMove", c), 5623 (i.isMoved = !0); 5624 let g = n.isHorizontal() ? p : f; 5625 (o.diff = g), (g *= s.touchRatio), r && (g = -g), (n.swipeDirection = g > 0 ? "prev" : "next"), (i.currentTranslate = g + i.startTranslate); 5626 let m = !0, 5627 b = s.resistanceRatio; 5628 if ( 5629 (s.touchReleaseOnEdges && (b = 0), 5630 g > 0 && i.currentTranslate > n.minTranslate() 5631 ? ((m = !1), s.resistance && (i.currentTranslate = n.minTranslate() - 1 + (-n.minTranslate() + i.startTranslate + g) ** b)) 5632 : g < 0 && i.currentTranslate < n.maxTranslate() && ((m = !1), s.resistance && (i.currentTranslate = n.maxTranslate() + 1 - (n.maxTranslate() - i.startTranslate - g) ** b)), 5633 m && (c.preventedByNestedSwiper = !0), 5634 !n.allowSlideNext && "next" === n.swipeDirection && i.currentTranslate < i.startTranslate && (i.currentTranslate = i.startTranslate), 5635 !n.allowSlidePrev && "prev" === n.swipeDirection && i.currentTranslate > i.startTranslate && (i.currentTranslate = i.startTranslate), 5636 n.allowSlidePrev || n.allowSlideNext || (i.currentTranslate = i.startTranslate), 5637 s.threshold > 0) 5638 ) { 5639 if (!(Math.abs(g) > s.threshold || i.allowThresholdMove)) return void (i.currentTranslate = i.startTranslate); 5640 if (!i.allowThresholdMove) 5641 return (i.allowThresholdMove = !0), (o.startX = o.currentX), (o.startY = o.currentY), (i.currentTranslate = i.startTranslate), void (o.diff = n.isHorizontal() ? o.currentX - o.startX : o.currentY - o.startY); 5642 } 5643 s.followFinger && 5644 !s.cssMode && 5645 (((s.freeMode && s.freeMode.enabled && n.freeMode) || s.watchSlidesProgress) && (n.updateActiveIndex(), n.updateSlidesClasses()), 5646 n.params.freeMode && s.freeMode.enabled && n.freeMode && n.freeMode.onTouchMove(), 5647 n.updateProgress(i.currentTranslate), 5648 n.setTranslate(i.currentTranslate)); 5649 } 5650 function F(e) { 5651 const t = this, 5652 n = t.touchEventsData, 5653 { params: i, touches: s, rtlTranslate: o, slidesGrid: r, enabled: a } = t; 5654 if (!a) return; 5655 let l = e; 5656 if ((l.originalEvent && (l = l.originalEvent), n.allowTouchCallbacks && t.emit("touchEnd", l), (n.allowTouchCallbacks = !1), !n.isTouched)) 5657 return n.isMoved && i.grabCursor && t.setGrabCursor(!1), (n.isMoved = !1), void (n.startMoving = !1); 5658 i.grabCursor && n.isMoved && n.isTouched && (!0 === t.allowSlideNext || !0 === t.allowSlidePrev) && t.setGrabCursor(!1); 5659 const c = y(), 5660 d = c - n.touchStartTime; 5661 if (t.allowClick) { 5662 const e = l.path || (l.composedPath && l.composedPath()); 5663 t.updateClickedSlide((e && e[0]) || l.target), t.emit("tap click", l), d < 300 && c - n.lastClickTime < 300 && t.emit("doubleTap doubleClick", l); 5664 } 5665 if ( 5666 ((n.lastClickTime = y()), 5667 b(() => { 5668 t.destroyed || (t.allowClick = !0); 5669 }), 5670 !n.isTouched || !n.isMoved || !t.swipeDirection || 0 === s.diff || n.currentTranslate === n.startTranslate) 5671 ) 5672 return (n.isTouched = !1), (n.isMoved = !1), void (n.startMoving = !1); 5673 let h; 5674 if (((n.isTouched = !1), (n.isMoved = !1), (n.startMoving = !1), (h = i.followFinger ? (o ? t.translate : -t.translate) : -n.currentTranslate), i.cssMode)) return; 5675 if (t.params.freeMode && i.freeMode.enabled) return void t.freeMode.onTouchEnd({ currentPos: h }); 5676 let u = 0, 5677 p = t.slidesSizesGrid[0]; 5678 for (let e = 0; e < r.length; e += e < i.slidesPerGroupSkip ? 1 : i.slidesPerGroup) { 5679 const t = e < i.slidesPerGroupSkip - 1 ? 1 : i.slidesPerGroup; 5680 void 0 !== r[e + t] ? h >= r[e] && h < r[e + t] && ((u = e), (p = r[e + t] - r[e])) : h >= r[e] && ((u = e), (p = r[r.length - 1] - r[r.length - 2])); 5681 } 5682 let f = null, 5683 g = null; 5684 i.rewind && (t.isBeginning ? (g = t.params.virtual && t.params.virtual.enabled && t.virtual ? t.virtual.slides.length - 1 : t.slides.length - 1) : t.isEnd && (f = 0)); 5685 const m = (h - r[u]) / p, 5686 v = u < i.slidesPerGroupSkip - 1 ? 1 : i.slidesPerGroup; 5687 if (d > i.longSwipesMs) { 5688 if (!i.longSwipes) return void t.slideTo(t.activeIndex); 5689 "next" === t.swipeDirection && (m >= i.longSwipesRatio ? t.slideTo(i.rewind && t.isEnd ? f : u + v) : t.slideTo(u)), 5690 "prev" === t.swipeDirection && (m > 1 - i.longSwipesRatio ? t.slideTo(u + v) : null !== g && m < 0 && Math.abs(m) > i.longSwipesRatio ? t.slideTo(g) : t.slideTo(u)); 5691 } else { 5692 if (!i.shortSwipes) return void t.slideTo(t.activeIndex); 5693 t.navigation && (l.target === t.navigation.nextEl || l.target === t.navigation.prevEl) 5694 ? l.target === t.navigation.nextEl 5695 ? t.slideTo(u + v) 5696 : t.slideTo(u) 5697 : ("next" === t.swipeDirection && t.slideTo(null !== f ? f : u + v), "prev" === t.swipeDirection && t.slideTo(null !== g ? g : u)); 5698 } 5699 } 5700 function H() { 5701 const e = this, 5702 { params: t, el: n } = e; 5703 if (n && 0 === n.offsetWidth) return; 5704 t.breakpoints && e.setBreakpoint(); 5705 const { allowSlideNext: i, allowSlidePrev: s, snapGrid: o } = e; 5706 (e.allowSlideNext = !0), 5707 (e.allowSlidePrev = !0), 5708 e.updateSize(), 5709 e.updateSlides(), 5710 e.updateSlidesClasses(), 5711 ("auto" === t.slidesPerView || t.slidesPerView > 1) && e.isEnd && !e.isBeginning && !e.params.centeredSlides ? e.slideTo(e.slides.length - 1, 0, !1, !0) : e.slideTo(e.activeIndex, 0, !1, !0), 5712 e.autoplay && e.autoplay.running && e.autoplay.paused && e.autoplay.run(), 5713 (e.allowSlidePrev = s), 5714 (e.allowSlideNext = i), 5715 e.params.watchOverflow && o !== e.snapGrid && e.checkOverflow(); 5716 } 5717 function R(e) { 5718 const t = this; 5719 t.enabled && (t.allowClick || (t.params.preventClicks && e.preventDefault(), t.params.preventClicksPropagation && t.animating && (e.stopPropagation(), e.stopImmediatePropagation()))); 5720 } 5721 function B() { 5722 const e = this, 5723 { wrapperEl: t, rtlTranslate: n, enabled: i } = e; 5724 if (!i) return; 5725 let s;
5726 (e.previousTranslate = e.translate), e.isHorizontal() ? (e.translate = -t.scrollLeft) : (e.translate = -t.scrollTop), 0 === e.translate && (e.translate = 0), e.updateActiveIndex(), e.updateSlidesClasses(); 5727 const o = e.maxTranslate() - e.minTranslate(); 5728 (s = 0 === o ? 0 : (e.translate - e.minTranslate()) / o), s !== e.progress && e.updateProgress(n ? -e.translate : e.translate), e.emit("setTranslate", e.translate, !1); 5729 } 5730 let q = !1; 5731 function W() {} 5732 const V = (e, t) => { 5733 const n = a(), 5734 { params: i, touchEvents: s, el: o, wrapperEl: r, device: l, support: c } = e, 5735 d = !!i.nested, 5736 h = "on" === t ? "addEventListener" : "removeEventListener", 5737 u = t; 5738 if (c.touch) { 5739 const t = !("touchstart" !== s.start || !c.passiveListener || !i.passiveListeners) && { passive: !0, capture: !1 }; 5740 o[h](s.start, e.onTouchStart, t), o[h](s.move, e.onTouchMove, c.passiveListener ? { passive: !1, capture: d } : d), o[h](s.end, e.onTouchEnd, t), s.cancel && o[h](s.cancel, e.onTouchEnd, t); 5741 } else o[h](s.start, e.onTouchStart, !1), n[h](s.move, e.onTouchMove, d), n[h](s.end, e.onTouchEnd, !1); 5742 (i.preventClicks || i.preventClicksPropagation) && o[h]("click", e.onClick, !0), 5743 i.cssMode && r[h]("scroll", e.onScroll), 5744 i.updateOnWindowResize ? e[u](l.ios || l.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", H, !0) : e[u]("observerUpdate", H, !0); 5745 }; 5746 const G = { 5747 attachEvents: function () { 5748 const e = this, 5749 t = a(), 5750 { params: n, support: i } = e; 5751 (e.onTouchStart = z.bind(e)), 5752 (e.onTouchMove = j.bind(e)), 5753 (e.onTouchEnd = F.bind(e)), 5754 n.cssMode && (e.onScroll = B.bind(e)), 5755 (e.onClick = R.bind(e)), 5756 i.touch && !q && (t.addEventListener("touchstart", W), (q = !0)), 5757 V(e, "on"); 5758 }, 5759 detachEvents: function () { 5760 V(this, "off"); 5761 }, 5762 }, 5763 X = (e, t) => e.grid && t.grid && t.grid.rows > 1; 5764 const Y = { 5765 setBreakpoint: function () { 5766 const e = this, 5767 { activeIndex: t, initialized: n, loopedSlides: i = 0, params: s, $el: o } = e, 5768 r = s.breakpoints; 5769 if (!r || (r && 0 === Object.keys(r).length)) return;
5770 const a = e.getBreakpoint(r, e.params.breakpointsBase, e.el); 5771 if (!a || e.currentBreakpoint === a) return; 5772 const l = (a in r ? r[a] : void 0) || e.originalParams, 5773 c = X(e, s), 5774 d = X(e, l), 5775 h = s.enabled; 5776 c && !d 5777 ? (o.removeClass(`${s.containerModifierClass}grid ${s.containerModifierClass}grid-column`), e.emitContainerClasses()) 5778 : !c && 5779 d && 5780 (o.addClass(`${s.containerModifierClass}grid`), 5781 ((l.grid.fill && "column" === l.grid.fill) || (!l.grid.fill && "column" === s.grid.fill)) && o.addClass(`${s.containerModifierClass}grid-column`), 5782 e.emitContainerClasses()), 5783 ["navigation", "pagination", "scrollbar"].forEach((t) => { 5784 const n = s[t] && s[t].enabled, 5785 i = l[t] && l[t].enabled; 5786 n && !i && e[t].disable(), !n && i && e[t].enable(); 5787 }); 5788 const u = l.direction && l.direction !== s.direction, 5789 p = s.loop && (l.slidesPerView !== s.slidesPerView || u); 5790 u && n && e.changeDirection(), _(e.params, l); 5791 const f = e.params.enabled; 5792 Object.assign(e, { allowTouchMove: e.params.allowTouchMove, allowSlideNext: e.params.allowSlideNext, allowSlidePrev: e.params.allowSlidePrev }), 5793 h && !f ? e.disable() : !h && f && e.enable(), 5794 (e.currentBreakpoint = a), 5795 e.emit("_beforeBreakpoint", l), 5796 p && n && (e.loopDestroy(), e.loopCreate(), e.updateSlides(), e.slideTo(t - i + e.loopedSlides, 0, !1)), 5797 e.emit("breakpoint", l); 5798 }, 5799 getBreakpoint: function (e, t = "window", n) { 5800 if (!e || ("container" === t && !n)) return; 5801 let i = !1; 5802 const s = c(), 5803 o = "window" === t ? s.innerHeight : n.clientHeight, 5804 r = Object.keys(e).map((e) => { 5805 if ("string" == typeof e && 0 === e.indexOf("@")) { 5806 const t = parseFloat(e.substr(1)); 5807 return { value: o * t, point: e }; 5808 } 5809 return { value: e, point: e }; 5810 }); 5811 r.sort((e, t) => parseInt(e.value, 10) - parseInt(t.value, 10)); 5812 for (let e = 0; e < r.length; e += 1) { 5813 const { point: o, value: a } = r[e]; 5814 "window" === t ? s.matchMedia(`(min-width: ${a}px)`).matches && (i = o) : a <= n.clientWidth && (i = o); 5815 } 5816 return i || "max"; 5817 }, 5818 }; 5819 const U = { 5820 addClasses: function () { 5821 const e = this, 5822 { classNames: t, params: n, rtl: i, $el: s, device: o, support: r } = e, 5823 a = (function (e, t) { 5824 const n = []; 5825 return ( 5826 e.forEach((e) => { 5827 "object" == typeof e 5828 ? Object.keys(e).forEach((i) => { 5829 e[i] && n.push(t + i); 5830 }) 5831 : "string" == typeof e && n.push(t + e); 5832 }), 5833 n 5834 ); 5835 })( 5836 [ 5837 "initialized", 5838 n.direction, 5839 { "pointer-events": !r.touch }, 5840 { "free-mode": e.params.freeMode && n.freeMode.enabled }, 5841 { autoheight: n.autoHeight }, 5842 { rtl: i }, 5843 { grid: n.grid && n.grid.rows > 1 }, 5844 { "grid-column": n.grid && n.grid.rows > 1 && "column" === n.grid.fill }, 5845 { android: o.android }, 5846 { ios: o.ios }, 5847 { "css-mode": n.cssMode }, 5848 { centered: n.cssMode && n.centeredSlides }, 5849 { "watch-progress": n.watchSlidesProgress }, 5850 ], 5851 n.containerModifierClass 5852 ); 5853 t.push(...a), s.addClass([...t].join(" ")), e.emitContainerClasses(); 5854 }, 5855 removeClasses: function () { 5856 const { $el: e, classNames: t } = this; 5857 e.removeClass(t.join(" ")), this.emitContainerClasses(); 5858 }, 5859 }; 5860 const K = { 5861 loadImage: function (e, t, n, i, s, o) { 5862 const r = c(); 5863 let a; 5864 function l() { 5865 o && o(); 5866 } 5867 v(e).parent("picture")[0] || (e.complete && s) ? l() : t ? ((a = new r.Image()), (a.onload = l), (a.onerror = l), i && (a.sizes = i), n && (a.srcset = n), t && (a.src = t)) : l(); 5868 }, 5869 preloadImages: function () { 5870 const e = this; 5871 function t() { 5872 null != e && e && !e.destroyed && (void 0 !== e.imagesLoaded && (e.imagesLoaded += 1), e.imagesLoaded === e.imagesToLoad.length && (e.params.updateOnImagesReady && e.update(
5872), e.emit("imagesReady"))); 5873 } 5874 e.imagesToLoad = e.$el.find("img"); 5875 for (let n = 0; n < e.imagesToLoad.length; n += 1) { 5876 const i = e.imagesToLoad[n]; 5877 e.loadImage(i, i.currentSrc || i.getAttribute("src"), i.srcset || i.getAttribute("srcset"), i.sizes || i.getAttribute("sizes"), !0, t); 5878 } 5879 }, 5880 }; 5881 const Z = { 5882 init: !0, 5883 direction: "horizontal", 5884 touchEventsTarget: "wrapper", 5885 initialSlide: 0, 5886 speed: 300, 5887 cssMode: !1, 5888 updateOnWindowResize: !0, 5889 resizeObserver: !0, 5890 nested: !1, 5891 createElements: !1, 5892 enabled: !0, 5893 focusableElements: "input, select, option, textarea, button, video, label", 5894 width: null, 5895 height: null, 5896 preventInteractionOnTransition: !1, 5897 userAgent: null, 5898 url: null, 5899 edgeSwipeDetection: !1, 5900 edgeSwipeThreshold: 20, 5901 autoHeight: !1, 5902 setWrapperSize: !1, 5903 virtualTranslate: !1, 5904 effect: "slide", 5905 breakpoints: void 0, 5906 breakpointsBase: "window", 5907 spaceBetween: 0, 5908 slidesPerView: 1, 5909 slidesPerGroup: 1, 5910 slidesPerGroupSkip: 0, 5911 slidesPerGroupAuto: !1, 5912 centeredSlides: !1, 5913 centeredSlidesBounds: !1, 5914 slidesOffsetBefore: 0, 5915 slidesOffsetAfter: 0, 5916 normalizeSlideIndex: !0, 5917 centerInsufficientSlides: !1, 5918 watchOverflow: !0, 5919 roundLengths: !1, 5920 touchRatio: 1, 5921 touchAngle: 45, 5922 simulateTouch: !0, 5923 shortSwipes: !0, 5924 longSwipes: !0, 5925 longSwipesRatio: 0.5, 5926 longSwipesMs: 300, 5927 followFinger: !0, 5928 allowTouchMove: !0, 5929 threshold: 0, 5930 touchMoveStopPropagation: !1, 5931 touchStartPreventDefault: !0, 5932 touchStartForcePreventDefault: !1, 5933 touchReleaseOnEdges: !1, 5934 uniqueNavElements: !0, 5935 resistance: !0, 5936 resistanceRatio: 0.85, 5937 watchSlidesProgress: !1, 5938 grabCursor: !1, 5939 preventClicks: !0, 5940 preventClicksPropagation: !0, 5941 slideToClickedSlide: !1, 5942 preloadImages: !0, 5943 updateOnImagesReady: !0, 5944 loop: !1, 5945 loopAdditionalSlides: 0, 5946 loopedSlides: null, 5947 loopedSlidesLimit: !0, 5948 loopFillGroupWithBlank: !1, 5949 loopPreventsSlide: !0, 5950 rewind: !1, 5951 allowSlidePrev: !0, 5952 allowSlideNext: !0, 5953 swipeHandler: null, 5954 noSwiping: !0, 5955 noSwipingClass: "swiper-no-swiping", 5956 noSwipingSelector: null, 5957 passiveListeners: !0, 5958 maxBackfaceHiddenSlides: 10, 5959 containerModifierClass: "swiper-", 5960 slideClass: "swiper-slide", 5961 slideBlankClass: "swiper-slide-invisible-blank", 5962 slideActiveClass: "swiper-slide-active", 5963 slideDuplicateActiveClass: "swiper-slide-duplicate-active", 5964 slideVisibleClass: "swiper-slide-visible", 5965 slideDuplicateClass: "swiper-slide-duplicate", 5966 slideNextClass: "swiper-slide-next", 5967 slideDuplicateNextClass: "swiper-slide-duplicate-next", 5968 slidePrevClass: "swiper-slide-prev", 5969 slideDuplicatePrevClass: "swiper-slide-duplicate-prev", 5970 wrapperClass: "swiper-wrapper", 5971 runCallbacksOnInit: !0, 5972 _emitClasses: !1, 5973 }; 5974 function Q(e, t) { 5975 return function (n = {}) { 5976 const i = Object.keys(n)[0], 5977 s = n[i]; 5978 "object" == typeof s && null !== s 5979 ? (["navigation", "pagination", "scrollbar"].indexOf(i) >= 0 && !0 === e[i] && (e[i] = { auto: !0 }), 5980 i in e && "enabled" in s ? (!0 === e[i] && (e[i] = { enabled: !0 }), "object" != typeof e[i] || "enabled" in e[i] || (e[i].enabled = !0), e[i] || (e[i] = { enabled: !1 }), _(t, n)) : _(t, n)) 5981 : _(t, n); 5982 }; 5983 } 5984 const J = { 5985 eventsEmitter: P, 5986 update: O, 5987 translate: M, 5988 transition: { 5989 setTransition: function (e, t) { 5990 const n = this; 5991 n.params.cssMode || n.$wrapperEl.transition(e), n.emit("setTransition", e, t); 5992 }, 5993 transitionStart: function (e = !0, t) { 5994 const n = this, 5995 { params: i } = n; 5996 i.cssMode || (i.autoHeight && n.updateAutoHeight(), D({ swiper: n, runCallbacks: e, direction: t, step: "Start" })); 5997 }, 5998 transitionEnd: function (e = !0, t) { 5999 const n = this, 6000 { params: i } = n; 6001 (n.animating = !1), i.cssMode || (n.setTransition(0), D({ swiper: n, runCallbacks: e, direction: t, step: "End" })); 6002 }, 6003 }, 6004 slide: N, 6005 loop: I, 6006 grabCursor: { 6007 setGrabCursor: function (e) { 6008 const t = this;
6009 if (t.support.touch || !t.params.simulateTouch || (t.params.watchOverflow && t.isLocked) || t.params.cssMode) return; 6010 const n = "container" === t.params.touchEventsTarget ? t.el : t.wrapperEl; 6011 (n.style.cursor = "move"), (n.style.cursor = e ? "grabbing" : "grab"); 6012 }, 6013 unsetGrabCursor: function () { 6014 const e = this; 6015 e.support.touch || (e.params.watchOverflow && e.isLocked) || e.params.cssMode || (e["container" === e.params.touchEventsTarget ? "el" : "wrapperEl"].style.cursor = ""); 6016 }, 6017 }, 6018 events: G, 6019 breakpoints: Y, 6020 checkOverflow: { 6021 checkOverflow: function () { 6022 const e = this, 6023 { isLocked: t, params: n } = e, 6024 { slidesOffsetBefore: i } = n; 6025 if (i) { 6026 const t = e.slides.length - 1, 6027 n = e.slidesGrid[t] + e.slidesSizesGrid[t] + 2 * i; 6028 e.isLocked = e.size > n; 6029 } else e.isLocked = 1 === e.snapGrid.length; 6030 !0 === n.allowSlideNext && (e.allowSlideNext = !e.isLocked), 6031 !0 === n.allowSlidePrev && (e.allowSlidePrev = !e.isLocked), 6032 t && t !== e.isLocked && (e.isEnd = !1), 6033 t !== e.isLocked && e.emit(e.isLocked ? "lock" : "unlock"); 6034 }, 6035 }, 6036 classes: U, 6037 images: K, 6038 }, 6039 ee = {}; 6040 class te { 6041 constructor(...e) { 6042 let t, n; 6043 if ( 6044 (1 === e.length && e[0].constructor && "Object" === Object.prototype.toString.call(e[0]).slice(8, -1) ? (n = e[0]) : ([t, n] = e), n || (n = {}), (n = _({}, n)), t && !n.el && (n.el = t), n.el && v(n.el).length > 1) 6045 ) { 6046 const e = []; 6047 return ( 6048 v(n.el).each((t) => { 6049 const i = _({}, n, { el: t }); 6050 e.push(new te(i)); 6051 }), 6052 e 6053 ); 6054 } 6055 const i = this; 6056 (i.__swiper__ = !0), 6057 (i.support = k()), 6058 (i.device = $({ userAgent: n.userAgent })), 6059 (i.browser = L()), 6060 (i.eventsListeners = {}), 6061 (i.eventsAnyListeners = []), 6062 (i.modules = [...i.__modules__]), 6063 n.modules && Array.isArray(n.modules) && i.modules.push(...n.modules); 6064 const s = {}; 6065 i.modules.forEach((e) => { 6066 e({ swiper: i, extendParams: Q(n, s), on: i.on.bind(i), once: i.once.bind(i), off: i.off.bind(i), emit: i.emit.bind(i) }); 6067 }); 6068 const o = _({}, Z, s); 6069 return ( 6070 (i.params = _({}, o, ee, n)), 6071 (i.originalParams = _({}, i.params)), 6072 (i.passedParams = _({}, n)), 6073 i.params && 6074 i.params.on &&
6075 Object.keys(i.params.on).forEach((e) => { 6076 i.on(e, i.params.on[e]); 6077 }), 6078 i.params && i.params.onAny && i.onAny(i.params.onAny), 6079 (i.$ = v), 6080 Object.assign(i, { 6081 enabled: i.params.enabled, 6082 el: t, 6083 classNames: [], 6084 slides: v(), 6085 slidesGrid: [], 6086 snapGrid: [], 6087 slidesSizesGrid: [], 6088 isHorizontal: () => "horizontal" === i.params.direction, 6089 isVertical: () => "vertical" === i.params.direction, 6090 activeIndex: 0, 6091 realIndex: 0, 6092 isBeginning: !0, 6093 isEnd: !1, 6094 translate: 0, 6095 previousTranslate: 0, 6096 progress: 0, 6097 velocity: 0, 6098 animating: !1, 6099 allowSlideNext: i.params.allowSlideNext, 6100 allowSlidePrev: i.params.allowSlidePrev, 6101 touchEvents: (function () { 6102 const e = ["touchstart", "touchmove", "touchend", "touchcancel"], 6103 t = ["pointerdown", "pointermove", "pointerup"]; 6104 return ( 6105 (i.touchEventsTouch = { start: e[0], move: e[1], end: e[2], cancel: e[3] }), 6106 (i.touchEventsDesktop = { start: t[0], move: t[1], end: t[2] }), 6107 i.support.touch || !i.params.simulateTouch ? i.touchEventsTouch : i.touchEventsDesktop 6108 ); 6109 })(), 6110 touchEventsData: { 6111 isTouched: void 0, 6112 isMoved: void 0, 6113 allowTouchCallbacks: void 0, 6114 touchStartTime: void 0, 6115 isScrolling: void 0, 6116 currentTranslate: void 0, 6117 startTranslate: void 0, 6118 allowThresholdMove: void 0, 6119 focusableElements: i.params.focusableElements, 6120 lastClickTime: y(), 6121 clickTimeout: void 0, 6122 velocities: [], 6123 allowMomentumBounce: void 0, 6124 isTouchEvent: void 0, 6125 startMoving: void 0, 6126 }, 6127 allowClick: !0, 6128 allowTouchMove: i.params.allowTouchMove, 6129 touches: { startX: 0, startY: 0, currentX: 0, currentY: 0, diff: 0 }, 6130 imagesToLoad: [], 6131 imagesLoaded: 0, 6132 }), 6133 i.emit("_swiper"), 6134 i.params.init && i.init(), 6135 i 6136 ); 6137 } 6138 enable() { 6139 const e = this; 6140 e.enabled || ((e.enabled = !0), e.params.grabCursor && e.setGrabCursor(), e.emit("enable")); 6141 } 6142 disable() { 6143 const e = this; 6144 e.enabled && ((e.enabled = !1), e.params.grabCursor && e.unsetGrabCursor(), e.emit("disable")); 6145 } 6146 setProgress(e, t) { 6147 const n = this; 6148 e = Math.min(Math.max(e, 0), 1); 6149 const i = n.minTranslate(), 6150 s = (n.maxTranslate() - i) * e + i; 6151 n.translateTo(s, void 0 === t ? 0 : t), n.updateActiveIndex(), n.updateSlidesClasses(); 6152 } 6153 emitContainerClasses() { 6154 const e = this; 6155 if (!e.params._emitClasses || !e.el) return; 6156 const t = e.el.className.split(" ").filter((t) => 0 === t.indexOf("swiper") || 0 === t.indexOf(e.params.containerModifierClass)); 6157 e.emit("_containerClasses", t.join(" ")); 6158 } 6159 getSlideClasses(e) { 6160 const t = this; 6161 return t.destroyed 6162 ? "" 6163 : e.className 6164 .split(" ") 6165 .filter((e) => 0 === e.indexOf("swiper-slide") || 0 === e.indexOf(t.params.slideClass)) 6166 .join(" "); 6167 } 6168 emitSlidesClasses() { 6169 const e = this; 6170 if (!e.params._emitClasses || !e.el) return; 6171 const t = []; 6172 e.slides.each((n) => { 6173 const i = e.getSlideClasses(n); 6174 t.push({ slideEl: n, classNames: i }), e.emit("_slideClass", n, i); 6175 }), 6176 e.emit("_slideClasses", t); 6177 } 6178 slidesPerViewDynamic(e = "current", t = !1) { 6179 const { params: n, slides: i, slidesGrid: s, slidesSizesGrid: o, size: r, activeIndex: a } = this; 6180 let l = 1; 6181 if (n.centeredSlides) { 6182 let e, 6183 t = i[a].swiperSlideSize; 6184 for (let n = a + 1; n < i.length; n += 1) i[n] && !e && ((t += i[n].swiperSlideSize), (l += 1), t > r && (e = !0)); 6185 for (let n = a - 1; n >= 0; n -= 1) i[n] && !e && ((t += i[n].swiperSlideSize), (l += 1), t > r && (e = !0)); 6186 } else if ("current" === e) 6187 for (let e = a + 1; e < i.length; e += 1) { 6188 (t ? s[e] + o[e] - s[a] < r : s[e] - s[a] < r) && (l += 1); 6189 } 6190 else 6191 for (let e = a - 1; e >= 0; e -= 1) {
6192 s[a] - s[e] < r && (l += 1); 6193 } 6194 return l; 6195 } 6196 update() { 6197 const e = this; 6198 if (!e || e.destroyed) return; 6199 const { snapGrid: t, params: n } = e; 6200 function i() { 6201 const t = e.rtlTranslate ? -1 * e.translate : e.translate, 6202 n = Math.min(Math.max(t, e.maxTranslate()), e.minTranslate()); 6203 e.setTranslate(n), e.updateActiveIndex(), e.updateSlidesClasses(); 6204 } 6205 let s; 6206 n.breakpoints && e.setBreakpoint(), 6207 e.updateSize(), 6208 e.updateSlides(), 6209 e.updateProgress(), 6210 e.updateSlidesClasses(), 6211 e.params.freeMode && e.params.freeMode.enabled 6212 ? (i(), e.params.autoHeight && e.updateAutoHeight()) 6213 : ((s = ("auto" === e.params.slidesPerView || e.params.slidesPerView > 1) && e.isEnd && !e.params.centeredSlides ? e.slideTo(e.slides.length - 1, 0, !1, !0) : e.slideTo(e.activeIndex, 0, !1, !0)), s || i()), 6214 n.watchOverflow && t !== e.snapGrid && e.checkOverflow(), 6215 e.emit("update"); 6216 } 6217 changeDirection(e, t = !0) { 6218 const n = this, 6219 i = n.params.direction; 6220 return ( 6221 e || (e = "horizontal" === i ? "vertical" : "horizontal"), 6222 e === i || 6223 ("horizontal" !== e && "vertical" !== e) || 6224 (n.$el.removeClass(`${n.params.containerModifierClass}${i}`).addClass(`${n.params.containerModifierClass}${e}`), 6225 n.emitContainerClasses(), 6226 (n.params.direction = e), 6227 n.slides.each((t) => { 6228 "vertical" === e ? (t.style.width = "") : (t.style.height = ""); 6229 }), 6230 n.emit("changeDirection"), 6231 t && n.update()), 6232 n 6233 ); 6234 } 6235 changeLanguageDirection(e) { 6236 const t = this; 6237 (t.rtl && "rtl" === e) || 6238 (!t.rtl && "ltr" === e) || 6239 ((t.rtl = "rtl" === e), 6240 (t.rtlTranslate = "horizontal" === t.params.direction && t.rtl), 6241 t.rtl ? (t.$el.addClass(`${t.params.containerModifierClass}rtl`), (t.el.dir = "rtl")) : (t.$el.removeClass(`${t.params.containerModifierClass}rtl`), (t.el.dir = "ltr")), 6242 t.update()); 6243 } 6244 mount(e) { 6245 const t = this; 6246 if (t.mounted) return !0; 6247 const n = v(e || t.params.el); 6248 if (!(e = n[0])) return !1; 6249 e.swiper = t; 6250 const i = () => `.${(t.params.wrapperClass || "").trim().split(" ").join(".")}`; 6251 let s = (() => { 6252 if (e && e.shadowRoot && e.shadowRoot.querySelector) { 6253 const t = v(e.shadowRoot.querySelector(i())); 6254 return (t.children = (e) => n.children(e)), t; 6255 } 6256 return n.children ? n.children(i()) : v(n).children(i()); 6257 })(); 6258 if (0 === s.length && t.params.createElements) { 6259 const e = a().createElement("div"); 6260 (s = v(e)), 6261 (e.className = t.params.wrapperClass), 6262 n.append(e), 6263 n.children(`.${t.params.slideClass}`).each((e) => { 6264 s.append(e); 6265 }); 6266 } 6267 return ( 6268 Object.assign(t, { 6269 $el: n, 6270 el: e, 6271 $wrapperEl: s, 6272 wrapperEl: s[0], 6273 mounted: !0, 6274 rtl: "rtl" === e.dir.toLowerCase() || "rtl" === n.css("direction"), 6275 rtlTranslate: "horizontal" === t.params.direction && ("rtl" === e.dir.toLowerCase() || "rtl" === n.css("direction")), 6276 wrongRTL: "-webkit-box" === s.css("display"), 6277 }), 6278 !0 6279 ); 6280 } 6281 init(e) { 6282 const t = this; 6283 if (t.initialized) return t; 6284 return ( 6285 !1 === t.mount(e) || 6286 (t.emit("beforeInit"), 6287 t.params.breakpoints && t.setBreakpoint(), 6288 t.addClasses(), 6289 t.params.loop && t.loopCreate(), 6290 t.updateSize(), 6291 t.updateSlides(), 6292 t.params.watchOverflow && t.checkOverflow(), 6293 t.params.grabCursor && t.enabled && t.setGrabCursor(
6293), 6294 t.params.preloadImages && t.preloadImages(), 6295 t.params.loop ? t.slideTo(t.params.initialSlide + t.loopedSlides, 0, t.params.runCallbacksOnInit, !1, !0) : t.slideTo(t.params.initialSlide, 0, t.params.runCallbacksOnInit, !1, !0), 6296 t.attachEvents(), 6297 (t.initialized = !0), 6298 t.emit("init"), 6299 t.emit("afterInit")), 6300 t 6301 ); 6302 } 6303 destroy(e = !0, t = !0) { 6304 const n = this, 6305 { params: i, $el: s, $wrapperEl: o, slides: r } = n; 6306 return ( 6307 void 0 === n.params || 6308 n.destroyed || 6309 (n.emit("beforeDestroy"), 6310 (n.initialized = !1), 6311 n.detachEvents(), 6312 i.loop && n.loopDestroy(), 6313 t && 6314 (n.removeClasses(), 6315 s.removeAttr("style"), 6316 o.removeAttr("style"), 6317 r && r.length && r.removeClass([i.slideVisibleClass, i.slideActiveClass, i.slideNextClass, i.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index")), 6318 n.emit("destroy"), 6319 Object.keys(n.eventsListeners).forEach((e) => { 6320 n.off(e); 6321 }), 6322 !1 !== e && 6323 ((n.$el[0].swiper = null), 6324 (function (e) { 6325 const t = e; 6326 Object.keys(t).forEach((e) => { 6327 try { 6328 t[e] = null; 6329 } catch (e) {} 6330 try { 6331 delete t[e]; 6332 } catch (e) {} 6333 }); 6334 })(n)), 6335 (n.destroyed = !0)), 6336 null 6337 ); 6338 } 6339 static extendDefaults(e) { 6340 _(ee, e); 6341 } 6342 static get extendedDefaults() { 6343 return ee; 6344 } 6345 static get defaults() { 6346 return Z; 6347 } 6348 static installModule(e) { 6349 te.prototype.__modules__ || (te.prototype.__modules__ = []); 6350 const t = te.prototype.__modules__; 6351 "function" == typeof e && t.indexOf(e) < 0 && t.push(e); 6352 } 6353 static use(e) { 6354 return Array.isArray(e) ? (e.forEach((e) => te.installModule(e)), te) : (te.installModule(e), te); 6355 } 6356 } 6357 Object.keys(J).forEach((e) => {
6358 Object.keys(J[e]).forEach((t) => { 6359 te.prototype[t] = J[e][t]; 6360 }); 6361 }), 6362 te.use([ 6363 function ({ swiper: e, on: t, emit: n }) { 6364 const i = c(); 6365 let s = null, 6366 o = null; 6367 const r = () => { 6368 e && !e.destroyed && e.initialized && (n("beforeResize"), n("resize")); 6369 }, 6370 a = () => { 6371 e && !e.destroyed && e.initialized && n("orientationchange"); 6372 }; 6373 t("init", () => { 6374 e.params.resizeObserver && void 0 !== i.ResizeObserver 6375 ? e && 6376 !e.destroyed && 6377 e.initialized && 6378 ((s = new ResizeObserver((t) => { 6379 o = i.requestAnimationFrame(() => { 6380 const { width: n, height: i } = e; 6381 let s = n, 6382 o = i; 6383 t.forEach(({ contentBoxSize: t, contentRect: n, target: i }) => { 6384 (i && i !== e.el) || ((s = n ? n.width : (t[0] || t).inlineSize), (o = n ? n.height : (t[0] || t).blockSize)); 6385 }), 6386 (s === n && o === i) || r(); 6387 }); 6388 })), 6389 s.observe(e.el)) 6390 : (i.addEventListener("resize", r), i.addEventListener("orientationchange", a)); 6391 }), 6392 t("destroy", () => { 6393 o && i.cancelAnimationFrame(o), s && s.unobserve && e.el && (s.unobserve(e.el), (s = null)), i.removeEventListener("resize", r), i.removeEventListener("orientationchange", a); 6394 }); 6395 }, 6396 function ({ swiper: e, extendParams: t, on: n, emit: i }) { 6397 const s = [], 6398 o = c(), 6399 r = (e, t = {}) => { 6400 const n = new (o.MutationObserver || o.WebkitMutationObserver)((e) => { 6401 if (1 === e.length) return void i("observerUpdate", e[0]); 6402 const t = function () { 6403 i("observerUpdate", e[0]); 6404 }; 6405 o.requestAnimationFrame ? o.requestAnimationFrame(t) : o.setTimeout(t, 0); 6406 }); 6407 n.observe(e, { attributes: void 0 === t.attributes || t.attributes, childList: void 0 === t.childList || t.childList, characterData: void 0 === t.characterData || t.characterData }), s.push(n); 6408 }; 6409 t({ observer: !1, observeParents: !1, observeSlideChildren: !1 }), 6410 n("init", () => { 6411 if (e.params.observer) { 6412 if (e.params.observeParents) { 6413 const t = e.$el.parents(); 6414 for (let e = 0; e < t.length; e += 1) r(t[e]); 6415 } 6416 r(e.$el[0], { childList: e.params.observeSlideChildren }), r(e.$wrapperEl[0], { attributes: !1 }); 6417 } 6418 }), 6419 n("destroy", () => { 6420 s.forEach((e) => { 6421 e.disconnect(); 6422 }), 6423 s.splice(0, s.length); 6424 }); 6425 }, 6426 ]); 6427 const ne = te; 6428 function ie(e, t, n, i) { 6429 const s = a(); 6430 return ( 6431 e.params.createElements &&
6432 Object.keys(i).forEach((o) => { 6433 if (!n[o] && !0 === n.auto) { 6434 let r = e.$el.children(`.${i[o]}`)[0]; 6435 r || ((r = s.createElement("div")), (r.className = i[o]), e.$el.append(r)), (n[o] = r), (t[o] = r); 6436 } 6437 }), 6438 n 6439 ); 6440 } 6441 function se(e = "") { 6442 return `.${e 6443 .trim() 6444 .replace(/([\.:!\/])/g, "\\$1") 6445 .replace(/ /g, ".")}`; 6446 } 6447 const oe = (e) => "object" == typeof e && null !== e && e.constructor === Object && "[object Object]" === Object.prototype.toString.call(e), 6448 re = (...e) => { 6449 let t = !1; 6450 "boolean" == typeof e[0] && (t = e.shift()); 6451 let n = e[0]; 6452 if (!n || "object" != typeof n) throw new Error("extendee must be an object"); 6453 const i = e.slice(1), 6454 s = i.length; 6455 for (let e = 0; e < s; e++) { 6456 const s = i[e]; 6457 for (let e in s) 6458 if (s.hasOwnProperty(e)) { 6459 const i = s[e]; 6460 if (t && (Array.isArray(i) || oe(i))) { 6461 const t = Array.isArray(i) ? [] : {}; 6462 n[e] = re(!0, n.hasOwnProperty(e) ? n[e] : t, i); 6463 } else n[e] = i; 6464 } 6465 } 6466 return n; 6467 }, 6468 ae = (e, t = 1e4) => ((e = parseFloat(e) || 0), Math.round((e + Number.EPSILON) * t) / t), 6469 le = function (e) { 6470 return ( 6471 !!(e && "object" == typeof e && e instanceof Element && e !== document.body) && 6472 !e.__Panzoom && 6473 ((function (e) { 6474 const t = getComputedStyle(e)["overflow-y"], 6475 n = getComputedStyle(e)["overflow-x"], 6476 i = ("scroll" === t || "auto" === t) && Math.abs(e.scrollHeight - e.clientHeight) > 1, 6477 s = ("scroll" === n || "auto" === n) && Math.abs(e.scrollWidth - e.clientWidth) > 1; 6478 return i || s; 6479 })(e) 6480 ? e 6481 : le(e.parentNode)) 6482 ); 6483 }, 6484 ce = 6485 ("undefined" != typeof window && window.ResizeObserver) || 6486 class { 6487 constructor(e) { 6488 (this.observables = []), (this.boundCheck = this.check.bind(this)), this.boundCheck(), (this.callback = e); 6489 } 6490 observe(e) { 6491 if (this.observables.some((t) => t.el === e)) return; 6492 const t = { el: e, size: { height: e.clientHeight, width: e.clientWidth } }; 6493 this.observables.push(t); 6494 } 6495 unobserve(e) { 6496 this.observables = this.observables.filter((t) => t.el !== e); 6497 } 6498 disconnect() { 6499 this.observables = []; 6500 } 6501 check() { 6502 const e = this.observables 6503 .filter((e) => { 6504 const t = e.el.clientHeight, 6505 n = e.el.clientWidth; 6506 if (e.size.height !== t || e.size.width !== n) return (e.size.height = t), (e.size.width = n), !0; 6507 }) 6508 .map((e) => e.el); 6509 e.length > 0 && this.callback(e), window.requestAnimationFrame(this.boundCheck); 6510 } 6511 }; 6512 class de { 6513 constructor(e) { 6514 (this.id = self.Touch && e instanceof Touch ? e.identifier : -1), (this.pageX = e.pageX), (this.pageY = e.pageY), (this.clientX = e.clientX), (this.clientY = e.clientY); 6515 } 6516 } 6517 const he = (e, t) => (t ? Math.sqrt((t.clientX - e.clientX) ** 2 + (t.clientY - e.clientY) ** 2) : 0), 6518 ue = (e, t) => (t ? { clientX: (e.clientX + t.clientX) / 2, clientY: (e.clientY + t.clientY) / 2 } : e); 6519 class pe { 6520 constructor(e, { start: t = () => !0, move: n = () => {}, end: i = () => {} } = {}) { 6521 (this._element = e), 6522 (this.startPointers = []), 6523 (this.currentPointers = []), 6524 (this._pointerStart = (e) => { 6525 if (e.buttons > 0 && 0 !== e.button) return; 6526 const t = new de(e); 6527 this.currentPointers.some((e) => e.id === t.id) || (this._triggerPointerStart(t, e) && (window.addEventListener("mousemove", this._move), window.addEventListener("mouseup", this._pointerEnd))); 6528 }), 6529 (this._touchStart = (e) => { 6530 for (const t of Array.from(e.changedTouches || [])) this._triggerPointerStart(new de(t), e); 6531 }), 6532 (this._move = (e) => { 6533 const t = this.currentPointers.slice(), 6534 n = ((e) => "changedTouches" in e)(e) ? Array.from(e.changedTouches).map((e) => new de(e)) : [new de(e)]; 6535 for (const e of n) { 6536 const t = this.currentPointers.findIndex((t) => t.id === e.id); 6537 t < 0 || (this.currentPointers[t] = e); 6538 } 6539 this._moveCallback(t, this.currentPointers.slice(), e); 6540 }), 6541 (this._triggerPointerEnd = (e, t) => { 6542 const n = this.currentPointers.findIndex((t) => t.id === e.id); 6543 return !(n < 0 || (this.currentPointers.splice(n, 1), this.startPointers.splice(n, 1), this._endCallback(e, t), 0)); 6544 }), 6545 (this._pointerEnd = (e) => { 6546 (e.buttons > 0 && 0 !== e.button) || 6547 (this._triggerPointerEnd(new de(e), e) && (window.removeEventListener("mousemove", this._move, { passive: !1 }), window.removeEventListener("mouseup", this._pointerEnd, { passive: !1 }))); 6548 }), 6549 (this._touchEnd = (e) => { 6550 for (const t of Array.from(e.changedTouches || [])) this._triggerPointerEnd(new de(t), e); 6551 }), 6552 (this._startCallback = t), 6553 (this._moveCallback = n), 6554 (this._endCallback = i), 6555 this._element.addEventListener("mousedown", this._pointerStart, { passive: !1 }), 6556 this._element.addEventListener("touchstart", this._touchStart, { passive: !1 }), 6557 this._element.addEventListener("touchmove", this._move, { passive: !1 }), 6558 this._element.addEventListener("touchend", this._touchEnd), 6559 this._element.addEventListener("touchcancel", this._touchEnd); 6560 } 6561 stop() { 6562 this._element.removeEventListener("mousedown", this._pointerStart, { passive: !1 }), 6563 this._element.removeEventListener("touchstart", this._touchStart, { passive: !1 }), 6564 this._element.removeEventListener("touchmove", this._move, { passive: !1 }), 6565 this._element.removeEventListener("touchend", this._touchEnd), 6566 this._element.removeEventListener("touchcancel", this._touchEnd), 6567 window.removeEventListener("mousemove", this._move), 6568 window.removeEventListener("mouseup", this._pointerEnd); 6569 } 6570 _triggerPointerStart(e, t) { 6571 return !!this._startCallback(e, t) && (this.currentPointers.push(e), this.startPointers.push(e), !0); 6572 } 6573 } 6574 class fe { 6575 constructor(e = {}) { 6576 (this.options = re(!0, {}, e)), (this.plugins = []), (this.events = {}); 6577 for (const e of ["on", "once"]) for (const t of Object.entries(this.options[e] || {})) this[e](...t); 6578 } 6579 option(e, t, ...n) { 6580 let i = 6581 ((s = e = String(e)), 6582 (o = this.options), 6583 s.split(".").reduce(function (e, t) { 6584 return e && e[t]; 6585 }, o)); 6586 var s, o; 6587 return "function" == typeof i && (i = i.call(this, this, ...n)), void 0 === i ? t : i; 6588 } 6589 localize(e, t = []) { 6590 return (e = String(e).replace(/\{\{(\w+).?(\w+)?\}\}/g, (e, n, i) => { 6591 let s = ""; 6592 i ? (s = this.option(`${n[0] + n.toLowerCase().substring(1)}.l10n.${i}`)) : n && (s = this.option(`l10n.${n}`)), s || (s = e); 6593 for (let e = 0; e < t.length; e++) s = s.split(t[e][0]).join(t[e][1]); 6594 return s; 6595 })).replace(/\{\{(.*)\}\}/, (e, t) => t); 6596 } 6597 on(e, t) { 6598 if (oe(e)) { 6599 for (const t of Object.entries(e)) this.on(...t); 6600 return this; 6601 } 6602 return ( 6603 String(e) 6604 .split(" ") 6605 .forEach((e) => { 6606 const n = (this.events[e] = this.events[e] || []); 6607 -1 == n.indexOf(t) && n.push(t); 6608 }), 6609 this 6610 ); 6611 } 6612 once(e, t) { 6613 if (oe(e)) { 6614 for (const t of Object.entries(e)) this.once(...t); 6615 return this; 6616 } 6617 return ( 6618 String(e) 6619 .split(" ") 6620 .forEach((e) => { 6621 const n = (...i) => { 6622 this.off(e, n), t.call(this, this, ...i); 6623 }; 6624 (n._ = t), this.on(e, n); 6625 }), 6626 this 6627 ); 6628 } 6629 off(e, t) { 6630 if (!oe(e)) 6631 return ( 6632 e.split(" ").forEach((e) => { 6633 const n = this.events[e]; 6634 if (!n || !n.length) return this; 6635 let i = -1; 6636 for (let e = 0, s = n.length; e < s; e++) { 6637 const s = n[e]; 6638 if (s && (s === t || s._ === t)) { 6639 i = e; 6640 break; 6641 } 6642 } 6643 -1 != i && n.splice(i, 1); 6644 }), 6645 this 6646 ); 6647 for (const t of Object.entries(e)) this.off(...t); 6648 } 6649 trigger(e, ...t) { 6650 for (const n of [...(this.events[e] || [])].slice()) if (n && !1 === n.call(this, this, ...t)) return !1; 6651 for (const n of [...(this.events["*"] || [])].slice()) if (n && !1 === n.call(this, e, this, ...t)) return !1; 6652 return !0; 6653 } 6654 attachPlugins(e) { 6655 const t = {}; 6656 for (const [n, i] of Object.entries(e || {})) !1 === this.options[n] || this.plugins[n] || ((this.options[n] = re({}, i.defaults || {}, this.options[n])), (t[n] = new i(this))); 6657 for (const [e, n] of Object.entries(t)) n.attach(this); 6658 return (this.plugins = Object.assign({}, this.plugins, t)), this; 6659 } 6660 detachPlugins() { 6661 for (const e in this.plugins) { 6662 let t; 6663 (t = this.plugins[e]) && "function" == typeof t.detach && t.detach(this); 6664 } 6665 return (this.plugins = {}), this; 6666 } 6667 } 6668 const ge = { 6669 touch: !0, 6670 zoom: !0, 6671 pinchToZoom: !0, 6672 panOnlyZoomed: !1, 6673 lockAxis: !1, 6674 friction: 0.64, 6675 decelFriction: 0.88, 6676 zoomFriction: 0.74, 6677 bounceForce: 0.2, 6678 baseScale: 1, 6679 minScale: 1, 6680 maxScale: 2, 6681 step: 0.5, 6682 textSelection: !1, 6683 click: "toggleZoom", 6684 wheel: "zoom", 6685 wheelFactor: 42, 6686 wheelLimit: 5, 6687 draggableClass: "is-draggable", 6688 draggingClass: "is-dragging", 6689 ratio: 1, 6690 }; 6691 class me extends fe { 6692 constructor(e, t = {}) { 6693 super(re(!0, {}, ge, t)), (this.state = "init"), (this.$container = e); 6694 for (const e of ["onLoad", "onWheel", "onClick"]) this[e] = this[e].bind(this); 6695 this.initLayout(), 6696 this.resetValues(), 6697 this.attachPlugins(me.Plugins), 6698 this.trigger("init"), 6699 this.updateMetrics(), 6700 this.attachEvents(), 6701 this.trigger("ready"), 6702 !1 === this.option("centerOnStart") ? (this.state = "ready") : this.panTo({ friction: 0 }), 6703 (e.__Panzoom = this); 6704 } 6705 initLayout() { 6706 const e = this.$container; 6707 if (!(e instanceof HTMLElement)) throw new Error("Panzoom: Container not found"); 6708 const t = this.option("content") || e.querySelector(".panzoom__content"); 6709 if (!t) throw new Error("Panzoom: Content not found"); 6710 this.$content = t; 6711 let n = this.option("viewport") || e.querySelector(".panzoom__viewport"); 6712 n || !1 === this.option("wrapInner") || ((n = document.createElement("div")), n.classList.add("panzoom__viewport"), n.append(...e.childNodes), e.appendChild(n)), (this.$viewport = n || t.parentNode); 6713 } 6714 resetValues() { 6715 (this.updateRate = this.option("updateRate", /iPhone|iPad|iPod|Android/i.test(navigator.userAgent) ? 250 : 24)), 6716 (this.container = { width: 0, height: 0 }), 6717 (this.viewport = { width: 0, height: 0 }), 6718 (this.content = { origWidth: 0, origHeight: 0, width: 0, height: 0, x: this.option("x", 0), y: this.option("y", 0), scale: this.option("baseScale") }), 6719 (this.transform = { x: 0, y: 0, scale: 1 }), 6720 this.resetDragPosition(); 6721 } 6722 onLoad(e) { 6723 this.updateMetrics(), this.panTo({ scale: this.option("baseScale"), friction: 0 }), this.trigger("load", e); 6724 } 6725 onClick(e) { 6726 if (e.defaultPrevented) return; 6727 if (document.activeEle
6727ment && document.activeElement.closest("[contenteditable]")) return; 6728 if (this.option("textSelection") && window.getSelection().toString().length && (!e.target || !e.target.hasAttribute("data-fancybox-close"))) return void e.stopPropagation(); 6729 const t = this.$content.getClientRects()[0]; 6730 if ("ready" !== this.state && (this.dragPosition.midPoint || Math.abs(t.top - this.dragStart.rect.top) > 1 || Math.abs(t.left - this.dragStart.rect.left) > 1)) return e.preventDefault(), void e.stopPropagation(); 6731 !1 !== this.trigger("click", e) && this.option("zoom") && "toggleZoom" === this.option("click") && (e.preventDefault(), e.stopPropagation(), this.zoomWithClick(e)); 6732 } 6733 onWheel(e) { 6734 !1 !== this.trigger("wheel", e) && this.option("zoom") && this.option("wheel") && this.zoomWithWheel(e); 6735 } 6736 zoomWithWheel(e) { 6737 void 0 === this.changedDelta && (this.changedDelta = 0); 6738 const t = Math.max(-1, Math.min(1, -e.deltaY || -e.deltaX || e.wheelDelta || -e.detail)), 6739 n = this.content.scale; 6740 let i = (n * (100 + t * this.option("wheelFactor"))) / 100; 6741 if ( 6742 ((t < 0 && Math.abs(n - this.option("minScale")) < 0.01) || (t > 0 && Math.abs(n - this.option("maxScale")) < 0.01) 6743 ? ((this.changedDelta += Math.abs(t)), (i = n)) 6744 : ((this.changedDelta = 0), (i = Math.max(Math.min(i, this.option("maxScale")), this.option("minScale")))), 6745 this.changedDelta > this.option("wheelLimit")) 6746 ) 6747 return; 6748 if ((e.preventDefault(), i === n)) return; 6749 const s = this.$content.getBoundingClientRect(), 6750 o = e.clientX - s.left, 6751 r = e.clientY - s.top; 6752 this.zoomTo(i, { x: o, y: r }); 6753 } 6754 zoomWithClick(e) { 6755 const t = this.$content.getClientRects()[0], 6756 n = e.clientX - t.left, 6757 i = e.clientY - t.top; 6758 this.toggleZoom({ x: n, y: i }); 6759 } 6760 attachEvents() { 6761 this.$content.addEventListener("load", this.onLoad), 6762 this.$container.addEventListener("wheel", this.onWheel, { passive: !1 }), 6763 this.$container.addEventListener("click", this.onClick, { passive: !1 }), 6764 this.initObserver(); 6765 const e = new pe(this.$container, { 6766 start: (t, n) => { 6767 if (!this.option("touch")) return !1; 6768 if (this.velocity.scale < 0) return !1; 6769 const i = n.composedPath()[0]; 6770 if (!e.currentPointers.length) { 6771 if (-1 !== ["BUTTON", "TEXTAREA", "OPTION", "INPUT", "SELECT", "VIDEO"].indexOf(i.nodeName)) return !1; 6772 if ( 6773 this.option("textSelection") && 6774 ((e, t, n) => { 6775 const i = e.childNodes, 6776 s = document.createRange(); 6777 for (let e = 0; e < i.length; e++) { 6778 const o = i[e]; 6779 if (o.nodeType !== Node.TEXT_NODE) continue; 6780 s.selectNodeContents(o); 6781 const r = s.getBoundingClientRect(); 6782 if (t >= r.left && n >= r.top && t <= r.right && n <= r.bottom) return o; 6783 } 6784 return !1; 6785 })(i, t.clientX, t.clientY) 6786 ) 6787 return !1; 6788 } 6789 return ( 6790 !le(i) && 6791 !1 !== this.trigger("touchStart", n) && 6792 ("mousedown" === n.type && n.preventDefault(), (this.state = "pointerdown"), this.resetDragPosition(), (this.dragPosition.midPoint = null), (this.dragPosition.time = Date.now()), !0) 6793 ); 6794 }, 6795 move: (t, n, i) => { 6796 if ("pointerdown" !== this.state) return; 6797 if (!1 === this.trigger("touchMove", i)) return void i.preventDefault(); 6798 if (n.length < 2 && !0 === this.option("panOnlyZoomed") && this.content.width <= this.viewport.width && this.content.height <= this.viewport.height && this.transform.scale <= this.option("baseScale")) return; 6799 if (n.length > 1 && (!this.option("zoom") || !1 === this.option("pinchToZoom"))) return; 6800 const s = ue(t[0], t[1]), 6801 o = ue(n[0], n[1]), 6802 r = o.clientX - s.clientX, 6803 a = o.clientY - s.clientY, 6804 l = he(t[0], t[1]), 6805 c = he(n[0], n[1]), 6806 d = l && c ? c / l : 1; 6807 (this.dragOffset.x += r), (this.dragOffset.y += a), (this.dragOffset.scale *= d), (this.dragOffset.time = Date.now() - this.dragPosition.time); 6808 const h = 1 === this.dragStart.scale && this.option("lockAxis"); 6809 if (h && !this.lockAxis) { 6810 if (Math.abs(this.dragOffset.x) < 6 && Math.abs(this.dragOffset.y) < 6) return void i.preventDefault(); 6811 const e = Math.abs((180 * Math.atan2(this.dragOffset.y, this.dragOffset.x)) / Math.PI); 6812 this.lockAxis = e > 45 && e < 135 ? "y" : "x"; 6813 }
6814 if ("xy" === h || "y" !== this.lockAxis) { 6815 if ( 6816 (i.preventDefault(), 6817 i.stopPropagation(), 6818 i.stopImmediatePropagation(), 6819 this.lockAxis && (this.dragOffset["x" === this.lockAxis ? "y" : "x"] = 0), 6820 this.$container.classList.add(this.option("draggingClass")), 6821 (this.transform.scale === this.option("baseScale") && "y" === this.lockAxis) || (this.dragPosition.x = this.dragStart.x + this.dragOffset.x), 6822 (this.transform.scale === this.option("baseScale") && "x" === this.lockAxis) || (this.dragPosition.y = this.dragStart.y + this.dragOffset.y), 6823 (this.dragPosition.scale = this.dragStart.scale * this.dragOffset.scale), 6824 n.length > 1) 6825 ) { 6826 const t = ue(e.startPointers[0], e.startPointers[1]), 6827 n = t.clientX - this.dragStart.rect.x, 6828 i = t.clientY - this.dragStart.rect.y, 6829 { deltaX: s, deltaY: r } = this.getZoomDelta(this.content.scale * this.dragOffset.scale, n, i); 6830 (this.dragPosition.x -= s), (this.dragPosition.y -= r), (this.dragPosition.midPoint = o); 6831 } else this.setDragResistance(); 6832 (this.transform = { x: this.dragPosition.x, y: this.dragPosition.y, scale: this.dragPosition.scale }), this.startAnimation(); 6833 } 6834 }, 6835 end: (t, n) => { 6836 if ("pointerdown" !== this.state) return; 6837 if (((this._dragOffset = { ...this.dragOffset }), e.currentPointers.length)) return void this.resetDragPosition(); 6838 if (((this.state = "decel"), (this.friction = this.option("decelFriction")), this.recalculateTransform(), this.$container.classList.remove(this.option("draggingClass")), !1 === this.trigger("touchEnd", n))) 6839 return; 6840 if ("decel" !== this.state) return; 6841 const i = this.option("minScale"); 6842 if (this.transform.scale < i) return void this.zoomTo(i, { friction: 0.64 }); 6843 const s = this.option("maxScale"); 6844 if (this.transform.scale - s > 0.01) { 6845 const e = this.dragPosition.midPoint || t, 6846 n = this.$content.getClientRects()[0]; 6847 this.zoomTo(s, { friction: 0.64, x: e.clientX - n.left, y: e.clientY - n.top }); 6848 } 6849 }, 6850 }); 6851 this.pointerTracker = e; 6852 } 6853 initObserver() { 6854 this.resizeObserver || 6855 ((this.resizeObserver = new ce(() => { 6856 this.updateTimer || 6857 (this.updateTimer = setTimeout(() => { 6858 const e = this.$container.getBoundingClientRect(); 6859 e.width && e.height 6860 ? ((Math.abs(e.width - this.container.width) > 1 || Math.abs(e.height - this.container.height) > 1) && 6861 (this.isAnimating() && this.endAnimation(!0), this.updateMetrics(), this.panTo({ x: this.content.x, y: this.content.y, scale: this.option("baseScale"), friction: 0 })), 6862 (this.updateTimer = null)) 6863 : (this.updateTimer = null); 6864 }, this.updateRate)); 6865 })), 6866 this.resizeObserver.observe(this.$container)); 6867 } 6868 resetDragPosition() { 6869 (this.lockAxis = null), (this.friction = this.option("friction")), (this.velocity = { x: 0, y: 0, scale: 0 }); 6870 const { x: e, y: t, scale: n } = this.content; 6871 (this.dragStart = { rect: this.$content.getBoundingClientRect(), x: e, y: t, scale: n }), (this.dragPosition = { ...this.dragPosition, x: e, y: t, scale: n }), (this.dragOffset = { x: 0, y: 0, scale: 1, time: 0 }); 6872 } 6873 updateMetrics(e) { 6874 !0 !== e && this.trigger("beforeUpdate"); 6875 const t = this.$container, 6876 n = this.$content, 6877 i = this.$viewport, 6878 s = n instanceof HTMLImageElement, 6879 o = this.option("zoom"), 6880 r = this.option("resizeParent", o); 6881 let a = this.option("width"), 6882 l = this.option("height"), 6883 c = a || ((d = n), Math.max(parseFloat(d.naturalWi
6883dth || 0), parseFloat((d.width && d.width.baseVal && d.width.baseVal.value) || 0), parseFloat(d.offsetWidth || 0), parseFloat(d.scrollWidth || 0))); 6884 var d; 6885 let h = l || ((e) => Math.max(parseFloat(e.naturalHeight || 0), parseFloat((e.height && e.height.baseVal && e.height.baseVal.value) || 0), parseFloat(e.offsetHeight || 0), parseFloat(e.scrollHeight || 0)))(n); 6886 Object.assign(n.style, { width: a ? `${a}px` : "", height: l ? `${l}px` : "", maxWidth: "", maxHeight: "" }), r && Object.assign(i.style, { width: "", height: "" }); 6887 const u = this.option("ratio"); 6888 (c = ae(c * u)), (h = ae(h * u)), (a = c), (l = h); 6889 const p = n.getBoundingClientRect(), 6890 f = i.getBoundingClientRect(), 6891 g = i == t ? f : t.getBoundingClientRect(); 6892 let m = Math.max(i.offsetWidth, ae(f.width)), 6893 v = Math.max(i.offsetHeight, ae(f.height)), 6894 b = window.getComputedStyle(i); 6895 if (((m -= parseFloat(b.paddingLeft) + parseFloat(b.paddingRight)), (v -= parseFloat(b.paddingTop) + parseFloat(b.paddingBottom)), (this.viewport.width = m), (this.viewport.height = v), o)) { 6896 if (Math.abs(c - p.width) > 0.1 || Math.abs(h - p.height) > 0.1) { 6897 const e = ((e, t, n, i) => { 6898 const s = Math.min(n / e || 0, i / t); 6899 return { width: e * s || 0, height: t * s || 0 }; 6900 })(c, h, Math.min(c, p.width), Math.min(h, p.height)); 6901 (a = ae(e.width)), (l = ae(e.height)); 6902 } 6903 Object.assign(n.style, { width: `${a}px`, height: `${l}px`, transform: "" }); 6904 } 6905 if ((r && (Object.assign(i.style, { width: `${a}px`, height: `${l}px` }), (this.viewport = { ...this.viewport, width: a, height: l })), s && o && "function" != typeof this.options.maxScale)) { 6906 const e = this.option("maxScale"); 6907 this.options.maxScale = function () { 6908 return this.content.origWidth > 0 && this.content.fitWidth > 0 ? this.content.origWidth / this.content.fitWidth : e; 6909 }; 6910 } 6911 (this.content = { ...this.content, origWidth: c, origHeight: h, fitWidth: a, fitHeight: l, width: a, height: l, scale: 1, isZoomable: o }), 6912 (this.container = { width: g.width, height: g.height }), 6913 !0 !== e && this.trigger("afterUpdate"); 6914 } 6915 zoomIn(e) { 6916 this.zoomTo(this.content.scale + (e || this.option("step"))); 6917 } 6918 zoomOut(e) { 6919 this.zoomTo(this.content.scale - (e || this.option("step"))); 6920 } 6921 toggleZoom(e = {}) { 6922 const t = this.option("maxScale"), 6923 n = this.option("baseScale"), 6924 i = this.content.scale > n + 0.5 * (t - n) ? n : t; 6925 this.zoomTo(i, e); 6926 } 6927 zoomTo(e = this.option("baseScale"), { x: t = null, y: n = null } = {}) { 6928 e = Math.max(Math.min(e, this.option("maxScale")), this.option("minScale")); 6929 const i = ae(this.content.scale / (this.content.width / this.content.fitWidth), 1e7); 6930 null === t && (t = this.content.width * i * 0.5), null === n && (n = this.content.height * i * 0.5); 6931 const { deltaX: s, deltaY: o } = this.getZoomDelta(e, t, n); 6932 (t = this.content.x - s), (n = this.content.y - o), this.panTo({ x: t, y: n, scale: e, friction: this.option("zoomFriction") }); 6933 } 6934 getZoomDelta(e, t = 0, n = 0) { 6935 const i = this.content.fitWidth * this.content.scale, 6936 s = this.content.fitHeight * this.content.scale, 6937 o = t > 0 && i ? t / i : 0, 6938 r = n > 0 && s ? n / s : 0; 6939 return { deltaX: (this.content.fitWidth * e - i) * o, deltaY: (this.content.fitHeight * e - s) * r }; 6940 } 6941 panTo({ x: e = this.content.x, y: t = this.content.y, scale: n, friction: i = this.option("friction"), ignoreBounds: s = !1 } = {}) { 6942 if (((n = n || this.content.scale || 1), !s)) { 6943 const { boundX: i, boundY: s } = this.getBounds(n); 6944 i && (e = Math.max(Math.min(e, i.to), i.from)), s && (t = Math.max(Math.min(t, s.to), s.from)); 6945 } 6946 (this.friction = i), 6947 (this.transform = { ...this.transform, x: e, y: t, scale: n }), 6948 i 6949 ? ((this.state = "panning"), 6950 (this.velocity = { x: (1 / this.friction - 1) * (e - this.content.x), y: (1 / this.friction - 1) * (t - this.content.y), scale: (1 / this.friction - 1) * (n - this.content.scale) }), 6951 this.startAnimation()) 6952 : this.endAnimation(); 6953 } 6954 startAnimation() { 6955 this.rAF ? cancelAnimationFrame(this.rAF) : this.trigger("startAnimation"), (this.rAF = requestAnimationFrame(() => this.animate())); 6956 } 6957 animate() { 6958 if ( 6959 (this.setEdgeForce(), 6960 this.setDragForce(), 6961 (this.velocity.x *= this.friction), 6962 (this.velocity.y *= this.friction), 6963 (this.velocity.scale *= this.friction), 6964 (this.content.x += this.velocity.x), 6965 (this.content.y += this.velocity.y), 6966 (this.content.scale += this.velocity.scale), 6967 this.isAnimating()) 6968 ) 6969 this.setTransform(); 6970 else if ("pointerdown" !== this.state) return void this.endAnimation(); 6971 this.rAF = requestAnimationFrame(() => this.animate()); 6972 } 6973 getBounds(e) { 6974 let t = this.boundX, 6975 n = this.boundY; 6976 if (void 0 !== t && void 0 !== n) return { boundX: t, boundY: n }; 6977 (t = { from: 0, to: 0 }), (n = { from: 0, to: 0 }), (e = e || this.transform.scale); 6978 const i = this.content.fitWidth * e, 6979 s = this.content.fitHeight * e, 6980 o = this.viewport.width, 6981 r = this.viewport.height; 6982 if (i < o) { 6983 const e = ae(0.5 * (o - i)); 6984 (t.from = e), (t.to = e); 6985 } else t.from = ae(o - i); 6986 if (s < r) { 6987 const e = 0.5 * (r - s); 6988 (n.from = e), (n.to = e); 6989 } else n.from = ae(r - s); 6990 return { boundX: t, boundY: n }; 6991 } 6992 setEdgeForce() { 6993 if ("decel" !== this.state) return; 6994 const e = this.option("bounceForce"), 6995 { boundX: t, boundY: n } = this.getBounds(Math.max(this.transform.scale, this.content.scale)); 6996 let i, s, o, r; 6997 if ((t && ((i = this.content.x < t.from), (s = this.content.x > t.to)), n && ((o = this.content.y < n.from), (r = this.content.y > n.to)), i || s)) { 6998 let n = ((i ? t.from : t.to) - this.content.x) * e; 6999 const s = this.content.x + (this.velocity.x + n) / this.friction; 7000 s >= t.from && s <= t.to && (n += this.velocity.x), (this.velocity.x = n), this.recalculateTransform(); 7001 } 7002 if (o || r) { 7003 let t = ((o ? n.from : n.to) - this.content.y) * e; 7004 const i = this.content.y + (t + this.velocity.y) / this.friction; 7005 i >= n.from && i <= n.to && (t += this.velocity.y), (this.velocity.y = t), this.recalculateTransform(); 7006 } 7007 } 7008 setDragResistance() { 7009 if ("pointerdown" !== this.state) return; 7010 const { boundX: e, boundY: t } = this.getBounds(this.dragPosition.scale); 7011 let n, i, s, o; 7012 if ((e && ((n = this.dragPosition.x < e.from), (i = this.dragPosition.x > e.to)), t && ((s = this.dragPosition.y < t.from), (o = this.dragPosition.y > t.to)), (n || i) && (!n || !i))) { 7013 const t = n ? e.from : e.to, 7014 i = t - this.dragPosition.x; 7015 this.dragPosition.x = t - 0.3 * i; 7016 } 7017 if ((s || o) && (!s || !o)) { 7018 const e = s ? t.from : t.to, 7019 n = e - this.dragPosition.y; 7020 this.dragPosition.y = e - 0.3 * n; 7021 } 7022 } 7023 setDragForce() { 7024 "pointerdown" === this.state && ((this.velocity.x = this.dragPosition.x - this.content.x), (this.velocity.y = this.dragPosition.y - this.content.y), (this.velocity.scale = this.dragPosition.scale - this.content.scale)); 7025 } 7026 recalculateTransform() { 7027 (this.transform.x = this.content.x + this.velocity.x / (1 / this.friction - 1)), 7028 (this.transform.y = this.content.y + this.velocity.y / (1 / this.friction - 1)), 7029 (this.transform.scale = this.content.scale + this.velocity.scale / (1 / this.friction - 1)); 7030 } 7031 isAnimating() { 7032 return !(!this.friction || !(Math.abs(this.velocity.x) > 0.05 || Math.abs(this.velocity.y) > 0.05 || Math.abs(this.velocity.scale) > 0.05)); 7033 } 7034 setTransform(e) { 7035 let t, n, i; 7036 if ( 7037 (e 7038 ? ((t = ae(this.transform.x)), (n = ae(this.transform.y)), (i = this.transform.scale), (this.content = { ...this.content, x: t, y: n, scale: i })) 7039 : ((t = ae(this.content.x)), (n = ae(this.content.y)), (i = this.content.scale / (this.content.width / this.content.fitWidth)), (this.content = { ...this.content, x: t, y: n })), 7040 this.trigger("beforeTransform"), 7041 (t = ae(this.content.x)), 7042 (n = ae(this.content.y)), 7043 e && this.option("zoom")) 7044 ) { 7045 let e, s; 7046 (e = ae(this.content.fitWidth * i)), 7047 (s = ae(this.content.fitHeight * i)), 7048 (this.content.width = e), 7049 (this.content.height = s), 7050 (this.transform = { ...this.transform, width: e, height: s, scale: i }), 7051 Object.assign(this.$content.style, { width: `${e}px`, height: `${s}px`, maxWidth: "none", maxHeight: "none", transform: `translate3d(${t}px, ${n}px, 0) scale(1)` }); 7052 } else this.$content.style.transform = `translate3d(${t}px, ${n}px, 0) scale(${i})`; 7053 this.trigger("afterTransform"); 7054 } 7055 endAnimation(e) { 7056 cancelAnimationFrame(this.rAF), (this.rAF = null), (this.velocity = { x: 0, y: 0, scale: 0 }), this.setTransform(!0), (this.state = "ready"), this.handleCursor(
7056), !0 !== e && this.trigger("endAnimation"); 7057 } 7058 handleCursor() { 7059 const e = this.option("draggableClass"); 7060 e && 7061 this.option("touch") && 7062 (1 == this.option("panOnlyZoomed") && this.content.width <= this.viewport.width && this.content.height <= this.viewport.height && this.transform.scale <= this.option("baseScale") 7063 ? this.$container.classList.remove(e) 7064 : this.$container.classList.add(e)); 7065 } 7066 detachEvents() { 7067 this.$content.removeEventListener("load", this.onLoad), 7068 this.$container.removeEventListener("wheel", this.onWheel, { passive: !1 }), 7069 this.$container.removeEventListener("click", this.onClick, { passive: !1 }), 7070 this.pointerTracker && (this.pointerTracker.stop(), (this.pointerTracker = null)), 7071 this.resizeObserver && (this.resizeObserver.disconnect(), (this.resizeObserver = null)); 7072 } 7073 destroy() { 7074 "destroy" !== this.state && 7075 ((this.state = "destroy"), clearTimeout(this.updateTimer), (this.updateTimer = null), cancelAnimationFrame(this.rAF), (this.rAF = null), this.detachEvents(), this.detachPlugins(), this.resetDragPosition()); 7076 } 7077 } 7078 (me.version = "4.0.31"), (me.Plugins = {}); 7079 const ve = (e, t) => { 7080 let n = 0; 7081 return function (...i) { 7082 const s = new Date().getTime(); 7083 if (!(s - n < t)) return (n = s), e(...i); 7084 }; 7085 }; 7086 class be { 7087 constructor(e) { 7088 (this.$container = null), (this.$prev = null), (this.$next = null), (this.carousel = e), (this.onRefresh = this.onRefresh.bind(this)); 7089 } 7090 option(e) { 7091 return this.carousel.option(`Navigation.${e}`); 7092 } 7093 createButton(e) { 7094 const t = document.createElement("button"); 7095 t.setAttribute("title", this.carousel.localize(`{{${e.toUpperCase()}}}`)); 7096 const n = this.option("classNames.button") + " " + this.option(`classNames.${e}`); 7097 return ( 7098 t.classList.add(...n.split(" ")), 7099 t.setAttribute("tabindex", "0"), 7100 (t.innerHTML = this.carousel.localize(this.option(`${e}Tpl`))), 7101 t.addEventListener("click", (t) => { 7102 t.preventDefault(), t.stopPropagation(), this.carousel["slide" + ("next" === e ? "Next" : "Prev")](); 7103 }), 7104 t 7105 ); 7106 } 7107 build() { 7108 this.$container || ((this.$container = document.createElement("div")), this.$container.classList.add(...this.option("classNames.main").split(" ")), this.carousel.$container.appendChild(this.$container)), 7109 this.$next || ((this.$next = this.createButton("next")), this.$container.appendChild(this.$next)), 7110 this.$prev || ((this.$prev = this.createButton("prev")), this.$container.appendChild(this.$prev)); 7111 } 7112 onRefresh() { 7113 const e = this.carousel.pages.length; 7114 e <= 1 || (e > 1 && this.carousel.elemDimWidth < this.carousel.wrapDimWidth && !Number.isInteger(this.carousel.option("slidesPerPage"))) 7115 ? this.cleanup() 7116 : (this.build(), 7117 this.$prev.removeAttribute("disabled"), 7118 this.$next.removeAttribute("disabled"), 7119 this.carousel.option("infiniteX", this.carousel.option("infinite")) || (this.carousel.page <= 0 && this.$prev.setAttribute("disabled", ""), this.carousel.page >= e - 1 && this.$next.setAttribute("disabled", ""))); 7120 } 7121 cleanup() { 7122 this.$prev && this.$prev.remove(), (this.$prev = null), this.$next && this.$next.remove(), (this.$next = null), this.$container && this.$container.remove(), (this.$container = null); 7123 } 7124 attach() { 7125 this.carousel.on("refresh change", this.onRefresh); 7126 } 7127 detach() { 7128 this.carousel.off("refresh change", this.onRefresh), this.cleanup(); 7129 } 7130 } 7131 be.defaults = { 7132 prevTpl: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" tabindex="-1"><path d="M15 3l-9 9 9 9"/></svg>', 7133 nextTpl: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" tabindex="-1"><path d="M9 3l9 9-9 9"/></svg>', 7134 classNames: { main: "carousel__nav", button: "carousel__button", next: "is-next", prev: "is-prev" }, 7135 }; 7136 class ye { 7137 constructor(e) { 7138 (this.carousel = e), 7139 (this.selectedIndex = null),
7140 (this.friction = 0), 7141 (this.onNavReady = this.onNavReady.bind(this)), 7142 (this.onNavClick = this.onNavClick.bind(this)), 7143 (this.onNavCreateSlide = this.onNavCreateSlide.bind(this)), 7144 (this.onTargetChange = this.onTargetChange.bind(this)); 7145 } 7146 addAsTargetFor(e) { 7147 (this.target = this.carousel), (this.nav = e), this.attachEvents(); 7148 } 7149 addAsNavFor(e) { 7150 (this.target = e), (this.nav = this.carousel), this.attachEvents(); 7151 } 7152 attachEvents() { 7153 (this.nav.options.initialSlide = this.target.options.initialPage), 7154 this.nav.on("ready", this.onNavReady), 7155 this.nav.on("createSlide", this.onNavCreateSlide), 7156 this.nav.on("Panzoom.click", this.onNavClick), 7157 this.target.on("change", this.onTargetChange), 7158 this.target.on("Panzoom.afterUpdate", this.onTargetChange); 7159 } 7160 onNavReady() { 7161 this.onTargetChange(!0); 7162 } 7163 onNavClick(e, t, n) { 7164 const i = n.target.closest(".carousel__slide"); 7165 if (!i) return; 7166 n.stopPropagation(); 7167 const s = parseInt(i.dataset.index, 10), 7168 o = this.target.findPageForSlide(s); 7169 this.target.page !== o && this.target.slideTo(o, { friction: this.friction }), this.markSelectedSlide(s); 7170 } 7171 onNavCreateSlide(e, t) { 7172 t.index === this.selectedIndex && this.markSelectedSlide(t.index); 7173 } 7174 onTargetChange() { 7175 const e = this.target.pages[this.target.page].indexes[0], 7176 t = this.nav.findPageForSlide(e); 7177 this.nav.slideTo(t), this.markSelectedSlide(e); 7178 } 7179 markSelectedSlide(e) { 7180 (this.selectedIndex = e), [...this.nav.slides].filter((e) => e.$el && e.$el.classList.remove("is-nav-selected")); 7181 const t = this.nav.slides[e]; 7182 t && t.$el && t.$el.classList.add("is-nav-selected"); 7183 } 7184 attach(e) { 7185 const t = e.options.Sync; 7186 (t.target || t.nav) && (t.target ? this.addAsNavFor(t.target) : t.nav && this.addAsTargetFor(t.nav), (this.friction = t.friction)); 7187 } 7188 detach() { 7189 this.nav && (this.nav.off("ready", this.onNavReady), this.nav.off("Panzoom.click", this.onNavClick), this.nav.off("createSlide", this.onNavCreateSlide)), 7190 this.target && (this.target.off("Panzoom.afterUpdate", this.onTargetChange), this.target.off("change", this.onTargetChange)); 7191 } 7192 } 7193 ye.defaults = { friction: 0.92 }; 7194 const we = { 7195 Navigation: be, 7196 Dots: class { 7197 constructor(e) { 7198 (this.carousel = e), (this.$list = null), (this.events = { change: this.onChange.bind(this), refresh: this.onRefresh.bind(this) }); 7199 } 7200 buildList() { 7201 if (this.carousel.pages.length < this.carousel.option("Dots.minSlideCount")) return; 7202 const e = document.createElement("ol"); 7203 return ( 7204 e.classList.add("carousel__dots"), 7205 e.addEventListener("click", (e) => { 7206 if (!("page" in e.target.dataset)) return; 7207 e.preventDefault(), e.stopPropagation(); 7208 const t = parseInt(e.target.dataset.page, 10), 7209 n = this.carousel; 7210 t !== n.page && (n.pages.length < 3 && n.option("infinite") ? n[0 == t ? "slidePrev" : "slideNext"]() : n.slideTo(t)); 7211 }), 7212 (this.$list = e), 7213 this.carousel.$container.appendChild(e), 7214 this.carousel.$container.classList.add("has-dots"), 7215 e 7216 ); 7217 } 7218 removeList() { 7219 this.$list && (this.$list.parentNode.removeChild(this.$list), (this.$list = null)), this.carousel.$container.classList.remove("has-dots"); 7220 } 7221 rebuildDots() { 7222 let e = this.$list; 7223 const t = !!e, 7224 n = this.carousel.pages.length; 7225 if (n < 2) return void (t && this.removeList()); 7226 t || (e = this.buildList()); 7227 const i = this.$list.children.length; 7228 if (i > n) for (let e = n; e < i; e++) this.$list.removeChild(this.$list.lastChild); 7229 else { 7230 for (let e = i; e < n; e++) { 7231 const t = document.createElement("li"); 7232 t.classList.add("carousel__dot"), 7233 (t.dataset.page = e), 7234 t.setAttribute("role", "button"), 7235 t.setAttribute("tabindex", "0"), 7236 t.setAttribute("title", this.carousel.localize("{{GOTO}}", [["%d", e + 1]])), 7237 t.addEventListener("keydown", (e) => { 7238 const n = e.code; 7239 let i; 7240 "Enter" === n || "NumpadEnter" === n ? (i = t) : "ArrowRight" === n ? (i = t.nextSibling) : "ArrowLeft" === n && (i = t.previousSibling), i && i.click(); 7241 }), 7242 this.$list.appendChild(t); 7243 } 7244 this.setActiveDot(); 7245 } 7246 }
7247 setActiveDot() { 7248 if (!this.$list) return; 7249 this.$list.childNodes.forEach((e) => { 7250 e.classList.remove("is-selected"); 7251 }); 7252 const e = this.$list.childNodes[this.carousel.page]; 7253 e && e.classList.add("is-selected"); 7254 } 7255 onChange() { 7256 this.setActiveDot(); 7257 } 7258 onRefresh() { 7259 this.rebuildDots(); 7260 } 7261 attach() { 7262 this.carousel.on(this.events); 7263 } 7264 detach() { 7265 this.removeList(), this.carousel.off(this.events), (this.carousel = null); 7266 } 7267 }, 7268 Sync: ye, 7269 }, 7270 xe = { 7271 slides: [], 7272 preload: 0, 7273 slidesPerPage: "auto", 7274 initialPage: null, 7275 initialSlide: null, 7276 friction: 0.92, 7277 center: !0, 7278 infinite: !0, 7279 fill: !0, 7280 dragFree: !1, 7281 prefix: "", 7282 classNames: { viewport: "carousel__viewport", track: "carousel__track", slide: "carousel__slide", slideSelected: "is-selected" }, 7283 l10n: { NEXT: "Next slide", PREV: "Previous slide", GOTO: "Go to slide #%d" }, 7284 }; 7285 class _e extends fe { 7286 constructor(e, t = {}) { 7287 if ((super((t = re(!0, {}, xe, t))), (this.state = "init"), (this.$container = e), !(this.$container instanceof HTMLElement))) throw new Error("No root element provided"); 7288 (this.slideNext = ve(this.slideNext.bind(this), 250)), (this.slidePrev = ve(this.slidePrev.bind(this), 250)), this.init(), (e.__Carousel = this); 7289 } 7290 init() { 7291 (this.pages = []), 7292 (this.page = this.pageIndex = null), 7293 (this.prevPage = this.prevPageIndex = null), 7294 this.attachPlugins(_e.Plugins), 7295 this.trigger("init"), 7296 this.initLayout(), 7297 this.initSlides(), 7298 this.updateMetrics(), 7299 this.$track && this.pages.length && (this.$track.style.transform = `translate3d(${-1 * this.pages[this.page].left}px, 0px, 0) scale(1)`), 7300 this.manageSlideVisiblity(), 7301 this.initPanzoom(), 7302 (this.state = "ready"), 7303 this.trigger("ready"); 7304 } 7305 initLayout() { 7306 const e = this.option("prefix"), 7307 t = this.option("classNames"); 7308 (this.$viewport = this.option("viewport") || this.$container.querySelector(`.${e}${t.viewport}`)), 7309 this.$viewport || 7310 ((this.$viewport = document.createElement("div")), this.$viewport.classList.add(...(e + t.viewport).split(" ")), this.$viewport.append(...this.$container.childNodes), this.$container.appendChild(this.$viewport)), 7311 (this.$track = this.option("track") || this.$container.querySelector(`.${e}${t.track}`)), 7312 this.$track || ((this.$track = document.createElement("div")), this.$track.classList.add(...(e + t.track).split(" ")), this.$track.append(...this.$viewport.childNodes), this.$viewport.appendChild(this.$track)); 7313 } 7314 initSlides() { 7315 (this.slides = []), 7316 this.$viewport.querySelectorAll(`.${this.option("prefix")}${this.option("classNames.slide")}`).forEach((e) => { 7317 const t = { $el: e, isDom: !0 }; 7318 this.slides.push(t), this.trigger("createSlide", t, this.slides.length); 7319 }), 7320 Array.isArray(this.options.slides) && (this.slides = re(!0, [...this.slides], this.options.slides)); 7321 } 7322 updateMetrics() { 7323 let e, 7324 t = 0, 7325 n = [];
7326 this.slides.forEach((i, s) => { 7327 const o = i.$el, 7328 r = i.isDom || !e ? this.getSlideMetrics(o) : e; 7329 (i.index = s), (i.width = r), (i.left = t), (e = r), (t += r), n.push(s); 7330 }); 7331 let i = Math.max(this.$track.offsetWidth, ae(this.$track.getBoundingClientRect().width)), 7332 s = getComputedStyle(this.$track); 7333 (i -= parseFloat(s.paddingLeft) + parseFloat(s.paddingRight)), (this.contentWidth = t), (this.viewportWidth = i); 7334 const o = [], 7335 r = this.option("slidesPerPage"); 7336 if (Number.isInteger(r) && t > i) for (let e = 0; e < this.slides.length; e += r) o.push({ indexes: n.slice(e, e + r), slides: this.slides.slice(e, e + r) }); 7337 else { 7338 let e = 0, 7339 t = 0; 7340 for (let n = 0; n < this.slides.length; n += 1) { 7341 let s = this.slides[n]; 7342 (!o.length || t + s.width > i) && (o.push({ indexes: [], slides: [] }), (e = o.length - 1), (t = 0)), (t += s.width), o[e].indexes.push(n), o[e].slides.push(s); 7343 } 7344 } 7345 const a = this.option("center"), 7346 l = this.option("fill"); 7347 o.forEach((e, n) => { 7348 (e.index = n), 7349 (e.width = e.slides.reduce((e, t) => e + t.width, 0)), 7350 (e.left = e.slides[0].left), 7351 a && (e.left += 0.5 * (i - e.width) * -1), 7352 l && !this.option("infiniteX", this.option("infinite")) && t > i && ((e.left = Math.max(e.left, 0)), (e.left = Math.min(e.left, t - i))); 7353 }); 7354 const c = []; 7355 let d; 7356 o.forEach((e) => { 7357 const t = { ...e }; 7358 d && t.left === d.left ? ((d.width += t.width), (d.slides = [...d.slides, ...t.slides]), (d.indexes = [...d.indexes, ...t.indexes])) : ((t.index = c.length), (d = t), c.push(t)); 7359 }), 7360 (this.pages = c); 7361 let h = this.page; 7362 if (null === h) { 7363 const e = this.option("initialSlide"); 7364 (h = null !== e ? this.findPageForSlide(e) : parseInt(this.option("initialPage", 0), 10) || 0), c[h] || (h = c.length && h > c.length ? c[c.length - 1].index : 0), (this.page = h), (this.pageIndex = h); 7365 } 7366 this.updatePanzoom(), this.trigger("refresh"); 7367 } 7368 getSlideMetrics(e) { 7369 if (!e) { 7370 const t = this.slides[0]; 7371 ((e = document.createElement("div")).dataset.isTestEl = 1), 7372 (e.style.visibility = "hidden"), 7373 e.classList.add(...(this.option("prefix") + this.option("classNames.slide")).split(" ")), 7374 t.customClass && e.classList.add(...t.customClass.split(" ")), 7375 this.$track.prepend(e); 7376 } 7377 let t = Math.max(e.offsetWidth, ae(e.getBoundingClientRect().width)); 7378 const n = e.currentStyle || window.getComputedStyle(e); 7379 return (t = t + (parseFloat(n.marginLeft) || 0) + (parseFloat(n.marginRight) || 0)), e.dataset.isTestEl && e.remove(), t; 7380 } 7381 findPageForSlide(e) { 7382 e = parseInt(e, 10) || 0; 7383 const t = this.pages.find((t) => t.indexes.indexOf(e) > -1); 7384 return t ? t.index : null; 7385 } 7386 slideNext() { 7387 this.slideTo(this.pageIndex + 1); 7388 } 7389 slidePrev() { 7390 this.slideTo(this.pageIndex - 1); 7391 } 7392 slideTo(e, t = {}) { 7393 const { x: n = -1 * this.setPage(e, !0), y:
7393i = 0, friction: s = this.option("friction") } = t; 7394 (this.Panzoom.content.x === n && !this.Panzoom.velocity.x && s) || (this.Panzoom.panTo({ x: n, y: i, friction: s, ignoreBounds: !0 }), "ready" === this.state && "ready" === this.Panzoom.state && this.trigger("settle")); 7395 } 7396 initPanzoom() { 7397 this.Panzoom && this.Panzoom.destroy(); 7398 const e = re( 7399 !0, 7400 {}, 7401 { 7402 content: this.$track, 7403 wrapInner: !1, 7404 resizeParent: !1, 7405 zoom: !1, 7406 click: !1, 7407 lockAxis: "x", 7408 x: this.pages.length ? -1 * this.pages[this.page].left : 0, 7409 centerOnStart: !1, 7410 textSelection: () => this.option("textSelection", !1), 7411 panOnlyZoomed: function () { 7412 return this.content.width <= this.viewport.width; 7413 }, 7414 }, 7415 this.option("Panzoom") 7416 ); 7417 (this.Panzoom = new me(this.$container, e)), 7418 this.Panzoom.on({ 7419 "*": (e, ...t) => this.trigger(`Panzoom.${e}`, ...t), 7420 afterUpdate: () => { 7421 this.updatePage(); 7422 }, 7423 beforeTransform: this.onBeforeTransform.bind(this), 7424 touchEnd: this.onTouchEnd.bind(this), 7425 endAnimation: () => { 7426 this.trigger("settle"); 7427 }, 7428 }), 7429 this.updateMetrics(), 7430 this.manageSlideVisiblity(); 7431 } 7432 updatePanzoom() { 7433 this.Panzoom && 7434 ((this.Panzoom.content = { ...this.Panzoom.content, fitWidth: this.contentWidth, origWidth: this.contentWidth, width: this.contentWidth }), 7435 this.pages.length > 1 && this.option("infiniteX", this.option("infinite")) 7436 ? (this.Panzoom.boundX = null) 7437 : this.pages.length && (this.Panzoom.boundX = { from: -1 * this.pages[this.pages.length - 1].left, to: -1 * this.pages[0].left }), 7438 this.option("infiniteY", this.option("infinite")) ? (this.Panzoom.boundY = null) : (this.Panzoom.boundY = { from: 0, to: 0 }), 7439 this.Panzoom.handleCursor()); 7440 } 7441 manageSlideVisiblity() { 7442 const e = this.contentWidth, 7443 t = this.viewportWidth; 7444 let n = this.Panzoom ? -1 * this.Panzoom.content.x : this.pages.length ? this.pages[this.page].left : 0; 7445 const i = this.option("preload"), 7446 s = this.option("infiniteX", this.option("infinite")), 7447 o = parseFloat(getComputedStyle(this.$viewport, null).getPropertyValue("padding-left")), 7448 r = parseFloat(getComputedStyle(this.$viewport, null).getPropertyValue("padding-right")); 7449 this.slides.forEach((a) => { 7450 let l, 7451 c, 7452 d = 0; 7453 (l = n - o), (c = n + t + r), (l -= i * (t + o + r)), (c += i * (t + o + r)); 7454 const h = a.left + a.width > l && a.left < c; 7455 (l = n + e - o), (c = n + e + t + r), (l -= i * (t + o + r)); 7456 const u = s && a.left + a.width > l && a.left < c; 7457 (l = n - e - o), (c = n - e + t + r), (l -= i * (t + o + r)); 7458 const p = s && a.left + a.width > l && a.left < c; 7459 u || h || p ? (this.createSlideEl(a), h && (d = 0), u && (d = -1), p && (d = 1), a.left + a.width > n && a.left <= n + t + r && (d = 0)) : this.removeSlideEl(a), (a.hasDiff = d); 7460 }); 7461 let a = 0, 7462 l = 0;
7463 this.slides.forEach((t, n) => { 7464 let i = 0; 7465 t.$el ? (n !== a || t.hasDiff ? (i = l + t.hasDiff * e) : (l = 0), (t.$el.style.left = Math.abs(i) > 0.1 ? `${l + t.hasDiff * e}px` : ""), a++) : (l += t.width); 7466 }), 7467 this.markSelectedSlides(); 7468 } 7469 createSlideEl(e) { 7470 if (!e) return; 7471 if (e.$el) { 7472 let t = e.$el.dataset.index; 7473 if (!t || parseInt(t, 10) !== e.index) { 7474 let t; 7475 (e.$el.dataset.index = e.index), 7476 e.$el.querySelectorAll("[data-lazy-srcset]").forEach((e) => { 7477 e.srcset = e.dataset.lazySrcset; 7478 }), 7479 e.$el.querySelectorAll("[data-lazy-src]").forEach((e) => { 7480 let t = e.dataset.lazySrc; 7481 e instanceof HTMLImageElement ? (e.src = t) : (e.style.backgroundImage = `url('${t}')`); 7482 }), 7483 (t = e.$el.dataset.lazySrc) && (e.$el.style.backgroundImage = `url('${t}')`), 7484 (e.state = "ready"); 7485 } 7486 return; 7487 } 7488 const t = document.createElement("div"); 7489 (t.dataset.index = e.index), t.classList.add(...(this.option("prefix") + this.option("classNames.slide")).split(" ")), e.customClass && t.classList.add(...e.customClass.split(" ")), e.html && (t.innerHTML = e.html); 7490 const n = []; 7491 this.slides.forEach((e, t) => { 7492 e.$el && n.push(t); 7493 }); 7494 const i = e.index; 7495 let s = null; 7496 if (n.length) { 7497 let e = n.reduce((e, t) => (Math.abs(t - i) < Math.abs(e - i) ? t : e)); 7498 s = this.slides[e]; 7499 } 7500 return this.$track.insertBefore(t, s && s.$el ? (s.index < e.index ? s.$el.nextSibling : s.$el) : null), (e.$el = t), this.trigger("createSlide", e, i), e; 7501 } 7502 removeSlideEl(e) { 7503 e.$el && !e.isDom && (this.trigger("removeSlide", e), e.$el.remove(), (e.$el = null)); 7504 } 7505 markSelectedSlides() { 7506 const e = this.option("classNames.slideSelected"), 7507 t = "aria-hidden"; 7508 this.slides.forEach((n, i) => { 7509 const s = n.$el; 7510 if (!s) return; 7511 const o = this.pages[this.page]; 7512 o && o.indexes && o.indexes.indexOf(i) > -1 7513 ? (e && !s.classList.contains(e) && (s.classList.add(e), this.trigger("selectSlide", n)), s.removeAttribute(t)) 7514 : (e && s.classList.contains(e) && (s.classList.remove(e), this.trigger("unselectSlide", n)), s.setAttribute(t, !0)); 7515 }); 7516 } 7517 updatePage() { 7518 this.updateMetrics(), this.slideTo(this.page, { friction: 0 }); 7519 } 7520 onBeforeTransform() { 7521 this.option("infiniteX", this.option("infinite")) && this.manageInfiniteTrack(), this.manageSlideVisiblity(); 7522 } 7523 manageInfiniteTrack() { 7524 const e = this.contentWidth, 7525 t = this.viewportWidth; 7526 if (!this.option("infiniteX", this.option("infinite")) || this.pages.length < 2 || e < t) return; 7527 const n = this.Panzoom; 7528 let i = !1; 7529 return ( 7530 n.content.x < -1 * (e - t) && ((n.content.x += e), (this.pageIndex = this.pageIndex - this.pages.length), (i = !0)), 7531 n.content.x > t && ((n.content.x -= e), (this.pageIndex = this.pageIndex + this.pages.length), (i = !0)), 7532 i && "pointerdown" === n.state && n.resetDragPosition(), 7533 i 7534 ); 7535 } 7536 onTouchEnd(e, t) { 7537 const n = this.option("dragFree"); 7538 if (!n && this.pages.length > 1 && e.dragOffset.time < 350 && Math.abs(e.dragOffset.y) < 1 && Math.abs(e.dragOffset.x) > 5) this[e.dragOffset.x < 0 ? "slideNext" : "slidePrev"](); 7539 else if (n) { 7540 const [, t] = this.getPageFromPosition(-1 * e.transform.x); 7541 this.setPage(t); 7542 } else this.slideToClosest(); 7543 } 7544 slideToClosest(e = {}) { 7545 let [, t] = this.getPageFromPosition(-1 * this.Panzoom.content.x); 7546 this.slideTo(t, e); 7547 } 7548 getPageFromPosition(e) { 7549 const t = this.pages.length; 7550 this.option("center") && (e += 0.5 * this.viewportWidth); 7551 const n = Math.floor(e / this.contentWidth); 7552 e -= n * this.contentWidth; 7553 let i = this.slides.find((t) => t.left <= e && t.left + t.width > e); 7554 if (i) { 7555 let e = this.findPageForSlide(i.index); 7556 return [e, e + n * t]; 7557 } 7558 return [0, 0]; 7559 } 7560 setPage(e, t) { 7561 let n = 0, 7562 i = parseInt(e, 10) || 0; 7563 const s = this.page, 7564 o = this.pageIndex, 7565 r = this.pages.length, 7566 a = this.contentWidth, 7567 l = this.viewportWidth; 7568 if (((e = ((i % r) + r) % r), this.option("infiniteX", this.option("infinite")) && a > l)) { 7569 const s = Math.floor(i / r) || 0, 7570 o = a; 7571 if (((n = this.pages[e].left + s * o), !0 === t && r > 2)) { 7572 let e = -1 * this.Panzoom.content.x; 7573 const t = n - o, 7574 s = n + o, 7575 a = Math.abs(e - n), 7576 l = Math.abs(e - t), 7577 c = Math.abs(e - s); 7578 c < a && c <= l ? ((n = s), (i += r)) : l < a && l < c && ((n = t), (i -= r)); 7579 } 7580 } else (e = i = Math.max(0, Math.min(i, r - 1))), (n = this.pages.length ? this.pages[e].left : 0); 7581 return (this.page = e), (this.pageIndex = i), null !== s && e !== s && ((this.prevPage = s), (this.prevPageIndex = o), this.trigger("change", e, s)), n; 7582 } 7583 destroy() { 7584 (this.state = "destroy"),
7585 this.slides.forEach((e) => { 7586 this.removeSlideEl(e); 7587 }), 7588 (this.slides = []), 7589 this.Panzoom.destroy(), 7590 this.detachPlugins(); 7591 } 7592 } 7593 (_e.version = "4.0.31"), (_e.Plugins = we); 7594 const Ce = !("undefined" == typeof window || !window.document || !window.document.createElement); 7595 let Te = null; 7596 const Ee = [ 7597 "a[href]", 7598 "area[href]", 7599 'input:not([disabled]):not([type="hidden"]):not([aria-hidden])', 7600 "select:not([disabled]):not([aria-hidden])", 7601 "textarea:not([disabled]):not([aria-hidden])", 7602 "button:not([disabled]):not([aria-hidden])", 7603 "iframe", 7604 "object", 7605 "embed", 7606 "video", 7607 "audio", 7608 "[contenteditable]", 7609 '[tabindex]:not([tabindex^="-"]):not([disabled]):not([aria-hidden])', 7610 ], 7611 Se = (e) => { 7612 if (e && Ce) { 7613 null === Te && 7614 document.createElement("div").focus({ 7615 get preventScroll() { 7616 return (Te = !0), !1; 7617 }, 7618 }); 7619 try { 7620 if (e.setActive) e.setActive(); 7621 else if (Te) e.focus({ preventScroll: !0 }); 7622 else { 7623 const t = window.pageXOffset || document.body.scrollTop, 7624 n = window.pageYOffset || document.body.scrollLeft; 7625 e.focus(), document.body.scrollTo({ top: t, left: n, behavior: "auto" }); 7626 } 7627 } catch (e) {} 7628 } 7629 }; 7630 class Ae { 7631 constructor(e) { 7632 (this.fancybox = e), (this.$container = null), (this.state = "init"); 7633 for (const e of ["onPrepare", "onClosing", "onKeydown"]) this[e] = this[e].bind(this); 7634 this.events = { prepare: this.onPrepare, closing: this.onClosing, keydown: this.onKeydown }; 7635 } 7636 onPrepare() {
7637 this.getSlides().length < this.fancybox.option("Thumbs.minSlideCount") 7638 ? (this.state = "disabled") 7639 : !0 === this.fancybox.option("Thumbs.autoStart") && this.fancybox.Carousel.Panzoom.content.height >= this.fancybox.option("Thumbs.minScreenHeight") && this.build(); 7640 } 7641 onClosing() { 7642 this.Carousel && this.Carousel.Panzoom.detachEvents(); 7643 } 7644 onKeydown(e, t) { 7645 t === e.option("Thumbs.key") && this.toggle(); 7646 } 7647 build() { 7648 if (this.$container) return; 7649 const e = document.createElement("div"); 7650 e.classList.add("fancybox__thumbs"), 7651 this.fancybox.$carousel.parentNode.insertBefore(e, this.fancybox.$carousel.nextSibling), 7652 (this.Carousel = new _e( 7653 e, 7654 re(!0, { Dots: !1, Navigation: !1, Sync: { friction: 0 }, infinite: !1, center: !0, fill: !0, dragFree: !0, slidesPerPage: 1, preload: 1 }, this.fancybox.option("Thumbs.Carousel"), { 7655 Sync: { target: this.fancybox.Carousel }, 7656 slides: this.getSlides(), 7657 }) 7658 )), 7659 this.Carousel.Panzoom.on("wheel", (e, t) => { 7660 t.preventDefault(), this.fancybox[t.deltaY < 0 ? "prev" : "next"](); 7661 }), 7662 (this.$container = e), 7663 (this.state = "visible"); 7664 } 7665 getSlides() { 7666 const e = []; 7667 for (const t of this.fancybox.items) { 7668 const n = t.thumb; 7669 n && e.push({ html: this.fancybox.option("Thumbs.tpl").replace(/\{\{src\}\}/gi, n), customClass: `has-thumb has-${t.type || "image"}` }); 7670 } 7671 return e; 7672 } 7673 toggle() { 7674 "visible" === this.state ? this.hide() : "hidden" === this.state ? this.show() : this.build(); 7675 } 7676 show() { 7677 "hidden" === this.state && ((this.$container.style.display = ""), this.Carousel.Panzoom.attachEvents(), (this.state = "visible")); 7678 } 7679 hide() { 7680 "visible" === this.state && (this.Carousel.Panzoom.detachEvents(), (this.$container.style.display = "none"), (this.state = "hidden")); 7681 } 7682 cleanup() { 7683 this.Carousel && (this.Carousel.destroy(), (this.Carousel = null)), this.$container && (this.$container.remove(), (this.$container = null)), (this.state = "init"); 7684 } 7685 attach() { 7686 this.fancybox.on(this.events); 7687 } 7688 detach() { 7689 this.fancybox.off(this.events), this.cleanup(); 7690 } 7691 } 7692 Ae.defaults = { minSlideCount: 2, minScreenHeight: 500, autoStart: !0, key: "t", Carousel: {}, tpl: '<div class="fancybox__thumb" style="background-image:url(\'{{src}}\')"></div>' }; 7693 const ke = (e, t) => { 7694 const n = new URL(e), 7695 i = new URLSearchParams(n.search); 7696 let s = new URLSearchParams(); 7697 for (const [e, n] of [...i, ...Object.entries(t)]) "t" === e ? s.set("start", parseInt(n)) : s.set(e, n); 7698 s = s.toString(); 7699 let o = e.match(/#t=((.*)?\d+s)/); 7700 return o && (s += `#t=${o[1]}`), s; 7701 }, 7702 $e = { 7703 video: { autoplay: !0, ratio: 16 / 9 }, 7704 youtube: { autohide: 1, fs: 1, rel: 0, hd: 1, wmode: "transparent", enablejsapi: 1, html5: 1 }, 7705 vimeo: { hd: 1, show_title: 1, show_byline: 1, show_portrait: 0, fullscreen: 1 }, 7706 html5video: { 7707 tpl: 7708 '<video class="fancybox__html5video" playsinline controls controlsList="nodownload" poster="{{poster}}">\n <source src="{{src}}" type="{{format}}" />Sorry, your browser doesn\'t support embedded videos.</video>', 7709 format: "", 7710 }, 7711 }; 7712 class Le { 7713 constructor(e) { 7714 this.fancybox = e; 7715 for (const e of ["onInit", "onReady", "onCreateSlide", "onRemoveSlide", "onSelectSlide", "onUnselectSlide", "onRefresh", "onMessage"]) this[e] = this[e].bind(this); 7716 this.events = { 7717 init: this.onInit, 7718 ready: this.onReady, 7719 "Carousel.createSlide": this.onCreateSlide, 7720 "Carousel.removeSlide": this.onRemoveSlide, 7721 "Carousel.selectSlide": this.onSelectSlide, 7722 "Carousel.unselectSlide": this.onUnselectSlide, 7723 "Carousel.refresh": this.onRefresh, 7724 }; 7725 } 7726 onInit() { 7727 for (const e of this.fancybox.items) this.processType(e); 7728 } 7729 processType(e) { 7730 if (e.html) return (e.src = e.html), (e.type = "html"), void delete e.html; 7731 const t = e.src || ""; 7732 let n = e.type || this.fancybox.options.type, 7733 i = null; 7734 if (!t || "string" == typeof t) {
7735 if ((i = t.match(/(?:youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(?:watch\?(?:.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(?:.*)|[\w-]{11}|\?listType=(?:.*)&list=(?:.*))(?:.*)/i))) { 7736 const s = ke(t, this.fancybox.option("Html.youtube")), 7737 o = encodeURIComponent(i[1]); 7738 (e.videoId = o), (e.src = `https://www.youtube-nocookie.com/embed/${o}?${s}`), (e.thumb = e.thumb || `https://i.ytimg.com/vi/${o}/mqdefault.jpg`), (e.vendor = "youtube"), (n = "video"); 7739 } else if ((i = t.match(/^.+vimeo.com\/(?:\/)?([\d]+)(.*)?/))) { 7740 const s = ke(t, this.fancybox.option("Html.vimeo")), 7741 o = encodeURIComponent(i[1]); 7742 (e.videoId = o), (e.src = `https://player.vimeo.com/video/${o}?${s}`), (e.vendor = "vimeo"), (n = "video"); 7743 } else 7744 (i = t.match(/(?:maps\.)?google\.([a-z]{2,3}(?:\.[a-z]{2})?)\/(?:(?:(?:maps\/(?:place\/(?:.*)\/)?\@(.*),(\d+.?\d+?)z))|(?:\?ll=))(.*)?/i)) 7745 ? ((e.src = `//maps.google.${i[1]}/?ll=${(i[2] ? i[2] + "&z=" + Math.floor(i[3]) + (i[4] ? i[4].replace(/^\//, "&") : "") : i[4] + "").replace(/\?/, "&")}&output=${ 7746 i[4] && i[4].indexOf("layer=c") > 0 ? "svembed" : "embed" 7747 }`), 7748 (n = "map")) 7749 : (i = t.match(/(?:maps\.)?google\.([a-z]{2,3}(?:\.[a-z]{2})?)\/(?:maps\/search\/)(.*)/i)) && 7750 ((e.src = `//maps.google.${i[1]}/maps?q=${i[2].replace("query=", "q=").replace("api=1", "")}&output=embed`), (n = "map")); 7751 n || 7752 ("#" === t.charAt(0) 7753 ? (n = "inline") 7754 : (i = t.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i)) 7755 ? ((n = "html5video"), (e.format = e.format || "video/" + ("ogv" === i[1] ? "ogg" : i[1]))) 7756 : t.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i) 7757 ? (n = "image") 7758 : t.match(/\.(pdf)((\?|#).*)?$/i) && (n = "pdf")), 7759 (e.type = n || this.fancybox.option("defaultType", "image")), 7760 ("html5video" !== n && "video" !== n) || 7761 ((e.video = re({}, this.fancybox.option("Html.video"), e.video)), e._width && e._height ? (e.ratio = parseFloat(e._width) / parseFloat(e._height)) : (e.ratio = e.ratio || e.video.ratio || $e.video.ratio)); 7762 } 7763 } 7764 onReady() { 7765 this.fancybox.Carousel.slides.forEach((e) => { 7766 e.$el && (this.setContent(e), e.index === this.fancybox.getSlide().index && this.playVideo(e)); 7767 }); 7768 } 7769 onCreateSlide(e, t, n) { 7770 "ready" === this.fancybox.state && this.setContent(n); 7771 } 7772 loadInlineContent(e) { 7773 let t; 7774 if (e.src instanceof HTMLElement) t = e.src; 7775 else if ("string" == typeof e.src) { 7776 const n = e.src.split("#", 2), 7777 i = 2 === n.length && "" === n[0] ? n[1] : n[0]; 7778 t = document.getElementById(i); 7779 } 7780 if (t) { 7781 if ("clone" === e.type || t.$placeHolder) { 7782 t = t.cloneNode(!0); 7783 let n = t.getAttribute("id"); 7784 (n = n ? `${n}--clone` : `clone-${this.fancybox.id}-${e.index}`), t.setAttribute("id", n); 7785 } else { 7786 const e = document.createElement("div"); 7787 e.classList.add("fancybox-placeholder"), t.parentNode.insertBefore(e, t), (t.$placeHolder = e); 7788 } 7789 this.fancybox.setContent(e, t); 7790 } else this.fancybox.setError(e, "{{ELEMENT_NOT_FOUND}}"); 7791 } 7792 loadAjaxContent(e) { 7793 const t = this.fancybox, 7794 n = new XMLHttpRequest(); 7795 t.showLoading(e), 7796 (n.onreadystatechange = function () { 7797 n.readyState === XMLHttpRequest.DONE && 7798 "ready" === t.state &&
7799 (t.hideLoading(e), 200 === n.status ? t.setContent(e, n.responseText) : t.setError(e, 404 === n.status ? "{{AJAX_NOT_FOUND}}" : "{{AJAX_FORBIDDEN}}")); 7800 }); 7801 const i = e.ajax || null; 7802 n.open(i ? "POST" : "GET", e.src), n.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"), n.setRequestHeader("X-Requested-With", "XMLHttpRequest"), n.send(i), (e.xhr = n); 7803 } 7804 loadIframeContent(e) { 7805 const t = this.fancybox, 7806 n = document.createElement("iframe"); 7807 if ( 7808 ((n.className = "fancybox__iframe"), 7809 n.setAttribute("id", `fancybox__iframe_${t.id}_${e.index}`), 7810 n.setAttribute("allow", "autoplay; fullscreen"), 7811 n.setAttribute("scrolling", "auto"), 7812 (e.$iframe = n), 7813 "iframe" !== e.type || !1 === e.preload) 7814 ) 7815 return n.setAttribute("src", e.src), this.fancybox.setContent(e, n), void this.resizeIframe(e); 7816 t.showLoading(e); 7817 const i = document.createElement("div"); 7818 (i.style.visibility = "hidden"), 7819 this.fancybox.setContent(e, i), 7820 i.appendChild(n), 7821 (n.onerror = () => { 7822 t.setError(e, "{{IFRAME_ERROR}}"); 7823 }), 7824 (n.onload = () => { 7825 t.hideLoading(e); 7826 let i = !1; 7827 n.isReady || ((n.isReady = !0), (i = !0)), n.src.length && ((n.parentNode.style.visibility = ""), this.resizeIframe(e), i && t.revealContent(e)); 7828 }), 7829 n.setAttribute("src", e.src); 7830 } 7831 setAspectRatio(e) { 7832 const t = e.$content, 7833 n = e.ratio; 7834 if (!t) return; 7835 let i = e._width, 7836 s = e._height; 7837 if (n || (i && s)) { 7838 Object.assign(t.style, { width: i && s ? "100%" : "", height: i && s ? "100%" : "", maxWidth: "", maxHeight: "" }); 7839 let e = t.offsetWidth, 7840 o = t.offsetHeight; 7841 if (((i = i || e), (s = s || o), i > e || s > o)) { 7842 let t = Math.min(e / i, o / s); 7843 (i *= t), (s *= t); 7844 } 7845 Math.abs(i / s - n) > 0.01 && (n < i / s ? (i = s * n) : (s = i / n)), Object.assign(t.style, { width: `${i}px`, height: `${s}px` }); 7846 } 7847 } 7848 resizeIframe(e) { 7849 const t = e.$iframe; 7850 if (!t) return; 7851 let n = e._width || 0, 7852 i = e._height || 0; 7853 n && i && (e.autoSize = !1); 7854 const s = t.parentNode, 7855 o = s && s.style; 7856 if (!1 !== e.preload && !1 !== e.autoSize && o) 7857 try { 7858 const e = window.getComputedStyle(s), 7859 r = parseFloat(e.paddingLeft) + parseFloat(e.paddingRight), 7860 a = parseFloat(e.paddingTop) + parseFloat(e.paddingBottom), 7861 l = t.contentWindow.document, 7862 c = l.getElementsByTagName("html")[0], 7863 d = l.body; 7864 (o.width = ""), (d.style.overflow = "hidden"), (n = n || c.scrollWidth + r), (o.width = `${n}px`), (d.style.overflow = ""), (o.flex = "0 0 auto"), (o.height = `${d.scrollHeight}px`), (i = c.scrollHeight + a); 7865 } catch (e) {} 7866 if (n || i) { 7867 const e = { flex: "0 1 auto" }; 7868 n && (e.width = `${n}px`), i && (e.height = `${i}px`), Object.assign(o, e); 7869 } 7870 } 7871 onRefresh(e, t) {
7872 t.slides.forEach((e) => { 7873 e.$el && (e.$iframe && this.resizeIframe(e), e.ratio && this.setAspectRatio(e)); 7874 }); 7875 } 7876 setContent(e) { 7877 if (e && !e.isDom) { 7878 switch (e.type) { 7879 case "html": 7880 this.fancybox.setContent(e, e.src); 7881 break; 7882 case "html5video": 7883 this.fancybox.setContent( 7884 e, 7885 this.fancybox 7886 .option("Html.html5video.tpl") 7887 .replace(/\{\{src\}\}/gi, e.src) 7888 .replace("{{format}}", e.format || (e.html5video && e.html5video.format) || "") 7889 .replace("{{poster}}", e.poster || e.thumb || "") 7890 ); 7891 break; 7892 case "inline": 7893 case "clone": 7894 this.loadInlineContent(e); 7895 break; 7896 case "ajax": 7897 this.loadAjaxContent(e); 7898 break; 7899 case "pdf": 7900 case "video": 7901 case "map": 7902 e.preload = !1; 7903 case "iframe": 7904 this.loadIframeContent(e); 7905 } 7906 e.ratio && this.setAspectRatio(e); 7907 } 7908 } 7909 onSelectSlide(e, t, n) { 7910 "ready" === e.state && this.playVideo(n); 7911 } 7912 playVideo(e) { 7913 if ("html5video" === e.type && e.video.autoplay) 7914 try { 7915 const t = e.$el.querySelector("video"); 7916 if (t) { 7917 const e = t.play(); 7918 void 0 !== e && 7919 e 7920 .then(() => {}) 7921 .catch((e) => { 7922 (t.muted = !0), t.play(); 7923 }); 7924 } 7925 } catch (e) {} 7926 if ("video" !== e.type || !e.$iframe || !e.$iframe.contentWindow) return; 7927 const t = () => { 7928 if ("done" === e.state && e.$iframe && e.$iframe.contentWindow) { 7929 let t; 7930 if (e.$iframe.isReady) 7931 return ( 7932 e.video && e.video.autoplay && (t = "youtube" == e.vendor ? { event: "command", func: "playVideo" } : { method: "play", value: "true" }), 7933 void (t && e.$iframe.contentWindow.postMessage(JSON.stringify(t), "*")) 7934 ); 7935 "youtube" === e.vendor && ((t = { event: "listening", id: e.$iframe.getAttribute("id") }), e.$iframe.contentWindow.postMessage(JSON.stringify(t), "*")); 7936 } 7937 e.poller = setTimeout(t, 250); 7938 }; 7939 t(); 7940 } 7941 onUnselectSlide(e, t, n) { 7942 if ("html5video" === n.type) { 7943 try { 7944 n.$el.querySelector("video").pause(); 7945 } catch (e) {} 7946 return; 7947 } 7948 let i = !1; 7949 "vimeo" == n.vendor ? (i = { method: "pause", value: "true" }) : "youtube" === n.vendor && (i = { event: "command", func: "pauseVideo" }), 7950 i && n.$iframe && n.$iframe.contentWindow && n.$iframe.contentWindow.postMessage(JSON.stringify(i), "*"), 7951 clearTimeout(n.poller); 7952 } 7953 onRemoveSlide(e, t, n) { 7954 n.xhr && (n.xhr.abort(), (n.xhr = null)), n.$iframe && ((n.$iframe.onload = n.$iframe.onerror = null), (n.$iframe.
7954src = "//about:blank"), (n.$iframe = null)); 7955 const i = n.$content; 7956 "inline" === n.type && i && (i.classList.remove("fancybox__content"), "none" !== i.style.display && (i.style.display = "none")), n.$closeButton && (n.$closeButton.remove(), (n.$closeButton = null)); 7957 const s = i && i.$placeHolder; 7958 s && (s.parentNode.insertBefore(i, s), s.remove(), (i.$placeHolder = null)); 7959 } 7960 onMessage(e) { 7961 try { 7962 let t = JSON.parse(e.data); 7963 if ("https://player.vimeo.com" === e.origin) { 7964 if ("ready" === t.event) for (let t of document.getElementsByClassName("fancybox__iframe")) t.contentWindow === e.source && (t.isReady = 1); 7965 } else "https://www.youtube-nocookie.com" === e.origin && "onReady" === t.event && (document.getElementById(t.id).isReady = 1); 7966 } catch (e) {} 7967 } 7968 attach() { 7969 this.fancybox.on(this.events), window.addEventListener("message", this.onMessage, !1); 7970 } 7971 detach() { 7972 this.fancybox.off(this.events), window.removeEventListener("message", this.onMessage, !1); 7973 } 7974 } 7975 Le.defaults = $e; 7976 class Pe { 7977 constructor(e) { 7978 this.fancybox = e; 7979 for (const e of ["onReady", "onClosing", "onDone", "onPageChange", "onCreateSlide", "onRemoveSlide", "onImageStatusChange"]) this[e] = this[e].bind(this); 7980 this.events = { ready: this.onReady, closing: this.onClosing, done: this.onDone, "Carousel.change": this.onPageChange, "Carousel.createSlide": this.onCreateSlide, "Carousel.removeSlide": this.onRemoveSlide }; 7981 } 7982 onReady() { 7983 this.fancybox.Carousel.slides.forEach((e) => { 7984 e.$el && this.setContent(e); 7985 }); 7986 } 7987 onDone(e, t) { 7988 this.handleCursor(t); 7989 } 7990 onClosing(e) { 7991 clearTimeout(this.clickTimer), 7992 (this.clickTimer = null), 7993 e.Carousel.slides.forEach((e) => { 7994 e.$image && (e.state = "destroy"), e.Panzoom && e.Panzoom.detachEvents(); 7995 }), 7996 "closing" === this.fancybox.state && this.canZoom(e.getSlide()) && this.zoomOut(); 7997 } 7998 onCreateSlide(e, t, n) { 7999 "ready" === this.fancybox.state && this.setContent(n); 8000 } 8001 onRemoveSlide(e, t, n) { 8002 n.$image && (n.$el.classList.remove(e.option("Image.canZoomInClass")), n.$image.remove(), (n.$image = null)), 8003 n.Panzoom && (n.Panzoom.destroy(), (n.Panzoom = null)), 8004 n.$el && n.$el.dataset && delete n.$el.dataset.imageFit; 8005 } 8006 setContent(e) { 8007 if (e.isDom || e.html || (e.type && "image" !== e.type)) return; 8008 if (e.$image) return; 8009 (e.type = "image"), (e.state = "loading"); 8010 const t = document.createElement("div"); 8011 t.style.visibility = "hidden"; 8012 const n = document.createElement("img"); 8013 n.addEventListener("load", (t) => { 8014 t.stopImmediatePropagation(), this.onImageStatusChange(e); 8015 }), 8016 n.addEventListener("error", () => { 8017 this.onImageStatusChange(e); 8018 }), 8019 (n.src = e.src), 8020 (n.alt = ""), 8021 (n.draggable = !1), 8022 n.classList.add("fancybox__image"), 8023 e.srcset && n.setAttribute("srcset", e.srcset), 8024 e.sizes && n.setAttribute("sizes", e.sizes), 8025 (e.$image = n); 8026 const i = this.fancybox.option("Image.wrap"); 8027 if (i) { 8028 const s = document.createElement("div");
8029 s.classList.add("string" == typeof i ? i : "fancybox__image-wrap"), s.appendChild(n), t.appendChild(s), (e.$wrap = s); 8030 } else t.appendChild(n); 8031 (e.$el.dataset.imageFit = this.fancybox.option("Image.fit")), this.fancybox.setContent(e, t), n.complete || n.error ? this.onImageStatusChange(e) : this.fancybox.showLoading(e); 8032 } 8033 onImageStatusChange(e) { 8034 const t = e.$image; 8035 t && 8036 "loading" === e.state && 8037 (t.complete && t.naturalWidth && t.naturalHeight 8038 ? (this.fancybox.hideLoading(e), 8039 "contain" === this.fancybox.option("Image.fit") && this.initSlidePanzoom(e), 8040 e.$el.addEventListener("wheel", (t) => this.onWheel(e, t), { passive: !1 }), 8041 e.$content.addEventListener("click", (t) => this.onClick(e, t), { passive: !1 }), 8042 this.revealContent(e)) 8043 : this.fancybox.setError(e, "{{IMAGE_ERROR}}")); 8044 } 8045 initSlidePanzoom(e) { 8046 e.Panzoom || 8047 ((e.Panzoom = new me( 8048 e.$el, 8049 re(!0, this.fancybox.option("Image.Panzoom", {}), { 8050 viewport: e.$wrap, 8051 content: e.$image, 8052 width: e._width, 8053 height: e._height, 8054 wrapInner: !1, 8055 textSelection: !0, 8056 touch: this.fancybox.option("Image.touch"), 8057 panOnlyZoomed: !0, 8058 click: !1, 8059 wheel: !1, 8060 }) 8061 )), 8062 e.Panzoom.on("startAnimation", () => { 8063 this.fancybox.trigger("Image.startAnimation", e); 8064 }), 8065 e.Panzoom.on("endAnimation", () => { 8066 "zoomIn" === e.state && this.fancybox.done(e), this.handleCursor(e), this.fancybox.trigger("Image.endAnimation", e); 8067 }), 8068 e.Panzoom.on("afterUpdate", () => { 8069 this.handleCursor(e), this.fancybox.trigger("Image.afterUpdate", e); 8070 })); 8071 } 8072 revealContent(e) { 8073 null === this.fancybox.Carousel.prevPage && e.index === this.fancybox.options.startIndex && this.canZoom(e) ? this.zoomIn() : this.fancybox.revealContent(e); 8074 } 8075 getZoomInfo(e) { 8076 const t = e.$thumb.getBoundingClientRect(), 8077 n = t.width, 8078 i = t.height, 8079 s = e.$content.getBoundingClientRect(), 8080 o = s.width, 8081 r = s.height, 8082 a = s.top - t.top, 8083 l = s.left - t.left; 8084 let c = this.fancybox.option("Image.zoomOpacity"); 8085 return "auto" === c && (c = Math.abs(n / i - o / r) > 0.1), { top: a, left: l, scale: o && n ? n / o : 1, opacity: c }; 8086 } 8087 canZoom(e) { 8088 const t = this.fancybox, 8089 n = t.$container; 8090 if (window.visualViewport && 1 !== window.visualViewport.scale) return !1; 8091 if (e.Panzoom && !e.Panzoom.content.width) return !1; 8092 if (!t.option("Image.zoom") || "contain" !== t.option("Image.fit")) return !1; 8093 const i = e.$thumb; 8094 if (!i || "loading" === e.state) return !1; 8095 n.classList.add("fancybox__no-click"); 8096 const s = i.getBoundingClientRect(); 8097 let o; 8098 if (this.fancybox.option("Image.ignoreCoveredThumbnail")) { 8099 const e = document.elementFromPoint(s.left + 1, s.top + 1) === i, 8100 t = document.elementFromPoint(s.right - 1, s.bottom - 1) === i; 8101 o = e && t; 8102 } else o = document.elementFromPoint(s.left + 0.5 * s.width, s.top + 0.5 * s.height) === i; 8103 return n.classList.remove("fancybox__no-click"), o; 8104 } 8105 zoomIn() { 8106 const e = this.fancybox, 8107 t = e.getSlide(), 8108 n = t.Panzoom, 8109 { top: i, left: s, scale: o, opacity: r } = this.getZoomInfo(t); 8110 e.trigger("reveal", t), 8111 n.panTo({ x: -1 * s, y: -1 * i, scale: o, friction: 0, ignoreBounds: !0 }), 8112 (t.$content.style.visibility = ""), 8113 (t.state = "zoomIn"), 8114 !0 === r && 8115 n.on("afterTransform", (e) => { 8116 ("zoomIn" !== t.state && "zoomOut" !== t.state) || (e.$content.style.opacity = Math.min(1, 1 - (1 - e.content.scale) / (1 - o))); 8117 }), 8118 n.panTo({ x: 0, y: 0, scale: 1, friction: this.fancybox.option("Image.zoomFriction") }); 8119 } 8120 zoomOut() { 8121 const e = this.fancybox, 8122 t = e.getSlide(), 8123 n = t.Panzoom; 8124 if (!n) return; 8125 (t.state = "zoomOut"), (e.state = "customClosing"), t.$caption && (t.$caption.style.visibility = "hidden"); 8126 let i = this.fancybox.option("Image.zoomFriction"); 8127 const s = (e) => { 8128 const { top: s, left: o, scale: r, opacity: a } = this.getZoomInfo(t); 8129 e || a || (i *= 0.82), n.panTo({ x: -1 * o, y: -1 * s, scale: r, friction: i, ignoreBounds: !0 }), (i *= 0.98); 8130 }; 8131 window.addEventListener("scroll", s), 8132 n.once("endAnimation", () => { 8133 window.removeEventListener("scroll", s), e.destroy(); 8134 }), 8135 s(); 8136 } 8137 handleCursor(e) { 8138 if ("image" !== e.type || !e.$el) return; 8139 const t = e.Panzoom, 8140 n = this.fancybox.option("Image.click", !1, e), 8141 i = this.fancybox.option("Image.touch"), 8142 s = e.$el.classList, 8143 o = this.fancybox.option("Image.canZoomInClass"), 8144 r = this.fancybox.option("Image.canZoomOutClass"); 8145 s.remove(r), s.remove(o), t && "toggleZoom" === n ? (t && 1 === t.content.scale && t.option("maxScale") - t.content.scale > 0.01 ? s.add(o) : t.content.scale > 1 && !i && s.add(r)) : "close" === n && s.add(r); 8146 } 8147 onWheel(e, t) { 8148 if ("ready" === this.fancybox.state && !1 !== this.fancybox.trigger("Image.
8148wheel", t)) 8149 switch (this.fancybox.option("Image.wheel")) { 8150 case "zoom": 8151 "done" === e.state && e.Panzoom && e.Panzoom.zoomWithWheel(t); 8152 break; 8153 case "close": 8154 this.fancybox.close(); 8155 break; 8156 case "slide": 8157 this.fancybox[t.deltaY < 0 ? "prev" : "next"](); 8158 } 8159 } 8160 onClick(e, t) { 8161 if ("ready" !== this.fancybox.state) return; 8162 const n = e.Panzoom; 8163 if (n && (n.dragPosition.midPoint || 0 !== n.dragOffset.x || 0 !== n.dragOffset.y || 1 !== n.dragOffset.scale)) return; 8164 if (this.fancybox.Carousel.Panzoom.lockAxis) return !1; 8165 const i = (n) => { 8166 switch (n) { 8167 case "toggleZoom": 8168 t.stopPropagation(), e.Panzoom && e.Panzoom.zoomWithClick(t); 8169 break; 8170 case "close": 8171 this.fancybox.close(); 8172 break; 8173 case "next": 8174 t.stopPropagation(), this.fancybox.next(); 8175 } 8176 }, 8177 s = this.fancybox.option("Image.click"), 8178 o = this.fancybox.option("Image.doubleClick"); 8179 o 8180 ? this.clickTimer 8181 ? (clearTimeout(this.clickTimer), (this.clickTimer = null), i(o)) 8182 : (this.clickTimer = setTimeout(() => { 8183 (this.clickTimer = null), i(s); 8184 }, 300)) 8185 : i(s); 8186 } 8187 onPageChange(e, t) { 8188 const n = e.getSlide(); 8189 t.slides.forEach((e) => { 8190 e.Panzoom && "done" === e.state && e.index !== n.index && e.Panzoom.panTo({ x: 0, y: 0, scale: 1, friction: 0.8 }); 8191 }); 8192 } 8193 attach() { 8194 this.fancybox.on(this.events); 8195 } 8196 detach() { 8197 this.fancybox.off(this.events); 8198 } 8199 } 8200 Pe.defaults = { 8201 canZoomInClass: "can-zoom_in", 8202 canZoomOutClass: "can-zoom_out", 8203 zoom: !0, 8204 zoomOpacity: "auto", 8205 zoomFriction: 0.82, 8206 ignoreCoveredThumbnail: !1, 8207 touch: !0, 8208 click: "toggleZoom", 8209 doubleClick: null, 8210 wheel: "zoom", 8211 fit: "contain", 8212 wrap: !1, 8213 Panzoom: { ratio: 1 }, 8214 }; 8215 class Oe { 8216 constructor(e) { 8217 this.fancybox = e; 8218 for (const e of ["onChange", "onClosing"]) this[e] = this[e].bind(this); 8219 (this.events = { initCarousel: this.onChange, "Carousel.change": this.onChange, closing: this.onClosing }), (this.hasCreatedHistory = !1), (this.origHash = ""), (this.timer = null); 8220 } 8221 onChange(e) { 8222 const t = e.Carousel; 8223 this.timer && clearTimeout(this.timer); 8224 const n = null === t.prevPage, 8225 i = e.getSlide(), 8226 s = new URL(document.URL).hash; 8227 let o = !1; 8228 if (i.slug) o = "#" + i.slug; 8229 else { 8230 const n = i.$trigger && i.$trigger.dataset, 8231 s = e.option("slug") || (n && n.fancybox); 8232 s && s.length && "true" !== s && (o = "#" + s + (t.slides.length > 1 ? "-" + (i.index + 1) : "")); 8233 } 8234 n && (this.origHash = s !== o ? s : ""), 8235 o && 8236 s !== o && 8237 (this.timer = setTimeout(() => { 8238 try { 8239 window.history[n ? "pushState" : "replaceState"]({}, document.title, window.location.pathname + window.location.search + o), n && (this.hasCreatedHistory = !0); 8240 } catch (e) {} 8241 }, 300)); 8242 } 8243 onClosing() { 8244 if ((this.timer && clearTimeout(this.timer), !0 !== this.hasSilentClose)) 8245 try { 8246 return void window.history.replaceState({}, document.title, window.location.pathname + window.location.search + (this.origHash || "")); 8247 } catch (e) {} 8248 } 8249 attach(e) { 8250 e.on(this.events); 8251 } 8252 detach(e) { 8253 e.off(this.events); 8254 } 8255 static startFromUrl() { 8256 const e = Oe.Fancybox; 8257 if (!e || e.getInstance() || !1 === e.defaults.Hash) return; 8258 const { hash: t, slug: n, index: i } = Oe.getParsedURL(); 8259 if (!n) return; 8260 let s = document.querySelector(`[data-slug="${t}"]`); 8261 if ((s && s.dispatchEvent(new CustomEvent("click", { bubbles: !0, cancelable: !0 })), e.getInstance())) return; 8262 const o = document.querySelectorAll(`[data-fancybox="${n}"]`); 8263 o.length && (null === i && 1 === o.length ? (s = o[0]) : i && (s = o[i - 1]), s && s.dispatchEvent(new CustomEvent("click", { bubbles: !0, cancelable: !0 }))); 8264 } 8265 static onHashChange() { 8266 const { slug: e, index: t } = Oe.getParsedURL(), 8267 n = Oe.Fancybox, 8268 i = n && n.getInstance(); 8269 if (i && i.plugins.Hash) { 8270 if (e) { 8271 const n = i.Carousel; 8272 if (e === i.option("slug")) return n.slideTo(t - 1); 8273 for (let t of n.slides) if (t.slug && t.slug === e) return n.slideTo(t.index); 8274 const s = i.getSlide(), 8275 o = s.$trigger && s.$trigger.dataset; 8276 if (o && o.fancybox === e) return n.slideTo(t - 1); 8277 } 8278 (i.plugins.Hash.hasSilentClose = !0), i.close(); 8279 } 8280 Oe.startFromUrl(); 8281 } 8282 static create(e) { 8283 function t() { 8284 window.addEventListener("hashchange", Oe.onHashChange, !1), Oe.startFromUrl(); 8285 } 8286 (Oe.Fancybox = e), 8287 Ce && 8288 window.requestAnimationFrame(() => { 8289 /complete|interactive|loaded/.test(document.readyState) ? t() : document.addEventListener("DOMContentLoaded", t); 8290 }); 8291 } 8292 static destroy() { 8293 window.removeEventListener("hashchange", Oe.onHashChange, !1); 8294 } 8295 static getParsedURL() { 8296 const e = window.location.hash.substr(1), 8297 t = e.split("-"), 8298 n = (t.length > 1 && /^\+?\d+$/.test(t[t.length - 1]) && parseInt(t.pop(-1), 10)) || null;
8299 return { hash: e, slug: t.join("-"), index: n }; 8300 } 8301 } 8302 const Me = { 8303 pageXOffset: 0, 8304 pageYOffset: 0, 8305 element: () => document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement, 8306 activate(e) { 8307 (Me.pageXOffset = window.pageXOffset), 8308 (Me.pageYOffset = window.pageYOffset), 8309 e.requestFullscreen ? e.requestFullscreen() : e.mozRequestFullScreen ? e.mozRequestFullScreen() : e.webkitRequestFullscreen ? e.webkitRequestFullscreen() : e.msRequestFullscreen && e.msRequestFullscreen(); 8310 }, 8311 deactivate() { 8312 document.exitFullscreen ? document.exitFullscreen() : document.mozCancelFullScreen ? document.mozCancelFullScreen() : document.webkitExitFullscreen && document.webkitExitFullscreen(); 8313 }, 8314 }; 8315 class De { 8316 constructor(e) { 8317 (this.fancybox = e), (this.active = !1), (this.handleVisibilityChange = this.handleVisibilityChange.bind(this)); 8318 } 8319 isActive() { 8320 return this.active; 8321 } 8322 setTimer() { 8323 if (!this.active || this.timer) return; 8324 const e = this.fancybox.option("slideshow.delay", 3e3); 8325 this.timer = setTimeout(() => { 8326 (this.timer = null), this.fancybox.option("infinite") || this.fancybox.getSlide().index !== this.fancybox.Carousel.slides.length - 1 ? this.fancybox.next() : this.fancybox.jumpTo(0, { friction: 0 }); 8327 }, e); 8328 let t = this.$progress; 8329 t || ((t = document.createElement("div")), t.classList.add("fancybox__progress"), this.fancybox.$carousel.parentNode.insertBefore(t, this.fancybox.$carousel), (this.$progress = t), t.offsetHeight), 8330 (t.style.transitionDuration = `${e}ms`), 8331 (t.style.transform = "scaleX(1)"); 8332 } 8333 clearTimer() { 8334 clearTimeout(this.timer), (this.timer = null), this.$progress && ((this.$progress.style.transitionDuration = ""), (this.$progress.style.transform = ""), this.$progress.offsetHeight); 8335 } 8336 activate() { 8337 this.active || 8338 ((this.active = !0), 8339 this.fancybox.$container.classList.add("has-slideshow"), 8340 "done" === this.fancybox.getSlide().state && this.setTimer(), 8341 document.addEventListener("visibilitychange", this.handleVisibilityChange, !1)); 8342 } 8343 handleVisibilityChange() { 8344 this.deactivate(); 8345 } 8346 deactivate() { 8347 (this.active = !1), this.clearTimer(), this.fancybox.$container.classList.remove("has-slideshow"), document.removeEventListener("visibilitychange", this.handleVisibilityChange, !1); 8348 } 8349 toggle() { 8350 this.active ? this.deactivate() : this.fancybox.Carousel.slides.length > 1 && this.activate(); 8351 } 8352 } 8353 const Ne = { 8354 display: ["counter", "zoom", "slideshow", "fullscreen", "thumbs", "close"], 8355 autoEnable: !0, 8356 items: { 8357 counter: { position: "left", type: "div", class: "fancybox__counter", html: '<span data-fancybox-index=""></span> / <span data-fancybox-count=""></span>', attr: { tabindex: -1 } }, 8358 prev: { type: "button", class: "fancybox__button--prev", label: "PREV", html: '<svg viewBox="0 0 24 24"><path d="M15 4l-8 8 8 8"/></svg>', attr: { "data-fancybox-prev": "" } }, 8359 next: { type: "button", class: "fancybox__button--next", label: "NEXT", html: '<svg viewBox="0 0 24 24"><path d="M8 4l8 8-8 8"/></svg>', attr: { "data-fancybox-next": "" } }, 8360 fullscreen: { 8361 type: "button", 8362 class: "fancybox__button--fullscreen", 8363 label: "TOGGLE_FULLSCREEN", 8364 html: 8365 '<svg viewBox="0 0 24 24">\n <g><path d="M3 8 V3h5"></path><path d="M21 8V3h-5"></path><path d="M8 21H3v-5"></path><path d="M16 21h5v-5"></path></g>\n <g><path d="M7 2v5H2M17 2v5h5M2 17h5v5M22 17h-5v5"/></g>\n </svg>', 8366 click: function (e) { 8367 e.preventDefault(), Me.element() ? Me.deactivate() : Me.activate(this.fancybox.$container); 8368 }, 8369 }, 8370 slideshow: { 8371 type: "button", 8372 class: "fancybox__button--slideshow", 8373 label: "TOGGLE_SLIDESHOW", 8374 html: '<svg viewBox="0 0 24 24">\n <g><path d="M6 4v16"/><path d="M20 12L6 20"/><path d="M20 12L6 4"/></g>\n <g>
8374<path d="M7 4v15M17 4v15"/></g>\n </svg>', 8375 click: function (e) { 8376 e.preventDefault(), this.Slideshow.toggle(); 8377 }, 8378 }, 8379 zoom: { 8380 type: "button", 8381 class: "fancybox__button--zoom", 8382 label: "TOGGLE_ZOOM", 8383 html: '<svg viewBox="0 0 24 24"><circle cx="10" cy="10" r="7"></circle><path d="M16 16 L21 21"></svg>', 8384 click: function (e) { 8385 e.preventDefault(); 8386 const t = this.fancybox.getSlide().Panzoom; 8387 t && t.toggleZoom(); 8388 }, 8389 }, 8390 download: { 8391 type: "link", 8392 label: "DOWNLOAD", 8393 class: "fancybox__button--download", 8394 html: '<svg viewBox="0 0 24 24"><path d="M12 15V3m0 12l-4-4m4 4l4-4M2 17l.62 2.48A2 2 0 004.56 21h14.88a2 2 0 001.94-1.51L22 17"/></svg>', 8395 click: function (e) { 8396 e.stopPropagation(); 8397 }, 8398 }, 8399 thumbs: { 8400 type: "button", 8401 label: "TOGGLE_THUMBS", 8402 class: "fancybox__button--thumbs", 8403 html: 8404 '<svg viewBox="0 0 24 24"><circle cx="4" cy="4" r="1" /><circle cx="12" cy="4" r="1" transform="rotate(90 12 4)"/><circle cx="20" cy="4" r="1" transform="rotate(90 20 4)"/><circle cx="4" cy="12" r="1" transform="rotate(90 4 12)"/><circle cx="12" cy="12" r="1" transform="rotate(90 12 12)"/><circle cx="20" cy="12" r="1" transform="rotate(90 20 12)"/><circle cx="4" cy="20" r="1" transform="rotate(90 4 20)"/><circle cx="12" cy="20" r="1" transform="rotate(90 12 20)"/><circle cx="20" cy="20" r="1" transform="rotate(90 20 20)"/></svg>', 8405 click: function (e) { 8406 e.stopPropagation(); 8407 const t = this.fancybox.plugins.Thumbs; 8408 t && t.toggle(); 8409 }, 8410 }, 8411 close: { type: "button", label: "CLOSE", class: "fancybox__button--close", html: '<svg viewBox="0 0 24 24"><path d="M20 20L4 4m16 0L4 20"></path></svg>', attr: { "data-fancybox-close": "", tabindex: 0 } }, 8412 }, 8413 }; 8414 class Ie { 8415 constructor(e) { 8416 (this.fancybox = e), (this.$container = null), (this.state = "init"); 8417 for (const e of ["onInit", "onPrepare", "onDone", "onKeydown", "onClosing", "onChange", "onSettle", "onRefresh"]) this[e] = this[e].bind(this); 8418 this.events = { 8419 init: this.onInit, 8420 prepare: this.onPrepare, 8421 done: this.onDone, 8422 keydown: this.onKeydown, 8423 closing: this.onClosing, 8424 "Carousel.change": this.onChange, 8425 "Carousel.settle": this.onSettle, 8426 "Carousel.Panzoom.touchStart": () => this.onRefresh(), 8427 "Image.startAnimation": (e, t) => this.onRefresh(t), 8428 "Image.afterUpdate": (e, t) => this.onRefresh(t), 8429 }; 8430 } 8431 onInit() { 8432 if (this.fancybox.option("Toolbar.autoEnable")) { 8433 let e = !1; 8434 for (const t of this.fancybox.items) 8435 if ("image" === t.type) { 8436 e = !0; 8437 break; 8438 } 8439 if (!e) return void (this.state = "disabled"); 8440 } 8441 for (const e of this.fancybox.option("Toolbar.display")) 8442 if ("close" === (oe(e) ? e.id : e)) { 8443 this.fancybox.options.closeButton = !1; 8444 break; 8445 } 8446 } 8447 onPrepare() { 8448 const e = this.fancybox; 8449 if ( 8450 "init" === this.state && 8451 (this.build(), this.update(), (this.Slideshow = new De(e)), !e.Carousel.prevPage && (e.option("slideshow.autoStart") && this.Slideshow.activate(), e.option("fullscreen.autoStart") && !Me.element())) 8452 ) 8453 try { 8454 Me.activate(e.$container); 8455 } catch (e) {} 8456 } 8457 onFsChange() { 8458 window.scrollTo(Me.pageXOffset, Me.pageYOffset); 8459 } 8460 onSettle() { 8461 const e = this.fancybox, 8462 t = this.Slideshow; 8463 t && t.isActive() && (e.getSlide().index !== e.Carousel.slides.length - 1 || e.o
8463ption("infinite") ? "done" === e.getSlide().state && t.setTimer() : t.deactivate()); 8464 } 8465 onChange() { 8466 this.update(), this.Slideshow && this.Slideshow.isActive() && this.Slideshow.clearTimer(); 8467 } 8468 onDone(e, t) { 8469 const n = this.Slideshow; 8470 t.index === e.getSlide().index && (this.update(), n && n.isActive() && (e.option("infinite") || t.index !== e.Carousel.slides.length - 1 ? n.setTimer() : n.deactivate())); 8471 } 8472 onRefresh(e) { 8473 (e && e.index !== this.fancybox.getSlide().index) || (this.update(), !this.Slideshow || !this.Slideshow.isActive() || (e && "done" !== e.state) || this.Slideshow.deactivate()); 8474 } 8475 onKeydown(e, t, n) { 8476 " " === t && this.Slideshow && (this.Slideshow.toggle(), n.preventDefault()); 8477 } 8478 onClosing() { 8479 this.Slideshow && this.Slideshow.deactivate(), document.removeEventListener("fullscreenchange", this.onFsChange); 8480 } 8481 createElement(e) { 8482 let t; 8483 "div" === e.type ? (t = document.createElement("div")) : ((t = document.createElement("link" === e.type ? "a" : "button")), t.classList.add("carousel__button")), 8484 (t.innerHTML = e.html), 8485 t.setAttribute("tabindex", e.tabindex || 0), 8486 e.class && t.classList.add(...e.class.split(" ")); 8487 for (const n in e.attr) t.setAttribute(n, e.attr[n]); 8488 e.label && t.setAttribute("title", this.fancybox.localize(`{{${e.label}}}`)), 8489 e.click && t.addEventListener("click", e.click.bind(this)), 8490 "prev" === e.id && t.setAttribute("data-fancybox-prev", ""), 8491 "next" === e.id && t.setAttribute("data-fancybox-next", ""); 8492 const n = t.querySelector("svg"); 8493 return n && (n.setAttribute("role", "img"), n.setAttribute("tabindex", "-1"), n.setAttribute("xmlns", "http://www.w3.org/2000/svg")), t; 8494 } 8495 build() { 8496 this.cleanup(); 8497 const e = this.fancybox.option("Toolbar.items"), 8498 t = [ 8499 { position: "left", items: [] }, 8500 { position: "center", items: [] }, 8501 { position: "right", items: [] }, 8502 ], 8503 n = this.fancybox.plugins.Thumbs; 8504 for (const i of this.fancybox.option("Toolbar.display")) { 8505 let s, o; 8506 if ((oe(i) ? ((s = i.id), (o = re({}, e[s], i))) : ((s = i), (o = e[s])), ["counter", "next", "prev", "slideshow"].includes(s) && this.fancybox.items.length < 2)) continue; 8507 if ("fullscreen" === s) { 8508 if (!document.fullscreenEnabled || window.fullScreen) continue; 8509 document.addEventListener("fullscreenchange", this.onFsChange); 8510 } 8511 if ("thumbs" === s && (!n || "disabled" === n.state)) continue; 8512 if (!o) continue; 8513 let r = o.position || "right", 8514 a = t.find((e) => e.position === r); 8515 a && a.items.push(o); 8516 } 8517 const i = document.createElement("div"); 8518 i.classList.add("fancybox__toolbar"); 8519 for (const e of t) 8520 if (e.items.length) { 8521 const t = document.createElement("div"); 8522 t.classList.add("fancybox__toolbar__items"), t.classList.add(`fancybox__toolbar__items--${e.position}`); 8523 for (const n of e.items) t.appendChild(this.createElement(n)); 8524 i.appendChild(t); 8525 } 8526 this.fancybox.$carousel.parentNode.insertBefore(i, this.fancybox.$carousel), (this.$container = i); 8527 } 8528 update() { 8529 const e = this.fancybox.getSlide(), 8530 t = e.index, 8531 n = this.fancybox.items.length, 8532 i = e.downloadSrc || ("image" !== e.type || e.error ? null : e.src); 8533 for (const e of this.fancybox.$container.querySelectorAll("a.fancybox__button--download")) 8534 i 8535 ? (e.removeAttribute("disabled"), e.removeAttribute("tabindex"), e.setAttribute("href", i), e.setAttribute("download", i), e.setAttribute("target", "_blank")) 8536 : (e.setAttribute("disabled", ""), e.setAttribute("tabindex", -1), e.removeAttribute("href"), e.removeAttribute("download")); 8537 const s = e.Panzoom, 8538 o = s && s.option("maxScale") > s.option("baseScale"); 8539 for (const e of this.fancybox.$container.querySelectorAll(".fancybox__button--zoom")) o ? e.removeAttribute("disabled") : e.setAttribute("disabled", ""); 8540 for (const t of this.fancybox.$container.querySelectorAll("[data-fancybox-index]")) t.innerHTML = e.index + 1; 8541 for (const e of this.fancybox.$container.querySelectorAll("[data-fancybox-count]")) e.innerHTML = n; 8542 if (!this.fancybox.option("infinite")) { 8543 for (const e of this.fancybox.$container.querySelectorAll("[data-fancybox-prev]")) 0 === t ? e.setAttribute("disabled", "") : e.removeAttribute("disabled"); 8544 for (const e of this.fancybox.$container.querySelectorAll("[data-fancybox-next]")) t === n - 1 ? e.setAttribute("disabled", "") : e.removeAttribute("disabled"); 8545 } 8546 } 8547 cleanup() { 8548 this.Slideshow && this.Slideshow.isActive() && this.Slideshow.clearTimer(), this.$container && this.$container.remove(), (this.$container = null); 8549 } 8550 attach() { 8551 this.fancybox.on(this.events); 8552 } 8553 detach() { 8554 this.fancybox.off(this.events), this.cleanup(); 8555 } 8556 } 8557 Ie.defaults = Ne;
8558 const ze = { 8559 ScrollLock: class { 8560 constructor(e) { 8561 (this.fancybox = e), (this.viewport = null), (this.pendingUpdate = null); 8562 for (const e of ["onReady", "onResize", "onTouchstart", "onTouchmove"]) this[e] = this[e].bind(this); 8563 } 8564 onReady() { 8565 const e = window.visualViewport; 8566 e && ((this.viewport = e), (this.startY = 0), e.addEventListener("resize", this.onResize), this.updateViewport()), 8567 window.addEventListener("touchstart", this.onTouchstart, { passive: !1 }), 8568 window.addEventListener("touchmove", this.onTouchmove, { passive: !1 }), 8569 window.addEventListener("wheel", this.onWheel, { passive: !1 }); 8570 } 8571 onResize() { 8572 this.updateViewport(); 8573 } 8574 updateViewport() { 8575 const e = this.fancybox, 8576 t = this.viewport, 8577 n = t.scale || 1, 8578 i = e.$container; 8579 if (!i) return; 8580 let s = "", 8581 o = "", 8582 r = ""; 8583 n - 1 > 0.1 && ((s = t.width * n + "px"), (o = t.height * n + "px"), (r = `translate3d(${t.offsetLeft}px, ${t.offsetTop}px, 0) scale(${1 / n})`)), 8584 (i.style.width = s), 8585 (i.style.height = o), 8586 (i.style.transform = r); 8587 } 8588 onTouchstart(e) { 8589 this.startY = e.touches ? e.touches[0].screenY : e.screenY; 8590 } 8591 onTouchmove(e) { 8592 const t = this.startY, 8593 n = window.innerWidth / window.document.documentElement.clientWidth; 8594 if (!e.cancelable) return; 8595 if (e.touches.length > 1 || 1 !== n) return; 8596 const i = le(e.composedPath()[0]); 8597 if (!i) return void e.preventDefault(); 8598 const s = window.getComputedStyle(i), 8599 o = parseInt(s.getPropertyValue("height"), 10), 8600 r = e.touches ? e.touches[0].screenY : e.screenY, 8601 a = t <= r && 0 === i.scrollTop, 8602 l = t >= r && i.scrollHeight - i.scrollTop === o; 8603 (a || l) && e.preventDefault(); 8604 } 8605 onWheel(e) { 8606 le(e.composedPath()[0]) || e.preventDefault(); 8607 } 8608 cleanup() { 8609 this.pendingUpdate && (cancelAnimationFrame(this.pendingUpdate), (this.pendingUpdate = null)); 8610 const e = this.viewport; 8611 e && (e.removeEventListener("resize", this.onResize), (this.viewport = null)), 8612 window.removeEventListener("touchstart", this.onTouchstart, !1), 8613 window.removeEventListener("touchmove", this.onTouchmove, !1), 8614 window.removeEventListener("wheel", this.onWheel, { passive: !1 }); 8615 } 8616 attach() { 8617 this.fancybox.on("initLayout", this.onReady); 8618 } 8619 detach() { 8620 this.fancybox.off("initLayout", this.onReady), this.cleanup(); 8621 } 8622 }, 8623 Thumbs: Ae, 8624 Html: Le, 8625 Toolbar: Ie, 8626 Image: Pe, 8627 Hash: Oe, 8628 }, 8629 je = { 8630 startIndex: 0, 8631 preload: 1, 8632 infinite: !0, 8633 showClass: "fancybox-zoomInUp", 8634 hideClass: "fancybox-fadeOut", 8635 animated: !0, 8636 hideScrollbar: !0, 8637 parentEl: null, 8638 mainClass: null, 8639 autoFocus: !0, 8640 trapFocus: !0, 8641 placeFocusBack: !0, 8642 click: "close", 8643 closeButton: "inside", 8644 dragToClose: !0, 8645 keyboard: { Escape: "close", Delete: "close", Backspace: "close", PageUp: "next", PageDown: "prev", ArrowUp: "next", ArrowDown: "prev", ArrowRight: "next", ArrowLeft: "prev" }, 8646 template: { 8647 closeButton: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" tabindex="-1">
8647<path d="M20 20L4 4m16 0L4 20"/></svg>', 8648 spinner: '<svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="25 25 50 50" tabindex="-1"><circle cx="50" cy="50" r="20"/></svg>', 8649 main: null, 8650 }, 8651 l10n: { 8652 CLOSE: "Close", 8653 NEXT: "Next", 8654 PREV: "Previous", 8655 MODAL: "You can close this modal content with the ESC key", 8656 ERROR: "Something Went Wrong, Please Try Again Later", 8657 IMAGE_ERROR: "Image Not Found", 8658 ELEMENT_NOT_FOUND: "HTML Element Not Found", 8659 AJAX_NOT_FOUND: "Error Loading AJAX : Not Found", 8660 AJAX_FORBIDDEN: "Error Loading AJAX : Forbidden", 8661 IFRAME_ERROR: "Error Loading Page", 8662 TOGGLE_ZOOM: "Toggle zoom level", 8663 TOGGLE_THUMBS: "Toggle thumbnails", 8664 TOGGLE_SLIDESHOW: "Toggle slideshow", 8665 TOGGLE_FULLSCREEN: "Toggle full-screen mode", 8666 DOWNLOAD: "Download", 8667 }, 8668 }, 8669 Fe = new Map(); 8670 let He = 0; 8671 class Re extends fe { 8672 constructor(e, t = {}) { 8673 (e = e.map((e) => (e.width && (e._width = e.width), e.height && (e._height = e.height), e))), 8674 super(re(!0, {}, je, t)), 8675 this.bindHandlers(), 8676 (this.state = "init"), 8677 this.setItems(e), 8678 this.attachPlugins(Re.Plugins), 8679 this.trigger("init"), 8680 !0 === this.option("hideScrollbar") && this.hideScrollbar(), 8681 this.initLayout(), 8682 this.initCarousel(), 8683 this.attachEvents(), 8684 Fe.set(this.id, this), 8685 this.trigger("prepare"), 8686 (this.state = "ready"), 8687 this.trigger("ready"), 8688 this.$container.setAttribute("aria-hidden", "false"), 8689 this.option("trapFocus") && this.focus(); 8690 } 8691 option(e, ...t) { 8692 const n = this.getSlide(); 8693 let i = n ? n[e] : void 0; 8694 return void 0 !== i ? ("function" == typeof i && (i = i.call(this, this, ...t)), i) : super.option(e, ...t); 8695 } 8696 bindHandlers() { 8697 for (const e of ["onMousedown", "onKeydown", "onClick", "onFocus", "onCreateSlide", "onSettle", "onTouchMove", "onTouchEnd", "onTransform"]) this[e] = this[e].bind(this); 8698 } 8699 attachEvents() { 8700 document.addEventListener("mousedown", this.onMousedown), 8701 document.addEventListener("keydown", this.onKeydown, !0), 8702 this.option("trapFocus") && document.addEventListener("focus", this.onFocus, !0), 8703 this.$container.addEventListener("click", this.onClick); 8704 } 8705 detachEvents() { 8706 document.removeEventListener("mousedown", this.onMousedown), 8707 document.removeEventListener("keydown", this.onKeydown, !0), 8708 document.removeEventListener("focus", this.onFocus, !0), 8709 this.$container.removeEventListener("click", this.onClick); 8710 } 8711 initLayout() { 8712 this.$root = this.option("parentEl") || document.body; 8713 let e = this.option("template.main"); 8714 e && (this.$root.insertAdjacentHTML("beforeend", this.localize(e)), (this.$container = this.$root.querySelector(".fancybox__container"))), 8715 this.$container || ((this.$container = document.createElement("div")), this.$root.appendChild(this.$container)), 8716 (this.$container.onscroll = () => ((this.$container.scrollLeft = 0), !1)), 8717 Object.entries({ class: "fancybox__container", role: "dialog", tabIndex: "-1", "aria-modal": "true", "aria-hidden": "true", "aria-label": this.localize("{{MODAL}}") }
8717).forEach((e) => 8718 this.$container.setAttribute(...e) 8719 ), 8720 this.option("animated") && this.$container.classList.add("is-animated"), 8721 (this.$backdrop = this.$container.querySelector(".fancybox__backdrop")), 8722 this.$backdrop || ((this.$backdrop = document.createElement("div")), this.$backdrop.classList.add("fancybox__backdrop"), this.$container.appendChild(this.$backdrop)), 8723 (this.$carousel = this.$container.querySelector(".fancybox__carousel")), 8724 this.$carousel || ((this.$carousel = document.createElement("div")), this.$carousel.classList.add("fancybox__carousel"), this.$container.appendChild(this.$carousel)), 8725 (this.$container.Fancybox = this), 8726 (this.id = this.$container.getAttribute("id")), 8727 this.id || ((this.id = this.options.id || ++He), this.$container.setAttribute("id", "fancybox-" + this.id)); 8728 const t = this.option("mainClass"); 8729 return t && this.$container.classList.add(...t.split(" ")), document.documentElement.classList.add("with-fancybox"), this.trigger("initLayout"), this; 8730 } 8731 setItems(e) { 8732 const t = []; 8733 for (const n of e) { 8734 const e = n.$trigger; 8735 if (e) { 8736 const t = e.dataset || {}; 8737 (n.src = t.src || e.getAttribute("href") || n.src), (n.type = t.type || n.type), !n.src && e instanceof HTMLImageElement && (n.src = e.currentSrc || n.$trigger.src); 8738 } 8739 let i = n.$thumb; 8740 if (!i) { 8741 let e = n.$trigger && n.$trigger.origTarget; 8742 e && (i = e instanceof HTMLImageElement ? e : e.querySelector("img:not([aria-hidden])")), 8743 !i && n.$trigger && (i = n.$trigger instanceof HTMLImageElement ? n.$trigger : n.$trigger.querySelector("img:not([aria-hidden])")); 8744 } 8745 n.$thumb = i || null; 8746 let s = n.thumb; 8747 !s && i && ((s = i.currentSrc || i.src), !s && i.dataset && (s = i.dataset.lazySrc || i.dataset.src)), s || "image" !== n.type || (s = n.src), (n.thumb = s || null), (n.caption = n.caption || ""), t.push(n); 8748 } 8749 this.items = t; 8750 } 8751 initCarousel() { 8752 return ( 8753 (this.Carousel = new _e( 8754 this.$carousel, 8755 re( 8756 !0, 8757 {}, 8758 { 8759 prefix: "", 8760 classNames: { viewport: "fancybox__viewport", track: "fancybox__track", slide: "fancybox__slide" }, 8761 textSelection: !0, 8762 preload: this.option("preload"), 8763 friction: 0.88, 8764 slides: this.items, 8765 initialPage: this.options.startIndex, 8766 slidesPerPage: 1, 8767 infiniteX: this.option("infinite"), 8768 infiniteY: !0, 8769 l10n: this.option("l10n"), 8770 Dots: !1, 8771 Navigation: { classNames: { main: "fancybox__nav", button: "carousel__button", next: "is-next", prev: "is-prev" } }, 8772 Panzoom: { 8773 textSelection: !0, 8774 panOnlyZoomed: () => this.Carousel && this.Carousel.pages && this.Carousel.pages.length < 2 && !this.option("dragToClose"), 8775 lockAxis: () => { 8776 if (this.Carousel) { 8777 let e = "x"; 8778 return this.option("dragToClose") && (e += "y"), e; 8779 } 8780 }, 8781 }, 8782 on: { "*": (e, ...t) => this.trigger(`Carousel.${e}`, ...t), init: (e) => (this.Carousel = e), createSlide: this.onCreateSlide, settle: this.onSettle }, 8783 }, 8784 this.option("Carousel") 8785 ) 8786 )), 8787 this.option("dragToClose") && this.Carousel.Panzoom.on({ touchMove: this.onTouchMove, afterTransform: this.onTransform, touchEnd: this.onTouchEnd }), 8788 this.trigger("initCarousel"), 8789 this 8790 ); 8791 } 8792 onCreateSlide(e, t) { 8793 let n = t.caption || ""; 8794 if (("function" == typeof this.options.caption && (n = this.options.caption.call(this, this, this.Carousel, t)), "string" == typeof n && n.length)) { 8795 const e = document.createElement("div"), 8796 i = `fancybox__caption_${this.id}_${t.index}`; 8797 (e.className = "fancybox__caption"), (e.innerHTML = n), e.setAttribute("id", i), (t.$caption = t.$el.appendChild(e)), t.$el.classList.add("has-caption"), t.$el.setAttribute("aria-labelledby", i); 8798 } 8799 } 8800 onSettle() { 8801 this.option("autoFocus") && this.focus(); 8802 } 8803 onFocus(e) { 8804 this.isTopmost() && this.focus(e); 8805 } 8806 onClick(e) { 8807 if (e.defaultPrevented) return; 8808 let t = e.composedPath()[0]; 8809 if (t.matches("[data-fancybox-close]")) return e.preventDefault(), void Re.close(!1, e); 8810 if (t.matches("[data-fancybox-next]")) return e.preventDefault(), void Re.next(); 8811 if (t.matches("[data-fancybox-prev]")) return e.preventDefault(), void Re.prev(); 8812 const n = document.activeElement; 8813 if (n) { 8814 if (n.closest("[contenteditable]")) return; 8815 t.matches(Ee) || n.blur(); 8816 } 8817 if (!t.closest(".fancybox__content") && !getSelection().toString().length && !1 !== this.trigger("click", e)) 8818 switch (this.option("click")) { 8819 case "close": 8820 this.close(); 8821 break; 8822 case "next": 8823 this.next(); 8824 } 8825 } 8826 onTouchMove() {
8827 const e = this.getSlide().Panzoom; 8828 return !e || 1 === e.content.scale; 8829 } 8830 onTouchEnd(e) { 8831 const t = e.dragOffset.y; 8832 Math.abs(t) >= 150 || (Math.abs(t) >= 35 && e.dragOffset.time < 350) 8833 ? (this.option("hideClass") && (this.getSlide().hideClass = "fancybox-throwOut" + (e.content.y < 0 ? "Up" : "Down")), this.close()) 8834 : "y" === e.lockAxis && e.panTo({ y: 0 }); 8835 } 8836 onTransform(e) { 8837 if (this.$backdrop) { 8838 const t = Math.abs(e.content.y), 8839 n = t < 1 ? "" : Math.max(0.33, Math.min(1, 1 - (t / e.content.fitHeight) * 1.5)); 8840 this.$container.style.setProperty("--fancybox-ts", n ? "0s" : ""), this.$container.style.setProperty("--fancybox-opacity", n); 8841 } 8842 } 8843 onMousedown() { 8844 "ready" === this.state && document.body.classList.add("is-using-mouse"); 8845 } 8846 onKeydown(e) { 8847 if (!this.isTopmost()) return; 8848 document.body.classList.remove("is-using-mouse"); 8849 const t = e.key, 8850 n = this.option("keyboard"); 8851 if (!n || e.ctrlKey || e.altKey || e.shiftKey) return; 8852 const i = e.composedPath()[0], 8853 s = document.activeElement && document.activeElement.classList, 8854 o = s && s.contains("carousel__button"); 8855 if ("Escape" !== t && !o && (e.target.isContentEditable || -1 !== ["BUTTON", "TEXTAREA", "OPTION", "INPUT", "SELECT", "VIDEO"].indexOf(i.nodeName))) return; 8856 if (!1 === this.trigger("keydown", t, e)) return; 8857 const r = n[t]; 8858 "function" == typeof this[r] && this[r](); 8859 } 8860 getSlide() { 8861 const e = this.Carousel; 8862 if (!e) return null; 8863 const t = null === e.page ? e.option("initialPage") : e.page, 8864 n = e.pages || []; 8865 return n.length && n[t] ? n[t].slides[0] : null; 8866 } 8867 focus(e) { 8868 if (Re.ignoreFocusChange) return; 8869 if (["init", "closing", "customClosing", "destroy"].indexOf(this.state) > -1) return; 8870 const t = this.$container, 8871 n = this.getSlide(), 8872 i = "done" === n.state ? n.$el : null; 8873 if (i && i.contains(document.activeElement)) return; 8874 e && e.preventDefault(), (Re.ignoreFocusChange = !0); 8875 const s = Array.from(t.querySelectorAll(Ee)); 8876 let o, 8877 r = []; 8878 for (let e of s) { 8879 const t = e.offsetParent, 8880 n = i && i.contains(e), 8881 s = !this.Carousel.$viewport.contains(e); 8882 t && (n || s) 8883 ? (r.push(e), 8884 void 0 !== e.dataset.origTabindex && ((e.tabIndex = e.dataset.origTabindex), e.removeAttribute("data-orig-tabindex")), 8885 (e.hasAttribute("autoFocus") || (!o && n && !e.classList.contains("carousel__button"))) && (o = e)) 8886 : ((e.dataset.origTabindex = void 0 === e.dataset.origTabindex ? e.getAttribute("tabindex") : e.dataset.origTabindex), (e.tabIndex = -1)); 8887 } 8888 e ? (r.indexOf(e.target) > -1 ? (this.lastFocus = e.target) : this.lastFocus === t ? Se(r[r.length - 1]) : Se(t)) : this.option("autoFocus") && o ? Se(o) : r.indexOf(document.activeElement) < 0 && Se(t), 8889 (this.lastFocus = document.activeElement), 8890 (Re.ignoreFocusChange = !1); 8891 } 8892 hideScrollbar() { 8893 if (!Ce) return; 8894 const e = window.innerWidth - document.documentElement.getBoundingClientRect().width, 8895 t = "fancybox-style-noscroll"; 8896 let n = document.getElementById(t); 8897 n || 8898 (e > 0 && 8899 ((n = document.createElement("style")), 8900 (n.id = t), 8901 (n.type = "text/css"), 8902 (n.innerHTML = `.compensate-for-scrollbar {padding-right: ${e}px;}`), 8903 document.getElementsByTagName("head")[0].appendChild(n), 8904 document.body.classList.add("compensate-for-scrollbar"))); 8905 } 8906 revealScrollbar() { 8907 document.body.classList.remove("compensate-for-scrollbar"); 8908 const e = document.getElementById("fancybox-style-noscroll"); 8909 e && e.remove(); 8910 } 8911 clearContent(e) { 8912 this.Carousel.trigger("removeSlide", e),
8913 e.$content && (e.$content.remove(), (e.$content = null)), 8914 e.$closeButton && (e.$closeButton.remove(), (e.$closeButton = null)), 8915 e._className && e.$el.classList.remove(e._className); 8916 } 8917 setContent(e, t, n = {}) { 8918 let i; 8919 const s = e.$el; 8920 if (t instanceof HTMLElement) ["img", "iframe", "video", "audio"].indexOf(t.nodeName.toLowerCase()) > -1 ? ((i = document.createElement("div")), i.appendChild(t)) : (i = t); 8921 else { 8922 const e = document.createRange().createContextualFragment(t); 8923 (i = document.createElement("div")), i.appendChild(e); 8924 } 8925 if ((e.filter && !e.error && (i = i.querySelector(e.filter)), i instanceof Element)) 8926 return ( 8927 (e._className = `has-${n.suffix || e.type || "unknown"}`), 8928 s.classList.add(e._className), 8929 i.classList.add("fancybox__content"), 8930 ("none" !== i.style.display && "none" !== getComputedStyle(i).getPropertyValue("display")) || (i.style.display = e.display || this.option("defaultDisplay") || "flex"), 8931 e.id && i.setAttribute("id", e.id), 8932 (e.$content = i), 8933 s.prepend(i), 8934 this.manageCloseButton(e), 8935 "loading" !== e.state && this.revealContent(e), 8936 i 8937 ); 8938 this.setError(e, "{{ELEMENT_NOT_FOUND}}"); 8939 } 8940 manageCloseButton(e) { 8941 const t = void 0 === e.closeButton ? this.option("closeButton") : e.closeButton; 8942 if (!t || ("top" === t && this.$closeButton)) return; 8943 const n = document.createElement("button"); 8944 n.classList.add("carousel__button", "is-close"), 8945 n.setAttribute("title", this.options.l10n.CLOSE), 8946 (n.innerHTML = this.option("template.closeButton")), 8947 n.addEventListener("click", (e) => this.close(e)), 8948 "inside" === t ? (e.$closeButton && e.$closeButton.remove(), (e.$closeButton = e.$content.appendChild(n))) : (this.$closeButton = this.$container.insertBefore(n, this.$container.firstChild)); 8949 } 8950 revealContent(e) { 8951 this.trigger("reveal", e), (e.$content.style.visibility = ""); 8952 let t = !1; 8953 e.error || "loading" === e.state || null !== this.Carousel.prevPage || e.index !== this.options.startIndex || (t = void 0 === e.showClass ? this.option("showClass") : e.showClass), 8954 t 8955 ? ((e.state = "animating"), 8956 this.animateCSS(e.$content, t, () => { 8957 this.done(e); 8958 })) 8959 : this.done(e); 8960 } 8961 animateCSS(e, t, n) { 8962 if ((e && e.dispatchEvent(new CustomEvent("animationend", { bubbles: !0, cancelable: !0 })), !e || !t)) return void ("function" == typeof n && n()); 8963 const i = function (s) { 8964 s.currentTarget === this && (e.removeEventListener("animationend", i), n && n(), e.classList.remove(t)); 8965 }; 8966 e.addEventListener("animationend", i), e.classList.add(t); 8967 } 8968 done(e) { 8969 (e.state = "done"), this.trigger("done", e); 8970 const t = this.getSlide(); 8971 t && e.index === t.index && this.option("autoFocus") && this.focus(); 8972 } 8973 setError(e, t) { 8974 (e.error = t), this.hideLoading(e), this.clearContent(e); 8975 const n = document.createElement("div"); 8976 n.classList.add("fancybox-error"), (n.innerHTML = this.localize(t || "<p>{{ERROR}}</p>")), this.setContent(e, n, { suffix: "error" }); 8977 } 8978 showLoading(e) { 8979 (e.state = "loading"), e.$el.classList.add("is-loading"); 8980 let t = e.$el.querySelector(".fancybox__spinner"); 8981 t || 8982 ((t = document.createElement("div")), 8983 t.classList.add("fancybox__spinner"), 8984 (t.innerHTML = this.option("template.spinner")), 8985 t.addEventListener("click", () => { 8986 this.Carousel.Panzoom.velocity || this.close(); 8987 }), 8988 e.$el.prepend(t)); 8989 } 8990 hideLoading(e) { 8991 const t = e.$el && e.$el.querySelector(".fancybox__spinner"); 8992 t && (t.remove(), e.$el.classList.remove("is-loading")), "loading" === e.state && (this.trigger("load", e), (e.state = "ready")); 8993 } 8994 next() { 8995 const e = this.Carousel; 8996 e && e.pages.length > 1 && e.slideNext(); 8997 } 8998 prev() { 8999 const e = this.Carousel; 9000 e && e.pages.length > 1 && e.slidePrev(); 9001 } 9002 jumpTo(...e) { 9003 this.Carousel && this.Carousel.slideTo(...e); 9004 } 9005 isClosing() { 9006 return ["closing", "customClosing", "destroy"].includes(this.state); 9007 } 9008 isTopmost() { 9009 return Re.getInstance().id == this.id; 9010 } 9011 close(e) { 9012 if ((e && e.preventDefault(), this.isClosing())) return; 9013 if (!1 === this.trigger("shouldClose", e)) return; 9014 if (((this.state = "closing"), this.Carousel.Panzoom.destroy(), this.detachEvents(), this.trigger("closing", e), "destroy" === this.state)) return; 9015 this.$container.setAttribute("aria-hidden", "true"), this.$container.classList.add("is-closing");
9016 const t = this.getSlide(); 9017 if ( 9018 (this.Carousel.slides.forEach((e) => { 9019 e.$content && e.index !== t.index && this.Carousel.trigger("removeSlide", e); 9020 }), 9021 "closing" === this.state) 9022 ) { 9023 const e = void 0 === t.hideClass ? this.option("hideClass") : t.hideClass; 9024 this.animateCSS( 9025 t.$content, 9026 e, 9027 () => { 9028 this.destroy(); 9029 }, 9030 !0 9031 ); 9032 } 9033 } 9034 destroy() { 9035 if ("destroy" === this.state) return; 9036 (this.state = "destroy"), this.trigger("destroy"); 9037 const e = this.option("placeFocusBack") ? this.option("triggerTarget", this.getSlide().$trigger) : null; 9038 this.Carousel.destroy(), 9039 this.detachPlugins(), 9040 (this.Carousel = null), 9041 (this.options = {}), 9042 (this.events = {}), 9043 this.$container.remove(), 9044 (this.$container = this.$backdrop = this.$carousel = null), 9045 e && Se(e), 9046 Fe.delete(this.id); 9047 const t = Re.getInstance(); 9048 t ? t.focus() : (document.documentElement.classList.remove("with-fancybox"), document.body.classList.remove("is-using-mouse"), this.revealScrollbar()); 9049 } 9050 static show(e, t = {}) { 9051 return new Re(e, t); 9052 } 9053 static fromEvent(e, t = {}) { 9054 if (e.defaultPrevented) return; 9055 if (e.button && 0 !== e.button) return; 9056 if (e.ctrlKey || e.metaKey || e.shiftKey) return; 9057 const n = e.composedPath()[0]; 9058 let i, 9059 s, 9060 o, 9061 r = n; 9062 if (((r.matches("[data-fancybox-trigger]") || (r = r.closest("[data-fancybox-trigger]"))) && ((t.triggerTarget = r), (i = r && r.dataset && r.dataset.fancyboxTrigger)), i)) { 9063 const e = document.querySelectorAll(`[data-fancybox="${i}"]`), 9064 t = parseInt(r.dataset.fancyboxIndex, 10) || 0; 9065 r = e.length ? e[t] : r; 9066 } 9067 Array.from(Re.openers.keys()) 9068 .reverse() 9069 .some((t) => { 9070 o = r || n; 9071 let i = !1; 9072 try { 9073 o instanceof Element && ("string" == typeof t || t instanceof String) && (i = o.matches(t) || (o = o.closest(t))); 9074 } catch (e) {} 9075 return !!i && (e.preventDefault(), (s = t), !0); 9076 }); 9077 let a = !1; 9078 if (s) { 9079 (t.event = e), (t.target = o), (o.origTarget = n), (a = Re.fromOpener(s, t)); 9080 const i = Re.getInstance(); 9081 i && "ready" === i.state && e.detail && document.body.classList.add("is-using-mouse"); 9082 } 9083 return a; 9084 } 9085 static fromOpener(e, t = {}) { 9086 let n = [], 9087 i = t.startIndex || 0, 9088 s = t.target || null; 9089 const o = void 0 !== (t = re({}, t, Re.openers.get(e))).groupAll && t.groupAll, 9090 r = void 0 === t.groupAttr ? "data-fancybox" : t.groupAttr, 9091 a = r && s ? s.getAttribute(`${r}`) : ""; 9092 if (!s || a || o) { 9093 const i = t.root || (s ? s.getRootNode() : document.body); 9094 n = [].slice.call(i.querySelectorAll(e)); 9095 } 9096 if ((s && !o && (n = a ? n.filter((e) => e.getAttribute(`${r}`) === a) : [s]), !n.length)) return !1; 9097 const l = Re.getInstance(); 9098 return ( 9099 !(l && n.indexOf(l.options.$trigger) > -1) && 9100 ((i = s ? n.indexOf(s) : i), 9101 (n = n.map(function (e) {
9102 const t = ["false", "0", "no", "null", "undefined"], 9103 n = ["true", "1", "yes"], 9104 i = Object.assign({}, e.dataset), 9105 s = {}; 9106 for (let [e, o] of Object.entries(i)) 9107 if ("fancybox" !== e) 9108 if ("width" === e || "height" === e) s[`_${e}`] = o; 9109 else if ("string" == typeof o || o instanceof String) 9110 if (t.indexOf(o) > -1) s[e] = !1; 9111 else if (n.indexOf(s[e]) > -1) s[e] = !0; 9112 else 9113 try { 9114 s[e] = JSON.parse(o); 9115 } catch (t) { 9116 s[e] = o; 9117 } 9118 else s[e] = o; 9119 return e instanceof Element && (s.$trigger = e), s; 9120 })), 9121 new Re(n, re({}, t, { startIndex: i, $trigger: s }))) 9122 ); 9123 } 9124 static bind(e, t = {}) { 9125 function n() { 9126 document.body.addEventListener("click", Re.fromEvent, !1); 9127 } 9128 Ce && (Re.openers.size || (/complete|interactive|loaded/.test(document.readyState) ? n() : document.addEventListener("DOMContentLoaded", n)), Re.openers.set(e, t)); 9129 } 9130 static unbind(e) { 9131 Re.openers.delete(e), Re.openers.size || Re.destroy(); 9132 } 9133 static destroy() { 9134 let e; 9135 for (; (e = Re.getInstance()); ) e.destroy(); 9136 (Re.openers = new Map()), document.body.removeEventListener("click", Re.fromEvent, !1); 9137 } 9138 static getInstance(e) { 9139 return e 9140 ? Fe.get(e) 9141 : Array.from(Fe.values()) 9142 .reverse() 9143 .find((e) => !e.isClosing() && e) || null; 9144 } 9145 static close(e = !0, t) { 9146 if (e) for (const e of Fe.values()) e.close(t); 9147 else { 9148 const e = Re.getInstance(); 9149 e && e.close(t); 9150 } 9151 } 9152 static next() { 9153 const e = Re.getInstance(); 9154 e && e.next(); 9155 } 9156 static prev() { 9157 const e = Re.getInstance(); 9158 e && e.prev(); 9159 } 9160 } 9161 (Re.version = "4.0.31"), (Re.defaults = je), (Re.openers = new Map()), (Re.Plugins = ze), Re.bind("[data-fancybox]"); 9162 for (const [e, t] of Object.entries(Re.Plugins || {})) "function" == typeof t.create && t.create(Re); 9163 var Be = "top", 9164 qe = "bottom", 9165 We = "right", 9166 Ve = "left", 9167 Ge = "auto", 9168 Xe = [Be, qe, We, Ve], 9169 Ye = "start", 9170 Ue = "end", 9171 Ke = "clippingParents", 9172 Ze = "viewport", 9173 Qe = "popper", 9174 Je = "reference", 9175 et = Xe.reduce(function (e, t) { 9176 return e.concat([t + "-" + Ye, t + "-" + Ue]); 9177 }, []), 9178 tt = [].concat(Xe, [Ge]).reduce(function (e, t) { 9179 return e.concat([t, t + "-" + Ye, t + "-" + Ue]); 9180 }, []), 9181 nt = "beforeRead", 9182 it = "read", 9183 st = "afterRead", 9184 ot = "beforeMain", 9185 rt = "main", 9186 at = "afterMain", 9187 lt = "beforeWrite", 9188 ct = "write", 9189 dt = "afterWrite", 9190 ht = [nt, it, st, ot, rt, at, lt, ct, dt]; 9191 function ut(e) { 9192 return e ? (e.nodeName || "").toLowerCase() : null; 9193 } 9194 function pt(e) { 9195 if (null == e) return window; 9196 if ("[object Window]" !== e.toString()) { 9197 var t = e.ownerDocument; 9198 return (t && t.defaultView) || window; 9199 } 9200 return e; 9201 } 9202 function ft(e) { 9203 return e instanceof pt(e).Element || e instanceof Element; 9204 } 9205 function gt(e) { 9206 return e instanceof pt(e).HTMLElement || e instanceof HTMLElement; 9207 } 9208 function mt(e) { 9209 return "undefined" != typeof ShadowRoot && (e instanceof pt(e).ShadowRoot || e instanceof ShadowRoot); 9210 } 9211 const vt = { 9212 name: "applyStyles", 9213 enabled: !0, 9214 phase: "write", 9215 fn: function (e) { 9216 var t = e.state;
9217 Object.keys(t.elements).forEach(function (e) { 9218 var n = t.styles[e] || {}, 9219 i = t.attributes[e] || {}, 9220 s = t.elements[e]; 9221 gt(s) && 9222 ut(s) && 9223 (Object.assign(s.style, n), 9224 Object.keys(i).forEach(function (e) { 9225 var t = i[e]; 9226 !1 === t ? s.removeAttribute(e) : s.setAttribute(e, !0 === t ? "" : t); 9227 })); 9228 }); 9229 }, 9230 effect: function (e) { 9231 var t = e.state, 9232 n = { popper: { position: t.options.strategy, left: "0", top: "0", margin: "0" }, arrow: { position: "absolute" }, reference: {} }; 9233 return ( 9234 Object.assign(t.elements.popper.style, n.popper), 9235 (t.styles = n), 9236 t.elements.arrow && Object.assign(t.elements.arrow.style, n.arrow), 9237 function () { 9238 Object.keys(t.elements).forEach(function (e) { 9239 var i = t.elements[e], 9240 s = t.attributes[e] || {}, 9241 o = Object.keys(t.styles.hasOwnProperty(e) ? t.styles[e] : n[e]).reduce(function (e, t) { 9242 return (e[t] = ""), e; 9243 }, {}); 9244 gt(i) && 9245 ut(i) && 9246 (Object.assign(i.style, o), 9247 Object.keys(s).forEach(function (e) { 9248 i.removeAttribute(e); 9249 })); 9250 }); 9251 } 9252 ); 9253 }, 9254 requires: ["computeStyles"], 9255 }; 9256 function bt(e) { 9257 return e.split("-")[0]; 9258 } 9259 var yt = Math.max, 9260 wt = Math.min, 9261 xt = Math.round; 9262 function _t() { 9263 var e = navigator.userAgentData; 9264 return null != e && e.brands 9265 ? e.brands 9266 .map(function (e) { 9267 return e.brand + "/" + e.version; 9268 }) 9269 .join(" ") 9270 : navigator.userAgent; 9271 } 9272 function Ct() { 9273 return !/^((?!chrome|android).)*safari/i.test(_t()); 9274 } 9275 function Tt(e, t, n) { 9276 void 0 === t && (t = !1), void 0 === n && (n = !1); 9277 var i = e.getBoundingClientRect(), 9278 s = 1, 9279 o = 1; 9280 t && gt(e) && ((s = (e.offsetWidth > 0 && xt(i.width) / e.offsetWidth) || 1), (o = (e.offsetHeight > 0 && xt(i.height) / e.offsetHeight) || 1)); 9281 var r = (ft(e) ? pt(e) : window).visualViewport, 9282 a = !Ct() && n, 9283 l = (i.left + (a && r ? r.offsetLeft : 0)) / s, 9284 c = (i.top + (a && r ? r.offsetTop : 0)) / o, 9285 d = i.width / s, 9286 h = i.height / o; 9287 return { width: d, height: h, top: c, right: l + d, bottom: c + h, left: l, x: l, y: c }; 9288 } 9289 function Et(e) { 9290 var t = Tt(e), 9291 n = e.offsetWidth, 9292 i = e.offsetHeight; 9293 return Math.abs(t.width - n) <= 1 && (n = t.width), Math.abs(t.height - i) <= 1 && (i = t.height), { x: e.offsetLeft, y: e.offsetTop, width: n, height: i }; 9294 } 9295 function St(e, t) { 9296 var n = t.getRootNode && t.getRootNode(); 9297 if (e.contains(t)) return !0; 9298 if (n && mt(n)) { 9299 var i = t; 9300 do { 9301 if (i && e.isSameNode(i)) return !0; 9302 i = i.parentNode || i.host; 9303 } while (i); 9304 } 9305 return !1; 9306 } 9307 function At(e) { 9308 return pt(e).getComputedStyle(e); 9309 } 9310 function kt(e) { 9311 return ["table", "td", "th"].indexOf(ut(e)) >= 0; 9312 } 9313 function $t(e) { 9314 return ((ft(e) ? e.ownerDocument : e.document) || window.document).documentElement; 9315 } 9316 function Lt(e) { 9317 return "html" === ut(e) ? e : e.assignedSlot || e.parentNode || (mt(e) ? e.host : null) || $t(e); 9318 } 9319 function Pt(e) { 9320 return gt(e) && "fixed" !== At(e).position ? e.offsetParent : null; 9321 } 9322 function Ot(e) { 9323 for (var t = pt(e), n = Pt(e); n && kt(n) && "static" === At(n).position; ) n = Pt(n); 9324 return n && ("html" === ut(n) || ("body" === ut(n) && "static" === At(n).position)) 9325 ? t 9326 : n || 9327 (function (e) { 9328 var t = /firefox/i.test(_t()); 9329 if (/Trident/i.test(_t()) && gt(e) && "fixed" === At(e).position) return null; 9330 var n = Lt(e); 9331 for (mt(n) && (n = n.host); gt(n) && ["html", "body"].indexOf(ut(n)) < 0; ) { 9332 var i = At(n); 9333 if ( 9334 "none" !== i.transform || 9335 "none" !== i.perspective || 9336 "paint" === i.contain || 9337 -1 !== ["transform", "perspective"].indexOf(i.willChange) || 9338 (t && "filter" === i.willChange) || 9339 (t && i.filter && "none" !== i.filter) 9340 ) 9341 return n; 9342 n = n.parentNode; 9343 } 9344 return null; 9345 })(e) || 9346 t; 9347 } 9348 function Mt(e) { 9349 return ["top", "bottom"].indexOf(e) >= 0 ? "x" : "y"; 9350 } 9351 function Dt(e, t, n) { 9352 return yt(e, wt(t, n)); 9353 } 9354 function Nt(e) { 9355 return Object.assign({}, { top: 0, right: 0, bottom: 0, left: 0 }, e); 9356 } 9357 function It(e, t) { 9358 return t.reduce(function (t, n) { 9359 return (t[n] = e), t; 9360 }, {}); 9361 } 9362 const zt = { 9363 name: "arrow", 9364 enabled: !0, 9365 phase: "main", 9366 fn: function (e) { 9367 var t, 9368 n = e.state, 9369 i = e.name, 9370 s = e.options, 9371 o = n.elements.arrow, 9372 r = n.modifiersData.popperOffsets, 9373 a = bt(n.placement), 9374 l = Mt(a), 9375 c = [Ve, We].indexOf(a) >= 0 ? "height" : "width"; 9376 if (o && r) { 9377 var d = (function (e, t) { 9378 return Nt("number" != typeof (e = "function" == typeof e ? e(Object.assign({}, t.rects, { placement: t.placement })) : e) ? e : It(e, Xe)); 9379 })(s.padding, n), 9380 h = Et(o), 9381 u = "y" === l ? Be : Ve, 9382 p = "y" === l ? qe : We, 9383 f = n.rects.reference[c] + n.rects.reference[l] - r[l] - n.rects.popper[c], 9384 g = r[l] - n.rects.reference[l], 9385 m = Ot(o), 9386 v = m ? ("y" === l ? m.clientHeight || 0 : m.clientWidth || 0) : 0, 9387 b = f / 2 - g / 2, 9388 y = d[u], 9389 w = v - h[c] - d[p], 9390 x = v / 2 - h[c] / 2 + b, 9391 _ = Dt(y, x, w), 9392 C = l; 9393 n.modifiersData[i] = (((t = {})[C] = _), (t.centerOffset = _ - x), t); 9394 } 9395 }, 9396 effect: function (e) { 9397 var t = e.state, 9398 n = e.options.element,
9399 i = void 0 === n ? "[data-popper-arrow]" : n; 9400 null != i && ("string" != typeof i || (i = t.elements.popper.querySelector(i))) && St(t.elements.popper, i) && (t.elements.arrow = i); 9401 }, 9402 requires: ["popperOffsets"], 9403 requiresIfExists: ["preventOverflow"], 9404 }; 9405 function jt(e) { 9406 return e.split("-")[1]; 9407 } 9408 var Ft = { top: "auto", right: "auto", bottom: "auto", left: "auto" }; 9409 function Ht(e) { 9410 var t, 9411 n = e.popper, 9412 i = e.popperRect, 9413 s = e.placement, 9414 o = e.variation, 9415 r = e.offsets, 9416 a = e.position, 9417 l = e.gpuAcceleration, 9418 c = e.adaptive, 9419 d = e.roundOffsets, 9420 h = e.isFixed, 9421 u = r.x, 9422 p = void 0 === u ? 0 : u, 9423 f = r.y, 9424 g = void 0 === f ? 0 : f, 9425 m = "function" == typeof d ? d({ x: p, y: g }) : { x: p, y: g }; 9426 (p = m.x), (g = m.y); 9427 var v = r.hasOwnProperty("x"), 9428 b = r.hasOwnProperty("y"), 9429 y = Ve, 9430 w = Be, 9431 x = window; 9432 if (c) { 9433 var _ = Ot(n), 9434 C = "clientHeight", 9435 T = "clientWidth"; 9436 if ((_ === pt(n) && "static" !== At((_ = $t(n))).position && "absolute" === a && ((C = "scrollHeight"), (T = "scrollWidth")), s === Be || ((s === Ve || s === We) && o === Ue))) 9437 (w = qe), (g -= (h && _ === x && x.visualViewport ? x.visualViewport.height : _[C]) - i.height), (g *= l ? 1 : -1); 9438 if (s === Ve || ((s === Be || s === qe) && o === Ue)) (y = We), (p -= (h && _ === x && x.visualViewport ? x.visualViewport.width : _[T]) - i.width), (p *= l ? 1 : -1); 9439 } 9440 var E, 9441 S = Object.assign({ position: a }, c && Ft), 9442 A = 9443 !0 === d 9444 ? (function (e) { 9445 var t = e.x, 9446 n = e.y, 9447 i = window.devicePixelRatio || 1; 9448 return { x: xt(t * i) / i || 0, y: xt(n * i) / i || 0 }; 9449 })({ x: p, y: g }) 9450 : { x: p, y: g }; 9451 return ( 9452 (p = A.x), 9453 (g = A.y), 9454 l 9455 ? Object.assign({}, S, (((E = {})[w] = b ? "0" : ""), (E[y] = v ? "0" : ""), (E.transform = (x.devicePixelRatio || 1) <= 1 ? "translate(" + p + "px, " + g + "px)" : "translate3d(" + p + "px, " + g + "px, 0)"), E)) 9456 : Object.assign({}, S, (((t = {})[w] = b ? g + "px" : ""), (t[y] = v ? p + "px" : ""), (t.transform = ""), t)) 9457 ); 9458 } 9459 const Rt = { 9460 name: "computeStyles", 9461 enabled: !0, 9462 phase: "beforeWrite", 9463 fn: function (e) { 9464 var t = e.state, 9465 n = e.options, 9466 i = n.gpuAcceleration, 9467 s = void 0 === i || i, 9468 o = n.adaptive, 9469 r = void 0 === o || o, 9470 a = n.roundOffsets, 9471 l = void 0 === a || a, 9472 c = { placement: bt(t.placement), variation: jt(t.placement), popper: t.elements.popper, popperRect: t.rects.popper, gpuAcceleration: s, isFixed: "fixed" === t.options.strategy }; 9473 null != t.modifiersData.popperOffsets && 9474 (t.styles.popper = Object.assign({}, t.styles.popper, Ht(Object.assign({}, c, { offsets: t.modifiersData.popperOffsets, position: t.options.strategy, adaptive: r, roundOffsets: l })))), 9475 null != t.modifiersData.arrow && (t.styles.arrow = Object.assign({}, t.styles.arrow, Ht(Object.assign({}, c, { offsets: t.modifiersData.arrow, position: "absolute", adaptive: !1, roun
9475dOffsets: l })))), 9476 (t.attributes.popper = Object.assign({}, t.attributes.popper, { "data-popper-placement": t.placement })); 9477 }, 9478 data: {}, 9479 }; 9480 var Bt = { passive: !0 }; 9481 const qt = { 9482 name: "eventListeners", 9483 enabled: !0, 9484 phase: "write", 9485 fn: function () {}, 9486 effect: function (e) { 9487 var t = e.state, 9488 n = e.instance, 9489 i = e.options, 9490 s = i.scroll, 9491 o = void 0 === s || s, 9492 r = i.resize, 9493 a = void 0 === r || r, 9494 l = pt(t.elements.popper), 9495 c = [].concat(t.scrollParents.reference, t.scrollParents.popper); 9496 return ( 9497 o && 9498 c.forEach(function (e) { 9499 e.addEventListener("scroll", n.update, Bt); 9500 }), 9501 a && l.addEventListener("resize", n.update, Bt), 9502 function () { 9503 o && 9504 c.forEach(function (e) { 9505 e.removeEventListener("scroll", n.update, Bt); 9506 }), 9507 a && l.removeEventListener("resize", n.update, Bt); 9508 } 9509 ); 9510 }, 9511 data: {}, 9512 }; 9513 var Wt = { left: "right", right: "left", bottom: "top", top: "bottom" }; 9514 function Vt(e) { 9515 return e.replace(/left|right|bottom|top/g, function (e) { 9516 return Wt[e]; 9517 }); 9518 } 9519 var Gt = { start: "end", end: "start" }; 9520 function Xt(e) { 9521 return e.replace(/start|end/g, function (e) { 9522 return Gt[e]; 9523 }); 9524 } 9525 function Yt(e) { 9526 var t = pt(e); 9527 return { scrollLeft: t.pageXOffset, scrollTop: t.pageYOffset }; 9528 } 9529 function Ut(e) { 9530 return Tt($t(e)).left + Yt(e).scrollLeft; 9531 } 9532 function Kt(e) { 9533 var t = At(e), 9534 n = t.overflow, 9535 i = t.overflowX, 9536 s = t.overflowY; 9537 return /auto|scroll|overlay|hidden/.test(n + s + i); 9538 } 9539 function Zt(e) { 9540 return ["html", "body", "#document"].indexOf(ut(e)) >= 0 ? e.ownerDocument.body : gt(e) && Kt(e) ? e : Zt(Lt(e)); 9541 } 9542 function Qt(e, t) { 9543 var n; 9544 void 0 === t && (t = []); 9545 var i = Zt(e), 9546 s = i === (null == (n = e.ownerDocument) ? void 0 : n.body), 9547 o = pt(i), 9548 r = s ? [o].concat(o.visualViewport || [], Kt(i) ? i : []) : i, 9549 a = t.concat(r); 9550 return s ? a : a.concat(Qt(Lt(r))); 9551 } 9552 function Jt(e) { 9553 return Object.assign({}, e, { left: e.x, top: e.y, right: e.x + e.width, bottom: e.y + e.height }); 9554 } 9555 function en(e, t, n) { 9556 return t === Ze 9557 ? Jt( 9558 (function (e, t) { 9559 var n = pt(e), 9560 i = $t(e), 9561 s = n.visualViewport, 9562 o = i.clientWidth, 9563 r = i.clientHeight, 9564 a = 0, 9565 l = 0; 9566 if (s) { 9567 (o = s.width), (r = s.height); 9568 var c = Ct(); 9569 (c || (!c && "fixed" === t)) && ((a = s.offsetLeft), (l = s.offsetTop)); 9570 } 9571 return { width: o, height: r, x: a + Ut(e), y: l }; 9572 })(e, n) 9573 ) 9574 : ft(t) 9575 ? (function (e, t) { 9576 var n = Tt(e, !1, "fixed" === t); 9577 return ( 9578 (n.top = n.top + e.clientTop), 9579 (n.left = n.left + e.clientLeft), 9580 (n.bottom = n.top + e.clientHeight), 9581 (n.right = n.left + e.clientWidth), 9582 (n.width = e.clientWidth), 9583 (n.height = e.clientHeight), 9584 (n.x = n.left), 9585 (n.y = n.top), 9586 n 9587 ); 9588 })(t, n) 9589 : Jt( 9590 (function (e) { 9591 var t, 9592 n = $t(e), 9593 i = Yt(e), 9594 s = null == (t = e.ownerDocument) ? void 0 : t.body, 9595 o = yt(n.scrollWidth, n.clientWidth, s ? s.scrollWidth : 0, s ? s.clientWidth : 0), 9596 r = yt(n.scrollHeight, n.clientHeight, s ? s.scrollHeight : 0, s ? s.clientHeight : 0), 9597 a = -i.scrollLeft + Ut(e), 9598 l = -i.scrollTop; 9599 return "rtl" === At(s || n).direction && (a += yt(n.clientWidth, s ? s.clientWidth : 0) - o), { width: o, height: r, x: a, y: l }; 9600 })($t(e)) 9601 ); 9602 } 9603 function tn(e, t, n, i) { 9604 var s = 9605 "clippingParents" === t 9606 ? (function (e) { 9607 var t = Qt(Lt(e)), 9608 n = ["absolute", "fixed"].indexOf(At(e).position) >= 0 && gt(e) ? Ot(e) : e; 9609 return ft(n) 9610 ? t.filter(function (e) { 9611 return ft(e) && St(e, n) && "body" !== ut(e); 9612 }) 9613 : []; 9614 })(e) 9615 : [].concat(t), 9616 o = [].concat(s, [n]), 9617 r = o[0], 9618 a = o.reduce(function (t, n) { 9619 var s = en(e, n, i); 9620 return (t.top = yt(s.top, t.top)), (t.right = wt(s.right, t.right)), (t.bottom = wt(s.bottom, t.bottom)), (t.left = yt(s.left, t.left)), t;
9621 }, en(e, r, i)); 9622 return (a.width = a.right - a.left), (a.height = a.bottom - a.top), (a.x = a.left), (a.y = a.top), a; 9623 } 9624 function nn(e) { 9625 var t, 9626 n = e.reference, 9627 i = e.element, 9628 s = e.placement, 9629 o = s ? bt(s) : null, 9630 r = s ? jt(s) : null, 9631 a = n.x + n.width / 2 - i.width / 2, 9632 l = n.y + n.height / 2 - i.height / 2; 9633 switch (o) { 9634 case Be: 9635 t = { x: a, y: n.y - i.height }; 9636 break; 9637 case qe: 9638 t = { x: a, y: n.y + n.height }; 9639 break; 9640 case We: 9641 t = { x: n.x + n.width, y: l }; 9642 break; 9643 case Ve: 9644 t = { x: n.x - i.width, y: l }; 9645 break; 9646 default: 9647 t = { x: n.x, y: n.y }; 9648 } 9649 var c = o ? Mt(o) : null; 9650 if (null != c) { 9651 var d = "y" === c ? "height" : "width"; 9652 switch (r) { 9653 case Ye: 9654 t[c] = t[c] - (n[d] / 2 - i[d] / 2); 9655 break; 9656 case Ue: 9657 t[c] = t[c] + (n[d] / 2 - i[d] / 2); 9658 } 9659 } 9660 return t; 9661 } 9662 function sn(e, t) { 9663 void 0 === t && (t = {}); 9664 var n = t, 9665 i = n.placement, 9666 s = void 0 === i ? e.placement : i, 9667 o = n.strategy, 9668 r = void 0 === o ? e.strategy : o, 9669 a = n.boundary, 9670 l = void 0 === a ? Ke : a, 9671 c = n.rootBoundary, 9672 d = void 0 === c ? Ze : c, 9673 h = n.elementContext, 9674 u = void 0 === h ? Qe : h, 9675 p = n.altBoundary, 9676 f = void 0 !== p && p, 9677 g = n.padding, 9678 m = void 0 === g ? 0 : g, 9679 v = Nt("number" != typeof m ? m : It(m, Xe)), 9680 b = u === Qe ? Je : Qe, 9681 y = e.rects.popper, 9682 w = e.elements[f ? b : u], 9683 x = tn(ft(w) ? w : w.contextElement || $t(e.elements.popper), l, d, r), 9684 _ = Tt(e.elements.reference), 9685 C = nn({ reference: _, element: y, strategy: "absolute", placement: s }), 9686 T = Jt(Object.assign({}, y, C)), 9687 E = u === Qe ? T : _, 9688 S = { top: x.top - E.top + v.top, bottom: E.bottom - x.bottom + v.bottom, left: x.left - E.left + v.left, right: E.right - x.right + v.right }, 9689 A = e.modifiersData.offset; 9690 if (u === Qe && A) { 9691 var k = A[s]; 9692 Object.keys(S).forEach(function (e) { 9693 var t = [We, qe].indexOf(e) >= 0 ? 1 : -1, 9694 n = [Be, qe].indexOf(e) >= 0 ? "y" : "x"; 9695 S[e] += k[n] * t; 9696 }); 9697 } 9698 return S; 9699 } 9700 const on = { 9701 name: "flip", 9702 enabled: !0, 9703 phase: "main", 9704 fn: function (e) { 9705 var t = e.state, 9706 n = e.options, 9707 i = e.name; 9708 if (!t.modifiersData[i]._skip) { 9709 for ( 9710 var s = n.mainAxis, 9711 o = void 0 === s || s, 9712 r = n.altAxis, 9713 a = void 0 === r || r, 9714 l = n.fallbackPlacements, 9715 c = n.padding, 9716 d = n.boundary, 9717 h = n.rootBoundary, 9718 u = n.altBoundary, 9719 p = n.flipVariations, 9720 f = void 0 === p || p, 9721 g = n.allowedAutoPlacements, 9722 m = t.options.placement, 9723 v = bt(m), 9724 b = 9725 l || 9726 (v === m || !f 9727 ? [Vt(m)] 9728 : (function (e) { 9729 if (bt(e) === Ge) return []; 9730 var t = Vt(e); 9731 return [Xt(e), t, Xt(t)]; 9732 })(m)), 9733 y = [m].concat(b).reduce(function (e, n) { 9734 return e.concat( 9735 bt(n) === Ge 9736 ? (function (e, t) { 9737 void 0 === t && (t = {}); 9738 var n = t, 9739 i = n.placement, 9740 s = n.boundary, 9741 o = n.rootBoundary, 9742 r = n.padding, 9743 a = n.flipVariations, 9744 l = n.allowedAutoPlacements, 9745 c = void 0 === l ? tt : l, 9746 d = jt(i), 9747 h = d 9748 ? a 9749 ? et 9750 : et.filter(function (e) { 9751 return jt(e) === d; 9752 }) 9753 : Xe, 9754 u = h.filter(function (e) { 9755 return c.indexOf(e) >= 0; 9756 }); 9757 0 === u.length && (u = h); 9758 var p = u.reduce(function (t, n) { 9759 return (t[n] = sn(e, { placement: n, boundary: s, rootBoundary: o, padding: r })[bt(n)]), t; 9760 }, {}); 9761 return Object.keys(p).sort(function (e, t) { 9762 return p[e] - p[t]; 9763 }); 9764 })(t, { placement: n, boundary: d, rootBoundary: h, padding: c, flipVariations: f, allowedAutoPlacements: g }) 9765 : n 9766 ); 9767 }, []), 9768 w = t.rects.reference, 9769 x = t.rects.popper, 9770 _ = new Map(), 9771 C = !0, 9772 T = y[0], 9773 E = 0; 9774 E < y.length; 9775 E++ 9776 ) { 9777 var S = y[E], 9778 A = bt(S), 9779 k = jt(S) === Ye, 9780 $ = [Be, qe].indexOf(A) >= 0, 9781 L = $ ? "width" : "height", 9782 P = sn(t, { placement: S, boundary: d, rootBoundary: h, altBoundary: u, padding: c }), 9783 O = $ ? (k ? We : Ve) : k ? qe : Be; 9784 w[L] > x[L] && (O = Vt(O)); 9785 var M = Vt(O), 9786 D = []; 9787 if ( 9788 (o && D.push(P[A] <= 0), 9789 a && D.push(P[O] <= 0, P[M] <= 0), 9790 D.every(function (e) { 9791 return e; 9792 })) 9793 ) { 9794 (T = S), (C = !1); 9795 break; 9796 } 9797 _.set(S, D); 9798 } 9799 if (C) 9800 for ( 9801 var N = function (e) { 9802 var t = y.find(function (t) { 9803 var n = _.get(t); 9804 if (n) 9805 return n.slice(0, e).every(function (e) { 9806 return e; 9807 }); 9808 }); 9809 if (t) return (T = t), "break"; 9810 }, 9811 I = f ? 3 : 1; 9812 I > 0; 9813 I-- 9814 ) { 9815 if ("break" === N(I)) break; 9816 } 9817 t.placement !== T && ((t.modifiersData[i]._skip = !0), (t.placement = T), (t.reset = !0)); 9818 } 9819 }, 9820 requiresIfExists: ["offset"], 9821 data: { _skip: !1 }, 9822 }; 9823 function rn(e, t, n) { 9824 return void 0 === n && (n = { x: 0, y: 0 }), { top: e.top - t.height - n.y, right: e.right - t.width + n.x, bottom: e.bottom - t.height + n.y, left: e.left - t.width - n.x }; 9825 } 9826 function an(e) {
9827 return [Be, We, qe, Ve].some(function (t) { 9828 return e[t] >= 0; 9829 }); 9830 } 9831 const ln = { 9832 name: "hide", 9833 enabled: !0, 9834 phase: "main", 9835 requiresIfExists: ["preventOverflow"], 9836 fn: function (e) { 9837 var t = e.state, 9838 n = e.name, 9839 i = t.rects.reference, 9840 s = t.rects.popper, 9841 o = t.modifiersData.preventOverflow, 9842 r = sn(t, { elementContext: "reference" }), 9843 a = sn(t, { altBoundary: !0 }), 9844 l = rn(r, i), 9845 c = rn(a, s, o), 9846 d = an(l), 9847 h = an(c); 9848 (t.modifiersData[n] = { referenceClippingOffsets: l, popperEscapeOffsets: c, isReferenceHidden: d, hasPopperEscaped: h }), 9849 (t.attributes.popper = Object.assign({}, t.attributes.popper, { "data-popper-reference-hidden": d, "data-popper-escaped": h })); 9850 }, 9851 }; 9852 const cn = { 9853 name: "offset", 9854 enabled: !0, 9855 phase: "main", 9856 requires: ["popperOffsets"], 9857 fn: function (e) { 9858 var t = e.state, 9859 n = e.options, 9860 i = e.name, 9861 s = n.offset, 9862 o = void 0 === s ? [0, 0] : s, 9863 r = tt.reduce(function (e, n) { 9864 return ( 9865 (e[n] = (function (e, t, n) { 9866 var i = bt(e), 9867 s = [Ve, Be].indexOf(i) >= 0 ? -1 : 1, 9868 o = "function" == typeof n ? n(Object.assign({}, t, { placement: e })) : n, 9869 r = o[0], 9870 a = o[1]; 9871 return (r = r || 0), (a = (a || 0) * s), [Ve, We].indexOf(i) >= 0 ? { x: a, y: r } : { x: r, y: a }; 9872 })(n, t.rects, o)), 9873 e 9874 ); 9875 }, {}), 9876 a = r[t.placement], 9877 l = a.x, 9878 c = a.y; 9879 null != t.modifiersData.popperOffsets && ((t.modifiersData.popperOffsets.x += l), (t.modifiersData.popperOffsets.y += c)), (t.modifiersData[i] = r); 9880 }, 9881 }; 9882 const dn = { 9883 name: "popperOffsets", 9884 enabled: !0, 9885 phase: "read", 9886 fn: function (e) { 9887 var t = e.state, 9888 n = e.name; 9889 t.modifiersData[n] = nn({ reference: t.rects.reference, element: t.rects.popper, strategy: "absolute", placement: t.placement }); 9890 }, 9891 data: {}, 9892 }; 9893 const hn = { 9894 name: "preventOverflow", 9895 enabled: !0, 9896 phase: "main", 9897 fn: function (e) { 9898 var t = e.state, 9899 n = e.options, 9900 i = e.name, 9901 s = n.mainAxis, 9902 o = void 0 === s || s, 9903 r = n.altAxis, 9904 a = void 0 !== r && r, 9905 l = n.boundary, 9906 c = n.rootBoundary, 9907 d = n.altBoundary, 9908 h = n.padding, 9909 u = n.tether, 9910 p = void 0 === u || u, 9911 f = n.tetherOffset, 9912 g = void 0 === f ? 0 : f, 9913 m = sn(t, { boundary: l, rootBoundary: c, padding: h, altBoundary: d }), 9914 v = bt(t.placement), 9915 b = jt(t.placement), 9916 y = !b, 9917 w = Mt(v), 9918 x = "x" === w ? "y" : "x", 9919 _ = t.modifiersData.popperOffsets, 9920 C = t.rects.reference, 9921 T = t.rects.popper, 9922 E = "function" == typeof g ? g(Object.assign({}, t.rects, { placement: t.placement })) : g, 9923 S = "number" == typeof E ? { mainAxis: E, altAxis: E } : Object.assign({ mainAxis: 0, altAxis: 0 }, E), 9924 A = t.modifiersData.offset ? t.modifiersData.offset[t.placement] : null, 9925 k = { x: 0, y: 0 }; 9926 if (_) { 9927 if (o) { 9928 var $, 9929 L = "y" === w ? Be : Ve, 9930 P = "y" === w ? qe : We, 9931 O = "y" === w ? "height" : "width", 9932 M = _[w], 9933 D = M + m[L], 9934 N = M - m[P], 9935 I = p ? -T[O] / 2 : 0, 9936 z = b === Ye ? C[O] : T[O], 9937 j = b === Ye ? -T[O] : -C[O], 9938 F = t.elements.arrow, 9939 H = p && F ? Et(F) : { width: 0, height: 0 }, 9940 R = t.modifiersData["arrow#persistent"] ? t.modifiersData["arrow#persistent"].padding : { top: 0, right: 0, bottom: 0, left: 0 }, 9941 B = R[L], 9942 q = R[P], 9943 W = Dt(0, C[O], H[O]), 9944 V = y ? C[O] / 2 - I - W - B - S.mainAxis : z - W - B - S.mainAxis, 9945 G = y ? -C[O] / 2 + I + W + q + S.mainAxis : j + W + q + S.mainAxis, 9946 X = t.elements.arrow && Ot(t.elements.arrow), 9947 Y = X ? ("y" === w ? X.clientTop || 0 : X.clientLeft || 0) : 0, 9948 U = null != ($ = null == A ? void 0 : A[w]) ? $ : 0, 9949 K = M + G - U, 9950 Z = Dt(p ? wt(D, M + V - U - Y) : D, M, p ? yt(N, K) : N); 9951 (_[w] = Z), (k[w] = Z - M); 9952 } 9953 if (a) { 9954 var Q, 9955 J = "x" === w ? Be : Ve, 9956 ee = "x" === w ? qe : We, 9957 te = _[x],
9958 ne = "y" === x ? "height" : "width", 9959 ie = te + m[J], 9960 se = te - m[ee], 9961 oe = -1 !== [Be, Ve].indexOf(v), 9962 re = null != (Q = null == A ? void 0 : A[x]) ? Q : 0, 9963 ae = oe ? ie : te - C[ne] - T[ne] - re + S.altAxis, 9964 le = oe ? te + C[ne] + T[ne] - re - S.altAxis : se, 9965 ce = 9966 p && oe 9967 ? (function (e, t, n) { 9968 var i = Dt(e, t, n); 9969 return i > n ? n : i; 9970 })(ae, te, le) 9971 : Dt(p ? ae : ie, te, p ? le : se); 9972 (_[x] = ce), (k[x] = ce - te); 9973 } 9974 t.modifiersData[i] = k; 9975 } 9976 }, 9977 requiresIfExists: ["offset"], 9978 }; 9979 function un(e, t, n) { 9980 void 0 === n && (n = !1); 9981 var i, 9982 s, 9983 o = gt(t), 9984 r = 9985 gt(t) && 9986 (function (e) { 9987 var t = e.getBoundingClientRect(), 9988 n = xt(t.width) / e.offsetWidth || 1, 9989 i = xt(t.height) / e.offsetHeight || 1; 9990 return 1 !== n || 1 !== i; 9991 })(t), 9992 a = $t(t), 9993 l = Tt(e, r, n), 9994 c = { scrollLeft: 0, scrollTop: 0 }, 9995 d = { x: 0, y: 0 }; 9996 return ( 9997 (o || (!o && !n)) && 9998 (("body" !== ut(t) || Kt(a)) && (c = (i = t) !== pt(i) && gt(i) ? { scrollLeft: (s = i).scrollLeft, scrollTop: s.scrollTop } : Yt(i)), 9999 gt(t) ? (((d = Tt(t, !0)).x += t.clientLeft), (d.y += t.clientTop)) : a && (d.x = Ut(a))), 10000 { x: l.left + c.scrollLeft - d.x, y: l.top + c.scrollTop - d.y, width: l.width, height: l.height } 10001 ); 10002 } 10003 function pn(e) { 10004 var t = new Map(), 10005 n = new Set(), 10006 i = []; 10007 function s(e) { 10008 n.add(e.name), 10009 [].concat(e.requires || [], e.requiresIfExists || []).forEach(function (e) { 10010 if (!n.has(e)) { 10011 var i = t.get(e); 10012 i && s(i); 10013 } 10014 }), 10015 i.push(e); 10016 } 10017 return ( 10018 e.forEach(function (e) { 10019 t.set(e.name, e); 10020 }), 10021 e.forEach(function (e) { 10022 n.has(e.name) || s(e); 10023 }), 10024 i 10025 ); 10026 } 10027 var fn = { placement: "bottom", modifiers: [], strategy: "absolute" }; 10028 function gn() { 10029 for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n]; 10030 return !t.some(function (e) { 10031 return !(e && "function" == typeof e.getBoundingClientRect); 10032 }); 10033 } 10034 function mn(e) { 10035 void 0 === e && (e = {}); 10036 var t = e, 10037 n = t.defaultModifiers, 10038 i = void 0 === n ? [] : n, 10039 s = t.defaultOptions, 10040 o = void 0 === s ? fn : s; 10041 return function (e, t, n) { 10042 void 0 === n && (n = o); 10043 var s, 10044 r, 10045 a = { placement: "bottom", orderedModifiers: [], options: Object.assign({}, fn, o), modifiersData: {}, elements: { reference: e, popper: t }, attributes: {}, styles: {} }, 10046 l = [], 10047 c = !1, 10048 d = { 10049 state: a, 10050 setOptions: function (n) { 10051 var s = "function" == typeof n ? n(a.options) : n; 10052 h(), (a.options = Object.assign({}, o, a.options, s)), (a.scrollParents = { reference: ft(e) ? Qt(e) : e.contextElement ? Qt(e.contextElement) : [], popper: Qt(t) }); 10053 var r = (function (e) { 10054 var t = pn(e); 10055 return ht.reduce(function (e, n) { 10056 return e.concat( 10057 t.filter(function (e) { 10058 return e.phase === n; 10059 }) 10060 ); 10061 }, []); 10062 })( 10063 (function (e) { 10064 var t = e.reduce(function (e, t) { 10065 var n = e[t.name]; 10066 return (e[t.name] = n ? Object.assign({}, n, t, { options: Object.assign({}, n.options, t.options), data: Object.assign({}, n.data, t.data) }) : t), e; 10067 }, {}); 10068 return Object.keys(t).map(function (e) { 10069 return t[e]; 10070 }); 10071 })([].concat(i, a.options.modifiers)) 10072 ); 10073 return ( 10074 (a.orderedModifiers = r.filter(function (e) { 10075 return e.enabled; 10076 })),
10077 a.orderedModifiers.forEach(function (e) { 10078 var t = e.name, 10079 n = e.options, 10080 i = void 0 === n ? {} : n, 10081 s = e.effect; 10082 if ("function" == typeof s) { 10083 var o = s({ state: a, name: t, instance: d, options: i }), 10084 r = function () {}; 10085 l.push(o || r); 10086 } 10087 }), 10088 d.update() 10089 ); 10090 }, 10091 forceUpdate: function () { 10092 if (!c) { 10093 var e = a.elements, 10094 t = e.reference, 10095 n = e.popper; 10096 if (gn(t, n)) { 10097 (a.rects = { reference: un(t, Ot(n), "fixed" === a.options.strategy), popper: Et(n) }), 10098 (a.reset = !1), 10099 (a.placement = a.options.placement), 10100 a.orderedModifiers.forEach(function (e) { 10101 return (a.modifiersData[e.name] = Object.assign({}, e.data)); 10102 }); 10103 for (var i = 0; i < a.orderedModifiers.length; i++) 10104 if (!0 !== a.reset) { 10105 var s = a.orderedModifiers[i], 10106 o = s.fn, 10107 r = s.options, 10108 l = void 0 === r ? {} : r, 10109 h = s.name; 10110 "function" == typeof o && (a = o({ state: a, options: l, name: h, instance: d }) || a); 10111 } else (a.reset = !1), (i = -1); 10112 } 10113 } 10114 }, 10115 update: 10116 ((s = function () { 10117 return new Promise(function (e) { 10118 d.forceUpdate(), e(a); 10119 }); 10120 }), 10121 function () { 10122 return ( 10123 r || 10124 (r = new Promise(function (e) { 10125 Promise.resolve().then(function () { 10126 (r = void 0), e(s()); 10127 }); 10128 })), 10129 r 10130 ); 10131 }), 10132 destroy: function () { 10133 h(), (c = !0); 10134 }, 10135 }; 10136 if (!gn(e, t)) return d; 10137 function h() { 10138 l.forEach(function (e) { 10139 return e(); 10140 }), 10141 (l = []); 10142 } 10143 return ( 10144 d.setOptions(n).then(function (e) { 10145 !c && n.onFirstUpdate && n.onFirstUpdate(e); 10146 }), 10147 d 10148 ); 10149 }; 10150 } 10151 var vn = mn(), 10152 bn = mn({ defaultModifiers: [qt, dn, Rt, vt, cn, on, hn, zt, ln] }), 10153 yn = mn({ defaultModifiers: [qt, dn, Rt, vt] }), 10154 wn = n(755); 10155 const xn = "transitionend", 10156 _n = (e) => { 10157 let t = e.getAttribute("data-bs-target"); 10158 if (!t || "#" === t) { 10159 let n = e.getAttribute("href"); 10160 if (!n || (!n.includes("#") && !n.startsWith("."))) return null; 10161 n.includes("#") && !n.startsWith("#") && (n = `#${n.split("#")[1]}`), (t = n && "#" !== n ? n.trim() : null); 10162 } 10163 return t; 10164 }, 10165 Cn = (e) => { 10166 const t = _n(e); 10167 return t && document.querySelector(t) ? t : null; 10168 }, 10169 Tn = (e) => { 10170 const t = _n(e); 10171 return t ? document.querySelector(t) : null; 10172 }, 10173 En = (e) => { 10174 e.dispatchEvent(new Event(xn)); 10175 }, 10176 Sn = (e) => !(!e || "object" != typeof e) && (void 0 !== e.jquery && (e = e[0]), void 0 !== e.nodeType), 10177 An = (e) => (Sn(e) ? (e.jquery ? e[0] : e) : "string" == typeof e && e.length > 0 ? document.querySelector(e) : null),
10178 kn = (e) => { 10179 if (!Sn(e) || 0 === e.getClientRects().length) return !1; 10180 const t = "visible" === getComputedStyle(e).getPropertyValue("visibility"), 10181 n = e.closest("details:not([open])"); 10182 if (!n) return t; 10183 if (n !== e) { 10184 const t = e.closest("summary"); 10185 if (t && t.parentNode !== n) return !1; 10186 if (null === t) return !1; 10187 } 10188 return t; 10189 }, 10190 $n = (e) => !e || e.nodeType !== Node.ELEMENT_NODE || !!e.classList.contains("disabled") || (void 0 !== e.disabled ? e.disabled : e.hasAttribute("disabled") && "false" !== e.getAttribute("disabled")), 10191 Ln = (e) => { 10192 if (!document.documentElement.attachShadow) return null; 10193 if ("function" == typeof e.getRootNode) { 10194 const t = e.getRootNode(); 10195 return t instanceof ShadowRoot ? t : null; 10196 } 10197 return e instanceof ShadowRoot ? e : e.parentNode ? Ln(e.parentNode) : null; 10198 }, 10199 Pn = () => {}, 10200 On = (e) => { 10201 e.offsetHeight; 10202 }, 10203 Mn = () => (wn && !document.body.hasAttribute("data-bs-no-jquery") ? wn : null), 10204 Dn = [], 10205 Nn = () => "rtl" === document.documentElement.dir, 10206 In = (e) => { 10207 var t; 10208 (t = () => { 10209 const t = Mn(); 10210 if (t) { 10211 const n = e.NAME, 10212 i = t.fn[n]; 10213 (t.fn[n] = e.jQueryInterface), (t.fn[n].Constructor = e), (t.fn[n].noConflict = () => ((t.fn[n] = i), e.jQueryInterface)); 10214 } 10215 }), 10216 "loading" === document.readyState 10217 ? (Dn.length || 10218 document.addEventListener("DOMContentLoaded", () => { 10219 for (const e of Dn) e(); 10220 }), 10221 Dn.push(t)) 10222 : t(); 10223 }, 10224 zn = (e) => { 10225 "function" == typeof e && e(); 10226 }, 10227 jn = (e, t, n = !0) => { 10228 if (!n) return void zn(e); 10229 const i = 10230 ((e) => { 10231 if (!e) return 0; 10232 let { transitionDuration: t, transitionDelay: n } = window.getComputedStyle(e); 10233 const i = Number.parseFloat(t), 10234 s = Number.parseFloat(n); 10235 return i || s ? ((t = t.split(",")[0]), (n = n.split(",")[0]), 1e3 * (Number.parseFloat(t) + Number.parseFloat(n))) : 0; 10236 })(t) + 5; 10237 let s = !1; 10238 const o = ({ target: n }) => { 10239 n === t && ((s = !0), t.removeEventListener(xn, o), zn(e)); 10240 }; 10241 t.addEventListener(xn, o), 10242 setTimeout(() => { 10243 s || En(t); 10244 }, i); 10245 }, 10246 Fn = (e, t, n, i) => { 10247 const s = e.length; 10248 let o = e.indexOf(t); 10249 return -1 === o ? (!n && i ? e[s - 1] : e[0]) : ((o += n ? 1 : -1), i && (o = (o + s) % s), e[Math.max(0, Math.min(o, s - 1))]); 10250 }, 10251 Hn = /[^.]*(?=\..*)\.|.*/, 10252 Rn = /\..*/, 10253 Bn = /::\d+$/, 10254 qn = {}; 10255 let Wn = 1; 10256 const Vn = { mouseenter: "mouseover", mouseleave: "mouseout" }, 10257 Gn = new Set([ 10258 "click", 10259 "dblclick", 10260 "mouseup", 10261 "mousedown", 10262 "contextmenu", 10263 "mousewheel", 10264 "DOMMouseScroll", 10265 "mouseover", 10266 "mouseout", 10267 "mousemove", 10268 "selectstart", 10269 "selectend", 10270 "keydown", 10271 "keypress", 10272 "keyup", 10273 "orientationchange", 10274 "touchstart", 10275 "touchmove", 10276 "touchend", 10277 "touchcancel", 10278 "pointerdown", 10279 "pointermove", 10280 "pointerup", 10281 "pointerleave", 10282 "pointercancel", 10283 "gesturestart", 10284 "gesturechange", 10285 "gestureend", 10286 "focus", 10287 "blur", 10288 "change", 10289 "reset", 10290 "select", 10291 "submit", 10292 "focusin", 10293 "focusout", 10294 "load", 10295 "unload", 10296 "beforeunload", 10297 "resize", 10298 "move", 10299 "DOMContentLoaded", 10300 "readystatechange", 10301 "error", 10302 "abort", 10303 "scroll", 10304 ]); 10305 function Xn(e, t) { 10306 return (t && `${t}::${Wn++}`) || e.uidEvent || Wn++; 10307 } 10308 function Yn(e) { 10309 const t = Xn(e); 10310 return (e.uidEvent = t), (qn[t] = qn[t] || {}), qn[t]; 10311 } 10312 function Un(e, t, n = null) { 10313 return Object.values(e).find((e) => e.callable === t && e.delegationSelector === n); 10314 } 10315 function Kn(e, t, n) { 10316 const i = "string" == typeof t, 10317 s = i ? n : t || n; 10318 let o = ei(e); 10319 return Gn.has(o) || (o = e), [i, s, o]; 10320 } 10321 function Zn(e, t, n, i, s) { 10322 if ("string" != typeof t || !e) return;
10323 let [o, r, a] = Kn(t, n, i); 10324 if (t in Vn) { 10325 const e = (e) => 10326 function (t) { 10327 if (!t.relatedTarget || (t.relatedTarget !== t.delegateTarget && !t.delegateTarget.contains(t.relatedTarget))) return e.call(this, t); 10328 }; 10329 r = e(r); 10330 } 10331 const l = Yn(e), 10332 c = l[a] || (l[a] = {}), 10333 d = Un(c, r, o ? n : null); 10334 if (d) return void (d.oneOff = d.oneOff && s); 10335 const h = Xn(r, t.replace(Hn, "")), 10336 u = o 10337 ? (function (e, t, n) { 10338 return function i(s) { 10339 const o = e.querySelectorAll(t); 10340 for (let { target: r } = s; r && r !== this; r = r.parentNode) for (const a of o) if (a === r) return ni(s, { delegateTarget: r }), i.oneOff && ti.off(e, s.type, t, n), n.apply(r, [s]); 10341 }; 10342 })(e, n, r) 10343 : (function (e, t) { 10344 return function n(i) { 10345 return ni(i, { delegateTarget: e }), n.oneOff && ti.off(e, i.type, t), t.apply(e, [i]); 10346 }; 10347 })(e, r); 10348 (u.delegationSelector = o ? n : null), (u.callable = r), (u.oneOff = s), (u.uidEvent = h), (c[h] = u), e.addEventListener(a, u, o); 10349 } 10350 function Qn(e, t, n, i, s) { 10351 const o = Un(t[n], i, s); 10352 o && (e.removeEventListener(n, o, Boolean(s)), delete t[n][o.uidEvent]); 10353 } 10354 function Jn(e, t, n, i) { 10355 const s = t[n] || {}; 10356 for (const o of Object.keys(s)) 10357 if (o.includes(i)) { 10358 const i = s[o]; 10359 Qn(e, t, n, i.callable, i.delegationSelector); 10360 } 10361 } 10362 function ei(e) { 10363 return (e = e.replace(Rn, "")), Vn[e] || e; 10364 } 10365 const ti = { 10366 on(e, t, n, i) { 10367 Zn(e, t, n, i, !1); 10368 }, 10369 one(e, t, n, i) { 10370 Zn(e, t, n, i, !0); 10371 }, 10372 off(e, t, n, i) { 10373 if ("string" != typeof t || !e) return; 10374 const [s, o, r] = Kn(t, n, i), 10375 a = r !== t, 10376 l = Yn(e), 10377 c = l[r] || {}, 10378 d = t.startsWith("."); 10379 if (void 0 === o) { 10380 if (d) for (const n of Object.keys(l)) Jn(e, l, n, t.slice(1)); 10381 for (const n of Object.keys(c)) { 10382 const i = n.replace(Bn, ""); 10383 if (!a || t.includes(i)) { 10384 const t = c[n]; 10385 Qn(e, l, r, t.callable, t.delegationSelector); 10386 } 10387 } 10388 } else { 10389 if (!Object.keys(c).length) return; 10390 Qn(e, l, r, o, s ? n : null); 10391 } 10392 }, 10393 trigger(e, t, n) { 10394 if ("string" != typeof t || !e) return null; 10395 const i = Mn(); 10396 let s = null, 10397 o = !0, 10398 r = !0, 10399 a = !1; 10400 t !== ei(t) && i && ((s = i.Event(t, n)), i(e).trigger(s), (o = !s.isPropagationStopped()), (r = !s.isImmediatePropagationStopped()), (a = s.isDefaultPrevented())); 10401 let l = new Event(t, { bubbles: o, cancelable: !0 }); 10402 return (l = ni(l, n)), a && l.preventDefault(), r && e.dispatchEvent(l), l.defaultPrevented && s && s.preventDefault(), l; 10403 }, 10404 }; 10405 function ni(e, t) { 10406 for (const [n, i] of Object.entries(t || {})) 10407 try { 10408 e[n] = i; 10409 } catch (t) { 10410 Object.defineProperty(e, n, { configurable: !0, get: () => i }); 10411 } 10412 return e; 10413 } 10414 const ii = new Map(), 10415 si = { 10416 set(e, t, n) { 10417 ii.has(e) || ii.set(e, new Map()); 10418 const i = ii.get(e); 10419 i.has(t) || 0 === i.size ? i.set(t, n) : console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(i.keys())[0]}.`); 10420 }, 10421 get: (e, t) => (ii.has(e) && ii.get(e).get(t)) || null, 10422 remove(e, t) { 10423 if (!ii.has(e)) return; 10424 const n = ii.get(e); 10425 n.delete(t), 0 === n.size && ii.delete(e); 10426 }, 10427 }; 10428 function oi(e) { 10429 if ("true" === e) return !0; 10430 if ("false" === e) return !1; 10431 if (e === Number(e).toString()) return Number(e); 10432 if ("" === e || "null" === e) return null; 10433 if ("string" != typeof e) return e; 10434 try { 10435 return JSON.parse(decodeURIComponent(e)); 10436 } catch (t) { 10437 return e; 10438 } 10439 } 10440 function ri(e) { 10441 return e.replace(/[A-Z]/g, (e) => `-${e.toLowerCase()}`); 10442 } 10443 const ai = { 10444 setDataAttribute(e, t, n) { 10445 e.setAttribute(`data-bs-${ri(t)}`, n); 10446 }, 10447 removeDataAttribute(e, t) { 10448 e.removeAttribute(`data-bs-${ri(t)}`); 10449 }, 10450 getDataAttributes(e) { 10451 if (!e) return {}; 10452 const t = {}, 10453 n = Object.keys(e.dataset).filter((e) => e.startsWith("bs") && !e.startsWith("bsConfig")); 10454 for (const i of n) { 10455 let n = i.replace(/^bs/, ""); 10456 (n = n.charAt(0).toLowerCase() + n.slice(1, n.length)), (t[n] = oi(e.dataset[i])); 10457 } 10458 return t; 10459 }, 10460 getDataAttribute: (e, t) => oi(e.getAttribute(`data-bs-${ri(t)}`)), 10461 }; 10462 class li { 10463 static get Default() { 10464 return {}; 10465 } 10466 static get DefaultType() { 10467 return {}; 10468 } 10469 static get NAME() { 10470 throw new Error('You have to implement the static method "NAME", for each component!'); 10471 } 10472 _getConfig(e) { 10473 return (e = this._mergeConfigObj(e)), (e = this._configAfterMerge(e)), this._typeCheckConfig(e), e; 10474 } 10475 _configAfterMerge(e) { 10476 return e; 10477 } 10478 _mergeConfigObj(e, t) { 10479 const n = Sn(t) ? ai.getDataAttribute(t, "config") : {}; 10480 return { ...this.constructor.Default, ...("object" == typeof n ? n : {}), ...(Sn(t) ? ai.getDataAttributes(t) : {}), ...("object" == typeof e ? e : {}) }; 10481 } 10482 _typeCheckConfig(e, t = this.constructor.DefaultType) { 10483 for (const i of Object.keys(t)) { 10484 const s = t[i], 10485 o = e[i], 10486 r = Sn(o) 10487 ? "element" 10488 : null == (n = o) 10489 ? `${n}` 10490 : Object.prototype.toString 10491 .call(n) 10492 .match(/\s([a-z]+)/i)[1] 10493 .toLowerCase(); 10494 if (!new RegExp(s).test(r)) throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${i}" provided type "${r}" but expected type "${s}".`); 10495 } 10496 var n; 10497 } 10498 } 10499 class ci extends li { 10500 constructor(e, t) { 10501 super(), (e = An(e)) && ((this._element = e), (this._config = this._getConfig(t)), si.set(this._element, this.constructor.DATA_KEY, this)); 10502 } 10503 dispose() { 10504 si.remove(this._element, this.constructor.DATA_KEY), ti.off(this._element, this.constructor.EVENT_KEY); 10505 for (const e of Object.getOwnPropertyNames(this)) this[e] = null; 10506 } 10507 _queueCallback(e, t, n = !0) { 10508 jn(e, t, n); 10509 } 10510 _getConfig(e) { 10511 return (e = this._mergeConfigObj(e, this._element)), (e = this._configAfterMerge(e)), this._typeCheckConfig(e), e; 10512 } 10513 static getInstance(e) { 10514 return si.get(An(e), this.DATA_KEY); 10515 } 10516 static getOrCreateInstance(e, t = {}) { 10517 return this.getInstance(e) || new this(e, "object" == typeof t ? t : null); 10518 } 10519 static get VERSION() { 10520 return "5.2.1"; 10521 } 10522 static get DATA_KEY() { 10523 return `bs.${this.NAME}`; 10524 } 10525 static get EVENT_KEY() { 10526 return `.${this.DATA_KEY}`; 10527 } 10528 static eventName(e) { 10529 return `${e}${this.EVENT_KEY}`; 10530 } 10531 } 10532 const di = (e, t = "hide") => { 10533 const n = `click.dismiss${e.EVENT_KEY}`, 10534 i = e.NAME; 10535 ti.on(document, n, `[data-bs-dismiss="${i}"]`, function (n) { 10536 if ((["A", "AREA"].includes(this.tagName) && n.preventDefault(), $n(this))) return; 10537 const s = Tn(this) || this.closest(`.${i}`); 10538 e.getOrCreateInstance(s)[t](); 10539 }); 10540 }; 10541 class hi extends ci { 10542 static get NAME() { 10543 return "alert"; 10544 } 10545 close() { 10546 if (ti.trigger(this._element, "close.bs.alert").defaultPrevented) return; 10547 this._element.classList.remove("show"); 10548 const e = this._element.classList.contains("fade"); 10549 this._queueCallback(() => this._destroyElement(), this._element, e); 10550 } 10551 _destroyElement() { 10552 this._element.remove(), ti.trigger(this._element, "closed.bs.alert"), this.dispose(); 10553 } 10554 static jQueryInterface(e) { 10555 return this.each(function () { 10556 const t = hi.getOrCreateInstance(this); 10557 if ("string" == typeof e) { 10558 if (void 0 === t[e] || e.startsWith("_") || "constructor" === e) throw new TypeError(`No method n
10558amed "${e}"`); 10559 t[e](this); 10560 } 10561 }); 10562 } 10563 } 10564 di(hi, "close"), In(hi); 10565 const ui = '[data-bs-toggle="button"]'; 10566 class pi extends ci { 10567 static get NAME() { 10568 return "button"; 10569 } 10570 toggle() { 10571 this._element.setAttribute("aria-pressed", this._element.classList.toggle("active")); 10572 } 10573 static jQueryInterface(e) { 10574 return this.each(function () { 10575 const t = pi.getOrCreateInstance(this); 10576 "toggle" === e && t[e](); 10577 }); 10578 } 10579 } 10580 ti.on(document, "click.bs.button.data-api", ui, (e) => { 10581 e.preventDefault(); 10582 const t = e.target.closest(ui); 10583 pi.getOrCreateInstance(t).toggle(); 10584 }), 10585 In(pi); 10586 const fi = { 10587 find: (e, t = document.documentElement) => [].concat(...Element.prototype.querySelectorAll.call(t, e)), 10588 findOne: (e, t = document.documentElement) => Element.prototype.querySelector.call(t, e), 10589 children: (e, t) => [].concat(...e.children).filter((e) => e.matches(t)), 10590 parents(e, t) { 10591 const n = []; 10592 let i = e.parentNode.closest(t); 10593 for (; i; ) n.push(i), (i = i.parentNode.closest(t)); 10594 return n; 10595 }, 10596 prev(e, t) { 10597 let n = e.previousElementSibling; 10598 for (; n; ) { 10599 if (n.matches(t)) return [n]; 10600 n = n.previousElementSibling; 10601 } 10602 return []; 10603 }, 10604 next(e, t) { 10605 let n = e.nextElementSibling; 10606 for (; n; ) { 10607 if (n.matches(t)) return [n]; 10608 n = n.nextElementSibling; 10609 } 10610 return []; 10611 }, 10612 focusableChildren(e) { 10613 const t = ["a", "button", "input", "textarea", "select", "details", "[tabindex]", '[contenteditable="true"]'].map((e) => `${e}:not([tabindex^="-"])`).join(","); 10614 return this.find(t, e).filter((e) => !$n(e) && kn(e)); 10615 }, 10616 }, 10617 gi = ".bs.swipe", 10618 mi = { endCallback: null, leftCallback: null, rightCallback: null }, 10619 vi = { endCallback: "(function|null)", leftCallback: "(function|null)", right
10619Callback: "(function|null)" }; 10620 class bi extends li { 10621 constructor(e, t) { 10622 super(), (this._element = e), e && bi.isSupported() && ((this._config = this._getConfig(t)), (this._deltaX = 0), (this._supportPointerEvents = Boolean(window.PointerEvent)), this._initEvents()); 10623 } 10624 static get Default() { 10625 return mi; 10626 } 10627 static get DefaultType() { 10628 return vi; 10629 } 10630 static get NAME() { 10631 return "swipe"; 10632 } 10633 dispose() { 10634 ti.off(this._element, gi); 10635 } 10636 _start(e) { 10637 this._supportPointerEvents ? this._eventIsPointerPenTouch(e) && (this._deltaX = e.clientX) : (this._deltaX = e.touches[0].clientX); 10638 } 10639 _end(e) { 10640 this._eventIsPointerPenTouch(e) && (this._deltaX = e.clientX - this._deltaX), this._handleSwipe(), zn(this._config.endCallback); 10641 } 10642 _move(e) { 10643 this._deltaX = e.touches && e.touches.length > 1 ? 0 : e.touches[0].clientX - this._deltaX; 10644 } 10645 _handleSwipe() { 10646 const e = Math.abs(this._deltaX); 10647 if (e <= 40) return; 10648 const t = e / this._deltaX; 10649 (this._deltaX = 0), t && zn(t > 0 ? this._config.rightCallback : this._config.leftCallback); 10650 } 10651 _initEvents() { 10652 this._supportPointerEvents 10653 ? (ti.on(this._element, "pointerdown.bs.swipe", (e) => this._start(e)), ti.on(this._element, "pointerup.bs.swipe", (e) => this._end(e)), this._element.classList.add("pointer-event")) 10654 : (ti.on(this._element, "touchstart.bs.swipe", (e) => this._start(e)), ti.on(this._element, "touchmove.bs.swipe", (e) => this._move(e)), ti.on(this._element, "touchend.bs.swipe", (e) => this._end(e))); 10655 } 10656 _eventIsPointerPenTouch(e) { 10657 return this._supportPointerEvents && ("pen" === e.pointerType || "touch" === e.pointerType); 10658 } 10659 static isSupported() { 10660 return "ontouchstart" in document.documentElement || navigator.maxTouchPoints > 0; 10661 } 10662 } 10663 const yi = "next", 10664 wi = "prev", 10665 xi = "left", 10666 _i = "right", 10667 Ci = "slid.bs.carousel", 10668 Ti = "carousel", 10669 Ei = "active", 10670 Si = ".active", 10671 Ai = ".carousel-item", 10672 ki = { ArrowLeft: _i, ArrowRight: xi }, 10673 $i = { interval: 5e3, keyboard: !0, pause: "hover", ride: !1, touch: !0, wrap: !0 }, 10674 Li = { interval: "(number|boolean)", keyboard: "boolean", pause: "(string|boolean)", ride: "(boolean|string)", touch: "boolean", wrap: "boolean" }; 10675 class Pi extends ci { 10676 constructor(e, t) { 10677 super(e, t), 10678 (this._interval = null), 10679 (this._activeElement = null), 10680 (this._isSliding = !1), 10681 (this.touchTimeout = null), 10682 (this._swipeHelper = null), 10683 (this._indicatorsElement = fi.findOne(".carousel-indicators", this._element)), 10684 this._addEventListeners(), 10685 this._config.ride === Ti && this.cycle(); 10686 } 10687 static get Default() { 10688 return $i; 10689 } 10690 static get DefaultType() { 10691 return Li; 10692 } 10693 static get NAME() { 10694 return "carousel"; 10695 } 10696 next() { 10697 this._slide(yi); 10698 } 10699 nextWhenVisible() { 10700 !document.hidden && kn(this._element) && this.next(); 10701 } 10702 prev() { 10703 this._slide(wi); 10704 } 10705 pause() { 10706 this._isSliding && En(this._element), this._clearInterval(); 10707 } 10708 cycle() { 10709 this._clearInterval(), this._updateInterval(), (this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval)); 10710 } 10711 _maybeEnableCycle() { 10712 this._config.ride && (this._isSliding ? ti.one(this._element, Ci, () => this.cycle()) : this.cycle()); 10713 } 10714 to(e) { 10715 const t = this._getItems(); 10716 if (e > t.length - 1 || e < 0) return; 10717 if (this._isSliding) return void ti.one(this._element, Ci, () => this.to(e)); 10718 const n = this._getItemIndex(this._getActive()); 10719 if (n === e) return; 10720 const i = e > n ? yi : wi; 10721 this._slide(i, t[e]); 10722 } 10723 dispose() {
10724 this._swipeHelper && this._swipeHelper.dispose(), super.dispose(); 10725 } 10726 _configAfterMerge(e) { 10727 return (e.defaultInterval = e.interval), e; 10728 } 10729 _addEventListeners() { 10730 this._config.keyboard && ti.on(this._element, "keydown.bs.carousel", (e) => this._keydown(e)), 10731 "hover" === this._config.pause && (ti.on(this._element, "mouseenter.bs.carousel", () => this.pause()), ti.on(this._element, "mouseleave.bs.carousel", () => this._maybeEnableCycle())), 10732 this._config.touch && bi.isSupported() && this._addTouchEventListeners(); 10733 } 10734 _addTouchEventListeners() { 10735 for (const e of fi.find(".carousel-item img", this._element)) ti.on(e, "dragstart.bs.carousel", (e) => e.preventDefault()); 10736 const e = { 10737 leftCallback: () => this._slide(this._directionToOrder(xi)), 10738 rightCallback: () => this._slide(this._directionToOrder(_i)), 10739 endCallback: () => { 10740 "hover" === this._config.pause && (this.pause(), this.touchTimeout && clearTimeout(this.touchTimeout), (this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), 500 + this._config.interval))); 10741 }, 10742 }; 10743 this._swipeHelper = new bi(this._element, e); 10744 } 10745 _keydown(e) { 10746 if (/input|textarea/i.test(e.target.tagName)) return; 10747 const t = ki[e.key]; 10748 t && (e.preventDefault(), this._slide(this._directionToOrder(t))); 10749 } 10750 _getItemIndex(e) { 10751 return this._getItems().indexOf(e); 10752 } 10753 _setActiveIndicatorElement(e) { 10754 if (!this._indicatorsElement) return; 10755 const t = fi.findOne(Si, this._indicatorsElement); 10756 t.classList.remove(Ei), t.removeAttribute("aria-current"); 10757 const n = fi.findOne(`[data-bs-slide-to="${e}"]`, this._indicatorsElement); 10758 n && (n.classList.add(Ei), n.setAttribute("aria-current", "true")); 10759 } 10760 _updateInterval() { 10761 const e = this._activeElement || this._getActive(); 10762 if (!e) return; 10763 const t = Number.parseInt(e.getAttribute("data-bs-interval"), 10); 10764 this._config.interval = t || this._config.defaultInterval; 10765 } 10766 _slide(e, t = null) { 10767 if (this._isSliding) return; 10768 const n = this._getActive(), 10769 i = e === yi, 10770 s = t || Fn(this._getItems(), n, i, this._config.wrap); 10771 if (s === n) return; 10772 const o = this._getItemIndex(s), 10773 r = (t) => ti.trigger(this._element, t, { relatedTarget: s, direction: this._orderToDirection(e), from: this._getItemIndex(n), to: o }); 10774 if (r("slide.bs.carousel").defaultPrevented) return; 10775 if (!n || !s) return; 10776 const a = Boolean(this._interval); 10777 this.pause(), (this._isSliding = !0), this._setActiveIndicatorElement(o), (this._activeElement = s); 10778 const l = i ? "carousel-item-start" : "carousel-item-end", 10779 c = i ? "carousel-item-next" : "carousel-item-prev"; 10780 s.classList.add(c), On(s), n.classList.add(l), s.classList.add(l); 10781 this._queueCallback( 10782 () => { 10783 s.classList.remove(l, c), s.classList.add(Ei), n.classList.remove(Ei, c, l), (this._isSliding = !1), r(Ci); 10784 }, 10785 n, 10786 this._isAnimated() 10787 ), 10788 a && this.cycle(); 10789 }
10790 _isAnimated() { 10791 return this._element.classList.contains("slide"); 10792 } 10793 _getActive() { 10794 return fi.findOne(".active.carousel-item", this._element); 10795 } 10796 _getItems() { 10797 return fi.find(Ai, this._element); 10798 } 10799 _clearInterval() { 10800 this._interval && (clearInterval(this._interval), (this._interval = null)); 10801 } 10802 _directionToOrder(e) { 10803 return Nn() ? (e === xi ? wi : yi) : e === xi ? yi : wi; 10804 } 10805 _orderToDirection(e) { 10806 return Nn() ? (e === wi ? xi : _i) : e === wi ? _i : xi; 10807 } 10808 static jQueryInterface(e) { 10809 return this.each(function () { 10810 const t = Pi.getOrCreateInstance(this, e); 10811 if ("number" != typeof e) { 10812 if ("string" == typeof e) { 10813 if (void 0 === t[e] || e.startsWith("_") || "constructor" === e) throw new TypeError(`No method named "${e}"`); 10814 t[e](); 10815 } 10816 } else t.to(e); 10817 }); 10818 } 10819 } 10820 ti.on(document, "click.bs.carousel.data-api", "[data-bs-slide], [data-bs-slide-to]", function (e) { 10821 const t = Tn(this); 10822 if (!t || !t.classList.contains(Ti)) return; 10823 e.preventDefault(); 10824 const n = Pi.getOrCreateInstance(t), 10825 i = this.getAttribute("data-bs-slide-to"); 10826 return i ? (n.to(i), void n._maybeEnableCycle()) : "next" === ai.getDataAttribute(this, "slide") ? (n.next(), void n._maybeEnableCycle()) : (n.prev(), void n._maybeEnableCycle()); 10827 }), 10828 ti.on(window, "load.bs.carousel.data-api", () => { 10829 const e = fi.find('[data-bs-ride="carousel"]'); 10830 for (const t of e) Pi.getOrCreateInstance(t); 10831 }), 10832 In(Pi); 10833 const Oi = "show", 10834 Mi = "collapse", 10835 Di = "collapsing", 10836 Ni = '[data-bs-toggle="collapse"]', 10837 Ii = { parent: null, toggle: !0 }, 10838 zi = { parent: "(null|element)", toggle: "boolean" }; 10839 class ji extends ci { 10840 constructor(e, t) { 10841 super(e, t), (this._isTransitioning = !1), (this._triggerArray = []); 10842 const n = fi.find(Ni); 10843 for (const e of n) { 10844 const t = Cn(e), 10845 n = fi.find(t).filter((e) => e === this._element); 10846 null !== t && n.length && this._triggerArray.push(e); 10847 } 10848 this._initializeChildren(), this._config.parent || this._addAriaAndCollapsedClass(this._triggerArray, this._isShown()), this._config.toggle && this.toggle(); 10849 } 10850 static get Default() { 10851 return Ii; 10852 } 10853 static get DefaultType() { 10854 return zi; 10855 } 10856 static get NAME() { 10857 return "collapse"; 10858 } 10859 toggle() { 10860 this._isShown() ? this.hide() : this.show(); 10861 } 10862 show() { 10863 if (this._isTransitioning || this._isShown()) return; 10864 let e = []; 10865 if ( 10866 (this._config.parent && 10867 (e = this._getFirstLevelChildren(".collapse.show, .collapse.collapsing") 10868 .filter((e) => e !== this._element) 10869 .map((e) => ji.getOrCreateInstance(e, { toggle: !1 }))), 10870 e.length && e[0]._isTransitioning) 10871 ) 10872 return; 10873 if (ti.trigger(this._element, "show.bs.collapse").defaultPrevented) return; 10874 for (const t of e) t.hide(); 10875 const t = this._getDimension(); 10876 this._element.classList.remove(Mi), this._element.classList.add(Di), (this._element.style[t] = 0), this._addAriaAndCollapsedClass(this._triggerArray, !0), (this._isTransitioning = !0); 10877 const n = `scroll${t[0].toUpperCase() + t.slice(1)}`; 10878 this._queueCallback( 10879 () => { 10880 (this._isTransitioning = !1), this._element.classList.remove(Di), this._element.classList.add(Mi, Oi), (this._element.style[t] = ""), ti.trigger(this._element, "shown.bs.collapse"); 10881 }, 10882 this._element, 10883 !0 10884 ), 10885 (this._element.style[t] = `${this._element[n]}px`); 10886 } 10887 hide() { 10888 if (this._isTransitioning || !this._isShown()) return; 10889 if (ti.trigger(this._element, "hide.bs.collapse").defaultPrevented) return; 10890 const e = this._getDimension(); 10891 (this._element.style[e] = `${this._element.getBoundingClientRect()[e]}px`), On(this._element), this._element.classList.add(Di), this._element.classList.remove(Mi, Oi); 10892 for (const e of this._triggerArray) { 10893 const t = Tn(e); 10894 t && !this._isShown(t) && this._addAriaAndCollapsedClass([e], !1); 10895 } 10896 this._isTransitioning = !0; 10897 (this._element.style[e] = ""), 10898 this._queueCallback( 10899 () => { 10900 (this._isTransitioning = !1), this._element.classList.remove(Di), this._element.classList.add(Mi), ti.trigger(this._element, "hidden.bs.collapse"); 10901 }, 10902 this._element, 10903 !0 10904 ); 10905 } 10906 _isShown(e = this._element) { 10907 return e.classList.contains(Oi); 10908 } 10909 _configAfterMerge(e) { 10910 return (e.toggle = Boolean(e.toggle)), (e.parent = An(e.parent)), e; 10911 } 10912 _getDimension() { 10913 return this._element.classList.contains("collapse-horizontal") ? "width" : "height"; 10914 } 10915 _initializeChildren() { 10916 if (!this._config.parent) return; 10917 const e = this._getFirstLevelChildren(Ni); 10918 for (const t of e) { 10919 const e = Tn(t); 10920 e && this._addAriaAndCollapsedClass([t], this._isShown(e)); 10921 } 10922 } 10923 _getFirstLevelChildren(e) { 10924 const t = fi.find(":scope .collapse .collapse", this._config.parent); 10925 return fi.find(e, this._config.parent).filter((e) => !t.includes(e)); 10926 } 10927 _addAriaAndCollapsedClass(e, t) { 10928 if (e.length) for (const n of e) n.classList.toggle("collapsed", !t), n.setAttribute("aria-expanded", t); 10929 } 10930 static jQueryInterface(e) { 10931 const t = {}; 10932 return ( 10933 "string" == typeof e && /show|hide/.test(e) && (t.toggle = !1), 10934 this.each(function () { 10935 const n = ji.getOrCreateInstance(this, t); 10936 if ("string" == typeof e) { 10937 if (void 0 === n[e]) throw new TypeError(`No method n
10937amed "${e}"`); 10938 n[e](); 10939 } 10940 }) 10941 ); 10942 } 10943 } 10944 ti.on(document, "click.bs.collapse.data-api", Ni, function (e) { 10945 ("A" === e.target.tagName || (e.delegateTarget && "A" === e.delegateTarget.tagName)) && e.preventDefault(); 10946 const t = Cn(this), 10947 n = fi.find(t); 10948 for (const e of n) ji.getOrCreateInstance(e, { toggle: !1 }).toggle(); 10949 }), 10950 In(ji); 10951 const Fi = "dropdown", 10952 Hi = "ArrowUp", 10953 Ri = "ArrowDown", 10954 Bi = "click.bs.dropdown.data-api", 10955 qi = "keydown.bs.dropdown.data-api", 10956 Wi = "show", 10957 Vi = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)', 10958 Gi = `${Vi}.show`, 10959 Xi = ".dropdown-menu", 10960 Yi = Nn() ? "top-end" : "top-start", 10961 Ui = Nn() ? "top-start" : "top-end", 10962 Ki = Nn() ? "bottom-end" : "bottom-start", 10963 Zi = Nn() ? "bottom-start" : "bottom-end", 10964 Qi = Nn() ? "left-start" : "right-start", 10965 Ji = Nn() ? "right-start" : "left-start", 10966 es = { autoClose: !0, boundary: "clippingParents", display: "dynamic", offset: [0, 2], popperConfig: null, reference: "toggle" }, 10967 ts = { autoClose: "(boolean|string)", boundary: "(string|element)", display: "string", offset: "(array|string|function)", popperConfig: "(null|object|function)", reference: "(string|element|object)" }; 10968 class ns extends ci { 10969 constructor(e, t) { 10970 super(e, t), (this._popper = null), (this._parent = this._element.parentNode), (this._menu = fi.next(this._element, Xi)[0] || fi.prev(this._element, Xi)[0]), (this._inNavbar = this._detectNavbar()); 10971 } 10972 static get Default() { 10973 return es; 10974 } 10975 static get DefaultType() { 10976 return ts; 10977 } 10978 static get NAME() { 10979 return Fi; 10980 } 10981 toggle() { 10982 return this._isShown() ? this.hide() : this.show(); 10983 } 10984 show() { 10985 if ($n(this._element) || this._isShown()) return; 10986 const e = { relatedTarget: this._element }; 10987 if (!ti.trigger(this._element, "show.bs.dropdown", e).defaultPrevented) { 10988 if ((this._createPopper(), "ontouchstart" in document.documentElement && !this._parent.closest(".
10988navbar-nav"))) for (const e of [].concat(...document.body.children)) ti.on(e, "mouseover", Pn); 10989 this._element.focus(), this._element.setAttribute("aria-expanded", !0), this._menu.classList.add(Wi), this._element.classList.add(Wi), ti.trigger(this._element, "shown.bs.dropdown", e); 10990 } 10991 } 10992 hide() { 10993 if ($n(this._element) || !this._isShown()) return; 10994 const e = { relatedTarget: this._element }; 10995 this._completeHide(e); 10996 } 10997 dispose() { 10998 this._popper && this._popper.destroy(), super.dispose(); 10999 } 11000 update() { 11001 (this._inNavbar = this._detectNavbar()), this._popper && this._popper.update(); 11002 } 11003 _completeHide(e) { 11004 if (!ti.trigger(this._element, "hide.bs.dropdown", e).defaultPrevented) { 11005 if ("ontouchstart" in document.documentElement) for (const e of [].concat(...document.body.children)) ti.off(e, "mouseover", Pn); 11006 this._popper && this._popper.destroy(), 11007 this._menu.classList.remove(Wi), 11008 this._element.classList.remove(Wi), 11009 this._element.setAttribute("aria-expanded", "false"), 11010 ai.removeDataAttribute(this._menu, "popper"), 11011 ti.trigger(this._element, "hidden.bs.dropdown", e); 11012 } 11013 } 11014 _getConfig(e) { 11015 if ("object" == typeof (e = super._getConfig(e)).reference && !Sn(e.reference) && "function" != typeof e.reference.getBoundingClientRect) 11016 throw new TypeError(`${Fi.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`); 11017 return e; 11018 } 11019 _createPopper() { 11020 if (void 0 === e) throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)"); 11021 let t = this._element; 11022 "parent" === this._config.reference ? (t = this._parent) : Sn(this._config.reference) ? (t = An(this._config.reference)) : "object" == typeof this._config.reference && (t = this._config.reference); 11023 const n = this._getPopperConfig(); 11024 this._popper = bn(t, this._menu, n); 11025 } 11026 _isShown() { 11027 return this._menu.classList.contains(Wi); 11028 } 11029 _getPlacement() { 11030 const e = this._parent; 11031 if (e.classList.contains("dropend")) return Qi; 11032 if (e.classList.contains("dropstart")) return Ji; 11033 if (e.classList.contains("dropup-center")) return "top"; 11034 if (e.classList.contains("dropdown-center")) return "bottom"; 11035 const t = "end" === getComputedStyle(this._menu).getPropertyValue("--bs-position").trim(); 11036 return e.classList.contains("dropup") ? (t ? Ui : Yi) : t ? Zi : Ki; 11037 } 11038 _detectNavbar() {
11039 return null !== this._element.closest(".navbar"); 11040 } 11041 _getOffset() { 11042 const { offset: e } = this._config; 11043 return "string" == typeof e ? e.split(",").map((e) => Number.parseInt(e, 10)) : "function" == typeof e ? (t) => e(t, this._element) : e; 11044 } 11045 _getPopperConfig() { 11046 const e = { 11047 placement: this._getPlacement(), 11048 modifiers: [ 11049 { name: "preventOverflow", options: { boundary: this._config.boundary } }, 11050 { name: "offset", options: { offset: this._getOffset() } }, 11051 ], 11052 }; 11053 return ( 11054 (this._inNavbar || "static" === this._config.display) && (ai.setDataAttribute(this._menu, "popper", "static"), (e.modifiers = [{ name: "applyStyles", enabled: !1 }])), 11055 { ...e, ...("function" == typeof this._config.popperConfig ? this._config.popperConfig(e) : this._config.popperConfig) } 11056 ); 11057 } 11058 _selectMenuItem({ key: e, target: t }) { 11059 const n = fi.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)", this._menu).filter((e) => kn(e)); 11060 n.length && Fn(n, t, e === Ri, !n.includes(t)).focus(); 11061 } 11062 static jQueryInterface(e) { 11063 return this.each(function () { 11064 const t = ns.getOrCreateInstance(this, e); 11065 if ("string" == typeof e) { 11066 if (void 0 === t[e]) throw new TypeError(`No method named "${e}"`); 11067 t[e](); 11068 } 11069 }); 11070 } 11071 static clearMenus(e) { 11072 if (2 === e.button || ("keyup" === e.type && "Tab" !== e.key)) return; 11073 const t = fi.find(Gi); 11074 for (const n of t) { 11075 const t = ns.getInstance(n); 11076 if (!t || !1 === t._config.autoClose) continue; 11077 const i = e.composedPath(), 11078 s = i.includes(t._menu); 11079 if (i.includes(t._element) || ("inside" === t._config.autoClose && !s) || ("outside" === t._config.autoClose && s)) continue; 11080 if (t._menu.contains(e.target) && (("keyup" === e.type && "Tab" === e.key) || /input|select|option|textarea|form/i.test(e.target.tagName))) continue; 11081 const o = { relatedTarget: t._element }; 11082 "click" === e.type && (o.clickEvent = e), t._completeHide(o); 11083 } 11084 } 11085 static dataApiKeydownHandler(e) { 11086 const t = /input|textarea/i.test(e.target.tagName), 11087 n = "Escape" === e.key, 11088 i = [Hi, Ri].includes(e.key); 11089 if (!i && !n) return; 11090 if (t && !n) return; 11091 e.preventDefault(); 11092 const s = this.matches(Vi) ? this : fi.prev(this, Vi)[0] || fi.next(this, Vi)[0], 11093 o = ns.getOrCreateInstance(s); 11094 if (i) return e.stopPropagation(), o.show(), void o._selectMenuItem(e); 11095 o._isShown() && (e.stopPropagation(), o.hide(), s.focus()); 11096 } 11097 } 11098 ti.on(document, qi, Vi, ns.dataApiKeydownHandler), 11099 ti.on(document, qi, Xi, ns.dataApiKeydownHandler), 11100 ti.on(document, Bi, ns.clearMenus), 11101 ti.on(document, "keyup.bs.dropdown.data-api", ns.clearMenus), 11102 ti.on(document, Bi, Vi, function (e) { 11103 e.preventDefault(), ns.getOrCreateInstance(this).toggle(); 11104 }), 11105 In(ns); 11106 const is = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top", 11107 ss = ".sticky-top", 11108 os = "padding-right", 11109 rs = "margin-right"; 11110 class as { 11111 constructor() { 11112 this._element = document.body; 11113 } 11114 getWidth() { 11115 const e = document.documentElement.clientWidth; 11116 return Math.abs(window.innerWidth - e); 11117 } 11118 hide() { 11119 const e = this.getWidth(); 11120 this._disableOverFlow(), this._setElementAttributes(this._element, os, (t) => t + e), this._setElementAttributes(is, os, (t) => t + e), this._setElementAttributes(ss, rs, (t) => t - e); 11121 } 11122 reset() { 11123 this._resetElementAttributes(this._element, "overflow"), this._resetElementAttributes(this._element, os), this._resetElementAttributes(is, os), this._resetElementAttributes(ss, rs); 11124 } 11125 isOverflowing() { 11126 return this.getWidth() > 0; 11127 } 11128 _disableOverFlow() { 11129 this._saveInitialAttribute(this._element, "overflow"), (this._element.style.overflow = "hidden"); 11130 } 11131 _setElementAttributes(e, t, n) { 11132 const i = this.getWidth(); 11133 this._applyManipulationCallback(e, (e) => { 11134 if (e !== this._element && window.innerWidth > e.clientWidth + i) return; 11135 this._saveInitialAttribute(e, t); 11136 const s = window.getComputedStyle(e).getPropertyValue(t); 11137 e.style.setProperty(t, `${n(Number.parseFloat(s))}px`); 11138 }); 11139 } 11140 _saveInitialAttribute(e, t) { 11141 const n = e.style.getPropertyValue(t); 11142 n && ai.setDataAttribute(e, t, n); 11143 } 11144 _resetElementAttributes(e, t) { 11145 this._applyManipulationCallback(e, (e) => { 11146 const n = ai.getDataAttribute(e, t); 11147 null !== n ? (ai.removeDataAttribute(e, t), e.style.setProperty(t, n)) : e.style.removeProperty(t); 11148 }); 11149 } 11150 _applyManipulationCallback(e, t) { 11151 if (Sn(e)) t(e); 11152 else for (const n of fi.find(e, this._element)) t(n); 11153 } 11154 } 11155 const ls = "backdrop", 11156 cs = "show", 11157 ds = "mousedown.bs.backdrop",
11158 hs = { className: "modal-backdrop", clickCallback: null, isAnimated: !1, isVisible: !0, rootElement: "body" }, 11159 us = { className: "string", clickCallback: "(function|null)", isAnimated: "boolean", isVisible: "boolean", rootElement: "(element|string)" }; 11160 class ps extends li { 11161 constructor(e) { 11162 super(), (this._config = this._getConfig(e)), (this._isAppended = !1), (this._element = null); 11163 } 11164 static get Default() { 11165 return hs; 11166 } 11167 static get DefaultType() { 11168 return us; 11169 } 11170 static get NAME() { 11171 return ls; 11172 } 11173 show(e) { 11174 if (!this._config.isVisible) return void zn(e); 11175 this._append(); 11176 const t = this._getElement(); 11177 this._config.isAnimated && On(t), 11178 t.classList.add(cs), 11179 this._emulateAnimation(() => { 11180 zn(e); 11181 }); 11182 } 11183 hide(e) { 11184 this._config.isVisible 11185 ? (this._getElement().classList.remove(cs), 11186 this._emulateAnimation(() => { 11187 this.dispose(), zn(e); 11188 })) 11189 : zn(e); 11190 } 11191 dispose() { 11192 this._isAppended && (ti.off(this._element, ds), this._element.remove(), (this._isAppended = !1)); 11193 } 11194 _getElement() { 11195 if (!this._element) { 11196 const e = document.createElement("div"); 11197 (e.className = this._config.className), this._config.isAnimated && e.classList.add("fade"), (this._element = e); 11198 } 11199 return this._element; 11200 } 11201 _configAfterMerge(e) { 11202 return (e.rootElement = An(e.rootElement)), e; 11203 } 11204 _append() { 11205 if (this._isAppended) return; 11206 const e = this._getElement(); 11207 this._config.rootElement.append(e), 11208 ti.on(e, ds, () => { 11209 zn(this._config.clickCallback); 11210 }), 11211 (this._isAppended = !0); 11212 } 11213 _emulateAnimation(e) { 11214 jn(e, this._getElement(), this._config.isAnimated); 11215 } 11216 } 11217 const fs = ".bs.focustrap", 11218 gs = "backward", 11219 ms = { autofocus: !0, trapElement: null }, 11220 vs = { autofocus: "boolean", trapElement: "element" }; 11221 class bs extends li { 11222 constructor(e) { 11223 super(), (this._config = this._getConfig(e)), (this._isActive = !1), (this._lastTabNavDirection = null); 11224 } 11225 static get Default() { 11226 return ms; 11227 } 11228 static get DefaultType() { 11229 return vs; 11230 } 11231 static get NAME() { 11232 return "focustrap"; 11233 } 11234 activate() { 11235 this._isActive || 11236 (this._config.autofocus && this._config.trapElement.focus(), 11237 ti.off(document, fs), 11238 ti.on(document, "focusin.bs.focustrap", (e) => this._handleFocusin(e)), 11239 ti.on(document, "keydown.tab.bs.focustrap", (e) => this._handleKeydown(e)), 11240 (this._isActive = !0)); 11241 } 11242 deactivate() { 11243 this._isActive && ((this._isActive = !1), ti.off(document, fs)); 11244 } 11245 _handleFocusin(e) { 11246 const { trapElement: t } = this._config; 11247 if (e.target === document || e.target === t || t.contains(e.target)) return; 11248 const n = fi.focusableChildren(t); 11249 0 === n.length ? t.focus() : this._lastTabNavDirection === gs ? n[n.length - 1].focus() : n[0].focus(); 11250 } 11251 _handleKeydown(e) { 11252 "Tab" === e.key && (this._lastTabNavDirection = e.shiftKey ? gs : "forward"); 11253 } 11254 } 11255 const ys = ".bs.modal", 11256 ws = "hidden.bs.modal", 11257 xs = "show.bs.modal",
11258 _s = "modal-open", 11259 Cs = "show", 11260 Ts = "modal-static", 11261 Es = { backdrop: !0, focus: !0, keyboard: !0 }, 11262 Ss = { backdrop: "(boolean|string)", focus: "boolean", keyboard: "boolean" }; 11263 class As extends ci { 11264 constructor(e, t) { 11265 super(e, t), 11266 (this._dialog = fi.findOne(".modal-dialog", this._element)), 11267 (this._backdrop = this._initializeBackDrop()), 11268 (this._focustrap = this._initializeFocusTrap()), 11269 (this._isShown = !1), 11270 (this._isTransitioning = !1), 11271 (this._scrollBar = new as()), 11272 this._addEventListeners(); 11273 } 11274 static get Default() { 11275 return Es; 11276 } 11277 static get DefaultType() { 11278 return Ss; 11279 } 11280 static get NAME() { 11281 return "modal"; 11282 } 11283 toggle(e) { 11284 return this._isShown ? this.hide() : this.show(e); 11285 } 11286 show(e) { 11287 if (this._isShown || this._isTransitioning) return; 11288 ti.trigger(this._element, xs, { relatedTarget: e }).defaultPrevented || 11289 ((this._isShown = !0), (this._isTransitioning = !0), this._scrollBar.hide(), document.body.classList.add(_s), this._adjustDialog(), this._backdrop.show(() => this._showElement(e))); 11290 } 11291 hide() { 11292 if (!this._isShown || this._isTransitioning) return; 11293 ti.trigger(this._element, "hide.bs.modal").defaultPrevented || 11294 ((this._isShown = !1), (this._isTransitioning = !0), this._focustrap.deactivate(), this._element.classList.remove(Cs), this._queueCallback(() => this._hideModal(), this._element, this._isAnimated())); 11295 } 11296 dispose() { 11297 for (const e of [window, this._dialog]) ti.off(e, ys); 11298 this._backdrop.dispose(), this._focustrap.deactivate(), super.dispose(); 11299 } 11300 handleUpdate() { 11301 this._adjustDialog(); 11302 } 11303 _initializeBackDrop() { 11304 return new ps({ isVisible: Boolean(this._config.backdrop), isAnimated: this._isAnimated() }); 11305 } 11306 _initializeFocusTrap() { 11307 return new bs({ trapElement: this._element }); 11308 } 11309 _showElement(e) { 11310 document.body.contains(this._element) || document.body.append(this._element), 11311 (this._element.style.display = "block"), 11312 this._element.removeAttribute("aria-hidden"), 11313 this._element.setAttribute("aria-modal", !0), 11314 this._element.setAttribute("role", "dialog"), 11315 (this._element.scrollTop = 0); 11316 const t = fi.findOne(".modal-body", this._dialog); 11317 t && (t.scrollTop = 0), On(this._element), this._element.classList.add(Cs); 11318 this._queueCallback( 11319 () => { 11320 this._config.focus && this._focustrap.activate(), (this._isTransitioning = !1), ti.trigger(this._element, "shown.bs.modal", { relatedTarget: e }); 11321 }, 11322 this._dialog, 11323 this._isAnimated() 11324 ); 11325 } 11326 _addEventListeners() { 11327 ti.on(this._element, "keydown.dismiss.bs.modal", (e) => { 11328 if ("Escape" === e.key) return this._config.keyboard ? (e.preventDefault(), void this.hide()) : void this._triggerBackdropTransition(); 11329 }), 11330 ti.on(window, "resize.bs.modal", () => { 11331 this._isShown && !this._isTransitioning && this._adjustDialog(); 11332 }), 11333 ti.on(this._element, "mousedown.dismiss.bs.modal", (e) => { 11334 ti.one(this._element, "click.dismiss.bs.modal", (t) => { 11335 this._dialog.contains(e.target) || this._dialog.contains(t.target) || ("static" !== this._config.backdrop ? this._config.backdrop && this.hide() : this._triggerBackdropTransition()); 11336 }); 11337 }); 11338 } 11339 _hideModal() { 11340 (this._element.style.display = "none"), 11341 this._element.setAttribute("aria-hidden", !0), 11342 this._element.removeAttribute("aria-modal"), 11343 this._element.removeAttribute("role"), 11344 (this._isTransitioning = !1), 11345 this._backdrop.hide(() => { 11346 document.body.classList.remove(_s), this._resetAdjustments(), this._scrollBar.reset(), ti.trigger(this._element, ws); 11347 }); 11348 }
11349 _isAnimated() { 11350 return this._element.classList.contains("fade"); 11351 } 11352 _triggerBackdropTransition() { 11353 if (ti.trigger(this._element, "hidePrevented.bs.modal").defaultPrevented) return; 11354 const e = this._element.scrollHeight > document.documentElement.clientHeight, 11355 t = this._element.style.overflowY; 11356 "hidden" === t || 11357 this._element.classList.contains(Ts) || 11358 (e || (this._element.style.overflowY = "hidden"), 11359 this._element.classList.add(Ts), 11360 this._queueCallback(() => { 11361 this._element.classList.remove(Ts), 11362 this._queueCallback(() => { 11363 this._element.style.overflowY = t; 11364 }, this._dialog); 11365 }, this._dialog), 11366 this._element.focus()); 11367 } 11368 _adjustDialog() { 11369 const e = this._element.scrollHeight > document.documentElement.clientHeight, 11370 t = this._scrollBar.getWidth(), 11371 n = t > 0; 11372 if (n && !e) { 11373 const e = Nn() ? "paddingLeft" : "paddingRight"; 11374 this._element.style[e] = `${t}px`; 11375 } 11376 if (!n && e) { 11377 const e = Nn() ? "paddingRight" : "paddingLeft"; 11378 this._element.style[e] = `${t}px`; 11379 } 11380 } 11381 _resetAdjustments() { 11382 (this._element.style.paddingLeft = ""), (this._element.style.paddingRight = ""); 11383 } 11384 static jQueryInterface(e, t) { 11385 return this.each(function () { 11386 const n = As.getOrCreateInstance(this, e); 11387 if ("string" == typeof e) { 11388 if (void 0 === n[e]) throw new TypeError(`No method named "${e}"`); 11389 n[e](t); 11390 } 11391 }); 11392 } 11393 } 11394 ti.on(document, "click.bs.modal.data-api", '[data-bs-toggle="modal"]', function (e) { 11395 const t = Tn(this); 11396 ["A", "AREA"].includes(this.tagName) && e.preventDefault(), 11397 ti.one(t, xs, (e) => { 11398 e.defaultPrevented || 11399 ti.one(t, ws, () => { 11400 kn(this) && this.focus(); 11401 }); 11402 }); 11403 const n = fi.findOne(".modal.show"); 11404 n && As.getInstance(n).hide(); 11405 As.getOrCreateInstance(t).toggle(this); 11406 }), 11407 di(As), 11408 In(As); 11409 const ks = "show", 11410 $s = "showing", 11411 Ls = "hiding", 11412 Ps = ".offcanvas.show", 11413 Os = "hidePrevented.bs.offcanvas", 11414 Ms = "hidden.bs.offcanvas", 11415 Ds = { backdrop: !0, keyboard: !0, scroll: !1 }, 11416 Ns = { backdrop: "(boolean|string)", keyboard: "boolean", scroll: "boolean" }; 11417 class Is extends ci { 11418 constructor(e, t) { 11419 super(e, t), (this._isShown = !1), (this._backdrop = this._initializeBackDrop()), (this._focustrap = this._initializeFocusTrap()), this._addEventListeners(); 11420 } 11421 static get Default() { 11422 return Ds; 11423 } 11424 static get DefaultType() { 11425 return Ns; 11426 } 11427 static get NAME() { 11428 return "offcanvas"; 11429 } 11430 toggle(e) { 11431 return this._isShown ? this.hide() : this.show(e); 11432 } 11433 show(e) { 11434 if (this._isShown) return; 11435 if (ti.trigger(this._element, "show.bs.offcanvas", { relatedTarget: e }).defaultPrevented) return; 11436 (this._isShown = !0), this._backdrop.show(), this._config.scroll || new as().hide(), this._element.setAttribute("aria-modal", !0), this._element.setAttribute("role", "dialog"), this._element.classList.add($s); 11437 this._queueCallback( 11438 () => { 11439 (this._config.scroll && !this._config.backdrop) || this._focustrap.activate(), 11440 this._element.classList.add(ks), 11441 this._element.classList.remove($s), 11442 ti.trigger(this._element, "shown.bs.offcanvas", { relatedTarget: e }); 11443 }, 11444 this._element, 11445 !0 11446 ); 11447 } 11448 hide() { 11449 if (!this._isShown) return; 11450 if (ti.trigger(this._element, "hide.bs.offcanvas").defaultPrevented) return; 11451 this._focustrap.deactivate(), this._element.blur(), (this._isShown = !1), this._element.classList.add(Ls), this._backdrop.hide(); 11452 this._queueCallback( 11453 () => { 11454 this._element.classList.remove(ks, Ls), this._element.removeAttribute("aria-modal"), this._element.removeAttribute("role"), this._config.scroll || new as().reset(), ti.trigger(this._element, Ms); 11455 }, 11456 this._element, 11457 !0 11458 ); 11459 } 11460 dispose() { 11461 this._backdrop.dispose(), this._focustrap.deactivate(), super.dispose(); 11462 } 11463 _initializeBackDrop() { 11464 const e = Boolean(this._config.backdrop); 11465 return new ps({ 11466 className: "offcanvas-backdrop", 11467 isVisible: e, 11468 isAnimated: !0, 11469 rootElement: this._element.parentNode, 11470 clickCallback: e 11471 ? () => { 11472 "static" !== this._config.backdrop ? this.hide() : ti.trigger(this._element, Os); 11473 } 11474 : null, 11475 }); 11476 } 11477 _initializeFocusTrap() { 11478 return new bs({ trapElement: this._element }); 11479 } 11480 _addEventListeners() { 11481 ti.on(this._element, "keydown.dismiss.bs.offcanvas", (e) => { 11482 "Escape" === e.key && (this._config.keyboard ? this.hide() : ti.trigger(this._element, Os)); 11483 }); 11484 } 11485 static jQueryInterface(e) { 11486 return this.each(function () { 11487 const t = Is.getOrCreateInstance(this, e); 11488 if ("string" == typeof e) { 11489 if (void 0 === t[e] || e.startsWith("_") || "constructor" === e) throw new TypeError(`No method n
11489amed "${e}"`); 11490 t[e](this); 11491 } 11492 }); 11493 } 11494 } 11495 ti.on(document, "click.bs.offcanvas.data-api", '[data-bs-toggle="offcanvas"]', function (e) { 11496 const t = Tn(this); 11497 if ((["A", "AREA"].includes(this.tagName) && e.preventDefault(), $n(this))) return; 11498 ti.one(t, Ms, () => { 11499 kn(this) && this.focus(); 11500 }); 11501 const n = fi.findOne(Ps); 11502 n && n !== t && Is.getInstance(n).hide(); 11503 Is.getOrCreateInstance(t).toggle(this); 11504 }), 11505 ti.on(window, "load.bs.offcanvas.data-api", () => { 11506 for (const e of fi.find(Ps)) Is.getOrCreateInstance(e).show(); 11507 }), 11508 ti.on(window, "resize.bs.offcanvas", () => { 11509 for (const e of fi.find("[aria-modal][class*=show][class*=offcanvas-]")) "fixed" !== getComputedStyle(e).position && Is.getOrCreateInstance(e).hide(); 11510 }), 11511 di(Is), 11512 In(Is); 11513 const zs = new Set(["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"]), 11514 js = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i, 11515 Fs = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i, 11516 Hs = (e, t) => { 11517 const n = e.nodeName.toLowerCase(); 11518 return t.includes(n) ? !zs.has(n) || Boolean(js.test(e.nodeValue) || Fs.test(e.nodeValue)) : t.filter((e) => e instanceof RegExp).some((e) => e.test(n)); 11519 }, 11520 Rs = { 11521 "*": ["class", "dir", "id", "lang", "role", /^aria-[\w-]*$/i], 11522 a: ["target", "href", "title", "rel"], 11523 area: [], 11524 b: [], 11525 br: [], 11526 col: [], 11527 code: [], 11528 div: [], 11529 em: [], 11530 hr: [], 11531 h1: [], 11532 h2: [], 11533 h3: [], 11534 h4: [], 11535 h5: [], 11536 h6: [], 11537 i: [], 11538 img: ["src", "srcset", "alt", "title", "width", "height"], 11539 li: [], 11540 ol: [], 11541 p: [], 11542 pre: [], 11543 s: [], 11544 small: [], 11545 span: [], 11546 sub: [], 11547 sup: [], 11548 strong: [], 11549 u: [], 11550 ul: [], 11551 }; 11552 const Bs = { allowList: Rs, content: {}, extraClass: "", html: !1, sanitize: !0, sanitizeFn: null, template: "<div></div>" }, 11553 qs = { allowList: "object", content: "object", extraClass: "(string|function)", html: "boolean", sanitize: "boolean", sanitizeFn: "(null|function)", template: "string" }, 11554 Ws = { entry: "(string|element|function|null)", selector: "(string|element)" }; 11555 class Vs extends li { 11556 constructor(e) { 11557 super(), (this._config = this._getConfig(e)); 11558 } 11559 static get Default() { 11560 return Bs; 11561 } 11562 static get DefaultType() { 11563 return qs; 11564 } 11565 static get NAME() { 11566 return "TemplateFactory"; 11567 } 11568 getContent() { 11569 return Object.values(this._config.content) 11570 .map((e) => this._resolvePossibleFunction(e)) 11571 .filter(Boolean); 11572 } 11573 hasContent() { 11574 return this.getContent().length > 0; 11575 } 11576 changeContent(e) { 11577 return this._checkContent(e), (this._config.content = { ...this._config.content, ...e }), this; 11578 } 11579 toHtml() { 11580 const e = document.createElement("div"); 11581 e.innerHTML = this._maybeSanitize(this._config.template); 11582 for (const [t, n] of Object.entries(this._config.content)) this._setContent(e, n, t); 11583 const t = e.children[0], 11584 n = this._resolvePossibleFunction(this._config.extraClass); 11585 return n && t.classList.add(...n.split(" ")), t; 11586 } 11587 _typeCheckConfig(e) { 11588 super._typeCheckConfig(e), this._checkContent(e.content); 11589 } 11590 _checkContent(e) { 11591 for (const [t, n] of Object.entries(e)) super._typeCheckConfig({ selector: t, entry: n }, Ws); 11592 } 11593 _setContent(e, t, n) { 11594 const i = fi.findOne(n, e); 11595 i && ((t = this._resolvePossibleFunction(t)) ? (Sn(t) ? this._putElementInTemplate(An(t), i) : this._config.html ? (i.innerHTML = this._maybeSanitize(t)) : (i.textContent = t)) : i.remove()); 11596 } 11597 _maybeSanitize(e) { 11598 return this._config.sanitize 11599 ? (function (e, t, n) { 11600 if (!e.length) return e; 11601 if (n && "function" == typeof n) return n(e); 11602 const i = new window.DOMParser().parseFromString(e, "text/html"), 11603 s = [].concat(...i.body.querySelectorAll("*")); 11604 for (const e of s) { 11605 const n = e.nodeName.toLowerCase(); 11606 if (!Object.keys(t).includes(n)) { 11607 e.remove(); 11608 continue; 11609 } 11610 const i = [].concat(...e.attributes), 11611 s = [].concat(t["*"] || [], t[n] || []); 11612 for (const t of i) Hs(t, s) || e.removeAttribute(t.nodeName); 11613 } 11614 return i.body.innerHTML; 11615 })(e, this._config.allowList, this._config.sanitizeFn) 11616 : e; 11617 } 11618 _resolvePossibleFunction(e) { 11619 return "function" == typeof e ? e(this) : e; 11620 } 11621 _putElementInTemplate(e, t) { 11622 if (this._config.html) return (t.innerHTML = ""), void t.append(e); 11623 t.textContent = e.textContent; 11624 } 11625 } 11626 const Gs = new Set(["sanitize", "allowList", "sanitizeFn"]), 11627 Xs = "fade", 11628 Ys = "show", 11629 Us = ".modal", 11630 Ks = "hide.bs.modal", 11631 Zs = "hover",
11632 Qs = "focus", 11633 Js = { AUTO: "auto", TOP: "top", RIGHT: Nn() ? "left" : "right", BOTTOM: "bottom", LEFT: Nn() ? "right" : "left" }, 11634 eo = { 11635 allowList: Rs, 11636 animation: !0, 11637 boundary: "clippingParents", 11638 container: !1, 11639 customClass: "", 11640 delay: 0, 11641 fallbackPlacements: ["top", "right", "bottom", "left"], 11642 html: !1, 11643 offset: [0, 0], 11644 placement: "top", 11645 popperConfig: null, 11646 sanitize: !0, 11647 sanitizeFn: null, 11648 selector: !1, 11649 template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>', 11650 title: "", 11651 trigger: "hover focus", 11652 }, 11653 to = { 11654 allowList: "object", 11655 animation: "boolean", 11656 boundary: "(string|element)", 11657 container: "(string|element|boolean)", 11658 customClass: "(string|function)", 11659 delay: "(number|object)", 11660 fallbackPlacements: "array", 11661 html: "boolean", 11662 offset: "(array|string|function)", 11663 placement: "(string|function)", 11664 popperConfig: "(null|object|function)", 11665 sanitize: "boolean", 11666 sanitizeFn: "(null|function)", 11667 selector: "(string|boolean)", 11668 template: "string", 11669 title: "(string|element|function)", 11670 trigger: "string", 11671 }; 11672 class no extends ci { 11673 constructor(t, n) { 11674 if (void 0 === e) throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)"); 11675 super(t, n), 11676 (this._isEnabled = !0), 11677 (this._timeout = 0), 11678 (this._isHovered = null), 11679 (this._activeTrigger = {}), 11680 (this._popper = null), 11681 (this._templateFactory = null), 11682 (this._newContent = null), 11683 (this.tip = null), 11684 this._setListeners(); 11685 } 11686 static get Default() { 11687 return eo; 11688 } 11689 static get DefaultType() { 11690 return to; 11691 } 11692 static get NAME() { 11693 return "tooltip"; 11694 } 11695 enable() { 11696 this._isEnabled = !0; 11697 } 11698 disable() { 11699 this._isEnabled = !1; 11700 } 11701 toggleEnabled() { 11702 this._isEnabled = !this._isEnabled; 11703 } 11704 toggle(e) { 11705 if (this._isEnabled) { 11706 if (e) { 11707 const t = this._initializeOnDelegatedTarget(e); 11708 return (t._activeTrigger.click = !t._activeTrigger.click), void (t._isWithActiveTrigger() ? t._enter() : t._leave()); 11709 } 11710 this._isShown() ? this._leave() : this._enter(); 11711 } 11712 } 11713 dispose() { 11714 clearTimeout(this._timeout), 11715 ti.off(this._element.closest(Us), Ks, this._hideModalHandler), 11716 this.tip && this.tip.remove(), 11717 this._config.originalTitle && this._element.setAttribute("title", this._config.originalTitle), 11718 this._disposePopper(), 11719 super.dispose(); 11720 } 11721 show() { 11722 if ("none" === this._element.style.display) throw new Error("Please use show on visible elements"); 11723 if (!this._isWithContent() || !this._isEnabled) return; 11724 const e = ti.trigger(this._element, this.constructor.eventName("show")), 11725 t = (Ln(this._element) || this._element.ownerDocument.documentElement).contains(this._element); 11726 if (e.defaultPrevented || !t) return; 11727 this.tip && (this.tip.remove(), (this.tip = null)); 11728 const n = this._getTipElement(); 11729 this._element.setAttribute("aria-describedby", n.getAttribute("id")); 11730 const { container: i } = this._config; 11731 if ( 11732 (this._element.ownerDocument.documentElement.contains(this.tip) || (i.append(n), ti.trigger(this._element, this.constructor.eventName("inserted"))),
11733 this._popper ? this._popper.update() : (this._popper = this._createPopper(n)), 11734 n.classList.add(Ys), 11735 "ontouchstart" in document.documentElement) 11736 ) 11737 for (const e of [].concat(...document.body.children)) ti.on(e, "mouseover", Pn); 11738 this._queueCallback( 11739 () => { 11740 ti.trigger(this._element, this.constructor.eventName("shown")), !1 === this._isHovered && this._leave(), (this._isHovered = !1); 11741 }, 11742 this.tip, 11743 this._isAnimated() 11744 ); 11745 } 11746 hide() { 11747 if (!this._isShown()) return; 11748 if (ti.trigger(this._element, this.constructor.eventName("hide")).defaultPrevented) return; 11749 const e = this._getTipElement(); 11750 if ((e.classList.remove(Ys), "ontouchstart" in document.documentElement)) for (const e of [].concat(...document.body.children)) ti.off(e, "mouseover", Pn); 11751 (this._activeTrigger.click = !1), (this._activeTrigger.focus = !1), (this._activeTrigger.hover = !1), (this._isHovered = null); 11752 this._queueCallback( 11753 () => { 11754 this._isWithActiveTrigger() || (this._isHovered || e.remove(), this._element.removeAttribute("aria-describedby"), ti.trigger(this._element, this.constructor.eventName("hidden")), this._disposePopper()); 11755 }, 11756 this.tip, 11757 this._isAnimated() 11758 ); 11759 } 11760 update() { 11761 this._popper && this._popper.update(); 11762 } 11763 _isWithContent() { 11764 return Boolean(this._getTitle()); 11765 } 11766 _getTipElement() { 11767 return this.tip || (this.tip = this._createTipElement(this._newContent || this._getContentForTemplate())), this.tip; 11768 } 11769 _createTipElement(e) { 11770 const t = this._getTemplateFactory(e).toHtml(); 11771 if (!t) return null; 11772 t.classList.remove(Xs, Ys), t.classList.add(`bs-${this.constructor.NAME}-auto`); 11773 const n = ((e) => { 11774 do { 11775 e += Math.floor(1e6 * Math.random()); 11776 } while (document.getElementById(e)); 11777 return e; 11778 })(this.constructor.NAME).toString(); 11779 return t.setAttribute("id", n), this._isAnimated() && t.classList.add(Xs), t; 11780 } 11781 setContent(e) { 11782 (this._newContent = e), this._isShown() && (this._disposePopper(), this.show()); 11783 } 11784 _getTemplateFactory(e) { 11785 return ( 11786 this._templateFactory ? this._templateFactory.changeContent(e) : (this._templateFactory = new Vs({ ...this._config, content: e, extraClass: this._resolvePossibleFunction(this._config.customClass) })), 11787 this._templateFactory 11788 ); 11789 } 11790 _getContentForTemplate() { 11791 return { ".tooltip-inner": this._getTitle() }; 11792 } 11793 _getTitle() { 11794 return this._resolvePossibleFunction(this._config.title) || this._config.originalTitle; 11795 } 11796 _initializeOnDelegatedTarget(e) { 11797 return this.constructor.getOrCreateInstance(e.delegateTarget, this._getDelegateConfig()); 11798 } 11799 _isAnimated() { 11800 return this._config.animation || (this.tip && this.tip.classList.contains(Xs)); 11801 } 11802 _isShown() { 11803 return this.tip && this.tip.classList.contains(Ys); 11804 } 11805 _createPopper(e) { 11806 const t = "function" == typeof this._config.placement ? this._config.placement.call(this, e, this._element) : this._config.placement, 11807 n = Js[t.toUpperCase()]; 11808 return bn(this._element, e, this._getPopperConfig(n)); 11809 } 11810 _getOffset() { 11811 const { offset: e } = this._config; 11812 return "string" == typeof e ? e.split(",").map((e) => Number.parseInt(e, 10)) : "function" == typeof e ? (t) => e(t, this._element) : e; 11813 } 11814 _resolvePossibleFunction(e) { 11815 return "function" == typeof e ? e.call(this._element) : e; 11816 } 11817 _getPopperConfig(e) { 11818 const t = { 11819 placement: e, 11820 modifiers: [ 11821 { name: "flip", options: { fallbackPlacements: this._config.fallbackPlacements } }, 11822 { name: "offset", options: { offset: this._getOffset() } }, 11823 { name: "preventOverflow", options: { boundary: this._config.boun
11823dary } }, 11824 { name: "arrow", options: { element: `.${this.constructor.NAME}-arrow` } }, 11825 { 11826 name: "preSetPlacement", 11827 enabled: !0, 11828 phase: "beforeMain", 11829 fn: (e) => { 11830 this._getTipElement().setAttribute("data-popper-placement", e.state.placement); 11831 }, 11832 }, 11833 ], 11834 }; 11835 return { ...t, ...("function" == typeof this._config.popperConfig ? this._config.popperConfig(t) : this._config.popperConfig) }; 11836 } 11837 _setListeners() { 11838 const e = this._config.trigger.split(" "); 11839 for (const t of e) 11840 if ("click" === t) ti.on(this._element, this.constructor.eventName("click"), this._config.selector, (e) => this.toggle(e)); 11841 else if ("manual" !== t) { 11842 const e = t === Zs ? this.constructor.eventName("mouseenter") : this.constructor.eventName("focusin"), 11843 n = t === Zs ? this.constructor.eventName("mouseleave") : this.constructor.eventName("focusout"); 11844 ti.on(this._element, e, this._config.selector, (e) => { 11845 const t = this._initializeOnDelegatedTarget(e); 11846 (t._activeTrigger["focusin" === e.type ? Qs : Zs] = !0), t._enter(); 11847 }), 11848 ti.on(this._element, n, this._config.selector, (e) => { 11849 const t = this._initializeOnDelegatedTarget(e); 11850 (t._activeTrigger["focusout" === e.type ? Qs : Zs] = t._element.contains(e.relatedTarget)), t._leave(); 11851 }); 11852 } 11853 (this._hideModalHandler = () => { 11854 this._element && this.hide(); 11855 }), 11856 ti.on(this._element.closest(Us), Ks, this._hideModalHandler), 11857 this._config.selector ? (this._config = { ...this._config, trigger: "manual", selector: "" }) : this._fixTitle(); 11858 } 11859 _fixTitle() { 11860 const e = this._config.originalTitle; 11861 e && (this._element.getAttribute("aria-label") || this._element.textContent.trim() || this._element.setAttribute("aria-label", e), this._element.removeAttribute("title")); 11862 } 11863 _enter() { 11864 this._isShown() || this._isHovered 11865 ? (this._isHovered = !0) 11866 : ((this._isHovered = !0), 11867 this._setTimeout(() => { 11868 this._isHovered && this.show(); 11869 }, this._config.delay.show)); 11870 } 11871 _leave() { 11872 this._isWithActiveTrigger() || 11873 ((this._isHovered = !1), 11874 this._setTimeout(() => { 11875 this._isHovered || this.hide(); 11876 }, this._config.delay.hide)); 11877 } 11878 _setTimeout(e, t) { 11879 clearTimeout(this._timeout), (this._timeout = setTimeout(e, t)); 11880 } 11881 _isWithActiveTrigger() { 11882 return Object.values(this._activeTrigger).includes(!0); 11883 } 11884 _getConfig(e) { 11885 const t = ai.getDataAttributes(this._element); 11886 for (const e of Object.keys(t)) Gs.has(e) && delete t[e]; 11887 return (e = { ...t, ...("object" == typeof e && e ? e : {}) }), (e = this._mergeConfigObj(e)), (e = this._configAfterMerge(e)), this._typeCheckConfig(e), e; 11888 } 11889 _configAfterMerge(e) { 11890 return ( 11891 (e.container = !1 === e.container ? document.body : An(e.container)), 11892 "number" == typeof e.delay && (e.delay = { show: e.delay, hide: e.delay }), 11893 (e.originalTitle = this._element.getAttribute("title") || ""), 11894 "number" == typeof e.title && (e.title = e.title.toString()), 11895 "number" == typeof e.content && (e.content = e.content.toString()), 11896 e 11897 ); 11898 } 11899 _getDelegateConfig() { 11900 const e = {}; 11901 for (const t in this._config) this.constructor.Default[t] !== this._config[t] && (e[t] = this._config[t]); 11902 return e; 11903 } 11904 _disposePopper() { 11905 this._popper && (this._popper.destroy(), (this._popper = null)); 11906 } 11907 static jQueryInterface(e) { 11908 return this.each(function () { 11909 const t = no.getOrCreateInstance(this, e); 11910 if ("string" == typeof e) { 11911 if (void 0 === t[e]) throw new TypeError(`No method n
11911amed "${e}"`); 11912 t[e](); 11913 } 11914 }); 11915 } 11916 } 11917 In(no); 11918 const io = { 11919 ...no.Default, 11920 content: "", 11921 offset: [0, 8], 11922 placement: "right", 11923 template: '<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>', 11924 trigger: "click", 11925 }, 11926 so = { ...no.DefaultType, content: "(null|string|element|function)" }; 11927 class oo extends no { 11928 static get Default() { 11929 return io; 11930 } 11931 static get DefaultType() { 11932 return so; 11933 } 11934 static get NAME() { 11935 return "popover"; 11936 } 11937 _isWithContent() { 11938 return this._getTitle() || this._getContent(); 11939 } 11940 _getContentForTemplate() { 11941 return { ".popover-header": this._getTitle(), ".popover-body": this._getContent() }; 11942 } 11943 _getContent() { 11944 return this._resolvePossibleFunction(this._config.content); 11945 } 11946 static jQueryInterface(e) { 11947 return this.each(function () { 11948 const t = oo.getOrCreateInstance(this, e); 11949 if ("string" == typeof e) { 11950 if (void 0 === t[e]) throw new TypeError(`No method named "${e}"`); 11951 t[e](); 11952 } 11953 }); 11954 } 11955 } 11956 In(oo); 11957 const ro = "click.bs.scrollspy", 11958 ao = "active", 11959 lo = "[href]", 11960 co = { offset: null, rootMargin: "0px 0px -25%", smoothScroll: !1, target: null, threshold: [0.1, 0.5, 1] }, 11961 ho = { offset: "(number|null)", rootMargin: "string", smoothScroll: "boolean", target: "element", threshold: "array" }; 11962 class uo extends ci { 11963 constructor(e, t) { 11964 super(e, t), 11965 (this._targetLinks = new Map()), 11966 (this._observableSections = new Map()), 11967 (this._rootElement = "visible" === getComputedStyle(this._element).overflowY ? null : this._element), 11968 (this._activeTarget = null), 11969 (this._observer = null), 11970 (this._previousScrollData = { visibleEntryTop: 0, parentScrollTop: 0 }), 11971 this.refresh(); 11972 } 11973 static get Default() { 11974 return co; 11975 } 11976 static get DefaultType() { 11977 return ho; 11978 } 11979 static get NAME() { 11980 return "scrollspy"; 11981 } 11982 refresh() { 11983 this._initializeTargetsAndObservables(), this._maybeEnableSmoothScroll(), this._observer ? this._observer.disconnect() : (this._observer = this._getNewObserver()); 11984 for (const e of this._observableSections.values()) this._observer.observe(e); 11985 } 11986 dispose() { 11987 this._observer.disconnect(), super.dispose(); 11988 } 11989 _configAfterMerge(e) { 11990 return ( 11991 (e.target = An(e.target) || document.body), 11992 (e.rootMargin = e.offset ? `${e.offset}px 0px -30%` : e.rootMargin), 11993 "string" == typeof e.threshold && (e.threshold = e.threshold.split(",").map((e) => Number.parseFloat(e))), 11994 e 11995 ); 11996 } 11997 _maybeEnableSmoothScroll() { 11998 this._config.smoothScroll && 11999 (ti.off(this._config.target, ro), 12000 ti.on(this._config.target, ro, lo, (e) => { 12001 const t = this._observableSections.get(e.target.hash); 12002 if (t) { 12003 e.preventDefault(); 12004 const n = this._rootElement || window, 12005 i = t.offsetTop - this._element.offsetTop; 12006 if (n.scrollTo) return void n.scrollTo({ top: i, behavior: "smooth" }); 12007 n.scrollTop = i; 12008 } 12009 })); 12010 } 12011 _getNewObserver() { 12012 const e = { root: this._rootElement, threshold: this._config.threshold, rootMargin: this._config.rootMargin }; 12013 return new IntersectionObserver((e) => this._observerCallback(e), e); 12014 } 12015 _observerCallback(e) { 12016 const t = (e) => this._targetLinks.get(`#${e.target.id}`), 12017 n = (e) => { 12018 (this._previousScrollData.visibleEntryTop = e.target.offsetTop), this._process(t(e)); 12019 }, 12020 i = (this._rootElement || document.documentElement).scrollTop, 12021 s = i >= this._previousScrollData.parentScrollTop; 12022 this._previousScrollData.parentScrollTop = i; 12023 for (const o of e) { 12024 if (!o.isIntersecting) { 12025 (this._activeTarget = null), this._clearActiveClass(t(o)); 12026 continue; 12027 } 12028 const e = o.target.offsetTop >= this._previousScrollData.visibleEntryTop; 12029 if (s && e) { 12030 if ((n(o), !i)) return; 12031 } else s || e || n(o); 12032 } 12033 } 12034 _initializeTargetsAndObservables() { 12035 (this._targetLinks = new Map()), (this._observableSections = new Map()); 12036 const e = fi.find(lo, this._config.target); 12037 for (const t of e) { 12038 if (!t.hash || $n(t)) continue; 12039 const e = fi.findOne(t.hash, this._element); 12040 kn(e) && (this._targetLinks.set(t.hash, t), this._observableSections.set(t.hash, e)); 12041 } 12042 } 12043 _process(e) { 12044 this._activeTarget !== e && 12045 (this._clearActiveClass(this._config.target), (this._activeTarget = e), e.classList.add(ao), this._activateParents(e), ti.trigger(this._element, "activate.bs.scrollspy", { relatedTarget: e })); 12046 } 12047 _activateParents(e) { 12048 if (e.classList.contains("dropdown-item")) fi.findOne(".dropdown-toggle", e.closest(".dropdown")).classList.add(ao); 12049 else for (const t of fi.parents(e, ".nav, .list-group")) for (const e of fi.prev(t, ".nav-link, .nav-item > .nav-link, .list-group-item")) e.classList.add(ao); 12050 } 12051 _clearActiveClass(e) { 12052 e.classList.remove(ao); 12053 const t = fi.find("[href].active", e); 12054 for (const e of t) e.classList.remove(ao); 12055 } 12056 static jQueryInterface(e) { 12057 return this.each(function () { 12058 const t = uo.getOrCreateInstance(this, e); 12059 if ("string" == typeof e) { 12060 if (void 0 === t[e] || e.startsWith("_") || "constructor" === e) throw new TypeError(`No method n
12060amed "${e}"`); 12061 t[e](); 12062 } 12063 }); 12064 } 12065 } 12066 ti.on(window, "load.bs.scrollspy.data-api", () => { 12067 for (const e of fi.find('[data-bs-spy="scroll"]')) uo.getOrCreateInstance(e); 12068 }), 12069 In(uo); 12070 const po = "ArrowLeft", 12071 fo = "ArrowRight", 12072 go = "ArrowUp", 12073 mo = "ArrowDown", 12074 vo = "active", 12075 bo = "fade", 12076 yo = "show", 12077 wo = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]', 12078 xo = `.nav-link:not(.dropdown-toggle), .list-group-item:not(.dropdown-toggle), [role="tab"]:not(.dropdown-toggle), ${wo}`; 12079 class _o extends ci { 12080 constructor(e) { 12081 super(e), 12082 (this._parent = this._element.closest('.list-group, .nav, [role="tablist"]')), 12083 this._parent && (this._setInitialAttributes(this._parent, this._getChildren()), ti.on(this._element, "keydown.bs.tab", (e) => this._keydown(e))); 12084 } 12085 static get NAME() { 12086 return "tab"; 12087 } 12088 show() { 12089 const e = this._element; 12090 if (this._elemIsActive(e)) return; 12091 const t = this._getActiveElem(), 12092 n = t ? ti.trigger(t, "hide.bs.tab", { relatedTarget: e }) : null; 12093 ti.trigger(e, "show.bs.tab", { relatedTarget: t }).defaultPrevented || (n && n.defaultPrevented) || (this._deactivate(t, e), this._activate(e, t)); 12094 } 12095 _activate(e, t) { 12096 if (!e) return; 12097 e.classList.add(vo), this._activate(Tn(e)); 12098 this._queueCallback( 12099 () => { 12100 "tab" === e.getAttribute("role") 12101 ? (e.focus(), e.removeAttribute("tabindex"), e.setAttribute("aria-selected", !0), this._toggleDropDown(e, !0), ti.trigger(e, "shown.bs.tab", { relatedTarget: t })) 12102 : e.classList.add(yo); 12103 }, 12104 e, 12105 e.classList.contains(bo) 12106 ); 12107 } 12108 _deactivate(e, t) { 12109 if (!e) return; 12110 e.classList.remove(vo), e.blur(), this._deactivate(Tn(e)); 12111 this._queueCallback( 12112 () => { 12113 "tab" === e.getAttribute("role") 12114 ? (e.setAttribute("aria-selected", !1), e.setAttribute("tabindex", "-1"), this._toggleDropDown(e, !1), ti.trigger(e, "hidden.bs.tab", { relatedTarget: t })) 12115 : e.classList.remove(yo); 12116 }, 12117 e, 12118 e.classList.contains(bo) 12119 ); 12120 } 12121 _keydown(e) { 12122 if (![po, fo, go, mo].includes(e.key)) return; 12123 e.stopPropagation(), e.preventDefault(); 12124 const t = [fo, mo].includes(e.key), 12125 n = Fn( 12126 this._getChildren().filter((e) => !$n(e)), 12127 e.target, 12128 t, 12129 !0 12130 ); 12131 n && _o.getOrCreateInstance(n).show(); 12132 } 12133 _getChildren() { 12134 return fi.find(xo, this._parent); 12135 } 12136 _getActiveElem() { 12137 return this._getChildren().find((e) => this._elemIsActive(e)) || null; 12138 } 12139 _setInitialAttributes(e, t) { 12140 this._setAttributeIfNotExists(e, "role", "tablist"); 12141 for (const e of t) this._setInitialAttributesOnChild(e); 12142 } 12143 _setInitialAttributesOnChild(e) { 12144 e = this._getInnerElement(e); 12145 const t = this._elemIsActive(e), 12146 n = this._getOuterElement(e); 12147 e.setAttribute("aria-selected", t), 12148 n !== e && this._setAttributeIfNotExists(n, "role", "presentation"), 12149 t || e.setAttribute("tabindex", "-1"), 12150 this._setAttributeIfNotExists(e, "role", "tab"), 12151 this._setInitialAttributesOnTargetPanel(e); 12152 } 12153 _setInitialAttributesOnTargetPanel(e) { 12154 const t = Tn(e); 12155 t && (this._setAttributeIfNotExists(t, "role", "tabpanel"), e.id && this._setAttributeIfNotExists(t, "aria-labelledby", `#${e.id}`)); 12156 } 12157 _toggleDropDown(e, t) { 12158 const n = this._getOuterElement(e); 12159 if (!n.classList.contains("dropdown")) return; 12160 const i = (e, i) => { 12161 const s = fi.findOne(e, n); 12162 s && s.classList.toggle(i, t); 12163 }; 12164 i(".dropdown-toggle", vo), i(".dropdown-menu", yo), i(".dropdown-item", vo), n.setAttribute("aria-expanded", t); 12165 } 12166 _setAttributeIfNotExists(e, t, n) { 12167 e.hasAttribute(t) || e.setAttribute(t, n); 12168 } 12169 _elemIsActive(e) { 12170 return e.classList.contains(vo); 12171 } 12172 _getInnerElement(e) { 12173 return e.matches(xo) ? e : fi.findOne(xo, e); 12174 } 12175 _getOuterElement(e) {
12176 return e.closest(".nav-item, .list-group-item") || e; 12177 } 12178 static jQueryInterface(e) { 12179 return this.each(function () { 12180 const t = _o.getOrCreateInstance(this); 12181 if ("string" == typeof e) { 12182 if (void 0 === t[e] || e.startsWith("_") || "constructor" === e) throw new TypeError(`No method named "${e}"`); 12183 t[e](); 12184 } 12185 }); 12186 } 12187 } 12188 ti.on(document, "click.bs.tab", wo, function (e) { 12189 ["A", "AREA"].includes(this.tagName) && e.preventDefault(), $n(this) || _o.getOrCreateInstance(this).show(); 12190 }), 12191 ti.on(window, "load.bs.tab", () => { 12192 for (const e of fi.find('.active[data-bs-toggle="tab"], .active[data-bs-toggle="pill"], .active[data-bs-toggle="list"]')) _o.getOrCreateInstance(e); 12193 }), 12194 In(_o); 12195 const Co = "hide", 12196 To = "show", 12197 Eo = "showing", 12198 So = { animation: "boolean", autohide: "boolean", delay: "number" }, 12199 Ao = { animation: !0, autohide: !0, delay: 5e3 }; 12200 class ko extends ci { 12201 constructor(e, t) { 12202 super(e, t), (this._timeout = null), (this._hasMouseInteraction = !1), (this._hasKeyboardInteraction = !1), this._setListeners(); 12203 } 12204 static get Default() { 12205 return Ao; 12206 } 12207 static get DefaultType() { 12208 return So; 12209 } 12210 static get NAME() { 12211 return "toast"; 12212 } 12213 show() { 12214 if (ti.trigger(this._element, "show.bs.toast").defaultPrevented) return; 12215 this._clearTimeout(), this._config.animation && this._element.classList.add("fade"); 12216 this._element.classList.remove(Co), 12217 On(this._element), 12218 this._element.classList.add(To, Eo), 12219 this._queueCallback( 12220 () => { 12221 this._element.classList.remove(Eo), ti.trigger(this._element, "shown.bs.toast"), this._maybeScheduleHide(); 12222 }, 12223 this._element, 12224 this._config.animation 12225 ); 12226 } 12227 hide() { 12228 if (!this.isShown()) return; 12229 if (ti.trigger(this._element, "hide.bs.toast").defaultPrevented) return; 12230 this._element.classList.add(Eo), 12231 this._queueCallback( 12232 () => { 12233 this._element.classList.add(Co), this._element.classList.remove(Eo, To), ti.trigger(this._element, "hidden.bs.toast"); 12234 }, 12235 this._element, 12236 this._config.animation 12237 ); 12238 } 12239 dispose() { 12240 this._clearTimeout(), this.isShown() && this._element.classList.remove(To), super.dispose(); 12241 } 12242 isShown() { 12243 return this._element.classList.contains(To); 12244 } 12245 _maybeScheduleHide() { 12246 this._config.autohide && 12247 (this._hasMouseInteraction || 12248 this._hasKeyboardInteraction || 12249 (this._timeout = setTimeout(() => { 12250 this.hide(); 12251 }, this._config.delay))); 12252 } 12253 _onInteraction(e, t) { 12254 switch (e.type) { 12255 case "mouseover": 12256 case "mouseout": 12257 this._hasMouseInteraction = t; 12258 break; 12259 case "focusin": 12260 case "focusout": 12261 this._hasKeyboardInteraction = t; 12262 } 12263 if (t) return void this._clearTimeout(); 12264 const n = e.relatedTarget; 12265 this._element === n || this._element.contains(n) || this._maybeScheduleHide(); 12266 } 12267 _setListeners() { 12268 ti.on(this._element, "mouseover.bs.toast", (e) => this._onInteraction(e, !0)), 12269 ti.on(this._element, "mouseout.bs.toast", (e) => this._onInteraction(e, !1)), 12270 ti.on(this._element, "focusin.bs.toast", (e) => this._onInteraction(e, !0)), 12271 ti.on(this._element, "focusout.bs.toast", (e) => this._onInteraction(e, !1)); 12272 } 12273 _clearTimeout() { 12274 clearTimeout(this._timeout), (this._timeout = null); 12275 } 12276 static jQueryInterface(e) { 12277 return this.each(function () { 12278 const t = ko.getOrCreateInstance(this, e); 12279 if ("string" == typeof e) { 12280 if (void 0 === t[e]) throw new TypeError(`No method n
12280amed "${e}"`); 12281 t[e](this); 12282 } 12283 }); 12284 } 12285 } 12286 di(ko), In(ko); 12287 n(755); 12288 (n.g.jQuery = n.g.$ = i()), 12289 (n.g.Swiper = ne), 12290 (n.g.SwiperNavigation = function ({ swiper: e, extendParams: t, on: n, emit: i }) { 12291 function s(t) { 12292 let n; 12293 return t && ((n = v(t)), e.params.uniqueNavElements && "string" == typeof t && n.length > 1 && 1 === e.$el.find(t).length && (n = e.$el.find(t))), n; 12294 } 12295 function o(t, n) { 12296 const i = e.params.navigation; 12297 t && 12298 t.length > 0 && 12299 (t[n ? "addClass" : "removeClass"](i.disabledClass), t[0] && "BUTTON" === t[0].tagName && (t[0].disabled = n), e.params.watchOverflow && e.enabled && t[e.isLocked ? "addClass" : "removeClass"](i.lockClass)); 12300 } 12301 function r() { 12302 if (e.params.loop) return; 12303 const { $nextEl: t, $prevEl: n } = e.navigation; 12304 o(n, e.isBeginning && !e.params.rewind), o(t, e.isEnd && !e.params.rewind); 12305 } 12306 function a(t) { 12307 t.preventDefault(), (!e.isBeginning || e.params.loop || e.params.rewind) && (e.slidePrev(), i("navigationPrev")); 12308 } 12309 function l(t) { 12310 t.preventDefault(), (!e.isEnd || e.params.loop || e.params.rewind) && (e.slideNext(), i("navigationNext")); 12311 } 12312 function c() { 12313 const t = e.params.navigation; 12314 if (((e.params.navigation = ie(e, e.originalParams.navigation, e.params.navigation, { nextEl: "swiper-button-next", prevEl: "swiper-button-prev" })), !t.nextEl && !t.prevEl)) return; 12315 const n = s(t.nextEl), 12316 i = s(t.prevEl); 12317 n && n.length > 0 && n.on("click", l), 12318 i && i.length > 0 && i.on("click", a), 12319 Object.assign(e.navigation, { $nextEl: n, nextEl: n && n[0], $prevEl: i, prevEl: i && i[0] }), 12320 e.enabled || (n && n.addClass(t.lockClass), i && i.addClass(t.lockClass)); 12321 } 12322 function d() { 12323 const { $nextEl: t, $prevEl: n } = e.navigation; 12324 t && t.length && (t.off("click", l), t.removeClass(e.params.navigation.disabledClass)), n && n.length && (n.off("click", a), n.removeClass(e.params.navigation.disabledClass)); 12325 } 12326 t({ 12327 navigation: { 12328 nextEl: null, 12329 prevEl: null, 12330 hideOnClick: !1, 12331 disabledClass: "swiper-button-disabled", 12332 hiddenClass: "swiper-button-hidden", 12333 lockClass: "swiper-button-lock", 12334 navigationDisabledClass: "swiper-navigation-disabled", 12335 }, 12336 }), 12337 (e.navigation = { nextEl: null, $nextEl: null, prevEl: null, $prevEl: null }), 12338 n("init", () => { 12339 !1 === e.params.navigation.enabled ? h() : (c(), r()); 12340 }), 12341 n("toEdge fromEdge lock unlock", () => { 12342 r(); 12343 }), 12344 n("destroy", () => { 12345 d(); 12346 }), 12347 n("enable disable", () => { 12348 const { $nextEl: t, $prevEl: n } = e.navigation; 12349 t && t[e.enabled ? "removeClass" : "addClass"](e.params.navigation.lockClass), n && n[e.enabled ? "removeClass" : "addClass"](e.params.navigation.lockClass); 12350 }), 12351 n("click", (t, n) => { 12352 const { $nextEl: s, $prevEl: o } = e.navigation, 12353 r = n.target; 12354 if (e.params.navigation.hideOnClick && !v(r).is(o) && !v(r).is(s)) { 12355 if (e.pagination && e.params.pagination && e.params.pagination.clickable && (e.pagination.el === r || e.pagination.el.contains(r))) return; 12356 let t; 12357 s ? (t = s.hasClass(e.params.navigation.hiddenClass)) : o && (t = o.hasClass(e.params.navigation.hiddenClass)), 12358 i(!0 === t ? "navigationShow" : "navigationHide"), 12359 s && s.toggleClass(e.params.navigation.hiddenClass), 12360 o && o.toggleClass(e.params.navigation.hiddenClass); 12361 } 12362 }); 12363 const h = () => { 12364 e.$el.addClass(e.params.navigation.navigationDisabledClass), d(); 12365 }; 12366 Object.assign(e.navigation, { 12367 enable: () => { 12368 e.$el.removeClass(e.params.navigation.navigationDisabledClass), c(), r(); 12369 }, 12370 disable: h, 12371 update: r, 12372 init: c, 12373 destroy: d, 12374 }); 12375 }), 12376 (n.g.SwiperPagination = function ({ swiper: e, extendParams: t, on: n, emit: i }) { 12377 const s = "swiper-pagination"; 12378 let o; 12379 t({ 12380 pagination: { 12381 el: null, 12382 bulletElement: "span", 12383 clickable: !1, 12384 hideOnClick: !1, 12385 renderBullet: null, 12386 renderProgressbar: null, 12387 renderFraction: null, 12388 renderCustom: null, 12389 progressbarOpposite: !1, 12390 type: "bullets", 12391 dynamicBullets: !1, 12392 dynamicMainBullets: 1, 12393 formatFractionCurrent: (e) => e, 12394 formatFractionTotal: (e) => e, 12395 bulletClass: `${s}-bullet`, 12396 bulletActiveClass: `${s}-bullet-active`, 12397 modifierClass: `${s}-`, 12398 currentClass: `${s}-current`, 12399 totalClass: `${s}-total`, 12400 hiddenClass: `${s}-hidden`, 12401 progressbarFillClass: `${s}-progressbar-fill`, 12402 progressbarOppositeClass: `${s}-progressbar-opposite`, 12403 clickableClass: `${s}-clickable`, 12404 lockClass: `${s}-lock`, 12405 horizontalClass: `${s}-horizontal`, 12406 verticalClass: `${s}-vertical`, 12407 paginationDisabledClass: `${s}-disabled`, 12408 }, 12409 }), 12410 (e.pagination = { el: null, $el: null, bullets: [] }); 12411 let r = 0; 12412 function a() { 12413 return !e.params.pagination.el || !e.pagination.el || !e.pagination.$el || 0 === e.pagination.$el.length; 12414 } 12415 function l(t, n) { 12416 const { bulletActiveClass: i } = e.params.pagination; 12417 t[n]().addClass(`${i}-${n}`)[n]().addClass(`${i}-${n}-${n}`); 12418 } 12419 function c() { 12420 const t = e.rtl, 12421 n = e.params.pagination; 12422 if (a()) return; 12423 const s = e.virtual && e.params.virtual.enabled ? e.virtual.slides.length : e.slides.length, 12424 c = e.pagination.$el; 12425 let d; 12426 const h = e.params.loop ? Math.ceil((s - 2 * e.loopedSlides) / e.params.slidesPerGroup) : e.snapGrid.length; 12427 if ( 12428 (e.params.loop 12429 ? ((d = Math.ceil((e.activeIndex - e.loopedSlides) / e.params.slidesPerGroup)), 12430 d > s - 1 - 2 * e.loopedSlides && (d -= s - 2 * e.loopedSlides), 12431 d > h - 1 && (d -= h), 12432 d < 0 && "bullets" !== e.params.paginationType && (d = h + d))
12433 : (d = void 0 !== e.snapIndex ? e.snapIndex : e.activeIndex || 0), 12434 "bullets" === n.type && e.pagination.bullets && e.pagination.bullets.length > 0) 12435 ) { 12436 const i = e.pagination.bullets; 12437 let s, a, h; 12438 if ( 12439 (n.dynamicBullets && 12440 ((o = i.eq(0)[e.isHorizontal() ? "outerWidth" : "outerHeight"](!0)), 12441 c.css(e.isHorizontal() ? "width" : "height", o * (n.dynamicMainBullets + 4) + "px"), 12442 n.dynamicMainBullets > 1 && void 0 !== e.previousIndex && ((r += d - (e.previousIndex - e.loopedSlides || 0)), r > n.dynamicMainBullets - 1 ? (r = n.dynamicMainBullets - 1) : r < 0 && (r = 0)), 12443 (s = Math.max(d - r, 0)), 12444 (a = s + (Math.min(i.length, n.dynamicMainBullets) - 1)), 12445 (h = (a + s) / 2)), 12446 i.removeClass(["", "-next", "-next-next", "-prev", "-prev-prev", "-main"].map((e) => `${n.bulletActiveClass}${e}`).join(" ")), 12447 c.length > 1) 12448 ) 12449 i.each((e) => { 12450 const t = v(e), 12451 i = t.index(); 12452 i === d && t.addClass(n.bulletActiveClass), n.dynamicBullets && (i >= s && i <= a && t.addClass(`${n.bulletActiveClass}-main`), i === s && l(t, "prev"), i === a && l(t, "next")); 12453 }); 12454 else { 12455 const t = i.eq(d), 12456 o = t.index(); 12457 if ((t.addClass(n.bulletActiveClass), n.dynamicBullets)) { 12458 const t = i.eq(s), 12459 r = i.eq(a); 12460 for (let e = s; e <= a; e += 1) i.eq(e).addClass(`${n.bulletActiveClass}-main`); 12461 if (e.params.loop) 12462 if (o >= i.length) { 12463 for (let e = n.dynamicMainBullets; e >= 0; e -= 1) i.eq(i.length - e).addClass(`${n.bulletActiveClass}-main`); 12464 i.eq(i.length - n.dynamicMainBullets - 1).addClass(`${n.bulletActiveClass}-prev`); 12465 } else l(t, "prev"), l(r, "next"); 12466 else l(t, "prev"), l(r, "next"); 12467 } 12468 } 12469 if (n.dynamicBullets) { 12470 const s = Math.min(i.length, n.dynamicMainBullets + 4), 12471 r = (o * s - o) / 2 - h * o, 12472 a = t ? "right" : "left"; 12473 i.css(e.isHorizontal() ? a : "top", `${r}px`); 12474 } 12475 } 12476 if (("fraction" === n.type && (c.find(se(n.currentClass)).text(n.formatFractionCurrent(d + 1)), c.find(se(n.totalClass)).text(n.formatFractionTotal(h))), "progressbar" === n.type)) { 12477 let t; 12478 t = n.progressbarOpposite ? (e.isHorizontal() ? "vertical" : "horizontal") : e.isHorizontal() ? "horizontal" : "vertical"; 12479 const i = (d + 1) / h; 12480 let s = 1, 12481 o = 1; 12482 "horizontal" === t ? (s = i) : (o = i), c.find(se(n.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${s}) scaleY(${o})`).transition(e.params.speed); 12483 } 12484 "custom" === n.type && n.renderCustom ? (c.html(n.renderCustom(e, d + 1, h)), i("paginationRender", c[0])) : i("paginationUpdate", c[0]), 12485 e.params.watchOverflow && e.enabled && c[e.isLocked ? "addClass" : "removeClass"](n.lockClass); 12486 } 12487 function d() { 12488 const t = e.params.pagination; 12489 if (a()) return; 12490 const n = e.virtual && e.params.virtual.enabled ? e.virtual.slides.length : e.slides.length, 12491 s = e.pagination.$el; 12492 let o = ""; 12493 if ("bullets" === t.type) { 12494 let i = e.params.loop ? Math.ceil((n - 2 * e.loopedSlides) / e.params.slidesPerGroup) : e.snapGrid.length; 12495 e.params.freeMode && e.params.freeMode.enabled && !e.params.loop && i > n && (i = n); 12496 for (let n = 0; n < i; n += 1) t.renderBullet ? (o += t.renderBullet.call(e, n, t.bulletClass)) : (o += `<${t.bulletElement} class="${t.bulletClass}"></${t.bulletElement}>`); 12497 s.html(o), (e.pagination.bullets = s.find(se(t.bulletClass))); 12498 } 12499 "fraction" === t.type && ((o = t.renderFraction ? t.renderFraction.call(e, t.currentClass, t.totalClass) : `<span class="${t.currentClass}"></span> / <span class="${t.totalClass}"></span>`), s.html(o)), 12500 "progressbar" === t.type && ((o = t.renderProgressbar ? t.renderProgressbar.call(e, t.progressbarFillClass) : `<span class="${t.progressbarFillClass}"></span>`), s.html(o)), 12501 "custom" !== t.type && i("paginationRender", e.pagination.$el[0]); 12502 } 12503 function h() { 12504 e.params.pagination = ie(e, e.originalParams.pagination, e.params.pagination, { el: "swiper-pagination" }); 12505 const t = e.params.pagination; 12506 if (!t.el) return; 12507 let n = v(t.el); 12508 0 !== n.length && 12509 (e.params.uniqueNavElements && "string" == typeof t.el && n.length > 1 && ((n = e.$el.find(t.el)), n.length > 1 && (n = n.filter((t) => v(t).parents(".swiper")[0] === e.el))), 12510 "bullets" === t.type && t.clickable && n.addClass(t.clickableClass), 12511 n.addClass(t.modifierClass + t.type), 12512 n.addClass(e.isHorizontal() ? t.horizontalClass : t.verticalClass), 12513 "bullets" === t.type && t.dynamicBullets && (n.addClass(`${t.modifierClass}${t.type}-dynamic`), (r = 0), t.dynamicMainBullets < 1 && (t.dynamicMainBullets = 1)), 12514 "progressbar" === t.type && t.progressbarOpposite && n.addClass(t.progressbarOppositeClass), 12515 t.clickable && 12516 n.on("click", se(t.bulletClass), function (t) { 12517 t.preventDefault(); 12518 let n = v(this).index() * e.params.slidesPerGroup; 12519 e.params.loop && (n += e.loopedSlides), e.slideTo(n); 12520 }), 12521 Object.assign(e.pagination, { $el: n, el: n[0] }), 12522 e.enabled || n.addClass(t.lockClass)); 12523 } 12524 function u() { 12525 const t = e.params.pagination; 12526 if (a()) return; 12527 const n = e.pagination.$el; 12528 n.removeClass(t.hiddenClass), 12529 n.removeClass(t.modifierClass + t.type), 12530 n.removeClass(e.isHorizontal() ? t.horizontalClass : t.verticalClass), 12531 e.pagination.bullets && e.pagination.bullets.removeClass && e.pagination.bullets.removeClass(t.bulletActiveClass), 12532 t.clickable && n.off("click", se(t.bulletClass)); 12533 } 12534 n("init", () => { 12535 !1 === e.params.pagination.enabled ? p() : (h(), d(), c()); 12536 }), 12537 n("activeIndexChange", () => {
12538 (e.params.loop || void 0 === e.snapIndex) && c(); 12539 }), 12540 n("snapIndexChange", () => { 12541 e.params.loop || c(); 12542 }), 12543 n("slidesLengthChange", () => { 12544 e.params.loop && (d(), c()); 12545 }), 12546 n("snapGridLengthChange", () => { 12547 e.params.loop || (d(), c()); 12548 }), 12549 n("destroy", () => { 12550 u(); 12551 }), 12552 n("enable disable", () => { 12553 const { $el: t } = e.pagination; 12554 t && t[e.enabled ? "removeClass" : "addClass"](e.params.pagination.lockClass); 12555 }), 12556 n("lock unlock", () => { 12557 c(); 12558 }), 12559 n("click", (t, n) => { 12560 const s = n.target, 12561 { $el: o } = e.pagination; 12562 if (e.params.pagination.el && e.params.pagination.hideOnClick && o && o.length > 0 && !v(s).hasClass(e.params.pagination.bulletClass)) { 12563 if (e.navigation && ((e.navigation.nextEl && s === e.navigation.nextEl) || (e.navigation.prevEl && s === e.navigation.prevEl))) return; 12564 const t = o.hasClass(e.params.pagination.hiddenClass); 12565 i(!0 === t ? "paginationShow" : "paginationHide"), o.toggleClass(e.params.pagination.hiddenClass); 12566 } 12567 }); 12568 const p = () => { 12569 e.$el.addClass(e.params.pagination.paginationDisabledClass), e.pagination.$el && e.pagination.$el.addClass(e.params.pagination.paginationDisabledClass), u(); 12570 }; 12571 Object.assign(e.pagination, { 12572 enable: () => { 12573 e.$el.removeClass(e.params.pagination.paginationDisabledClass), e.pagination.$el && e.pagination.$el.removeClass(e.params.pagination.paginationDisabledClass), h(), d(), c(); 12574 }, 12575 disable: p, 12576 render: d, 12577 update: c, 12578 init: h, 12579 destroy: u, 12580 }); 12581 }), 12582 (window.Fancybox = { Fancybox: Re }), 12583 (n.g.Fancybox = { Fancybox: Re }); 12584 })(); 12585})(); 12586 12587/* End */ 12588; 12589; /* Start:"a:4:{s:4:"full";s:64:"/local/templates/sever/build/common.e0b7c601.js?1790593303256616";s:6:"source";s:47:"/local/templates/sever/build/common.e0b7c601.js";s:3:"min";s:0:"";s:3:"map";s:0:"";}"*/ 12590/*! For license information please see common.e0b7c601.js.LICENSE.txt */ 12591(() => { 12592 var e = { 12593 503: (e, t, n) => { 12594 var r = n(640), 12595 i = n(755); 12596 (siteApp = { 12597 indexSlider: null, 12598 aboutSlider: null, 12599 photoSlider: null, 12600 hitSliders: [], 12601 deliverySliders: [], 12602 hint: {}, 12603 init: function () { 12604 siteApp.initHint(), siteApp.initIndexSlider(), siteApp.initAboutSlider(), siteApp.initLicensesSlider(), siteApp.initPhotosSlider(), siteApp.initDeliverySlider(); 12605 }, 12606 initHint: function () { 12607 (siteApp.hint = r.UI.Hint.createInstance({ popupParameters: { animation: "" } })), siteApp.hint.init(); 12608 }, 12609 initIndexSlider: function () { 12610 document.getElementById("index-slider") && (this.aboutSlider = new Swiper("#index-slider", { loop: true, autoplay: true, modules: [SwiperNavigation, SwiperPagination], navigation: { prevEl: ".swiper-button-prev", nextEl: ".swiper-button-next" }, pagination: { clickable: true, el: '.swiper-pagination', type: 'bullets'}, })); 12611 }, 12612 initAboutSlider: function () { 12613 document.getElementById("about-slider") && (this.aboutSlider = new Swiper("#about-slider", { modules: [SwiperNavigation], navigation: { prevEl: ".swiper-button-prev", nextEl: ".swiper-button-next" } })); 12614 }, 12615 initHitSlider: function () { 12616 if ((hitTabs, tabContent, document.getElementsByClassName("hit-tabs-slider").length)) { 12617 var e = this; 12618 i(".hit-tabs-slider").each(function () { 12619 if (i(this).find(".catalog-item").length > 1) { 12620 var t = new Swiper(".hit-tabs-slider", { 12621 spaceBetween: 13, 12622 modules: [SwiperNavigation], 12623 navigation: { prevEl: ".swiper-button-prev", nextEl: ".swiper-button-next" }, 12624 breakpoints: { 320: { slidesPerView: 1 }, 769: { slidesPerView: 2 }, 1200: { slidesPerView: 3 } }, 12625 }); 12626 e.hitSliders.push(t); 12627 } else i(this).find(".catalog-item").length; 12628 }); 12629 } 12630 }, 12631 initLicensesSlider: function () { 12632 document.getElementById("licenses-slider") && 12633 (this.photoSlider = new Swiper("#licenses-slider", { 12634 spaceBetween: 13, 12635 modules: [SwiperNavigation], 12636 navigation: { prevEl: ".swiper-button-prev", nextEl: ".swiper-button-next" }, 12637 breakpoints: { 320: { slidesPerView: 1 }, 550: { slidesPerView: 2 }, 810: { slidesPerView: 3 }, 1060: { slidesPerView: 4 }, 1320: { slidesPerView: 5 } }, 12638 })); 12639 }, 12640 initPhotosSlider: function () { 12641 document.getElementById("photos-slider") && 12642 (this.photoSlider = new Swiper("#photos-slider", { 12643 spaceBetween: 13, 12644 modules: [SwiperNavigation, SwiperPagination], 12645 navigation: { prevEl: ".swiper-button-prev", nextEl: ".swiper-button-next" }, 12646 pagination: { clickable: !0, el: ".swiper-pagination", type: "bullets" }, 12647 breakpoints: { 320: { slidesPerView: 1 }, 550: { slidesPerView: 2 }, 810: { slidesPerView: 3 }, 1060: { slidesPerView: 4 }, 1320: { slidesPerView: 5 } }, 12648 })); 12649 }, 12650 initDeliverySlider: function () { 12651 var e = document.getElementsByClassName("deliveryTabs-slider"); 12652 if (e.length) { 12653 var t = this; 12654 i(e).each(function () { 12655 if (jQury(this).find(".swiper-slide").length > 1) { 12656 var e = new Swiper(this, { loop: !1, slidesPerView: 1, modules: [SwiperNavigation], navigation: { prevEl: ".swiper-button-prev", nextEl: ".swiper-button-next" } }); 12657 t.deliverySliders.push(e); 12658 } 12659 }); 12660 } 12661 }, 12662 hideMobileMenu: function (e) { 12663 e || (e = i(".menu .mobile_bt")), e && e.hasClass("opened") && e.next(".nav") && e.removeClass("opened").next(".nav").removeClass("opened"); 12664 document.body.classList.remove('menu_open'); 12665 }, 12666 }), 12667 i(document).on("click", ".menu .mobile_bt", function () { 12668 i(this).next(".nav") && i(this).toggleClass("opened").next(".nav").toggleClass("opened"); 12669 document.body.classList.add('menu_open'); 12670 }), 12671 i(document).on("click", ".menu .btn-close", function () { 12672 siteApp.hideMobileMenu(); 12673 }), 12674 i(document).keyup(function (e) { 12675 "Escape" === e.key && siteApp.hideMobileMenu(); 12676 }), 12677 i(document).on("click", ".nav.opened li.dropdown > a", function (e) { 12678 var t = i(this).parent("li"), 12679 n = t.siblings("li"); 12680 return ( 12681 !!t.hasClass("opened") || 12682 (t.siblings("li"), 12683 n 12684 .removeClass("opened") 12685 .find("li.opened") 12686 .each(function () { 12687 i(this).removeClass("opened"); 12688 }), 12689 t.addClass("opened"), 12690 !1) 12691 ); 12692 }), 12693 i(window).scroll(function () { 12694 i(this).scrollTop() > 500 ? i(".back-scroll").addClass("shown") : i(".back-scroll").removeClass("shown"); 12695 }), 12696 i(document).on("click", ".back-scroll", function (e) { 12697 return e.preventDefault(), i("html, body").animate({ scrollTop: 0 }, 500), !1; 12698 }), 12699 i(window).on("load", siteApp.init), 12700 i(document).ready(function (e) { 12701 e(".fancybox, a[rel]").each(function () { 12702 var t = e(this).data("fancybox"), 12703 n = e(this).attr("rel"); 12704 t || "nofollow" == n || "alternate" == n || "author" == n || "next" == n || "prev" == n || e(this).attr("data-fancybox", n || "fancybox"); 12705 }); 12706 var t = document.getElementById("form-oneclick"); 12707 t.addEventListener("show.bs.modal", function (e) { 12708 var n = e.relatedTarget, 12709 r = n.getAttribute("data-product-name"), 12710 i = n.getAttribute("data-product-url"); 12711 (t.querySelector('[name="form_hidden_19"]').value = r), (t.querySelector('[name="form_hidden_20"]').value = location.origin + i); 12712 }); 12713 }); 12714 }, 12715 755: function (e, t) { 12716 var n; 12717 !(function (t, n) { 12718 "use strict"; 12719 "object" == typeof e.exports 12720 ? (e.exports = t.document 12721 ? n(t, !0) 12722 : function (e) { 12723 if (!e.document) throw new Error("jQuery requires a window with a document"); 12724 return n(e); 12725 }) 12726 : n(t); 12727 })("undefined" != typeof window ? window : this, function (r, i) { 12728 "use strict"; 12729 var o = [], 12730 s = Object.getPrototypeOf, 12731 a = o.slice, 12732 u = o.flat 12733 ? function (e) { 12734 return o.flat.call(e); 12735 } 12736 : function (e) { 12737 return o.concat.apply([], e); 12738 }, 12739 l = o.push, 12740 c = o.indexOf, 12741 f = {}, 12742 p = f.toString, 12743 d = f.hasOwnProperty, 12744 h = d.toString, 12745 g = h.call(Object), 12746 v = {}, 12747 m = function (e) { 12748 return "function" == typeof e && "number" != typeof e.nodeType && "function" != typeof e.item; 12749 }, 12750 y = function (e) { 12751 return null != e && e === e.window; 12752 }, 12753 x = r.document, 12754 b = { type: !0, src: !0, nonce: !0, noModule: !0 }; 12755 function w(e, t, n) { 12756 var r, 12757 i, 12758 o = (n = n || x).createElement("script"); 12759 if (((o.text = e), t)) for (r in b) (i = t[r] || (t.getAttribute && t.getAttribute(r))) && o.setAttribute(r, i); 12760 n.head.appendChild(o).parentNode.removeChild(o); 12761 } 12762 function T(e) { 12763 return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? f[p.call(e)] || "object" : typeof e; 12764 } 12765 var C = "3.6.1", 12766 S = function (e, t) { 12767 return new S.fn.init(e, t); 12768 }; 12769 function E(e) { 12770 var t = !!e && "length" in e && e.length, 12771 n = T(e); 12772 return !m(e) && !y(e) && ("array" === n || 0 === t || ("number" == typeof t && t > 0 && t - 1 in e)); 12773 } 12774 (S.fn = S.prototype = { 12775 jquery: C, 12776 constructor: S, 12777 length: 0, 12778 toArray: function () { 12779 return a.call(this); 12780 }, 12781 get: function (e) { 12782 return null == e ? a.call(this) : e < 0 ? this[e + this.length] : this[e]; 12783 }, 12784 pushStack: function (e) { 12785 var t = S.merge(this.constructor(), e); 12786 return (t.prevObject = this), t;
12787 }, 12788 each: function (e) { 12789 return S.each(this, e); 12790 }, 12791 map: function (e) { 12792 return this.pushStack( 12793 S.map(this, function (t, n) { 12794 return e.call(t, n, t); 12795 }) 12796 ); 12797 }, 12798 slice: function () { 12799 return this.pushStack(a.apply(this, arguments)); 12800 }, 12801 first: function () { 12802 return this.eq(0); 12803 }, 12804 last: function () { 12805 return this.eq(-1); 12806 }, 12807 even: function () { 12808 return this.pushStack( 12809 S.grep(this, function (e, t) { 12810 return (t + 1) % 2; 12811 }) 12812 ); 12813 }, 12814 odd: function () { 12815 return this.pushStack( 12816 S.grep(this, function (e, t) { 12817 return t % 2; 12818 }) 12819 ); 12820 }, 12821 eq: function (e) { 12822 var t = this.length, 12823 n = +e + (e < 0 ? t : 0); 12824 return this.pushStack(n >= 0 && n < t ? [this[n]] : []); 12825 }, 12826 end: function () { 12827 return this.prevObject || this.constructor(); 12828 }, 12829 push: l, 12830 sort: o.sort, 12831 splice: o.splice, 12832 }), 12833 (S.extend = S.fn.extend = function () { 12834 var e, 12835 t, 12836 n, 12837 r, 12838 i, 12839 o, 12840 s = arguments[0] || {}, 12841 a = 1, 12842 u = arguments.length, 12843 l = !1; 12844 for ("boolean" == typeof s && ((l = s), (s = arguments[a] || {}), a++), "object" == typeof s || m(s) || (s = {}), a === u && ((s = this), a--); a < u; a++) 12845 if (null != (e = arguments[a])) 12846 for (t in e) 12847 (r = e[t]), 12848 "__proto__" !== t && 12849 s !== r && 12850 (l && r && (S.isPlainObject(r) || (i = Array.isArray(r))) 12851 ? ((n = s[t]), (o = i && !Array.isArray(n) ? [] : i || S.isPlainObject(n) ? n : {}), (i = !1), (s[t] = S.extend(l, o, r))) 12852 : void 0 !== r && (s[t] = r)); 12853 return s; 12854 }), 12855 S.extend({ 12856 expando: "jQuery" + (C + Math.random()).replace(/\D/g, ""), 12857 isReady: !0, 12858 error: function (e) { 12859 throw new Error(e); 12860 }, 12861 noop: function () {}, 12862 isPlainObject: function (e) { 12863 var t, n; 12864 return !(!e || "[object Object]" !== p.call(e)) && (!(t = s(e)) || ("function" == typeof (n = d.call(t, "constructor") && t.constructor) && h.call(n) === g)); 12865 }, 12866 isEmptyObject: function (e) { 12867 var t; 12868 for (t in e) return !1; 12869 return !0; 12870 }, 12871 globalEval: function (e, t, n) { 12872 w(e, { nonce: t && t.nonce }, n); 12873 }, 12874 each: function (e, t) { 12875 var n, 12876 r = 0; 12877 if (E(e)) for (n = e.length; r < n && !1 !== t.call(e[r], r, e[r]); r++); 12878 else for (r in e) if (!1 === t.call(e[r], r, e[r])) break; 12879 return e; 12880 }, 12881 makeArray: function (e, t) { 12882 var n = t || []; 12883 return null != e && (E(Object(e)) ? S.merge(n, "string" == typeof e ? [e] : e) : l.call(n, e)), n; 12884 }, 12885 inArray: function (e, t, n) { 12886 return null == t ? -1 : c.call(t, e, n); 12887 }, 12888 merge: function (e, t) { 12889 for (var n = +t.length, r = 0, i = e.length; r < n; r++) e[i++] = t[r]; 12890 return (e.length = i), e; 12891 }, 12892 grep: function (e, t, n) { 12893 for (var r = [], i = 0, o = e.length, s = !n; i < o; i++) !t(e[i], i) !== s && r.push(e[i]); 12894 return r; 12895 }, 12896 map: function (e, t, n) { 12897 var r, 12898 i, 12899 o = 0, 12900 s = []; 12901 if (E(e)) for (r = e.length; o < r; o++) null != (i = t(e[o], o, n)) && s.push(i); 12902 else for (o in e) null != (i = t(e[o], o, n)) && s.push(i); 12903 return u(s); 12904 }, 12905 guid: 1, 12906 support: v, 12907 }), 12908 "function" == typeof Symbol && (S.fn[Symbol.iterator] = o[Symbol.iterator]), 12909 S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function (e, t) { 12910 f["[object " + t + "]"] = t.toLowerCase(); 12911 }); 12912 var A = (function (e) { 12913 var t, 12914 n, 12915 r, 12916 i, 12917 o, 12918 s, 12919 a, 12920 u, 12921 l, 12922 c, 12923 f, 12924 p, 12925 d, 12926 h, 12927 g, 12928 v, 12929 m, 12930 y, 12931 x, 12932 b = "sizzle" + 1 * new Date(), 12933 w = e.document, 12934 T = 0, 12935 C = 0, 12936 S = ue(), 12937 E = ue(), 12938 A = ue(), 12939 k = ue(), 12940 N = function (e, t) { 12941 return e === t && (f = !0), 0; 12942 }, 12943 D = {}.hasOwnProperty, 12944 j = [], 12945 q = j.pop, 12946 L = j.push, 12947 H = j.push, 12948 P = j.slice, 12949 O = function (e, t) { 12950 for (var n = 0, r = e.length; n < r; n++) if (e[n] === t) return n; 12951 return -1; 12952 }, 12953 M = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", 12954 R = "[\\x20\\t\\r\\n\\f]", 12955 I = "(?:\\\\[\\da-fA-F]{1,6}[\\x20\\t\\r\\n\\f]?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", 12956 B = "\\[[\\x20\\t\\r\\n\\f]*(" + I + ")(?:" + R + "*([*^$|!~]?=)" + R + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + I + "))|)" + R + "*\\]", 12957 W = ":(" + I + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + B + ")*)|.*)\\)|)", 12958 F = new RegExp(R + "+", "g"), 12959 $ = new RegExp("^[\\x20\\t\\r\\n\\f]+|((?:^|[^\\\\])(?:\\\\.)*)[\\x20\\t\\r\\n\\f]+$", "g"), 12960 _ = new RegExp("^[\\x20\\t\\r\\n\\f]*,[\\x20\\t\\r\\n\\f]*"), 12961 V = new RegExp("^[\\x20\\t\\r\\n\\f]*([>+~]|[\\x20\\t\\r\\n\\f])[\\x20\\t\\r\\n\\f]*"), 12962 z = new RegExp(R + "|>"), 12963 U = new RegExp(W), 12964 X = new RegExp("^" + I + "$"), 12965 G = { 12966 ID: new RegExp("^#(" + I + ")"), 12967 CLASS: new RegExp("^\\.(" + I + ")"), 12968 TAG: new RegExp("^(" + I + "|[*])"), 12969 ATTR: new RegExp("^" + B), 12970 PSEUDO: new RegExp("^" + W), 12971 CHILD: new RegExp( 12972 "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\([\\x20\\t\\r\\n\\f]*(even|odd|(([+-]|)(\\d*)n|)[\\x20\\t\\r\\n\\f]*(?:([+-]|)[\\x20\\t\\r\\n\\f]*(\\d+)|))[\\x20\\t\\r\\n\\f]*\\)|)", 12973 "i" 12974 ), 12975 bool: new RegExp("^(?:" + M + ")$", "i"), 12976 needsContext: new RegExp("^[\\x20\\t\\r\\n\\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\([\\x20\\t\\r\\n\\f]*((?:-\\d)?\\d*)[\\x20\\t\\r\\n\\f]*\\)|)(?=[^-]|$)", "i"), 12977 }, 12978 Y = /HTML$/i, 12979 Q = /^(?:input|select|textarea|button)$/i, 12980 J = /^h\d$/i, 12981 K = /^[^{]+\{\s*\[native \w/, 12982 Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, 12983 ee = /[+~]/, 12984 te = new RegExp("\\\\[\\da-fA-F]{1,6}[\\x20\\t\\r\\n\\f]?|\\\\([^\\r\\n\\f])", "g"), 12985 ne = function (e, t) { 12986 var n = "0x" + e.slice(1) - 65536; 12987 return t || (n < 0 ? String.fromCharCode(n + 65536) : String.fromCharCode((n >> 10) | 55296, (1023 & n) | 56320)); 12988 }, 12989 re = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, 12990 ie = function (e, t) { 12991 return t ? ("\0" === e ? "�" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " ") : "\\" + e; 12992 }, 12993 oe = function () { 12994 p(); 12995 }, 12996 se = be( 12997 function (e) { 12998 return !0 === e.disabled && "fieldset" === e.nodeName.toLowerCase(); 12999 }, 13000 { dir: "parentNode", next: "legend" } 13001 ); 13002 try { 13003 H.apply((j = P.call(w.childNodes)), w.childNodes), j[w.childNodes.length].nodeType; 13004 } catch (e) { 13005 H = { 13006 apply: j.length 13007 ? function (e, t) { 13008 L.apply(e, P.call(t)); 13009 } 13010 : function (e, t) { 13011 for (var n = e.length, r = 0; (e[n++] = t[r++]); ); 13012 e.length = n - 1; 13013 }, 13014 }; 13015 } 13016 function ae(e, t, r, i) { 13017 var o, 13018 a, 13019 l, 13020 c, 13021 f, 13022 h, 13023 m, 13024 y = t && t.ownerDocument, 13025 w = t ? t.nodeType : 9; 13026 if (((r = r || []), "string" != typeof e || !e || (1 !== w && 9 !== w && 11 !== w))) return r; 13027 if (!i && (p(t), (t = t || d), g)) { 13028 if (11 !== w && (f = Z.exec(e))) 13029 if ((o = f[1])) { 13030 if (9 === w) { 13031 if (!(l = t.getElementById(o))) return r; 13032 if (l.id === o) return r.push(l), r; 13033 } else if (y && (l = y.getElementById(o)) && x(t, l) && l.id === o) return r.push(l), r; 13034 } else { 13035 if (f[2]) return H.apply(r, t.getElementsByTagName(e)), r; 13036 if ((o = f[3]) && n.getElementsByClassName && t.getElementsByClassName) return H.apply(r, t.getElementsByClassName(o)), r; 13037 } 13038 if (n.qsa && !k[e + " "] && (!v || !v.test(e)) && (1 !== w || "object" !== t.nodeName.toLowerCase())) { 13039 if (((m = e), (y = t), 1 === w && (z.test(e) || V.test(e)))) { 13040 for (((y = (ee.test(e) && me(t.parentNode)) || t) === t && n.scope) || ((c = t.getAttribute("id")) ? (c = c.replace(re, ie)) : t.setAttribute("id", (c = b))), a = (h = s(e)).length; a--; ) 13041 h[a] = (c ? "#" + c : ":scope") + " " + xe(h[a]); 13042 m = h.join(","); 13043 } 13044 try { 13045 return H.apply(r, y.querySelectorAll(m)), r; 13046 } catch (t) { 13047 k(e, !0); 13048 } finally { 13049 c === b && t.removeAttribute("id"); 13050 } 13051 } 13052 } 13053 return u(e.replace($, "$1"), t, r, i); 13054 } 13055 function ue() { 13056 var e = []; 13057 return function t(n, i) { 13058 return e.push(n + " ") >
13058 r.cacheLength && delete t[e.shift()], (t[n + " "] = i); 13059 }; 13060 } 13061 function le(e) { 13062 return (e[b] = !0), e; 13063 } 13064 function ce(e) { 13065 var t = d.createElement("fieldset"); 13066 try { 13067 return !!e(t); 13068 } catch (e) { 13069 return !1; 13070 } finally { 13071 t.parentNode && t.parentNode.removeChild(t), (t = null); 13072 } 13073 } 13074 function fe(e, t) { 13075 for (var n = e.split("|"), i = n.length; i--; ) r.attrHandle[n[i]] = t; 13076 } 13077 function pe(e, t) { 13078 var n = t && e, 13079 r = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex; 13080 if (r) return r; 13081 if (n) for (; (n = n.nextSibling); ) if (n === t) return -1; 13082 return e ? 1 : -1; 13083 } 13084 function de(e) { 13085 return function (t) { 13086 return "input" === t.nodeName.toLowerCase() && t.type === e; 13087 }; 13088 } 13089 function he(e) { 13090 return function (t) { 13091 var n = t.nodeName.toLowerCase(); 13092 return ("input" === n || "button" === n) && t.type === e; 13093 }; 13094 } 13095 function ge(e) { 13096 return function (t) { 13097 return "form" in t 13098 ? t.parentNode && !1 === t.disabled 13099 ? "label" in t 13100 ? "label" in t.parentNode 13101 ? t.parentNode.disabled === e 13102 : t.disabled === e 13103 : t.isDisabled === e || (t.isDisabled !== !e && se(t) === e) 13104 : t.disabled === e 13105 : "label" in t && t.disabled === e; 13106 }; 13107 } 13108 function ve(e) { 13109 return le(function (t) { 13110 return ( 13111 (t = +t), 13112 le(function (n, r) { 13113 for (var i, o = e([], n.length, t), s = o.length; s--; ) n[(i = o[s])] && (n[i] = !(r[i] = n[i])); 13114 }) 13115 ); 13116 }); 13117 } 13118 function me(e) { 13119 return e && void 0 !== e.getElementsByTagName && e; 13120 } 13121 for (t in ((n = ae.support = {}), 13122 (o = ae.isXML = function (e) { 13123 var t = e && e.namespaceURI, 13124 n = e && (e.ownerDocument || e).documentElement; 13125 return !Y.test(t || (n && n.nodeName) || "HTML"); 13126 }), 13127 (p = ae.setDocument = function (e) { 13128 var t, 13129 i, 13130 s = e ? e.ownerDocument || e : w; 13131 return s != d && 9 === s.nodeType && s.documentElement 13132 ? ((h = (d = s).documentElement), 13133 (g = !o(d)), 13134 w != d && (i = d.defaultView) && i.top !== i && (i.addEventListener ? i.addEventListener("unload", oe, !1) : i.attachEvent && i.attachEvent("onunload", oe)), 13135 (n.scope = ce(function (e) { 13136 return h.appendChild(e).appendChild(d.createElement("div")), void 0 !== e.querySelectorAll && !e.querySelectorAll(":scope fieldset div").length; 13137 })), 13138 (n.attributes = ce(function (e) { 13139 return (e.className = "i"), !e.getAttribute("className"); 13140 })), 13141 (n.getElementsByTagName = ce(function (e) { 13142 return e.appendChild(d.createComment("")), !e.getElementsByTagName("*").length; 13143 })), 13144 (n.getElementsByClassName = K.test(d.getElementsByClassName)), 13145 (n.getById = ce(function (e) { 13146 return (h.appendChild(e).id = b), !d.getElementsByName || !d.getElementsByName(b).length; 13147 })), 13148 n.getById 13149 ? ((r.filter.ID = function (e) { 13150 var t = e.replace(te, ne); 13151 return function (e) { 13152 return e.getAttribute("id") === t; 13153 }; 13154 }), 13155 (r.find.ID = function (e, t) { 13156 if (void 0 !== t.getElementById && g) { 13157 var n = t.getElementById(e); 13158 return n ? [n] : []; 13159 } 13160 })) 13161 : ((r.filter.ID = function (e) { 13162 var t = e.replace(te, ne); 13163 return function (e) { 13164 var n = void 0 !== e.getAttributeNode && e.getAttributeNode("id"); 13165 return n && n.value === t; 13166 }; 13167 }), 13168 (r.find.ID = function (e, t) { 13169 if (void 0 !== t.getElementById && g) { 13170 var n, 13171 r, 13172 i, 13173 o = t.getElementById(e); 13174 if (o) { 13175 if ((n = o.getAttributeNode("id")) && n.value === e) return [o]; 13176 for (i = t.getElementsByName(e), r = 0; (o = i[r++]); ) if ((n = o.getAttributeNode("id")) && n.value === e) return [o]; 13177 } 13178 return []; 13179 } 13180 })), 13181 (r.find.TAG = n.getElementsByTagName 13182 ? function (e, t) { 13183 return void 0 !== t.getElementsByTagName ? t.getElementsByTagName(e) : n.qsa ? t.querySelectorAll(e) : void 0; 13184 } 13185 : function (e, t) { 13186 var n, 13187 r = [], 13188 i = 0, 13189 o = t.getElementsByTagName(e); 13190 if ("*" === e) { 13191 for (; (n = o[i++]); ) 1 === n.nodeType && r.push(n); 13192 return r; 13193 } 13194 return o; 13195 }), 13196 (r.find.CLASS = 13197 n.getElementsByClassName && 13198 function (e, t) { 13199 if (void 0 !== t.getElementsByClassName && g) return t.getElementsByClassName(e); 13200 }), 13201 (m = []), 13202 (v = []), 13203 (n.qsa = K.test(d.querySelectorAll)) && 13204 (ce(function (e) { 13205 var t; 13206 (h.appendChild(e).innerHTML = "<a id='" + b + "'></a><select id='" + b + "-\r\\' msallowcapture=''><option selected=''></option></select>"), 13207 e.querySelectorAll("[msallowcapture^='']").length && v.push("[*^$]=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"), 13208 e.querySelectorAll("[selected]").length || v.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|" + M + ")"), 13209 e.querySelectorAll("[id~=" + b + "-]").length || v.push("~="), 13210 (t = d.createElement("input")).setAttribute("name", ""), 13211 e.appendChild(t), 13212 e.querySelectorAll("[name='']").length || v.push("\\[[\\x20\\t\\r\\n\\f]*name[\\x20\\t\\r\\n\\f]*=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"), 13213 e.querySelectorAll(":checked").length || v.push(":checked"), 13214 e.querySelectorAll("a#" + b + "+*").length || v.push(".#.+[+~]"), 13215 e.querySelectorAll("\\\f"), 13216 v.push("[\\r\\n\\f]"); 13217 }), 13218 ce(function (e) { 13219 e.innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>"; 13220 var t = d.createElement("input"); 13221 t.setAttribute("type", "hidden"), 13222 e.appendChild(t).setAttribute("name", "D"), 13223 e.querySelectorAll("[name=d]").length && v.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?="), 13224 2 !== e.querySelectorAll(":enabled").length && v.push(":enabled", ":disabled"), 13225 (h.appendChild(e).disabled = !0), 13226 2 !== e.querySelectorAll(":disabled").length && v.push(":enabled", ":disabled"), 13227 e.querySelectorAll("*,:x"), 13228 v.push(",.*:"); 13229 })), 13230 (n.matchesSelector = K.test((y = h.matches || h.webkitMatchesSelector || h.mozMatchesSelector || h.oMatchesSelector || h.msMatchesSelector))) && 13231 ce(function (e) { 13232 (n.disconnectedMatch = y.call(e, "*")), y.call(e, "[s!='']:x"), m.push("!=", W); 13233 }), 13234 (v = v.length && new RegExp(v.j
13234oin("|"))), 13235 (m = m.length && new RegExp(m.join("|"))), 13236 (t = K.test(h.compareDocumentPosition)), 13237 (x = 13238 t || K.test(h.contains) 13239 ? function (e, t) { 13240 var n = 9 === e.nodeType ? e.documentElement : e, 13241 r = t && t.parentNode; 13242 return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r))); 13243 } 13244 : function (e, t) { 13245 if (t) for (; (t = t.parentNode); ) if (t === e) return !0; 13246 return !1; 13247 }), 13248 (N = t 13249 ? function (e, t) { 13250 if (e === t) return (f = !0), 0; 13251 var r = !e.compareDocumentPosition - !t.compareDocumentPosition; 13252 return ( 13253 r || 13254 (1 & (r = (e.ownerDocument || e) == (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || (!n.sortDetached && t.compareDocumentPosition(e) === r) 13255 ? e == d || (e.ownerDocument == w && x(w, e)) 13256 ? -1 13257 : t == d || (t.ownerDocument == w && x(w, t)) 13258 ? 1 13259 : c 13260 ? O(c, e) - O(c, t) 13261 : 0 13262 : 4 & r 13263 ? -1 13264 : 1) 13265 ); 13266 } 13267 : function (e, t) { 13268 if (e === t) return (f = !0), 0; 13269 var n, 13270 r = 0, 13271 i = e.parentNode, 13272 o = t.parentNode, 13273 s = [e], 13274 a = [t]; 13275 if (!i || !o) return e == d ? -1 : t == d ? 1 : i ? -1 : o ? 1 : c ? O(c, e) - O(c, t) : 0; 13276 if (i === o) return pe(e, t); 13277 for (n = e; (n = n.parentNode); ) s.unshift(n); 13278 for (n = t; (n = n.parentNode); ) a.unshift(n); 13279 for (; s[r] === a[r]; ) r++; 13280 return r ? pe(s[r], a[r]) : s[r] == w ? -1 : a[r] == w ? 1 : 0; 13281 }), 13282 d) 13283 : d; 13284 }), 13285 (ae.matches = function (e, t) { 13286 return ae(e, null, null, t); 13287 }), 13288 (ae.matchesSelector = function (e, t) { 13289 if ((p(e), n.matchesSelector && g && !k[t + " "] && (!m || !m.test(t)) && (!v || !v.test(t)))) 13290 try { 13291 var r = y.call(e, t); 13292 if (r || n.disconnectedMatch || (e.document && 11 !== e.document.nodeType)) return r; 13293 } catch (e) { 13294 k(t, !0); 13295 } 13296 return ae(t, d, null, [e]).length > 0; 13297 }), 13298 (ae.contains = function (e, t) { 13299 return (e.ownerDocument || e) != d && p(e), x(e, t); 13300 }), 13301 (ae.attr = function (e, t) { 13302 (e.ownerDocument || e) != d && p(e); 13303 var i = r.attrHandle[t.toLowerCase()], 13304 o = i && D.call(r.attrHandle, t.toLowerCase()) ? i(e, t, !g) : void 0; 13305 return void 0 !== o ? o : n.attributes || !g ? e.getAttribute(t) : (o = e.getAttributeNode(t)) && o.specified ? o.value : null; 13306 }), 13307 (ae.escape = function (e) { 13308 return (e + "").replace(re, ie); 13309 }), 13310 (ae.error = function (e) { 13311 throw new Error("Syntax error, unrecognized expression: " + e); 13312 }), 13313 (ae.uniqueSort = function (e) { 13314 var t, 13315 r = [], 13316 i = 0, 13317 o = 0; 13318 if (((f = !n.detectDuplicates), (c = !n.sortStable && e.slice(0)), e.sort(N), f)) { 13319 for (; (t = e[o++]); ) t === e[o] && (i = r.push(o)); 13320 for (; i--; ) e.splice(r[i], 1); 13321 } 13322 return (c = null), e; 13323 }), 13324 (i = ae.getText = function (e) { 13325 var t, 13326 n = "", 13327 r = 0,
13328 o = e.nodeType; 13329 if (o) { 13330 if (1 === o || 9 === o || 11 === o) { 13331 if ("string" == typeof e.textContent) return e.textContent; 13332 for (e = e.firstChild; e; e = e.nextSibling) n += i(e); 13333 } else if (3 === o || 4 === o) return e.nodeValue; 13334 } else for (; (t = e[r++]); ) n += i(t); 13335 return n; 13336 }), 13337 (r = ae.selectors = { 13338 cacheLength: 50, 13339 createPseudo: le, 13340 match: G, 13341 attrHandle: {}, 13342 find: {}, 13343 relative: { ">": { dir: "parentNode", first: !0 }, " ": { dir: "parentNode" }, "+": { dir: "previousSibling", first: !0 }, "~": { dir: "previousSibling" } }, 13344 preFilter: { 13345 ATTR: function (e) { 13346 return (e[1] = e[1].replace(te, ne)), (e[3] = (e[3] || e[4] || e[5] || "").replace(te, ne)), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4); 13347 }, 13348 CHILD: function (e) { 13349 return ( 13350 (e[1] = e[1].toLowerCase()), 13351 "nth" === e[1].slice(0, 3) 13352 ? (e[3] || ae.error(e[0]), (e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3]))), (e[5] = +(e[7] + e[8] || "odd" === e[3]))) 13353 : e[3] && ae.error(e[0]), 13354 e 13355 ); 13356 }, 13357 PSEUDO: function (e) { 13358 var t, 13359 n = !e[6] && e[2]; 13360 return G.CHILD.test(e[0]) 13361 ? null 13362 : (e[3] ? (e[2] = e[4] || e[5] || "") : n && U.test(n) && (t = s(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && ((e[0] = e[0].slice(0, t)), (e[2] = n.slice(0, t))), e.slice(0, 3)); 13363 }, 13364 }, 13365 filter: { 13366 TAG: function (e) { 13367 var t = e.replace(te, ne).toLowerCase(); 13368 return "*" === e 13369 ? function () { 13370 return !0; 13371 } 13372 : function (e) { 13373 return e.nodeName && e.nodeName.toLowerCase() === t; 13374 }; 13375 }, 13376 CLASS: function (e) { 13377 var t = S[e + " "]; 13378 return ( 13379 t || 13380 ((t = new RegExp("(^|[\\x20\\t\\r\\n\\f])" + e + "(" + R + "|$)")) && 13381 S(e, function (e) { 13382 return t.test(("string" == typeof e.className && e.className) || (void 0 !== e.getAttribute && e.getAttribute("class")) || ""); 13383 })) 13384 ); 13385 }, 13386 ATTR: function (e, t, n) { 13387 return function (r) { 13388 var i = ae.attr(r, e); 13389 return null == i 13390 ? "!=" === t 13391 : !t || 13392 ((i += ""), 13393 "=" === t 13394 ? i === n 13395 : "!=" === t 13396 ? i !== n 13397 : "^=" === t 13398 ? n && 0 === i.indexOf(n) 13399 : "*=" === t 13400 ? n && i.indexOf(n) > -1 13401 : "$=" === t 13402 ? n && i.slice(-n.length) === n 13403 : "~=" === t 13404 ? (" " + i.replace(F, " ") + " ").indexOf(n) > -1 13405 : "|=" === t && (i === n || i.slice(0, n.length + 1) === n + "-")); 13406 }; 13407 }, 13408 CHILD: function (e, t, n, r, i) { 13409 var o = "nth" !== e.slice(0, 3), 13410 s = "last" !== e.slice(-4), 13411 a = "of-type" === t; 13412 return 1 === r && 0 === i 13413 ? function (e) { 13414 return !!e.parentNode; 13415 } 13416 : function (t, n, u) { 13417 var l, 13418 c, 13419 f, 13420 p, 13421 d, 13422 h, 13423 g = o !== s ? "nextSibling" : "previousSibling", 13424 v = t.parentNode, 13425 m = a && t.nodeName.toLowerCase(), 13426 y = !u && !a, 13427 x = !1; 13428 if (v) { 13429 if (o) { 13430 for (; g; ) { 13431 for (p = t; (p = p[g]); ) if (a ? p.nodeName.toLowerCase() === m : 1 === p.nodeType) return !1; 13432 h = g = "only" === e && !h && "nextSibling"; 13433 } 13434 return !0; 13435 } 13436 if (((h = [s ? v.firstChild : v.lastChild]), s && y)) { 13437 for ( 13438 x = (d = (l = (c = (f = (p = v)[b] || (p[b] = {}))[p.uniqueID] || (f[p.uniqueID] = {}
13438))[e] || [])[0] === T && l[1]) && l[2], p = d && v.childNodes[d]; 13439 (p = (++d && p && p[g]) || (x = d = 0) || h.pop()); 13440 13441 ) 13442 if (1 === p.nodeType && ++x && p === t) { 13443 c[e] = [T, d, x]; 13444 break; 13445 } 13446 } else if ((y && (x = d = (l = (c = (f = (p = t)[b] || (p[b] = {}))[p.uniqueID] || (f[p.uniqueID] = {}))[e] || [])[0] === T && l[1]), !1 === x)) 13447 for ( 13448 ; 13449 (p = (++d && p && p[g]) || (x = d = 0) || h.pop()) && 13450 ((a ? p.nodeName.toLowerCase() !== m : 1 !== p.nodeType) || !++x || (y && ((c = (f = p[b] || (p[b] = {}))[p.uniqueID] || (f[p.uniqueID] = {}))[e] = [T, x]), p !== t)); 13451 13452 ); 13453 return (x -= i) === r || (x % r == 0 && x / r >= 0); 13454 } 13455 }; 13456 }, 13457 PSEUDO: function (e, t) { 13458 var n, 13459 i = r.pseudos[e] || r.setFilters[e.toLowerCase()] || ae.error("unsupported pseudo: " + e); 13460 return i[b] 13461 ? i(t) 13462 : i.length > 1 13463 ? ((n = [e, e, "", t]), 13464 r.setFilters.hasOwnProperty(e.toLowerCase()) 13465 ? le(function (e, n) { 13466 for (var r, o = i(e, t), s = o.length; s--; ) e[(r = O(e, o[s]))] = !(n[r] = o[s]); 13467 }) 13468 : function (e) { 13469 return i(e, 0, n); 13470 }) 13471 : i; 13472 }, 13473 }, 13474 pseudos: { 13475 not: le(function (e) { 13476 var t = [], 13477 n = [], 13478 r = a(e.replace($, "$1")); 13479 return r[b] 13480 ? le(function (e, t, n, i) { 13481 for (var o, s = r(e, null, i, []), a = e.length; a--; ) (o = s[a]) && (e[a] = !(t[a] = o)); 13482 }) 13483 : function (e, i, o) { 13484 return (t[0] = e), r(t, null, o, n), (t[0] = null), !n.pop(); 13485 }; 13486 }), 13487 has: le(function (e) { 13488 return function (t) { 13489 return ae(e, t).length > 0; 13490 }; 13491 }), 13492 contains: le(function (e) { 13493 return ( 13494 (e = e.replace(te, ne)), 13495 function (t) { 13496 return (t.textContent || i(t)).indexOf(e) > -1; 13497 } 13498 ); 13499 }), 13500 lang: le(function (e) { 13501 return ( 13502 X.test(e || "") || ae.error("unsupported lang: " + e), 13503 (e = e.replace(te, ne).toLowerCase()), 13504 function (t) { 13505 var n; 13506 do { 13507 if ((n = g ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang"))) return (n = n.toLowerCase()) === e || 0 === n.indexOf(e + "-"); 13508 } while ((t = t.parentNode) && 1 === t.nodeType); 13509 return !1; 13510 } 13511 ); 13512 }), 13513 target: function (t) { 13514 var n = e.location && e.location.hash; 13515 return n && n.slice(1) === t.id; 13516 }, 13517 root: function (e) { 13518 return e === h; 13519 }, 13520 focus: function (e) { 13521 return e === d.activeElement && (!d.hasFocus || d.hasFocus()) && !!(e.type || e.href || ~e.tabIndex); 13522 }, 13523 enabled: ge(!1), 13524 disabled: ge(!0), 13525 checked: function (e) { 13526 var t = e.nodeName.toLowerCase(); 13527 return ("input" === t && !!e.checked) || ("option" === t && !!e.selected); 13528 }, 13529 selected: function (e) { 13530 return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected; 13531 }, 13532 empty: function (e) { 13533 for (e = e.firstChild; e; e = e.nextSibling) if (e.nodeType < 6) return !1; 13534 return !0; 13535 }, 13536 parent: function (e) { 13537 return !r.pseudos.empty(e); 13538 }, 13539 header: function (e) { 13540 return J.test(e.nodeName); 13541 }, 13542 input: function (e) { 13543 return Q.test(e.nodeName); 13544 }, 13545 button: function (e) { 13546 var t = e.nodeName.toLowerCase(); 13547 return ("input" === t && "button" === e.type) || "button" === t; 13548 }, 13549 text: function (e) { 13550 var t; 13551 return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase()); 13552 }, 13553 first: ve(function () { 13554 return [0]; 13555 }), 13556 last: ve(function (e, t) { 13557 return [t - 1]; 13558 }), 13559 eq: ve(function (e, t, n) { 13560 return [n < 0 ? n + t : n]; 13561 }), 13562 even: ve(function (e, t) { 13563 for (var n = 0; n < t; n += 2) e.push(n); 13564 return e; 13565 }), 13566 odd: ve(function (e, t) { 13567 for (var n = 1; n < t; n += 2) e.push(n); 13568 return e; 13569 }), 13570 lt: ve(function (e, t, n) { 13571 for (var r = n < 0 ? n + t : n > t ? t : n; --r >= 0; ) e.push(r); 13572 return e; 13573 }), 13574 gt: ve(function (e, t, n) { 13575 for (var r = n < 0 ? n + t : n; ++r < t; ) e.push(r); 13576 return e; 13577 }), 13578 }, 13579 }), 13580 (r.pseudos.nth = r.pseudos.eq), 13581 { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 })) 13582 r.pseudos[t] = de(t); 13583 for (t in { submit: !0, reset: !0 }) r.pseudos[t] = he(t); 13584 function ye() {} 13585 function xe(e) { 13586 for (var t = 0, n = e.length, r = ""; t < n; t++) r += e[t].value; 13587 return r; 13588 } 13589 function be(e, t, n) { 13590 var r = t.dir, 13591 i = t.next, 13592 o = i || r, 13593 s = n && "parentNode" === o, 13594 a = C++; 13595 return t.first 13596 ? function (t, n, i) { 13597 for (; (t = t[r]); ) if (1 === t.nodeType || s) return e(t, n, i); 13598 return !1; 13599 } 13600 : function (t, n, u) { 13601 var l, 13602 c, 13603 f, 13604 p = [T, a]; 13605 if (u) { 13606 for (; (t = t[r]); ) if ((1 === t.nodeType || s) && e(t, n, u)) return !0; 13607 } else 13608 for (; (t = t[r]); ) 13609 if (1 === t.nodeType || s) 13610 if (((c = (f = t[b] || (t[b] = {}))[t.uniqueID] || (f[t.uniqueID] = {})), i && i === t.nodeName.toLowerCase())) t = t[r] || t; 13611 else { 13612 if ((l = c[o]) && l[0] === T && l[1] === a) return (p[2] = l[2]); 13613 if (((c[o] = p), (p[2] = e(t, n, u)))) return !0; 13614 } 13615 return !1; 13616 }; 13617 } 13618 function we(e) { 13619 return e.length > 1 13620 ? function (t, n, r) { 13621 for (var i = e.length; i--; ) if (!e[i](t, n, r)) return !1; 13622 return !0; 13623 } 13624 : e[0]; 13625 } 13626 function Te(e, t, n, r, i) { 13627 for (var o, s = [], a = 0, u = e.length, l = null != t; a < u; a++) (o = e[a]) && ((n && !n(o, r, i)) || (s.push(o), l && t.push(a))); 13628 return s; 13629 } 13630 function Ce(e, t, n, r, i, o) { 13631 return ( 13632 r && !r[b] && (r = Ce(r)), 13633 i && !i[b] && (i = Ce(i, o)), 13634 le(function (o, s, a, u) { 13635 var l, 13636 c, 13637 f, 13638 p = [], 13639 d = [], 13640 h = s.length, 13641 g = 13642 o || 13643 (function (e, t, n) { 13644 for (var r = 0, i = t.length; r < i; r++) ae(e, t[r], n); 13645 return n; 13646 })(t || "*", a.nodeType ? [a] : a, []), 13647 v = !e || (!o && t) ? g : Te(g, p, e, a, u),
13648 m = n ? (i || (o ? e : h || r) ? [] : s) : v; 13649 if ((n && n(v, m, a, u), r)) for (l = Te(m, d), r(l, [], a, u), c = l.length; c--; ) (f = l[c]) && (m[d[c]] = !(v[d[c]] = f)); 13650 if (o) { 13651 if (i || e) { 13652 if (i) { 13653 for (l = [], c = m.length; c--; ) (f = m[c]) && l.push((v[c] = f)); 13654 i(null, (m = []), l, u); 13655 } 13656 for (c = m.length; c--; ) (f = m[c]) && (l = i ? O(o, f) : p[c]) > -1 && (o[l] = !(s[l] = f)); 13657 } 13658 } else (m = Te(m === s ? m.splice(h, m.length) : m)), i ? i(null, s, m, u) : H.apply(s, m); 13659 }) 13660 ); 13661 } 13662 function Se(e) { 13663 for ( 13664 var t, 13665 n, 13666 i, 13667 o = e.length, 13668 s = r.relative[e[0].type], 13669 a = s || r.relative[" "], 13670 u = s ? 1 : 0, 13671 c = be( 13672 function (e) { 13673 return e === t; 13674 }, 13675 a, 13676 !0 13677 ), 13678 f = be( 13679 function (e) { 13680 return O(t, e) > -1; 13681 }, 13682 a, 13683 !0 13684 ), 13685 p = [ 13686 function (e, n, r) { 13687 var i = (!s && (r || n !== l)) || ((t = n).nodeType ? c(e, n, r) : f(e, n, r)); 13688 return (t = null), i; 13689 }, 13690 ]; 13691 u < o; 13692 u++ 13693 ) 13694 if ((n = r.relative[e[u].type])) p = [be(we(p), n)]; 13695 else { 13696 if ((n = r.filter[e[u].type].apply(null, e[u].matches))[b]) { 13697 for (i = ++u; i < o && !r.relative[e[i].type]; i++); 13698 return Ce( 13699 u > 1 && we(p), 13700 u > 1 && xe(e.slice(0, u - 1).concat({ value: " " === e[u - 2].type ? "*" : "" })).replace($, "$1"), 13701 n, 13702 u < i && Se(e.slice(u, i)), 13703 i < o && Se((e = e.slice(i))), 13704 i < o && xe(e) 13705 ); 13706 } 13707 p.push(n); 13708 } 13709 return we(p); 13710 } 13711 return ( 13712 (ye.prototype = r.filters = r.pseudos), 13713 (r.setFilters = new ye()), 13714 (s = ae.tokenize = function (e, t) { 13715 var n, 13716 i, 13717 o, 13718 s, 13719 a, 13720 u, 13721 l, 13722 c = E[e + " "]; 13723 if (c) return t ? 0 : c.slice(0); 13724 for (a = e, u = [], l = r.preFilter; a; ) { 13725 for (s in ((n && !(i = _.exec(a))) || (i && (a = a.slice(i[0].length) || a), u.push((o = []))), 13726 (n = !1), 13727 (i = V.exec(a)) && ((n = i.shift()), o.push({ value: n, type: i[0].replace($, " ") }), (a = a.slice(n.length))), 13728 r.filter)) 13729 !(i = G[s].exec(a)) || (l[s] && !(i = l[s](i))) || ((n = i.shift()), o.push({ value: n, type: s, matches: i }), (a = a.slice(n.length))); 13730 if (!n) break; 13731 } 13732 return t ? a.length : a ? ae.error(e) : E(e, u).slice(0); 13733 }), 13734 (a = ae.compile = function (e, t) { 13735 var n, 13736 i = [], 13737 o = [], 13738 a = A[e + " "]; 13739 if (!a) { 13740 for (t || (t = s(e)), n = t.length; n--; ) (a = Se(t[n]))[b] ? i.push(a) : o.push(a); 13741 (a = A( 13742 e, 13743 (function (e, t) { 13744 var n = t.length > 0, 13745 i = e.length > 0, 13746 o = function (o, s, a, u, c) { 13747 var f, 13748 h, 13749 v, 13750 m = 0, 13751 y = "0", 13752 x = o && [], 13753 b = [], 13754 w = l, 13755 C = o || (i && r.find.TAG("*", c)), 13756 S = (T += null == w ? 1 : Math.random() || 0.1), 13757 E = C.length; 13758 for (c && (l = s == d || s || c); y !== E && null != (f = C[y]); y++) { 13759 if (i && f) { 13760 for (h = 0, s || f.ownerDocument == d || (p(f), (a = !g)); (v = e[h++]); ) 13761 if (v(f, s || d, a)) { 13762 u.push(f); 13763 break; 13764 } 13765 c && (T = S); 13766 } 13767 n && ((f = !v && f) && m--, o && x.push(f)); 13768 } 13769 if (((m += y), n && y !== m)) { 13770 for (h = 0; (v = t[h++]); ) v(x, b, s, a); 13771 if (o) { 13772 if (m > 0) for (; y--; ) x[y] || b[y] || (b[y] = q.call(u)); 13773 b = Te(b); 13774 } 13775 H.apply(u, b), c && !o && b.length > 0 && m + t.length > 1 && ae.uniqueSort(u); 13776 } 13777 return c && ((T = S), (l = w)), x; 13778 }; 13779 return n ? le(o) : o; 13780 })(o, i) 13781 )), 13782 (a.selector = e); 13783 } 13784 return a; 13785 }), 13786 (u = ae.select = function (e, t, n, i) { 13787 var o, 13788 u, 13789 l, 13790 c, 13791 f, 13792 p = "function" == typeof e && e, 13793 d = !i && s((e = p.selector || e)); 13794 if (((n = n || []), 1 === d.length)) { 13795 if ((u = d[0] = d[0].slice(0)).length > 2 && "ID" === (l = u[0]).type && 9 === t.nodeType && g && r.relative[u[1].type]) { 13796 if (!(t = (r.find.ID(l.matches[0].replace(te, ne), t) || [])[0])) return n; 13797 p && (t = t.parentNode), (e = e.slice(u.shift().value.length)); 13798 } 13799 for (o = G.needsContext.test(e) ? 0 : u.length; o-- && ((l = u[o]), !r.relative[(c = l.type)]); ) 13800 if ((f = r.find[c]) && (i = f(l.matches[0].replace(te, ne), (ee.test(u[0].type) && me(t.parentNode)) || t))) { 13801 if ((u.splice(o, 1), !(e = i.length && xe(u)))) return H.apply(n, i), n; 13802 break; 13803 } 13804 } 13805 return (p || a(e, d))(i, t, !g, n, !t || (ee.test(e) && me(t.parentNode)) || t), n; 13806 }), 13807 (n.sortStable = b.split("").sort(N).join("") === b), 13808 (n.detectDuplicates = !!f), 13809 p(), 13810 (n.sortDetached = ce(function (e) { 13811 return 1 & e.compareDocumentPosition(d.createElement("fieldset")); 13812 })), 13813 ce(function (e) { 13814 return (e.innerHTML = "<a href='#'></a>"), "#" === e.firstChild.getAttribute("href"); 13815 }) || 13816 fe("type|href|height|width", function (e, t, n) { 13817 if (!n) return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2); 13818 }), 13819 (n.attributes && 13820 ce(function (e) { 13821 return (e.innerHTML = "<input/>"), e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value"); 13822 })) || 13823 fe("value", function (e, t, n) { 13824 if (!n && "input" === e.nodeName.toLowerCase()) return e.defaultValue; 13825 }), 13826 ce(function (e) { 13827 return null == e.getAttribute("disabled"); 13828 }) || 13829 fe(M, function (e, t, n) { 13830 var r; 13831 if (!n) return !0 === e[t] ? t.toLowerCase() : (r = e.getAttributeNode(t)) && r.specified ? r.value : null; 13832 }), 13833 ae 13834 ); 13835 })(r); 13836 (S.find = A), (S.expr = A.selectors), (S.expr[":"] = S.expr.pseudos), (S.uniqueSort = S.unique = A.uniqueSort), (S.text = A.getText), (S.isXMLDoc = A.isXML), (S.contains = A.contains), (S.escapeSelector = A.escape); 13837 var k = function (e, t, n) { 13838 for (var r = [], i = void 0 !== n; (e = e[t]) && 9 !== e.nodeType; ) 13839 if (1 === e.nodeType) { 13840 if (i && S(e).is(n)) break; 13841 r.push(e); 13842 } 13843 return r; 13844 }, 13845 N = function (e, t) { 13846 for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e); 13847 return n; 13848 }, 13849 D = S.expr.match.needsContext; 13850 function j(e, t) {
13851 return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase(); 13852 } 13853 var q = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; 13854 function L(e, t, n) { 13855 return m(t) 13856 ? S.grep(e, function (e, r) { 13857 return !!t.call(e, r, e) !== n; 13858 }) 13859 : t.nodeType 13860 ? S.grep(e, function (e) { 13861 return (e === t) !== n; 13862 }) 13863 : "string" != typeof t 13864 ? S.grep(e, function (e) { 13865 return c.call(t, e) > -1 !== n; 13866 }) 13867 : S.filter(t, e, n); 13868 } 13869 (S.filter = function (e, t, n) { 13870 var r = t[0]; 13871 return ( 13872 n && (e = ":not(" + e + ")"), 13873 1 === t.length && 1 === r.nodeType 13874 ? S.find.matchesSelector(r, e) 13875 ? [r] 13876 : [] 13877 : S.find.matches( 13878 e, 13879 S.grep(t, function (e) { 13880 return 1 === e.nodeType; 13881 }) 13882 ) 13883 ); 13884 }), 13885 S.fn.extend({ 13886 find: function (e) { 13887 var t, 13888 n, 13889 r = this.length, 13890 i = this; 13891 if ("string" != typeof e) 13892 return this.pushStack( 13893 S(e).filter(function () { 13894 for (t = 0; t < r; t++) if (S.contains(i[t], this)) return !0; 13895 }) 13896 ); 13897 for (n = this.pushStack([]), t = 0; t < r; t++) S.find(e, i[t], n); 13898 return r > 1 ? S.uniqueSort(n) : n; 13899 }, 13900 filter: function (e) { 13901 return this.pushStack(L(this, e || [], !1)); 13902 }, 13903 not: function (e) { 13904 return this.pushStack(L(this, e || [], !0)); 13905 }, 13906 is: function (e) { 13907 return !!L(this, "string" == typeof e && D.test(e) ? S(e) : e || [], !1).length; 13908 }, 13909 }); 13910 var H, 13911 P = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/; 13912 ((S.fn.init = function (e, t, n) { 13913 var r, i; 13914 if (!e) return this; 13915 if (((n = n || H), "string" == typeof e)) { 13916 if (!(r = "<" === e[0] && ">" === e[e.length - 1] && e.length >= 3 ? [null, e, null] : P.exec(e)) || (!r[1] && t)) return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e); 13917 if (r[1]) { 13918 if (((t = t instanceof S ? t[0] : t), S.merge(this, S.parseHTML(r[1], t && t.nodeType ? t.ownerDocument || t : x, !0)), q.test(r[1]) && S.isPlainObject(t))) 13919 for (r in t) m(this[r]) ? this[r](t[r]) : this.attr(r, t[r]); 13920 return this; 13921 } 13922 return (i = x.getElementById(r[2])) && ((this[0] = i), (this.length = 1)), this; 13923 }
13924 return e.nodeType ? ((this[0] = e), (this.length = 1), this) : m(e) ? (void 0 !== n.ready ? n.ready(e) : e(S)) : S.makeArray(e, this); 13925 }).prototype = S.fn), 13926 (H = S(x)); 13927 var O = /^(?:parents|prev(?:Until|All))/, 13928 M = { children: !0, contents: !0, next: !0, prev: !0 }; 13929 function R(e, t) { 13930 for (; (e = e[t]) && 1 !== e.nodeType; ); 13931 return e; 13932 } 13933 S.fn.extend({ 13934 has: function (e) { 13935 var t = S(e, this), 13936 n = t.length; 13937 return this.filter(function () { 13938 for (var e = 0; e < n; e++) if (S.contains(this, t[e])) return !0; 13939 }); 13940 }, 13941 closest: function (e, t) { 13942 var n, 13943 r = 0, 13944 i = this.length, 13945 o = [], 13946 s = "string" != typeof e && S(e); 13947 if (!D.test(e)) 13948 for (; r < i; r++) 13949 for (n = this[r]; n && n !== t; n = n.parentNode) 13950 if (n.nodeType < 11 && (s ? s.index(n) > -1 : 1 === n.nodeType && S.find.matchesSelector(n, e))) { 13951 o.push(n); 13952 break; 13953 } 13954 return this.pushStack(o.length > 1 ? S.uniqueSort(o) : o); 13955 }, 13956 index: function (e) { 13957 return e ? ("string" == typeof e ? c.call(S(e), this[0]) : c.call(this, e.jquery ? e[0] : e)) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1; 13958 }, 13959 add: function (e, t) { 13960 return this.pushStack(S.uniqueSort(S.merge(this.get(), S(e, t)))); 13961 }, 13962 addBack: function (e) { 13963 return this.add(null == e ? this.prevObject : this.prevObject.filter(e)); 13964 }, 13965 }), 13966 S.each( 13967 { 13968 parent: function (e) { 13969 var t = e.parentNode; 13970 return t && 11 !== t.nodeType ? t : null; 13971 }, 13972 parents: function (e) { 13973 return k(e, "parentNode"); 13974 }, 13975 parentsUntil: function (e, t, n) { 13976 return k(e, "parentNode", n); 13977 }, 13978 next: function (e) { 13979 return R(e, "nextSibling"); 13980 }, 13981 prev: function (e) { 13982 return R(e, "previousSibling"); 13983 }, 13984 nextAll: function (e) { 13985 return k(e, "nextSibling"); 13986 }, 13987 prevAll: function (e) { 13988 return k(e, "previousSibling"); 13989 }, 13990 nextUntil: function (e, t, n) { 13991 return k(e, "nextSibling", n); 13992 }, 13993 prevUntil: function (e, t, n) { 13994 return k(e, "previousSibling", n); 13995 }, 13996 siblings: function (e) { 13997 return N((e.parentNode || {}).firstChild, e); 13998 }, 13999 children: function (e) { 14000 return N(e.firstChild); 14001 }, 14002 contents: function (e) { 14003 return null != e.contentDocument && s(e.contentDocument) ? e.contentDocument : (j(e, "template") && (e = e.content || e), S.merge([], e.childNodes)); 14004 }, 14005 }, 14006 function (e, t) { 14007 S.fn[e] = function (n, r) { 14008 var i = S.map(this, t, n); 14009 return "Until" !== e.slice(-5) && (r = n), r && "string" == typeof r && (i = S.filter(r, i)), this.length > 1 && (M[e] || S.uniqueSort(i), O.test(e) && i.reverse()), this.pushStack(i); 14010 }; 14011 } 14012 ); 14013 var I = /[^\x20\t\r\n\f]+/g; 14014 function B(e) { 14015 return e; 14016 } 14017 function W(e) { 14018 throw e; 14019 } 14020 function F(e, t, n, r) { 14021 var i; 14022 try {
14023 e && m((i = e.promise)) ? i.call(e).done(t).fail(n) : e && m((i = e.then)) ? i.call(e, t, n) : t.apply(void 0, [e].slice(r)); 14024 } catch (e) { 14025 n.apply(void 0, [e]); 14026 } 14027 } 14028 (S.Callbacks = function (e) { 14029 e = 14030 "string" == typeof e 14031 ? (function (e) { 14032 var t = {}; 14033 return ( 14034 S.each(e.match(I) || [], function (e, n) { 14035 t[n] = !0; 14036 }), 14037 t 14038 ); 14039 })(e) 14040 : S.extend({}, e); 14041 var t, 14042 n, 14043 r, 14044 i, 14045 o = [], 14046 s = [], 14047 a = -1, 14048 u = function () { 14049 for (i = i || e.once, r = t = !0; s.length; a = -1) for (n = s.shift(); ++a < o.length; ) !1 === o[a].apply(n[0], n[1]) && e.stopOnFalse && ((a = o.length), (n = !1)); 14050 e.memory || (n = !1), (t = !1), i && (o = n ? [] : ""); 14051 }, 14052 l = { 14053 add: function () { 14054 return ( 14055 o && 14056 (n && !t && ((a = o.length - 1), s.push(n)), 14057 (function t(n) { 14058 S.each(n, function (n, r) { 14059 m(r) ? (e.unique && l.has(r)) || o.push(r) : r && r.length && "string" !== T(r) && t(r); 14060 }); 14061 })(arguments), 14062 n && !t && u()), 14063 this 14064 ); 14065 }, 14066 remove: function () { 14067 return ( 14068 S.each(arguments, function (e, t) { 14069 for (var n; (n = S.inArray(t, o, n)) > -1; ) o.splice(n, 1), n <= a && a--; 14070 }), 14071 this 14072 ); 14073 }, 14074 has: function (e) { 14075 return e ? S.inArray(e, o) > -1 : o.length > 0; 14076 }, 14077 empty: function () { 14078 return o && (o = []), this; 14079 }, 14080 disable: function () { 14081 return (i = s = []), (o = n = ""), this; 14082 }, 14083 disabled: function () { 14084 return !o; 14085 }, 14086 lock: function () { 14087 return (i = s = []), n || t || (o = n = ""), this; 14088 }, 14089 locked: function () { 14090 return !!i; 14091 }, 14092 fireWith: function (e, n) { 14093 return i || ((n = [e, (n = n || []).slice ? n.slice() : n]), s.push(n), t || u()), this; 14094 }, 14095 fire: function () { 14096 return l.fireWith(this, arguments), this; 14097 }, 14098 fired: function () { 14099 return !!r; 14100 }, 14101 }; 14102 return l; 14103 }), 14104 S.extend({ 14105 Deferred: function (e) { 14106 var t = [ 14107 ["notify", "progress", S.Callbacks("memory"), S.Callbacks("memory"), 2], 14108 ["resolve", "done", S.Callbacks("once memory"), S.Callbacks("once memory"), 0, "resolved"], 14109 ["reject", "fail", S.Callbacks("once memory"), S.Callbacks("once memory"), 1, "rejected"], 14110 ], 14111 n = "pending", 14112 i = { 14113 state: function () { 14114 return n; 14115 }, 14116 always: function () { 14117 return o.done(arguments).fail(arguments), this; 14118 }, 14119 catch: function (e) { 14120 return i.then(null, e); 14121 }, 14122 pipe: function () { 14123 var e = arguments; 14124 return S.Deferred(function (n) { 14125 S.each(t, function (t, r) { 14126 var i = m(e[r[4]]) && e[r[4]]; 14127 o[r[1]](function () { 14128 var e = i && i.apply(this, arguments); 14129 e && m(e.promise) ? e.promise().progress(n.notify).done(n.resolve).fail(n.reject) : n[r[0] + "With"](this, i ? [e] : arguments); 14130 }); 14131 }), 14132 (e = null); 14133 }).promise(); 14134 }, 14135 then: function (e, n, i) { 14136 var o = 0; 14137 function s(e, t, n, i) { 14138 return function () { 14139 var a = this, 14140 u = arguments, 14141 l = function () { 14142 var r, l; 14143 if (!(e < o)) { 14144 if ((r = n.apply(a, u)) === t.promise()) throw new TypeError("Thenable self
14144-resolution"); 14145 (l = r && ("object" == typeof r || "function" == typeof r) && r.then), 14146 m(l) 14147 ? i 14148 ? l.call(r, s(o, t, B, i), s(o, t, W, i)) 14149 : (o++, l.call(r, s(o, t, B, i), s(o, t, W, i), s(o, t, B, t.notifyWith))) 14150 : (n !== B && ((a = void 0), (u = [r])), (i || t.resolveWith)(a, u)); 14151 } 14152 }, 14153 c = i 14154 ? l 14155 : function () { 14156 try { 14157 l(); 14158 } catch (r) { 14159 S.Deferred.exceptionHook && S.Deferred.exceptionHook(r, c.stackTrace), e + 1 >= o && (n !== W && ((a = void 0), (u = [r])), t.rejectWith(a, u)); 14160 } 14161 }; 14162 e ? c() : (S.Deferred.getStackHook && (c.stackTrace = S.Deferred.getStackHook()), r.setTimeout(c)); 14163 }; 14164 } 14165 return S.Deferred(function (r) { 14166 t[0][3].add(s(0, r, m(i) ? i : B, r.notifyWith)), t[1][3].add(s(0, r, m(e) ? e : B)), t[2][3].add(s(0, r, m(n) ? n : W)); 14167 }).promise(); 14168 }, 14169 promise: function (e) { 14170 return null != e ? S.extend(e, i) : i; 14171 }, 14172 }, 14173 o = {}; 14174 return ( 14175 S.each(t, function (e, r) { 14176 var s = r[2], 14177 a = r[5]; 14178 (i[r[1]] = s.add), 14179 a && 14180 s.add( 14181 function () { 14182 n = a; 14183 }, 14184 t[3 - e][2].disable, 14185 t[3 - e][3].disable, 14186 t[0][2].lock, 14187 t[0][3].lock 14188 ), 14189 s.add(r[3].fire), 14190 (o[r[0]] = function () { 14191 return o[r[0] + "With"](this === o ? void 0 : this, arguments), this; 14192 }), 14193 (o[r[0] + "With"] = s.fireWith); 14194 }), 14195 i.promise(o), 14196 e && e.call(o, o), 14197 o 14198 ); 14199 }, 14200 when: function (e) { 14201 var t = arguments.length, 14202 n = t, 14203 r = Array(n), 14204 i = a.call(arguments), 14205 o = S.Deferred(), 14206 s = function (e) { 14207 return function (n) { 14208 (r[e] = this), (i[e] = arguments.length > 1 ? a.call(arguments) : n), --t || o.resolveWith(r, i); 14209 }; 14210 }; 14211 if (t <= 1 && (F(e, o.done(s(n)).resolve, o.reject, !t), "pending" === o.state() || m(i[n] && i[n].then))) return o.then(); 14212 for (; n--; ) F(i[n], s(n), o.reject); 14213 return o.promise(); 14214 }, 14215 }); 14216 var $ = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; 14217 (S.Deferred.exceptionHook = function (e, t) { 14218 r.console && r.console.warn && e && $.test(e.name) && r.console.warn("jQuery.Deferred exception: " + e.message, e.stack, t); 14219 }), 14220 (S.readyException = function (e) { 14221 r.setTimeout(function () { 14222 throw e; 14223 }); 14224 }); 14225 var _ = S.Deferred(); 14226 function V() { 14227 x.removeEventListener("DOMContentLoaded", V), r.removeEventListener("load", V), S.ready(); 14228 } 14229 (S.fn.ready = function (e) { 14230 return ( 14231 _.then(e).catch(function (e) { 14232 S.readyException(e); 14233 }), 14234 this 14235 ); 14236 }), 14237 S.extend({ 14238 isReady: !1, 14239 readyWait: 1, 14240 ready: function (e) {
14241 (!0 === e ? --S.readyWait : S.isReady) || ((S.isReady = !0), (!0 !== e && --S.readyWait > 0) || _.resolveWith(x, [S])); 14242 }, 14243 }), 14244 (S.ready.then = _.then), 14245 "complete" === x.readyState || ("loading" !== x.readyState && !x.documentElement.doScroll) ? r.setTimeout(S.ready) : (x.addEventListener("DOMContentLoaded", V), r.addEventListener("load", V)); 14246 var z = function (e, t, n, r, i, o, s) { 14247 var a = 0, 14248 u = e.length, 14249 l = null == n; 14250 if ("object" === T(n)) for (a in ((i = !0), n)) z(e, t, a, n[a], !0, o, s); 14251 else if ( 14252 void 0 !== r && 14253 ((i = !0), 14254 m(r) || (s = !0), 14255 l && 14256 (s 14257 ? (t.call(e, r), (t = null)) 14258 : ((l = t), 14259 (t = function (e, t, n) { 14260 return l.call(S(e), n); 14261 }))), 14262 t) 14263 ) 14264 for (; a < u;
14264 a++) t(e[a], n, s ? r : r.call(e[a], a, t(e[a], n))); 14265 return i ? e : l ? t.call(e) : u ? t(e[0], n) : o; 14266 }, 14267 U = /^-ms-/, 14268 X = /-([a-z])/g; 14269 function G(e, t) { 14270 return t.toUpperCase(); 14271 } 14272 function Y(e) { 14273 return e.replace(U, "ms-").replace(X, G); 14274 } 14275 var Q = function (e) { 14276 return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType; 14277 }; 14278 function J() { 14279 this.expando = S.expando + J.uid++; 14280 } 14281 (J.uid = 1), 14282 (J.prototype = { 14283 cache: function (e) { 14284 var t = e[this.expando]; 14285 return t || ((t = {}), Q(e) && (e.nodeType ? (e[this.expando] = t) : Object.defineProperty(e, this.expando, { value: t, configurable: !0 }))), t; 14286 }, 14287 set: function (e, t, n) { 14288 var r, 14289 i = this.cache(e); 14290 if ("string" == typeof t) i[Y(t)] = n; 14291 else for (r in t) i[Y(r)] = t[r]; 14292 return i; 14293 }, 14294 get: function (e, t) { 14295 return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][Y(t)]; 14296 }, 14297 access: function (e, t, n) { 14298 return void 0 === t || (t && "string" == typeof t && void 0 === n) ? this.get(e, t) : (this.set(e, t, n), void 0 !== n ? n : t); 14299 }, 14300 remove: function (e, t) { 14301 var n, 14302 r = e[this.expando]; 14303 if (void 0 !== r) { 14304 if (void 0 !== t) { 14305 n = (t = Array.isArray(t) ? t.map(Y) : (t = Y(t)) in r ? [t] : t.match(I) || []).length; 14306 for (; n--; ) delete r[t[n]]; 14307 } 14308 (void 0 === t || S.isEmptyObject(r)) && (e.nodeType ? (e[this.expando] = void 0) : delete e[this.expando]); 14309 } 14310 }, 14311 hasData: function (e) { 14312 var t = e[this.expando]; 14313 return void 0 !== t && !S.isEmptyObject(t); 14314 }, 14315 }); 14316 var K = new J(), 14317 Z = new J(), 14318 ee = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, 14319 te = /[A-Z]/g; 14320 function ne(e, t, n) { 14321 var r; 14322 if (void 0 === n && 1 === e.nodeType) 14323 if (((r = "data-" + t.replace(te, "-$&").toLowerCase()), "string" == typeof (n = e.getAttribute(r)))) { 14324 try { 14325 n = (function (e) { 14326 return "true" === e || ("false" !== e && ("null" === e ? null : e === +e + "" ? +e : ee.test(e) ? JSON.parse(e) : e)); 14327 })(n); 14328 } catch (e) {} 14329 Z.set(e, t, n); 14330 } else n = void 0; 14331 return n; 14332 } 14333 S.extend({ 14334 hasData: function (e) { 14335 return Z.hasData(e) || K.hasData(e); 14336 }, 14337 data: function (e, t, n) { 14338 return Z.access(e, t, n); 14339 }, 14340 removeData: function (e, t) { 14341 Z.remove(e, t); 14342 }, 14343 _data: function (e, t, n) { 14344 return K.access(e, t, n); 14345 }, 14346 _removeData: function (e, t) { 14347 K.remove(e, t); 14348 }, 14349 }), 14350 S.fn.extend({ 14351 data: function (e, t) { 14352 var n, 14353 r, 14354 i, 14355 o = this[0], 14356 s = o && o.attributes; 14357 if (void 0 === e) { 14358 if (this.length && ((i = Z.get(o)), 1 === o.nodeType && !K.get(o, "hasDataAttrs"))) { 14359 for (n = s.length; n--; ) s[n] && 0 === (r = s[n].name).indexOf("data-") && ((r = Y(r.slice(5))), ne(o, r, i[r])); 14360 K.set(o, "hasDataAttrs", !0); 14361 } 14362 return i; 14363 } 14364 return "object" == typeof e 14365 ? this.each(function () { 14366 Z.set(this, e); 14367 }) 14368 : z( 14369 this, 14370 function (t) { 14371 var n; 14372 if (o && void 0 === t) return void 0 !== (n = Z.get(o, e)) || void 0 !== (n = ne(o, e)) ? n : void 0; 14373 this.each(function () { 14374 Z.set(this, e, t); 14375 }); 14376 }, 14377 null, 14378 t, 14379 arguments.length > 1, 14380 null, 14381 !0 14382 ); 14383 }, 14384 removeData: function (e) { 14385 return this.each(function () { 14386 Z.remove(this, e); 14387 }); 14388 }, 14389 }), 14390 S.extend({ 14391 queue: function (e, t, n) { 14392 var r; 14393 if (e) return (t = (t || "fx") + "queue"), (r = K.get(e, t)), n && (!r || Array.isArray(n) ? (r = K.access(e, t, S.makeArray(n))) : r.push(n)), r || []; 14394 }, 14395 dequeue: function (e, t) { 14396 t = t || "fx"; 14397 var n = S.queue(e, t), 14398 r = n.length, 14399 i = n.shift(), 14400 o = S._queueHooks(e, t); 14401 "inprogress" === i && ((i = n.shift()), r--), 14402 i && 14403 ("fx" === t && n.unshift("inprogress"), 14404 delete o.stop, 14405 i.call( 14406 e, 14407 function () { 14408 S.dequeue(e, t); 14409 }, 14410 o 14411 )), 14412 !r && o && o.empty.fire(); 14413 }, 14414 _queueHooks: function (e, t) { 14415 var n = t + "queueHooks"; 14416 return ( 14417 K.get(e, n) || 14418 K.access(e, n, { 14419 empty: S.Callbacks("once memory").add(function () { 14420 K.remove(e, [t + "queue", n]); 14421 }), 14422 }) 14423 ); 14424 }, 14425 }), 14426 S.fn.extend({ 14427 queue: function (e, t) { 14428 var n = 2; 14429 return ( 14430 "string" != typeof e && ((t = e), (e = "fx"), n--), 14431 arguments.length < n 14432 ? S.queue(this[0], e) 14433 : void 0 === t 14434 ? this 14435 : this.each(function () { 14436 var n = S.queue(this, e, t); 14437 S._queueHooks(this, e), "fx" === e && "inprogress" !== n[0] && S.dequeue(this, e); 14438 }) 14439 ); 14440 }, 14441 dequeue: function (e) { 14442 return this.each(function () { 14443 S.dequeue(this, e); 14444 }); 14445 }, 14446 clearQueue: function (e) { 14447 return this.queue(e || "fx", []); 14448 }, 14449 promise: function (e, t) { 14450 var n, 14451 r = 1, 14452 i = S.Deferred(), 14453 o = this, 14454 s = this.length, 14455 a = function () { 14456 --r || i.resolveWith(o, [o]); 14457 }; 14458 for ("string" != typeof e && ((t = e), (e = void 0)), e = e || "fx"; s--; ) (n = K.get(o[s], e + "queueHooks")) && n.empty && (r++, n.empty.add(a)); 14459 return a(), i.promise(t); 14460 }, 14461 }); 14462 var re = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, 14463 ie = new RegExp("^(?:([+-])=|)(" + re + ")([a-z
14463%]*)$", "i"), 14464 oe = ["Top", "Right", "Bottom", "Left"], 14465 se = x.documentElement, 14466 ae = function (e) { 14467 return S.contains(e.ownerDocument, e); 14468 }, 14469 ue = { composed: !0 }; 14470 se.getRootNode && 14471 (ae = function (e) { 14472 return S.contains(e.ownerDocument, e) || e.getRootNode(ue) === e.ownerDocument; 14473 }); 14474 var le = function (e, t) { 14475 return "none" === (e = t || e).style.display || ("" === e.style.display && ae(e) && "none" === S.css(e, "display")); 14476 }; 14477 function ce(e, t, n, r) { 14478 var i, 14479 o, 14480 s = 20, 14481 a = r 14482 ? function () { 14483 return r.cur(); 14484 } 14485 : function () { 14486 return S.css(e, t, ""); 14487 }, 14488 u = a(), 14489 l = (n && n[3]) || (S.cssNumber[t] ? "" : "px"), 14490 c = e.nodeType && (S.cssNumber[t] || ("px" !== l && +u)) && ie.exec(S.css(e, t)); 14491 if (c && c[3] !== l) { 14492 for (u /= 2, l = l || c[3], c = +u || 1; s--; ) S.style(e, t, c + l), (1 - o) * (1 - (o = a() / u || 0.5)) <= 0 && (s = 0), (c /= o); 14493 (c *= 2), S.style(e, t, c + l), (n = n || []); 14494 } 14495 return n && ((c = +c || +u || 0), (i = n[1] ? c + (n[1] + 1) * n[2] : +n[2]), r && ((r.unit = l), (r.start = c), (r.end = i))), i; 14496 } 14497 var fe = {}; 14498 function pe(e) { 14499 var t, 14500 n = e.ownerDocument, 14501 r = e.nodeName, 14502 i = fe[r]; 14503 return i || ((t = n.body.appendChild(n.createElement(r))), (i = S.css(t, "display")), t.parentNode.removeChild(t), "none" === i && (i = "block"), (fe[r] = i), i); 14504 } 14505 function de(e, t) { 14506 for (var n, r, i = [], o = 0, s = e.length; o < s; o++) 14507 (r = e[o]).style && 14508 ((n = r.style.display), 14509 t ? ("none" === n && ((i[o] = K.get(r, "display") || null), i[o] || (r.style.display = "")), "" === r.style.display && le(r) && (i[o] = pe(r))) : "none" !== n && ((i[o] = "none"), K.set(r, "display", n))); 14510 for (o = 0; o < s; o++) null != i[o] && (e[o].style.display = i[o]); 14511 return e; 14512 } 14513 S.fn.extend({ 14514 show: function () { 14515 return de(this, !0); 14516 }, 14517 hide: function () { 14518 return de(this); 14519 }, 14520 toggle: function (e) { 14521 return "boolean" == typeof e 14522 ? e 14523 ? this.show() 14524 : this.hide() 14525 : this.each(function () { 14526 le(this) ? S(this).show() : S(this).hide(); 14527 }); 14528 }, 14529 }); 14530 var he, 14531 ge, 14532 ve = /^(?:checkbox|radio)$/i, 14533 me = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i, 14534 ye = /^$|^module$|\/(?:java|ecma)script/i; 14535 (he = x.createDocumentFragment().appendChild(x.createElement("div"))), 14536 (ge = x.createElement("input")).setAttribute("type", "radio"), 14537 ge.setAttribute("checked", "checked"), 14538 ge.setAttribute("name", "t"), 14539 he.appendChild(ge), 14540 (v.checkClone = he.cloneNode(!0).cloneNode(!0).lastChild.checked), 14541 (he.innerHTML = "<textarea>x</textarea>"), 14542 (v.noCloneChecked = !!he.cloneNode(!0).lastChild.defaultValue), 14543 (he.innerHTML = "<option></option>"), 14544 (v.option = !!he.lastChild); 14545 var xe = { 14546 thead: [1, "<table>", "</table>"], 14547 col: [2, "<table><colgroup>", "</colgroup></table>"], 14548 tr: [2, "<table><tbody>", "</tbody></table>"], 14549 td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], 14550 _default: [0, "", ""], 14551 }; 14552 function be(e, t) { 14553 var n; 14554 return (n = void 0 !== e.getElementsByTagName ? e.getElementsByTagName(t || "*") : void 0 !== e.querySelectorAll ? e.querySelectorAll(t || "*") : []), void 0 === t || (t && j(e, t)) ? S.merge([e], n) : n; 14555 } 14556 function we(e, t) { 14557 for (var n = 0, r = e.length; n < r; n++) K.set(e[n], "globalEval", !t || K.get(t[n], "globalEval")); 14558 } 14559 (xe.tbody = xe.tfoot = xe.colgroup = xe.caption = xe.thead), (xe.th = xe.td), v.option || (xe.optgroup = xe.option = [1, "<select multiple='multiple'>", "</select>"]);
14560 var Te = /<|&#?\w+;/; 14561 function Ce(e, t, n, r, i) { 14562 for (var o, s, a, u, l, c, f = t.createDocumentFragment(), p = [], d = 0, h = e.length; d < h; d++) 14563 if ((o = e[d]) || 0 === o) 14564 if ("object" === T(o)) S.merge(p, o.nodeType ? [o] : o); 14565 else if (Te.test(o)) { 14566 for (s = s || f.appendChild(t.createElement("div")), a = (me.exec(o) || ["", ""])[1].toLowerCase(), u = xe[a] || xe._default, s.innerHTML = u[1] + S.htmlPrefilter(o) + u[2], c = u[0]; c--; ) 14567 s = s.lastChild; 14568 S.merge(p, s.childNodes), ((s = f.firstChild).textContent = ""); 14569 } else p.push(t.createTextNode(o)); 14570 for (f.textContent = "", d = 0; (o = p[d++]); ) 14571 if (r && S.inArray(o, r) > -1) i && i.push(o); 14572 else if (((l = ae(o)), (s = be(f.appendChild(o), "script")), l && we(s), n)) for (c = 0; (o = s[c++]); ) ye.test(o.type || "") && n.push(o); 14573 return f; 14574 } 14575 var Se = /^([^.]*)(?:\.(.+)|)/; 14576 function Ee() { 14577 return !0; 14578 } 14579 function Ae() { 14580 return !1; 14581 } 14582 function ke(e, t) { 14583 return ( 14584 (e === 14585 (function () { 14586 try { 14587 return x.activeElement; 14588 } catch (e) {} 14589 })()) == 14590 ("focus" === t) 14591 ); 14592 } 14593 function Ne(e, t, n, r, i, o) { 14594 var s, a; 14595 if ("object" == typeof t) { 14596 for (a in ("string" != typeof n && ((r = r || n), (n = void 0)), t)) Ne(e, a, n, r, t[a], o); 14597 return e; 14598 } 14599 if ((null == r && null == i ? ((i = n), (r = n = void 0)) : null == i && ("string" == typeof n ? ((i = r), (r = void 0)) : ((i = r), (r = n), (n = void 0))), !1 === i)) i = Ae; 14600 else if (!i) return e; 14601 return ( 14602 1 === o && 14603 ((s = i), 14604 (i = function (e) { 14605 return S().off(e), s.apply(this, arguments); 14606 }), 14607 (i.guid = s.guid || (s.guid = S.guid++))), 14608 e.each(function () { 14609 S.event.add(this, t, i, r, n); 14610 }) 14611 ); 14612 } 14613 function De(e, t, n) { 14614 n 14615 ? (K.set(e, t, !1), 14616 S.event.add(e, t, { 14617 namespace: !1, 14618 handler: function (e) { 14619 var r, 14620 i, 14621 o = K.get(this, t); 14622 if (1 & e.isTrigger && this[t]) { 14623 if (o.length) (S.event.special[t] || {}).delegateType && e.stopPropagation(); 14624 else if (((o = a.call(arguments)), K.set(this, t, o), (r = n(this, t)), this[t](), o !== (i = K.get(this, t)) || r ? K.set(this, t, !1) : (i = {}), o !== i)) 14625 return e.stopImmediatePropagation(), e.preventDefault(), i && i.value; 14626 } else o.length && (K.set(this, t, { value: S.event.trigger(S.extend(o[0], S.Event.prototype), o.slice(1), this) }), e.stopImmediatePropagation()); 14627 }, 14628 })) 14629 : void 0 === K.get(e, t) && S.event.add(e, t, Ee); 14630 } 14631 (S.event = { 14632 global: {}, 14633 add: function (e, t, n, r, i) { 14634 var o, 14635 s, 14636 a, 14637 u, 14638 l, 14639 c, 14640 f, 14641 p, 14642 d, 14643 h, 14644 g, 14645 v = K.get(e); 14646 if (Q(e)) 14647 for ( 14648 n.handler && ((n = (o = n).handler), (i = o.selector)), 14649 i && S.find.matchesSelector(se, i), 14650 n.guid || (n.guid = S.guid++), 14651 (u = v.events) || (u = v.events = Object.create(null)), 14652 (s = v.handle) || 14653 (s = v.handle = function (t) { 14654 return void 0 !== S && S.event.triggered !== t.type ? S.event.dispatch.apply(e, arguments) : void 0; 14655 }), 14656 l = (t = (t || "").match(I) || [""]).length; 14657 l--; 14658 14659 ) 14660 (d = g = (a = Se.exec(t[l]) || [])[1]), 14661 (h = (a[2] || "").split(".").sort()), 14662 d && 14663 ((f = S.event.special[d] || {}), 14664 (d = (i ? f.delegateType : f.bindType) || d), 14665 (f = S.event.special[d] || {}), 14666 (c = S.extend({ type: d, origType: g, data: r, handler: n, guid: n.guid, selector: i, needsContext: i && S.expr.match.needsContext.test(i), namespace: h.join(".") }, o)), 14667 (p = u[d]) || (((p = u[d] = []).delegateCount = 0), (f.setup && !1 !== f.setup.call(e, r, h, s)) || (e.addEventListener && e.addEventListener(d, s))), 14668 f.add && (f.add.call(e, c), c.handler.guid || (c.handler.guid = n.guid)), 14669 i ? p.splice(p.delegateCount++, 0, c) : p.push(c), 14670 (S.event.global[d] = !0)); 14671 }, 14672 remove: function (e, t, n, r, i) { 14673 var o, 14674 s, 14675 a, 14676 u, 14677 l, 14678 c, 14679 f, 14680 p, 14681 d, 14682 h, 14683 g, 14684 v = K.hasData(e) && K.get(e); 14685 if (v && (u = v.events)) { 14686 for (l = (t = (t || "").match(I) || [""]).length; l--; ) 14687 if (((d = g = (a = Se.exec(t[l]) || [])[1]), (h = (a[2] || "").split(".").sort()), d)) { 14688 for (f = S.event.special[d] || {}, p = u[(d = (r ? f.delegateType : f.bindType) || d)] || [], a = a[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"), s = o = p.length; o--; ) 14689 (c = p[o]), 14690 (!i && g !== c.origType) || 14691 (n && n.guid !== c.guid) || 14692 (a && !a.test(c.namespace)) || 14693 (r && r !== c.selector && ("**" !== r || !c.selector)) || 14694 (p.splice(o, 1), c.selector && p.delegateCount--, f.remove && f.remove.call(e, c)); 14695 s && !p.length && ((f.teardown && !1 !== f.teardown.call(e, h, v.handle)) || S.removeEvent(e, d, v.handle), delete u[d]); 14696 } else for (d in u) S.event.remove(e, d + t[l], n, r, !0); 14697 S.isEmptyObject(u) && K.remove(e, "handle events"); 14698 } 14699 }, 14700 dispatch: function (e) { 14701 var t, 14702 n, 14703 r, 14704 i, 14705 o, 14706 s, 14707 a = new Array(arguments.length), 14708 u = S.event.fix(e), 14709 l = (K.get(this, "events") || Object.create(null))[u.type] || [], 14710 c = S.event.special[u.type] || {}; 14711 for (a[0] = u, t = 1; t < arguments.length; t++) a[t] = arguments[t]; 14712 if (((u.delegateTarget = this), !c.preDispatch || !1 !== c.preDispatch.call(this, u))) { 14713 for (s = S.event.handlers.call(this, u, l), t = 0; (i = s[t++]) && !u.isPropagationStopped(); ) 14714 for (u.currentTarget = i.elem, n = 0; (o = i.handlers[n++]) && !u.isImmediatePropagationStopped(); ) 14715 (u.rnamespace && !1 !== o.namespace && !u.rnamespace.test(o.namespace)) || 14716 ((u.handleObj = o), 14717 (u.data = o.data), 14718 void 0 !== (r = ((S.event.special[o.origType] || {}).handle || o.handler).apply(i.elem, a)) && !1 === (u.result = r) && (u.preventDefault(), u.stopPropagation())); 14719 return c.postDispatch && c.postDispatch.call(this, u), u.result; 14720 } 14721 }, 14722 handlers: function (e, t) { 14723 var n, 14724 r, 14725 i, 14726 o, 14727 s, 14728 a = [], 14729 u = t.delegateCount, 14730 l = e.target; 14731 if (u && l.nodeType && !("click" === e.type && e.button >= 1)) 14732 for (; l !== this; l = l.parentNode || this) 14733 if (1 === l.nodeType && ("click" !== e.type || !0 !== l.disabled)) { 14734 for (o = [], s = {}, n = 0; n < u; n++) void 0 === s[(i = (r = t[n]).selector + " ")] && (s[i] = r.needsContext ? S(i, this).index(l) > -1 : S.find(i, this, null, [l]).length), s[i] && o.push(r); 14735 o.length && a.push({ elem: l, handlers: o }); 14736 } 14737 return (l = this), u < t.length && a.push({ elem: l, handlers: t.slice(u) }), a; 14738 }, 14739 addProp: function (e, t) { 14740 Object.defineProperty(S.Event.prototype, e, { 14741 enumerable: !0, 14742 configurable: !0, 14743 get: m(t) 14744 ? function () { 14745 if (this.originalEvent) return t(this.originalEvent); 14746 } 14747 : function () { 14748 if (this.originalEvent) return this.originalEvent[e]; 14749 }, 14750 set: function (t) { 14751 Object.defineProperty(this, e, { enumerable: !0, configurable: !0, writable: !0, value: t }); 14752 }, 14753 }); 14754 }, 14755 fix: function (e) { 14756 return e[S.expando] ? e : new S.Event(e); 14757 }, 14758 special: { 14759 load: { noBubble: !0 },
14760 click: { 14761 setup: function (e) { 14762 var t = this || e; 14763 return ve.test(t.type) && t.click && j(t, "input") && De(t, "click", Ee), !1; 14764 }, 14765 trigger: function (e) { 14766 var t = this || e; 14767 return ve.test(t.type) && t.click && j(t, "input") && De(t, "click"), !0; 14768 }, 14769 _default: function (e) { 14770 var t = e.target; 14771 return (ve.test(t.type) && t.click && j(t, "input") && K.get(t, "click")) || j(t, "a"); 14772 }, 14773 }, 14774 beforeunload: { 14775 postDispatch: function (e) { 14776 void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result); 14777 }, 14778 }, 14779 }, 14780 }), 14781 (S.removeEvent = function (e, t, n) { 14782 e.removeEventListener && e.removeEventListener(t, n); 14783 }), 14784 (S.Event = function (e, t) { 14785 if (!(this instanceof S.Event)) return new S.Event(e, t); 14786 e && e.type 14787 ? ((this.originalEvent = e), 14788 (this.type = e.type), 14789 (this.isDefaultPrevented = e.defaultPrevented || (void 0 === e.defaultPrevented && !1 === e.returnValue) ? Ee : Ae), 14790 (this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target), 14791 (this.currentTarget = e.currentTarget), 14792 (this.relatedTarget = e.relatedTarget)) 14793 : (this.type = e), 14794 t && S.extend(this, t), 14795 (this.timeStamp = (e && e.timeStamp) || Date.now()), 14796 (this[S.expando] = !0); 14797 }), 14798 (S.Event.prototype = { 14799 constructor: S.Event, 14800 isDefaultPrevented: Ae, 14801 isPropagationStopped: Ae, 14802 isImmediatePropagationStopped: Ae, 14803 isSimulated: !1, 14804 preventDefault: function () { 14805 var e = this.originalEvent; 14806 (this.isDefaultPrevented = Ee), e && !this.isSimulated && e.preventDefault(); 14807 }, 14808 stopPropagation: function () { 14809 var e = this.originalEvent; 14810 (this.isPropagationStopped = Ee), e && !this.isSimulated && e.stopPropagation(); 14811 }, 14812 stopImmediatePropagation: function () { 14813 var e = this.originalEvent; 14814 (this.isImmediatePropagationStopped = Ee), e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation(); 14815 }, 14816 }), 14817 S.each( 14818 { 14819 altKey: !0, 14820 bubbles: !0, 14821 cancelable: !0, 14822 changedTouches: !0, 14823 ctrlKey: !0, 14824 detail: !0, 14825 eventPhase: !0, 14826 metaKey: !0, 14827 pageX: !0, 14828 pageY: !0, 14829 shiftKey: !0, 14830 view: !0, 14831 char: !0, 14832 code: !0,
14833 charCode: !0, 14834 key: !0, 14835 keyCode: !0, 14836 button: !0, 14837 buttons: !0, 14838 clientX: !0, 14839 clientY: !0, 14840 offsetX: !0, 14841 offsetY: !0, 14842 pointerId: !0, 14843 pointerType: !0, 14844 screenX: !0, 14845 screenY: !0, 14846 targetTouches: !0, 14847 toElement: !0, 14848 touches: !0, 14849 which: !0, 14850 }, 14851 S.event.addProp 14852 ), 14853 S.each({ focus: "focusin", blur: "focusout" }, function (e, t) { 14854 S.event.special[e] = { 14855 setup: function () { 14856 return De(this, e, ke), !1; 14857 }, 14858 trigger: function () { 14859 return De(this, e), !0; 14860 }, 14861 _default: function (t) { 14862 return K.get(t.target, e); 14863 }, 14864 delegateType: t, 14865 }; 14866 }), 14867 S.each({ mouseenter: "mouseover", mouseleave: "mouseout", pointerenter: "pointerover", pointerleave: "pointerout" }, function (e, t) { 14868 S.event.special[e] = { 14869 delegateType: t, 14870 bindType: t, 14871 handle: function (e) { 14872 var n, 14873 r = this, 14874 i = e.relatedTarget, 14875 o = e.handleObj; 14876 return (i && (i === r || S.contains(r, i))) || ((e.type = o.origType), (n = o.handler.apply(this, arguments)), (e.type = t)), n; 14877 }, 14878 }; 14879 }), 14880 S.fn.extend({ 14881 on: function (e, t, n, r) { 14882 return Ne(this, e, t, n, r); 14883 }, 14884 one: function (e, t, n, r) { 14885 return Ne(this, e, t, n, r, 1); 14886 }, 14887 off: function (e, t, n) { 14888 var r, i; 14889 if (e && e.preventDefault && e.handleObj) return (r = e.handleObj), S(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler), this; 14890 if ("object" == typeof e) { 14891 for (i in e) this.off(i, t, e[i]); 14892 return this; 14893 } 14894 return ( 14895 (!1 !== t && "function" != typeof t) || ((n = t), (t = void 0)), 14896 !1 === n && (n = Ae), 14897 this.each(function () { 14898 S.event.remove(this, e, n, t); 14899 }) 14900 ); 14901 }, 14902 }); 14903 var je = /<script|<style|<link/i, 14904 qe = /checked\s*(?:[^=]|=\s*.checked.)/i, 14905 Le = /^\s*<!\[CDATA\[|\]\]>\s*$/g; 14906 function He(e, t) { 14907 return (j(e, "table") && j(11 !== t.nodeType ? t : t.firstChild, "tr") && S(e).children("tbody")[0]) || e; 14908 } 14909 function Pe(e) { 14910 return (e.type = (null !== e.getAttribute("type")) + "/" + e.type), e; 14911 } 14912 function Oe(e) { 14913 return "true/" === (e.type || "").slice(0, 5) ? (e.type = e.type.slice(5)) : e.removeAttribute("type"), e; 14914 } 14915 function Me(e, t) { 14916 var n, r, i, o, s, a; 14917 if (1 === t.nodeType) { 14918 if (K.hasData(e) && (a = K.get(e).events)) for (i in (K.remove(t, "handle events"), a)) for (n = 0, r = a[i].length; n < r; n++) S.event.add(t, i, a[i][n]); 14919 Z.hasData(e) && ((o = Z.access(e)), (s = S.extend({}, o)), Z.set(t, s)); 14920 } 14921 } 14922 function Re(e, t) { 14923 var n = t.nodeName.toLowerCase(); 14924 "input" === n && ve.test(e.type) ? (t.checked = e.checked) : ("input" !== n && "textarea" !== n) || (t.defaultValue = e.defaultValue); 14925 } 14926 function Ie(e, t, n, r) { 14927 t = u(t); 14928 var i, 14929 o, 14930 s, 14931 a, 14932 l, 14933 c, 14934 f = 0, 14935 p = e.length, 14936 d = p - 1, 14937 h = t[0], 14938 g = m(h); 14939 if (g || (p > 1 && "string" == typeof h && !v.checkClone && qe.test(h))) 14940 return e.each(function (i) { 14941 var o = e.eq(i); 14942 g && (t[0] = h.call(this, i, o.html())), Ie(o, t, n, r); 14943 }); 14944 if (p && ((o = (i = Ce(t, e[0].ownerDocument, !1, e, r)).firstChild), 1 === i.childNodes.length && (i = o), o || r)) { 14945 for (a = (s = S.map(be(i, "script"), Pe)).length; f < p; f++) (l = i), f !== d && ((l = S.clone(l, !0, !0)), a && S.merge(s, be(l, "script"))), n.call(e[f], l, f); 14946 if (a) 14947 for (c = s[s.length - 1].ownerDocument, S.map(s, Oe), f = 0; f < a; f++) 14948 (l = s[f]), 14949 ye.test(l.type || "") && 14950 !K.access(l, "globalEval") && 14951 S.contains(c, l) && 14952 (l.src && "module" !== (l.type || "").toLowerCase() ? S._evalUrl && !l.noModule && S._evalUrl(l.src, { nonce: l.nonce || l.getAttribute("nonce") }, c) : w(l.textContent.replace(Le, ""), l, c)); 14953 } 14954 return e; 14955 } 14956 function Be(e, t, n) { 14957 for (var r, i = t ? S.filter(t, e) : e, o = 0; null != (r = i[o]); o++) n || 1 !== r.nodeType || S.cleanData(be(r)), r.parentNode && (n && ae(r) && we(be(r, "script")), r.parentNode.removeChild(r)); 14958 return e; 14959 } 14960 S.extend({ 14961 htmlPrefilter: function (e) { 14962 return e; 14963 }, 14964 clone: function (e, t, n) { 14965 var r, 14966 i, 14967 o, 14968 s, 14969 a = e.cloneNode(!0), 14970 u = ae(e);
14971 if (!(v.noCloneChecked || (1 !== e.nodeType && 11 !== e.nodeType) || S.isXMLDoc(e))) for (s = be(a), r = 0, i = (o = be(e)).length; r < i; r++) Re(o[r], s[r]); 14972 if (t) 14973 if (n) for (o = o || be(e), s = s || be(a), r = 0, i = o.length; r < i; r++) Me(o[r], s[r]); 14974 else Me(e, a); 14975 return (s = be(a, "script")).length > 0 && we(s, !u && be(e, "script")), a; 14976 }, 14977 cleanData: function (e) { 14978 for (var t, n, r, i = S.event.special, o = 0; void 0 !== (n = e[o]); o++) 14979 if (Q(n)) { 14980 if ((t = n[K.expando])) { 14981 if (t.events) for (r in t.events) i[r] ? S.event.remove(n, r) : S.removeEvent(n, r, t.handle); 14982 n[K.expando] = void 0; 14983 } 14984 n[Z.expando] && (n[Z.expando] = void 0); 14985 } 14986 }, 14987 }), 14988 S.fn.extend({ 14989 detach: function (e) { 14990 return Be(this, e, !0); 14991 }, 14992 remove: function (e) { 14993 return Be(this, e); 14994 }, 14995 text: function (e) { 14996 return z( 14997 this, 14998 function (e) { 14999 return void 0 === e 15000 ? S.text(this) 15001 : this.empty().each(function () { 15002 (1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType) || (this.textContent = e); 15003 }); 15004 }, 15005 null, 15006 e, 15007 arguments.length 15008 ); 15009 }, 15010 append: function () { 15011 return Ie(this, arguments, function (e) { 15012 (1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType) || He(this, e).appendChild(e); 15013 }); 15014 }, 15015 prepend: function () { 15016 return Ie(this, arguments, function (e) { 15017 if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { 15018 var t = He(this, e); 15019 t.insertBefore(e, t.firstChild); 15020 } 15021 }); 15022 }, 15023 before: function () { 15024 return Ie(this, arguments, function (e) { 15025 this.parentNode && this.parentNode.insertBefore(e, this); 15026 }); 15027 }, 15028 after: function () { 15029 return Ie(this, arguments, function (e) { 15030 this.parentNode && this.parentNode.insertBefore(e, this.nextSibling); 15031 }); 15032 }, 15033 empty: function () { 15034 for (var e, t = 0; null != (e = this[t]); t++) 1 === e.nodeType && (S.cleanData(be(e, !1)), (e.textContent = "")); 15035 return this; 15036 }, 15037 clone: function (e, t) { 15038 return ( 15039 (e = null != e && e), 15040 (t = null == t ? e : t), 15041 this.map(function () { 15042 return S.clone(this, e, t); 15043 }) 15044 ); 15045 }, 15046 html: function (e) { 15047 return z( 15048 this, 15049 function (e) { 15050 var t = this[0] || {}, 15051 n = 0, 15052 r = this.length; 15053 if (void 0 === e && 1 === t.nodeType) return t.innerHTML; 15054 if ("string" == typeof e && !je.test(e) && !xe[(me.exec(e) || ["", ""])[1].toLowerCase()]) { 15055 e = S.htmlPrefilter(e); 15056 try { 15057 for (; n < r; n++) 1 === (t = this[n] || {}).nodeType && (S.cleanData(be(t, !1)), (t.innerHTML = e)); 15058 t = 0; 15059 } catch (e) {} 15060 } 15061 t && this.empty().append(e); 15062 }, 15063 null, 15064 e, 15065 arguments.length 15066 ); 15067 }, 15068 replaceWith: function () { 15069 var e = []; 15070 return Ie( 15071 this, 15072 arguments, 15073 function (t) { 15074 var n = this.parentNode; 15075 S.inArray(this, e) < 0 && (S.cleanData(be(this)), n && n.replaceChild(t, this)); 15076 }, 15077 e 15078 ); 15079 }, 15080 }), 15081 S.each({ appendTo: "append", prependTo: "prepe
15081nd", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith" }, function (e, t) { 15082 S.fn[e] = function (e) { 15083 for (var n, r = [], i = S(e), o = i.length - 1, s = 0; s <= o; s++) (n = s === o ? this : this.clone(!0)), S(i[s])[t](n), l.apply(r, n.get()); 15084 return this.pushStack(r); 15085 }; 15086 }); 15087 var We = new RegExp("^(" + re + ")(?!px)[a-z%]+$", "i"), 15088 Fe = /^--/, 15089 $e = function (e) { 15090 var t = e.ownerDocument.defaultView; 15091 return (t && t.opener) || (t = r), t.getComputedStyle(e); 15092 }, 15093 _e = function (e, t, n) { 15094 var r, 15095 i, 15096 o = {}; 15097 for (i in t) (o[i] = e.style[i]), (e.style[i] = t[i]); 15098 for (i in ((r = n.call(e)), t)) e.style[i] = o[i]; 15099 return r; 15100 }, 15101 Ve = new RegExp(oe.join("|"), "i"), 15102 ze = new RegExp("^[\\x20\\t\\r\\n\\f]+|((?:^|[^\\\\])(?:\\\\.)*)[\\x20\\t\\r\\n\\f]+$", "g"); 15103 function Ue(e, t, n) { 15104 var r, 15105 i, 15106 o, 15107 s, 15108 a = Fe.test(t), 15109 u = e.style; 15110 return ( 15111 (n = n || $e(e)) && 15112 ((s = n.getPropertyValue(t) || n[t]), 15113 a && (s = s.replace(ze, "$1")), 15114 "" !== s || ae(e) || (s = S.style(e, t)), 15115 !v.pixelBoxStyles() && 15116 We.test(s) && 15117 Ve.test(t) && 15118 ((r = u.width), (i = u.minWidth), (o = u.maxWidth), (u.minWidth = u.maxWidth = u.width = s), (s = n.width), (u.width = r), (u.minWidth = i), (u.maxWidth = o))), 15119 void 0 !== s ? s + "" : s 15120 ); 15121 } 15122 function Xe(e, t) { 15123 return { 15124 get: function () { 15125 if (!e()) return (this.get = t).apply(this, arguments); 15126 delete this.get; 15127 }, 15128 }; 15129 } 15130 !(function () { 15131 function e() { 15132 if (c) { 15133 (l.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0"), 15134 (c.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%"), 15135 se.appendChild(l).appendChild(c); 15136 var e = r.getComputedStyle(c); 15137 (n = "1%" !== e.top), 15138 (u = 12 === t(e.marginLeft)), 15139 (c.style.right = "60%"), 15140 (s = 36 === t(e.right)), 15141 (i = 36 === t(e.width)), 15142 (c.style.position = "absolute"), 15143 (o = 12 === t(c.offsetWidth / 3)), 15144 se.removeChild(l), 15145 (c = null); 15146 } 15147 } 15148 function t(e) { 15149 return Math.round(parseFloat(e)); 15150 } 15151 var n, 15152 i, 15153 o, 15154 s, 15155 a, 15156 u, 15157 l = x.createElement("div"), 15158 c = x.createElement("div"); 15159 c.style && 15160 ((c.style.backgroundClip = "content-box"), 15161 (c.cloneNode(!0).style.backgroundClip = ""), 15162 (v.clearCloneStyle = "content-box" === c.style.backgroundClip), 15163 S.extend(v, { 15164 boxSizingReliable: function () { 15165 return e(), i; 15166 }, 15167 pixelBoxStyles: function () { 15168 return e(), s; 15169 }, 15170 pixelPosition: function () { 15171 return e(), n; 15172 }, 15173 reliableMarginLeft: function () { 15174 return e(), u; 15175 }, 15176 scrollboxSize: function () { 15177 return e(), o; 15178 }, 15179 reliableTrDimensions: function () { 15180 var e, t, n, i; 15181 return ( 15182 null == a && 15183 ((e = x.createElement("table")), 15184 (t = x.createElement("tr")), 15185 (n = x.createElement("div")), 15186 (e.style.cssText = "position:absolute;
15186left:-11111px;border-collapse:separate"), 15187 (t.style.cssText = "border:1px solid"), 15188 (t.style.height = "1px"), 15189 (n.style.height = "9px"), 15190 (n.style.display = "block"), 15191 se.appendChild(e).appendChild(t).appendChild(n), 15192 (i = r.getComputedStyle(t)), 15193 (a = parseInt(i.height, 10) + parseInt(i.borderTopWidth, 10) + parseInt(i.borderBottomWidth, 10) === t.offsetHeight), 15194 se.removeChild(e)), 15195 a 15196 ); 15197 }, 15198 })); 15199 })(); 15200 var Ge = ["Webkit", "Moz", "ms"], 15201 Ye = x.createElement("div").style, 15202 Qe = {}; 15203 function Je(e) { 15204 var t = S.cssProps[e] || Qe[e]; 15205 return ( 15206 t || 15207 (e in Ye 15208 ? e 15209 : (Qe[e] = 15210 (function (e) { 15211 for (var t = e[0].toUpperCase() + e.slice(1), n = Ge.length; n--; ) if ((e = Ge[n] + t) in Ye) return e; 15212 })(e) || e)) 15213 ); 15214 } 15215 var Ke = /^(none|table(?!-c[ea]).+)/, 15216 Ze = { position: "absolute", visibility: "hidden", display: "block" }, 15217 et = { letterSpacing: "0", fontWeight: "400" }; 15218 function tt(e, t, n) { 15219 var r = ie.exec(t); 15220 return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || "px") : t; 15221 } 15222 function nt(e, t, n, r, i, o) { 15223 var s = "width" === t ? 1 : 0, 15224 a = 0, 15225 u = 0; 15226 if (n === (r ? "border" : "content")) return 0; 15227 for (; s < 4; s += 2) 15228 "margin" === n && (u += S.css(e, n + oe[s], !0, i)), 15229 r 15230 ? ("content" === n && (u -= S.css(e, "padding" + oe[s], !0, i)), "margin" !== n && (u -= S.css(e, "border" + oe[s] + "Width", !0, i))) 15231 : ((u += S.css(e, "padding" + oe[s], !0, i)), "padding" !== n ? (u += S.css(e, "border" + oe[s] + "Width", !0, i)) : (a += S.css(e, "border" + oe[s] + "Width", !0, i))); 15232 return !r && o >= 0 && (u += Math.max(0, Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - o - u - a - 0.5)) || 0), u; 15233 } 15234 function rt(e, t, n) { 15235 var r = $e(e), 15236 i = (!v.boxSizingReliable() || n) && "border-box" === S.css(e, "boxSizing", !1, r), 15237 o = i, 15238 s = Ue(e, t, r), 15239 a = "offset" + t[0].toUpperCase() + t.slice(1); 15240 if (We.test(s)) { 15241 if (!n) return s; 15242 s = "auto"; 15243 } 15244 return ( 15245 ((!v.boxSizingReliable() && i) || (!v.reliableTrDimensions() && j(e, "tr")) || "auto" === s || (!parseFloat(s) && "inline" === S.css(e, "display", !1, r))) && 15246 e.getClientRects().length && 15247 ((i = "border-box" === S.css(e, "boxSizing", !1, r)), (o = a in e) && (s = e[a])), 15248 (s = parseFloat(s) || 0) + nt(e, t, n || (i ? "border" : "content"), o, r, s) + "px" 15249 ); 15250 } 15251 function it(e, t, n, r, i) { 15252 return new it.prototype.init(e, t, n, r, i); 15253 } 15254 S.extend({ 15255 cssHooks: { 15256 opacity: { 15257 get: function (e, t) { 15258 if (t) { 15259 var n = Ue(e, "opacity"); 15260 return "" === n ? "1" : n; 15261 } 15262 }, 15263 }, 15264 }, 15265 cssNumber: { 15266 animationIterationCount: !0, 15267 columnCount: !0, 15268 fillOpacity: !0, 15269 flexGrow: !0, 15270 flexShrink: !0, 15271 fontWeight: !0, 15272 gridArea: !0, 15273 gridColumn: !0, 15274 gridColumnEnd: !0, 15275 gridColumnStart: !0, 15276 gridRow: !0, 15277 gridRowEnd: !0, 15278 gridRowStart: !0, 15279 lineHeight: !0, 15280 opacity: !0, 15281 order: !0, 15282 orphans: !0, 15283 widows: !0, 15284 zIndex: !0, 15285 zoom: !0, 15286 }, 15287 cssProps: {}, 15288 style: function (e, t, n, r) { 15289 if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) { 15290 var i, 15291 o, 15292 s, 15293 a = Y(t), 15294 u = Fe.test(t), 15295 l = e.style; 15296 if ((u || (t = Je(a)), (s = S.cssHooks[t] || S.cssHooks[a]), void 0 === n)) return s && "get" in s && void 0 !== (i = s.get(e, !1, r)) ? i : l[t]; 15297 "string" === (o = typeof n) && (i = ie.exec(n)) && i[1] && ((n = ce(e, t, i)), (o = "number")), 15298 null != n && 15299 n == n && 15300 ("number" !== o || u || (n += (i && i[3]) || (S.cssNumber[a] ? "" : "px")), 15301 v.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (l[t] = "inherit"), 15302 (s && "set" in s && void 0 === (n = s.set(e, n, r))) || (u ? l.setProperty(t, n) : (l[t] = n))); 15303 } 15304 }, 15305 css: function (e, t, n, r) { 15306 var i, 15307 o, 15308 s, 15309 a = Y(t); 15310 return ( 15311 Fe.test(t) || (t = Je(a)), 15312 (s = S.cssHooks[t] || S.cssHooks[a]) && "get" in s && (i = s.get(e, !0, n)), 15313 void 0 === i && (i = Ue(e, t, r)), 15314 "normal" === i && t in et && (i = et[t]), 15315 "" === n || n ? ((o = parseFloat(i)), !0 === n || isFinite(o) ? o || 0 : i) : i 15316 ); 15317 }, 15318 }), 15319 S.each(["height", "width"], function (e, t) { 15320 S.cssHooks[t] = { 15321 get: function (e, n, r) { 15322 if (n) 15323 return !Ke.test(S.css(e, "display")) || (e.getClientRects().length && e.getBoundingClientRect().width) 15324 ? rt(e, t, r) 15325 : _e(e, Ze, function () { 15326 return rt(e, t, r); 15327 }); 15328 }, 15329 set: function (e, n, r) { 15330 var i, 15331 o = $e(e), 15332 s = !v.scrollboxSize() && "absolute" === o.position, 15333 a = (s || r) && "border-box" === S.css(e, "boxSizing", !1, o), 15334 u = r ? nt(e, t, r, a, o) : 0; 15335 return ( 15336 a && s && (u -= Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - parseFloat(o[t]) - nt(e, t, "border", !1, o) - 0.5)), 15337 u && (i = ie.exec(n)) && "px" !== (i[3] || "px") && ((e.style[t] = n), (n = S.css(e, t))), 15338 tt(0, n, u) 15339 ); 15340 }, 15341 }; 15342 }), 15343 (S.cssHooks.marginLeft = Xe(v.reliableMarginLeft, function (e, t) { 15344 if (t) 15345 return ( 15346 (parseFloat(Ue(e, "marginLeft")) || 15347 e.getBoundingClientRect().left - 15348 _e(e, { marginLeft: 0 }, function () { 15349 return e.getBoundingClientRect().left; 15350 })) + "px" 15351 ); 15352 })), 15353 S.each({ margin: "", padding: "", border: "Width" }, function (e, t) { 15354 (S.cssHooks[e + t] = { 15355 expand: function (n) { 15356 for (var r = 0, i = {}, o = "string" == typeof n ? n.split(" ") : [n]; r < 4; r++) i[e + oe[r] + t] = o[r] || o[r - 2] || o[0]; 15357 return i; 15358 }, 15359 }), 15360 "margin" !== e && (S.cssHooks[e + t].set = tt); 15361 }), 15362 S.fn.extend({ 15363 css: function (e, t) { 15364 return z( 15365 this, 15366 function (e, t, n) { 15367 var r, 15368 i, 15369 o = {}, 15370 s = 0; 15371 if (Array.isArray(t)) { 15372 for (r = $e(e), i = t.length; s < i; s++) o[t[s]] = S.css(e, t[s], !1, r); 15373 return o; 15374 } 15375 return void 0 !== n ? S.style(e, t, n) : S.css(e, t); 15376 }, 15377 e, 15378 t, 15379 arguments.length > 1 15380 ); 15381 }, 15382 }), 15383 (S.Tween = it), 15384 (it.prototype = { 15385 constructor: it, 15386 init: function (e, t, n, r, i, o) { 15387 (this.elem = e), (this.prop = n), (this.easing = i || S.easing._default), (this.options = t), (this.start = this.now = this.cur()), (this.end = r), (this.unit = o || (S.cssNumber[n] ? "" : "px")); 15388 }, 15389 cur: function () { 15390 var e = it.propHooks[this.prop]; 15391 return e && e.get ? e.get(this) : it.propHooks._default.get(this); 15392 }, 15393 run: function (e) { 15394 var t, 15395 n = it.propHooks[this.prop]; 15396 return ( 15397 this.options.duration ? (this.pos = t = S.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration)) : (this.pos = t = e),
15398 (this.now = (this.end - this.start) * t + this.start), 15399 this.options.step && this.options.step.call(this.elem, this.now, this), 15400 n && n.set ? n.set(this) : it.propHooks._default.set(this), 15401 this 15402 ); 15403 }, 15404 }), 15405 (it.prototype.init.prototype = it.prototype), 15406 (it.propHooks = { 15407 _default: { 15408 get: function (e) { 15409 var t; 15410 return 1 !== e.elem.nodeType || (null != e.elem[e.prop] && null == e.elem.style[e.prop]) ? e.elem[e.prop] : (t = S.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0; 15411 }, 15412 set: function (e) { 15413 S.fx.step[e.prop] ? S.fx.step[e.prop](e) : 1 !== e.elem.nodeType || (!S.cssHooks[e.prop] && null == e.elem.style[Je(e.prop)]) ? (e.elem[e.prop] = e.now) : S.style(e.elem, e.prop, e.now + e.unit); 15414 }, 15415 }, 15416 }), 15417 (it.propHooks.scrollTop = it.propHooks.scrollLeft = { 15418 set: function (e) { 15419 e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now); 15420 }, 15421 }), 15422 (S.easing = { 15423 linear: function (e) { 15424 return e; 15425 }, 15426 swing: function (e) { 15427 return 0.5 - Math.cos(e * Math.PI) / 2; 15428 }, 15429 _default: "swing", 15430 }), 15431 (S.fx = it.prototype.init), 15432 (S.fx.step = {}); 15433 var ot, 15434 st, 15435 at = /^(?:toggle|show|hide)$/, 15436 ut = /queueHooks$/; 15437 function lt() { 15438 st && (!1 === x.hidden && r.requestAnimationFrame ? r.requestAnimationFrame(lt) : r.setTimeout(lt, S.fx.interval), S.fx.tick()); 15439 } 15440 function ct() { 15441 return ( 15442 r.setTimeout(function () { 15443 ot = void 0; 15444 }), 15445 (ot = Date.now()) 15446 ); 15447 } 15448 function ft(e, t) { 15449 var n, 15450 r = 0, 15451 i = { height: e }; 15452 for (t = t ? 1 : 0; r < 4; r += 2 - t) i["margin" + (n = oe[r])] = i["padding" + n] = e; 15453 return t && (i.opacity = i.width = e), i; 15454 } 15455 function pt(e, t, n) { 15456 for (var r, i = (dt.tweeners[t] || []).concat(dt.tweeners["*"]), o = 0, s = i.length; o < s; o++) if ((r = i[o].call(n, t, e))) return r; 15457 } 15458 function dt(e, t, n) { 15459 var r, 15460 i, 15461 o = 0, 15462 s = dt.prefilters.length, 15463 a = S.Deferred().always(function () { 15464 delete u.elem; 15465 }), 15466 u = function () { 15467 if (i) return !1; 15468 for (var t = ot || ct(), n = Math.max(0, l.startTime + l.duration - t), r = 1 - (n / l.duration || 0), o = 0, s = l.tweens.length; o < s; o++) l.tweens[o].run(r); 15469 return a.notifyWith(e, [l, r, n]), r < 1 && s ? n : (s || a.notifyWith(e, [l, 1, 0]), a.resolveWith(e, [l]), !1); 15470 }, 15471 l = a.promise({ 15472 elem: e, 15473 props: S.extend({}, t), 15474 opts: S.extend(!0, { specialEasing: {}, easing: S.easing._default }, n), 15475 originalProperties: t, 15476 originalOptions: n, 15477 startTime: ot || ct(), 15478 duration: n.duration, 15479 tweens: [], 15480 createTween: function (t, n) { 15481 var r = S.Tween(e, l.opts, t, n, l.opts.specialEasing[t] || l.opts.easing); 15482 return l.tweens.push(r), r; 15483 }, 15484 stop: function (t) { 15485 var n = 0, 15486 r = t ? l.tweens.length : 0; 15487 if (i) return this; 15488 for (i = !0; n < r; n++) l.tweens[n].run(1); 15489 return t ? (a.notifyWith(e, [l, 1, 0]), a.resolveWith(e, [l, t])) : a.rejectWith(e, [l, t]), this; 15490 }, 15491 }), 15492 c = l.props; 15493 for ( 15494 !(function (e, t) { 15495 var n, r, i, o, s; 15496 for (n in e) 15497 if (((i = t[(r = Y(n))]), (o = e[n]), Array.isArray(o) && ((i = o[1]), (o = e[n] = o[0])), n !== r && ((e[r] = o), delete e[n]), (s = S.cssHooks[r]) && ("exp
15497and" in s))) 15498 for (n in ((o = s.expand(o)), delete e[r], o)) (n in e) || ((e[n] = o[n]), (t[n] = i)); 15499 else t[r] = i; 15500 })(c, l.opts.specialEasing); 15501 o < s; 15502 o++ 15503 ) 15504 if ((r = dt.prefilters[o].call(l, e, c, l.opts))) return m(r.stop) && (S._queueHooks(l.elem, l.opts.queue).stop = r.stop.bind(r)), r; 15505 return ( 15506 S.map(c, pt, l), 15507 m(l.opts.start) && l.opts.start.call(e, l), 15508 l.progress(l.opts.progress).done(l.opts.done, l.opts.complete).fail(l.opts.fail).always(l.opts.always), 15509 S.fx.timer(S.extend(u, { elem: e, anim: l, queue: l.opts.queue })), 15510 l 15511 ); 15512 } 15513 (S.Animation = S.extend(dt, { 15514 tweeners: { 15515 "*": [ 15516 function (e, t) { 15517 var n = this.createTween(e, t); 15518 return ce(n.elem, e, ie.exec(t), n), n; 15519 }, 15520 ], 15521 }, 15522 tweener: function (e, t) { 15523 m(e) ? ((t = e), (e = ["*"])) : (e = e.match(I)); 15524 for (var n, r = 0, i = e.length; r < i; r++) (n = e[r]), (dt.tweeners[n] = dt.tweeners[n] || []), dt.tweeners[n].unshift(t); 15525 }, 15526 prefilters: [ 15527 function (e, t, n) { 15528 var r, 15529 i, 15530 o, 15531 s, 15532 a, 15533 u, 15534 l, 15535 c, 15536 f = "width" in t || "height" in t, 15537 p = this, 15538 d = {}, 15539 h = e.style, 15540 g = e.nodeType && le(e), 15541 v = K.get(e, "fxshow"); 15542 for (r in (n.queue || 15543 (null == (s = S._queueHooks(e, "fx")).unqueued && 15544 ((s.unqueued = 0), 15545 (a = s.empty.fire), 15546 (s.empty.fire = function () { 15547 s.unqueued || a(); 15548 })), 15549 s.unqueued++, 15550 p.always(function () { 15551 p.always(function () { 15552 s.unqueued--, S.queue(e, "fx").length || s.empty.fire(); 15553 }); 15554 })), 15555 t)) 15556 if (((i = t[r]), at.test(i))) { 15557 if ((delete t[r], (o = o || "toggle" === i), i === (g ? "hide" : "show"))) { 15558 if ("show" !== i || !v || void 0 === v[r]) continue; 15559 g = !0; 15560 } 15561 d[r] = (v && v[r]) || S.style(e, r); 15562 } 15563 if ((u = !S.isEmptyObject(t)) || !S.isEmptyObject(d)) 15564 for (r in (f && 15565 1 === e.nodeType && 15566 ((n.overflow = [h.overflow, h.overflowX, h.overflowY]), 15567 null == (l = v && v.display) && (l = K.get(e, "display")), 15568 "none" === (c = S.css(e, "display")) && (l ? (c = l) : (de([e], !0), (l = e.style.display || l), (c = S.css(e, "display")), de([e]))), 15569 ("inline" === c || ("inline-block" === c && null != l)) && 15570 "none" === S.css(e, "float") && 15571 (u || 15572 (p.done(function () { 15573 h.display = l; 15574 }), 15575 null == l && ((c = h.display), (l = "none" === c ? "" : c))), 15576 (h.display = "inline-block"))), 15577 n.overflow && 15578 ((h.overflow = "hidden"), 15579 p.always(function () { 15580 (h.overflow = n.overflow[0]), (h.overflowX = n.overflow[1]), (h.overflowY = n.overflow[2]); 15581 })), 15582 (u = !1), 15583 d)) 15584 u || 15585 (v ? "hidden" in v && (g = v.hidden) : (v = K.access(e, "fxshow", { display: l })), 15586 o && (v.hidden = !g), 15587 g && de([e], !0), 15588 p.done(function () { 15589 for (r in (g || de([e]), K.remove(e, "fxshow"), d)) S.style(e, r, d[r]); 15590 })), 15591 (u = pt(g ? v[r] : 0, r, p)), 15592 r in v || ((v[r] = u.start), g && ((u.end = u.start), (u.start = 0))); 15593 }, 15594 ], 15595 prefilter: function (e, t) { 15596 t ? dt.prefilters.unshift(e) : dt.prefilters.push(e); 15597 }, 15598 })), 15599 (S.speed = function (e, t, n) { 15600 var r = e && "object" == typeof e ? S.extend({}, e) : { complete: n || (!n && t) || (m(e) && e), duration: e, easing: (n && t) || (t && !m(t) && t) }; 15601 return ( 15602 S.fx.off ? (r.duration = 0) : "number" != typeof r.duration && (r.duration in S.fx.speeds ? (r.duration = S.fx.speeds[r.duration]) : (r.duration = S.fx.speeds._default)), 15603 (null != r.queue && !0 !== r.queue) || (r.queue = "fx"), 15604 (r.old = r.complete), 15605 (r.complete = function () { 15606 m(r.old) && r.old.call(this), r.queue && S.dequeue(this, r.queue); 15607 }), 15608 r 15609 ); 15610 }), 15611 S.fn.extend({ 15612 fadeTo: function (e, t, n, r) { 15613 return this.filter(le).css("opacity", 0).show().end().animate({ opacity: t }, e, n, r); 15614 }, 15615 animate: function (e, t, n, r) { 15616 var i = S.isEmptyObject(e), 15617 o = S.speed(t, n, r), 15618 s = function () { 15619 var t = dt(this, S.extend({}, e), o); 15620 (i || K.get(this, "finish")) && t.stop(!0); 15621 }; 15622 return (s.finish = s), i || !1 === o.queue ? this.each(s) : this.queue(o.queue, s); 15623 }, 15624 stop: function (e, t, n) { 15625 var r = function (e) { 15626 var t = e.stop; 15627 delete e.stop, t(n); 15628 }; 15629 return ( 15630 "string" != typeof e && ((n = t), (t = e), (e = void 0)), 15631 t && this.queue(e || "fx", []), 15632 this.each(function () { 15633 var t = !0,
15634 i = null != e && e + "queueHooks", 15635 o = S.timers, 15636 s = K.get(this); 15637 if (i) s[i] && s[i].stop && r(s[i]); 15638 else for (i in s) s[i] && s[i].stop && ut.test(i) && r(s[i]); 15639 for (i = o.length; i--; ) o[i].elem !== this || (null != e && o[i].queue !== e) || (o[i].anim.stop(n), (t = !1), o.splice(i, 1)); 15640 (!t && n) || S.dequeue(this, e); 15641 }) 15642 ); 15643 }, 15644 finish: function (e) { 15645 return ( 15646 !1 !== e && (e = e || "fx"), 15647 this.each(function () { 15648 var t, 15649 n = K.get(this), 15650 r = n[e + "queue"], 15651 i = n[e + "queueHooks"], 15652 o = S.timers, 15653 s = r ? r.length : 0; 15654 for (n.finish = !0, S.queue(this, e, []), i && i.stop && i.stop.call(this, !0), t = o.length; t--; ) o[t].elem === this && o[t].queue === e && (o[t].anim.stop(!0), o.splice(t, 1)); 15655 for (t = 0; t < s; t++) r[t] && r[t].finish && r[t].finish.call(this); 15656 delete n.finish; 15657 }) 15658 ); 15659 }, 15660 }), 15661 S.each(["toggle", "show", "hide"], function (e, t) { 15662 var n = S.fn[t]; 15663 S.fn[t] = function (e, r, i) { 15664 return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(ft(t,
15664!0), e, r, i); 15665 }; 15666 }), 15667 S.each({ slideDown: ft("show"), slideUp: ft("hide"), slideToggle: ft("toggle"), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide" }, fadeToggle: { opacity: "toggle" } }, function (e, t) { 15668 S.fn[e] = function (e, n, r) { 15669 return this.animate(t, e, n, r); 15670 }; 15671 }), 15672 (S.timers = []), 15673 (S.fx.tick = function () { 15674 var e, 15675 t = 0, 15676 n = S.timers; 15677 for (ot = Date.now(); t < n.length; t++) (e = n[t])() || n[t] !== e || n.splice(t--, 1); 15678 n.length || S.fx.stop(), (ot = void 0); 15679 }), 15680 (S.fx.timer = function (e) { 15681 S.timers.push(e), S.fx.start(); 15682 }), 15683 (S.fx.interval = 13), 15684 (S.fx.start = function () { 15685 st || ((st = !0), lt()); 15686 }), 15687 (S.fx.stop = function () { 15688 st = null; 15689 }), 15690 (S.fx.speeds = { slow: 600, fast: 200, _default: 400 }), 15691 (S.fn.delay = function (e, t) { 15692 return ( 15693 (e = (S.fx && S.fx.speeds[e]) || e), 15694 (t = t || "fx"), 15695 this.queue(t, function (t, n) { 15696 var i = r.setTimeout(t, e); 15697 n.stop = function () { 15698 r.clearTimeout(i); 15699 }; 15700 }) 15701 ); 15702 }), 15703 (function () { 15704 var e = x.createElement("input"), 15705 t = x.createElement("select").appendChild(x.createElement("option")); 15706 (e.type = "checkbox"), (v.checkOn = "" !== e.value), (v.optSelected = t.selected), ((e = x.createElement("input")).value = "t"), (e.type = "radio"), (v.radioValue = "t" === e.value); 15707 })(); 15708 var ht, 15709 gt = S.expr.attrHandle; 15710 S.fn.extend({ 15711 attr: function (e, t) { 15712 return z(this, S.attr, e, t, arguments.length > 1); 15713 }, 15714 removeAttr: function (e) { 15715 return this.each(function () { 15716 S.removeAttr(this, e); 15717 }); 15718 }, 15719 }), 15720 S.extend({ 15721 attr: function (e, t, n) { 15722 var r, 15723 i, 15724 o = e.nodeType; 15725 if (3 !== o && 8 !== o && 2 !== o) 15726 return void 0 === e.getAttribute 15727 ? S.prop(e, t, n) 15728 : ((1 === o && S.isXMLDoc(e)) || (i = S.attrHooks[t.toLowerCase()] || (S.expr.match.bool.test(t) ? ht : void 0)), 15729 void 0 !== n 15730 ? null === n 15731 ? void S.removeAttr(e, t) 15732 : i && "set" in i && void 0 !== (r = i.set(e, n, t)) 15733 ? r 15734 : (e.setAttribute(t, n + ""), n) 15735 : i && "get" in i && null !== (r = i.get(e, t)) 15736 ? r 15737 : null == (r = S.find.attr(e, t)) 15738 ? void 0 15739 : r); 15740 }, 15741 attrHooks: { 15742 type: { 15743 set: function (e, t) { 15744 if (!v.radioValue && "radio" === t && j(e, "input")) { 15745 var n = e.value; 15746 return e.setAttribute("type", t), n && (e.value = n), t; 15747 } 15748 }, 15749 }, 15750 }, 15751 removeAttr: function (e, t) { 15752 var n, 15753 r = 0, 15754 i = t && t.match(I); 15755 if (i && 1 === e.nodeType) for (; (n = i[r++]); ) e.removeAttribute(n); 15756 }, 15757 }), 15758 (ht = { 15759 set: function (e, t, n) { 15760 return !1 === t ? S.removeAttr(e, n) : e.setAttribute(n, n), n; 15761 }, 15762 }), 15763 S.each(S.expr.match.bool.source.match(/\w+/g), function (e, t) { 15764 var n = gt[t] || S.find.attr; 15765 gt[t] = function (e, t, r) { 15766 var i, 15767 o, 15768 s = t.toLowerCase(); 15769 return r || ((o = gt[s]), (gt[s] = i), (i = null != n(e, t, r) ? s : null), (gt[s] = o)), i; 15770 }; 15771 }); 15772 var vt = /^(?:input|select|textarea|button)$/i, 15773 mt = /^(?:a|area)$/i; 15774 function yt(e) { 15775 return (e.match(I) || []).join(" "); 15776 } 15777 function xt(e) { 15778 return (e.getAttribute && e.getAttribute("class")) || ""; 15779 } 15780 function bt(e) { 15781 return Array.isArray(e) ? e : ("string" == typeof e && e.match(I)) || []; 15782 } 15783 S.fn.extend({ 15784 prop: function (e, t) { 15785 return z(this, S.prop, e, t, arguments.length > 1); 15786 }, 15787 removeProp: function (e) { 15788 return this.each(function () { 15789 delete this[S.propFix[e] || e]; 15790 }); 15791 }, 15792 }), 15793 S.extend({ 15794 prop: function (e, t, n) { 15795 var r, 15796 i,
15797 o = e.nodeType; 15798 if (3 !== o && 8 !== o && 2 !== o) 15799 return ( 15800 (1 === o && S.isXMLDoc(e)) || ((t = S.propFix[t] || t), (i = S.propHooks[t])), 15801 void 0 !== n ? (i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : (e[t] = n)) : i && "get" in i && null !== (r = i.get(e, t)) ? r : e[t] 15802 ); 15803 }, 15804 propHooks: { 15805 tabIndex: { 15806 get: function (e) { 15807 var t = S.find.attr(e, "tabindex"); 15808 return t ? parseInt(t, 10) : vt.test(e.nodeName) || (mt.test(e.nodeName) && e.href) ? 0 : -1; 15809 }, 15810 }, 15811 }, 15812 propFix: { for: "htmlFor", class: "className" }, 15813 }), 15814 v.optSelected || 15815 (S.propHooks.selected = { 15816 get: function (e) { 15817 var t = e.parentNode; 15818 return t && t.parentNode && t.parentNode.selectedIndex, null; 15819 }, 15820 set: function (e) { 15821 var t = e.parentNode; 15822 t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex); 15823 }, 15824 }), 15825 S.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function () { 15826 S.propFix[this.toLowerCase()] = this; 15827 }), 15828 S.fn.extend({ 15829 addClass: function (e) { 15830 var t, n, r, i, o, s; 15831 return m(e) 15832 ? this.each(function (t) { 15833 S(this).addClass(e.call(this, t, xt(this))); 15834 }) 15835 : (t = bt(e)).length 15836 ? this.each(function () { 15837 if (((r = xt(this)), (n = 1 === this.nodeType && " " + yt(r) + " "))) { 15838 for (o = 0; o < t.length; o++) (i = t[o]), n.indexOf(" " + i + " ") < 0 && (n += i + " "); 15839 (s = yt(n)), r !== s && this.setAttribute("class", s); 15840 } 15841 }) 15842 : this; 15843 }, 15844 removeClass: function (e) { 15845 var t, n, r, i, o, s; 15846 return m(e) 15847 ? this.each(function (t) { 15848 S(this).removeClass(e.call(this, t, xt(this))); 15849 }) 15850 : arguments.length 15851 ? (t = bt(e)).length 15852 ? this.each(function () { 15853 if (((r = xt(this)), (n = 1 === this.nodeType && " " + yt(r) + " "))) { 15854 for (o = 0; o < t.length; o++) for (i = t[o]; n.indexOf(" " + i + " ") > -1; ) n = n.replace(" " + i + " ", " "); 15855 (s = yt(n)), r !== s && this.setAttribute("class", s); 15856 } 15857 }) 15858 : this 15859 : this.attr("class", ""); 15860 }, 15861 toggleClass: function (e, t) { 15862 var n, 15863 r, 15864 i, 15865 o, 15866 s = typeof e, 15867 a = "string" === s || Array.isArray(e); 15868 return m(e) 15869 ? this.each(function (n) { 15870 S(this).toggleClass(e.call(this, n, xt(this), t), t); 15871 }) 15872 : "boolean" == typeof t && a 15873 ? t 15874 ? this.addClass(e) 15875 : this.removeClass(e) 15876 : ((n = bt(e)), 15877 this.each(function () { 15878 if (a) for (o = S(this), i = 0; i < n.length; i++) (r = n[i]), o.hasClass(r) ? o.removeClass(r) : o.addClass(r); 15879 else 15880 (void 0 !== e && "boolean" !== s) || 15881 ((r = xt(this)) && K.set(this, "__className__", r), this.setAttribute && this.setAttribute("class", r || !1 === e ? "" : K.get(this, "__className__") || "")); 15882 })); 15883 }, 15884 hasClass: function (e) { 15885 var t, 15886 n, 15887 r = 0; 15888 for (t = " " + e + " "; (n = this[r++]); ) if (1 === n.nodeType && (" " + yt(xt(n)) + " ").indexOf(t) > -1) return !0; 15889 return !1; 15890 }, 15891 }); 15892 var wt = /\r/g; 15893 S.fn.extend({ 15894 val: function (e) { 15895 var t, 15896 n, 15897 r, 15898 i = this[0]; 15899 return arguments.length 15900 ? ((r = m(e)), 15901 this.each(function (n) { 15902 var i; 15903 1 === this.nodeType && 15904 (null == (i = r ? e.call(this, n, S(this).val()) : e) 15905 ? (i = "") 15906 : "number" == typeof i 15907 ? (i += "") 15908 : Array.isArray(i) && 15909 (i = S.map(i, function (e) { 15910 return null == e ? "" : e + ""; 15911 })), 15912 ((t = S.valHooks[this.type] || S.valHooks[this.nodeName.toLowerCase()]) && "set" in t && void 0 !== t.set(this, i, "value")) || (this.value = i)); 15913 })) 15914 : i 15915 ? (t = S.valHooks[i.type] || S.valHooks[i.nodeName.toLowerCase()]) && "get" in t && void 0 !== (n = t.get(i, "value")) 15916 ? n 15917 : "string" == typeof (n = i.value) 15918 ? n.replace(wt, "") 15919 : null == n 15920 ? "" 15921 : n 15922 : void 0; 15923 }, 15924 }), 15925 S.extend({ 15926 valHooks: { 15927 option: { 15928 get: function (e) { 15929 var t = S.find.attr(e, "value"); 15930 return null != t ? t : yt(S.text(e)); 15931 }, 15932 }, 15933 select: { 15934 get: function (e) { 15935 var t, 15936 n, 15937 r, 15938 i = e.options, 15939 o = e.selectedIndex, 15940 s = "select-one" === e.type, 15941 a = s ? null : [], 15942 u = s ? o + 1 : i.length; 15943 for (r = o < 0 ? u : s ? o : 0; r < u; r++) 15944 if (((n = i[r]).selected || r === o) && !n.disabled && (!n.parentNode.disabled || !j(n.parentNode, "optgroup"))) { 15945 if (((t = S(n).val()), s)) return t; 15946 a.push(t); 15947 } 15948 return a; 15949 }, 15950 set: function (e, t) { 15951 for (var n, r, i = e.options, o = S.makeArray(t), s = i.length; s--; ) ((r = i[s]).selected = S.inArray(S.valHooks.option.get(r), o) > -1) && (n = !0); 15952 return n || (e.selectedIndex = -1), o; 15953 }, 15954 }, 15955 }, 15956 }), 15957 S.each(["radio", "checkbox"], function () { 15958 (S.valHooks[this] = { 15959 set: function (e, t) { 15960 if (Array.isArray(t)) return (e.checked = S.inArray(S(e).val(), t) > -1); 15961 }, 15962 }), 15963 v.checkOn || 15964 (S.valHooks[this].get = function (e) { 15965 return null === e.getAttribute("value") ? "on" : e.value; 15966 }); 15967 }), 15968 (v.focusin = "onfocusin" in r); 15969 var Tt = /^(?:focusinfocus|focusoutblur)$/, 15970 Ct = function (e) { 15971 e.stopPropagation(); 15972 }; 15973 S.extend(S.event, { 15974 trigger: function (e, t, n, i) { 15975 var o, 15976 s, 15977 a, 15978 u, 15979 l, 15980 c, 15981 f, 15982 p, 15983 h = [n || x], 15984 g = d.call(e, "type") ? e.type : e, 15985 v = d.call(e, "namespace") ? e.namespace.split(".") : []; 15986 if ( 15987 ((s = p = a = n = n || x), 15988 3 !== n.nodeType && 15989 8 !== n.nodeType && 15990 !Tt.test(g + S.event.triggered) && 15991 (g.indexOf(".") > -1 && ((v = g.split(".")), (g = v.shift()), v.sort()), 15992 (l = g.indexOf(":") < 0 && "on"
15992+ g), 15993 ((e = e[S.expando] ? e : new S.Event(g, "object" == typeof e && e)).isTrigger = i ? 2 : 3), 15994 (e.namespace = v.join(".")), 15995 (e.rnamespace = e.namespace ? new RegExp("(^|\\.)" + v.join("\\.(?:.*\\.|)") + "(\\.|$)") : null), 15996 (e.result = void 0), 15997 e.target || (e.target = n), 15998 (t = null == t ? [e] : S.makeArray(t, [e])), 15999 (f = S.event.special[g] || {}), 16000 i || !f.trigger || !1 !== f.trigger.apply(n, t))) 16001 ) { 16002 if (!i && !f.noBubble && !y(n)) { 16003 for (u = f.delegateType || g, Tt.test(u + g) || (s = s.parentNode); s; s = s.parentNode) h.push(s), (a = s); 16004 a === (n.ownerDocument || x) && h.push(a.defaultView || a.parentWindow || r); 16005 } 16006 for (o = 0; (s = h[o++]) && !e.isPropagationStopped(); ) 16007 (p = s), 16008 (e.type = o >
16008 1 ? u : f.bindType || g), 16009 (c = (K.get(s, "events") || Object.create(null))[e.type] && K.get(s, "handle")) && c.apply(s, t), 16010 (c = l && s[l]) && c.apply && Q(s) && ((e.result = c.apply(s, t)), !1 === e.result && e.preventDefault()); 16011 return ( 16012 (e.type = g), 16013 i || 16014 e.isDefaultPrevented() || 16015 (f._default && !1 !== f._default.apply(h.pop(), t)) || 16016 !Q(n) || 16017 (l && 16018 m(n[g]) && 16019 !y(n) && 16020 ((a = n[l]) && (n[l] = null), 16021 (S.event.triggered = g), 16022 e.isPropagationStopped() && p.addEventListener(g, Ct), 16023 n[g](), 16024 e.isPropagationStopped() && p.removeEventListener(g, Ct), 16025 (S.event.triggered = void 0), 16026 a && (n[l] = a))), 16027 e.result 16028 ); 16029 } 16030 }, 16031 simulate: function (e, t, n) { 16032 var r = S.extend(new S.Event(), n, { type: e, isSimulated: !0 }); 16033 S.event.trigger(r, null, t); 16034 }, 16035 }), 16036 S.fn.extend({ 16037 trigger: function (e, t) { 16038 return this.each(function () { 16039 S.event.trigger(e, t, this); 16040 }); 16041 }, 16042 triggerHandler: function (e, t) { 16043 var n = this[0]; 16044 if (n) return S.event.trigger(e, t, n, !0); 16045 }, 16046 }), 16047 v.focusin || 16048 S.each({ focus: "focusin", blur: "focusout" }, function (e, t) { 16049 var n = function (e) { 16050 S.event.simulate(t, e.target, S.event.fix(e)); 16051 }; 16052 S.event.special[t] = { 16053 setup: function () { 16054 var r = this.ownerDocument || this.document || this, 16055 i = K.access(r, t); 16056 i || r.addEventListener(e, n, !0), K.access(r, t, (i || 0) + 1); 16057 }, 16058 teardown: function () { 16059 var r = this.ownerDocument || this.document || this, 16060 i = K.access(r, t) - 1; 16061 i ? K.access(r, t, i) : (r.removeEventListener(e, n, !0), K.remove(r, t)); 16062 }, 16063 }; 16064 }); 16065 var St = r.location, 16066 Et = { guid: Date.now() }, 16067 At = /\?/; 16068 S.parseXML = function (e) { 16069 var t, n; 16070 if (!e || "string" != typeof e) return null; 16071 try { 16072 t = new r.DOMParser().parseFromString(e, "text/xml"); 16073 } catch (e) {} 16074 return ( 16075 (n = t && t.getElementsByTagName("parsererror")[0]), 16076 (t && !n) || 16077 S.error( 16078 "Invalid XML: " + 16079 (n 16080 ? S.map(n.childNodes, function (e) { 16081 return e.textContent; 16082 }).join("\n") 16083 : e) 16084 ), 16085 t 16086 ); 16087 }; 16088 var kt = /\[\]$/, 16089 Nt = /\r?\n/g, 16090 Dt = /^(?:submit|button|image|reset|file)$/i, 16091 jt = /^(?:input|select|textarea|keygen)/i; 16092 function qt(e, t, n, r) { 16093 var i; 16094 if (Array.isArray(t)) 16095 S.each(t, function (t, i) { 16096 n || kt.test(e) ? r(e, i) : qt(e + "[" + ("object" == typeof i && null != i ? t : "") + "]", i, n, r); 16097 }); 16098 else if (n || "object" !== T(t)) r(e, t); 16099 else for (i in t) qt(e + "[" + i + "]", t[i], n, r); 16100 } 16101 (S.param = function (e, t) { 16102 var n, 16103 r = [], 16104 i = function (e, t) { 16105 var n = m(t) ? t() : t; 16106 r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n); 16107 }; 16108 if (null == e) return ""; 16109 if (Array.isArray(e) || (e.jquery && !S.isPlainObject(e))) 16110 S.each(e, function () { 16111 i(this.name, this.value); 16112 }); 16113 else for (n in e) qt(n, e[n], t, i); 16114 return r.join("&"); 16115 }), 16116 S.fn.extend({ 16117 serialize: function () { 16118 return S.param(this.serializeArray()); 16119 }, 16120 serializeArray: function () { 16121 return this.map(function () { 16122 var e = S.prop(this, "elements"); 16123 return e ? S.makeArray(e) : this; 16124 }) 16125 .filter(function () { 16126 var e = this.type; 16127 return this.name && !S(this).is(":disabled") && jt.test(this.nodeName) && !Dt.test(e) && (this.checked || !ve.test(e)); 16128 }) 16129 .map(function (e, t) { 16130 var n = S(this).val(); 16131 return null == n 16132 ? null 16133 : Array.isArray(n) 16134 ? S.map(n, function (e) { 16135 return { name: t.name, value: e.replace(Nt, "\r\n") }; 16136 }) 16137 : { name: t.name, value: n.replace(Nt, "\r\n") }; 16138 }) 16139 .get(); 16140 }, 16141 }); 16142 var Lt = /%20/g, 16143 Ht = /#.*$/, 16144 Pt = /([?&])_=[^&]*/, 16145 Ot = /^(.*?):[ \t]*([^\r\n]*)$/gm, 16146 Mt = /^(?:GET|HEAD)$/, 16147 Rt = /^\/\//, 16148 It = {}, 16149 Bt = {}, 16150 Wt = "*/".concat("*"), 16151 Ft = x.createElement("a"); 16152 function $t(e) { 16153 return function (t, n) { 16154 "string" != typeof t && ((n = t), (t = "*")); 16155 var r, 16156 i = 0, 16157 o = t.toLowerCase().match(I) || []; 16158 if (m(n)) for (; (r = o[i++]); ) "+" === r[0] ? ((r = r.slice(1) || "*"), (e[r] = e[r] || []).unshift(n)) : (e[r] = e[r] || []).push(n); 16159 }; 16160 } 16161 function _t(e, t, n, r) { 16162 var i = {}, 16163 o = e === Bt; 16164 function s(a) { 16165 var u; 16166 return ( 16167 (i[a] = !0), 16168 S.each(e[a] || [], function (e, a) { 16169 var l = a(t, n, r); 16170 return "string" != typeof l || o || i[l] ? (o ? !(u = l) : void 0) : (t.dataTypes.unshift(l), s(l), !1); 16171 }), 16172 u 16173 ); 16174 } 16175 return s(t.dataTypes[0]) || (!i["*"] && s("*")); 16176 } 16177 function Vt(e, t) { 16178 var n, 16179 r, 16180 i = S.ajaxSettings.flatOptions || {}; 16181 for (n in t) void 0 !== t[n] && ((i[n] ? e : r || (r = {}))[n] = t[n]); 16182 return r && S.extend(!0, e, r), e; 16183 } 16184 (Ft.href = St.href), 16185 S.extend({ 16186 active: 0, 16187 lastModified: {}, 16188 etag: {}, 16189 ajaxSettings: { 16190 url: St.href, 16191 type: "GET", 16192 isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(St.protocol), 16193 global: !0, 16194 processData: !0, 16195 async: !0, 16196 contentType: "application/x-www-form-urlencoded; charset=UTF-8", 16197 accepts: { "*": Wt, text: "text/plain", html: "text/html", xml: "application/xml, text/xml", json: "application/json, text/javascript" }, 16198 contents: { xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/ }, 16199 responseFields: { xml: "responseXML", text: "responseText", json: "responseJSON" }, 16200 converters: { "* text": String, "text html": !0, "text json": JSON.parse, "text xml": S.parseXML }, 16201 flatOptions: { url: !0, context: !0 },
16202 }, 16203 ajaxSetup: function (e, t) { 16204 return t ? Vt(Vt(e, S.ajaxSettings), t) : Vt(S.ajaxSettings, e); 16205 }, 16206 ajaxPrefilter: $t(It), 16207 ajaxTransport: $t(Bt), 16208 ajax: function (e, t) { 16209 "object" == typeof e && ((t = e), (e = void 0)), (t = t || {}); 16210 var n, 16211 i, 16212 o, 16213 s, 16214 a, 16215 u, 16216 l, 16217 c, 16218 f, 16219 p, 16220 d = S.ajaxSetup({}, t), 16221 h = d.context || d, 16222 g = d.context && (h.nodeType || h.jquery) ? S(h) : S.event, 16223 v = S.Deferred(), 16224 m = S.Callbacks("once memory"), 16225 y = d.statusCode || {}, 16226 b = {}, 16227 w = {}, 16228 T = "canceled", 16229 C = { 16230 readyState: 0, 16231 getResponseHeader: function (e) { 16232 var t; 16233 if (l) { 16234 if (!s) for (s = {}; (t = Ot.exec(o)); ) s[t[1].toLowerCase() + " "] = (s[t[1].toLowerCase() + " "] || []).concat(t[2]); 16235 t = s[e.toLowerCase() + " "]; 16236 } 16237 return null == t ? null : t.join(", "); 16238 }, 16239 getAllResponseHeaders: function () { 16240 return l ? o : null; 16241 }, 16242 setRequestHeader: function (e, t) { 16243 return null == l && ((e = w[e.toLowerCase()] = w[e.toLowerCase()] || e), (b[e] = t)), this; 16244 }, 16245 overrideMimeType: function (e) { 16246 return null == l && (d.mimeType = e), this; 16247 }, 16248 statusCode: function (e) { 16249 var t; 16250 if (e) 16251 if (l) C.always(e[C.status]); 16252 else for (t in e) y[t] = [y[t], e[t]]; 16253 return this; 16254 }, 16255 abort: function (e) { 16256 var t = e || T; 16257 return n && n.abort(t), E(0, t), this; 16258 }, 16259 }; 16260 if ( 16261 (v.promise(C), 16262 (d.url = ((e || d.url || St.href) + "").replace(Rt, St.protocol + "//")), 16263 (d.type = t.method || t.type || d.method || d.type), 16264 (d.dataTypes = (d.dataType || "*").toLowerCase().match(I) || [""]), 16265 null == d.crossDomain) 16266 ) { 16267 u = x.createElement("a"); 16268 try { 16269 (u.href = d.url), (u.href = u.href), (d.crossDomain = Ft.protocol + "//" + Ft.host != u.protocol + "//" + u.host); 16270 } catch (e) { 16271 d.crossDomain = !0; 16272 } 16273 } 16274 if ((d.data && d.processData && "string" != typeof d.data && (d.data = S.param(d.data, d.traditional)), _t(It, d, t, C), l)) return C; 16275 for (f in ((c = S.event && d.global) && 0 == S.active++ && S.event.trigger("ajaxStart"), 16276 (d.type = d.type.toUpperCase()), 16277 (d.hasContent = !Mt.test(d.type)), 16278 (i = d.url.replace(Ht, "")), 16279 d.hasContent 16280 ? d.data && d.processData && 0 === (d.contentType || "").indexOf("application/x-www-form-urlencoded") && (d.data = d.data.replace(Lt, "+")) 16281 : ((p = d.url.slice(i.length)), 16282 d.data && (d.processData || "string" == typeof d.data) && ((i += (At.test(i) ? "&" : "?") + d.data), delete d.data), 16283 !1 === d.cache && ((i = i.replace(Pt, "$1")), (p = (At.test(i) ? "&" : "?") + "_=" + Et.guid++ + p)), 16284 (d.url = i + p)), 16285 d.ifModified && (S.lastModified[i] && C.setRequestHeader("If-Modified-Since", S.lastModified[i]), S.etag[i] && C.setRequestHeader("If-None-Match", S.etag[i])), 16286 ((d.data && d.hasContent && !1 !== d.contentType) || t.contentType) && C.setRequestHeader("Content-Type", d.contentType), 16287 C.setRequestHeader("Accept", d.dataTypes[0] && d.accepts[d.dataTypes[0]] ? d.accepts[d.dataTypes[0]] + ("*" !== d.dataTypes[0] ? ", " + Wt + "; q=0.01" : "") : d.accepts["*"]), 16288 d.headers)) 16289 C.setRequestHeader(f, d.headers[f]); 16290 if (d.beforeSend && (!1 === d.beforeSend.c
16290all(h, C, d) || l)) return C.abort(); 16291 if (((T = "abort"), m.add(d.complete), C.done(d.success), C.fail(d.error), (n = _t(Bt, d, t, C)))) { 16292 if (((C.readyState = 1), c && g.trigger("ajaxSend", [C, d]), l)) return C; 16293 d.async && 16294 d.timeout > 0 && 16295 (a = r.setTimeout(function () { 16296 C.abort("timeout"); 16297 }, d.timeout)); 16298 try { 16299 (l = !1), n.send(b, E); 16300 } catch (e) { 16301 if (l) throw e; 16302 E(-1, e); 16303 } 16304 } else E(-1, "No Transport"); 16305 function E(e, t, s, u) { 16306 var f, 16307 p, 16308 x, 16309 b, 16310 w, 16311 T = t; 16312 l || 16313 ((l = !0), 16314 a && r.clearTimeout(a), 16315 (n = void 0), 16316 (o = u || ""), 16317 (C.readyState = e > 0 ? 4 : 0), 16318 (f = (e >= 200 && e < 300) || 304 === e), 16319 s && 16320 (b = (function (e, t, n) { 16321 for (var r, i, o, s, a = e.contents, u = e.dataTypes; "*" === u[0]; ) u.shift(), void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type")); 16322 if (r) 16323 for (i in a) 16324 if (a[i] && a[i].test(r)) { 16325 u.unshift(i); 16326 break; 16327 } 16328 if (u[0] in n) o = u[0]; 16329 else { 16330 for (i in n) { 16331 if (!u[0] || e.converters[i + " " + u[0]]) { 16332 o = i; 16333 break; 16334 } 16335 s || (s = i); 16336 } 16337 o = o || s; 16338 } 16339 if (o) return o !== u[0] && u.unshift(o), n[o]; 16340 })(d, C, s)), 16341 !f && S.inArray("script", d.dataTypes) > -1 && S.inArray("json", d.dataTypes) < 0 && (d.converters["text script"] = function () {}), 16342 (b = (function (e, t, n, r) { 16343 var i, 16344 o, 16345 s, 16346 a, 16347 u, 16348 l = {}, 16349 c = e.dataTypes.slice(); 16350 if (c[1]) for (s in e.converters) l[s.toLowerCase()] = e.converters[s]; 16351 for (o = c.shift(); o; ) 16352 if ((e.responseFields[o] && (n[e.responseFields[o]] = t), !u && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), (u = o), (o = c.shift()))) 16353 if ("*" === o) o = u; 16354 else if ("*" !== u && u !== o) { 16355 if (!(s = l[u + " " + o] || l["* " + o])) 16356 for (i in l) 16357 if ((a = i.split(" "))[1] === o && (s = l[u + " " + a[0]] || l["* " + a[0]])) { 16358 !0 === s ? (s = l[i]) : !0 !== l[i] && ((o = a[0]), c.unshift(a[1])); 16359 break; 16360 } 16361 if (!0 !== s) 16362 if (s && e.throws) t = s(t); 16363 else 16364 try { 16365 t = s(t); 16366 } catch (e) { 16367 return { state: "parsererror", error: s ? e : "No conversion from " + u + " to " + o }; 16368 } 16369 } 16370 return { state: "success", data: t }; 16371 })(d, b, C, f)), 16372 f 16373 ? (d.ifModified && ((w = C.getResponseHeader("Last-Modified")) && (S.lastModified[i] = w), (w = C.getResponseHeader("etag")) && (S.etag[i] = w)), 16374 204 === e || "HEAD" === d.t
16374ype ? (T = "nocontent") : 304 === e ? (T = "notmodified") : ((T = b.state), (p = b.data), (f = !(x = b.error)))) 16375 : ((x = T), (!e && T) || ((T = "error"), e < 0 && (e = 0))), 16376 (C.status = e), 16377 (C.statusText = (t || T) + ""), 16378 f ? v.resolveWith(h, [p, T, C]) : v.rejectWith(h, [C, T, x]), 16379 C.statusCode(y), 16380 (y = void 0), 16381 c && g.trigger(f ? "ajaxSuccess" : "ajaxError", [C, d, f ? p : x]), 16382 m.fireWith(h, [C, T]), 16383 c && (g.trigger("ajaxComplete", [C, d]), --S.active || S.event.trigger("ajaxStop"))); 16384 } 16385 return C; 16386 }, 16387 getJSON: function (e, t, n) { 16388 return S.get(e, t, n, "json"); 16389 }, 16390 getScript: function (e, t) { 16391 return S.get(e, void 0, t, "script"); 16392 }, 16393 }), 16394 S.each(["get", "post"], function (e, t) { 16395 S[t] = function (e, n, r, i) { 16396 return m(n) && ((i = i || r), (r = n), (n = void 0)), S.ajax(S.extend({ url: e, type: t, dataType: i, data: n, success: r }, S.isPlainObject(e) && e)); 16397 }; 16398 }), 16399 S.ajaxPrefilter(function (e) { 16400 var t; 16401 for (t in e.headers) "content-type" === t.toLowerCase() && (e.contentType = e.headers[t] || ""); 16402 }), 16403 (S._evalUrl = function (e, t, n) { 16404 return S.ajax({ 16405 url: e, 16406 type: "GET", 16407 dataType: "script", 16408 cache: !0, 16409 async: !1, 16410 global: !1, 16411 converters: { "text script": function () {} }, 16412 dataFilter: function (e) { 16413 S.globalEval(e, t, n); 16414 }, 16415 }); 16416 }), 16417 S.fn.extend({ 16418 wrapAll: function (e) { 16419 var t; 16420 return ( 16421 this[0] && 16422 (m(e) && (e = e.call(this[0])), 16423 (t = S(e, this[0].ownerDocument).eq(0).clone(!0)), 16424 this[0].parentNode && t.insertBefore(this[0]), 16425 t 16426 .map(function () { 16427 for (var e = this; e.firstElementChild; ) e = e.firstElementChild; 16428 return e; 16429 }) 16430 .append(this)), 16431 this 16432 ); 16433 }, 16434 wrapInner: function (e) { 16435 return m(e) 16436 ? this.each(function (t) { 16437 S(this).wrapInner(e.call(this, t)); 16438 }) 16439 : this.each(function () { 16440 var t = S(this), 16441 n = t.contents(); 16442 n.length ? n.wrapAll(e) : t.append(e); 16443 }); 16444 }, 16445 wrap: function (e) { 16446 var t = m(e); 16447 return this.each(function (n) { 16448 S(this).wrapAll(t ? e.call(this, n) : e); 16449 }); 16450 }, 16451 unwrap: function (e) { 16452 return ( 16453 this.parent(e) 16454 .not("body") 16455 .each(function () { 16456 S(this).replaceWith(this.childNodes); 16457 }), 16458 this 16459 ); 16460 }, 16461 }), 16462 (S.expr.pseudos.hidden = function (e) { 16463 return !S.expr.pseudos.visible(e); 16464 }), 16465 (S.expr.pseudos.visible = function (e) { 16466 return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length); 16467 }), 16468 (S.ajaxSettings.xhr = function () { 16469 try { 16470 return new r.XMLHttpRequest(); 16471 } catch (e) {} 16472 }); 16473 var zt = { 0: 200, 1223: 204 }, 16474 Ut = S.ajaxSettings.xhr(); 16475 (v.cors = !!Ut && "withCredentials" in Ut), 16476 (v.ajax = Ut = !!Ut), 16477 S.ajaxTransport(function (e) { 16478 var t, n; 16479 if (v.cors || (Ut && !e.crossDomain)) 16480 return { 16481 send: function (i, o) { 16482 var s, 16483 a = e.xhr(); 16484 if ((a.open(e.type, e.url, e.async, e.username, e.password), e.xhrFields)) for (s in e.xhrFields) a[s] = e.xhrFields[s]; 16485 for (s in (e.mimeType && a.overrideMimeType && a.overrideMimeType(e.mimeType), e.crossDomain || i["X-Requested-With"] || (i["X-Requested-With"] = "XMLHttpRequest"), i)) a.setRequestHeader(s, i[s]); 16486 (t = function (e) { 16487 return function () { 16488 t && 16489 ((t = n = a.onload = a.onerror = a.onabort = a.ontimeout = a.onreadystatechange = null),
16490 "abort" === e 16491 ? a.abort() 16492 : "error" === e 16493 ? "number" != typeof a.status 16494 ? o(0, "error") 16495 : o(a.status, a.statusText) 16496 : o( 16497 zt[a.status] || a.status, 16498 a.statusText, 16499 "text" !== (a.responseType || "text") || "string" != typeof a.responseText ? { binary: a.response } : { text: a.responseText }, 16500 a.getAllResponseHeaders() 16501 )); 16502 }; 16503 }), 16504 (a.onload = t()), 16505 (n = a.onerror = a.ontimeout = t("error")), 16506 void 0 !== a.onabort 16507 ? (a.onabort = n) 16508 : (a.onreadystatechange = function () { 16509 4 === a.readyState && 16510 r.setTimeout(function () { 16511 t && n(); 16512 }); 16513 }), 16514 (t = t("abort")); 16515 try { 16516 a.send((e.hasContent && e.data) || null); 16517 } catch (e) { 16518 if (t) throw e; 16519 } 16520 }, 16521 abort: function () { 16522 t && t(); 16523 }, 16524 }; 16525 }), 16526 S.ajaxPrefilter(function (e) { 16527 e.crossDomain && (e.contents.script = !1); 16528 }), 16529 S.ajaxSetup({ 16530 accepts: { script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" }, 16531 contents: { script: /\b(?:java|ecma)script\b/ }, 16532 converters: { 16533 "text script": function (e) { 16534 return S.globalEval(e), e; 16535 }, 16536 }, 16537 }), 16538 S.ajaxPrefilter("script", function (e) { 16539 void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET"); 16540 }), 16541 S.ajaxTransport("script", function (e) { 16542 var t, n; 16543 if (e.crossDomain || e.scriptAttrs) 16544 return { 16545 send: function (r, i) { 16546 (t = S("<script>") 16547 .attr(e.scriptAttrs || {}) 16548 .prop({ charset: e.scriptCharset, src: e.url }) 16549 .on( 16550 "load error", 16551 (n = function (e) { 16552 t.remove(), (n = null), e && i("error" === e.type ? 404 : 200, e.type); 16553 }) 16554 )), 16555 x.head.appendChild(t[0]); 16556 }, 16557 abort: function () { 16558 n && n(); 16559 }, 16560 }; 16561 }); 16562 var Xt, 16563 Gt = [], 16564 Yt = /(=)\?(?=&|$)|\?\?/; 16565 S.ajaxSetup({ 16566 jsonp: "callback", 16567 jsonpCallback: function () { 16568 var e = Gt.pop() || S.expando + "_" + Et.guid++; 16569 return (this[e] = !0), e; 16570 }, 16571 }), 16572 S.ajaxPrefilter("json jsonp", function (e, t, n) { 16573 var i, 16574 o, 16575 s,
16576 a = !1 !== e.jsonp && (Yt.test(e.url) ? "url" : "string" == typeof e.data && 0 === (e.contentType || "").indexOf("application/x-www-form-urlencoded") && Yt.test(e.data) && "data"); 16577 if (a || "jsonp" === e.dataTypes[0]) 16578 return ( 16579 (i = e.jsonpCallback = m(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback), 16580 a ? (e[a] = e[a].replace(Yt, "$1" + i)) : !1 !== e.jsonp && (e.url += (At.test(e.url) ? "&" : "?") + e.jsonp + "=" + i), 16581 (e.converters["script json"] = function () { 16582 return s || S.error(i + " was not called"), s[0]; 16583 }), 16584 (e.dataTypes[0] = "json"), 16585 (o = r[i]), 16586 (r[i] = function () { 16587 s = arguments; 16588 }), 16589 n.always(function () { 16590 void 0 === o ? S(r).removeProp(i) : (r[i] = o), e[i] && ((e.jsonpCallback = t.jsonpCallback), Gt.push(i)), s && m(o) && o(s[0]), (s = o = void 0); 16591 }), 16592 "script" 16593 ); 16594 }), 16595 (v.createHTMLDocument = (((Xt = x.implementation.createHTMLDocument("").body).innerHTML = "<form></form><form></form>"), 2 === Xt.childNodes.length)), 16596 (S.parseHTML = function (e, t, n) { 16597 return "string" != typeof e 16598 ? [] 16599 : ("boolean" == typeof t && ((n = t), (t = !1)), 16600 t || (v.createHTMLDocument ? (((r = (t = x.implementation.createHTMLDocument("")).createElement("base")).href = x.location.href), t.head.appendChild(r)) : (t = x)), 16601 (o = !n && []), 16602 (i = q.exec(e)) ? [t.createElement(i[1])] : ((i = Ce([e], t, o)), o && o.length && S(o).remove(), S.merge([], i.childNodes))); 16603 var r, i, o; 16604 }), 16605 (S.fn.load = function (e, t, n) { 16606 var r, 16607 i, 16608 o, 16609 s = this, 16610 a = e.indexOf(" "); 16611 return ( 16612 a > -1 && ((r = yt(e.slice(a))), (e = e.slice(0, a))), 16613 m(t) ? ((n = t), (t = void 0)) : t && "object" == typeof t && (i = "POST"), 16614 s.length > 0 && 16615 S.ajax({ url: e, type: i || "GET", dataType: "html", data: t }) 16616 .done(function (e) { 16617 (o = arguments), s.html(r ? S("<div>").append(S.parseHTML(e)).find(r) : e); 16618 }) 16619 .always( 16620 n && 16621 function (e, t) { 16622 s.each(function () { 16623 n.apply(this, o || [e.responseText, t, e]); 16624 }); 16625 } 16626 ), 16627 this 16628 ); 16629 }), 16630 (S.expr.pseudos.animated = function (e) { 16631 return S.grep(S.timers, function (t) { 16632 return e === t.elem; 16633 }).length; 16634 }), 16635 (S.offset = { 16636 setOffset: function (e, t, n) { 16637 var r, 16638 i, 16639 o, 16640 s, 16641 a, 16642 u, 16643 l = S.css(e, "position"), 16644 c = S(e), 16645 f = {}; 16646 "static" === l && (e.style.position = "relative"), 16647 (a = c.offset()), 16648 (o = S.css(e, "top")), 16649 (u = S.css(e, "left")), 16650 ("absolute" === l || "fixed" === l) && (
16650o + u).indexOf("auto") > -1 ? ((s = (r = c.position()).top), (i = r.left)) : ((s = parseFloat(o) || 0), (i = parseFloat(u) || 0)), 16651 m(t) && (t = t.call(e, n, S.extend({}, a))), 16652 null != t.top && (f.top = t.top - a.top + s), 16653 null != t.left && (f.left = t.left - a.left + i), 16654 "using" in t ? t.using.call(e, f) : c.css(f); 16655 }, 16656 }), 16657 S.fn.extend({ 16658 offset: function (e) { 16659 if (arguments.length) 16660 return void 0 === e 16661 ? this 16662 : this.each(function (t) { 16663 S.offset.setOffset(this, e, t); 16664 }); 16665 var t, 16666 n, 16667 r = this[0]; 16668 return r ? (r.getClientRects().length ? ((t = r.getBoundingClientRect()), (n = r.ownerDocument.defaultView), { top: t.top + n.pageYOffset, left: t.left + n.pageXOffset }) : { top: 0, left: 0 }) : void 0; 16669 }, 16670 position: function () { 16671 if (this[0]) { 16672 var e, 16673 t, 16674 n, 16675 r = this[0], 16676 i = { top: 0, left: 0 }; 16677 if ("fixed" === S.css(r, "position")) t = r.getBoundingClientRect(); 16678 else { 16679 for (t = this.offset(), n = r.ownerDocument, e = r.offsetParent || n.documentElement; e && (e === n.body || e === n.documentElement) && "static" === S.css(e, "position"); ) e = e.parentNode; 16680 e && e !== r && 1 === e.nodeType && (((i = S(e).offset()).top += S.css(e, "borderTopWidth", !0)), (i.left += S.css(e, "borderLeftWidth", !0))); 16681 } 16682 return { top: t.top - i.top - S.css(r, "marginTop", !0), left: t.left - i.left - S.css(r, "marginLeft", !0) }; 16683 } 16684 }, 16685 offsetParent: function () { 16686 return this.map(function () { 16687 for (var e = this.offsetParent; e && "static" === S.css(e, "position"); ) e = e.offsetParent; 16688 return e || se; 16689 }); 16690 }, 16691 }), 16692 S.each({ scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function (e, t) { 16693 var n = "pageYOffset" === t; 16694 S.fn[e] = function (r) { 16695 return z( 16696 this, 16697 function (e, r, i) { 16698 var o; 16699 if ((y(e) ? (o = e) : 9 === e.
16699nodeType && (o = e.defaultView), void 0 === i)) return o ? o[t] : e[r]; 16700 o ? o.scrollTo(n ? o.pageXOffset : i, n ? i : o.pageYOffset) : (e[r] = i); 16701 }, 16702 e, 16703 r, 16704 arguments.length 16705 ); 16706 }; 16707 }), 16708 S.each(["top", "left"], function (e, t) { 16709 S.cssHooks[t] = Xe(v.pixelPosition, function (e, n) { 16710 if (n) return (n = Ue(e, t)), We.test(n) ? S(e).position()[t] + "px" : n; 16711 }); 16712 }), 16713 S.each({ Height: "height", Width: "width" }, function (e, t) { 16714 S.each({ padding: "inner" + e, content: t, "": "outer" + e }, function (n, r) { 16715 S.fn[r] = function (i, o) { 16716 var s = arguments.length && (n || "boolean" != typeof i), 16717 a = n || (!0 === i || !0 === o ? "margin" : "border"); 16718 return z( 16719 this, 16720 function (t, n, i) { 16721 var o; 16722 return y(t) 16723 ? 0 === r.indexOf("outer") 16724 ? t["inner" + e] 16725 : t.document.documentElement["client" + e] 16726 : 9 === t.nodeType 16727 ? ((o = t.documentElement), Math.max(t.body["scroll" + e], o["scroll" + e], t.body["offset" + e], o["offset" + e], o["client" + e])) 16728 : void 0 === i 16729 ? S.css(t, n, a) 16730 : S.style(t, n, i, a); 16731 }, 16732 t, 16733 s ? i : void 0, 16734 s 16735 ); 16736 }; 16737 }); 16738 }), 16739 S.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function (e, t) { 16740 S.fn[t] = function (e) { 16741 return this.on(t, e); 16742 }; 16743 }), 16744 S.fn.extend({ 16745 bind: function (e, t, n) { 16746 return this.on(e, null, t, n); 16747 }, 16748 unbind: function (e, t) { 16749 return this.off(e, null, t); 16750 }, 16751 delegate: function (e, t, n, r) { 16752 return this.on(t, e, n, r); 16753 }, 16754 undelegate: function (e, t, n) { 16755 return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n); 16756 }, 16757 hover: function (e, t) { 16758 return this.mouseenter(e).mouseleave(t || e); 16759 }, 16760 }), 16761 S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), function ( 16762 e, 16763 t 16764 ) { 16765 S.fn[t] = function (e, n) { 16766 return arguments.length > 0 ? this.on(t, null, e, n) : this.trigger(t); 16767 }; 16768 }); 16769 var Qt = /^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g; 16770 (S.proxy = function (e, t) { 16771 var n, r, i;
16772 if (("string" == typeof t && ((n = e[t]), (t = e), (e = n)), m(e))) 16773 return ( 16774 (r = a.call(arguments, 2)), 16775 (i = function () { 16776 return e.apply(t || this, r.concat(a.call(arguments))); 16777 }), 16778 (i.guid = e.guid = e.guid || S.guid++), 16779 i 16780 ); 16781 }), 16782 (S.holdReady = function (e) { 16783 e ? S.readyWait++ : S.ready(!0); 16784 }), 16785 (S.isArray = Array.isArray), 16786 (S.parseJSON = JSON.parse), 16787 (S.nodeName = j), 16788 (S.isFunction = m), 16789 (S.isWindow = y), 16790 (S.camelCase = Y), 16791 (S.type = T), 16792 (S.now = Date.now), 16793 (S.isNumeric = function (e) { 16794 var t = S.type(e); 16795 return ("number" === t || "string" === t) && !isNaN(e - parseFloat(e)); 16796 }), 16797 (S.trim = function (e) { 16798 return null == e ? "" : (e + "").replace(Qt, "$1"); 16799 }), 16800 void 0 === 16801 (n = function () { 16802 return S; 16803 }.apply(t, [])) || (e.exports = n); 16804 var Jt = r.jQuery, 16805 Kt = r.$; 16806 return ( 16807 (S.noConflict = function (e) { 16808 return r.$ === S && (r.$ = Kt), e && r.jQuery === S && (r.jQuery = Jt), S; 16809 }), 16810 void 0 === i && (r.jQuery = r.$ = S), 16811 S 16812 ); 16813 }); 16814 }, 16815 640: (e) => { 16816 "use strict"; 16817 e.exports = BX; 16818 }, 16819 }, 16820 t = {}; 16821 function n(r) { 16822 var i = t[r]; 16823 if (void 0 !== i) return i.exports; 16824 var o = (t[r] = { exports: {} }); 16825 return e[r].call(o.exports, o, o.exports, n), o.exports; 16826 } 16827 (n.n = (e) => { 16828 var t = e && e.__esModule ? () => e.default : () => e; 16829 return n.d(t, { a: t }), t; 16830 }), 16831 (n.d = (e, t) => { 16832 for (var r in t) n.o(t, r) && !n.o(e, r) && Object.defineProperty(e, r, { enumerable: !0, get: t[r] }); 16833 }), 16834 (n.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)), 16835 (() => { 16836 "use strict"; 16837 n(503); 16838 })(); 16839})(); 16840 16841/* End */ 16842; 16843; /* Start:"a:4:{s:4:"full";s:96:"/local/templates/sever/components/bitrix/search.suggest.input/.default/script.js?179059330012503";s:6:"source";s:80:"/local/templates/sever/components/bitrix/search.suggest.input/.default/script.js";s:3:"min";s:0:"";s:3:"map";s:0:"";}"*/ 16844function JsSuggest(oHandler, sParams, sParser) 16845{ 16846 var t = this; 16847 16848 t.oObj = oHandler; 16849 t.sParams = sParams; 16850 // Arrays for data 16851 if (sParser) 16852 { 16853 t.sExp = new RegExp("["+sParser+"]+", "i"); 16854 } 16855 else 16856 { 16857 t.sExp = new RegExp(","); 16858 } 16859 t.oLast = {"str":false, "arr":false}; 16860 t.oThis = {"str":false, "arr":false}; 16861 t.oEl = {"start":false, "end":false}; 16862 t.oUnfinedWords = {}; 16863 // Flags 16864 t.bReady = true; 16865 t.eFocus = true; 16866 // Array with results & it`s showing 16867 t.aDiv = null; 16868 t.oDiv = null; 16869 // Pointers 16870 t.oActive = null; 16871 t.oPointer = []; 16872 t.oPointer_default = []; 16873 t.oPointer_this = 'input_field'; 16874 16875 t.oObj.onblur = function() 16876 { 16877 t.eFocus = false; 16878 }; 16879 16880 t.oObj.onfocus = function() 16881 { 16882 if (!t.eFocus) 16883 { 16884 t.eFocus = true; 16885 setTimeout(function(){t.CheckModif('focus')}, 500); 16886 } 16887 }; 16888 16889 t.oLast["arr"] = t.oObj.value.split(t.sExp); 16890 t.oLast["str"] = t.oLast["arr"].join(":"); 16891 16892 setTimeout(function(){t.CheckModif('this')}, 500); 16893 16894 this.CheckModif = function(__data) 16895 { 16896 var 16897 sThis = false, tmp = 0, 16898 bUnfined = false, word = "", 16899 cursor = {}; 16900 16901 if (!t.eFocus) 16902 return; 16903 16904 if (t.bReady && t.oObj.value.length > 0) 16905 { 16906 // Preparing input data 16907 t.oThis["arr"] = t.oObj.value.split(t.sExp); 16908 t.oThis["str"] = t.oThis["arr"].join(":"); 16909 16910 // Getting modificated element 16911 if (t.oThis["str"] && (t.oThis["str"] != t.oLast["str"])) 16912 { 16913 cursor['position'] = TCJsUtils.getCursorPosition(t.oObj); 16914 if (cursor['position']['end'] > 0 && !t.sExp.test(t.oObj.value.substr(cursor['position']['end']-1, 1))) 16915 { 16916 cursor['arr'] = t.oObj.value.substr(0, cursor['position']['end']).split(t.sExp); 16917 sThis = t.oThis["arr"][cursor['arr'].length - 1]; 16918 16919 t.oEl['start'] = cursor['position']['end'] - cursor['arr'][cursor['arr'].length - 1].length; 16920 t.oEl['end'] = t.oEl['start'] + sThis.length; 16921 t.oEl['content'] = sThis; 16922 16923 t.oLast["arr"] = t.oThis["arr"]; 16924 t.oLast["str"] = t.oThis["str"]; 16925 } 16926 } 16927 if (sThis) 16928 { 16929 // Checking for UnfinedWords 16930 for (tmp = 2; tmp <= sThis.length; tmp++) 16931 { 16932 word = sThis.substr(0, tmp); 16933 if (t.oUnfinedWords[word] == '!fined') 16934 { 16935 bUnfined = true; 16936 break; 16937 } 16938 } 16939 if (!bUnfined) 16940 t.Send(sThis); 16941 } 16942 } 16943 setTimeout(function(){t.CheckModif('this')}, 500); 16944 }; 16945 16946 t.Send = function(sSearch) 16947 { 16948 if (!sSearch) 16949 return false;
16950 16951 var oError = []; 16952 t.bReady = false; 16953 if (BX('wait_container')) 16954 { 16955 BX('wait_container').innerHTML = BX.message('JS_CORE_LOADING'); 16956 BX.show(BX('wait_container')); 16957 } 16958 BX.ajax.post( 16959 '/bitrix/components/bitrix/search.suggest.input/search.php', 16960 {"search":sSearch, "params":t.sParams}, 16961 function(data) 16962 { 16963 var result = {}; 16964 t.bReady = true; 16965 16966 try 16967 { 16968 eval("result = " + data + ";"); 16969 } 16970 catch(e) 16971 { 16972 oError['result_unval'] = e; 16973 } 16974 16975 if (TCJsUtils.empty(result)) 16976 oError['result_empty'] = 'Empty result'; 16977 16978 try 16979 { 16980 if (TCJsUtils.empty(oError) && (typeof result == 'object')) 16981 { 16982 if (!(result.length == 1 && result[0]['NAME'] == t.oEl['content'])) 16983 { 16984 t.Show(result); 16985 return; 16986 } 16987 } 16988 else 16989 { 16990 t.oUnfinedWords[t.oEl['content']] = '!fined'; 16991 } 16992 } 16993 catch(e) 16994 { 16995 oError['unknown_error'] = e; 16996 } 16997 16998 if(BX('wait_container')) 16999 BX.hide(BX('wait_container')); 17000 } 17001 ); 17002 }; 17003 17004 t.Show = function(result) 17005 { 17006 t.Destroy(); 17007 t.oDiv = document.body.appendChild(document.createElement("DIV")); 17008 t.oDiv.id = t.oObj.id+'_div'; 17009 17010 t.oDiv.className = "search-popup"; 17011 t.oDiv.style.position = 'absolute'; 17012 17013 t.aDiv = t.Print(result); 17014 var pos = TCJsUtils.GetRealPos(t.oObj); 17015 t.oDiv.style.width = parseInt(pos["width"]) + "px"; 17016 TCJsUtils.show(t.oDiv, pos["left"], pos["bottom"]); 17017 TCJsUtils.addEvent(document, "click", t.CheckMouse); 17018 TCJsUtils.addEvent(document, "keydown", t.CheckKeyword); 17019 }; 17020 17021 t.Print = function(aArr) 17022 { 17023 var aEl = null; 17024 var aResult = {}; 17025 var iCnt = 0; 17026 var oDiv = null; 17027 var oSpan = null; 17028 var sPrefix = t.oDiv.id; 17029 17030 for (var tmp_ in aArr) 17031 { 17032 if (aArr.hasOwnProperty(tmp_)) 17033 { 17034 // Math 17035 aEl = aArr[tmp_]; 17036 17037 var aRes = {}; 17038 aRes['ID'] = (aEl['ID'] && aEl['ID'].length > 0) ? aEl['ID'] : iCnt++; 17039 aRes['GID'] = sPrefix + '_' + aRes['ID']; 17040 aRes['NAME'] = TCJsUtils.htmlspecialcharsEx(aEl['NAME']); 17041 aRes['CNT'] = aEl['CNT']; 17042 17043 aResult[aRes['GID']] = aRes; 17044 t.oPointer.push(aRes['GID']); 17045 // Graph 17046 oDiv = t.oDiv.appendChild(document.createElement("DIV")); 17047 oDiv.id = aRes['GID']; 17048 oDiv.name = sPrefix + '_div'; 17049 17050 oDiv.className = 'search-popup-row'; 17051 17052 oDiv.onmouseover = function(){t.Init(); this.className='search-popup-row-active';}; 17053 oDiv.onmouseout = function(){t.Init(); this.className='search-popup-row';}; 17054 oDiv.onclick = function(){t.oActive = this.id}; 17055 17056 oSpan = oDiv.appendChild(document.createElement("DIV")); 17057 oSpan.id = oDiv.id + '_NAME'; 17058 oSpan.className = "search-popup-el search-popup-el-cnt"; 17059 oSpan.innerHTML = aRes['CNT']; 17060 17061 oSpan = oDiv.appendChild(document.createElement("DIV")); 17062 oSpan.id = oDiv.id + '_NAME'; 17063 oSpan.className = "search-popup-el search-popup-el-name"; 17064 oSpan.innerHTML = aRes['NAME']; 17065 } 17066 } 17067 t.oPointer.push('input_field'); 17068 t.oPointer_default = t.oPointer; 17069 return aResult; 17070 }; 17071 17072 t.Destroy = function() 17073 { 17074 try 17075 { 17076 TCJsUtils.hide(t.oDiv); 17077 t.oDiv.parentNode.removeChild(t.oDiv); 17078 } 17079 catch(e) 17080 {} 17081 17082 t.aDiv = []; 17083 t.oPointer = []; 17084 t.oPointer_default = []; 17085 t.oPointer_this = 'input_field'; 17086 t.bReady = true; 17087 t.eFocus = true; 17088 t.oActive = null; 17089 17090 TCJsUtils.removeEvent(document, "click", t.CheckMouse); 17091 TCJsUtils.removeEvent(document, "keydown", t.CheckKeyword); 17092 }; 17093 17094 t.Replace = function() 17095 { 17096 if (typeof t.oActive == 'string') 17097 { 17098 var tmp = t.aDiv[t.oActive]; 17099 var tmp1 = ''; 17100 if (typeof tmp == 'object') 17101 { 17102 var elEntities = document.createElement("span"); 17103 elEntities.innerHTML = tmp['NAME'].replace(/"/g, '"').replace(/&/g, '&'); 17104 tmp1 = elEntities.innerHTML; 17105 } 17106 //this preserves leading spaces 17107 var start = t.oEl['start']; 17108 while(start < t.oObj.value.length && t.oObj.value.substring(start, start+1) == " ") 17109 start++; 17110 17111 t.oObj.value = t.oObj.value.substring(0, start) + tmp1.replace(/</g, '<').replace(/>/g, '>') + t.oObj.value.substr(t.oEl['end']); 17112 TCJsUtils.setCursorPosition(t.oObj, start + tmp1.length); 17113 } 17114 }; 17115 17116 t.Init = function() 17117 { 17118 t.oActive = false;
17119 t.oPointer = t.oPointer_default; 17120 t.Clear(); 17121 t.oPointer_this = 'input_pointer'; 17122 }; 17123 17124 t.Clear = function() 17125 { 17126 var oEl = t.oDiv.getElementsByTagName("div"); 17127 if (oEl.length > 0 && typeof oEl == 'object') 17128 { 17129 for (var ii in oEl) 17130 { 17131 if (oEl.hasOwnProperty(ii)) 17132 { 17133 var oE = oEl[ii]; 17134 if (oE && (typeof oE == 'object') && (oE.name == t.oDiv.id + '_div')) 17135 { 17136 oE.className = "search-popup-row"; 17137 } 17138 } 17139 } 17140 } 17141 }; 17142 17143 t.CheckMouse = function() 17144 { 17145 t.Replace(); 17146 t.Destroy(); 17147 }; 17148 17149 t.CheckKeyword = function(e) 17150 { 17151 if (!e) 17152 e = window.event; 17153 17154 var oP = null; 17155 var oEl = null; 17156 17157 if ((37 < e.keyCode && e.keyCode <41) || (e.keyCode == 13)) 17158 { 17159 t.Clear(); 17160 17161 switch (e.keyCode) 17162 { 17163 case 38: 17164 oP = t.oPointer.pop(); 17165 if (t.oPointer_this == oP) 17166 { 17167 t.oPointer.unshift(oP); 17168 oP = t.oPointer.pop(); 17169 } 17170 17171 if (oP != 'input_field') 17172 { 17173 t.oActive = oP; 17174 oEl = document.getElementById(oP); 17175 if (typeof oEl == 'object') 17176 { 17177 oEl.className = "search-popup-row-active"; 17178 } 17179 } 17180 t.oPointer.unshift(oP); 17181 break; 17182 case 40: 17183 oP = t.oPointer.shift(); 17184 if (t.oPointer_this == oP) 17185 { 17186 t.oPointer.push(oP); 17187 oP = t.oPointer.shift(); 17188 } 17189 if (oP != 'input_field') 17190 { 17191 t.oActive = oP; 17192 oEl = document.getElementById(oP); 17193 if (typeof oEl == 'object') 17194 { 17195 oEl.className = "search-popup-row-active"; 17196 } 17197 } 17198 t.oPointer.push(oP); 17199 break; 17200 case 39: 17201 t.Replace(); 17202 t.Destroy(); 17203 break; 17204 case 13: 17205 t.Replace(); 17206 t.Destroy(); 17207 break; 17208 } 17209 t.oPointer_this = oP; 17210 } 17211 else 17212 { 17213 t.Destroy(); 17214 } 17215 }; 17216} 17217 17218var TCJsUtils = 17219{ 17220 arEvents: [], 17221 17222 addEvent: function(el, evname, func) 17223 { 17224 if(el.attachEvent) // IE 17225 el.attachEvent("on" + evname, func); 17226 else if(el.addEventListener) // Gecko / W3C 17227 el.addEventListener(evname, func, false); 17228 else 17229 el["on" + evname] = func; 17230 this.arEvents[this.arEvents.length] = {'element': el, 'event': evname, 'fn': func}; 17231 }, 17232 17233 removeEvent: function(el, evname, func) 17234 { 17235 if(el.detachEvent) // IE 17236 el.detachEvent("on" + evname, func); 17237 else if(el.removeEventListener) // Gecko / W3C 17238 el.removeEventListener(evname, func, false); 17239 else 17240 el["on" + evname] = null; 17241 }, 17242 17243 getCursorPosition: function(oObj) 17244 { 17245 var result = {'start': 0, 'end': 0}; 17246 if (!oObj || (typeof oObj != 'object')) 17247 return result; 17248 try 17249 { 17250 if (document.selection != null && oObj.selectionStart == null) 17251 { 17252 oObj.focus(); 17253 var oRange = document.selection.createRange(); 17254 var oParent = oRange.parentElement(); 17255 var sBookmark = oRange.getBookmark(); 17256 var sContents = oObj.value; 17257 var sContents_ = oObj.value; 17258 var sMarker = '__' + Math.random() + '__'; 17259 17260 while(sContents.indexOf(sMarker) != -1) 17261 { 17262 sMarker = '__' + Math.random() + '__'; 17263 } 17264 17265 if (!oParent || oParent == null || (oParent.type != "textarea" && oParent.type != "text")) 17266 { 17267 return result; 17268 } 17269 17270 oRange.text = sMarker + oRange.text + sMarker; 17271 sContents = oObj.value; 17272 result['start'] = sContents.indexOf(sMarker); 17273 sContents = sContents.replace(sMarker, ""); 17274 result['end'] = sContents.indexOf(sMarker); 17275 oObj.value = sContents_; 17276 oRange.moveToBookmark(sBookmark); 17277 oRange.select(); 17278 return result; 17279 } 17280 else 17281 { 17282 return { 17283 'start': oObj.selectionStart, 17284 'end': oObj.selectionEnd 17285 }; 17286 } 17287 } 17288 catch(e){} 17289 return result; 17290 }, 17291 17292 setCursorPosition: function(oObj, iPosition) 17293 { 17294 if (typeof oObj != 'object') 17295 return false; 17296 17297 oObj.focus(); 17298 17299 try 17300 { 17301 if (document.selection != null && oObj.selectionStart == null) 17302 { 17303 var oRange = document.selection.createRange(); 17304 oRange.select(); 17305 } 17306 else 17307 { 17308 oObj.selectionStart = iPosition; 17309 oObj.selectionEnd = iPosition; 17310 } 17311 return true; 17312 } 17313 catch(e) 17314 { 17315 return false; 17316 } 17317 17318 }, 17319 17320 printArray: function (oObj, sParser, iLevel) 17321 { 17322 try 17323 { 17324 var result = ''; 17325 var space = ''; 17326 17327 if (iLevel==undefined) 17328 iLevel = 0; 17329 if (!sParser) 17330 sParser = "\n"; 17331 17332 for (var j = 0;
17332 j <= iLevel; j++) 17333 space += ' '; 17334 17335 for (var i in oObj) 17336 { 17337 if (oObj.hasOwnProperty(i)) 17338 { 17339 if (typeof oObj[i] == 'object') 17340 result += space+i + " = {"+ sParser + TCJsUtils.printArray(oObj[i], sParser, iLevel+1) + ", " + sParser + "}" + sParser; 17341 else 17342 result += space+i + " = " + oObj[i] + "; " + sParser; 17343 } 17344 } 17345 17346 return result; 17347 } 17348 catch(e) 17349 { 17350 } 17351 }, 17352 17353 empty: function(oObj) 17354 { 17355 var result = true; 17356 if (oObj) 17357 { 17358 for (var i in oObj) 17359 { 17360 if (oObj.hasOwnProperty(i)) 17361 { 17362 result = false; 17363 break; 17364 } 17365 } 17366 } 17367 return result; 17368 }, 17369 17370 show: function(oDiv, iLeft, iTop) 17371 { 17372 if (typeof oDiv != 'object') 17373 return; 17374 var zIndex = parseInt(oDiv.style.zIndex); 17375 if(zIndex <= 0 || isNaN(zIndex)) 17376 zIndex = 100; 17377 oDiv.style.zIndex = zIndex; 17378 oDiv.style.left = iLeft + "px"; 17379 oDiv.style.top = iTop + "px"; 17380 17381 return oDiv; 17382 }, 17383 17384 hide: function(oDiv) 17385 { 17386 if(oDiv) 17387 oDiv.style.display = 'none'; 17388 }, 17389 17390 GetRealPos: function(el) 17391 { 17392 if(!el || !el.offsetParent) 17393 return false; 17394 17395 var res = {}; 17396 var objParent = el.offsetParent; 17397 res["left"] = el.offsetLeft; 17398 res["top"] = el.offsetTop; 17399 while(objParent && objParent.tagName != "BODY") 17400 { 17401 res["left"] += objParent.offsetLeft; 17402 res["top"] += objParent.offsetTop; 17403 objParent = objParent.offsetParent; 17404 } 17405 res["right"]=res["left"] + el.offsetWidth; 17406 res["bottom"]=res["top"] + el.offsetHeight; 17407 res["width"]=el.offsetWidth; 17408 res["height"]=el.offsetHeight; 17409 17410 return res; 17411 }, 17412 17413 htmlspecialcharsEx: function(str) 17414 { 17415 return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"'); 17416 }, 17417 17418 htmlspecialcharsback: function(str) 17419 { 17420 return str.replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/&/g, '&'); 17421 } 17422}; 17423 17424/* End */ 17425; 17426; /* Start:"a:4:{s:4:"full";s:102:"/local/templates/sever/components/bitrix/sale.basket.basket.line/.default/script.min.js?17905933003876";s:6:"source";s:83:"/local/templates/sever/components/bitrix/sale.basket.basket.line/.default/script.js";s:3:"min";s:87:"/local/templates/sever/components/bitrix/sale.basket.basket.line/.default/script.min.js";s:3:"map";s:87:"/local/templates/sever/components/bitrix/sale.basket.basket.line/.default/script.map.js";}"*/ 17427"use strict";function BitrixSmallCart(){}BitrixSmallCart.prototype={activate:function(){this.cartElement=BX(this.cartId);this.fixedPosition=this.arParams.POSITION_FIXED=="Y";if(this.fixedPosition){this.cartClosed=true;this.maxHeight=false;this.itemRemoved=false;this.verticalPosition=this.arParams.POSITION_VERTICAL;this.horizontalPosition=this.arParams.POSITION_HORIZONTAL;this.topPanelElement=BX("bx-panel");this.fixAfterRender();this.fixAfterRenderClosure=this.closure("fixAfterRender");var t=this.closure("fixCart");this.fixCartClosure=t;if(this.topPanelElement&&this.verticalPosition=="top")BX.addCustomEvent(window,"onTopPanelCollapse",t);var e=null;BX.bind(window,"resize",function(){clearTimeout(e);e=setTimeout(t,200)})}this.setCartBodyClosure=this.closure("setCartBody");BX.addCustomEvent(window,"OnBasketChange",this.closure("refreshCart",{}))},fixAfterRender:function(){this.statusElement=BX(this.cartId+"status");if(this.statusElement){if(this.cartClosed)this.statusElement.innerHTML=this.openMessage;else this.statusElement.innerHTML=this.closeMessage}this.productsElement=BX(this.cartId+"products");this.fixCart()},closure:function(t,e){var i=this;return e?function(){i[t](e)}:function(e){i[t](e)}},toggleOpenCloseCart:function(){if(this.cartClosed){BX.removeClass(this.cartElement,"bx-closed");BX.addClass(this.cartElement,"bx-opener");this.statusElement.innerHTML=this.closeMessage;this.cartClosed=false;this.fixCart()}else{BX.addClass(this.cartElement,"bx-closed");BX.removeClass(this.cartElement,"bx-opener");BX.removeClass(this.cartElement,"bx-max-height");this.statusElement.innerHTML=this.openMessage;this.cartClosed=true;var t=this.cartElement.querySelector("[data-role='basket-item-list']");if(t)t.style.top="auto"}setTimeout(this.fixCartClosure,100)},setVerticalCenter:function(t){var e=t/2-this.cartElement.offsetHeight/2;if(e<5)e=5;this.cartElement.style.top=e+"px"},fixCart:function(){if(this.horizontalPosition=="hcenter"){var t="innerWidth"in window?window.innerWidth:document.documentElement.offsetWidth;var e=t/2-this.cartElement.offsetWidth/2;if(e<5)e=5;this.cartElement.style.left=e+"px"}var i="innerHeight"in window?window.innerHeight:document.documentElement.offsetHeight;switch(this.verticalPosition){case"top":if(this.topPanelElement)this.cartElement.style.top=this.topPanelElement.offsetHeight+5+"px";break;
17427case"vcenter":this.setVerticalCenter(i);break}if(this.productsElement){var s=this.cartElement.querySelector("[data-role='basket-item-list']");if(this.cartClosed){if(this.maxHeight){BX.removeClass(this.cartElement,"bx-max-height");if(s)s.style.top="auto";this.maxHeight=false}}else{if(this.maxHeight){if(this.productsElement.scrollHeight==this.productsElement.clientHeight){BX.removeClass(this.cartElement,"bx-max-height");if(s)s.style.top="auto";this.maxHeight=false}}else{if(this.verticalPosition=="top"||this.verticalPosition=="vcenter"){if(this.cartElement.offsetTop+this.cartElement.offsetHeight>=i){BX.addClass(this.cartElement,"bx-max-height");if(s)s.style.top=82+"px";this.maxHeight=true}}else{if(this.cartElement.offsetHeight>=i){BX.addClass(this.cartElement,"bx-max-height");if(s)s.style.top=82+"px";this.maxHeight=true}}}}if(this.verticalPosition=="vcenter")this.setVerticalCenter(i)}},refreshCart:function(t){if(this.itemRemoved){this.itemRemoved=false;return}t.sessid=BX.bitrix_sessid();t.siteId=this.siteId;t.templateName=this.templateName;t.arParams=this.arParams;BX.ajax({url:this.ajaxPath,method:"POST",dataType:"html",data:t,onsuccess:this.setCartBodyClosure})},setCartBody:function(t){if(this.cartElement)this.cartElement.innerHTML=t.replace(/#CURRENT_URL#/g,this.currentUrl);if(this.fixedPosition)setTimeout(this.fixAfterRenderClosure,100)},removeItemFromCart:function(t){this.refreshCart({sbblRemoveItemFromCart:t});this.itemRemoved=true;BX.onCustomEvent("OnBasketChange")}}; 17428/* End */ 17429; 17430; /* Start:"a:4:{s:4:"full";s:98:"/local/templates/sever/components/bitrix/catalog.section/calc-form-multi/script.js?179059330020356";s:6:"source";s:82:"/local/templates/sever/components/bitrix/catalog.section/calc-form-multi/script.js";s:3:"min";s:0:"";s:3:"map";s:0:"";}"*/ 17431 17432class CalcFormBlock { 17433 17434 constructor(materials, sections, items, updateCallback) { 17435 this.materials = materials 17436 this.sections = sections 17437 this.items = items 17438 this.updateCallback = updateCallback 17439 this.selectedItem = { 17440 price: null, 17441 quantity: null, 17442 measure: null, 17443 id: null, 17444 } 17445 17446 this.materialSelector = this.createMaterialSelector() 17447 this.sectionSelector = this.createSectionSelector() 17448 this.itemSelector = this.createItemSelector() 17449 this.quantityInput = this.createQuantityInput() 17450 this.materialChangeHandler() 17451 } 17452 17453 createMaterialSelector() { 17454 const select = document.createElement('select') 17455 select.setAttribute('name', 'material') 17456 select.setAttribute('class', 'my-sel') 17457 select.setAttribute('id', 'material') 17458 select.innerHTML = this.materials.map(material => `<option value="${material.code}">${material.name}</option>`).join('') 17459 this.materialSelector = select 17460 this.materialSelector.addEventListener('change', () => { 17461 this.materialChangeHandler() 17462 }) 17463 return select 17464 } 17465 17466 createSectionSelector() { 17467 const select = document.createElement('select') 17468 select.setAttribute('name', 'section') 17469 select.setAttribute('class', 'my-sel') 17470 select.setAttribute('id', 'section') 17471 select.innerHTML = this.sections.map(section => ` 17472 <option value="${section.id}" data-materials="${section.materials.join(',')}"> 17473 ${section.name} 17474 </option> 17475 `).join('') 17476 this.sectionSelector = select 17477 this.sectionSelector.addEventListener('change', () => { 17478 this.sectionChangeHandler() 17479 }) 17480 return select 17481 } 17482 17483 createItemSelector() { 17484 const select = document.createElement('select') 17485 select.setAttribute('name', 'item') 17486 select.setAttribute('class', 'my-sel') 17487 select.setAttribute('id', 'item') 17488 17489 select.innerHTML = this.items.map(item => ` 17490 <option data-material="${item.material}" 17491 data-section="${item.sections}" 17492 data-measure="${item.measure}" 17493 data-price="${item.price}" 17494 value="${item.id}"> 17495 ${item.name} 17496 </option> 17497 `).join('') 17498 17499 this.itemSelector = select 17500 select.addEventListener('change', () => { 17501 this.itemChangeHandler() 17502 }) 17503 return select 17504 } 17505 17506 createQuantityInput() { 17507 const quantityInput = document.createElement('input') 17508 quantityInput.setAttribute('data-entity', 'quantity') 17509 quantityInput.setAttribute('name', 'quantity') 17510 quantityInput.setAttribute('type', 'number') 17511 quantityInput.setAttribute('value', '1') 17512 17513 return quantityInput 17514 } 17515 17516 materialChangeHandler() { 17517 const selectedOption = this.materialSelector.options[this.materialSelector.selectedIndex] 17518 const material = selectedOption.value 17519 let isSectionSelected = false
17520 Array.from(this.sectionSelector.options).forEach(option => { 17521 17522 const materials = option.getAttribute('data-materials').split(',').map(material => material.trim()) 17523 17524 if (materials.includes(material)) { 17525 option.style.display = 'block' 17526 if(!isSectionSelected) { 17527 isSectionSelected = true 17528 option.selected = true 17529 } 17530 } else { 17531 option.style.display = 'none' 17532 } 17533 17534 }) 17535 this.sectionChangeHandler() 17536 } 17537 17538 sectionChangeHandler() { 17539 const selectedOption = this.sectionSelector.options[this.sectionSelector.selectedIndex] 17540 const section = Number.parseInt(selectedOption.value) 17541 let isItemSelected = false 17542 Array.from(this.itemSelector.options).forEach(option => { 17543 17544 const itemSection = Number.parseInt(option.getAttribute('data-section')) 17545 17546 if (itemSection === section) { 17547 option.style.display = 'block' 17548 if(!isItemSelected) { 17549 isItemSelected = true 17550 option.selected = true 17551 } 17552 } else { 17553 option.style.display = 'none' 17554 } 17555 17556 }) 17557 this.itemChangeHandler() 17558 } 17559 17560 itemChangeHandler() { 17561 const option = this.itemSelector.options[this.itemSelector.selectedIndex] 17562 this.selectedItem.price = Number.parseFloat(option.getAttribute('data-price')) 17563 this.selectedItem.measure = option.getAttribute('data-measure') 17564 this.selectedItem.quantity = 1 17565 this.quantityInput.value = this.selectedItem.quantity 17566 this.selectedItem.id = option.value 17567 17568 this.updateCallback(this.selectedItem) 17569 } 17570 17571 quantityChangeHandler(fn) { 17572 const newValue = fn(this.selectedItem.quantity) 17573 if (newValue > 0) { 17574 this.selectedItem.quantity = newValue 17575 } 17576 17577 this.quantityInput.value = this.selectedItem.quantity 17578 this.updateCallback(this.selectedItem) 17579 } 17580 17581 renderItemSelector(selector, id, labelText, size) { 17582 const col = document.createElement('div') 17583 size.forEach(className => col.classList.add(className)) 17584 17585 const formGroup = document.createElement('div') 17586 formGroup.classList.add('form-group') 17587 17588 const label = document.createElement('label') 17589 label.setAttribute('for', id) 17590 label.innerHTML = `<span>${labelText}</span>` 17591 17592 const select = document.createElement('div') 17593 select.classList.add('select') 17594 select.appendChild(selector) 17595 17596 formGroup.appendChild(label) 17597 formGroup.appendChild(select) 17598 col.appendChild(formGroup) 17599 return col 17600 } 17601 17602 renderQuantityBlock(id, labelText, sizes) { 17603 const col = document.createElement('div') 17604 col.classList.add(...sizes) 17605 17606 const label = document.createElement('label') 17607 label.setAttribute('for', id) 17608 label.innerHTML = `<span>${labelText}</span>` 17609 17610 col.appendChild(label) 17611 17612 const quantityBlock = document.createElement('div') 17613 quantityBlock.classList.add('calc-form__form__quantity', 'flex', 'space-between') 17614 col.appendChild(quantityBlock) 17615 17616 const quantityDown = document.createElement('a') 17617 quantityDown.setAttribute('data-entity', 'quantityDown') 17618 quantityDown.setAttribute('id', `calcQuantityDown${id}`) 17619 quantityDown.classList.add('calc-form__form__quantity-minus', 'minus') 17620 quantityDown.innerHTML = '-' 17621 quantityBlock.appendChild(quantityDown) 17622 quantityDown.addEventListener('click', () => { 17623 this.quantityChangeHandler((v) => v - 1) 17624 }) 17625 17626 17627 this.quantityInput.setAttribute('id', `calcQuantity${id}`) 17628 17629 const quantityUp = document.createElement('a') 17630 quantityUp.setAttribute('data-entity', 'quantityUp') 17631 quantityUp.setAttribute('id', `calcQuantityUp${id}`) 17632 quantityUp.classList.add('calc-form__form__quantity-plus', 'plus') 17633 quantityUp.innerHTML = '+' 17634 17635 quantityUp.addEventListener('click', () => { 17636 this.quantityChangeHandler((v) => v + 1) 17637 }) 17638 17639 quantityBlock.appendChild(quantityDown) 17640 quantityBlock.appendChild(this.quantityInput) 17641 quantityBlock.appendChild(quantityUp) 17642 17643 col.appendChild(quantityBlock) 17644 return col 17645 } 17646 17647 render(id) { 17648 17649 this.materialSelector.setAttribute('name', 'material' + id) 17650 this.sectionSelector.setAttribute('name', 'section' + id) 17651 this.itemSelector.setAttribute('name', 'item' + id) 17652 17653 this.materialSelector.onchange = () => { 17654 console.log('materialChangeHandler') 17655 this.materialChangeHandler() 17656 } 17657 17658 this.sectionSelector.onchange = () => { 17659 console.log('sectionChangeHandler') 17660 this.sectionChangeHandler() 17661 } 17662 17663 this.itemSelector.onchange = () => { 17664 console.log('itemChangeHandler') 17665 this.itemChangeHandler() 17666 } 17667 17668 const wrapper = document.createElement('div') 17669 wrapper.classList.add('row') 17670 17671 wrapper.appendChild(this.renderItemSelector(this.materialSelector, 'material' + id, 'ÐÑевеÑина', ['col-12', 'col-md-6'])) 17672 wrapper.appendChild(this.renderItemSelector(this.sectionSelector, 'section' + id , 'Тип', ['col-12', 'col-md-6'])) 17673 wrapper.appendChild(this.renderItemSelector(this.itemSelector, 'item' + id, 'РазмеÑÑ', ['col-12', 'col-md-8'])) 17674 17675 wrapper.appendChild(this.renderQuantityBlock("quantity" + id, 'ÐолиÑеÑÑво', ['col-12', 'col-md-4'])) 17676 17677 return wrapper 17678 } 17679 17680} 17681 17682 17683document.addEventListener('DOMContentLoaded', () => { 17684 document.querySelectorAll('[data-entity="calc"]').forEach(calc => { 17685 const root = calc.querySelector(`.calc-form__items`); 17686 const priceBlock = calc.querySelector(`[data-entity="price"]`); 17687 const addBtn = calc.querySelector(`[data-entity="add"]`); 17688 const removeBtn = calc.querySelector(`[data-entity="remove"]`); 17689 const submit = calc.querySelector(`[data-entity="submit"]`); 17690 17691 17692 const calcFormBlocksList = []; 17693 17694 const updateCalcItemHook = (_) => { 17695 console.log(calcFormBlocksList.map(block => block.selectedItem)) 17696 const totalPrice = calcFormBlocksList.reduce((acc, block) => acc + block.selectedItem.price * block.selectedItem.quantity, 0) 17697 17698 priceBlock.innerHTML = `${totalPrice} ÑÑб.` 17699 17700 if (calcFormBlocksList.length === 1) { 17701 removeBtn.style.display = 'none' 17702 } else { 17703 removeBtn.style.display = 'block' 17704 } 17705 } 17706 17707 const addCalcItem = () => { 17708 calcFormBlocksList.push(new CalcFormBlock(window.initData.materials, window.initData.sections, window.initData.items, updateCalcItemHook)) 17709 17710 const lastBlock = calcFormBlocksList[calcFormBlocksList.length - 1] 17711 lastBlock.updateCallback(lastBlock.selectedItem) 17712 root.appendChild(lastBlock.render(calcFormBlocksList.length - 1)) 17713 17714 updateCalcItemHook() 17715 } 17716 17717 const removeCalcItem = () => { 17718 if (calcFormBlocksList.length === 1) return 17719 calcFormBlocksList.pop() 17720 17721 root.removeChild(root.lastChild) 17722 17723 updateCalcItemHook() 17724 } 17725 17726 addCalcItem() 17727 17728 addBtn.addEventListener('click', () => { 17729 addCalcItem() 17730 }) 17731 17732 removeBtn.addEventListener('click', () => { 17733 removeCalcItem() 17734 }) 17735 17736 submit.addEventListener('click', () => { 17737 const urls = calcFormBlocksList.map(block => { 17738 return { 17739 url: `?action=BUY&id=${block.selectedItem.id}`, 17740 params: { 17741 'ajax_basket': 'Y', 17742 'quantity': block.selectedItem.quantity 17743 }, 17744 isFinished: false 17745 } 17746 }) 17747
17748 urls.forEach(({url, params}, index) => { 17749 BX.ajax({ 17750 method: 'POST', 17751 dataType: 'json', 17752 url: url, 17753 data: params, 17754 onsuccess: function(data) { 17755 urls[index].isFinished = true 17756 if (urls.every(url => url.isFinished)) { 17757 window.location.href = '/cart/' 17758 } 17759 } 17760 }); 17761 }) 17762 }) 17763 }) 17764}) 17765 17766 17767/* ========================================================================== 17768 ÐаÑÑомнÑе вÑпадаÑÑие ÑпиÑки калÑкÑлÑÑоÑа (tz6, 13.08.2026) 17769 17770 ÐаÑивнÑй <select> оÑÑаÑÑÑÑ Ð² DOM и пÑÐ¾Ð´Ð¾Ð»Ð¶Ð°ÐµÑ Ð½ÐµÑÑи вÑÑ Ð»Ð¾Ð³Ð¸ÐºÑ ÐºÐ°Ñкада 17771 (маÑеÑиал â Ñип â ÑазмеÑ, ÑилÑÑÑаÑÐ¸Ñ ÑеÑез option.style.display) â повеÑÑ 17772 него ÑиÑÑеÑÑÑ Ñвой ÑпиÑок, одинаковÑй во вÑÐµÑ Ð±ÑаÑзеÑÐ°Ñ . Ðаодно ÑиниÑÑÑ 17773 Safari: он игноÑиÑÑÐµÑ display:none Ñ <option>, и в наÑивном ÑпиÑке Ñам 17774 бÑли Ð²Ð¸Ð´Ð½Ñ Ð²Ñе 478 позиÑий без ÑилÑÑÑаÑии. 17775 17776 ÐÑÐ±Ð¾Ñ Ð¿ÑнкÑа: select.value + ÑобÑÑие change â каÑкад ÑдÑа оÑÑабаÑÑÐ²Ð°ÐµÑ 17777 как Ð¾Ñ Ð½Ð°Ñивного вÑбоÑа. ÐÑнкÑÑ ÑпиÑка ÑÑÑоÑÑÑÑ Ð·Ð°Ð½Ð¾Ð²Ð¾ пÑи ÐÐÐÐÐÐ 17778 оÑкÑÑÑии из акÑÑалÑного ÑоÑÑоÑÐ½Ð¸Ñ select â поÑÑÐ¾Ð¼Ñ ÐºÐ°ÑкаднÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ 17779 (ÑдÑо менÑÐµÑ Ð¾Ð¿Ñии напÑÑмÑÑ, без ÑобÑÑий) вÑегда оÑÑаженÑ. 17780 17781 У длиннÑÑ ÑпиÑков (Ð¾Ñ 16 опÑий â ÑÑо «РазмеÑÑ», 478 позиÑий) в Ñапке 17782 панели еÑÑÑ Ð¿Ð¾Ð¸Ñк: ÑилÑÑÑÑÐµÑ Ð±ÐµÐ· пеÑезагÑÑзки, Ñ=е. 17783 ========================================================================== */ 17784;(function () { 17785 'use strict'; 17786 17787 var SEARCH_FROM = 16; 17788 17789 function norm(s) { 17790 /* Ñ=е, лаÑинÑÐºÐ°Ñ x = киÑиллиÑеÑÐºÐ°Ñ Ñ (в ÑазмеÑÐ°Ñ Â«14Ñ 120» â киÑиллиÑа, 17791 а Ñ ÐºÐ»Ð°Ð²Ð¸Ð°ÑÑÑÑ ÑаÑÑо набиÑаÑÑ Ð»Ð°ÑиниÑей) */ 17792 return s.toLowerCase().replace(/Ñ/g, 'е').replace(/[xÃ]/g, 'Ñ ').trim(); 17793 } 17794 17795 /* поÑловнÑй ÑилÑÑÑ: каждое Ñлово запÑоÑа должно вÑÑÑеÑиÑÑÑÑ Ð² названии */ 17796 function matches(text, query) { 17797 var words = query.split(/\s+/).filter(Boolean); 17798 for (var i = 0; i < words.length; i++) { 17799 if (text.indexOf(words[i]) === -1) return false; 17800 } 17801 return true; 17802 } 17803 17804 function visibleOptions(sel) { 17805 return Array.prototype.filter.call(sel.options, function (o) { 17806 return o.style.display !== 'none'; 17807 }); 17808 } 17809 17810 function closeAll(except) { 17811 document.querySelectorAll('.select.csel-open').forEach(function (w) { 17812 if (w === except) return; 17813 w.classList.remove('csel-open', 'csel-up'); 17814 var t = w.querySelector('.csel__toggle'); 17815 if (t) t.setAttribute('aria-expanded', 'false'); 17816 }); 17817 } 17818 17819 function initSelect(sel) { 17820 if (sel.dataset.cselReady) return; 17821 var wrap = sel.closest('.select'); 17822 if (!wrap) return; 17823 sel.dataset.cselReady = '1'; 17824 17825 var toggle = document.createElement('button'); 17826 toggle.type = 'button'; 17827 toggle.className = 'csel__toggle'; 17828 toggle.setAttribute('aria-haspopup', 'listbox'); 17829 toggle.setAttribute('aria-expanded', 'false'); 17830 17831 var drop = document.createElement('div'); 17832 drop.className = 'csel__drop'; 17833 17834 var list = document.createElement('div'); 17835 list.className = 'csel__list'; 17836 drop.appendChild(list); 17837 17838 var search = null; 17839 17840 wrap.appendChild(toggle); 17841 wrap.appendChild(drop); 17842 wrap.classList.add('csel'); 17843 17844 function syncLabel() { 17845 var o = sel.options[sel.selectedIndex]; 17846 toggle.textContent = o ? o.textContent.trim() : ''; 17847 } 17848 17849 function build(query) { 17850 list.innerHTML = '';
17851 var q = norm(query || ''); 17852 visibleOptions(sel).forEach(function (o) { 17853 var text = o.textContent.trim(); 17854 if (q && !matches(norm(text), q)) return; 17855 var it = document.createElement('button'); 17856 it.type = 'button'; 17857 it.className = 'csel__item' + (o.selected ? ' is-selected' : ''); 17858 it.textContent = text; 17859 it.addEventListener('click', function () { 17860 sel.value = o.value; 17861 sel.dispatchEvent(new Event('change', { bubbles: true })); 17862 close(); 17863 toggle.focus(); 17864 }); 17865 list.appendChild(it); 17866 }); 17867 if (!list.children.length) { 17868 var empty = document.createElement('div'); 17869 empty.className = 'csel__empty'; 17870 empty.textContent = 'ÐиÑего не найдено'; 17871 list.appendChild(empty); 17872 } 17873 } 17874 17875 function open() { 17876 closeAll(wrap); 17877 if (!search && visibleOptions(sel).length >= SEARCH_FROM) { 17878 search = document.createElement('input'); 17879 search.type = 'text'; 17880 search.className = 'csel__search'; 17881 search.placeholder = 'ÐоиÑк по ÑазмеÑам'; 17882 search.setAttribute('aria-label', 'ÐоиÑк по ваÑианÑам'); 17883 search.addEventListener('input', function () { build(search.value); }); 17884 drop.insertBefore(search, list); 17885 } 17886 if (search) search.value = ''; 17887 build(''); 17888 wrap.classList.add('csel-open'); 17889 toggle.setAttribute('aria-expanded', 'true'); 17890 17891 // еÑли ÑÐ½Ð¸Ð·Ñ Ð½Ðµ Ñ Ð²Ð°ÑÐ°ÐµÑ Ð¼ÐµÑÑа â ÑаÑкÑÑваем ввеÑÑ 17892 var r = toggle.getBoundingClientRect(); 17893 var dropH = Math.min(340, drop.scrollHeight || 340); 17894 wrap.classList.toggle('csel-up', r.bottom + dropH > window.innerHeight && r.top > dropH); 17895 17896 if (search) search.focus(); 17897 } 17898 17899 function close() { 17900 wrap.classList.remove('csel-open', 'csel-up'); 17901 toggle.setAttribute('aria-expanded', 'false'); 17902 } 17903 17904 toggle.addEventListener('click', function () { 17905 wrap.classList.contains('csel-open') ? close() : open(); 17906 }); 17907 17908 /* каÑкад ÑдÑа менÑÐµÑ ÑоÑедние ÑелекÑÑ ÑÐ¸Ð½Ñ Ñонно из change-обÑабоÑÑика â 17909 поÑле завеÑÑÐµÐ½Ð¸Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»Ñем подпиÑи вÑÐµÑ Ð¿Ð¾Ð»ÐµÐ¹ ÑÑда */ 17910 sel.addEventListener('change', function () { 17911 var row = sel.closest('.row') || document; 17912 setTimeout(function () { 17913 row.querySelectorAll('select[data-csel-ready]').forEach(function (s) { 17914 var w = s.closest('.select'); 17915 var t = w && w.querySelector('.csel__toggle'); 17916 var o = s.options[s.selectedIndex]; 17917 if (t) t.textContent = o ? o.textContent.trim() : ''; 17918 }); 17919 }, 0); 17920 }); 17921 17922 syncLabel(); 17923 } 17924 17925 function initAllIn(root) { 17926 (root || document).querySelectorAll('.calc-form__items select').forEach(initSelect); 17927 } 17928 17929 /* закÑÑÑие по наÑÑоÑÑÐµÐ¼Ñ ÐºÐ»Ð¸ÐºÑ Ð²Ð½Ðµ (авÑопÑокÑÑÑка ÑлайдеÑа на главной 17930 каждÑе 7 Ñ Ð³ÐµÐ½ÐµÑиÑÑÐµÑ Ð¿ÑогÑаммнÑе клики â Ð¸Ñ Ð¸Ð³Ð½Ð¾ÑиÑÑем) */ 17931 document.addEventListener('click', function (e) { 17932 if (!e.isTrusted) return; 17933 if (e.target && e.target.closest && e.target.closest('.select.csel')) return; 17934 closeAll(null); 17935 }); 17936 17937 /* Escape закÑÑÐ²Ð°ÐµÑ ÑолÑко ÑаÑкÑÑÑÑй ÑпиÑок; модалка пÑи ÑÑом оÑÑаÑÑÑÑ 17938 оÑкÑÑÑой (bootstrap ÑлÑÑÐ°ÐµÑ keydown позже Ð½Ð°Ñ â глÑÑим вÑплÑÑие) */ 17939 document.addEventListener('keydown', function (e) { 17940 if (e.key !== 'Escape' && e.key !== 'Esc' && e.keyCode !== 27) return; 17941 var openWrap = document.querySelector('.select.csel-open'); 17942 if (!openWrap) return; 17943 e.stopPropagation(); 17944 openWrap.classList.remove('csel-open', 'csel-up'); 17945 var t = openWrap.querySelector('.csel__toggle'); 17946 if (t) { t.setAttribute('aria-expanded', 'false');
17946 t.focus(); } 17947 }, true); 17948 17949 function boot() { 17950 initAllIn(document); 17951 /* кнопка «ÐобавиÑÑ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð² ÑаÑÑÑÑ» ÑоздаÑÑ Ð½Ð¾Ð²Ñе ÑÑÐ´Ñ â Ð¿Ð¾Ð´Ñ Ð²Ð°ÑÑваем */ 17952 document.querySelectorAll('.calc-form__items').forEach(function (rootEl) { 17953 new MutationObserver(function () { initAllIn(rootEl); }).observe(rootEl, { childList: true, subtree: true }); 17954 }); 17955 } 17956 17957 if (document.readyState === 'loading') { 17958 document.addEventListener('DOMContentLoaded', boot); 17959 } else { 17960 boot(); 17961 } 17962})(); 17963 17964/* End */ 17965;; /* /local/templates/sever/build/main.e0b7c601.js?1790593303722209*/ 17966; /* /local/templates/sever/build/common.e0b7c601.js?1790593303256616*/ 17967; /* /local/templates/sever/components/bitrix/search.suggest.input/.default/script.js?179059330012503*/ 17968; /* /local/templates/sever/components/bitrix/sale.basket.basket.line/.default/script.min.js?17905933003876*/ 17969; /* /local/templates/sever/components/bitrix/catalog.section/calc-form-multi/script.js?179059330020356*/ 17970 17971//# sourceMappingURL=template_280e805cc2a7416f2ee9de4217c89214.map.js
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.