vendor: 1,601 bytes, lines 1-32
1(() => { 2 var __create = Object.create; 3 var __defProp = Object.defineProperty; 4 var __getOwnPropDesc = Object.getOwnPropertyDescriptor; 5 var __getOwnPropNames = Object.getOwnPropertyNames; 6 var __getProtoOf = Object.getPrototypeOf; 7 var __hasOwnProp = Object.prototype.hasOwnProperty; 8 var __esm = (fn, res) => function __init() { 9 return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; 10 }; 11 var __commonJS = (cb, mod) => function __require() { 12 return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; 13 }; 14 var __copyProps = (to, from, except, desc) => { 15 if (from && typeof from === "object" || typeof from === "function") { 16 for (let key of __getOwnPropNames(from)) 17 if (!__hasOwnProp.call(to, key) && key !== except) 18 __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); 19 } 20 return to; 21 }; 22 var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( 23 // If the importer is in node compatibility mode or this is not an ESM 24 // file that has been converted to a CommonJS file using a Babel- 25 // compatible transform (i.e. "__esModule" has not been set), then set 26 // "default" to the CommonJS "module.exports" for node compatibility. 27 isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, 28 mod 29 )); 30 var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); 31 32
vendor: 60,437 bytes, lines 32-1406
32// node_modules/@popperjs/core/dist/cjs/popper.js 33 var require_popper = __commonJS({ 34 "node_modules/@popperjs/core/dist/cjs/popper.js"(exports) { 35 "use strict"; 36 Object.defineProperty(exports, "__esModule", { value: true }); 37 function getWindow(node) { 38 if (node == null) { 39 return window; 40 } 41 if (node.toString() !== "[object Window]") { 42 var ownerDocument = node.ownerDocument; 43 return ownerDocument ? ownerDocument.defaultView || window : window; 44 } 45 return node; 46 } 47 function isElement(node) { 48 var OwnElement = getWindow(node).Element; 49 return node instanceof OwnElement || node instanceof Element; 50 } 51 function isHTMLElement(node) { 52 var OwnElement = getWindow(node).HTMLElement; 53 return node instanceof OwnElement || node instanceof HTMLElement; 54 } 55 function isShadowRoot(node) { 56 if (typeof ShadowRoot === "undefined") { 57 return false; 58 } 59 var OwnElement = getWindow(node).ShadowRoot; 60 return node instanceof OwnElement || node instanceof ShadowRoot; 61 } 62 var max = Math.max; 63 var min = Math.min; 64 var round = Math.round; 65 function getUAString() { 66 var uaData = navigator.userAgentData; 67 if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) { 68 return uaData.brands.map(function(item) { 69 return item.brand + "/" + item.version; 70 }).join(" "); 71 } 72 return navigator.userAgent; 73 } 74 function isLayoutViewport() { 75 return !/^((?!chrome|android).)*safari/i.test(getUAString()); 76 } 77 function getBoundingClientRect(element, includeScale, isFixedStrategy) { 78 if (includeScale === void 0) { 79 includeScale = false; 80 } 81 if (isFixedStrategy === void 0) { 82 isFixedStrategy = false; 83 } 84 var clientRect = element.getBoundingClientRect(); 85 var scaleX = 1; 86 var scaleY = 1; 87 if (includeScale && isHTMLElement(element)) { 88 scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1; 89 scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1; 90 } 91 var _ref = isElement(element) ? getWindow(element) : window, visualViewport = _ref.visualViewport; 92 var addVisualOffsets = !isLayoutViewport() && isFixedStrategy; 93 var x2 = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX; 94 var y3 = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY; 95 var width = clientRect.width / scaleX; 96 var height = clientRect.height / scaleY; 97 return { 98 width, 99 height, 100 top: y3, 101 right: x2 + width, 102 bottom: y3 + height, 103 left: x2, 104 x: x2, 105 y: y3 106 }; 107 } 108 function getWindowScroll(node) { 109 var win = getWindow(node); 110 var scrollLeft = win.pageXOffset; 111 var scrollTop = win.pageYOffset; 112 return { 113 scrollLeft, 114 scrollTop 115 }; 116 } 117 function getHTMLElementScroll(element) { 118 return { 119 scrollLeft: element.scrollLeft, 120 scrollTop: element.scrollTop 121 }; 122 } 123 function getNodeScroll(node) { 124 if (node === getWindow(node) || !isHTMLElement(node)) { 125 return getWindowScroll(node); 126 } else { 127 return getHTMLElementScroll(node); 128 } 129 } 130 function getNodeName(element) { 131 return element ? (element.nodeName || "").toLowerCase() : null; 132 } 133 function getDocumentElement(element) { 134 return ((isElement(element) ? element.ownerDocument : ( 135 // $FlowFixMe[prop-missing] 136 element.document 137 )) || window.document).documentElement; 138 } 139 function getWindowScrollBarX(element) { 140 return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft; 141 } 142 function getComputedStyle2(element) { 143 return getWindow(element).getComputedStyle(element); 144 } 145 function isScrollParent(element) { 146 var _getComputedStyle3 = getComputedStyle2(element), overflow = _getComputedStyle3.overflow, overflowX = _getComputedStyle3.overflowX, overflowY = _getComputedStyle3.overflowY; 147 return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX); 148 } 149 function isElementScaled(element) { 150 var rect = element.getBoundingClientRect(); 151 var scaleX = round(rect.width) / element.offsetWidth || 1; 152 var scaleY = round(rect.height) / element.offsetHeight || 1; 153 return scaleX !== 1 || scaleY !== 1; 154 } 155 function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) { 156 if (isFixed === void 0) { 157 isFixed = false; 158 } 159 var isOffsetParentAnElement = isHTMLElement(offsetParent); 160 var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent); 161 var documentElement = getDocumentElement(offsetParent); 162 var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed); 163 var scroll = { 164 scrollLeft: 0, 165 scrollTop: 0 166 }; 167 var offsets = { 168 x: 0, 169 y: 0 170 }; 171 if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { 172 if (getNodeName(offsetParent) !== "body" || // https://github.com/popperjs/popper-core/issues/1078 173 isScrollParent(documentElement)) { 174 scroll = getNodeScroll(offsetParent); 175 } 176 if (isHTMLElement(offsetParent)) { 177 offsets = getBoundingClientRect(offsetParent, true); 178 offsets.x += offsetParent.clientLeft; 179 offsets.y += offsetParent.clientTop; 180 } else if (documentElement) { 181 offsets.x = getWindowScrollBarX(documentElement); 182 } 183 } 184 return { 185 x: rect.left + scroll.scrollLeft - offsets.x, 186 y: rect.top + scroll.scrollTop - offsets.y, 187 width: rect.width, 188 height: rect.height 189 }; 190 } 191 function getLayoutRect(element) { 192 var clientRect = getBoundingClientRect(element); 193 var width = element.offsetWidth; 194 var height = element.offsetHeight; 195 if (Math.abs(clientRect.width - width) <= 1) { 196 width = clientRect.width; 197 } 198 if (Math.abs(clientRect.height - height) <= 1) { 199 height = clientRect.height; 200 } 201 return { 202 x: element.offsetLeft, 203 y: element.offsetTop, 204 width, 205 height 206 }; 207 } 208 function getParentNode(element) { 209 if (getNodeName(element) === "html") { 210 return element; 211 } 212 return ( 213 // this is a quicker (but less type safe) way to save quite some bytes from the bundle 214 // $FlowFixMe[incompatible-return] 215 // $FlowFixMe[prop-missing] 216 element.assignedSlot || // step into the shadow DOM of the parent of a slotted node 217 element.parentNode || // DOM Element detected 218 (isShadowRoot(element) ? element.host : null) || // ShadowRoot detected 219 // $FlowFixMe[incompatible-call]: HTMLElement is a Node 220 getDocumentElement(element) 221 ); 222 } 223 function getScrollParent(node) { 224 if (["html", "body", "#document"].indexOf(getNodeName(node)) >= 0) { 225 return node.ownerDocument.body; 226 } 227 if (isHTMLElement(node) && isScrollParent(node)) { 228 return node; 229 } 230 return getScrollParent(getParentNode(node)); 231 } 232 function listScrollParents(element, list) { 233 var _element$ownerDocumen; 234 if (list === void 0) { 235 list = []; 236 } 237 var scrollParent = getScrollParent(element); 238 var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body); 239 var win = getWindow(scrollParent); 240 var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent; 241 var updatedList = list.concat(target); 242 return isBody ? updatedList : ( 243 // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here 244 updatedList.concat(listScrollParents(getParentNode(target))) 245 ); 246 } 247 function isTableElement(element) { 248 return ["table", "td", "th"].indexOf(getNodeName(element)) >= 0; 249 } 250 function getTrueOffsetParent(element) { 251 if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837 252 getComputedStyle2(element).position === "fixed") { 253 return null; 254 } 255 return element.offsetParent; 256 } 257 function getContainingBlock(element) { 258 var isFirefox = /firefox/i.test(getUAString()); 259 var isIE = /Trident/i.test(getUAString()); 260 if (isIE && isHTMLElement(element)) { 261 var elementCss = getComputedStyle2(element); 262 if (elementCss.position === "fixed") { 263 return null; 264 } 265 } 266 var currentNode = getParentNode(element); 267 if (isShadowRoot(currentNode)) { 268 currentNode = currentNode.host; 269 } 270 while (isHTMLElement(currentNode) && ["html", "body"].indexOf(getNodeName(currentNode)) < 0) { 271 var css = getComputedStyle2(currentNode); 272 if (css.transform !== "none" || css.perspective !== "none" || css.contain === "paint" || ["transform", "perspective"].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === "filter" || isFirefox && css.filter && css.filter !== "none") { 273 return currentNode; 274 } else { 275 currentNode = currentNode.parentNode; 276 } 277 } 278 return null; 279 } 280 function getOffsetParent(element) { 281 var window2 = getWindow(element); 282 var offsetParent = getTrueOffsetParent(element); 283 while (offsetParent && isTableElement(offsetParent) && getComputedStyle2(offsetParent).position === "static") { 284 offsetParent = getTrueOffsetParent(offsetParent); 285 } 286 if (offsetParent && (getNodeName(offsetParent) === "html" || getNodeName(offsetParent) === "body" && getComputedStyle2(offsetParent).position === "static")) { 287 return window2; 288 } 289 return offsetParent || getContainingBlock(element) || window2; 290 } 291 var top = "top"; 292 var bottom = "bottom"; 293 var right = "right"; 294 var left = "left"; 295 var auto = "auto"; 296 var basePlacements = [top, bottom, right, left]; 297 var start = "start"; 298 var end = "end"; 299 var clippingParents = "clippingParents"; 300 var viewport = "viewport"; 301 var popper = "popper"; 302 var reference = "reference"; 303 var variationPlacements = /* @__PURE__ */ basePlacements.reduce(function(acc, placement) { 304 return acc.concat([placement + "-" + start, placement + "-" + end]); 305 }, []); 306 var placements = /* @__PURE__ */ [].concat(basePlacements, [auto]).reduce(function(acc, placement) { 307 return acc.concat([placement, placement + "-" + start, placement + "-" + end]); 308 }, []); 309 var beforeRead = "beforeRead"; 310 var read = "read"; 311 var afterRead = "afterRead"; 312 var beforeMain = "beforeMain"; 313 var main = "main"; 314 var afterMain = "afterMain"; 315 var beforeWrite = "beforeWrite"; 316 var write = "write"; 317 var afterWrite = "afterWrite"; 318 var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite]; 319 function order(modifiers) { 320 var map = /* @__PURE__ */ new Map(); 321 var visited = /* @__PURE__ */ new Set(); 322 var result = []; 323 modifiers.forEach(function(modifier) { 324 map.set(modifier.name, modifier); 325 }); 326 function sort(modifier) { 327 visited.add(modifier.name); 328 var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []); 329 requires.forEach(function(dep) { 330 if (!visited.has(dep)) { 331 var depModifier = map.get(dep); 332 if (depModifier) { 333 sort(depModifier); 334 } 335 } 336 }); 337 result.push(modifier); 338 } 339 modifiers.forEach(function(modifier) { 340 if (!visited.has(modifier.name)) { 341 sort(modifier); 342 } 343 }); 344 return result; 345 } 346 function orderModifiers(modifiers) { 347 var orderedModifiers = order(modifiers); 348 return modifierPhases.reduce(function(acc, phase) { 349 return acc.concat(orderedModifiers.filter(function(modifier) { 350 return modifier.phase === phase; 351 })); 352 }, []); 353 } 354 function debounce(fn) { 355 var pending; 356 return function() { 357 if (!pending) { 358 pending = new Promise(function(resolve) { 359 Promise.resolve().then(function() { 360 pending = void 0; 361 resolve(fn()); 362 }); 363 }); 364 } 365 return pending; 366 }; 367 } 368 function mergeByName(modifiers) { 369 var merged = modifiers.reduce(function(merged2, current) { 370 var existing = merged2[current.name]; 371 merged2[current.name] = existing ? Object.assign({}, existing, current, { 372 options: Object.assign({}, existing.options, current.options), 373 data: Object.assign({}, existing.data, current.data) 374 }) : current; 375 return merged2; 376 }, {}); 377 return Object.keys(merged).map(function(key) { 378 return merged[key]; 379 }); 380 } 381 function getViewportRect(element, strategy) { 382 var win = getWindow(element); 383 var html = getDocumentElement(element); 384 var visualViewport = win.visualViewport; 385 var width = html.clientWidth; 386 var height = html.clientHeight; 387 var x2 = 0; 388 var y3 = 0; 389 if (visualViewport) { 390 width = visualViewport.width; 391 height = visualViewport.height; 392 var layoutViewport = isLayoutViewport(); 393 if (layoutViewport || !layoutViewport && strategy === "fixed") { 394 x2 = visualViewport.offsetLeft; 395 y3 = visualViewport.offsetTop; 396 } 397 } 398 return { 399 width, 400 height, 401 x: x2 + getWindowScrollBarX(element), 402 y: y3 403 }; 404 } 405 function getDocumentRect(element) { 406 var _element$ownerDocumen; 407 var html = getDocumentElement(element); 408 var winScroll = getWindowScroll(element); 409 var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body; 410 var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0); 411 var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0); 412 var x2 = -winScroll.scrollLeft + getWindowScrollBarX(element); 413 var y3 = -winScroll.scrollTop; 414 if (getComputedStyle2(body || html).direction === "rtl") { 415 x2 += max(html.clientWidth, body ? body.clientWidth : 0) - width; 416 } 417 return { 418 width, 419 height, 420 x: x2, 421 y: y3 422 }; 423 } 424 function contains(parent, child) { 425 var rootNode = child.getRootNode && child.getRootNode(); 426 if (parent.contains(child)) { 427 return true; 428 } else if (rootNode && isShadowRoot(rootNode)) { 429 var next = child; 430 do { 431 if (next && parent.isSameNode(next)) { 432 return true; 433 } 434 next = next.parentNode || next.host; 435 } while (next); 436 } 437 return false; 438 } 439 function rectToClientRect(rect) { 440 return Object.assign({}, rect, { 441 left: rect.x, 442 top: rect.y, 443 right: rect.x + rect.width, 444 bottom: rect.y + rect.height 445 }); 446 } 447 function getInnerBoundingClientRect(element, strategy) { 448 var rect = getBoundingClientRect(element, false, strategy === "fixed"); 449 rect.top = rect.top + element.clientTop; 450 rect.left = rect.left + element.clientLeft; 451 rect.bottom = rect.top + element.clientHeight; 452 rect.right = rect.left + element.clientWidth; 453 rect.width = element.clientWidth; 454 rect.height = element.clientHeight; 455 rect.x = rect.left; 456 rect.y = rect.top; 457 return rect; 458 } 459 function getClientRectFromMixedType(element, clippingParent, strategy) { 460 return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element))); 461 } 462 function getClippingParents(element) { 463 var clippingParents2 = listScrollParents(getParentNode(element)); 464 var canEscapeClipping = ["absolute", "fixed"].indexOf(getComputedStyle2(element).position) >= 0; 465 var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element; 466 if (!isElement(clipperElement)) { 467 return []; 468 } 469 return clippingParents2.filter(function(clippingParent) { 470 return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== "body"; 471 }); 472 } 473 function getClippingRect(element, boundary, rootBoundary, strategy) { 474 var mainClippingParents = boundary === "clippingParents" ? getClippingParents(element) : [].concat(boundary); 475 var clippingParents2 = [].concat(mainClippingParents, [rootBoundary]); 476 var firstClippingParent = clippingParents2[0]; 477 var clippingRect = clippingParents2.reduce(function(accRect, clippingParent) { 478 var rect = getClientRectFromMixedType(element, clippingParent, strategy); 479 accRect.top = max(rect.top, accRect.top); 480 accRect.right = min(rect.right, accRect.right); 481 accRect.bottom = min(rect.bottom, accRect.bottom); 482 accRect.left = max(rect.left, accRect.left); 483 return accRect; 484 }, getClientRectFromMixedType(element, firstClippingParent, strategy)); 485 clippingRect.width = clippingRect.right - clippingRect.left; 486 clippingRect.height = clippingRect.bottom - clippingRect.top; 487 clippingRect.x = clippingRect.left; 488 clippingRect.y = clippingRect.top; 489 return clippingRect; 490 } 491 function getBasePlacement(placement) { 492 return placement.split("-")[0]; 493 } 494 function getVariation(placement) { 495 return placement.split("-")[1]; 496 } 497 function getMainAxisFromPlacement(placement) { 498 return ["top", "bottom"].indexOf(placement) >= 0 ? "x" : "y"; 499 } 500 function computeOffsets(_ref) { 501 var reference2 = _ref.reference, element = _ref.element, placement = _ref.placement; 502 var basePlacement = placement ? getBasePlacement(placement) : null; 503 var variation = placement ? getVariation(placement) : null; 504 var commonX = reference2.x + reference2.width / 2 - element.width / 2; 505 var commonY = reference2.y + reference2.height / 2 - element.height / 2; 506 var offsets; 507 switch (basePlacement) { 508 case top: 509 offsets = { 510 x: commonX, 511 y: reference2.y - element.height 512 }; 513 break; 514 case bottom: 515 offsets = { 516 x: commonX, 517 y: reference2.y + reference2.height 518 }; 519 break; 520 case right: 521 offsets = { 522 x: reference2.x + reference2.width, 523 y: commonY 524 }; 525 break; 526 case left: 527 offsets = { 528 x: reference2.x - element.width, 529 y: commonY 530 }; 531 break; 532 default: 533 offsets = { 534 x: reference2.x, 535 y: reference2.y 536 }; 537 } 538 var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null; 539 if (mainAxis != null) { 540 var len = mainAxis === "y" ? "height" : "width"; 541 switch (variation) { 542 case start: 543 offsets[mainAxis] = offsets[mainAxis] - (reference2[len] / 2 - element[len] / 2); 544 break; 545 case end: 546 offsets[mainAxis] = offsets[mainAxis] + (reference2[len] / 2 - element[len] / 2); 547 break; 548 } 549 } 550 return offsets; 551 } 552 function getFreshSideObject() { 553 return { 554 top: 0, 555 right: 0, 556 bottom: 0, 557 left: 0 558 }; 559 } 560 function mergePaddingObject(paddingObject) { 561 return Object.assign({}, getFreshSideObject(), paddingObject); 562 } 563 function expandToHashMap(value, keys) { 564 return keys.reduce(function(hashMap, key) { 565 hashMap[key] = value; 566 return hashMap; 567 }, {}); 568 } 569 function detectOverflow(state, options) { 570 if (options === void 0) { 571 options = {}; 572 } 573 var _options = options, _options$placement = _options.placement, placement = _options$placement === void 0 ? state.placement : _options$placement, _options$strategy = _options.strategy, strategy = _options$strategy === void 0 ? state.strategy : _options$strategy, _options$boundary = _options.boundary, boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, _options$rootBoundary = _options.rootBoundary, rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary, _options$elementConte = _options.elementContext, elementContext = _options$elementConte === void 0 ? popper : _options$elementConte, _options$altBoundary = _options.altBoundary, altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, _options$padding = _options.padding, padding = _options$padding === void 0 ? 0 : _options$padding; 574 var paddingObject = mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements)); 575 var altContext = elementContext === popper ? reference : popper; 576 var popperRect = state.rects.popper; 577 var element = state.elements[altBoundary ? altContext : elementContext]; 578 var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy); 579 var referenceClientRect = getBoundingClientRect(state.elements.reference); 580 var popperOffsets2 = computeOffsets({ 581 reference: referenceClientRect, 582 element: popperRect, 583 strategy: "absolute", 584 placement 585 }); 586 var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets2)); 587 var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; 588 var overflowOffsets = { 589 top: clippingClientRect.top - elementClientRect.top + paddingObject.top, 590 bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom, 591 left: clippingClientRect.left - elementClientRect.left + paddingObject.left, 592 right: elementClientRect.right - clippingClientRect.right + paddingObject.right 593 }; 594 var offsetData = state.modifiersData.offset; 595 if (elementContext === popper && offsetData) { 596 var offset2 = offsetData[placement]; 597 Object.keys(overflowOffsets).forEach(function(key) { 598 var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1; 599 var axis = [top, bottom].indexOf(key) >= 0 ? "y" : "x"; 600 overflowOffsets[key] += offset2[axis] * multiply; 601 }); 602 } 603 return overflowOffsets; 604 } 605 var DEFAULT_OPTIONS2 = { 606 placement: "bottom", 607 modifiers: [], 608 strategy: "absolute" 609 }; 610 function areValidElements() { 611 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { 612 args[_key] = arguments[_key]; 613 } 614 return !args.some(function(element) { 615 return !(element && typeof element.getBoundingClientRect === "function"); 616 }); 617 } 618 function popperGenerator(generatorOptions) { 619 if (generatorOptions === void 0) { 620 generatorOptions = {}; 621 } 622 var _generatorOptions = generatorOptions, _generatorOptions$def = _generatorOptions.defaultModifiers, defaultModifiers2 = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, _generatorOptions$def2 = _generatorOptions.defaultOptions, defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS2 : _generatorOptions$def2; 623 return function createPopper2(reference2, popper2, options) { 624 if (options === void 0) { 625 options = defaultOptions; 626 } 627 var state = { 628 placement: "bottom", 629 orderedModifiers: [], 630 options: Object.assign({}, DEFAULT_OPTIONS2, defaultOptions), 631 modifiersData: {}, 632 elements: { 633 reference: reference2, 634 popper: popper2 635 }, 636 attributes: {}, 637 styles: {} 638 }; 639 var effectCleanupFns = []; 640 var isDestroyed = false; 641 var instance = { 642 state, 643 setOptions: function setOptions(setOptionsAction) { 644 var options2 = typeof setOptionsAction === "function" ? setOptionsAction(state.options) : setOptionsAction; 645 cleanupModifierEffects(); 646 state.options = Object.assign({}, defaultOptions, state.options, options2); 647 state.scrollParents = { 648 reference: isElement(reference2) ? listScrollParents(reference2) : reference2.contextElement ? listScrollParents(reference2.contextElement) : [], 649 popper: listScrollParents(popper2) 650 }; 651 var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers2, state.options.modifiers))); 652 state.orderedModifiers = orderedModifiers.filter(function(m3) { 653 return m3.enabled; 654 }); 655 runModifierEffects(); 656 return instance.update(); 657 }, 658 // Sync update – it will always be executed, even if not necessary. This 659 // is useful for low frequency updates where sync behavior simplifies the 660 // logic. 661 // For high frequency updates (e.g. `resize` and `scroll` events), always 662 // prefer the async Popper#update method 663 forceUpdate: function forceUpdate() { 664 if (isDestroyed) { 665 return; 666 } 667 var _state$elements = state.elements, reference3 = _state$elements.reference, popper3 = _state$elements.popper; 668 if (!areValidElements(reference3, popper3)) { 669 return; 670 } 671 state.rects = { 672 reference: getCompositeRect(reference3, getOffsetParent(popper3), state.options.strategy === "fixed"), 673 popper: getLayoutRect(popper3) 674 }; 675 state.reset = false; 676 state.placement = state.options.placement; 677 state.orderedModifiers.forEach(function(modifier) { 678 return state.modifiersData[modifier.name] = Object.assign({}, modifier.data); 679 }); 680 for (var index = 0; index < state.orderedModifiers.length; index++) { 681 if (state.reset === true) { 682 state.reset = false; 683 index = -1; 684 continue; 685 } 686 var _state$orderedModifie = state.orderedModifiers[index], fn = _state$orderedModifie.fn, _state$orderedModifie2 = _state$orderedModifie.options, _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, name = _state$orderedModifie.name; 687 if (typeof fn === "function") { 688 state = fn({ 689 state, 690 options: _options, 691 name, 692 instance 693 }) || state; 694 } 695 } 696 }, 697 // Async and optimistically optimized update – it will not be executed if 698 // not necessary (debounced to run at most once-per-tick) 699 update: debounce(function() { 700 return new Promise(function(resolve) { 701 instance.forceUpdate(); 702 resolve(state); 703 }); 704 }), 705 destroy: function destroy() { 706 cleanupModifierEffects(); 707 isDestroyed = true; 708 } 709 }; 710 if (!areValidElements(reference2, popper2)) { 711 return instance; 712 } 713 instance.setOptions(options).then(function(state2) { 714 if (!isDestroyed && options.onFirstUpdate) { 715 options.onFirstUpdate(state2); 716 } 717 }); 718 function runModifierEffects() { 719 state.orderedModifiers.forEach(function(_ref) { 720 var name = _ref.name, _ref$options = _ref.options, options2 = _ref$options === void 0 ? {} : _ref$options, effect2 = _ref.effect; 721 if (typeof effect2 === "function") { 722 var cleanupFn = effect2({ 723 state, 724 name, 725 instance, 726 options: options2 727 }); 728 var noopFn = function noopFn2() { 729 }; 730 effectCleanupFns.push(cleanupFn || noopFn); 731 } 732 }); 733 } 734 function cleanupModifierEffects() { 735 effectCleanupFns.forEach(function(fn) { 736 return fn(); 737 }); 738 effectCleanupFns = []; 739 } 740 return instance; 741 }; 742 } 743 var passive = { 744 passive: true 745 }; 746 function effect$2(_ref) { 747 var state = _ref.state, instance = _ref.instance, options = _ref.options; 748 var _options$scroll = options.scroll, scroll = _options$scroll === void 0 ? true : _options$scroll, _options$resize = options.resize, resize = _options$resize === void 0 ? true : _options$resize; 749 var window2 = getWindow(state.elements.popper); 750 var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper); 751 if (scroll) { 752 scrollParents.forEach(function(scrollParent) { 753 scrollParent.addEventListener("scroll", instance.update, passive); 754 }); 755 } 756 if (resize) { 757 window2.addEventListener("resize", instance.update, passive); 758 } 759 return function() { 760 if (scroll) { 761 scrollParents.forEach(function(scrollParent) { 762 scrollParent.removeEventListener("scroll", instance.update, passive); 763 }); 764 } 765 if (resize) { 766 window2.removeEventListener("resize", instance.update, passive); 767 } 768 }; 769 } 770 var eventListeners = { 771 name: "eventListeners", 772 enabled: true, 773 phase: "write", 774 fn: function fn() { 775 }, 776 effect: effect$2, 777 data: {} 778 }; 779 function popperOffsets(_ref) { 780 var state = _ref.state, name = _ref.name; 781 state.modifiersData[name] = computeOffsets({ 782 reference: state.rects.reference, 783 element: state.rects.popper, 784 strategy: "absolute", 785 placement: state.placement 786 }); 787 } 788 var popperOffsets$1 = { 789 name: "popperOffsets", 790 enabled: true, 791 phase: "read", 792 fn: popperOffsets, 793 data: {} 794 }; 795 var unsetSides = { 796 top: "auto", 797 right: "auto", 798 bottom: "auto", 799 left: "auto" 800 }; 801 function roundOffsetsByDPR(_ref, win) { 802 var x2 = _ref.x, y3 = _ref.y; 803 var dpr = win.devicePixelRatio || 1; 804 return { 805 x: round(x2 * dpr) / dpr || 0, 806 y: round(y3 * dpr) / dpr || 0 807 }; 808 } 809 function mapToStyles(_ref2) { 810 var _Object$assign2; 811 var popper2 = _ref2.popper, popperRect = _ref2.popperRect, placement = _ref2.placement, variation = _ref2.variation, offsets = _ref2.offsets, position = _ref2.position, gpuAcceleration = _ref2.gpuAcceleration, adaptive = _ref2.adaptive, roundOffsets = _ref2.roundOffsets, isFixed = _ref2.isFixed; 812 var _offsets$x = offsets.x, x2 = _offsets$x === void 0 ? 0 : _offsets$x, _offsets$y = offsets.y, y3 = _offsets$y === void 0 ? 0 : _offsets$y; 813 var _ref3 = typeof roundOffsets === "function" ? roundOffsets({ 814 x: x2, 815 y: y3 816 }) : { 817 x: x2, 818 y: y3 819 }; 820 x2 = _ref3.x; 821 y3 = _ref3.y; 822 var hasX = offsets.hasOwnProperty("x"); 823 var hasY = offsets.hasOwnProperty("y"); 824 var sideX = left; 825 var sideY = top; 826 var win = window; 827 if (adaptive) { 828 var offsetParent = getOffsetParent(popper2); 829 var heightProp = "clientHeight"; 830 var widthProp = "clientWidth"; 831 if (offsetParent === getWindow(popper2)) { 832 offsetParent = getDocumentElement(popper2); 833 if (getComputedStyle2(offsetParent).position !== "static" && position === "absolute") { 834 heightProp = "scrollHeight"; 835 widthProp = "scrollWidth"; 836 } 837 } 838 offsetParent = offsetParent; 839 if (placement === top || (placement === left || placement === right) && variation === end) { 840 sideY = bottom; 841 var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : ( 842 // $FlowFixMe[prop-missing] 843 offsetParent[heightProp] 844 ); 845 y3 -= offsetY - popperRect.height; 846 y3 *= gpuAcceleration ? 1 : -1; 847 } 848 if (placement === left || (placement === top || placement === bottom) && variation === end) { 849 sideX = right; 850 var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : ( 851 // $FlowFixMe[prop-missing] 852 offsetParent[widthProp] 853 ); 854 x2 -= offsetX - popperRect.width; 855 x2 *= gpuAcceleration ? 1 : -1; 856 } 857 } 858 var commonStyles = Object.assign({ 859 position 860 }, adaptive && unsetSides); 861 var _ref4 = roundOffsets === true ? roundOffsetsByDPR({ 862 x: x2, 863 y: y3 864 }, getWindow(popper2)) : { 865 x: x2, 866 y: y3 867 }; 868 x2 = _ref4.x; 869 y3 = _ref4.y; 870 if (gpuAcceleration) { 871 var _Object$assign; 872 return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? "0" : "", _Object$assign[sideX] = hasX ? "0" : "", _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x2 + "px, " + y3 + "px)" : "translate3d(" + x2 + "px, " + y3 + "px, 0)", _Object$assign)); 873 } 874 return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y3 + "px" : "", _Object$assign2[sideX] = hasX ? x2 + "px" : "", _Object$assign2.transform = "", _Object$assign2)); 875 } 876 function computeStyles(_ref5) { 877 var state = _ref5.state, options = _ref5.options; 878 var _options$gpuAccelerat = options.gpuAcceleration, gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, _options$adaptive = options.adaptive, adaptive = _options$adaptive === void 0 ? true : _options$adaptive, _options$roundOffsets = options.roundOffsets, roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets; 879 var commonStyles = { 880 placement: getBasePlacement(state.placement), 881 variation: getVariation(state.placement), 882 popper: state.elements.popper, 883 popperRect: state.rects.popper, 884 gpuAcceleration, 885 isFixed: state.options.strategy === "fixed" 886 }; 887 if (state.modifiersData.popperOffsets != null) { 888 state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, { 889 offsets: state.modifiersData.popperOffsets, 890 position: state.options.strategy, 891 adaptive, 892 roundOffsets 893 }))); 894 } 895 if (state.modifiersData.arrow != null) { 896 state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, { 897 offsets: state.modifiersData.arrow, 898 position: "absolute", 899 adaptive: false, 900 roundOffsets 901 }))); 902 } 903 state.attributes.popper = Object.assign({}, state.attributes.popper, { 904 "data-popper-placement": state.placement 905 }); 906 } 907 var computeStyles$1 = { 908 name: "computeStyles", 909 enabled: true, 910 phase: "beforeWrite", 911 fn: computeStyles, 912 data: {} 913 }; 914 function applyStyles(_ref) { 915 var state = _ref.state; 916 Object.keys(state.elements).forEach(function(name) { 917 var style = state.styles[name] || {}; 918 var attributes = state.attributes[name] || {}; 919 var element = state.elements[name]; 920 if (!isHTMLElement(element) || !getNodeName(element)) { 921 return; 922 } 923 Object.assign(element.style, style); 924 Object.keys(attributes).forEach(function(name2) { 925 var value = attributes[name2]; 926 if (value === false) { 927 element.removeAttribute(name2); 928 } else { 929 element.setAttribute(name2, value === true ? "" : value); 930 } 931 }); 932 }); 933 } 934 function effect$1(_ref2) { 935 var state = _ref2.state; 936 var initialStyles = { 937 popper: { 938 position: state.options.strategy, 939 left: "0", 940 top: "0", 941 margin: "0" 942 }, 943 arrow: { 944 position: "absolute" 945 }, 946 reference: {} 947 }; 948 Object.assign(state.elements.popper.style, initialStyles.popper); 949 state.styles = initialStyles; 950 if (state.elements.arrow) { 951 Object.assign(state.elements.arrow.style, initialStyles.arrow); 952 } 953 return function() { 954 Object.keys(state.elements).forEach(function(name) { 955 var element = state.elements[name]; 956 var attributes = state.attributes[name] || {}; 957 var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); 958 var style = styleProperties.reduce(function(style2, property) { 959 style2[property] = ""; 960 return style2; 961 }, {}); 962 if (!isHTMLElement(element) || !getNodeName(element)) { 963 return; 964 } 965 Object.assign(element.style, style); 966 Object.keys(attributes).forEach(function(attribute) { 967 element.removeAttribute(attribute); 968 }); 969 }); 970 }; 971 } 972 var applyStyles$1 = { 973 name: "applyStyles", 974 enabled: true, 975 phase: "write", 976 fn: applyStyles, 977 effect: effect$1, 978 requires: ["computeStyles"] 979 }; 980 function distanceAndSkiddingToXY(placement, rects, offset2) { 981 var basePlacement = getBasePlacement(placement); 982 var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1; 983 var _ref = typeof offset2 === "function" ? offset2(Object.assign({}, rects, { 984 placement 985 })) : offset2, skidding = _ref[0], distance = _ref[1]; 986 skidding = skidding || 0; 987 distance = (distance || 0) * invertDistance; 988 return [left, right].indexOf(basePlacement) >= 0 ? { 989 x: distance, 990 y: skidding 991 } : { 992 x: skidding, 993 y: distance 994 }; 995 } 996 function offset(_ref2) { 997 var state = _ref2.state, options = _ref2.options, name = _ref2.name; 998 var _options$offset = options.offset, offset2 = _options$offset === void 0 ? [0, 0] : _options$offset; 999 var data = placements.reduce(function(acc, placement) { 1000 acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset2); 1001 return acc; 1002 }, {}); 1003 var _data$state$placement = data[state.placement], x2 = _data$state$placement.x, y3 = _data$state$placement.y; 1004 if (state.modifiersData.popperOffsets != null) { 1005 state.modifiersData.popperOffsets.x += x2; 1006 state.modifiersData.popperOffsets.y += y3; 1007 } 1008 state.modifiersData[name] = data; 1009 } 1010 var offset$1 = { 1011 name: "offset", 1012 enabled: true, 1013 phase: "main", 1014 requires: ["popperOffsets"], 1015 fn: offset 1016 }; 1017 var hash$1 = { 1018 left: "right", 1019 right: "left", 1020 bottom: "top", 1021 top: "bottom" 1022 }; 1023 function getOppositePlacement(placement) { 1024 return placement.replace(/left|right|bottom|top/g, function(matched) { 1025 return hash$1[matched]; 1026 }); 1027 } 1028 var hash = { 1029 start: "end", 1030 end: "start" 1031 }; 1032 function getOppositeVariationPlacement(placement) { 1033 return placement.replace(/start|end/g, function(matched) { 1034 return hash[matched]; 1035 }); 1036 } 1037 function computeAutoPlacement(state, options) { 1038 if (options === void 0) { 1039 options = {}; 1040 } 1041 var _options = options, placement = _options.placement, boundary = _options.boundary, rootBoundary = _options.rootBoundary, padding = _options.padding, flipVariations = _options.flipVariations, _options$allowedAutoP = _options.allowedAutoPlacements, allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP; 1042 var variation = getVariation(placement); 1043 var placements$1 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function(placement2) { 1044 return getVariation(placement2) === variation; 1045 }) : basePlacements; 1046 var allowedPlacements = placements$1.filter(function(placement2) { 1047 return allowedAutoPlacements.indexOf(placement2) >= 0; 1048 }); 1049 if (allowedPlacements.length === 0) { 1050 allowedPlacements = placements$1; 1051 } 1052 var overflows = allowedPlacements.reduce(function(acc, placement2) { 1053 acc[placement2] = detectOverflow(state, { 1054 placement: placement2, 1055 boundary, 1056 rootBoundary, 1057 padding 1058 })[getBasePlacement(placement2)]; 1059 return acc; 1060 }, {}); 1061 return Object.keys(overflows).sort(function(a8, b3) { 1062 return overflows[a8] - overflows[b3]; 1063 }); 1064 } 1065 function getExpandedFallbackPlacements(placement) { 1066 if (getBasePlacement(placement) === auto) { 1067 return []; 1068 } 1069 var oppositePlacement = getOppositePlacement(placement); 1070 return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)]; 1071 } 1072 function flip(_ref) { 1073 var state = _ref.state, options = _ref.options, name = _ref.name; 1074 if (state.modifiersData[name]._skip) { 1075 return; 1076 } 1077 var _options$mainAxis = options.mainAxis, checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, _options$altAxis = options.altAxis, checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis, specifiedFallbackPlacements = options.fallbackPlacements, padding = options.padding, boundary = options.boundary, rootBoundary = options.rootBoundary, altBoundary = options.altBoundary, _options$flipVariatio = options.flipVariations, flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio, allowedAutoPlacements = options.allowedAutoPlacements; 1078 var preferredPlacement = state.options.placement; 1079 var basePlacement = getBasePlacement(preferredPlacement); 1080 var isBasePlacement = basePlacement === preferredPlacement; 1081 var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement)); 1082 var placements2 = [preferredPlacement].concat(fallbackPlacements).reduce(function(acc, placement2) { 1083 return acc.concat(getBasePlacement(placement2) === auto ? computeAutoPlacement(state, { 1084 placement: placement2, 1085 boundary, 1086 rootBoundary, 1087 padding, 1088 flipVariations, 1089 allowedAutoPlacements 1090 }) : placement2); 1091 }, []); 1092 var referenceRect = state.rects.reference; 1093 var popperRect = state.rects.popper; 1094 var checksMap = /* @__PURE__ */ new Map(); 1095 var makeFallbackChecks = true; 1096 var firstFittingPlacement = placements2[0]; 1097 for (var i10 = 0; i10 < placements2.length; i10++) { 1098 var placement = placements2[i10]; 1099 var _basePlacement = getBasePlacement(placement); 1100 var isStartVariation = getVariation(placement) === start; 1101 var isVertical = [top, bottom].indexOf(_basePlacement) >= 0; 1102 var len = isVertical ? "width" : "height"; 1103 var overflow = detectOverflow(state, { 1104 placement, 1105 boundary, 1106 rootBoundary, 1107 altBoundary, 1108 padding 1109 }); 1110 var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top; 1111 if (referenceRect[len] > popperRect[len]) { 1112 mainVariationSide = getOppositePlacement(mainVariationSide); 1113 } 1114 var altVariationSide = getOppositePlacement(mainVariationSide); 1115 var checks = []; 1116 if (checkMainAxis) { 1117 checks.push(overflow[_basePlacement] <= 0); 1118 } 1119 if (checkAltAxis) { 1120 checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0); 1121 } 1122 if (checks.every(function(check) { 1123 return check; 1124 })) { 1125 firstFittingPlacement = placement; 1126 makeFallbackChecks = false; 1127 break; 1128 } 1129 checksMap.set(placement, checks); 1130 } 1131 if (makeFallbackChecks) { 1132 var numberOfChecks = flipVariations ? 3 : 1; 1133 var _loop = function _loop2(_i3) { 1134 var fittingPlacement = placements2.find(function(placement2) { 1135 var checks2 = checksMap.get(placement2); 1136 if (checks2) { 1137 return checks2.slice(0, _i3).every(function(check) { 1138 return check; 1139 }); 1140 } 1141 }); 1142 if (fittingPlacement) { 1143 firstFittingPlacement = fittingPlacement; 1144 return "break"; 1145 } 1146 }; 1147 for (var _i2 = numberOfChecks; _i2 > 0; _i2--) { 1148 var _ret = _loop(_i2); 1149 if (_ret === "break") break; 1150 } 1151 } 1152 if (state.placement !== firstFittingPlacement) { 1153 state.modifiersData[name]._skip = true; 1154 state.placement = firstFittingPlacement; 1155 state.reset = true; 1156 } 1157 } 1158 var flip$1 = { 1159 name: "flip", 1160 enabled: true, 1161 phase: "main", 1162 fn: flip, 1163 requiresIfExists: ["offset"], 1164 data: { 1165 _skip: false 1166 } 1167 }; 1168 function getAltAxis(axis) { 1169 return axis === "x" ? "y" : "x"; 1170 } 1171 function within(min$1, value, max$1) { 1172 return max(min$1, min(value, max$1)); 1173 } 1174 function withinMaxClamp(min2, value, max2) { 1175 var v3 = within(min2, value, max2); 1176 return v3 > max2 ? max2 : v3; 1177 } 1178 function preventOverflow(_ref) { 1179 var state = _ref.state, options = _ref.options, name = _ref.name; 1180 var _options$mainAxis = options.mainAxis, checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, _options$altAxis = options.altAxis, checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis, boundary = options.boundary, rootBoundary = options.rootBoundary, altBoundary = options.altBoundary, padding = options.padding, _options$tether = options.tether, tether = _options$tether === void 0 ? true : _options$tether, _options$tetherOffset = options.tetherOffset, tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset; 1181 var overflow = detectOverflow(state, { 1182 boundary, 1183 rootBoundary, 1184 padding, 1185 altBoundary 1186 }); 1187 var basePlacement = getBasePlacement(state.placement); 1188 var variation = getVariation(state.placement); 1189 var isBasePlacement = !variation; 1190 var mainAxis = getMainAxisFromPlacement(basePlacement); 1191 var altAxis = getAltAxis(mainAxis); 1192 var popperOffsets2 = state.modifiersData.popperOffsets; 1193 var referenceRect = state.rects.reference; 1194 var popperRect = state.rects.popper; 1195 var tetherOffsetValue = typeof tetherOffset === "function" ? tetherOffset(Object.assign({}, state.rects, { 1196 placement: state.placement 1197 })) : tetherOffset; 1198 var normalizedTetherOffsetValue = typeof tetherOffsetValue === "number" ? { 1199 mainAxis: tetherOffsetValue, 1200 altAxis: tetherOffsetValue 1201 } : Object.assign({ 1202 mainAxis: 0, 1203 altAxis: 0 1204 }, tetherOffsetValue); 1205 var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null; 1206 var data = { 1207 x: 0, 1208 y: 0 1209 }; 1210 if (!popperOffsets2) { 1211 return; 1212 } 1213 if (checkMainAxis) { 1214 var _offsetModifierState$; 1215 var mainSide = mainAxis === "y" ? top : left; 1216 var altSide = mainAxis === "y" ? bottom : right; 1217 var len = mainAxis === "y" ? "height" : "width"; 1218 var offset2 = popperOffsets2[mainAxis]; 1219 var min$1 = offset2 + overflow[mainSide]; 1220 var max$1 = offset2 - overflow[altSide]; 1221 var additive = tether ? -popperRect[len] / 2 : 0; 1222 var minLen = variation === start ? referenceRect[len] : popperRect[len]; 1223 var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; 1224 var arrowElement = state.elements.arrow; 1225 var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : { 1226 width: 0, 1227 height: 0 1228 }; 1229 var arrowPaddingObject = state.modifiersData["arrow#persistent"] ? state.modifiersData["arrow#persistent"].padding : getFreshSideObject(); 1230 var arrowPaddingMin = arrowPaddingObject[mainSide]; 1231 var arrowPaddingMax = arrowPaddingObject[altSide]; 1232 var arrowLen = within(0, referenceRect[len], arrowRect[len]); 1233 var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis; 1234 var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis; 1235 var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow); 1236 var clientOffset = arrowOffsetParent ? mainAxis === "y" ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0; 1237 var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0; 1238 var tetherMin = offset2 + minOffset - offsetModifierValue - clientOffset; 1239 var tetherMax = offset2 + maxOffset - offsetModifierValue; 1240 var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset2, tether ? max(max$1, tetherMax) : max$1); 1241 popperOffsets2[mainAxis] = preventedOffset; 1242 data[mainAxis] = preventedOffset - offset2; 1243 } 1244 if (checkAltAxis) { 1245 var _offsetModifierState$2; 1246 var _mainSide = mainAxis === "x" ? top : left; 1247 var _altSide = mainAxis === "x" ? bottom : right; 1248 var _offset = popperOffsets2[altAxis]; 1249 var _len = altAxis === "y" ? "height" : "width"; 1250 var _min = _offset + overflow[_mainSide]; 1251 var _max = _offset - overflow[_altSide]; 1252 var isOriginSide = [top, left].indexOf(basePlacement) !== -1; 1253 var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0; 1254 var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis; 1255 var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max; 1256 var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max); 1257 popperOffsets2[altAxis] = _preventedOffset; 1258 data[altAxis] = _preventedOffset - _offset; 1259 } 1260 state.modifiersData[name] = data; 1261 } 1262 var preventOverflow$1 = { 1263 name: "preventOverflow", 1264 enabled: true, 1265 phase: "main", 1266 fn: preventOverflow, 1267 requiresIfExists: ["offset"] 1268 }; 1269 var toPaddingObject = function toPaddingObject2(padding, state) { 1270 padding = typeof padding === "function" ? padding(Object.assign({}, state.rects, { 1271 placement: state.placement 1272 })) : padding; 1273 return mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements)); 1274 }; 1275 function arrow(_ref) { 1276 var _state$modifiersData$; 1277 var state = _ref.state, name = _ref.name, options = _ref.options; 1278 var arrowElement = state.elements.arrow; 1279 var popperOffsets2 = state.modifiersData.popperOffsets; 1280 var basePlacement = getBasePlacement(state.placement); 1281 var axis = getMainAxisFromPlacement(basePlacement); 1282 var isVertical = [left, right].indexOf(basePlacement) >= 0; 1283 var len = isVertical ? "height" : "width"; 1284 if (!arrowElement || !popperOffsets2) { 1285 return; 1286 } 1287 var paddingObject = toPaddingObject(options.padding, state); 1288 var arrowRect = getLayoutRect(arrowElement); 1289 var minProp = axis === "y" ? top : left; 1290 var maxProp = axis === "y" ? bottom : right; 1291 var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets2[axis] - state.rects.popper[len]; 1292 var startDiff = popperOffsets2[axis] - state.rects.reference[axis]; 1293 var arrowOffsetParent = getOffsetParent(arrowElement); 1294 var clientSize = arrowOffsetParent ? axis === "y" ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0; 1295 var centerToReference = endDiff / 2 - startDiff / 2; 1296 var min2 = paddingObject[minProp]; 1297 var max2 = clientSize - arrowRect[len] - paddingObject[maxProp]; 1298 var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference; 1299 var offset2 = within(min2, center, max2); 1300 var axisProp = axis; 1301 state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset2, _state$modifiersData$.centerOffset = offset2 - center, _state$modifiersData$); 1302 } 1303 function effect(_ref2) { 1304 var state = _ref2.state, options = _ref2.options; 1305 var _options$element = options.element, arrowElement = _options$element === void 0 ? "[data-popper-arrow]" : _options$element; 1306 if (arrowElement == null) { 1307 return; 1308 } 1309 if (typeof arrowElement === "string") { 1310 arrowElement = state.elements.popper.querySelector(arrowElement); 1311 if (!arrowElement) { 1312 return; 1313 } 1314 } 1315 if (!contains(state.elements.popper, arrowElement)) { 1316 return; 1317 } 1318 state.elements.arrow = arrowElement; 1319 } 1320 var arrow$1 = { 1321 name: "arrow", 1322 enabled: true, 1323 phase: "main", 1324 fn: arrow, 1325 effect, 1326 requires: ["popperOffsets"], 1327 requiresIfExists: ["preventOverflow"] 1328 }; 1329 function getSideOffsets(overflow, rect, preventedOffsets) { 1330 if (preventedOffsets === void 0) { 1331 preventedOffsets = { 1332 x: 0, 1333 y: 0 1334 }; 1335 } 1336 return { 1337 top: overflow.top - rect.height - preventedOffsets.y, 1338 right: overflow.right - rect.width + preventedOffsets.x, 1339 bottom: overflow.bottom - rect.height + preventedOffsets.y, 1340 left: overflow.left - rect.width - preventedOffsets.x 1341 }; 1342 } 1343 function isAnySideFullyClipped(overflow) { 1344 return [top, right, bottom, left].some(function(side) { 1345 return overflow[side] >= 0; 1346 }); 1347 } 1348 function hide(_ref) { 1349 var state = _ref.state, name = _ref.name; 1350 var referenceRect = state.rects.reference; 1351 var popperRect = state.rects.popper; 1352 var preventedOffsets = state.modifiersData.preventOverflow; 1353 var referenceOverflow = detectOverflow(state, { 1354 elementContext: "reference" 1355 }); 1356 var popperAltOverflow = detectOverflow(state, { 1357 altBoundary: true 1358 }); 1359 var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect); 1360 var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets); 1361 var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets); 1362 var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets); 1363 state.modifiersData[name] = { 1364 referenceClippingOffsets, 1365 popperEscapeOffsets, 1366 isReferenceHidden, 1367 hasPopperEscaped 1368 }; 1369 state.attributes.popper = Object.assign({}, state.attributes.popper, { 1370 "data-popper-reference-hidden": isReferenceHidden, 1371 "data-popper-escaped": hasPopperEscaped 1372 }); 1373 } 1374 var hide$1 = { 1375 name: "hide", 1376 enabled: true, 1377 phase: "main", 1378 requiresIfExists: ["preventOverflow"], 1379 fn: hide 1380 }; 1381 var defaultModifiers$1 = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1]; 1382 var createPopper$1 = /* @__PURE__ */ popperGenerator({ 1383 defaultModifiers: defaultModifiers$1 1384 }); 1385 var defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1, offset$1, flip$1, preventOverflow$1, arrow$1, hide$1]; 1386 var createPopper = /* @__PURE__ */ popperGenerator({ 1387 defaultModifiers 1388 }); 1389 exports.applyStyles = applyStyles$1; 1390 exports.arrow = arrow$1; 1391 exports.computeStyles = computeStyles$1; 1392 exports.createPopper = createPopper; 1393 exports.createPopperLite = createPopper$1; 1394 exports.defaultModifiers = defaultModifiers; 1395 exports.detectOverflow = detectOverflow; 1396 exports.eventListeners = eventListeners; 1397 exports.flip = flip$1; 1398 exports.hide = hide$1; 1399 exports.offset = offset$1; 1400 exports.popperGenerator = popperGenerator; 1401 exports.popperOffsets = popperOffsets$1; 1402 exports.preventOverflow = preventOverflow$1; 1403 } 1404 }); 1405 1406
vendor: 148,673 bytes, lines 1406-5099
1406// node_modules/bootstrap/dist/js/bootstrap.js 1407 var require_bootstrap = __commonJS({ 1408 "node_modules/bootstrap/dist/js/bootstrap.js"(exports, module) { 1409 (function(global, factory) { 1410 typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory(require_popper()) : typeof define === "function" && define.amd ? define(["@popperjs/core"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, global.bootstrap = factory(global.Popper)); 1411 })(exports, (function(Popper) { 1412 "use strict"; 1413 function _interopNamespaceDefault(e11) { 1414 const n10 = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } }); 1415 if (e11) { 1416 for (const k3 in e11) { 1417 if (k3 !== "default") { 1418 const d3 = Object.getOwnPropertyDescriptor(e11, k3); 1419 Object.defineProperty(n10, k3, d3.get ? d3 : { 1420 enumerable: true, 1421 get: () => e11[k3] 1422 }); 1423 } 1424 } 1425 } 1426 n10.default = e11; 1427 return Object.freeze(n10); 1428 } 1429 const Popper__namespace = /* @__PURE__ */ _interopNamespaceDefault(Popper); 1430 const elementMap = /* @__PURE__ */ new Map(); 1431 const Data = { 1432 set(element, key, instance) { 1433 if (!elementMap.has(element)) { 1434 elementMap.set(element, /* @__PURE__ */ new Map()); 1435 } 1436 const instanceMap = elementMap.get(element); 1437 if (!instanceMap.has(key) && instanceMap.size !== 0) { 1438 console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`); 1439 return; 1440 } 1441 instanceMap.set(key, instance); 1442 }, 1443 get(element, key) { 1444 if (elementMap.has(element)) { 1445 return elementMap.get(element).get(key) || null; 1446 } 1447 return null; 1448 }, 1449 remove(element, key) { 1450 if (!elementMap.has(element)) { 1451 return; 1452 } 1453 const instanceMap = elementMap.get(element); 1454 instanceMap.delete(key); 1455 if (instanceMap.size === 0) { 1456 elementMap.delete(element); 1457 } 1458 } 1459 }; 1460 const MAX_UID = 1e6; 1461 const MILLISECONDS_MULTIPLIER = 1e3; 1462 const TRANSITION_END = "transitionend"; 1463 const parseSelector = (selector3) => { 1464 if (selector3 && window.CSS && window.CSS.escape) { 1465 selector3 = selector3.replace(/#([^\s"#']+)/g, (match, id) => `#${CSS.escape(id)}`); 1466 } 1467 return selector3; 1468 }; 1469 const toType = (object) => { 1470 if (object === null || object === void 0) { 1471 return `${object}`; 1472 } 1473 return Object.prototype.toString.call(object).match(/\s([a-z]+)/i)[1].toLowerCase(); 1474 }; 1475 const getUID = (prefix) => { 1476 do { 1477 prefix += Math.floor(Math.random() * MAX_UID); 1478 } while (document.getElementById(prefix)); 1479 return prefix; 1480 }; 1481 const getTransitionDurationFromElement = (element) => { 1482 if (!element) { 1483 return 0; 1484 } 1485 let { 1486 transitionDuration, 1487 transitionDelay 1488 } = window.getComputedStyle(element); 1489 const floatTransitionDuration = Number.parseFloat(transitionDuration); 1490 const floatTransitionDelay = Number.parseFloat(transitionDelay); 1491 if (!floatTransitionDuration && !floatTransitionDelay) { 1492 return 0; 1493 } 1494 transitionDuration = transitionDuration.split(",")[0]; 1495 transitionDelay = transitionDelay.split(",")[0]; 1496 return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER; 1497 }; 1498 const triggerTransitionEnd = (element) => { 1499 element.dispatchEvent(new Event(TRANSITION_END)); 1500 }; 1501 const isElement = (object) => { 1502 if (!object || typeof object !== "object") { 1503 return false; 1504 } 1505 if (typeof object.jquery !== "undefined") { 1506 object = object[0]; 1507 } 1508 return typeof object.nodeType !== "undefined"; 1509 }; 1510 const getElement = (object) => { 1511 if (isElement(object)) { 1512 return object.jquery ? object[0] : object; 1513 } 1514 if (typeof object === "string" && object.length > 0) { 1515 return document.querySelector(parseSelector(object)); 1516 } 1517 return null; 1518 }; 1519 const isVisible = (element) => { 1520 if (!isElement(element) || element.getClientRects().length === 0) { 1521 return false; 1522 } 1523 const elementIsVisible = getComputedStyle(element).getPropertyValue("visibility") === "visible"; 1524 const closedDetails = element.closest("details:not([open])"); 1525 if (!closedDetails) { 1526 return elementIsVisible; 1527 } 1528 if (closedDetails !== element) { 1529 const summary = element.closest("summary"); 1530 if (summary && summary.parentNode !== closedDetails) { 1531 return false; 1532 } 1533 if (summary === null) { 1534 return false; 1535 } 1536 } 1537 return elementIsVisible; 1538 }; 1539 const isDisabled = (element) => { 1540 if (!element || element.nodeType !== Node.ELEMENT_NODE) { 1541 return true; 1542 } 1543 if (element.classList.contains("disabled")) { 1544 return true; 1545 } 1546 if (typeof element.disabled !== "undefined") { 1547 return element.disabled; 1548 } 1549 return element.hasAttribute("disabled") && element.getAttribute("disabled") !== "false"; 1550 }; 1551 const findShadowRoot = (element) => { 1552 if (!document.documentElement.attachShadow) { 1553 return null; 1554 } 1555 if (typeof element.getRootNode === "function") { 1556 const root = element.getRootNode(); 1557 return root instanceof ShadowRoot ? root : null; 1558 } 1559 if (element instanceof ShadowRoot) { 1560 return element; 1561 } 1562 if (!element.parentNode) { 1563 return null; 1564 } 1565 return findShadowRoot(element.parentNode); 1566 }; 1567 const noop = () => { 1568 }; 1569 const reflow = (element) => { 1570 element.offsetHeight; 1571 }; 1572 const getjQuery = () => { 1573 if (window.jQuery && !document.body.hasAttribute("data-bs-no-jquery")) { 1574 return window.jQuery; 1575 } 1576 return null; 1577 }; 1578 const DOMContentLoadedCallbacks = []; 1579 const onDOMContentLoaded = (callback) => { 1580 if (document.readyState === "loading") { 1581 if (!DOMContentLoadedCallbacks.length) { 1582 document.addEventListener("DOMContentLoaded", () => { 1583 for (const callback2 of DOMContentLoadedCallbacks) { 1584 callback2(); 1585 } 1586 }); 1587 } 1588 DOMContentLoadedCallbacks.push(callback); 1589 } else { 1590 callback(); 1591 } 1592 }; 1593 const isRTL = () => document.documentElement.dir === "rtl"; 1594 const defineJQueryPlugin = (plugin) => { 1595 onDOMContentLoaded(() => { 1596 const $4 = getjQuery(); 1597 if ($4) { 1598 const name = plugin.NAME; 1599 const JQUERY_NO_CONFLICT = $4.fn[name]; 1600 $4.fn[name] = plugin.jQueryInterface; 1601 $4.fn[name].Constructor = plugin; 1602 $4.fn[name].noConflict = () => { 1603 $4.fn[name] = JQUERY_NO_CONFLICT; 1604 return plugin.jQueryInterface; 1605 }; 1606 } 1607 }); 1608 }; 1609 const execute2 = (possibleCallback, args = [], defaultValue = possibleCallback) => { 1610 return typeof possibleCallback === "function" ? possibleCallback.call(...args) : defaultValue; 1611 }; 1612 const executeAfterTransition = (callback, transitionElement, waitForTransition = true) => { 1613 if (!waitForTransition) { 1614 execute2(callback); 1615 return; 1616 } 1617 const durationPadding = 5; 1618 const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding; 1619 let called = false; 1620 const handler = ({ 1621 target 1622 }) => { 1623 if (target !== transitionElement) { 1624 return; 1625 } 1626 called = true; 1627 transitionElement.removeEventListener(TRANSITION_END, handler); 1628 execute2(callback); 1629 }; 1630 transitionElement.addEventListener(TRANSITION_END, handler); 1631 setTimeout(() => { 1632 if (!called) { 1633 triggerTransitionEnd(transitionElement); 1634 } 1635 }, emulatedDuration); 1636 }; 1637 const getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => { 1638 const listLength = list.length; 1639 let index = list.indexOf(activeElement); 1640 if (index === -1) { 1641 return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]; 1642 } 1643 index += shouldGetNext ? 1 : -1; 1644 if (isCycleAllowed) { 1645 index = (index + listLength) % listLength; 1646 } 1647 return list[Math.max(0, Math.min(index, listLength - 1))]; 1648 }; 1649 const namespaceRegex = /[^.]*(?=\..*)\.|.*/; 1650 const stripNameRegex = /\..*/; 1651 const stripUidRegex = /::\d+$/; 1652 const eventRegistry = {}; 1653 let uidEvent = 1; 1654 const customEvents = { 1655 mouseenter: "mouseover", 1656 mouseleave: "mouseout" 1657 }; 1658 const nativeEvents = /* @__PURE__ */ new Set(["click", "dblclick", "mouseup", "mousedown", "contextmenu", "mousewheel", "DOMMouseScroll", "mouseover", "mouseout", "mousemove", "selectstart", "selectend", "keydown", "keypress", "keyup", "orientationchange", "touchstart", "touchmove", "touchend", "touchcancel", "pointerdown", "pointermove", "pointerup", "pointerleave", "pointercancel", "gesturestart", "gesturechange", "gestureend", "focus", "blur", "change", "reset", "select", "submit", "focusin", "focusout", "load", "unload", "beforeunload", "resize", "move", "DOMContentLoaded", "readystatechange", "error", "abort", "scroll"]); 1659 function makeEventUid(element, uid) { 1660 return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++; 1661 } 1662 function getElementEvents(element) { 1663 const uid = makeEventUid(element); 1664 element.uidEvent = uid; 1665 eventRegistry[uid] = eventRegistry[uid] || {}; 1666 return eventRegistry[uid]; 1667 } 1668 function bootstrapHandler(element, fn) { 1669 return function handler(event) { 1670 hydrateObj(event, { 1671 delegateTarget: element 1672 }); 1673 if (handler.oneOff) { 1674 EventHandler.off(element, event.type, fn); 1675 } 1676 return fn.apply(element, [event]); 1677 }; 1678 } 1679 function bootstrapDelegationHandler(element, selector3, fn) { 1680 return function handler(event) { 1681 const domElements = element.querySelectorAll(selector3); 1682 for (let { 1683 target 1684 } = event; target && target !== this; target = target.parentNode) { 1685 for (const domElement of domElements) { 1686 if (domElement !== target) { 1687 continue; 1688 } 1689 hydrateObj(event, { 1690 delegateTarget: target 1691 }); 1692 if (handler.oneOff) { 1693 EventHandler.off(element, event.type, selector3, fn); 1694 } 1695 return fn.apply(target, [event]); 1696 } 1697 } 1698 }; 1699 } 1700 function findHandler(events, callable, delegationSelector = null) { 1701 return Object.values(events).find((event) => event.callable === callable && event.delegationSelector === delegationSelector); 1702 } 1703 function normalizeParameters(originalTypeEvent, handler, delegationFunction) { 1704 const isDelegated = typeof handler === "string"; 1705 const callable = isDelegated ? delegationFunction : handler || delegationFunction; 1706 let typeEvent = getTypeEvent(originalTypeEvent); 1707 if (!nativeEvents.has(typeEvent)) { 1708 typeEvent = originalTypeEvent; 1709 } 1710 return [isDelegated, callable, typeEvent]; 1711 } 1712 function addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) { 1713 if (typeof originalTypeEvent !== "string" || !element) { 1714 return; 1715 } 1716 let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction); 1717 if (originalTypeEvent in customEvents) { 1718 const wrapFunction = (fn2) => { 1719 return function(event) { 1720 if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) { 1721 return fn2.call(this, event); 1722 } 1723 }; 1724 }; 1725 callable = wrapFunction(callable); 1726 } 1727 const events = getElementEvents(element); 1728 const handlers = events[typeEvent] || (events[typeEvent] = {}); 1729 const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null); 1730 if (previousFunction) { 1731 previousFunction.oneOff = previousFunction.oneOff && oneOff; 1732 return; 1733 } 1734 const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, "")); 1735 const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable); 1736 fn.delegationSelector = isDelegated ? handler : null; 1737 fn.callable = callable; 1738 fn.oneOff = oneOff; 1739 fn.uidEvent = uid; 1740 handlers[uid] = fn; 1741 element.addEventListener(typeEvent, fn, isDelegated); 1742 } 1743 function removeHandler(element, events, typeEvent, handler, delegationSelector) { 1744 const fn = findHandler(events[typeEvent], handler, delegationSelector); 1745 if (!fn) { 1746 return; 1747 } 1748 element.removeEventListener(typeEvent, fn, Boolean(delegationSelector)); 1749 delete events[typeEvent][fn.uidEvent]; 1750 } 1751 function removeNamespacedHandlers(element, events, typeEvent, namespace) { 1752 const storeElementEvent = events[typeEvent] || {}; 1753 for (const [handlerKey, event] of Object.entries(storeElementEvent)) { 1754 if (handlerKey.includes(namespace)) { 1755 removeHandler(element, events, typeEvent, event.callable, event.delegationSelector); 1756 } 1757 } 1758 } 1759 function getTypeEvent(event) { 1760 event = event.replace(stripNameRegex, ""); 1761 return customEvents[event] || event; 1762 } 1763 const EventHandler = { 1764 on(element, event, handler, delegationFunction) { 1765 addHandler(element, event, handler, delegationFunction, false); 1766 }, 1767 one(element, event, handler, delegationFunction) { 1768 addHandler(element, event, handler, delegationFunction, true); 1769 }, 1770 off(element, originalTypeEvent, handler, delegationFunction) { 1771 if (typeof originalTypeEvent !== "string" || !element) { 1772 return; 1773 } 1774 const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction); 1775 const inNamespace = typeEvent !== originalTypeEvent; 1776 const events = getElementEvents(element); 1777 const storeElementEvent = events[typeEvent] || {}; 1778 const isNamespace = originalTypeEvent.startsWith("."); 1779 if (typeof callable !== "undefined") { 1780 if (!Object.keys(storeElementEvent).length) { 1781 return; 1782 } 1783 removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null); 1784 return; 1785 } 1786 if (isNamespace) { 1787 for (const elementEvent of Object.keys(events)) { 1788 removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1)); 1789 } 1790 } 1791 for (const [keyHandlers, event] of Object.entries(storeElementEvent)) { 1792 const handlerKey = keyHandlers.replace(stripUidRegex, ""); 1793 if (!inNamespace || originalTypeEvent.includes(handlerKey)) { 1794 removeHandler(element, events, typeEvent, event.callable, event.delegationSelector); 1795 } 1796 } 1797 }, 1798 trigger(element, event, args) { 1799 if (typeof event !== "string" || !element) { 1800 return null; 1801 } 1802 const $4 = getjQuery(); 1803 const typeEvent = getTypeEvent(event); 1804 const inNamespace = event !== typeEvent; 1805 let jQueryEvent = null; 1806 let bubbles = true; 1807 let nativeDispatch = true; 1808 let defaultPrevented = false; 1809 if (inNamespace && $4) { 1810 jQueryEvent = $4.Event(event, args); 1811 $4(element).trigger(jQueryEvent); 1812 bubbles = !jQueryEvent.isPropagationStopped(); 1813 nativeDispatch = !jQueryEvent.isImmediatePropagationStopped(); 1814 defaultPrevented = jQueryEvent.isDefaultPrevented(); 1815 } 1816 const evt = hydrateObj(new Event(event, { 1817 bubbles, 1818 cancelable: true 1819 }), args); 1820 if (defaultPrevented) { 1821 evt.preventDefault(); 1822 } 1823 if (nativeDispatch) { 1824 element.dispatchEvent(evt); 1825 } 1826 if (evt.defaultPrevented && jQueryEvent) { 1827 jQueryEvent.preventDefault(); 1828 } 1829 return evt; 1830 } 1831 }; 1832 function hydrateObj(obj, meta = {}) { 1833 for (const [key, value] of Object.entries(meta)) { 1834 try { 1835 obj[key] = value; 1836 } catch (_unused) { 1837 Object.defineProperty(obj, key, { 1838 configurable: true, 1839 get() { 1840 return value; 1841 } 1842 }); 1843 } 1844 } 1845 return obj; 1846 } 1847 function normalizeData(value) { 1848 if (value === "true") { 1849 return true; 1850 } 1851 if (value === "false") { 1852 return false; 1853 } 1854 if (value === Number(value).toString()) { 1855 return Number(value); 1856 } 1857 if (value === "" || value === "null") { 1858 return null; 1859 } 1860 if (typeof value !== "string") { 1861 return value; 1862 } 1863 try { 1864 return JSON.parse(decodeURIComponent(value)); 1865 } catch (_unused) { 1866 return value; 1867 } 1868 } 1869 function normalizeDataKey(key) { 1870 return key.replace(/[A-Z]/g, (chr) => `-${chr.toLowerCase()}`); 1871 } 1872 const Manipulator = { 1873 setDataAttribute(element, key, value) { 1874 element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value); 1875 }, 1876 removeDataAttribute(element, key) { 1877 element.removeAttribute(`data-bs-${normalizeDataKey(key)}`); 1878 }, 1879 getDataAttributes(element) { 1880 if (!element) { 1881 return {}; 1882 } 1883 const attributes = {}; 1884 const bsKeys = Object.keys(element.dataset).filter((key) => key.startsWith("bs") && !key.startsWith("bsConfig")); 1885 for (const key of bsKeys) { 1886 let pureKey = key.replace(/^bs/, ""); 1887 pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1); 1888 attributes[pureKey] = normalizeData(element.dataset[key]); 1889 } 1890 return attributes; 1891 }, 1892 getDataAttribute(element, key) { 1893 return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`)); 1894 } 1895 }; 1896 class Config { 1897 // Getters 1898 static get Default() { 1899 return {}; 1900 } 1901 static get DefaultType() { 1902 return {}; 1903 } 1904 static get NAME() { 1905 throw new Error('You have to implement the static method "NAME", for each component!'); 1906 } 1907 _getConfig(config3) { 1908 config3 = this._mergeConfigObj(config3); 1909 config3 = this._configAfterMerge(config3); 1910 this._typeCheckConfig(config3); 1911 return config3; 1912 } 1913 _configAfterMerge(config3) { 1914 return config3; 1915 } 1916 _mergeConfigObj(config3, element) { 1917 const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, "config") : {}; 1918 return { 1919 ...this.constructor.Default, 1920 ...typeof jsonConfig === "object" ? jsonConfig : {}, 1921 ...isElement(element) ? Manipulator.getDataAttributes(element) : {}, 1922 ...typeof config3 === "object" ? config3 : {} 1923 }; 1924 } 1925 _typeCheckConfig(config3, configTypes = this.constructor.DefaultType) { 1926 for (const [property, expectedTypes] of Object.entries(configTypes)) { 1927 const value = config3[property]; 1928 const valueType = isElement(value) ? "element" : toType(value); 1929 if (!new RegExp(expectedTypes).test(valueType)) { 1930 throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`); 1931 } 1932 } 1933 } 1934 } 1935 const VERSION = "5.3.8"; 1936 class BaseComponent extends Config { 1937 constructor(element, config3) { 1938 super(); 1939 element = getElement(element); 1940 if (!element) { 1941 return; 1942 } 1943 this._element = element; 1944 this._config = this._getConfig(config3); 1945 Data.set(this._element, this.constructor.DATA_KEY, this); 1946 } 1947 // Public 1948 dispose() { 1949 Data.remove(this._element, this.constructor.DATA_KEY); 1950 EventHandler.off(this._element, this.constructor.EVENT_KEY); 1951 for (const propertyName of Object.getOwnPropertyNames(this)) { 1952 this[propertyName] = null; 1953 } 1954 } 1955 // Private 1956 _queueCallback(callback, element, isAnimated = true) { 1957 executeAfterTransition(callback, element, isAnimated); 1958 } 1959 _getConfig(config3) { 1960 config3 = this._mergeConfigObj(config3, this._element); 1961 config3 = this._configAfterMerge(config3); 1962 this._typeCheckConfig(config3); 1963 return config3; 1964 } 1965 // Static 1966 static getInstance(element) { 1967 return Data.get(getElement(element), this.DATA_KEY); 1968 } 1969 static getOrCreateInstance(element, config3 = {}) { 1970 return this.getInstance(element) || new this(element, typeof config3 === "object" ? config3 : null); 1971 } 1972 static get VERSION() { 1973 return VERSION; 1974 } 1975 static get DATA_KEY() { 1976 return `bs.${this.NAME}`; 1977 } 1978 static get EVENT_KEY() { 1979 return `.${this.DATA_KEY}`; 1980 } 1981 static eventName(name) { 1982 return `${name}${this.EVENT_KEY}`; 1983 } 1984 } 1985 const getSelector = (element) => { 1986 let selector3 = element.getAttribute("data-bs-target"); 1987 if (!selector3 || selector3 === "#") { 1988 let hrefAttribute = element.getAttribute("href"); 1989 if (!hrefAttribute || !hrefAttribute.includes("#") && !hrefAttribute.startsWith(".")) { 1990 return null; 1991 } 1992 if (hrefAttribute.includes("#") && !hrefAttribute.startsWith("#")) { 1993 hrefAttribute = `#${hrefAttribute.split("#")[1]}`; 1994 } 1995 selector3 = hrefAttribute && hrefAttribute !== "#" ? hrefAttribute.trim() : null; 1996 } 1997 return selector3 ? selector3.split(",").map((sel) => parseSelector(sel)).join(",") : null; 1998 }; 1999 const SelectorEngine = { 2000 find(selector3, element = document.documentElement) { 2001 return [].concat(...Element.prototype.querySelectorAll.call(element, selector3)); 2002 }, 2003 findOne(selector3, element = document.documentElement) { 2004 return Element.prototype.querySelector.call(element, selector3); 2005 }, 2006 children(element, selector3) { 2007 return [].concat(...element.children).filter((child) => child.matches(selector3)); 2008 }, 2009 parents(element, selector3) { 2010 const parents = []; 2011 let ancestor = element.parentNode.closest(selector3); 2012 while (ancestor) { 2013 parents.push(ancestor); 2014 ancestor = ancestor.parentNode.closest(selector3); 2015 } 2016 return parents; 2017 }, 2018 prev(element, selector3) { 2019 let previous = element.previousElementSibling; 2020 while (previous) { 2021 if (previous.matches(selector3)) { 2022 return [previous]; 2023 } 2024 previous = previous.previousElementSibling; 2025 } 2026 return []; 2027 }, 2028 // TODO: this is now unused; remove later along with prev() 2029 next(element, selector3) { 2030 let next = element.nextElementSibling; 2031 while (next) { 2032 if (next.matches(selector3)) { 2033 return [next]; 2034 } 2035 next = next.nextElementSibling; 2036 } 2037 return []; 2038 }, 2039 focusableChildren(element) { 2040 const focusables = ["a", "button", "input", "textarea", "select", "details", "[tabindex]", '[contenteditable="true"]'].map((selector3) => `${selector3}:not([tabindex^="-"])`).join(","); 2041 return this.find(focusables, element).filter((el) => !isDisabled(el) && isVisible(el)); 2042 }, 2043 getSelectorFromElement(element) { 2044 const selector3 = getSelector(element); 2045 if (selector3) { 2046 return SelectorEngine.findOne(selector3) ? selector3 : null; 2047 } 2048 return null; 2049 }, 2050 getElementFromSelector(element) { 2051 const selector3 = getSelector(element); 2052 return selector3 ? SelectorEngine.findOne(selector3) : null; 2053 }, 2054 getMultipleElementsFromSelector(element) { 2055 const selector3 = getSelector(element); 2056 return selector3 ? SelectorEngine.find(selector3) : []; 2057 } 2058 }; 2059 const enableDismissTrigger = (component, method = "hide") => { 2060 const clickEvent = `click.dismiss${component.EVENT_KEY}`; 2061 const name = component.NAME; 2062 EventHandler.on(document, clickEvent, `[data-bs-dismiss="${name}"]`, function(event) { 2063 if (["A", "AREA"].includes(this.tagName)) { 2064 event.preventDefault(); 2065 } 2066 if (isDisabled(this)) { 2067 return; 2068 } 2069 const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`); 2070 const instance = component.getOrCreateInstance(target); 2071 instance[method](); 2072 }); 2073 }; 2074 const NAME$f = "alert"; 2075 const DATA_KEY$a = "bs.alert"; 2076 const EVENT_KEY$b = `.${DATA_KEY$a}`; 2077 const EVENT_CLOSE = `close${EVENT_KEY$b}`; 2078 const EVENT_CLOSED = `closed${EVENT_KEY$b}`; 2079 const CLASS_NAME_FADE$5 = "fade"; 2080 const CLASS_NAME_SHOW$8 = "show"; 2081 class Alert extends BaseComponent { 2082 // Getters 2083 static get NAME() { 2084 return NAME$f; 2085 } 2086 // Public 2087 close() { 2088 const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE); 2089 if (closeEvent.defaultPrevented) { 2090 return; 2091 } 2092 this._element.classList.remove(CLASS_NAME_SHOW$8); 2093 const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5); 2094 this._queueCallback(() => this._destroyElement(), this._element, isAnimated); 2095 } 2096 // Private 2097 _destroyElement() { 2098 this._element.remove(); 2099 EventHandler.trigger(this._element, EVENT_CLOSED); 2100 this.dispose(); 2101 } 2102 // Static 2103 static jQueryInterface(config3) { 2104 return this.each(function() { 2105 const data = Alert.getOrCreateInstance(this); 2106 if (typeof config3 !== "string") { 2107 return; 2108 } 2109 if (data[config3] === void 0 || config3.startsWith("_") || config3 === "constructor") { 2110 throw new TypeError(`No method named "${config3}"`); 2111 } 2112 data[config3](this); 2113 }); 2114 } 2115 } 2116 enableDismissTrigger(Alert, "close"); 2117 defineJQueryPlugin(Alert); 2118 const NAME$e = "button"; 2119 const DATA_KEY$9 = "bs.button"; 2120 const EVENT_KEY$a = `.${DATA_KEY$9}`; 2121 const DATA_API_KEY$6 = ".data-api"; 2122 const CLASS_NAME_ACTIVE$3 = "active"; 2123 const SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle="button"]'; 2124 const EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`; 2125 class Button extends BaseComponent { 2126 // Getters 2127 static get NAME() { 2128 return NAME$e; 2129 } 2130 // Public 2131 toggle() { 2132 this._element.setAttribute("aria-pressed", this._element.classList.toggle(CLASS_NAME_ACTIVE$3)); 2133 } 2134 // Static 2135 static jQueryInterface(config3) { 2136 return this.each(function() { 2137 const data = Button.getOrCreateInstance(this); 2138 if (config3 === "toggle") { 2139 data[config3](); 2140 } 2141 }); 2142 } 2143 } 2144 EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, (event) => { 2145 event.preventDefault(); 2146 const button = event.target.closest(SELECTOR_DATA_TOGGLE$5); 2147 const data = Button.getOrCreateInstance(button); 2148 data.toggle(); 2149 }); 2150 defineJQueryPlugin(Button); 2151 const NAME$d = "swipe"; 2152 const EVENT_KEY$9 = ".bs.swipe"; 2153 const EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`; 2154 const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`; 2155 const EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`; 2156 const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`; 2157 const EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`; 2158 const POINTER_TYPE_TOUCH = "touch"; 2159 const POINTER_TYPE_PEN = "pen"; 2160 const CLASS_NAME_POINTER_EVENT = "pointer-event"; 2161 const SWIPE_THRESHOLD = 40; 2162 const Default$c = { 2163 endCallback: null, 2164 leftCallback: null, 2165 rightCallback: null 2166 }; 2167 const DefaultType$c = { 2168 endCallback: "(function|null)", 2169 leftCallback: "(function|null)", 2170 rightCallback: "(function|null)" 2171 }; 2172 class Swipe extends Config { 2173 constructor(element, config3) { 2174 super(); 2175 this._element = element; 2176 if (!element || !Swipe.isSupported()) { 2177 return; 2178 } 2179 this._config = this._getConfig(config3); 2180 this._deltaX = 0; 2181 this._supportPointerEvents = Boolean(window.PointerEvent); 2182 this._initEvents(); 2183 } 2184 // Getters 2185 static get Default() { 2186 return Default$c; 2187 } 2188 static get DefaultType() { 2189 return DefaultType$c; 2190 } 2191 static get NAME() { 2192 return NAME$d; 2193 } 2194 // Public 2195 dispose() { 2196 EventHandler.off(this._element, EVENT_KEY$9); 2197 } 2198 // Private 2199 _start(event) { 2200 if (!this._supportPointerEvents) { 2201 this._deltaX = event.touches[0].clientX; 2202 return; 2203 } 2204 if (this._eventIsPointerPenTouch(event)) { 2205 this._deltaX = event.clientX; 2206 } 2207 } 2208 _end(event) { 2209 if (this._eventIsPointerPenTouch(event)) { 2210 this._deltaX = event.clientX - this._deltaX; 2211 } 2212 this._handleSwipe(); 2213 execute2(this._config.endCallback); 2214 } 2215 _move(event) { 2216 this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX; 2217 } 2218 _handleSwipe() { 2219 const absDeltaX = Math.abs(this._deltaX); 2220 if (absDeltaX <= SWIPE_THRESHOLD) { 2221 return; 2222 } 2223 const direction = absDeltaX / this._deltaX; 2224 this._deltaX = 0; 2225 if (!direction) { 2226 return; 2227 } 2228 execute2(direction > 0 ? this._config.rightCallback : this._config.leftCallback); 2229 } 2230 _initEvents() { 2231 if (this._supportPointerEvents) { 2232 EventHandler.on(this._element, EVENT_POINTERDOWN, (event) => this._start(event)); 2233 EventHandler.on(this._element, EVENT_POINTERUP, (event) => this._end(event)); 2234 this._element.classList.add(CLASS_NAME_POINTER_EVENT); 2235 } else { 2236 EventHandler.on(this._element, EVENT_TOUCHSTART, (event) => this._start(event)); 2237 EventHandler.on(this._element, EVENT_TOUCHMOVE, (event) => this._move(event)); 2238 EventHandler.on(this._element, EVENT_TOUCHEND, (event) => this._end(event)); 2239 } 2240 } 2241 _eventIsPointerPenTouch(event) { 2242 return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH); 2243 } 2244 // Static 2245 static isSupported() { 2246 return "ontouchstart" in document.documentElement || navigator.maxTouchPoints > 0; 2247 } 2248 } 2249 const NAME$c = "carousel"; 2250 const DATA_KEY$8 = "bs.carousel"; 2251 const EVENT_KEY$8 = `.${DATA_KEY$8}`; 2252 const DATA_API_KEY$5 = ".data-api"; 2253 const ARROW_LEFT_KEY$1 = "ArrowLeft"; 2254 const ARROW_RIGHT_KEY$1 = "ArrowRight"; 2255 const TOUCHEVENT_COMPAT_WAIT = 500; 2256 const ORDER_NEXT = "next"; 2257 const ORDER_PREV = "prev"; 2258 const DIRECTION_LEFT = "left"; 2259 const DIRECTION_RIGHT = "right"; 2260 const EVENT_SLIDE = `slide${EVENT_KEY$8}`; 2261 const EVENT_SLID = `slid${EVENT_KEY$8}`; 2262 const EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$8}`; 2263 const EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$8}`; 2264 const EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$8}`; 2265 const EVENT_DRAG_START = `dragstart${EVENT_KEY$8}`; 2266 const EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$8}${DATA_API_KEY$5}`; 2267 const EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`; 2268 const CLASS_NAME_CAROUSEL = "carousel"; 2269 const CLASS_NAME_ACTIVE$2 = "active"; 2270 const CLASS_NAME_SLIDE = "slide"; 2271 const CLASS_NAME_END = "carousel-item-end"; 2272 const CLASS_NAME_START = "carousel-item-start"; 2273 const CLASS_NAME_NEXT = "carousel-item-next"; 2274 const CLASS_NAME_PREV = "carousel-item-prev"; 2275 const SELECTOR_ACTIVE = ".active"; 2276 const SELECTOR_ITEM = ".carousel-item"; 2277 const SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM; 2278 const SELECTOR_ITEM_IMG = ".carousel-item img"; 2279 const SELECTOR_INDICATORS = ".carousel-indicators"; 2280 const SELECTOR_DATA_SLIDE = "[data-bs-slide], [data-bs-slide-to]"; 2281 const SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]'; 2282 const KEY_TO_DIRECTION = { 2283 [ARROW_LEFT_KEY$1]: DIRECTION_RIGHT, 2284 [ARROW_RIGHT_KEY$1]: DIRECTION_LEFT 2285 }; 2286 const Default$b = { 2287 interval: 5e3, 2288 keyboard: true, 2289 pause: "hover", 2290 ride: false, 2291 touch: true, 2292 wrap: true 2293 }; 2294 const DefaultType$b = { 2295 interval: "(number|boolean)", 2296 // TODO:v6 remove boolean support 2297 keyboard: "boolean", 2298 pause: "(string|boolean)", 2299 ride: "(boolean|string)", 2300 touch: "boolean", 2301 wrap: "boolean" 2302 }; 2303 class Carousel extends BaseComponent { 2304 constructor(element, config3) { 2305 super(element, config3); 2306 this._interval = null; 2307 this._activeElement = null; 2308 this._isSliding = false; 2309 this.touchTimeout = null; 2310 this._swipeHelper = null; 2311 this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element); 2312 this._addEventListeners(); 2313 if (this._config.ride === CLASS_NAME_CAROUSEL) { 2314 this.cycle(); 2315 } 2316 } 2317 // Getters 2318 static get Default() { 2319 return Default$b; 2320 } 2321 static get DefaultType() { 2322 return DefaultType$b; 2323 } 2324 static get NAME() { 2325 return NAME$c; 2326 } 2327 // Public 2328 next() { 2329 this._slide(ORDER_NEXT); 2330 } 2331 nextWhenVisible() { 2332 if (!document.hidden && isVisible(this._element)) { 2333 this.next(); 2334 } 2335 } 2336 prev() { 2337 this._slide(ORDER_PREV); 2338 } 2339 pause() { 2340 if (this._isSliding) { 2341 triggerTransitionEnd(this._element); 2342 } 2343 this._clearInterval(); 2344 } 2345 cycle() { 2346 this._clearInterval(); 2347 this._updateInterval(); 2348 this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval); 2349 } 2350 _maybeEnableCycle() { 2351 if (!this._config.ride) { 2352 return; 2353 } 2354 if (this._isSliding) { 2355 EventHandler.one(this._element, EVENT_SLID, () => this.cycle()); 2356 return; 2357 } 2358 this.cycle(); 2359 } 2360 to(index) { 2361 const items = this._getItems(); 2362 if (index > items.length - 1 || index < 0) { 2363 return; 2364 } 2365 if (this._isSliding) { 2366 EventHandler.one(this._element, EVENT_SLID, () => this.to(index)); 2367 return; 2368 } 2369 const activeIndex = this._getItemIndex(this._getActive()); 2370 if (activeIndex === index) { 2371 return; 2372 } 2373 const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV; 2374 this._slide(order, items[index]); 2375 } 2376 dispose() { 2377 if (this._swipeHelper) { 2378 this._swipeHelper.dispose(); 2379 } 2380 super.dispose(); 2381 } 2382 // Private 2383 _configAfterMerge(config3) { 2384 config3.defaultInterval = config3.interval; 2385 return config3; 2386 } 2387 _addEventListeners() { 2388 if (this._config.keyboard) { 2389 EventHandler.on(this._element, EVENT_KEYDOWN$1, (event) => this._keydown(event)); 2390 } 2391 if (this._config.pause === "hover") { 2392 EventHandler.on(this._element, EVENT_MOUSEENTER$1, () => this.pause()); 2393 EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle()); 2394 } 2395 if (this._config.touch && Swipe.isSupported()) { 2396 this._addTouchEventListeners(); 2397 } 2398 } 2399 _addTouchEventListeners() { 2400 for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) { 2401 EventHandler.on(img, EVENT_DRAG_START, (event) => event.preventDefault()); 2402 } 2403 const endCallBack = () => { 2404 if (this._config.pause !== "hover") { 2405 return; 2406 } 2407 this.pause(); 2408 if (this.touchTimeout) { 2409 clearTimeout(this.touchTimeout); 2410 } 2411 this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval); 2412 }; 2413 const swipeConfig = { 2414 leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)), 2415 rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)), 2416 endCallback: endCallBack 2417 }; 2418 this._swipeHelper = new Swipe(this._element, swipeConfig); 2419 } 2420 _keydown(event) { 2421 if (/input|textarea/i.test(event.target.tagName)) { 2422 return; 2423 } 2424 const direction = KEY_TO_DIRECTION[event.key]; 2425 if (direction) { 2426 event.preventDefault(); 2427 this._slide(this._directionToOrder(direction)); 2428 } 2429 } 2430 _getItemIndex(element) { 2431 return this._getItems().indexOf(element); 2432 } 2433 _setActiveIndicatorElement(index) { 2434 if (!this._indicatorsElement) { 2435 return; 2436 } 2437 const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement); 2438 activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2); 2439 activeIndicator.removeAttribute("aria-current"); 2440 const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to="${index}"]`, this._indicatorsElement); 2441 if (newActiveIndicator) { 2442 newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2); 2443 newActiveIndicator.setAttribute("aria-current", "true"); 2444 } 2445 } 2446 _updateInterval() { 2447 const element = this._activeElement || this._getActive(); 2448 if (!element) { 2449 return; 2450 } 2451 const elementInterval = Number.parseInt(element.getAttribute("data-bs-interval"), 10); 2452 this._config.interval = elementInterval || this._config.defaultInterval; 2453 } 2454 _slide(order, element = null) { 2455 if (this._isSliding) { 2456 return; 2457 } 2458 const activeElement = this._getActive(); 2459 const isNext = order === ORDER_NEXT; 2460 const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap); 2461 if (nextElement === activeElement) { 2462 return; 2463 } 2464 const nextElementIndex = this._getItemIndex(nextElement); 2465 const triggerEvent = (eventName) => { 2466 return EventHandler.trigger(this._element, eventName, { 2467 relatedTarget: nextElement, 2468 direction: this._orderToDirection(order), 2469 from: this._getItemIndex(activeElement), 2470 to: nextElementIndex 2471 }); 2472 }; 2473 const slideEvent = triggerEvent(EVENT_SLIDE); 2474 if (slideEvent.defaultPrevented) { 2475 return; 2476 } 2477 if (!activeElement || !nextElement) { 2478 return; 2479 } 2480 const isCycling = Boolean(this._interval); 2481 this.pause(); 2482 this._isSliding = true; 2483 this._setActiveIndicatorElement(nextElementIndex); 2484 this._activeElement = nextElement; 2485 const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END; 2486 const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV; 2487 nextElement.classList.add(orderClassName); 2488 reflow(nextElement); 2489 activeElement.classList.add(directionalClassName); 2490 nextElement.classList.add(directionalClassName); 2491 const completeCallBack = () => { 2492 nextElement.classList.remove(directionalClassName, orderClassName); 2493 nextElement.classList.add(CLASS_NAME_ACTIVE$2); 2494 activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName); 2495 this._isSliding = false; 2496 triggerEvent(EVENT_SLID); 2497 }; 2498 this._queueCallback(completeCallBack, activeElement, this._isAnimated()); 2499 if (isCycling) { 2500 this.cycle(); 2501 } 2502 } 2503 _isAnimated() { 2504 return this._element.classList.contains(CLASS_NAME_SLIDE); 2505 } 2506 _getActive() { 2507 return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); 2508 } 2509 _getItems() { 2510 return SelectorEngine.find(SELECTOR_ITEM, this._element); 2511 } 2512 _clearInterval() { 2513 if (this._interval) { 2514 clearInterval(this._interval); 2515 this._interval = null; 2516 } 2517 } 2518 _directionToOrder(direction) { 2519 if (isRTL()) { 2520 return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT; 2521 } 2522 return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV; 2523 } 2524 _orderToDirection(order) { 2525 if (isRTL()) { 2526 return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT; 2527 } 2528 return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT; 2529 } 2530 // Static 2531 static jQueryInterface(config3) { 2532 return this.each(function() { 2533 const data = Carousel.getOrCreateInstance(this, config3); 2534 if (typeof config3 === "number") { 2535 data.to(config3); 2536 return; 2537 } 2538 if (typeof config3 === "string") { 2539 if (data[config3] === void 0 || config3.startsWith("_") || config3 === "constructor") { 2540 throw new TypeError(`No method named "${config3}"`); 2541 } 2542 data[config3](); 2543 } 2544 }); 2545 } 2546 } 2547 EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function(event) { 2548 const target = SelectorEngine.getElementFromSelector(this); 2549 if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) { 2550 return; 2551 } 2552 event.preventDefault(); 2553 const carousel = Carousel.getOrCreateInstance(target); 2554 const slideIndex = this.getAttribute("data-bs-slide-to"); 2555 if (slideIndex) { 2556 carousel.to(slideIndex); 2557 carousel._maybeEnableCycle(); 2558 return; 2559 } 2560 if (Manipulator.getDataAttribute(this, "slide") === "next") { 2561 carousel.next(); 2562 carousel._maybeEnableCycle(); 2563 return; 2564 } 2565 carousel.prev(); 2566 carousel._maybeEnableCycle(); 2567 }); 2568 EventHandler.on(window, EVENT_LOAD_DATA_API$3, () => { 2569 const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE); 2570 for (const carousel of carousels) { 2571 Carousel.getOrCreateInstance(carousel); 2572 } 2573 }); 2574 defineJQueryPlugin(Carousel); 2575 const NAME$b = "collapse"; 2576 const DATA_KEY$7 = "bs.collapse"; 2577 const EVENT_KEY$7 = `.${DATA_KEY$7}`; 2578 const DATA_API_KEY$4 = ".data-api"; 2579 const EVENT_SHOW$6 = `show${EVENT_KEY$7}`; 2580 const EVENT_SHOWN$6 = `shown${EVENT_KEY$7}`; 2581 const EVENT_HIDE$6 = `hide${EVENT_KEY$7}`; 2582 const EVENT_HIDDEN$6 = `hidden${EVENT_KEY$7}`; 2583 const EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`; 2584 const CLASS_NAME_SHOW$7 = "show"; 2585 const CLASS_NAME_COLLAPSE = "collapse"; 2586 const CLASS_NAME_COLLAPSING = "collapsing"; 2587 const CLASS_NAME_COLLAPSED = "collapsed"; 2588 const CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`; 2589 const CLASS_NAME_HORIZONTAL = "collapse-horizontal"; 2590 const WIDTH = "width"; 2591 const HEIGHT = "height"; 2592 const SELECTOR_ACTIVES = ".collapse.show, .collapse.collapsing"; 2593 const SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle="collapse"]'; 2594 const Default$a = { 2595 parent: null, 2596 toggle: true 2597 }; 2598 const DefaultType$a = { 2599 parent: "(null|element)", 2600 toggle: "boolean" 2601 }; 2602 class Collapse extends BaseComponent { 2603 constructor(element, config3) { 2604 super(element, config3); 2605 this._isTransitioning = false; 2606 this._triggerArray = []; 2607 const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4); 2608 for (const elem of toggleList) { 2609 const selector3 = SelectorEngine.getSelectorFromElement(elem); 2610 const filterElement = SelectorEngine.find(selector3).filter((foundElement) => foundElement === this._element); 2611 if (selector3 !== null && filterElement.length) { 2612 this._triggerArray.push(elem); 2613 } 2614 } 2615 this._initializeChildren(); 2616 if (!this._config.parent) { 2617 this._addAriaAndCollapsedClass(this._triggerArray, this._isShown()); 2618 } 2619 if (this._config.toggle) { 2620 this.toggle(); 2621 } 2622 } 2623 // Getters 2624 static get Default() { 2625 return Default$a; 2626 } 2627 static get DefaultType() { 2628 return DefaultType$a; 2629 } 2630 static get NAME() { 2631 return NAME$b; 2632 } 2633 // Public 2634 toggle() { 2635 if (this._isShown()) { 2636 this.hide(); 2637 } else { 2638 this.show(); 2639 } 2640 } 2641 show() { 2642 if (this._isTransitioning || this._isShown()) { 2643 return; 2644 } 2645 let activeChildren = []; 2646 if (this._config.parent) { 2647 activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter((element) => element !== this._element).map((element) => Collapse.getOrCreateInstance(element, { 2648 toggle: false 2649 })); 2650 } 2651 if (activeChildren.length && activeChildren[0]._isTransitioning) { 2652 return; 2653 } 2654 const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6); 2655 if (startEvent.defaultPrevented) { 2656 return; 2657 } 2658 for (const activeInstance of activeChildren) { 2659 activeInstance.hide(); 2660 } 2661 const dimension = this._getDimension(); 2662 this._element.classList.remove(CLASS_NAME_COLLAPSE); 2663 this._element.classList.add(CLASS_NAME_COLLAPSING); 2664 this._element.style[dimension] = 0; 2665 this._addAriaAndCollapsedClass(this._triggerArray, true); 2666 this._isTransitioning = true; 2667 const complete = () => { 2668 this._isTransitioning = false; 2669 this._element.classList.remove(CLASS_NAME_COLLAPSING); 2670 this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7); 2671 this._element.style[dimension] = ""; 2672 EventHandler.trigger(this._element, EVENT_SHOWN$6); 2673 }; 2674 const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); 2675 const scrollSize = `scroll${capitalizedDimension}`; 2676 this._queueCallback(complete, this._element, true); 2677 this._element.style[dimension] = `${this._element[scrollSize]}px`; 2678 } 2679 hide() { 2680 if (this._isTransitioning || !this._isShown()) { 2681 return; 2682 } 2683 const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6); 2684 if (startEvent.defaultPrevented) { 2685 return; 2686 } 2687 const dimension = this._getDimension(); 2688 this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`; 2689 reflow(this._element); 2690 this._element.classList.add(CLASS_NAME_COLLAPSING); 2691 this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7); 2692 for (const trigger of this._triggerArray) { 2693 const element = SelectorEngine.getElementFromSelector(trigger); 2694 if (element && !this._isShown(element)) { 2695 this._addAriaAndCollapsedClass([trigger], false); 2696 } 2697 } 2698 this._isTransitioning = true; 2699 const complete = () => { 2700 this._isTransitioning = false; 2701 this._element.classList.remove(CLASS_NAME_COLLAPSING); 2702 this._element.classList.add(CLASS_NAME_COLLAPSE); 2703 EventHandler.trigger(this._element, EVENT_HIDDEN$6); 2704 }; 2705 this._element.style[dimension] = ""; 2706 this._queueCallback(complete, this._element, true); 2707 } 2708 // Private 2709 _isShown(element = this._element) { 2710 return element.classList.contains(CLASS_NAME_SHOW$7); 2711 } 2712 _configAfterMerge(config3) { 2713 config3.toggle = Boolean(config3.toggle); 2714 config3.parent = getElement(config3.parent); 2715 return config3; 2716 } 2717 _getDimension() { 2718 return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT; 2719 } 2720 _initializeChildren() { 2721 if (!this._config.parent) { 2722 return; 2723 } 2724 const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4); 2725 for (const element of children) { 2726 const selected = SelectorEngine.getElementFromSelector(element); 2727 if (selected) { 2728 this._addAriaAndCollapsedClass([element], this._isShown(selected)); 2729 } 2730 } 2731 } 2732 _getFirstLevelChildren(selector3) { 2733 const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent); 2734 return SelectorEngine.find(selector3, this._config.parent).filter((element) => !children.includes(element)); 2735 } 2736 _addAriaAndCollapsedClass(triggerArray, isOpen) { 2737 if (!triggerArray.length) { 2738 return; 2739 } 2740 for (const element of triggerArray) { 2741 element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen); 2742 element.setAttribute("aria-expanded", isOpen); 2743 } 2744 } 2745 // Static 2746 static jQueryInterface(config3) { 2747 const _config2 = {}; 2748 if (typeof config3 === "string" && /show|hide/.test(config3)) { 2749 _config2.toggle = false; 2750 } 2751 return this.each(function() { 2752 const data = Collapse.getOrCreateInstance(this, _config2); 2753 if (typeof config3 === "string") { 2754 if (typeof data[config3] === "undefined") { 2755 throw new TypeError(`No method named "${config3}"`); 2756 } 2757 data[config3](); 2758 } 2759 }); 2760 } 2761 } 2762 EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function(event) { 2763 if (event.target.tagName === "A" || event.delegateTarget && event.delegateTarget.tagName === "A") { 2764 event.preventDefault(); 2765 } 2766 for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) { 2767 Collapse.getOrCreateInstance(element, { 2768 toggle: false 2769 }).toggle(); 2770 } 2771 }); 2772 defineJQueryPlugin(Collapse); 2773 const NAME$a = "dropdown"; 2774 const DATA_KEY$6 = "bs.dropdown"; 2775 const EVENT_KEY$6 = `.${DATA_KEY$6}`; 2776 const DATA_API_KEY$3 = ".data-api"; 2777 const ESCAPE_KEY$2 = "Escape"; 2778 const TAB_KEY$1 = "Tab"; 2779 const ARROW_UP_KEY$1 = "ArrowUp"; 2780 const ARROW_DOWN_KEY$1 = "ArrowDown"; 2781 const RIGHT_MOUSE_BUTTON = 2; 2782 const EVENT_HIDE$5 = `hide${EVENT_KEY$6}`; 2783 const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`; 2784 const EVENT_SHOW$5 = `show${EVENT_KEY$6}`; 2785 const EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`; 2786 const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`; 2787 const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$6}${DATA_API_KEY$3}`; 2788 const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$6}${DATA_API_KEY$3}`; 2789 const CLASS_NAME_SHOW$6 = "show"; 2790 const CLASS_NAME_DROPUP = "dropup"; 2791 const CLASS_NAME_DROPEND = "dropend"; 2792 const CLASS_NAME_DROPSTART = "dropstart"; 2793 const CLASS_NAME_DROPUP_CENTER = "dropup-center"; 2794 const CLASS_NAME_DROPDOWN_CENTER = "dropdown-center"; 2795 const SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)'; 2796 const SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$3}.${CLASS_NAME_SHOW$6}`; 2797 const SELECTOR_MENU = ".dropdown-menu"; 2798 const SELECTOR_NAVBAR = ".navbar"; 2799 const SELECTOR_NAVBAR_NAV = ".navbar-nav"; 2800 const SELECTOR_VISIBLE_ITEMS = ".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)"; 2801 const PLACEMENT_TOP = isRTL() ? "top-end" : "top-start"; 2802 const PLACEMENT_TOPEND = isRTL() ? "top-start" : "top-end"; 2803 const PLACEMENT_BOTTOM = isRTL() ? "bottom-end" : "bottom-start"; 2804 const PLACEMENT_BOTTOMEND = isRTL() ? "bottom-start" : "bottom-end"; 2805 const PLACEMENT_RIGHT = isRTL() ? "left-start" : "right-start"; 2806 const PLACEMENT_LEFT = isRTL() ? "right-start" : "left-start"; 2807 const PLACEMENT_TOPCENTER = "top"; 2808 const PLACEMENT_BOTTOMCENTER = "bottom"; 2809 const Default$9 = { 2810 autoClose: true, 2811 boundary: "clippingParents", 2812 display: "dynamic", 2813 offset: [0, 2], 2814 popperConfig: null, 2815 reference: "toggle" 2816 }; 2817 const DefaultType$9 = { 2818 autoClose: "(boolean|string)", 2819 boundary: "(string|element)", 2820 display: "string", 2821 offset: "(array|string|function)", 2822 popperConfig: "(null|object|function)", 2823 reference: "(string|element|object)" 2824 }; 2825 class Dropdown extends BaseComponent { 2826 constructor(element, config3) { 2827 super(element, config3); 2828 this._popper = null; 2829 this._parent = this._element.parentNode; 2830 this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent); 2831 this._inNavbar = this._detectNavbar(); 2832 } 2833 // Getters 2834 static get Default() { 2835 return Default$9; 2836 } 2837 static get DefaultType() { 2838 return DefaultType$9; 2839 } 2840 static get NAME() { 2841 return NAME$a; 2842 } 2843 // Public 2844 toggle() { 2845 return this._isShown() ? this.hide() : this.show(); 2846 } 2847 show() { 2848 if (isDisabled(this._element) || this._isShown()) { 2849 return; 2850 } 2851 const relatedTarget = { 2852 relatedTarget: this._element 2853 }; 2854 const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget); 2855 if (showEvent.defaultPrevented) { 2856 return; 2857 } 2858 this._createPopper(); 2859 if ("ontouchstart" in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) { 2860 for (const element of [].concat(...document.body.children)) { 2861 EventHandler.on(element, "mouseover", noop); 2862 } 2863 } 2864 this._element.focus(); 2865 this._element.setAttribute("aria-expanded", true); 2866 this._menu.classList.add(CLASS_NAME_SHOW$6); 2867 this._element.classList.add(CLASS_NAME_SHOW$6); 2868 EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget); 2869 } 2870 hide() { 2871 if (isDisabled(this._element) || !this._isShown()) { 2872 return; 2873 } 2874 const relatedTarget = { 2875 relatedTarget: this._element 2876 }; 2877 this._completeHide(relatedTarget); 2878 } 2879 dispose() { 2880 if (this._popper) { 2881 this._popper.destroy(); 2882 } 2883 super.dispose(); 2884 } 2885 update() { 2886 this._inNavbar = this._detectNavbar(); 2887 if (this._popper) { 2888 this._popper.update(); 2889 } 2890 } 2891 // Private 2892 _completeHide(relatedTarget) { 2893 const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$5, relatedTarget); 2894 if (hideEvent.defaultPrevented) { 2895 return; 2896 } 2897 if ("ontouchstart" in document.documentElement) { 2898 for (const element of [].concat(...document.body.children)) { 2899 EventHandler.off(element, "mouseover", noop); 2900 } 2901 } 2902 if (this._popper) { 2903 this._popper.destroy(); 2904 } 2905 this._menu.classList.remove(CLASS_NAME_SHOW$6); 2906 this._element.classList.remove(CLASS_NAME_SHOW$6); 2907 this._element.setAttribute("aria-expanded", "false"); 2908 Manipulator.removeDataAttribute(this._menu, "popper"); 2909 EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget); 2910 } 2911 _getConfig(config3) { 2912 config3 = super._getConfig(config3); 2913 if (typeof config3.reference === "object" && !isElement(config3.reference) && typeof config3.reference.getBoundingClientRect !== "function") { 2914 throw new TypeError(`${NAME$a.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`); 2915 } 2916 return config3; 2917 } 2918 _createPopper() { 2919 if (typeof Popper__namespace === "undefined") { 2920 throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org/docs/v2/)"); 2921 } 2922 let referenceElement = this._element; 2923 if (this._config.reference === "parent") { 2924 referenceElement = this._parent; 2925 } else if (isElement(this._config.reference)) { 2926 referenceElement = getElement(this._config.reference); 2927 } else if (typeof this._config.reference === "object") { 2928 referenceElement = this._config.reference; 2929 } 2930 const popperConfig = this._getPopperConfig(); 2931 this._popper = Popper__namespace.createPopper(referenceElement, this._menu, popperConfig); 2932 } 2933 _isShown() { 2934 return this._menu.classList.contains(CLASS_NAME_SHOW$6); 2935 } 2936 _getPlacement() { 2937 const parentDropdown = this._parent; 2938 if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) { 2939 return PLACEMENT_RIGHT; 2940 } 2941 if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) { 2942 return PLACEMENT_LEFT; 2943 } 2944 if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) { 2945 return PLACEMENT_TOPCENTER; 2946 } 2947 if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) { 2948 return PLACEMENT_BOTTOMCENTER; 2949 } 2950 const isEnd = getComputedStyle(this._menu).getPropertyValue("--bs-position").trim() === "end"; 2951 if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) { 2952 return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP; 2953 } 2954 return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM; 2955 } 2956 _detectNavbar() { 2957 return this._element.closest(SELECTOR_NAVBAR) !== null; 2958 } 2959 _getOffset() { 2960 const { 2961 offset 2962 } = this._config; 2963 if (typeof offset === "string") { 2964 return offset.split(",").map((value) => Number.parseInt(value, 10)); 2965 } 2966 if (typeof offset === "function") { 2967 return (popperData) => offset(popperData, this._element); 2968 } 2969 return offset; 2970 } 2971 _getPopperConfig() { 2972 const defaultBsPopperConfig = { 2973 placement: this._getPlacement(), 2974 modifiers: [{ 2975 name: "preventOverflow", 2976 options: { 2977 boundary: this._config.boundary 2978 } 2979 }, { 2980 name: "offset", 2981 options: { 2982 offset: this._getOffset() 2983 } 2984 }] 2985 }; 2986 if (this._inNavbar || this._config.display === "static") { 2987 Manipulator.setDataAttribute(this._menu, "popper", "static"); 2988 defaultBsPopperConfig.modifiers = [{ 2989 name: "applyStyles", 2990 enabled: false 2991 }]; 2992 } 2993 return { 2994 ...defaultBsPopperConfig, 2995 ...execute2(this._config.popperConfig, [void 0, defaultBsPopperConfig]) 2996 }; 2997 } 2998 _selectMenuItem({ 2999 key, 3000 target 3001 }) { 3002 const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter((element) => isVisible(element)); 3003 if (!items.length) { 3004 return; 3005 } 3006 getNextActiveElement(items, target, key === ARROW_DOWN_KEY$1, !items.includes(target)).focus(); 3007 } 3008 // Static 3009 static jQueryInterface(config3) { 3010 return this.each(function() { 3011 const data = Dropdown.getOrCreateInstance(this, config3); 3012 if (typeof config3 !== "string") { 3013 return; 3014 } 3015 if (typeof data[config3] === "undefined") { 3016 throw new TypeError(`No method named "${config3}"`); 3017 } 3018 data[config3](); 3019 }); 3020 } 3021 static clearMenus(event) { 3022 if (event.button === RIGHT_MOUSE_BUTTON || event.type === "keyup" && event.key !== TAB_KEY$1) { 3023 return; 3024 } 3025 const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN); 3026 for (const toggle of openToggles) { 3027 const context3 = Dropdown.getInstance(toggle); 3028 if (!context3 || context3._config.autoClose === false) { 3029 continue; 3030 } 3031 const composedPath = event.composedPath(); 3032 const isMenuTarget = composedPath.includes(context3._menu); 3033 if (composedPath.includes(context3._element) || context3._config.autoClose === "inside" && !isMenuTarget || context3._config.autoClose === "outside" && isMenuTarget) { 3034 continue; 3035 } 3036 if (context3._menu.contains(event.target) && (event.type === "keyup" && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) { 3037 continue; 3038 } 3039 const relatedTarget = { 3040 relatedTarget: context3._element 3041 }; 3042 if (event.type === "click") { 3043 relatedTarget.clickEvent = event; 3044 } 3045 context3._completeHide(relatedTarget); 3046 } 3047 } 3048 static dataApiKeydownHandler(event) { 3049 const isInput2 = /input|textarea/i.test(event.target.tagName); 3050 const isEscapeEvent = event.key === ESCAPE_KEY$2; 3051 const isUpOrDownEvent = [ARROW_UP_KEY$1, ARROW_DOWN_KEY$1].includes(event.key); 3052 if (!isUpOrDownEvent && !isEscapeEvent) { 3053 return; 3054 } 3055 if (isInput2 && !isEscapeEvent) { 3056 return; 3057 } 3058 event.preventDefault(); 3059 const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode); 3060 const instance = Dropdown.getOrCreateInstance(getToggleButton); 3061 if (isUpOrDownEvent) { 3062 event.stopPropagation(); 3063 instance.show(); 3064 instance._selectMenuItem(event); 3065 return; 3066 } 3067 if (instance._isShown()) { 3068 event.stopPropagation(); 3069 instance.hide(); 3070 getToggleButton.focus(); 3071 } 3072 } 3073 } 3074 EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler); 3075 EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler); 3076 EventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus); 3077 EventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus); 3078 EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function(event) { 3079 event.preventDefault(); 3080 Dropdown.getOrCreateInstance(this).toggle(); 3081 }); 3082 defineJQueryPlugin(Dropdown); 3083 const NAME$9 = "backdrop"; 3084 const CLASS_NAME_FADE$4 = "fade"; 3085 const CLASS_NAME_SHOW$5 = "show"; 3086 const EVENT_MOUSEDOWN = `mousedown.bs.${NAME$9}`; 3087 const Default$8 = { 3088 className: "modal-backdrop", 3089 clickCallback: null, 3090 isAnimated: false, 3091 isVisible: true, 3092 // if false, we use the backdrop helper without adding any element to the dom 3093 rootElement: "body" 3094 // give the choice to place backdrop under different elements 3095 }; 3096 const DefaultType$8 = { 3097 className: "string", 3098 clickCallback: "(function|null)", 3099 isAnimated: "boolean", 3100 isVisible: "boolean", 3101 rootElement: "(element|string)" 3102 }; 3103 class Backdrop extends Config { 3104 constructor(config3) { 3105 super(); 3106 this._config = this._getConfig(config3); 3107 this._isAppended = false; 3108 this._element = null; 3109 } 3110 // Getters 3111 static get Default() { 3112 return Default$8; 3113 } 3114 static get DefaultType() { 3115 return DefaultType$8; 3116 } 3117 static get NAME() { 3118 return NAME$9; 3119 } 3120 // Public 3121 show(callback) { 3122 if (!this._config.isVisible) { 3123 execute2(callback); 3124 return; 3125 } 3126 this._append(); 3127 const element = this._getElement(); 3128 if (this._config.isAnimated) { 3129 reflow(element); 3130 } 3131 element.classList.add(CLASS_NAME_SHOW$5); 3132 this._emulateAnimation(() => { 3133 execute2(callback); 3134 }); 3135 } 3136 hide(callback) { 3137 if (!this._config.isVisible) { 3138 execute2(callback); 3139 return; 3140 } 3141 this._getElement().classList.remove(CLASS_NAME_SHOW$5); 3142 this._emulateAnimation(() => { 3143 this.dispose(); 3144 execute2(callback); 3145 }); 3146 } 3147 dispose() { 3148 if (!this._isAppended) { 3149 return; 3150 } 3151 EventHandler.off(this._element, EVENT_MOUSEDOWN); 3152 this._element.remove(); 3153 this._isAppended = false; 3154 } 3155 // Private 3156 _getElement() { 3157 if (!this._element) { 3158 const backdrop = document.createElement("div"); 3159 backdrop.className = this._config.className; 3160 if (this._config.isAnimated) { 3161 backdrop.classList.add(CLASS_NAME_FADE$4); 3162 } 3163 this._element = backdrop; 3164 } 3165 return this._element; 3166 } 3167 _configAfterMerge(config3) { 3168 config3.rootElement = getElement(config3.rootElement); 3169 return config3; 3170 } 3171 _append() { 3172 if (this._isAppended) { 3173 return; 3174 } 3175 const element = this._getElement(); 3176 this._config.rootElement.append(element); 3177 EventHandler.on(element, EVENT_MOUSEDOWN, () => { 3178 execute2(this._config.clickCallback); 3179 }); 3180 this._isAppended = true; 3181 } 3182 _emulateAnimation(callback) { 3183 executeAfterTransition(callback, this._getElement(), this._config.isAnimated); 3184 } 3185 } 3186 const NAME$8 = "focustrap"; 3187 const DATA_KEY$5 = "bs.focustrap"; 3188 const EVENT_KEY$5 = `.${DATA_KEY$5}`; 3189 const EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$5}`; 3190 const EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$5}`; 3191 const TAB_KEY = "Tab"; 3192 const TAB_NAV_FORWARD = "forward"; 3193 const TAB_NAV_BACKWARD = "backward"; 3194 const Default$7 = { 3195 autofocus: true, 3196 trapElement: null 3197 // The element to trap focus inside of 3198 }; 3199 const DefaultType$7 = { 3200 autofocus: "boolean", 3201 trapElement: "element" 3202 }; 3203 class FocusTrap extends Config { 3204 constructor(config3) { 3205 super(); 3206 this._config = this._getConfig(config3); 3207 this._isActive = false; 3208 this._lastTabNavDirection = null; 3209 } 3210 // Getters 3211 static get Default() { 3212 return Default$7; 3213 } 3214 static get DefaultType() { 3215 return DefaultType$7; 3216 } 3217 static get NAME() { 3218 return NAME$8; 3219 } 3220 // Public 3221 activate() { 3222 if (this._isActive) { 3223 return; 3224 } 3225 if (this._config.autofocus) { 3226 this._config.trapElement.focus(); 3227 } 3228 EventHandler.off(document, EVENT_KEY$5); 3229 EventHandler.on(document, EVENT_FOCUSIN$2, (event) => this._handleFocusin(event)); 3230 EventHandler.on(document, EVENT_KEYDOWN_TAB, (event) => this._handleKeydown(event)); 3231 this._isActive = true; 3232 } 3233 deactivate() { 3234 if (!this._isActive) { 3235 return; 3236 } 3237 this._isActive = false; 3238 EventHandler.off(document, EVENT_KEY$5); 3239 } 3240 // Private 3241 _handleFocusin(event) { 3242 const { 3243 trapElement 3244 } = this._config; 3245 if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) { 3246 return; 3247 } 3248 const elements = SelectorEngine.focusableChildren(trapElement); 3249 if (elements.length === 0) { 3250 trapElement.focus(); 3251 } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) { 3252 elements[elements.length - 1].focus(); 3253 } else { 3254 elements[0].focus(); 3255 } 3256 } 3257 _handleKeydown(event) { 3258 if (event.key !== TAB_KEY) { 3259 return; 3260 } 3261 this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD; 3262 } 3263 } 3264 const SELECTOR_FIXED_CONTENT = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top"; 3265 const SELECTOR_STICKY_CONTENT = ".sticky-top"; 3266 const PROPERTY_PADDING = "padding-right"; 3267 const PROPERTY_MARGIN = "margin-right"; 3268 class ScrollBarHelper { 3269 constructor() { 3270 this._element = document.body; 3271 } 3272 // Public 3273 getWidth() { 3274 const documentWidth = document.documentElement.clientWidth; 3275 return Math.abs(window.innerWidth - documentWidth); 3276 } 3277 hide() { 3278 const width = this.getWidth(); 3279 this._disableOverFlow(); 3280 this._setElementAttributes(this._element, PROPERTY_PADDING, (calculatedValue) => calculatedValue + width); 3281 this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, (calculatedValue) => calculatedValue + width); 3282 this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, (calculatedValue) => calculatedValue - width); 3283 } 3284 reset() { 3285 this._resetElementAttributes(this._element, "overflow"); 3286 this._resetElementAttributes(this._element, PROPERTY_PADDING); 3287 this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING); 3288 this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN); 3289 } 3290 isOverflowing() { 3291 return this.getWidth() > 0; 3292 } 3293 // Private 3294 _disableOverFlow() { 3295 this._saveInitialAttribute(this._element, "overflow"); 3296 this._element.style.overflow = "hidden"; 3297 } 3298 _setElementAttributes(selector3, styleProperty, callback) { 3299 const scrollbarWidth = this.getWidth(); 3300 const manipulationCallBack = (element) => { 3301 if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) { 3302 return; 3303 } 3304 this._saveInitialAttribute(element, styleProperty); 3305 const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty); 3306 element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`); 3307 }; 3308 this._applyManipulationCallback(selector3, manipulationCallBack); 3309 } 3310 _saveInitialAttribute(element, styleProperty) { 3311 const actualValue = element.style.getPropertyValue(styleProperty); 3312 if (actualValue) { 3313 Manipulator.setDataAttribute(element, styleProperty, actualValue); 3314 } 3315 } 3316 _resetElementAttributes(selector3, styleProperty) { 3317 const manipulationCallBack = (element) => { 3318 const value = Manipulator.getDataAttribute(element, styleProperty); 3319 if (value === null) { 3320 element.style.removeProperty(styleProperty); 3321 return; 3322 } 3323 Manipulator.removeDataAttribute(element, styleProperty); 3324 element.style.setProperty(styleProperty, value); 3325 }; 3326 this._applyManipulationCallback(selector3, manipulationCallBack); 3327 } 3328 _applyManipulationCallback(selector3, callBack) { 3329 if (isElement(selector3)) { 3330 callBack(selector3); 3331 return; 3332 } 3333 for (const sel of SelectorEngine.find(selector3, this._element)) { 3334 callBack(sel); 3335 } 3336 } 3337 } 3338 const NAME$7 = "modal"; 3339 const DATA_KEY$4 = "bs.modal"; 3340 const EVENT_KEY$4 = `.${DATA_KEY$4}`; 3341 const DATA_API_KEY$2 = ".data-api"; 3342 const ESCAPE_KEY$1 = "Escape"; 3343 const EVENT_HIDE$4 = `hide${EVENT_KEY$4}`; 3344 const EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$4}`; 3345 const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`; 3346 const EVENT_SHOW$4 = `show${EVENT_KEY$4}`; 3347 const EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`; 3348 const EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`; 3349 const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`; 3350 const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`; 3351 const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`; 3352 const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`; 3353 const CLASS_NAME_OPEN = "modal-open"; 3354 const CLASS_NAME_FADE$3 = "fade"; 3355 const CLASS_NAME_SHOW$4 = "show"; 3356 const CLASS_NAME_STATIC = "modal-static"; 3357 const OPEN_SELECTOR$1 = ".modal.show"; 3358 const SELECTOR_DIALOG = ".modal-dialog"; 3359 const SELECTOR_MODAL_BODY = ".modal-body"; 3360 const SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="modal"]'; 3361 const Default$6 = { 3362 backdrop: true, 3363 focus: true, 3364 keyboard: true 3365 }; 3366 const DefaultType$6 = { 3367 backdrop: "(boolean|string)", 3368 focus: "boolean", 3369 keyboard: "boolean" 3370 }; 3371 class Modal extends BaseComponent { 3372 constructor(element, config3) { 3373 super(element, config3); 3374 this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element); 3375 this._backdrop = this._initializeBackDrop(); 3376 this._focustrap = this._initializeFocusTrap(); 3377 this._isShown = false; 3378 this._isTransitioning = false; 3379 this._scrollBar = new ScrollBarHelper(); 3380 this._addEventListeners(); 3381 } 3382 // Getters 3383 static get Default() { 3384 return Default$6; 3385 } 3386 static get DefaultType() { 3387 return DefaultType$6; 3388 } 3389 static get NAME() { 3390 return NAME$7; 3391 } 3392 // Public 3393 toggle(relatedTarget) { 3394 return this._isShown ? this.hide() : this.show(relatedTarget); 3395 } 3396 show(relatedTarget) { 3397 if (this._isShown || this._isTransitioning) { 3398 return; 3399 } 3400 const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, { 3401 relatedTarget 3402 }); 3403 if (showEvent.defaultPrevented) { 3404 return; 3405 } 3406 this._isShown = true; 3407 this._isTransitioning = true; 3408 this._scrollBar.hide(); 3409 document.body.classList.add(CLASS_NAME_OPEN); 3410 this._adjustDialog(); 3411 this._backdrop.show(() => this._showElement(relatedTarget)); 3412 } 3413 hide() { 3414 if (!this._isShown || this._isTransitioning) { 3415 return; 3416 } 3417 const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4); 3418 if (hideEvent.defaultPrevented) { 3419 return; 3420 } 3421 this._isShown = false; 3422 this._isTransitioning = true; 3423 this._focustrap.deactivate(); 3424 this._element.classList.remove(CLASS_NAME_SHOW$4); 3425 this._queueCallback(() => this._hideModal(), this._element, this._isAnimated()); 3426 } 3427 dispose() { 3428 EventHandler.off(window, EVENT_KEY$4); 3429 EventHandler.off(this._dialog, EVENT_KEY$4); 3430 this._backdrop.dispose(); 3431 this._focustrap.deactivate(); 3432 super.dispose(); 3433 } 3434 handleUpdate() { 3435 this._adjustDialog(); 3436 } 3437 // Private 3438 _initializeBackDrop() { 3439 return new Backdrop({ 3440 isVisible: Boolean(this._config.backdrop), 3441 // 'static' option will be translated to true, and booleans will keep their value, 3442 isAnimated: this._isAnimated() 3443 }); 3444 } 3445 _initializeFocusTrap() { 3446 return new FocusTrap({ 3447 trapElement: this._element 3448 }); 3449 } 3450 _showElement(relatedTarget) { 3451 if (!document.body.contains(this._element)) { 3452 document.body.append(this._element); 3453 } 3454 this._element.style.display = "block"; 3455 this._element.removeAttribute("aria-hidden"); 3456 this._element.setAttribute("aria-modal", true); 3457 this._element.setAttribute("role", "dialog"); 3458 this._element.scrollTop = 0; 3459 const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog); 3460 if (modalBody) { 3461 modalBody.scrollTop = 0; 3462 } 3463 reflow(this._element); 3464 this._element.classList.add(CLASS_NAME_SHOW$4); 3465 const transitionComplete = () => { 3466 if (this._config.focus) { 3467 this._focustrap.activate(); 3468 } 3469 this._isTransitioning = false; 3470 EventHandler.trigger(this._element, EVENT_SHOWN$4, { 3471 relatedTarget 3472 }); 3473 }; 3474 this._queueCallback(transitionComplete, this._dialog, this._isAnimated()); 3475 } 3476 _addEventListeners() { 3477 EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, (event) => { 3478 if (event.key !== ESCAPE_KEY$1) { 3479 return; 3480 } 3481 if (this._config.keyboard) { 3482 this.hide(); 3483 return; 3484 } 3485 this._triggerBackdropTransition(); 3486 }); 3487 EventHandler.on(window, EVENT_RESIZE$1, () => { 3488 if (this._isShown && !this._isTransitioning) { 3489 this._adjustDialog(); 3490 } 3491 }); 3492 EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, (event) => { 3493 EventHandler.one(this._element, EVENT_CLICK_DISMISS, (event2) => { 3494 if (this._element !== event.target || this._element !== event2.target) { 3495 return; 3496 } 3497 if (this._config.backdrop === "static") { 3498 this._triggerBackdropTransition(); 3499 return; 3500 } 3501 if (this._config.backdrop) { 3502 this.hide(); 3503 } 3504 }); 3505 }); 3506 } 3507 _hideModal() { 3508 this._element.style.display = "none"; 3509 this._element.setAttribute("aria-hidden", true); 3510 this._element.removeAttribute("aria-modal"); 3511 this._element.removeAttribute("role"); 3512 this._isTransitioning = false; 3513 this._backdrop.hide(() => { 3514 document.body.classList.remove(CLASS_NAME_OPEN); 3515 this._resetAdjustments(); 3516 this._scrollBar.reset(); 3517 EventHandler.trigger(this._element, EVENT_HIDDEN$4); 3518 }); 3519 } 3520 _isAnimated() { 3521 return this._element.classList.contains(CLASS_NAME_FADE$3); 3522 } 3523 _triggerBackdropTransition() { 3524 const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1); 3525 if (hideEvent.defaultPrevented) { 3526 return; 3527 } 3528 const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; 3529 const initialOverflowY = this._element.style.overflowY; 3530 if (initialOverflowY === "hidden" || this._element.classList.contains(CLASS_NAME_STATIC)) { 3531 return; 3532 } 3533 if (!isModalOverflowing) { 3534 this._element.style.overflowY = "hidden"; 3535 } 3536 this._element.classList.add(CLASS_NAME_STATIC); 3537 this._queueCallback(() => { 3538 this._element.classList.remove(CLASS_NAME_STATIC); 3539 this._queueCallback(() => { 3540 this._element.style.overflowY = initialOverflowY; 3541 }, this._dialog); 3542 }, this._dialog); 3543 this._element.focus(); 3544 } 3545 /** 3546 * The following methods are used to handle overflowing modals 3547 */ 3548 _adjustDialog() { 3549 const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; 3550 const scrollbarWidth = this._scrollBar.getWidth(); 3551 const isBodyOverflowing = scrollbarWidth > 0; 3552 if (isBodyOverflowing && !isModalOverflowing) { 3553 const property = isRTL() ? "paddingLeft" : "paddingRight"; 3554 this._element.style[property] = `${scrollbarWidth}px`; 3555 } 3556 if (!isBodyOverflowing && isModalOverflowing) { 3557 const property = isRTL() ? "paddingRight" : "paddingLeft"; 3558 this._element.style[property] = `${scrollbarWidth}px`; 3559 } 3560 } 3561 _resetAdjustments() { 3562 this._element.style.paddingLeft = ""; 3563 this._element.style.paddingRight = ""; 3564 } 3565 // Static 3566 static jQueryInterface(config3, relatedTarget) { 3567 return this.each(function() { 3568 const data = Modal.getOrCreateInstance(this, config3); 3569 if (typeof config3 !== "string") { 3570 return; 3571 } 3572 if (typeof data[config3] === "undefined") { 3573 throw new TypeError(`No method named "${config3}"`); 3574 } 3575 data[config3](relatedTarget); 3576 }); 3577 } 3578 } 3579 EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function(event) { 3580 const target = SelectorEngine.getElementFromSelector(this); 3581 if (["A", "AREA"].includes(this.tagName)) { 3582 event.preventDefault(); 3583 } 3584 EventHandler.one(target, EVENT_SHOW$4, (showEvent) => { 3585 if (showEvent.defaultPrevented) { 3586 return; 3587 } 3588 EventHandler.one(target, EVENT_HIDDEN$4, () => { 3589 if (isVisible(this)) { 3590 this.focus(); 3591 } 3592 }); 3593 }); 3594 const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1); 3595 if (alreadyOpen) { 3596 Modal.getInstance(alreadyOpen).hide(); 3597 } 3598 const data = Modal.getOrCreateInstance(target); 3599 data.toggle(this); 3600 }); 3601 enableDismissTrigger(Modal); 3602 defineJQueryPlugin(Modal); 3603 const NAME$6 = "offcanvas"; 3604 const DATA_KEY$3 = "bs.offcanvas"; 3605 const EVENT_KEY$3 = `.${DATA_KEY$3}`; 3606 const DATA_API_KEY$1 = ".data-api"; 3607 const EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`; 3608 const ESCAPE_KEY = "Escape"; 3609 const CLASS_NAME_SHOW$3 = "show"; 3610 const CLASS_NAME_SHOWING$1 = "showing"; 3611 const CLASS_NAME_HIDING = "hiding"; 3612 const CLASS_NAME_BACKDROP = "offcanvas-backdrop"; 3613 const OPEN_SELECTOR = ".offcanvas.show"; 3614 const EVENT_SHOW$3 = `show${EVENT_KEY$3}`; 3615 const EVENT_SHOWN$3 = `shown${EVENT_KEY$3}`; 3616 const EVENT_HIDE$3 = `hide${EVENT_KEY$3}`; 3617 const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$3}`; 3618 const EVENT_HIDDEN$3 = `hidden${EVENT_KEY$3}`; 3619 const EVENT_RESIZE = `resize${EVENT_KEY$3}`; 3620 const EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$3}${DATA_API_KEY$1}`; 3621 const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$3}`; 3622 const SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="offcanvas"]'; 3623 const Default$5 = { 3624 backdrop: true, 3625 keyboard: true, 3626 scroll: false 3627 }; 3628 const DefaultType$5 = { 3629 backdrop: "(boolean|string)", 3630 keyboard: "boolean", 3631 scroll: "boolean" 3632 }; 3633 class Offcanvas extends BaseComponent { 3634 constructor(element, config3) { 3635 super(element, config3); 3636 this._isShown = false; 3637 this._backdrop = this._initializeBackDrop(); 3638 this._focustrap = this._initializeFocusTrap(); 3639 this._addEventListeners(); 3640 } 3641 // Getters 3642 static get Default() { 3643 return Default$5; 3644 } 3645 static get DefaultType() { 3646 return DefaultType$5; 3647 } 3648 static get NAME() { 3649 return NAME$6; 3650 } 3651 // Public 3652 toggle(relatedTarget) { 3653 return this._isShown ? this.hide() : this.show(relatedTarget); 3654 } 3655 show(relatedTarget) { 3656 if (this._isShown) { 3657 return; 3658 } 3659 const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, { 3660 relatedTarget 3661 }); 3662 if (showEvent.defaultPrevented) { 3663 return; 3664 } 3665 this._isShown = true; 3666 this._backdrop.show(); 3667 if (!this._config.scroll) { 3668 new ScrollBarHelper().hide(); 3669 } 3670 this._element.setAttribute("aria-modal", true); 3671 this._element.setAttribute("role", "dialog"); 3672 this._element.classList.add(CLASS_NAME_SHOWING$1); 3673 const completeCallBack = () => { 3674 if (!this._config.scroll || this._config.backdrop) { 3675 this._focustrap.activate(); 3676 } 3677 this._element.classList.add(CLASS_NAME_SHOW$3); 3678 this._element.classList.remove(CLASS_NAME_SHOWING$1); 3679 EventHandler.trigger(this._element, EVENT_SHOWN$3, { 3680 relatedTarget 3681 }); 3682 }; 3683 this._queueCallback(completeCallBack, this._element, true); 3684 } 3685 hide() { 3686 if (!this._isShown) { 3687 return; 3688 } 3689 const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3); 3690 if (hideEvent.defaultPrevented) { 3691 return; 3692 } 3693 this._focustrap.deactivate(); 3694 this._element.blur(); 3695 this._isShown = false; 3696 this._element.classList.add(CLASS_NAME_HIDING); 3697 this._backdrop.hide(); 3698 const completeCallback = () => { 3699 this._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING); 3700 this._element.removeAttribute("aria-modal"); 3701 this._element.removeAttribute("role"); 3702 if (!this._config.scroll) { 3703 new ScrollBarHelper().reset(); 3704 } 3705 EventHandler.trigger(this._element, EVENT_HIDDEN$3); 3706 }; 3707 this._queueCallback(completeCallback, this._element, true); 3708 } 3709 dispose() { 3710 this._backdrop.dispose(); 3711 this._focustrap.deactivate(); 3712 super.dispose(); 3713 } 3714 // Private 3715 _initializeBackDrop() { 3716 const clickCallback = () => { 3717 if (this._config.backdrop === "static") { 3718 EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); 3719 return; 3720 } 3721 this.hide(); 3722 }; 3723 const isVisible2 = Boolean(this._config.backdrop); 3724 return new Backdrop({ 3725 className: CLASS_NAME_BACKDROP, 3726 isVisible: isVisible2, 3727 isAnimated: true, 3728 rootElement: this._element.parentNode, 3729 clickCallback: isVisible2 ? clickCallback : null 3730 }); 3731 } 3732 _initializeFocusTrap() { 3733 return new FocusTrap({ 3734 trapElement: this._element 3735 }); 3736 } 3737 _addEventListeners() { 3738 EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, (event) => { 3739 if (event.key !== ESCAPE_KEY) { 3740 return; 3741 } 3742 if (this._config.keyboard) { 3743 this.hide(); 3744 return; 3745 } 3746 EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); 3747 }); 3748 } 3749 // Static 3750 static jQueryInterface(config3) { 3751 return this.each(function() { 3752 const data = Offcanvas.getOrCreateInstance(this, config3); 3753 if (typeof config3 !== "string") { 3754 return; 3755 } 3756 if (data[config3] === void 0 || config3.startsWith("_") || config3 === "constructor") { 3757 throw new TypeError(`No method named "${config3}"`); 3758 } 3759 data[config3](this); 3760 }); 3761 } 3762 } 3763 EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function(event) { 3764 const target = SelectorEngine.getElementFromSelector(this); 3765 if (["A", "AREA"].includes(this.tagName)) { 3766 event.preventDefault(); 3767 } 3768 if (isDisabled(this)) { 3769 return; 3770 } 3771 EventHandler.one(target, EVENT_HIDDEN$3, () => { 3772 if (isVisible(this)) { 3773 this.focus(); 3774 } 3775 }); 3776 const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR); 3777 if (alreadyOpen && alreadyOpen !== target) { 3778 Offcanvas.getInstance(alreadyOpen).hide(); 3779 } 3780 const data = Offcanvas.getOrCreateInstance(target); 3781 data.toggle(this); 3782 }); 3783 EventHandler.on(window, EVENT_LOAD_DATA_API$2, () => { 3784 for (const selector3 of SelectorEngine.find(OPEN_SELECTOR)) { 3785 Offcanvas.getOrCreateInstance(selector3).show(); 3786 } 3787 }); 3788 EventHandler.on(window, EVENT_RESIZE, () => { 3789 for (const element of SelectorEngine.find("[aria-modal][class*=show][class*=offcanvas-]")) { 3790 if (getComputedStyle(element).position !== "fixed") { 3791 Offcanvas.getOrCreateInstance(element).hide(); 3792 } 3793 } 3794 }); 3795 enableDismissTrigger(Offcanvas); 3796 defineJQueryPlugin(Offcanvas); 3797 const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i; 3798 const DefaultAllowlist = { 3799 // Global attributes allowed on any supplied element below. 3800 "*": ["class", "dir", "id", "lang", "role", ARIA_ATTRIBUTE_PATTERN], 3801 a: ["target", "href", "title", "rel"], 3802 area: [], 3803 b: [], 3804 br: [], 3805 col: [], 3806 code: [], 3807 dd: [], 3808 div: [], 3809 dl: [], 3810 dt: [], 3811 em: [], 3812 hr: [], 3813 h1: [], 3814 h2: [], 3815 h3: [], 3816 h4: [], 3817 h5: [], 3818 h6: [], 3819 i: [], 3820 img: ["src", "srcset", "alt", "title", "width", "height"], 3821 li: [], 3822 ol: [], 3823 p: [], 3824 pre: [], 3825 s: [], 3826 small: [], 3827 span: [], 3828 sub: [], 3829 sup: [], 3830 strong: [], 3831 u: [], 3832 ul: [] 3833 }; 3834 const uriAttributes = /* @__PURE__ */ new Set(["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"]); 3835 const SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i; 3836 const allowedAttribute = (attribute, allowedAttributeList) => { 3837 const attributeName = attribute.nodeName.toLowerCase(); 3838 if (allowedAttributeList.includes(attributeName)) { 3839 if (uriAttributes.has(attributeName)) { 3840 return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue)); 3841 } 3842 return true; 3843 } 3844 return allowedAttributeList.filter((attributeRegex) => attributeRegex instanceof RegExp).some((regex) => regex.test(attributeName)); 3845 }; 3846 function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) { 3847 if (!unsafeHtml.length) { 3848 return unsafeHtml; 3849 } 3850 if (sanitizeFunction && typeof sanitizeFunction === "function") { 3851 return sanitizeFunction(unsafeHtml); 3852 } 3853 const domParser = new window.DOMParser(); 3854 const createdDocument = domParser.parseFromString(unsafeHtml, "text/html"); 3855 const elements = [].concat(...createdDocument.body.querySelectorAll("*")); 3856 for (const element of elements) { 3857 const elementName = element.nodeName.toLowerCase(); 3858 if (!Object.keys(allowList).includes(elementName)) { 3859 element.remove(); 3860 continue; 3861 } 3862 const attributeList = [].concat(...element.attributes); 3863 const allowedAttributes = [].concat(allowList["*"] || [], allowList[elementName] || []); 3864 for (const attribute of attributeList) { 3865 if (!allowedAttribute(attribute, allowedAttributes)) { 3866 element.removeAttribute(attribute.nodeName); 3867 } 3868 } 3869 } 3870 return createdDocument.body.innerHTML; 3871 } 3872 const NAME$5 = "TemplateFactory"; 3873 const Default$4 = { 3874 allowList: DefaultAllowlist, 3875 content: {}, 3876 // { selector : text , selector2 : text2 , } 3877 extraClass: "", 3878 html: false, 3879 sanitize: true, 3880 sanitizeFn: null, 3881 template: "<div></div>" 3882 }; 3883 const DefaultType$4 = { 3884 allowList: "object", 3885 content: "object", 3886 extraClass: "(string|function)", 3887 html: "boolean", 3888 sanitize: "boolean", 3889 sanitizeFn: "(null|function)", 3890 template: "string" 3891 }; 3892 const DefaultContentType = { 3893 entry: "(string|element|function|null)", 3894 selector: "(string|element)" 3895 }; 3896 class TemplateFactory extends Config { 3897 constructor(config3) { 3898 super(); 3899 this._config = this._getConfig(config3); 3900 } 3901 // Getters 3902 static get Default() { 3903 return Default$4; 3904 } 3905 static get DefaultType() { 3906 return DefaultType$4; 3907 } 3908 static get NAME() { 3909 return NAME$5; 3910 } 3911 // Public 3912 getContent() { 3913 return Object.values(this._config.content).map((config3) => this._resolvePossibleFunction(config3)).filter(Boolean); 3914 } 3915 hasContent() { 3916 return this.getContent().length > 0; 3917 } 3918 changeContent(content) { 3919 this._checkContent(content); 3920 this._config.content = { 3921 ...this._config.content, 3922 ...content 3923 }; 3924 return this; 3925 } 3926 toHtml() { 3927 const templateWrapper = document.createElement("div"); 3928 templateWrapper.innerHTML = this._maybeSanitize(this._config.template); 3929 for (const [selector3, text] of Object.entries(this._config.content)) { 3930 this._setContent(templateWrapper, text, selector3); 3931 } 3932 const template = templateWrapper.children[0]; 3933 const extraClass = this._resolvePossibleFunction(this._config.extraClass); 3934 if (extraClass) { 3935 template.classList.add(...extraClass.split(" ")); 3936 } 3937 return template; 3938 } 3939 // Private 3940 _typeCheckConfig(config3) { 3941 super._typeCheckConfig(config3); 3942 this._checkContent(config3.content); 3943 } 3944 _checkContent(arg) { 3945 for (const [selector3, content] of Object.entries(arg)) { 3946 super._typeCheckConfig({ 3947 selector: selector3, 3948 entry: content 3949 }, DefaultContentType); 3950 } 3951 } 3952 _setContent(template, content, selector3) { 3953 const templateElement = SelectorEngine.findOne(selector3, template); 3954 if (!templateElement) { 3955 return; 3956 } 3957 content = this._resolvePossibleFunction(content); 3958 if (!content) { 3959 templateElement.remove(); 3960 return; 3961 } 3962 if (isElement(content)) { 3963 this._putElementInTemplate(getElement(content), templateElement); 3964 return; 3965 } 3966 if (this._config.html) { 3967 templateElement.innerHTML = this._maybeSanitize(content); 3968 return; 3969 } 3970 templateElement.textContent = content; 3971 } 3972 _maybeSanitize(arg) { 3973 return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg; 3974 } 3975 _resolvePossibleFunction(arg) { 3976 return execute2(arg, [void 0, this]); 3977 } 3978 _putElementInTemplate(element, templateElement) { 3979 if (this._config.html) { 3980 templateElement.innerHTML = ""; 3981 templateElement.append(element); 3982 return; 3983 } 3984 templateElement.textContent = element.textContent; 3985 } 3986 } 3987 const NAME$4 = "tooltip"; 3988 const DISALLOWED_ATTRIBUTES = /* @__PURE__ */ new Set(["sanitize", "allowList", "sanitizeFn"]); 3989 const CLASS_NAME_FADE$2 = "fade"; 3990 const CLASS_NAME_MODAL = "modal"; 3991 const CLASS_NAME_SHOW$2 = "show"; 3992 const SELECTOR_TOOLTIP_INNER = ".tooltip-inner"; 3993 const SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`; 3994 const EVENT_MODAL_HIDE = "hide.bs.modal"; 3995 const TRIGGER_HOVER = "hover"; 3996 const TRIGGER_FOCUS = "focus"; 3997 const TRIGGER_CLICK = "click"; 3998 const TRIGGER_MANUAL = "manual"; 3999 const EVENT_HIDE$2 = "hide"; 4000 const EVENT_HIDDEN$2 = "hidden"; 4001 const EVENT_SHOW$2 = "show"; 4002 const EVENT_SHOWN$2 = "shown"; 4003 const EVENT_INSERTED = "inserted"; 4004 const EVENT_CLICK$1 = "click"; 4005 const EVENT_FOCUSIN$1 = "focusin"; 4006 const EVENT_FOCUSOUT$1 = "focusout"; 4007 const EVENT_MOUSEENTER = "mouseenter"; 4008 const EVENT_MOUSELEAVE = "mouseleave"; 4009 const AttachmentMap = { 4010 AUTO: "auto", 4011 TOP: "top", 4012 RIGHT: isRTL() ? "left" : "right", 4013 BOTTOM: "bottom", 4014 LEFT: isRTL() ? "right" : "left" 4015 }; 4016 const Default$3 = { 4017 allowList: DefaultAllowlist, 4018 animation: true, 4019 boundary: "clippingParents", 4020 container: false, 4021 customClass: "", 4022 delay: 0, 4023 fallbackPlacements: ["top", "right", "bottom", "left"], 4024 html: false, 4025 offset: [0, 6], 4026 placement: "top", 4027 popperConfig: null, 4028 sanitize: true, 4029 sanitizeFn: null, 4030 selector: false, 4031 template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>', 4032 title: "", 4033 trigger: "hover focus" 4034 }; 4035 const DefaultType$3 = { 4036 allowList: "object", 4037 animation: "boolean", 4038 boundary: "(string|element)", 4039 container: "(string|element|boolean)", 4040 customClass: "(string|function)", 4041 delay: "(number|object)", 4042 fallbackPlacements: "array", 4043 html: "boolean", 4044 offset: "(array|string|function)", 4045 placement: "(string|function)", 4046 popperConfig: "(null|object|function)", 4047 sanitize: "boolean", 4048 sanitizeFn: "(null|function)", 4049 selector: "(string|boolean)", 4050 template: "string", 4051 title: "(string|element|function)", 4052 trigger: "string" 4053 }; 4054 class Tooltip2 extends BaseComponent { 4055 constructor(element, config3) { 4056 if (typeof Popper__namespace === "undefined") { 4057 throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org/docs/v2/)"); 4058 } 4059 super(element, config3); 4060 this._isEnabled = true; 4061 this._timeout = 0; 4062 this._isHovered = null; 4063 this._activeTrigger = {}; 4064 this._popper = null; 4065 this._templateFactory = null; 4066 this._newContent = null; 4067 this.tip = null; 4068 this._setListeners(); 4069 if (!this._config.selector) { 4070 this._fixTitle(); 4071 } 4072 } 4073 // Getters 4074 static get Default() { 4075 return Default$3; 4076 } 4077 static get DefaultType() { 4078 return DefaultType$3; 4079 } 4080 static get NAME() { 4081 return NAME$4; 4082 } 4083 // Public 4084 enable() { 4085 this._isEnabled = true; 4086 } 4087 disable() { 4088 this._isEnabled = false; 4089 } 4090 toggleEnabled() { 4091 this._isEnabled = !this._isEnabled; 4092 } 4093 toggle() { 4094 if (!this._isEnabled) { 4095 return; 4096 } 4097 if (this._isShown()) { 4098 this._leave(); 4099 return; 4100 } 4101 this._enter(); 4102 } 4103 dispose() { 4104 clearTimeout(this._timeout); 4105 EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler); 4106 if (this._element.getAttribute("data-bs-original-title")) { 4107 this._element.setAttribute("title", this._element.getAttribute("data-bs-original-title")); 4108 } 4109 this._disposePopper(); 4110 super.dispose(); 4111 } 4112 show() { 4113 if (this._element.style.display === "none") { 4114 throw new Error("Please use show on visible elements"); 4115 } 4116 if (!(this._isWithContent() && this._isEnabled)) { 4117 return; 4118 } 4119 const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2)); 4120 const shadowRoot = findShadowRoot(this._element); 4121 const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element); 4122 if (showEvent.defaultPrevented || !isInTheDom) { 4123 return; 4124 } 4125 this._disposePopper(); 4126 const tip = this._getTipElement(); 4127 this._element.setAttribute("aria-describedby", tip.getAttribute("id")); 4128 const { 4129 container 4130 } = this._config; 4131 if (!this._element.ownerDocument.documentElement.contains(this.tip)) { 4132 container.append(tip); 4133 EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED)); 4134 } 4135 this._popper = this._createPopper(tip); 4136 tip.classList.add(CLASS_NAME_SHOW$2); 4137 if ("ontouchstart" in document.documentElement) { 4138 for (const element of [].concat(...document.body.children)) { 4139 EventHandler.on(element, "mouseover", noop); 4140 } 4141 } 4142 const complete = () => { 4143 EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2)); 4144 if (this._isHovered === false) { 4145 this._leave(); 4146 } 4147 this._isHovered = false; 4148 }; 4149 this._queueCallback(complete, this.tip, this._isAnimated()); 4150 } 4151 hide() { 4152 if (!this._isShown()) { 4153 return; 4154 } 4155 const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2)); 4156 if (hideEvent.defaultPrevented) { 4157 return; 4158 } 4159 const tip = this._getTipElement(); 4160 tip.classList.remove(CLASS_NAME_SHOW$2); 4161 if ("ontouchstart" in document.documentElement) { 4162 for (const element of [].concat(...document.body.children)) { 4163 EventHandler.off(element, "mouseover", noop); 4164 } 4165 } 4166 this._activeTrigger[TRIGGER_CLICK] = false; 4167 this._activeTrigger[TRIGGER_FOCUS] = false; 4168 this._activeTrigger[TRIGGER_HOVER] = false; 4169 this._isHovered = null; 4170 const complete = () => { 4171 if (this._isWithActiveTrigger()) { 4172 return; 4173 } 4174 if (!this._isHovered) { 4175 this._disposePopper(); 4176 } 4177 this._element.removeAttribute("aria-describedby"); 4178 EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2)); 4179 }; 4180 this._queueCallback(complete, this.tip, this._isAnimated()); 4181 } 4182 update() { 4183 if (this._popper) { 4184 this._popper.update(); 4185 } 4186 } 4187 // Protected 4188 _isWithContent() { 4189 return Boolean(this._getTitle()); 4190 } 4191 _getTipElement() { 4192 if (!this.tip) { 4193 this.tip = this._createTipElement(this._newContent || this._getContentForTemplate()); 4194 } 4195 return this.tip; 4196 } 4197 _createTipElement(content) { 4198 const tip = this._getTemplateFactory(content).toHtml(); 4199 if (!tip) { 4200 return null; 4201 } 4202 tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2); 4203 tip.classList.add(`bs-${this.constructor.NAME}-auto`); 4204 const tipId = getUID(this.constructor.NAME).toString(); 4205 tip.setAttribute("id", tipId); 4206 if (this._isAnimated()) { 4207 tip.classList.add(CLASS_NAME_FADE$2); 4208 } 4209 return tip; 4210 } 4211 setContent(content) { 4212 this._newContent = content; 4213 if (this._isShown()) { 4214 this._disposePopper(); 4215 this.show(); 4216 } 4217 } 4218 _getTemplateFactory(content) { 4219 if (this._templateFactory) { 4220 this._templateFactory.changeContent(content); 4221 } else { 4222 this._templateFactory = new TemplateFactory({ 4223 ...this._config, 4224 // the `content` var has to be after `this._config` 4225 // to override config.content in case of popover 4226 content, 4227 extraClass: this._resolvePossibleFunction(this._config.customClass) 4228 }); 4229 } 4230 return this._templateFactory; 4231 } 4232 _getContentForTemplate() { 4233 return { 4234 [SELECTOR_TOOLTIP_INNER]: this._getTitle() 4235 }; 4236 } 4237 _getTitle() { 4238 return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute("data-bs-original-title"); 4239 } 4240 // Private 4241 _initializeOnDelegatedTarget(event) { 4242 return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig()); 4243 } 4244 _isAnimated() { 4245 return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2); 4246 } 4247 _isShown() { 4248 return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2); 4249 } 4250 _createPopper(tip) { 4251 const placement = execute2(this._config.placement, [this, tip, this._element]); 4252 const attachment = AttachmentMap[placement.toUpperCase()]; 4253 return Popper__namespace.createPopper(this._element, tip, this._getPopperConfig(attachment)); 4254 } 4255 _getOffset() { 4256 const { 4257 offset 4258 } = this._config; 4259 if (typeof offset === "string") { 4260 return offset.split(",").map((value) => Number.parseInt(value, 10)); 4261 } 4262 if (typeof offset === "function") { 4263 return (popperData) => offset(popperData, this._element); 4264 } 4265 return offset; 4266 } 4267 _resolvePossibleFunction(arg) { 4268 return execute2(arg, [this._element, this._element]); 4269 } 4270 _getPopperConfig(attachment) { 4271 const defaultBsPopperConfig = { 4272 placement: attachment, 4273 modifiers: [{ 4274 name: "flip", 4275 options: { 4276 fallbackPlacements: this._config.fallbackPlacements 4277 } 4278 }, { 4279 name: "offset", 4280 options: { 4281 offset: this._getOffset() 4282 } 4283 }, { 4284 name: "preventOverflow", 4285 options: { 4286 boundary: this._config.boundary 4287 } 4288 }, { 4289 name: "arrow", 4290 options: { 4291 element: `.${this.constructor.NAME}-arrow` 4292 } 4293 }, { 4294 name: "preSetPlacement", 4295 enabled: true, 4296 phase: "beforeMain", 4297 fn: (data) => { 4298 this._getTipElement().setAttribute("data-popper-placement", data.state.placement); 4299 } 4300 }] 4301 }; 4302 return { 4303 ...defaultBsPopperConfig, 4304 ...execute2(this._config.popperConfig, [void 0, defaultBsPopperConfig]) 4305 }; 4306 } 4307 _setListeners() { 4308 const triggers = this._config.trigger.split(" "); 4309 for (const trigger of triggers) { 4310 if (trigger === "click") { 4311 EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, (event) => { 4312 const context3 = this._initializeOnDelegatedTarget(event); 4313 context3._activeTrigger[TRIGGER_CLICK] = !(context3._isShown() && context3._activeTrigger[TRIGGER_CLICK]); 4314 context3.toggle(); 4315 }); 4316 } else if (trigger !== TRIGGER_MANUAL) { 4317 const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1); 4318 const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1); 4319 EventHandler.on(this._element, eventIn, this._config.selector, (event) => { 4320 const context3 = this._initializeOnDelegatedTarget(event); 4321 context3._activeTrigger[event.type === "focusin" ? TRIGGER_FOCUS : TRIGGER_HOVER] = true; 4322 context3._enter(); 4323 }); 4324 EventHandler.on(this._element, eventOut, this._config.selector, (event) => { 4325 const context3 = this._initializeOnDelegatedTarget(event); 4326 context3._activeTrigger[event.type === "focusout" ? TRIGGER_FOCUS : TRIGGER_HOVER] = context3._element.contains(event.relatedTarget); 4327 context3._leave(); 4328 }); 4329 } 4330 } 4331 this._hideModalHandler = () => { 4332 if (this._element) { 4333 this.hide(); 4334 } 4335 }; 4336 EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler); 4337 } 4338 _fixTitle() { 4339 const title = this._element.getAttribute("title"); 4340 if (!title) { 4341 return; 4342 } 4343 if (!this._element.getAttribute("aria-label") && !this._element.textContent.trim()) { 4344 this._element.setAttribute("aria-label", title); 4345 } 4346 this._element.setAttribute("data-bs-original-title", title); 4347 this._element.removeAttribute("title"); 4348 } 4349 _enter() { 4350 if (this._isShown() || this._isHovered) { 4351 this._isHovered = true; 4352 return; 4353 } 4354 this._isHovered = true; 4355 this._setTimeout(() => { 4356 if (this._isHovered) { 4357 this.show(); 4358 } 4359 }, this._config.delay.show); 4360 } 4361 _leave() { 4362 if (this._isWithActiveTrigger()) { 4363 return; 4364 } 4365 this._isHovered = false; 4366 this._setTimeout(() => { 4367 if (!this._isHovered) { 4368 this.hide(); 4369 } 4370 }, this._config.delay.hide); 4371 } 4372 _setTimeout(handler, timeout) { 4373 clearTimeout(this._timeout); 4374 this._timeout = setTimeout(handler, timeout); 4375 } 4376 _isWithActiveTrigger() { 4377 return Object.values(this._activeTrigger).includes(true); 4378 } 4379 _getConfig(config3) { 4380 const dataAttributes = Manipulator.getDataAttributes(this._element); 4381 for (const dataAttribute of Object.keys(dataAttributes)) { 4382 if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) { 4383 delete dataAttributes[dataAttribute]; 4384 } 4385 } 4386 config3 = { 4387 ...dataAttributes, 4388 ...typeof config3 === "object" && config3 ? config3 : {} 4389 }; 4390 config3 = this._mergeConfigObj(config3); 4391 config3 = this._configAfterMerge(config3); 4392 this._typeCheckConfig(config3); 4393 return config3; 4394 } 4395 _configAfterMerge(config3) { 4396 config3.container = config3.container === false ? document.body : getElement(config3.container); 4397 if (typeof config3.delay === "number") { 4398 config3.delay = { 4399 show: config3.delay, 4400 hide: config3.delay 4401 }; 4402 } 4403 if (typeof config3.title === "number") { 4404 config3.title = config3.title.toString(); 4405 } 4406 if (typeof config3.content === "number") { 4407 config3.content = config3.content.toString(); 4408 } 4409 return config3; 4410 } 4411 _getDelegateConfig() { 4412 const config3 = {}; 4413 for (const [key, value] of Object.entries(this._config)) { 4414 if (this.constructor.Default[key] !== value) { 4415 config3[key] = value; 4416 } 4417 } 4418 config3.selector = false; 4419 config3.trigger = "manual"; 4420 return config3; 4421 } 4422 _disposePopper() { 4423 if (this._popper) { 4424 this._popper.destroy(); 4425 this._popper = null; 4426 } 4427 if (this.tip) { 4428 this.tip.remove(); 4429 this.tip = null; 4430 } 4431 } 4432 // Static 4433 static jQueryInterface(config3) { 4434 return this.each(function() { 4435 const data = Tooltip2.getOrCreateInstance(this, config3); 4436 if (typeof config3 !== "string") { 4437 return; 4438 } 4439 if (typeof data[config3] === "undefined") { 4440 throw new TypeError(`No method named "${config3}"`); 4441 } 4442 data[config3](); 4443 }); 4444 } 4445 } 4446 defineJQueryPlugin(Tooltip2); 4447 const NAME$3 = "popover"; 4448 const SELECTOR_TITLE = ".popover-header"; 4449 const SELECTOR_CONTENT = ".popover-body"; 4450 const Default$2 = { 4451 ...Tooltip2.Default, 4452 content: "", 4453 offset: [0, 8], 4454 placement: "right", 4455 template: '<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>', 4456 trigger: "click" 4457 }; 4458 const DefaultType$2 = { 4459 ...Tooltip2.DefaultType, 4460 content: "(null|string|element|function)" 4461 }; 4462 class Popover extends Tooltip2 { 4463 // Getters 4464 static get Default() { 4465 return Default$2; 4466 } 4467 static get DefaultType() { 4468 return DefaultType$2; 4469 } 4470 static get NAME() { 4471 return NAME$3; 4472 } 4473 // Overrides 4474 _isWithContent() { 4475 return this._getTitle() || this._getContent(); 4476 } 4477 // Private 4478 _getContentForTemplate() { 4479 return { 4480 [SELECTOR_TITLE]: this._getTitle(), 4481 [SELECTOR_CONTENT]: this._getContent() 4482 }; 4483 } 4484 _getContent() { 4485 return this._resolvePossibleFunction(this._config.content); 4486 } 4487 // Static 4488 static jQueryInterface(config3) { 4489 return this.each(function() { 4490 const data = Popover.getOrCreateInstance(this, config3); 4491 if (typeof config3 !== "string") { 4492 return; 4493 } 4494 if (typeof data[config3] === "undefined") { 4495 throw new TypeError(`No method named "${config3}"`); 4496 } 4497 data[config3](); 4498 }); 4499 } 4500 } 4501 defineJQueryPlugin(Popover); 4502 const NAME$2 = "scrollspy"; 4503 const DATA_KEY$2 = "bs.scrollspy"; 4504 const EVENT_KEY$2 = `.${DATA_KEY$2}`; 4505 const DATA_API_KEY = ".data-api"; 4506 const EVENT_ACTIVATE = `activate${EVENT_KEY$2}`; 4507 const EVENT_CLICK = `click${EVENT_KEY$2}`; 4508 const EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$2}${DATA_API_KEY}`; 4509 const CLASS_NAME_DROPDOWN_ITEM = "dropdown-item"; 4510 const CLASS_NAME_ACTIVE$1 = "active"; 4511 const SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]'; 4512 const SELECTOR_TARGET_LINKS = "[href]"; 4513 const SELECTOR_NAV_LIST_GROUP = ".nav, .list-group"; 4514 const SELECTOR_NAV_LINKS = ".nav-link"; 4515 const SELECTOR_NAV_ITEMS = ".nav-item"; 4516 const SELECTOR_LIST_ITEMS = ".list-group-item"; 4517 const SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`; 4518 const SELECTOR_DROPDOWN = ".dropdown"; 4519 const SELECTOR_DROPDOWN_TOGGLE$1 = ".dropdown-toggle"; 4520 const Default$1 = { 4521 offset: null, 4522 // TODO: v6 @deprecated, keep it for backwards compatibility reasons 4523 rootMargin: "0px 0px -25%", 4524 smoothScroll: false, 4525 target: null, 4526 threshold: [0.1, 0.5, 1] 4527 }; 4528 const DefaultType$1 = { 4529 offset: "(number|null)", 4530 // TODO v6 @deprecated, keep it for backwards compatibility reasons 4531 rootMargin: "string", 4532 smoothScroll: "boolean", 4533 target: "element", 4534 threshold: "array" 4535 }; 4536 class ScrollSpy extends BaseComponent { 4537 constructor(element, config3) { 4538 super(element, config3); 4539 this._targetLinks = /* @__PURE__ */ new Map(); 4540 this._observableSections = /* @__PURE__ */ new Map(); 4541 this._rootElement = getComputedStyle(this._element).overflowY === "visible" ? null : this._element; 4542 this._activeTarget = null; 4543 this._observer = null; 4544 this._previousScrollData = { 4545 visibleEntryTop: 0, 4546 parentScrollTop: 0 4547 }; 4548 this.refresh(); 4549 } 4550 // Getters 4551 static get Default() { 4552 return Default$1; 4553 } 4554 static get DefaultType() { 4555 return DefaultType$1; 4556 } 4557 static get NAME() { 4558 return NAME$2; 4559 } 4560 // Public 4561 refresh() { 4562 this._initializeTargetsAndObservables(); 4563 this._maybeEnableSmoothScroll(); 4564 if (this._observer) { 4565 this._observer.disconnect(); 4566 } else { 4567 this._observer = this._getNewObserver(); 4568 } 4569 for (const section of this._observableSections.values()) { 4570 this._observer.observe(section); 4571 } 4572 } 4573 dispose() { 4574 this._observer.disconnect(); 4575 super.dispose(); 4576 } 4577 // Private 4578 _configAfterMerge(config3) { 4579 config3.target = getElement(config3.target) || document.body; 4580 config3.rootMargin = config3.offset ? `${config3.offset}px 0px -30%` : config3.rootMargin; 4581 if (typeof config3.threshold === "string") { 4582 config3.threshold = config3.threshold.split(",").map((value) => Number.parseFloat(value)); 4583 } 4584 return config3; 4585 } 4586 _maybeEnableSmoothScroll() { 4587 if (!this._config.smoothScroll) { 4588 return; 4589 } 4590 EventHandler.off(this._config.target, EVENT_CLICK); 4591 EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, (event) => { 4592 const observableSection = this._observableSections.get(event.target.hash); 4593 if (observableSection) { 4594 event.preventDefault(); 4595 const root = this._rootElement || window; 4596 const height = observableSection.offsetTop - this._element.offsetTop; 4597 if (root.scrollTo) { 4598 root.scrollTo({ 4599 top: height, 4600 behavior: "smooth" 4601 }); 4602 return; 4603 } 4604 root.scrollTop = height; 4605 } 4606 }); 4607 } 4608 _getNewObserver() { 4609 const options = { 4610 root: this._rootElement, 4611 threshold: this._config.threshold, 4612 rootMargin: this._config.rootMargin 4613 }; 4614 return new IntersectionObserver((entries) => this._observerCallback(entries), options); 4615 } 4616 // The logic of selection 4617 _observerCallback(entries) { 4618 const targetElement = (entry) => this._targetLinks.get(`#${entry.target.id}`); 4619 const activate = (entry) => { 4620 this._previousScrollData.visibleEntryTop = entry.target.offsetTop; 4621 this._process(targetElement(entry)); 4622 }; 4623 const parentScrollTop = (this._rootElement || document.documentElement).scrollTop; 4624 const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop; 4625 this._previousScrollData.parentScrollTop = parentScrollTop; 4626 for (const entry of entries) { 4627 if (!entry.isIntersecting) { 4628 this._activeTarget = null; 4629 this._clearActiveClass(targetElement(entry)); 4630 continue; 4631 } 4632 const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop; 4633 if (userScrollsDown && entryIsLowerThanPrevious) { 4634 activate(entry); 4635 if (!parentScrollTop) { 4636 return; 4637 } 4638 continue; 4639 } 4640 if (!userScrollsDown && !entryIsLowerThanPrevious) { 4641 activate(entry); 4642 } 4643 } 4644 } 4645 _initializeTargetsAndObservables() { 4646 this._targetLinks = /* @__PURE__ */ new Map(); 4647 this._observableSections = /* @__PURE__ */ new Map(); 4648 const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target); 4649 for (const anchor of targetLinks) { 4650 if (!anchor.hash || isDisabled(anchor)) { 4651 continue; 4652 } 4653 const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element); 4654 if (isVisible(observableSection)) { 4655 this._targetLinks.set(decodeURI(anchor.hash), anchor); 4656 this._observableSections.set(anchor.hash, observableSection); 4657 } 4658 } 4659 } 4660 _process(target) { 4661 if (this._activeTarget === target) { 4662 return; 4663 } 4664 this._clearActiveClass(this._config.target); 4665 this._activeTarget = target; 4666 target.classList.add(CLASS_NAME_ACTIVE$1); 4667 this._activateParents(target); 4668 EventHandler.trigger(this._element, EVENT_ACTIVATE, { 4669 relatedTarget: target 4670 }); 4671 } 4672 _activateParents(target) { 4673 if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) { 4674 SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1); 4675 return; 4676 } 4677 for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) { 4678 for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) { 4679 item.classList.add(CLASS_NAME_ACTIVE$1); 4680 } 4681 } 4682 } 4683 _clearActiveClass(parent) { 4684 parent.classList.remove(CLASS_NAME_ACTIVE$1); 4685 const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE$1}`, parent); 4686 for (const node of activeNodes) { 4687 node.classList.remove(CLASS_NAME_ACTIVE$1); 4688 } 4689 } 4690 // Static 4691 static jQueryInterface(config3) { 4692 return this.each(function() { 4693 const data = ScrollSpy.getOrCreateInstance(this, config3); 4694 if (typeof config3 !== "string") { 4695 return; 4696 } 4697 if (data[config3] === void 0 || config3.startsWith("_") || config3 === "constructor") { 4698 throw new TypeError(`No method named "${config3}"`); 4699 } 4700 data[config3](); 4701 }); 4702 } 4703 } 4704 EventHandler.on(window, EVENT_LOAD_DATA_API$1, () => { 4705 for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) { 4706 ScrollSpy.getOrCreateInstance(spy); 4707 } 4708 }); 4709 defineJQueryPlugin(ScrollSpy); 4710 const NAME$1 = "tab"; 4711 const DATA_KEY$1 = "bs.tab"; 4712 const EVENT_KEY$1 = `.${DATA_KEY$1}`; 4713 const EVENT_HIDE$1 = `hide${EVENT_KEY$1}`; 4714 const EVENT_HIDDEN$1 = `hidden${EVENT_KEY$1}`; 4715 const EVENT_SHOW$1 = `show${EVENT_KEY$1}`; 4716 const EVENT_SHOWN$1 = `shown${EVENT_KEY$1}`; 4717 const EVENT_CLICK_DATA_API = `click${EVENT_KEY$1}`; 4718 const EVENT_KEYDOWN = `keydown${EVENT_KEY$1}`; 4719 const EVENT_LOAD_DATA_API = `load${EVENT_KEY$1}`; 4720 const ARROW_LEFT_KEY = "ArrowLeft"; 4721 const ARROW_RIGHT_KEY = "ArrowRight"; 4722 const ARROW_UP_KEY = "ArrowUp"; 4723 const ARROW_DOWN_KEY = "ArrowDown"; 4724 const HOME_KEY = "Home"; 4725 const END_KEY = "End"; 4726 const CLASS_NAME_ACTIVE = "active"; 4727 const CLASS_NAME_FADE$1 = "fade"; 4728 const CLASS_NAME_SHOW$1 = "show"; 4729 const CLASS_DROPDOWN = "dropdown"; 4730 const SELECTOR_DROPDOWN_TOGGLE = ".dropdown-toggle"; 4731 const SELECTOR_DROPDOWN_MENU = ".dropdown-menu"; 4732 const NOT_SELECTOR_DROPDOWN_TOGGLE = `:not(${SELECTOR_DROPDOWN_TOGGLE})`; 4733 const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]'; 4734 const SELECTOR_OUTER = ".nav-item, .list-group-item"; 4735 const SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role="tab"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`; 4736 const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]'; 4737 const SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`; 4738 const SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle="tab"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="pill"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="list"]`; 4739 class Tab extends BaseComponent { 4740 constructor(element) { 4741 super(element); 4742 this._parent = this._element.closest(SELECTOR_TAB_PANEL); 4743 if (!this._parent) { 4744 return; 4745 } 4746 this._setInitialAttributes(this._parent, this._getChildren()); 4747 EventHandler.on(this._element, EVENT_KEYDOWN, (event) => this._keydown(event)); 4748 } 4749 // Getters 4750 static get NAME() { 4751 return NAME$1; 4752 } 4753 // Public 4754 show() { 4755 const innerElem = this._element; 4756 if (this._elemIsActive(innerElem)) { 4757 return; 4758 } 4759 const active = this._getActiveElem(); 4760 const hideEvent = active ? EventHandler.trigger(active, EVENT_HIDE$1, { 4761 relatedTarget: innerElem 4762 }) : null; 4763 const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW$1, { 4764 relatedTarget: active 4765 }); 4766 if (showEvent.defaultPrevented || hideEvent && hideEvent.defaultPrevented) { 4767 return; 4768 } 4769 this._deactivate(active, innerElem); 4770 this._activate(innerElem, active); 4771 } 4772 // Private 4773 _activate(element, relatedElem) { 4774 if (!element) { 4775 return; 4776 } 4777 element.classList.add(CLASS_NAME_ACTIVE); 4778 this._activate(SelectorEngine.getElementFromSelector(element)); 4779 const complete = () => { 4780 if (element.getAttribute("role") !== "tab") { 4781 element.classList.add(CLASS_NAME_SHOW$1); 4782 return; 4783 } 4784 element.removeAttribute("tabindex"); 4785 element.setAttribute("aria-selected", true); 4786 this._toggleDropDown(element, true); 4787 EventHandler.trigger(element, EVENT_SHOWN$1, { 4788 relatedTarget: relatedElem 4789 }); 4790 }; 4791 this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1)); 4792 } 4793 _deactivate(element, relatedElem) { 4794 if (!element) { 4795 return; 4796 } 4797 element.classList.remove(CLASS_NAME_ACTIVE); 4798 element.blur(); 4799 this._deactivate(SelectorEngine.getElementFromSelector(element)); 4800 const complete = () => { 4801 if (element.getAttribute("role") !== "tab") { 4802 element.classList.remove(CLASS_NAME_SHOW$1); 4803 return; 4804 } 4805 element.setAttribute("aria-selected", false); 4806 element.setAttribute("tabindex", "-1"); 4807 this._toggleDropDown(element, false); 4808 EventHandler.trigger(element, EVENT_HIDDEN$1, { 4809 relatedTarget: relatedElem 4810 }); 4811 }; 4812 this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1)); 4813 } 4814 _keydown(event) { 4815 if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key)) { 4816 return; 4817 } 4818 event.stopPropagation(); 4819 event.preventDefault(); 4820 const children = this._getChildren().filter((element) => !isDisabled(element)); 4821 let nextActiveElement; 4822 if ([HOME_KEY, END_KEY].includes(event.key)) { 4823 nextActiveElement = children[event.key === HOME_KEY ? 0 : children.length - 1]; 4824 } else { 4825 const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key); 4826 nextActiveElement = getNextActiveElement(children, event.target, isNext, true); 4827 } 4828 if (nextActiveElement) { 4829 nextActiveElement.focus({ 4830 preventScroll: true 4831 }); 4832 Tab.getOrCreateInstance(nextActiveElement).show(); 4833 } 4834 } 4835 _getChildren() { 4836 return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent); 4837 } 4838 _getActiveElem() { 4839 return this._getChildren().find((child) => this._elemIsActive(child)) || null; 4840 } 4841 _setInitialAttributes(parent, children) { 4842 this._setAttributeIfNotExists(parent, "role", "tablist"); 4843 for (const child of children) { 4844 this._setInitialAttributesOnChild(child); 4845 } 4846 } 4847 _setInitialAttributesOnChild(child) { 4848 child = this._getInnerElement(child); 4849 const isActive = this._elemIsActive(child); 4850 const outerElem = this._getOuterElement(child); 4851 child.setAttribute("aria-selected", isActive); 4852 if (outerElem !== child) { 4853 this._setAttributeIfNotExists(outerElem, "role", "presentation"); 4854 } 4855 if (!isActive) { 4856 child.setAttribute("tabindex", "-1"); 4857 } 4858 this._setAttributeIfNotExists(child, "role", "tab"); 4859 this._setInitialAttributesOnTargetPanel(child); 4860 } 4861 _setInitialAttributesOnTargetPanel(child) { 4862 const target = SelectorEngine.getElementFromSelector(child); 4863 if (!target) { 4864 return; 4865 } 4866 this._setAttributeIfNotExists(target, "role", "tabpanel"); 4867 if (child.id) { 4868 this._setAttributeIfNotExists(target, "aria-labelledby", `${child.id}`); 4869 } 4870 } 4871 _toggleDropDown(element, open) { 4872 const outerElem = this._getOuterElement(element); 4873 if (!outerElem.classList.contains(CLASS_DROPDOWN)) { 4874 return; 4875 } 4876 const toggle = (selector3, className) => { 4877 const element2 = SelectorEngine.findOne(selector3, outerElem); 4878 if (element2) { 4879 element2.classList.toggle(className, open); 4880 } 4881 }; 4882 toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE); 4883 toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW$1); 4884 outerElem.setAttribute("aria-expanded", open); 4885 } 4886 _setAttributeIfNotExists(element, attribute, value) { 4887 if (!element.hasAttribute(attribute)) { 4888 element.setAttribute(attribute, value); 4889 } 4890 } 4891 _elemIsActive(elem) { 4892 return elem.classList.contains(CLASS_NAME_ACTIVE); 4893 } 4894 // Try to get the inner element (usually the .nav-link) 4895 _getInnerElement(elem) { 4896 return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem); 4897 } 4898 // Try to get the outer element (usually the .nav-item) 4899 _getOuterElement(elem) { 4900 return elem.closest(SELECTOR_OUTER) || elem; 4901 } 4902 // Static 4903 static jQueryInterface(config3) { 4904 return this.each(function() { 4905 const data = Tab.getOrCreateInstance(this); 4906 if (typeof config3 !== "string") { 4907 return; 4908 } 4909 if (data[config3] === void 0 || config3.startsWith("_") || config3 === "constructor") { 4910 throw new TypeError(`No method named "${config3}"`); 4911 } 4912 data[config3](); 4913 }); 4914 } 4915 } 4916 EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function(event) { 4917 if (["A", "AREA"].includes(this.tagName)) { 4918 event.preventDefault(); 4919 } 4920 if (isDisabled(this)) { 4921 return; 4922 } 4923 Tab.getOrCreateInstance(this).show(); 4924 }); 4925 EventHandler.on(window, EVENT_LOAD_DATA_API, () => { 4926 for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) { 4927 Tab.getOrCreateInstance(element); 4928 } 4929 }); 4930 defineJQueryPlugin(Tab); 4931 const NAME = "toast"; 4932 const DATA_KEY = "bs.toast"; 4933 const EVENT_KEY = `.${DATA_KEY}`; 4934 const EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`; 4935 const EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`; 4936 const EVENT_FOCUSIN = `focusin${EVENT_KEY}`; 4937 const EVENT_FOCUSOUT = `focusout${EVENT_KEY}`; 4938 const EVENT_HIDE = `hide${EVENT_KEY}`; 4939 const EVENT_HIDDEN = `hidden${EVENT_KEY}`; 4940 const EVENT_SHOW = `show${EVENT_KEY}`; 4941 const EVENT_SHOWN = `shown${EVENT_KEY}`; 4942 const CLASS_NAME_FADE = "fade"; 4943 const CLASS_NAME_HIDE = "hide"; 4944 const CLASS_NAME_SHOW = "show"; 4945 const CLASS_NAME_SHOWING = "showing"; 4946 const DefaultType = { 4947 animation: "boolean", 4948 autohide: "boolean", 4949 delay: "number" 4950 }; 4951 const Default = { 4952 animation: true, 4953 autohide: true, 4954 delay: 5e3 4955 }; 4956 class Toast extends BaseComponent { 4957 constructor(element, config3) { 4958 super(element, config3); 4959 this._timeout = null; 4960 this._hasMouseInteraction = false; 4961 this._hasKeyboardInteraction = false; 4962 this._setListeners(); 4963 } 4964 // Getters 4965 static get Default() { 4966 return Default; 4967 } 4968 static get DefaultType() { 4969 return DefaultType; 4970 } 4971 static get NAME() { 4972 return NAME; 4973 } 4974 // Public 4975 show() { 4976 const showEvent = EventHandler.trigger(this._element, EVENT_SHOW); 4977 if (showEvent.defaultPrevented) { 4978 return; 4979 } 4980 this._clearTimeout(); 4981 if (this._config.animation) { 4982 this._element.classList.add(CLASS_NAME_FADE); 4983 } 4984 const complete = () => { 4985 this._element.classList.remove(CLASS_NAME_SHOWING); 4986 EventHandler.trigger(this._element, EVENT_SHOWN); 4987 this._maybeScheduleHide(); 4988 }; 4989 this._element.classList.remove(CLASS_NAME_HIDE); 4990 reflow(this._element); 4991 this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING); 4992 this._queueCallback(complete, this._element, this._config.animation); 4993 } 4994 hide() { 4995 if (!this.isShown()) { 4996 return; 4997 } 4998 const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE); 4999 if (hideEvent.defaultPrevented) { 5000 return; 5001 } 5002 const complete = () => { 5003 this._element.classList.add(CLASS_NAME_HIDE); 5004 this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW); 5005 EventHandler.trigger(this._element, EVENT_HIDDEN); 5006 }; 5007 this._element.classList.add(CLASS_NAME_SHOWING); 5008 this._queueCallback(complete, this._element, this._config.animation); 5009 } 5010 dispose() { 5011 this._clearTimeout(); 5012 if (this.isShown()) { 5013 this._element.classList.remove(CLASS_NAME_SHOW); 5014 } 5015 super.dispose(); 5016 } 5017 isShown() { 5018 return this._element.classList.contains(CLASS_NAME_SHOW); 5019 } 5020 // Private 5021 _maybeScheduleHide() { 5022 if (!this._config.autohide) { 5023 return; 5024 } 5025 if (this._hasMouseInteraction || this._hasKeyboardInteraction) { 5026 return; 5027 } 5028 this._timeout = setTimeout(() => { 5029 this.hide(); 5030 }, this._config.delay); 5031 } 5032 _onInteraction(event, isInteracting) { 5033 switch (event.type) { 5034 case "mouseover": 5035 case "mouseout": { 5036 this._hasMouseInteraction = isInteracting; 5037 break; 5038 } 5039 case "focusin": 5040 case "focusout": { 5041 this._hasKeyboardInteraction = isInteracting; 5042 break; 5043 } 5044 } 5045 if (isInteracting) { 5046 this._clearTimeout(); 5047 return; 5048 } 5049 const nextElement = event.relatedTarget; 5050 if (this._element === nextElement || this._element.contains(nextElement)) { 5051 return; 5052 } 5053 this._maybeScheduleHide(); 5054 } 5055 _setListeners() { 5056 EventHandler.on(this._element, EVENT_MOUSEOVER, (event) => this._onInteraction(event, true)); 5057 EventHandler.on(this._element, EVENT_MOUSEOUT, (event) => this._onInteraction(event, false)); 5058 EventHandler.on(this._element, EVENT_FOCUSIN, (event) => this._onInteraction(event, true)); 5059 EventHandler.on(this._element, EVENT_FOCUSOUT, (event) => this._onInteraction(event, false)); 5060 } 5061 _clearTimeout() { 5062 clearTimeout(this._timeout); 5063 this._timeout = null; 5064 } 5065 // Static 5066 static jQueryInterface(config3) { 5067 return this.each(function() { 5068 const data = Toast.getOrCreateInstance(this, config3); 5069 if (typeof config3 === "string") { 5070 if (typeof data[config3] === "undefined") { 5071 throw new TypeError(`No method named "${config3}"`); 5072 } 5073 data[config3](this); 5074 } 5075 }); 5076 } 5077 } 5078 enableDismissTrigger(Toast); 5079 defineJQueryPlugin(Toast); 5080 const index_umd = { 5081 Alert, 5082 Button, 5083 Carousel, 5084 Collapse, 5085 Dropdown, 5086 Modal, 5087 Offcanvas, 5088 Popover, 5089 ScrollSpy, 5090 Tab, 5091 Toast, 5092 Tooltip: Tooltip2 5093 }; 5094 return index_umd; 5095 })); 5096 } 5097 }); 5098 5099
vendor: 2,424 bytes, lines 5099-5164
5099// node_modules/ev-emitter/ev-emitter.js 5100 var require_ev_emitter = __commonJS({ 5101 "node_modules/ev-emitter/ev-emitter.js"(exports, module) { 5102 (function(global, factory) { 5103 if (typeof module == "object" && module.exports) { 5104 module.exports = factory(); 5105 } else { 5106 global.EvEmitter = factory(); 5107 } 5108 })(typeof window != "undefined" ? window : exports, function() { 5109 function EvEmitter() { 5110 } 5111 let proto = EvEmitter.prototype; 5112 proto.on = function(eventName, listener) { 5113 if (!eventName || !listener) return this; 5114 let events = this._events = this._events || {}; 5115 let listeners = events[eventName] = events[eventName] || []; 5116 if (!listeners.includes(listener)) { 5117 listeners.push(listener); 5118 } 5119 return this; 5120 }; 5121 proto.once = function(eventName, listener) { 5122 if (!eventName || !listener) return this; 5123 this.on(eventName, listener); 5124 let onceEvents = this._onceEvents = this._onceEvents || {}; 5125 let onceListeners = onceEvents[eventName] = onceEvents[eventName] || {}; 5126 onceListeners[listener] = true; 5127 return this; 5128 }; 5129 proto.off = function(eventName, listener) { 5130 let listeners = this._events && this._events[eventName]; 5131 if (!listeners || !listeners.length) return this; 5132 let index = listeners.indexOf(listener); 5133 if (index != -1) { 5134 listeners.splice(index, 1); 5135 } 5136 return this; 5137 }; 5138 proto.emitEvent = function(eventName, args) { 5139 let listeners = this._events && this._events[eventName]; 5140 if (!listeners || !listeners.length) return this; 5141 listeners = listeners.slice(0); 5142 args = args || []; 5143 let onceListeners = this._onceEvents && this._onceEvents[eventName]; 5144 for (let listener of listeners) { 5145 let isOnce = onceListeners && onceListeners[listener]; 5146 if (isOnce) { 5147 this.off(eventName, listener); 5148 delete onceListeners[listener]; 5149 } 5150 listener.apply(this, args); 5151 } 5152 return this; 5153 }; 5154 proto.allOff = function() { 5155 delete this._events; 5156 delete this._onceEvents; 5157 return this; 5158 }; 5159 return EvEmitter; 5160 }); 5161 } 5162 }); 5163 5164
vendor: 3,367 bytes, lines 5164-5250
5164// node_modules/flickity/node_modules/get-size/get-size.js 5165 var require_get_size = __commonJS({ 5166 "node_modules/flickity/node_modules/get-size/get-size.js"(exports, module) { 5167 (function(window2, factory) { 5168 if (typeof module == "object" && module.exports) { 5169 module.exports = factory(); 5170 } else { 5171 window2.getSize = factory(); 5172 } 5173 })(window, function factory() { 5174 function getStyleSize(value) { 5175 let num = parseFloat(value); 5176 let isValid = value.indexOf("%") == -1 && !isNaN(num); 5177 return isValid && num; 5178 } 5179 let measurements = [ 5180 "paddingLeft", 5181 "paddingRight", 5182 "paddingTop", 5183 "paddingBottom", 5184 "marginLeft", 5185 "marginRight", 5186 "marginTop", 5187 "marginBottom", 5188 "borderLeftWidth", 5189 "borderRightWidth", 5190 "borderTopWidth", 5191 "borderBottomWidth" 5192 ]; 5193 let measurementsLength = measurements.length; 5194 function getZeroSize() { 5195 let size = { 5196 width: 0, 5197 height: 0, 5198 innerWidth: 0, 5199 innerHeight: 0, 5200 outerWidth: 0, 5201 outerHeight: 0 5202 }; 5203 measurements.forEach((measurement) => { 5204 size[measurement] = 0; 5205 }); 5206 return size; 5207 } 5208 function getSize(elem) { 5209 if (typeof elem == "string") elem = document.querySelector(elem); 5210 let isElement = elem && typeof elem == "object" && elem.nodeType; 5211 if (!isElement) return; 5212 let style = getComputedStyle(elem); 5213 if (style.display == "none") return getZeroSize(); 5214 let size = {}; 5215 size.width = elem.offsetWidth; 5216 size.height = elem.offsetHeight; 5217 let isBorderBox = size.isBorderBox = style.boxSizing == "border-box"; 5218 measurements.forEach((measurement) => { 5219 let value = style[measurement]; 5220 let num = parseFloat(value); 5221 size[measurement] = !isNaN(num) ? num : 0; 5222 }); 5223 let paddingWidth = size.paddingLeft + size.paddingRight; 5224 let paddingHeight = size.paddingTop + size.paddingBottom; 5225 let marginWidth = size.marginLeft + size.marginRight; 5226 let marginHeight = size.marginTop + size.marginBottom; 5227 let borderWidth = size.borderLeftWidth + size.borderRightWidth; 5228 let borderHeight = size.borderTopWidth + size.borderBottomWidth; 5229 let styleWidth = getStyleSize(style.width); 5230 if (styleWidth !== false) { 5231 size.width = styleWidth + // add padding and border unless it's already including it 5232 (isBorderBox ? 0 : paddingWidth + borderWidth); 5233 } 5234 let styleHeight = getStyleSize(style.height); 5235 if (styleHeight !== false) { 5236 size.height = styleHeight + // add padding and border unless it's already including it 5237 (isBorderBox ? 0 : paddingHeight + borderHeight); 5238 } 5239 size.innerWidth = size.width - (paddingWidth + borderWidth); 5240 size.innerHeight = size.height - (paddingHeight + borderHeight); 5241 size.outerWidth = size.width + marginWidth; 5242 size.outerHeight = size.height + marginHeight; 5243 return size; 5244 } 5245 return getSize; 5246 }); 5247 } 5248 }); 5249 5250
vendor: 4,376 bytes, lines 5250-5369
5250// node_modules/flickity/node_modules/fizzy-ui-utils/utils.js 5251 var require_utils = __commonJS({ 5252 "node_modules/flickity/node_modules/fizzy-ui-utils/utils.js"(exports, module) { 5253 (function(global, factory) { 5254 if (typeof module == "object" && module.exports) { 5255 module.exports = factory(global); 5256 } else { 5257 global.fizzyUIUtils = factory(global); 5258 } 5259 })(exports, function factory(global) { 5260 let utils = {}; 5261 utils.extend = function(a8, b3) { 5262 return Object.assign(a8, b3); 5263 }; 5264 utils.modulo = function(num, div) { 5265 return (num % div + div) % div; 5266 }; 5267 utils.makeArray = function(obj) { 5268 if (Array.isArray(obj)) return obj; 5269 if (obj === null || obj === void 0) return []; 5270 let isArrayLike = typeof obj == "object" && typeof obj.length == "number"; 5271 if (isArrayLike) return [...obj]; 5272 return [obj]; 5273 }; 5274 utils.removeFrom = function(ary, obj) { 5275 let index = ary.indexOf(obj); 5276 if (index != -1) { 5277 ary.splice(index, 1); 5278 } 5279 }; 5280 utils.getParent = function(elem, selector3) { 5281 while (elem.parentNode && elem != document.body) { 5282 elem = elem.parentNode; 5283 if (elem.matches(selector3)) return elem; 5284 } 5285 }; 5286 utils.getQueryElement = function(elem) { 5287 if (typeof elem == "string") { 5288 return document.querySelector(elem); 5289 } 5290 return elem; 5291 }; 5292 utils.handleEvent = function(event) { 5293 let method = "on" + event.type; 5294 if (this[method]) { 5295 this[method](event); 5296 } 5297 }; 5298 utils.filterFindElements = function(elems, selector3) { 5299 elems = utils.makeArray(elems); 5300 return elems.filter((elem) => elem instanceof HTMLElement).reduce((ffElems, elem) => { 5301 if (!selector3) { 5302 ffElems.push(elem); 5303 return ffElems; 5304 } 5305 if (elem.matches(selector3)) { 5306 ffElems.push(elem); 5307 } 5308 let childElems = elem.querySelectorAll(selector3); 5309 ffElems = ffElems.concat(...childElems); 5310 return ffElems; 5311 }, []); 5312 }; 5313 utils.debounceMethod = function(_class, methodName, threshold) { 5314 threshold = threshold || 100; 5315 let method = _class.prototype[methodName]; 5316 let timeoutName = methodName + "Timeout"; 5317 _class.prototype[methodName] = function() { 5318 clearTimeout(this[timeoutName]); 5319 let args = arguments; 5320 this[timeoutName] = setTimeout(() => { 5321 method.apply(this, args); 5322 delete this[timeoutName]; 5323 }, threshold); 5324 }; 5325 }; 5326 utils.docReady = function(onDocReady) { 5327 let readyState = document.readyState; 5328 if (readyState == "complete" || readyState == "interactive") { 5329 setTimeout(onDocReady); 5330 } else { 5331 document.addEventListener("DOMContentLoaded", onDocReady); 5332 } 5333 }; 5334 utils.toDashed = function(str) { 5335 return str.replace(/(.)([A-Z])/g, function(match, $1, $22) { 5336 return $1 + "-" + $22; 5337 }).toLowerCase(); 5338 }; 5339 let console2 = global.console; 5340 utils.htmlInit = function(WidgetClass, namespace) { 5341 utils.docReady(function() { 5342 let dashedNamespace = utils.toDashed(namespace); 5343 let dataAttr = "data-" + dashedNamespace; 5344 let dataAttrElems = document.querySelectorAll(`[${dataAttr}]`); 5345 let jQuery2 = global.jQuery; 5346 [...dataAttrElems].forEach((elem) => { 5347 let attr = elem.getAttribute(dataAttr); 5348 let options; 5349 try { 5350 options = attr && JSON.parse(attr); 5351 } catch (error) { 5352 if (console2) { 5353 console2.error(`Error parsing ${dataAttr} on ${elem.className}: ${error}`); 5354 } 5355 return; 5356 } 5357 let instance = new WidgetClass(elem, options); 5358 if (jQuery2) { 5359 jQuery2.data(elem, namespace, instance); 5360 } 5361 }); 5362 }); 5363 }; 5364 return utils; 5365 }); 5366 } 5367 }); 5368 5369
vendor: 1,531 bytes, lines 5369-5413
5369// node_modules/flickity/js/cell.js 5370 var require_cell = __commonJS({ 5371 "node_modules/flickity/js/cell.js"(exports, module) { 5372 (function(window2, factory) { 5373 if (typeof module == "object" && module.exports) { 5374 module.exports = factory(require_get_size()); 5375 } else { 5376 window2.Flickity = window2.Flickity || {}; 5377 window2.Flickity.Cell = factory(window2.getSize); 5378 } 5379 })(typeof window != "undefined" ? window : exports, function factory(getSize) { 5380 const cellClassName = "flickity-cell"; 5381 function Cell(elem) { 5382 this.element = elem; 5383 this.element.classList.add(cellClassName); 5384 this.x = 0; 5385 this.unselect(); 5386 } 5387 let proto = Cell.prototype; 5388 proto.destroy = function() { 5389 this.unselect(); 5390 this.element.classList.remove(cellClassName); 5391 this.element.style.transform = ""; 5392 this.element.removeAttribute("aria-hidden"); 5393 }; 5394 proto.getSize = function() { 5395 this.size = getSize(this.element); 5396 }; 5397 proto.select = function() { 5398 this.element.classList.add("is-selected"); 5399 this.element.removeAttribute("aria-hidden"); 5400 }; 5401 proto.unselect = function() { 5402 this.element.classList.remove("is-selected"); 5403 this.element.setAttribute("aria-hidden", "true"); 5404 }; 5405 proto.remove = function() { 5406 this.element.remove(); 5407 }; 5408 return Cell; 5409 }); 5410 } 5411 }); 5412 5413
vendor: 1,929 bytes, lines 5413-5465
5413// node_modules/flickity/js/slide.js 5414 var require_slide = __commonJS({ 5415 "node_modules/flickity/js/slide.js"(exports, module) { 5416 (function(window2, factory) { 5417 if (typeof module == "object" && module.exports) { 5418 module.exports = factory(); 5419 } else { 5420 window2.Flickity = window2.Flickity || {}; 5421 window2.Flickity.Slide = factory(); 5422 } 5423 })(typeof window != "undefined" ? window : exports, function factory() { 5424 function Slide(beginMargin, endMargin, cellAlign) { 5425 this.beginMargin = beginMargin; 5426 this.endMargin = endMargin; 5427 this.cellAlign = cellAlign; 5428 this.cells = []; 5429 this.outerWidth = 0; 5430 this.height = 0; 5431 } 5432 let proto = Slide.prototype; 5433 proto.addCell = function(cell) { 5434 this.cells.push(cell); 5435 this.outerWidth += cell.size.outerWidth; 5436 this.height = Math.max(cell.size.outerHeight, this.height); 5437 if (this.cells.length === 1) { 5438 this.x = cell.x; 5439 this.firstMargin = cell.size[this.beginMargin]; 5440 } 5441 }; 5442 proto.updateTarget = function() { 5443 let lastCell = this.getLastCell(); 5444 let lastMargin = lastCell ? lastCell.size[this.endMargin] : 0; 5445 let slideWidth = this.outerWidth - (this.firstMargin + lastMargin); 5446 this.target = this.x + this.firstMargin + slideWidth * this.cellAlign; 5447 }; 5448 proto.getLastCell = function() { 5449 return this.cells[this.cells.length - 1]; 5450 }; 5451 proto.select = function() { 5452 this.cells.forEach((cell) => cell.select()); 5453 }; 5454 proto.unselect = function() { 5455 this.cells.forEach((cell) => cell.unselect()); 5456 }; 5457 proto.getCellElements = function() { 5458 return this.cells.map((cell) => cell.element); 5459 }; 5460 return Slide; 5461 }); 5462 } 5463 }); 5464 5465
vendor: 5,089 bytes, lines 5465-5588
5465// node_modules/flickity/js/animate.js 5466 var require_animate = __commonJS({ 5467 "node_modules/flickity/js/animate.js"(exports, module) { 5468 (function(window2, factory) { 5469 if (typeof module == "object" && module.exports) { 5470 module.exports = factory(require_utils()); 5471 } else { 5472 window2.Flickity = window2.Flickity || {}; 5473 window2.Flickity.animatePrototype = factory(window2.fizzyUIUtils); 5474 } 5475 })(typeof window != "undefined" ? window : exports, function factory(utils) { 5476 let proto = {}; 5477 proto.startAnimation = function() { 5478 if (this.isAnimating) return; 5479 this.isAnimating = true; 5480 this.restingFrames = 0; 5481 this.animate(); 5482 }; 5483 proto.animate = function() { 5484 this.applyDragForce(); 5485 this.applySelectedAttraction(); 5486 let previousX = this.x; 5487 this.integratePhysics(); 5488 this.positionSlider(); 5489 this.settle(previousX); 5490 if (this.isAnimating) requestAnimationFrame(() => this.animate()); 5491 }; 5492 proto.positionSlider = function() { 5493 let x2 = this.x; 5494 if (this.isWrapping) { 5495 x2 = utils.modulo(x2, this.slideableWidth) - this.slideableWidth; 5496 this.shiftWrapCells(x2); 5497 } 5498 this.setTranslateX(x2, this.isAnimating); 5499 this.dispatchScrollEvent(); 5500 }; 5501 proto.setTranslateX = function(x2, is3d) { 5502 x2 += this.cursorPosition; 5503 if (this.options.rightToLeft) x2 = -x2; 5504 let translateX = this.getPositionValue(x2); 5505 this.slider.style.transform = is3d ? `translate3d(${translateX},0,0)` : `translateX(${translateX})`; 5506 }; 5507 proto.dispatchScrollEvent = function() { 5508 let firstSlide = this.slides[0]; 5509 if (!firstSlide) return; 5510 let positionX = -this.x - firstSlide.target; 5511 let progress = positionX / this.slidesWidth; 5512 this.dispatchEvent("scroll", null, [progress, positionX]); 5513 }; 5514 proto.positionSliderAtSelected = function() { 5515 if (!this.cells.length) return; 5516 this.x = -this.selectedSlide.target; 5517 this.velocity = 0; 5518 this.positionSlider(); 5519 }; 5520 proto.getPositionValue = function(position) { 5521 if (this.options.percentPosition) { 5522 return Math.round(position / this.size.innerWidth * 1e4) * 0.01 + "%"; 5523 } else { 5524 return Math.round(position) + "px"; 5525 } 5526 }; 5527 proto.settle = function(previousX) { 5528 let isResting = !this.isPointerDown && Math.round(this.x * 100) === Math.round(previousX * 100); 5529 if (isResting) this.restingFrames++; 5530 if (this.restingFrames > 2) { 5531 this.isAnimating = false; 5532 delete this.isFreeScrolling; 5533 this.positionSlider(); 5534 this.dispatchEvent("settle", null, [this.selectedIndex]); 5535 } 5536 }; 5537 proto.shiftWrapCells = function(x2) { 5538 let beforeGap = this.cursorPosition + x2; 5539 this._shiftCells(this.beforeShiftCells, beforeGap, -1); 5540 let afterGap = this.size.innerWidth - (x2 + this.slideableWidth + this.cursorPosition); 5541 this._shiftCells(this.afterShiftCells, afterGap, 1); 5542 }; 5543 proto._shiftCells = function(cells, gap, shift) { 5544 cells.forEach((cell) => { 5545 let cellShift = gap > 0 ? shift : 0; 5546 this._wrapShiftCell(cell, cellShift); 5547 gap -= cell.size.outerWidth; 5548 }); 5549 }; 5550 proto._unshiftCells = function(cells) { 5551 if (!cells || !cells.length) return; 5552 cells.forEach((cell) => this._wrapShiftCell(cell, 0)); 5553 }; 5554 proto._wrapShiftCell = function(cell, shift) { 5555 this._renderCellPosition(cell, cell.x + this.slideableWidth * shift); 5556 }; 5557 proto.integratePhysics = function() { 5558 this.x += this.velocity; 5559 this.velocity *= this.getFrictionFactor(); 5560 }; 5561 proto.applyForce = function(force) { 5562 this.velocity += force; 5563 }; 5564 proto.getFrictionFactor = function() { 5565 return 1 - this.options[this.isFreeScrolling ? "freeScrollFriction" : "friction"]; 5566 }; 5567 proto.getRestingPosition = function() { 5568 return this.x + this.velocity / (1 - this.getFrictionFactor()); 5569 }; 5570 proto.applyDragForce = function() { 5571 if (!this.isDraggable || !this.isPointerDown) return; 5572 let dragVelocity = this.dragX - this.x; 5573 let dragForce = dragVelocity - this.velocity; 5574 this.applyForce(dragForce); 5575 }; 5576 proto.applySelectedAttraction = function() { 5577 let dragDown = this.isDraggable && this.isPointerDown; 5578 if (dragDown || this.isFreeScrolling || !this.slides.length) return; 5579 let distance = this.selectedSlide.target * -1 - this.x; 5580 let force = distance * this.options.selectedAttraction; 5581 this.applyForce(force); 5582 }; 5583 return proto; 5584 }); 5585 } 5586 }); 5587 5588
vendor: 23,883 bytes, lines 5588-6166
5588// node_modules/flickity/js/core.js 5589 var require_core = __commonJS({ 5590 "node_modules/flickity/js/core.js"(exports, module) { 5591 (function(window2, factory) { 5592 if (typeof module == "object" && module.exports) { 5593 module.exports = factory( 5594 window2, 5595 require_ev_emitter(), 5596 require_get_size(), 5597 require_utils(), 5598 require_cell(), 5599 require_slide(), 5600 require_animate() 5601 ); 5602 } else { 5603 let _Flickity = window2.Flickity; 5604 window2.Flickity = factory( 5605 window2, 5606 window2.EvEmitter, 5607 window2.getSize, 5608 window2.fizzyUIUtils, 5609 _Flickity.Cell, 5610 _Flickity.Slide, 5611 _Flickity.animatePrototype 5612 ); 5613 } 5614 })( 5615 typeof window != "undefined" ? window : exports, 5616 function factory(window2, EvEmitter, getSize, utils, Cell, Slide, animatePrototype) { 5617 const { getComputedStyle: getComputedStyle2, console: console2 } = window2; 5618 let { jQuery: jQuery2 } = window2; 5619 let GUID = 0; 5620 let instances = {}; 5621 function Flickity2(element, options) { 5622 let queryElement = utils.getQueryElement(element); 5623 if (!queryElement) { 5624 if (console2) console2.error(`Bad element for Flickity: ${queryElement || element}`); 5625 return; 5626 } 5627 this.element = queryElement; 5628 if (this.element.flickityGUID) { 5629 let instance = instances[this.element.flickityGUID]; 5630 if (instance) instance.option(options); 5631 return instance; 5632 } 5633 if (jQuery2) { 5634 this.$element = jQuery2(this.element); 5635 } 5636 this.options = { ...this.constructor.defaults }; 5637 this.option(options); 5638 this._create(); 5639 } 5640 Flickity2.defaults = { 5641 accessibility: true, 5642 // adaptiveHeight: false, 5643 cellAlign: "center", 5644 // cellSelector: undefined, 5645 // contain: false, 5646 freeScrollFriction: 0.075, 5647 // friction when free-scrolling 5648 friction: 0.28, 5649 // friction when selecting 5650 namespaceJQueryEvents: true, 5651 // initialIndex: 0, 5652 percentPosition: true, 5653 resize: true, 5654 selectedAttraction: 0.025, 5655 setGallerySize: true 5656 // watchCSS: false, 5657 // wrapAround: false 5658 }; 5659 Flickity2.create = {}; 5660 let proto = Flickity2.prototype; 5661 Object.assign(proto, EvEmitter.prototype); 5662 proto._create = function() { 5663 let { resize, watchCSS, rightToLeft } = this.options; 5664 let id = this.guid = ++GUID; 5665 this.element.flickityGUID = id; 5666 instances[id] = this; 5667 this.selectedIndex = 0; 5668 this.restingFrames = 0; 5669 this.x = 0; 5670 this.velocity = 0; 5671 this.beginMargin = rightToLeft ? "marginRight" : "marginLeft"; 5672 this.endMargin = rightToLeft ? "marginLeft" : "marginRight"; 5673 this.viewport = document.createElement("div"); 5674 this.viewport.className = "flickity-viewport"; 5675 this._createSlider(); 5676 this.focusableElems = [this.element]; 5677 if (resize || watchCSS) { 5678 window2.addEventListener("resize", this); 5679 } 5680 for (let eventName in this.options.on) { 5681 let listener = this.options.on[eventName]; 5682 this.on(eventName, listener); 5683 } 5684 for (let method in Flickity2.create) { 5685 Flickity2.create[method].call(this); 5686 } 5687 if (watchCSS) { 5688 this.watchCSS(); 5689 } else { 5690 this.activate(); 5691 } 5692 }; 5693 proto.option = function(opts) { 5694 Object.assign(this.options, opts); 5695 }; 5696 proto.activate = function() { 5697 if (this.isActive) return; 5698 this.isActive = true; 5699 this.element.classList.add("flickity-enabled"); 5700 if (this.options.rightToLeft) { 5701 this.element.classList.add("flickity-rtl"); 5702 } 5703 this.getSize(); 5704 let cellElems = this._filterFindCellElements(this.element.children); 5705 this.slider.append(...cellElems); 5706 this.viewport.append(this.slider); 5707 this.element.append(this.viewport); 5708 this.reloadCells(); 5709 if (this.options.accessibility) { 5710 this.element.tabIndex = 0; 5711 this.element.addEventListener("keydown", this); 5712 } 5713 this.emitEvent("activate"); 5714 this.selectInitialIndex(); 5715 this.isInitActivated = true; 5716 this.dispatchEvent("ready"); 5717 }; 5718 proto._createSlider = function() { 5719 let slider = document.createElement("div"); 5720 slider.className = "flickity-slider"; 5721 this.slider = slider; 5722 }; 5723 proto._filterFindCellElements = function(elems) { 5724 return utils.filterFindElements(elems, this.options.cellSelector); 5725 }; 5726 proto.reloadCells = function() { 5727 this.cells = this._makeCells(this.slider.children); 5728 this.positionCells(); 5729 this._updateWrapShiftCells(); 5730 this.setGallerySize(); 5731 }; 5732 proto._makeCells = function(elems) { 5733 let cellElems = this._filterFindCellElements(elems); 5734 return cellElems.map((cellElem) => new Cell(cellElem)); 5735 }; 5736 proto.getLastCell = function() { 5737 return this.cells[this.cells.length - 1]; 5738 }; 5739 proto.getLastSlide = function() { 5740 return this.slides[this.slides.length - 1]; 5741 }; 5742 proto.positionCells = function() { 5743 this._sizeCells(this.cells); 5744 this._positionCells(0); 5745 }; 5746 proto._positionCells = function(index) { 5747 index = index || 0; 5748 this.maxCellHeight = index ? this.maxCellHeight || 0 : 0; 5749 let cellX = 0; 5750 if (index > 0) { 5751 let startCell = this.cells[index - 1]; 5752 cellX = startCell.x + startCell.size.outerWidth; 5753 } 5754 this.cells.slice(index).forEach((cell) => { 5755 cell.x = cellX; 5756 this._renderCellPosition(cell, cellX); 5757 cellX += cell.size.outerWidth; 5758 this.maxCellHeight = Math.max(cell.size.outerHeight, this.maxCellHeight); 5759 }); 5760 this.slideableWidth = cellX; 5761 this.updateSlides(); 5762 this._containSlides(); 5763 this.slidesWidth = this.cells.length ? this.getLastSlide().target - this.slides[0].target : 0; 5764 }; 5765 proto._renderCellPosition = function(cell, x2) { 5766 let sideOffset = this.options.rightToLeft ? -1 : 1; 5767 let renderX = x2 * sideOffset; 5768 if (this.options.percentPosition) renderX *= this.size.innerWidth / cell.size.width; 5769 let positionValue = this.getPositionValue(renderX); 5770 cell.element.style.transform = `translateX( ${positionValue} )`; 5771 }; 5772 proto._sizeCells = function(cells) { 5773 cells.forEach((cell) => cell.getSize()); 5774 }; 5775 proto.updateSlides = function() { 5776 this.slides = []; 5777 if (!this.cells.length) return; 5778 let { beginMargin, endMargin } = this; 5779 let slide = new Slide(beginMargin, endMargin, this.cellAlign); 5780 this.slides.push(slide); 5781 let canCellFit = this._getCanCellFit(); 5782 this.cells.forEach((cell, i10) => { 5783 if (!slide.cells.length) { 5784 slide.addCell(cell); 5785 return; 5786 } 5787 let slideWidth = slide.outerWidth - slide.firstMargin + (cell.size.outerWidth - cell.size[endMargin]); 5788 if (canCellFit(i10, slideWidth)) { 5789 slide.addCell(cell); 5790 } else { 5791 slide.updateTarget(); 5792 slide = new Slide(beginMargin, endMargin, this.cellAlign); 5793 this.slides.push(slide); 5794 slide.addCell(cell); 5795 } 5796 }); 5797 slide.updateTarget(); 5798 this.updateSelectedSlide(); 5799 }; 5800 proto._getCanCellFit = function() { 5801 let { groupCells } = this.options; 5802 if (!groupCells) return () => false; 5803 if (typeof groupCells == "number") { 5804 let number = parseInt(groupCells, 10); 5805 return (i10) => i10 % number !== 0; 5806 } 5807 let percent = 1; 5808 let percentMatch = typeof groupCells == "string" && groupCells.match(/^(\d+)%$/); 5809 if (percentMatch) percent = parseInt(percentMatch[1], 10) / 100; 5810 let groupWidth = (this.size.innerWidth + 1) * percent; 5811 return (i10, slideWidth) => slideWidth <= groupWidth; 5812 }; 5813 proto._init = proto.reposition = function() { 5814 this.positionCells(); 5815 this.positionSliderAtSelected(); 5816 }; 5817 proto.getSize = function() { 5818 this.size = getSize(this.element); 5819 this.setCellAlign(); 5820 this.cursorPosition = this.size.innerWidth * this.cellAlign; 5821 }; 5822 let cellAlignShorthands = { 5823 left: 0, 5824 center: 0.5, 5825 right: 1 5826 }; 5827 proto.setCellAlign = function() { 5828 let { cellAlign, rightToLeft } = this.options; 5829 let shorthand = cellAlignShorthands[cellAlign]; 5830 this.cellAlign = shorthand !== void 0 ? shorthand : cellAlign; 5831 if (rightToLeft) this.cellAlign = 1 - this.cellAlign; 5832 }; 5833 proto.setGallerySize = function() { 5834 if (!this.options.setGallerySize) return; 5835 let height = this.options.adaptiveHeight && this.selectedSlide ? this.selectedSlide.height : this.maxCellHeight; 5836 this.viewport.style.height = `${height}px`; 5837 }; 5838 proto._updateWrapShiftCells = function() { 5839 this.isWrapping = this.getIsWrapping(); 5840 if (!this.isWrapping) return; 5841 this._unshiftCells(this.beforeShiftCells); 5842 this._unshiftCells(this.afterShiftCells); 5843 let beforeGapX = this.cursorPosition; 5844 let lastIndex = this.cells.length - 1; 5845 this.beforeShiftCells = this._getGapCells(beforeGapX, lastIndex, -1); 5846 let afterGapX = this.size.innerWidth - this.cursorPosition; 5847 this.afterShiftCells = this._getGapCells(afterGapX, 0, 1); 5848 }; 5849 proto.getIsWrapping = function() { 5850 let { wrapAround } = this.options; 5851 if (!wrapAround || this.slides.length < 2) return false; 5852 if (wrapAround !== "fill") return true; 5853 let gapWidth = this.slideableWidth - this.size.innerWidth; 5854 if (gapWidth > this.size.innerWidth) return true; 5855 for (let cell of this.cells) { 5856 if (cell.size.outerWidth > gapWidth) return false; 5857 } 5858 return true; 5859 }; 5860 proto._getGapCells = function(gapX, cellIndex, increment) { 5861 let cells = []; 5862 while (gapX > 0) { 5863 let cell = this.cells[cellIndex]; 5864 if (!cell) break; 5865 cells.push(cell); 5866 cellIndex += increment; 5867 gapX -= cell.size.outerWidth; 5868 } 5869 return cells; 5870 }; 5871 proto._containSlides = function() { 5872 let isContaining = this.options.contain && !this.isWrapping && this.cells.length; 5873 if (!isContaining) return; 5874 let contentWidth = this.slideableWidth - this.getLastCell().size[this.endMargin]; 5875 let isContentSmaller = contentWidth < this.size.innerWidth; 5876 if (isContentSmaller) { 5877 this.slides.forEach((slide) => { 5878 slide.target = contentWidth * this.cellAlign; 5879 }); 5880 } else { 5881 let beginBound = this.cursorPosition + this.cells[0].size[this.beginMargin]; 5882 let endBound = contentWidth - this.size.innerWidth * (1 - this.cellAlign); 5883 this.slides.forEach((slide) => { 5884 slide.target = Math.max(slide.target, beginBound); 5885 slide.target = Math.min(slide.target, endBound); 5886 }); 5887 } 5888 }; 5889 proto.dispatchEvent = function(type, event, args) { 5890 let emitArgs = event ? [event].concat(args) : args; 5891 this.emitEvent(type, emitArgs); 5892 if (jQuery2 && this.$element) { 5893 type += this.options.namespaceJQueryEvents ? ".flickity" : ""; 5894 let $event = type; 5895 if (event) { 5896 let jQEvent = new jQuery2.Event(event); 5897 jQEvent.type = type; 5898 $event = jQEvent; 5899 } 5900 this.$element.trigger($event, args); 5901 } 5902 }; 5903 const unidraggerEvents = [ 5904 "dragStart", 5905 "dragMove", 5906 "dragEnd", 5907 "pointerDown", 5908 "pointerMove", 5909 "pointerEnd", 5910 "staticClick" 5911 ]; 5912 let _emitEvent = proto.emitEvent; 5913 proto.emitEvent = function(eventName, args) { 5914 if (eventName === "staticClick") { 5915 let clickedCell = this.getParentCell(args[0].target); 5916 let cellElem = clickedCell && clickedCell.element; 5917 let cellIndex = clickedCell && this.cells.indexOf(clickedCell); 5918 args = args.concat(cellElem, cellIndex); 5919 } 5920 _emitEvent.call(this, eventName, args); 5921 let isUnidraggerEvent = unidraggerEvents.includes(eventName); 5922 if (!isUnidraggerEvent || !jQuery2 || !this.$element) return; 5923 eventName += this.options.namespaceJQueryEvents ? ".flickity" : ""; 5924 let event = args.shift(0); 5925 let jQEvent = new jQuery2.Event(event); 5926 jQEvent.type = eventName; 5927 this.$element.trigger(jQEvent, args); 5928 }; 5929 proto.select = function(index, isWrap, isInstant) { 5930 if (!this.isActive) return; 5931 index = parseInt(index, 10); 5932 this._wrapSelect(index); 5933 if (this.isWrapping || isWrap) { 5934 index = utils.modulo(index, this.slides.length); 5935 } 5936 if (!this.slides[index]) return; 5937 let prevIndex = this.selectedIndex; 5938 this.selectedIndex = index; 5939 this.updateSelectedSlide(); 5940 if (isInstant) { 5941 this.positionSliderAtSelected(); 5942 } else { 5943 this.startAnimation(); 5944 } 5945 if (this.options.adaptiveHeight) { 5946 this.setGallerySize(); 5947 } 5948 this.dispatchEvent("select", null, [index]); 5949 if (index !== prevIndex) { 5950 this.dispatchEvent("change", null, [index]); 5951 } 5952 }; 5953 proto._wrapSelect = function(index) { 5954 if (!this.isWrapping) return; 5955 const { selectedIndex, slideableWidth, slides: { length } } = this; 5956 if (!this.isDragSelect) { 5957 let wrapIndex = utils.modulo(index, length); 5958 let delta = Math.abs(wrapIndex - selectedIndex); 5959 let backWrapDelta = Math.abs(wrapIndex + length - selectedIndex); 5960 let forewardWrapDelta = Math.abs(wrapIndex - length - selectedIndex); 5961 if (backWrapDelta < delta) { 5962 index += length; 5963 } else if (forewardWrapDelta < delta) { 5964 index -= length; 5965 } 5966 } 5967 if (index < 0) { 5968 this.x -= slideableWidth; 5969 } else if (index >= length) { 5970 this.x += slideableWidth; 5971 } 5972 }; 5973 proto.previous = function(isWrap, isInstant) { 5974 this.select(this.selectedIndex - 1, isWrap, isInstant); 5975 }; 5976 proto.next = function(isWrap, isInstant) { 5977 this.select(this.selectedIndex + 1, isWrap, isInstant); 5978 }; 5979 proto.updateSelectedSlide = function() { 5980 let slide = this.slides[this.selectedIndex]; 5981 if (!slide) return; 5982 this.unselectSelectedSlide(); 5983 this.selectedSlide = slide; 5984 slide.select(); 5985 this.selectedCells = slide.cells; 5986 this.selectedElements = slide.getCellElements(); 5987 this.selectedCell = slide.cells[0]; 5988 this.selectedElement = this.selectedElements[0]; 5989 }; 5990 proto.unselectSelectedSlide = function() { 5991 if (this.selectedSlide) this.selectedSlide.unselect(); 5992 }; 5993 proto.selectInitialIndex = function() { 5994 let initialIndex = this.options.initialIndex; 5995 if (this.isInitActivated) { 5996 this.select(this.selectedIndex, false, true); 5997 return; 5998 } 5999 if (initialIndex && typeof initialIndex == "string") { 6000 let cell = this.queryCell(initialIndex); 6001 if (cell) { 6002 this.selectCell(initialIndex, false, true); 6003 return; 6004 } 6005 } 6006 let index = 0; 6007 if (initialIndex && this.slides[initialIndex]) { 6008 index = initialIndex; 6009 } 6010 this.select(index, false, true); 6011 }; 6012 proto.selectCell = function(value, isWrap, isInstant) { 6013 let cell = this.queryCell(value); 6014 if (!cell) return; 6015 let index = this.getCellSlideIndex(cell); 6016 this.select(index, isWrap, isInstant); 6017 }; 6018 proto.getCellSlideIndex = function(cell) { 6019 let cellSlide = this.slides.find((slide) => slide.cells.includes(cell)); 6020 return this.slides.indexOf(cellSlide); 6021 }; 6022 proto.getCell = function(elem) { 6023 for (let cell of this.cells) { 6024 if (cell.element === elem) return cell; 6025 } 6026 }; 6027 proto.getCells = function(elems) { 6028 elems = utils.makeArray(elems); 6029 return elems.map((elem) => this.getCell(elem)).filter(Boolean); 6030 }; 6031 proto.getCellElements = function() { 6032 return this.cells.map((cell) => cell.element); 6033 }; 6034 proto.getParentCell = function(elem) { 6035 let cell = this.getCell(elem); 6036 if (cell) return cell; 6037 let closest = elem.closest(".flickity-slider > *"); 6038 return this.getCell(closest); 6039 }; 6040 proto.getAdjacentCellElements = function(adjCount, index) { 6041 if (!adjCount) return this.selectedSlide.getCellElements(); 6042 index = index === void 0 ? this.selectedIndex : index; 6043 let len = this.slides.length; 6044 if (1 + adjCount * 2 >= len) { 6045 return this.getCellElements(); 6046 } 6047 let cellElems = []; 6048 for (let i10 = index - adjCount; i10 <= index + adjCount; i10++) { 6049 let slideIndex = this.isWrapping ? utils.modulo(i10, len) : i10; 6050 let slide = this.slides[slideIndex]; 6051 if (slide) { 6052 cellElems = cellElems.concat(slide.getCellElements()); 6053 } 6054 } 6055 return cellElems; 6056 }; 6057 proto.queryCell = function(selector3) { 6058 if (typeof selector3 == "number") { 6059 return this.cells[selector3]; 6060 } 6061 let isSelectorString = typeof selector3 == "string" && !selector3.match(/^[#.]?[\d/]/); 6062 if (isSelectorString) { 6063 selector3 = this.element.querySelector(selector3); 6064 } 6065 return this.getCell(selector3); 6066 }; 6067 proto.uiChange = function() { 6068 this.emitEvent("uiChange"); 6069 }; 6070 proto.onresize = function() { 6071 this.watchCSS(); 6072 this.resize(); 6073 }; 6074 utils.debounceMethod(Flickity2, "onresize", 150); 6075 proto.resize = function() { 6076 if (!this.isActive || this.isAnimating || this.isDragging) return; 6077 this.getSize(); 6078 if (this.isWrapping) { 6079 this.x = utils.modulo(this.x, this.slideableWidth); 6080 } 6081 this.positionCells(); 6082 this._updateWrapShiftCells(); 6083 this.setGallerySize(); 6084 this.emitEvent("resize"); 6085 let selectedElement = this.selectedElements && this.selectedElements[0]; 6086 this.selectCell(selectedElement, false, true); 6087 }; 6088 proto.watchCSS = function() { 6089 if (!this.options.watchCSS) return; 6090 let afterContent = getComputedStyle2(this.element, ":after").content; 6091 if (afterContent.includes("flickity")) { 6092 this.activate(); 6093 } else { 6094 this.deactivate(); 6095 } 6096 }; 6097 proto.onkeydown = function(event) { 6098 let { activeElement } = document; 6099 let handler = Flickity2.keyboardHandlers[event.key]; 6100 if (!this.options.accessibility || !activeElement || !handler) return; 6101 let isFocused = this.focusableElems.some((elem) => activeElement === elem); 6102 if (isFocused) handler.call(this); 6103 }; 6104 Flickity2.keyboardHandlers = { 6105 ArrowLeft: function() { 6106 this.uiChange(); 6107 let leftMethod = this.options.rightToLeft ? "next" : "previous"; 6108 this[leftMethod](); 6109 }, 6110 ArrowRight: function() { 6111 this.uiChange(); 6112 let rightMethod = this.options.rightToLeft ? "previous" : "next"; 6113 this[rightMethod](); 6114 } 6115 }; 6116 proto.focus = function() { 6117 this.element.focus({ preventScroll: true }); 6118 }; 6119 proto.deactivate = function() { 6120 if (!this.isActive) return; 6121 this.element.classList.remove("flickity-enabled"); 6122 this.element.classList.remove("flickity-rtl"); 6123 this.unselectSelectedSlide(); 6124 this.cells.forEach((cell) => cell.destroy()); 6125 this.viewport.remove(); 6126 this.element.append(...this.slider.children); 6127 if (this.options.accessibility) { 6128 this.element.removeAttribute("tabIndex"); 6129 this.element.removeEventListener("keydown", this); 6130 } 6131 this.isActive = false; 6132 this.emitEvent("deactivate"); 6133 }; 6134 proto.destroy = function() { 6135 this.deactivate(); 6136 window2.removeEventListener("resize", this); 6137 this.allOff(); 6138 this.emitEvent("destroy"); 6139 if (jQuery2 && this.$element) { 6140 jQuery2.removeData(this.element, "flickity"); 6141 } 6142 delete this.element.flickityGUID; 6143 delete instances[this.guid]; 6144 }; 6145 Object.assign(proto, animatePrototype); 6146 Flickity2.data = function(elem) { 6147 elem = utils.getQueryElement(elem); 6148 if (elem) return instances[elem.flickityGUID]; 6149 }; 6150 utils.htmlInit(Flickity2, "flickity"); 6151 let { jQueryBridget: jQueryBridget2 } = window2; 6152 if (jQuery2 && jQueryBridget2) { 6153 jQueryBridget2("flickity", Flickity2, jQuery2); 6154 } 6155 Flickity2.setJQuery = function(jq) { 6156 jQuery2 = jq; 6157 }; 6158 Flickity2.Cell = Cell; 6159 Flickity2.Slide = Slide; 6160 return Flickity2; 6161 } 6162 ); 6163 } 6164 }); 6165 6166
vendor: 7,417 bytes, lines 6166-6357
6166// node_modules/unidragger/unidragger.js 6167 var require_unidragger = __commonJS({ 6168 "node_modules/unidragger/unidragger.js"(exports, module) { 6169 (function(window2, factory) { 6170 if (typeof module == "object" && module.exports) { 6171 module.exports = factory( 6172 window2, 6173 require_ev_emitter() 6174 ); 6175 } else { 6176 window2.Unidragger = factory( 6177 window2, 6178 window2.EvEmitter 6179 ); 6180 } 6181 })(typeof window != "undefined" ? window : exports, function factory(window2, EvEmitter) { 6182 function Unidragger() { 6183 } 6184 let proto = Unidragger.prototype = Object.create(EvEmitter.prototype); 6185 proto.handleEvent = function(event) { 6186 let method = "on" + event.type; 6187 if (this[method]) { 6188 this[method](event); 6189 } 6190 }; 6191 let startEvent, activeEvents; 6192 if ("ontouchstart" in window2) { 6193 startEvent = "touchstart"; 6194 activeEvents = ["touchmove", "touchend", "touchcancel"]; 6195 } else if (window2.PointerEvent) { 6196 startEvent = "pointerdown"; 6197 activeEvents = ["pointermove", "pointerup", "pointercancel"]; 6198 } else { 6199 startEvent = "mousedown"; 6200 activeEvents = ["mousemove", "mouseup"]; 6201 } 6202 proto.touchActionValue = "none"; 6203 proto.bindHandles = function() { 6204 this._bindHandles("addEventListener", this.touchActionValue); 6205 }; 6206 proto.unbindHandles = function() { 6207 this._bindHandles("removeEventListener", ""); 6208 }; 6209 proto._bindHandles = function(bindMethod, touchAction) { 6210 this.handles.forEach((handle) => { 6211 handle[bindMethod](startEvent, this); 6212 handle[bindMethod]("click", this); 6213 if (window2.PointerEvent) handle.style.touchAction = touchAction; 6214 }); 6215 }; 6216 proto.bindActivePointerEvents = function() { 6217 activeEvents.forEach((eventName) => { 6218 window2.addEventListener(eventName, this); 6219 }); 6220 }; 6221 proto.unbindActivePointerEvents = function() { 6222 activeEvents.forEach((eventName) => { 6223 window2.removeEventListener(eventName, this); 6224 }); 6225 }; 6226 proto.withPointer = function(methodName, event) { 6227 if (event.pointerId === this.pointerIdentifier) { 6228 this[methodName](event, event); 6229 } 6230 }; 6231 proto.withTouch = function(methodName, event) { 6232 let touch; 6233 for (let changedTouch of event.changedTouches) { 6234 if (changedTouch.identifier === this.pointerIdentifier) { 6235 touch = changedTouch; 6236 } 6237 } 6238 if (touch) this[methodName](event, touch); 6239 }; 6240 proto.onmousedown = function(event) { 6241 this.pointerDown(event, event); 6242 }; 6243 proto.ontouchstart = function(event) { 6244 this.pointerDown(event, event.changedTouches[0]); 6245 }; 6246 proto.onpointerdown = function(event) { 6247 this.pointerDown(event, event); 6248 }; 6249 const cursorNodes = ["TEXTAREA", "INPUT", "SELECT", "OPTION"]; 6250 const clickTypes = ["radio", "checkbox", "button", "submit", "image", "file"]; 6251 proto.pointerDown = function(event, pointer) { 6252 let isCursorNode = cursorNodes.includes(event.target.nodeName); 6253 let isClickType = clickTypes.includes(event.target.type); 6254 let isOkayElement = !isCursorNode || isClickType; 6255 let isOkay = !this.isPointerDown && !event.button && isOkayElement; 6256 if (!isOkay) return; 6257 this.isPointerDown = true; 6258 this.pointerIdentifier = pointer.pointerId !== void 0 ? ( 6259 // pointerId for pointer events, touch.indentifier for touch events 6260 pointer.pointerId 6261 ) : pointer.identifier; 6262 this.pointerDownPointer = { 6263 pageX: pointer.pageX, 6264 pageY: pointer.pageY 6265 }; 6266 this.bindActivePointerEvents(); 6267 this.emitEvent("pointerDown", [event, pointer]); 6268 }; 6269 proto.onmousemove = function(event) { 6270 this.pointerMove(event, event); 6271 }; 6272 proto.onpointermove = function(event) { 6273 this.withPointer("pointerMove", event); 6274 }; 6275 proto.ontouchmove = function(event) { 6276 this.withTouch("pointerMove", event); 6277 }; 6278 proto.pointerMove = function(event, pointer) { 6279 let moveVector = { 6280 x: pointer.pageX - this.pointerDownPointer.pageX, 6281 y: pointer.pageY - this.pointerDownPointer.pageY 6282 }; 6283 this.emitEvent("pointerMove", [event, pointer, moveVector]); 6284 let isDragStarting = !this.isDragging && this.hasDragStarted(moveVector); 6285 if (isDragStarting) this.dragStart(event, pointer); 6286 if (this.isDragging) this.dragMove(event, pointer, moveVector); 6287 }; 6288 proto.hasDragStarted = function(moveVector) { 6289 return Math.abs(moveVector.x) > 3 || Math.abs(moveVector.y) > 3; 6290 }; 6291 proto.dragStart = function(event, pointer) { 6292 this.isDragging = true; 6293 this.isPreventingClicks = true; 6294 this.emitEvent("dragStart", [event, pointer]); 6295 }; 6296 proto.dragMove = function(event, pointer, moveVector) { 6297 this.emitEvent("dragMove", [event, pointer, moveVector]); 6298 }; 6299 proto.onmouseup = function(event) { 6300 this.pointerUp(event, event); 6301 }; 6302 proto.onpointerup = function(event) { 6303 this.withPointer("pointerUp", event); 6304 }; 6305 proto.ontouchend = function(event) { 6306 this.withTouch("pointerUp", event); 6307 }; 6308 proto.pointerUp = function(event, pointer) { 6309 this.pointerDone(); 6310 this.emitEvent("pointerUp", [event, pointer]); 6311 if (this.isDragging) { 6312 this.dragEnd(event, pointer); 6313 } else { 6314 this.staticClick(event, pointer); 6315 } 6316 }; 6317 proto.dragEnd = function(event, pointer) { 6318 this.isDragging = false; 6319 setTimeout(() => delete this.isPreventingClicks); 6320 this.emitEvent("dragEnd", [event, pointer]); 6321 }; 6322 proto.pointerDone = function() { 6323 this.isPointerDown = false; 6324 delete this.pointerIdentifier; 6325 this.unbindActivePointerEvents(); 6326 this.emitEvent("pointerDone"); 6327 }; 6328 proto.onpointercancel = function(event) { 6329 this.withPointer("pointerCancel", event); 6330 }; 6331 proto.ontouchcancel = function(event) { 6332 this.withTouch("pointerCancel", event); 6333 }; 6334 proto.pointerCancel = function(event, pointer) { 6335 this.pointerDone(); 6336 this.emitEvent("pointerCancel", [event, pointer]); 6337 }; 6338 proto.onclick = function(event) { 6339 if (this.isPreventingClicks) event.preventDefault(); 6340 }; 6341 proto.staticClick = function(event, pointer) { 6342 let isMouseup = event.type === "mouseup"; 6343 if (isMouseup && this.isIgnoringMouseUp) return; 6344 this.emitEvent("staticClick", [event, pointer]); 6345 if (isMouseup) { 6346 this.isIgnoringMouseUp = true; 6347 setTimeout(() => { 6348 delete this.isIgnoringMouseUp; 6349 }, 400); 6350 } 6351 }; 6352 return Unidragger; 6353 }); 6354 } 6355 }); 6356 6357
vendor: 8,684 bytes, lines 6357-6555
6357// node_modules/flickity/js/drag.js 6358 var require_drag = __commonJS({ 6359 "node_modules/flickity/js/drag.js"(exports, module) { 6360 (function(window2, factory) { 6361 if (typeof module == "object" && module.exports) { 6362 module.exports = factory( 6363 window2, 6364 require_core(), 6365 require_unidragger(), 6366 require_utils() 6367 ); 6368 } else { 6369 window2.Flickity = factory( 6370 window2, 6371 window2.Flickity, 6372 window2.Unidragger, 6373 window2.fizzyUIUtils 6374 ); 6375 } 6376 })( 6377 typeof window != "undefined" ? window : exports, 6378 function factory(window2, Flickity2, Unidragger, utils) { 6379 Object.assign(Flickity2.defaults, { 6380 draggable: ">1", 6381 dragThreshold: 3 6382 }); 6383 let proto = Flickity2.prototype; 6384 Object.assign(proto, Unidragger.prototype); 6385 proto.touchActionValue = ""; 6386 Flickity2.create.drag = function() { 6387 this.on("activate", this.onActivateDrag); 6388 this.on("uiChange", this._uiChangeDrag); 6389 this.on("deactivate", this.onDeactivateDrag); 6390 this.on("cellChange", this.updateDraggable); 6391 this.on("pointerDown", this.handlePointerDown); 6392 this.on("pointerUp", this.handlePointerUp); 6393 this.on("pointerDown", this.handlePointerDone); 6394 this.on("dragStart", this.handleDragStart); 6395 this.on("dragMove", this.handleDragMove); 6396 this.on("dragEnd", this.handleDragEnd); 6397 this.on("staticClick", this.handleStaticClick); 6398 }; 6399 proto.onActivateDrag = function() { 6400 this.handles = [this.viewport]; 6401 this.bindHandles(); 6402 this.updateDraggable(); 6403 }; 6404 proto.onDeactivateDrag = function() { 6405 this.unbindHandles(); 6406 this.element.classList.remove("is-draggable"); 6407 }; 6408 proto.updateDraggable = function() { 6409 if (this.options.draggable === ">1") { 6410 this.isDraggable = this.slides.length > 1; 6411 } else { 6412 this.isDraggable = this.options.draggable; 6413 } 6414 this.element.classList.toggle("is-draggable", this.isDraggable); 6415 }; 6416 proto._uiChangeDrag = function() { 6417 delete this.isFreeScrolling; 6418 }; 6419 proto.handlePointerDown = function(event) { 6420 if (!this.isDraggable) { 6421 this.bindActivePointerEvents(event); 6422 return; 6423 } 6424 let isTouchStart = event.type === "touchstart"; 6425 let isTouchPointer = event.pointerType === "touch"; 6426 let isFocusNode = event.target.matches("input, textarea, select"); 6427 if (!isTouchStart && !isTouchPointer && !isFocusNode) event.preventDefault(); 6428 if (!isFocusNode) this.focus(); 6429 if (document.activeElement !== this.element) document.activeElement.blur(); 6430 this.dragX = this.x; 6431 this.viewport.classList.add("is-pointer-down"); 6432 this.pointerDownScroll = getScrollPosition(); 6433 window2.addEventListener("scroll", this); 6434 this.bindActivePointerEvents(event); 6435 }; 6436 proto.hasDragStarted = function(moveVector) { 6437 return Math.abs(moveVector.x) > this.options.dragThreshold; 6438 }; 6439 proto.handlePointerUp = function() { 6440 delete this.isTouchScrolling; 6441 this.viewport.classList.remove("is-pointer-down"); 6442 }; 6443 proto.handlePointerDone = function() { 6444 window2.removeEventListener("scroll", this); 6445 delete this.pointerDownScroll; 6446 }; 6447 proto.handleDragStart = function() { 6448 if (!this.isDraggable) return; 6449 this.dragStartPosition = this.x; 6450 this.startAnimation(); 6451 window2.removeEventListener("scroll", this); 6452 }; 6453 proto.handleDragMove = function(event, pointer, moveVector) { 6454 if (!this.isDraggable) return; 6455 event.preventDefault(); 6456 this.previousDragX = this.dragX; 6457 let direction = this.options.rightToLeft ? -1 : 1; 6458 if (this.isWrapping) moveVector.x %= this.slideableWidth; 6459 let dragX = this.dragStartPosition + moveVector.x * direction; 6460 if (!this.isWrapping) { 6461 let originBound = Math.max(-this.slides[0].target, this.dragStartPosition); 6462 dragX = dragX > originBound ? (dragX + originBound) * 0.5 : dragX; 6463 let endBound = Math.min(-this.getLastSlide().target, this.dragStartPosition); 6464 dragX = dragX < endBound ? (dragX + endBound) * 0.5 : dragX; 6465 } 6466 this.dragX = dragX; 6467 this.dragMoveTime = /* @__PURE__ */ new Date(); 6468 }; 6469 proto.handleDragEnd = function() { 6470 if (!this.isDraggable) return; 6471 let { freeScroll } = this.options; 6472 if (freeScroll) this.isFreeScrolling = true; 6473 let index = this.dragEndRestingSelect(); 6474 if (freeScroll && !this.isWrapping) { 6475 let restingX = this.getRestingPosition(); 6476 this.isFreeScrolling = -restingX > this.slides[0].target && -restingX < this.getLastSlide().target; 6477 } else if (!freeScroll && index === this.selectedIndex) { 6478 index += this.dragEndBoostSelect(); 6479 } 6480 delete this.previousDragX; 6481 this.isDragSelect = this.isWrapping; 6482 this.select(index); 6483 delete this.isDragSelect; 6484 }; 6485 proto.dragEndRestingSelect = function() { 6486 let restingX = this.getRestingPosition(); 6487 let distance = Math.abs(this.getSlideDistance(-restingX, this.selectedIndex)); 6488 let positiveResting = this._getClosestResting(restingX, distance, 1); 6489 let negativeResting = this._getClosestResting(restingX, distance, -1); 6490 return positiveResting.distance < negativeResting.distance ? positiveResting.index : negativeResting.index; 6491 }; 6492 proto._getClosestResting = function(restingX, distance, increment) { 6493 let index = this.selectedIndex; 6494 let minDistance = Infinity; 6495 let condition = this.options.contain && !this.isWrapping ? ( 6496 // if containing, keep going if distance is equal to minDistance 6497 (dist, minDist) => dist <= minDist 6498 ) : (dist, minDist) => dist < minDist; 6499 while (condition(distance, minDistance)) { 6500 index += increment; 6501 minDistance = distance; 6502 distance = this.getSlideDistance(-restingX, index); 6503 if (distance === null) break; 6504 distance = Math.abs(distance); 6505 } 6506 return { 6507 distance: minDistance, 6508 // selected was previous index 6509 index: index - increment 6510 }; 6511 }; 6512 proto.getSlideDistance = function(x2, index) { 6513 let len = this.slides.length; 6514 let isWrapAround = this.options.wrapAround && len > 1; 6515 let slideIndex = isWrapAround ? utils.modulo(index, len) : index; 6516 let slide = this.slides[slideIndex]; 6517 if (!slide) return null; 6518 let wrap3 = isWrapAround ? this.slideableWidth * Math.floor(index / len) : 0; 6519 return x2 - (slide.target + wrap3); 6520 }; 6521 proto.dragEndBoostSelect = function() { 6522 if (this.previousDragX === void 0 || !this.dragMoveTime || // or if drag was held for 100 ms 6523 /* @__PURE__ */ new Date() - this.dragMoveTime > 100) { 6524 return 0; 6525 } 6526 let distance = this.getSlideDistance(-this.dragX, this.selectedIndex); 6527 let delta = this.previousDragX - this.dragX; 6528 if (distance > 0 && delta > 0) { 6529 return 1; 6530 } else if (distance < 0 && delta < 0) { 6531 return -1; 6532 } 6533 return 0; 6534 }; 6535 proto.onscroll = function() { 6536 let scroll = getScrollPosition(); 6537 let scrollMoveX = this.pointerDownScroll.x - scroll.x; 6538 let scrollMoveY = this.pointerDownScroll.y - scroll.y; 6539 if (Math.abs(scrollMoveX) > 3 || Math.abs(scrollMoveY) > 3) { 6540 this.pointerDone(); 6541 } 6542 }; 6543 function getScrollPosition() { 6544 return { 6545 x: window2.pageXOffset, 6546 y: window2.pageYOffset 6547 }; 6548 } 6549 return Flickity2; 6550 } 6551 ); 6552 } 6553 }); 6554 6555
vendor: 5,476 bytes, lines 6555-6682
6555// node_modules/flickity/js/prev-next-button.js 6556 var require_prev_next_button = __commonJS({ 6557 "node_modules/flickity/js/prev-next-button.js"(exports, module) { 6558 (function(window2, factory) { 6559 if (typeof module == "object" && module.exports) { 6560 module.exports = factory(require_core()); 6561 } else { 6562 factory(window2.Flickity); 6563 } 6564 })(typeof window != "undefined" ? window : exports, function factory(Flickity2) { 6565 const svgURI = "http://www.w3.org/2000/svg"; 6566 function PrevNextButton(increment, direction, arrowShape) { 6567 this.increment = increment; 6568 this.direction = direction; 6569 this.isPrevious = increment === "previous"; 6570 this.isLeft = direction === "left"; 6571 this._create(arrowShape); 6572 } 6573 PrevNextButton.prototype._create = function(arrowShape) { 6574 let element = this.element = document.createElement("button"); 6575 element.className = `flickity-button flickity-prev-next-button ${this.increment}`; 6576 let label = this.isPrevious ? "Previous" : "Next"; 6577 element.setAttribute("type", "button"); 6578 element.setAttribute("aria-label", label); 6579 this.disable(); 6580 let svg = this.createSVG(label, arrowShape); 6581 element.append(svg); 6582 }; 6583 PrevNextButton.prototype.createSVG = function(label, arrowShape) { 6584 let svg = document.createElementNS(svgURI, "svg"); 6585 svg.setAttribute("class", "flickity-button-icon"); 6586 svg.setAttribute("viewBox", "0 0 100 100"); 6587 let title = document.createElementNS(svgURI, "title"); 6588 title.append(label); 6589 let path = document.createElementNS(svgURI, "path"); 6590 let pathMovements = getArrowMovements(arrowShape); 6591 path.setAttribute("d", pathMovements); 6592 path.setAttribute("class", "arrow"); 6593 if (!this.isLeft) { 6594 path.setAttribute("transform", "translate(100, 100) rotate(180)"); 6595 } 6596 svg.append(title, path); 6597 return svg; 6598 }; 6599 function getArrowMovements(shape) { 6600 if (typeof shape == "string") return shape; 6601 let { x0, x1, x2, x3, y1, y2: y22 } = shape; 6602 return `M ${x0}, 50 6603 L ${x1}, ${y1 + 50} 6604 L ${x2}, ${y22 + 50} 6605 L ${x3}, 50 6606 L ${x2}, ${50 - y22} 6607 L ${x1}, ${50 - y1} 6608 Z`; 6609 } 6610 PrevNextButton.prototype.enable = function() { 6611 this.element.removeAttribute("disabled"); 6612 }; 6613 PrevNextButton.prototype.disable = function() { 6614 this.element.setAttribute("disabled", true); 6615 }; 6616 Object.assign(Flickity2.defaults, { 6617 prevNextButtons: true, 6618 arrowShape: { 6619 x0: 10, 6620 x1: 60, 6621 y1: 50, 6622 x2: 70, 6623 y2: 40, 6624 x3: 30 6625 } 6626 }); 6627 Flickity2.create.prevNextButtons = function() { 6628 if (!this.options.prevNextButtons) return; 6629 let { rightToLeft, arrowShape } = this.options; 6630 let prevDirection = rightToLeft ? "right" : "left"; 6631 let nextDirection = rightToLeft ? "left" : "right"; 6632 this.prevButton = new PrevNextButton("previous", prevDirection, arrowShape); 6633 this.nextButton = new PrevNextButton("next", nextDirection, arrowShape); 6634 this.focusableElems.push(this.prevButton.element); 6635 this.focusableElems.push(this.nextButton.element); 6636 this.handlePrevButtonClick = () => { 6637 this.uiChange(); 6638 this.previous(); 6639 }; 6640 this.handleNextButtonClick = () => { 6641 this.uiChange(); 6642 this.next(); 6643 }; 6644 this.on("activate", this.activatePrevNextButtons); 6645 this.on("select", this.updatePrevNextButtons); 6646 }; 6647 let proto = Flickity2.prototype; 6648 proto.updatePrevNextButtons = function() { 6649 let lastIndex = this.slides.length ? this.slides.length - 1 : 0; 6650 this.updatePrevNextButton(this.prevButton, 0); 6651 this.updatePrevNextButton(this.nextButton, lastIndex); 6652 }; 6653 proto.updatePrevNextButton = function(button, disabledIndex) { 6654 if (this.isWrapping && this.slides.length > 1) { 6655 button.enable(); 6656 return; 6657 } 6658 let isEnabled = this.selectedIndex !== disabledIndex; 6659 button[isEnabled ? "enable" : "disable"](); 6660 let isDisabledFocused = !isEnabled && document.activeElement === button.element; 6661 if (isDisabledFocused) this.focus(); 6662 }; 6663 proto.activatePrevNextButtons = function() { 6664 this.prevButton.element.addEventListener("click", this.handlePrevButtonClick); 6665 this.nextButton.element.addEventListener("click", this.handleNextButtonClick); 6666 this.element.append(this.prevButton.element, this.nextButton.element); 6667 this.on("deactivate", this.deactivatePrevNextButtons); 6668 }; 6669 proto.deactivatePrevNextButtons = function() { 6670 this.prevButton.element.remove(); 6671 this.nextButton.element.remove(); 6672 this.prevButton.element.removeEventListener("click", this.handlePrevButtonClick); 6673 this.nextButton.element.removeEventListener("click", this.handleNextButtonClick); 6674 this.off("deactivate", this.deactivatePrevNextButtons); 6675 }; 6676 Flickity2.PrevNextButton = PrevNextButton; 6677 return Flickity2; 6678 }); 6679 } 6680 }); 6681 6682
vendor: 4,041 bytes, lines 6682-6784
6682// node_modules/flickity/js/page-dots.js 6683 var require_page_dots = __commonJS({ 6684 "node_modules/flickity/js/page-dots.js"(exports, module) { 6685 (function(window2, factory) { 6686 if (typeof module == "object" && module.exports) { 6687 module.exports = factory( 6688 require_core(), 6689 require_utils() 6690 ); 6691 } else { 6692 factory( 6693 window2.Flickity, 6694 window2.fizzyUIUtils 6695 ); 6696 } 6697 })(typeof window != "undefined" ? window : exports, function factory(Flickity2, utils) { 6698 function PageDots() { 6699 this.holder = document.createElement("div"); 6700 this.holder.className = "flickity-page-dots"; 6701 this.dots = []; 6702 } 6703 PageDots.prototype.setDots = function(slidesLength) { 6704 let delta = slidesLength - this.dots.length; 6705 if (delta > 0) { 6706 this.addDots(delta); 6707 } else if (delta < 0) { 6708 this.removeDots(-delta); 6709 } 6710 }; 6711 PageDots.prototype.addDots = function(count) { 6712 let newDots = new Array(count).fill().map((item, i10) => { 6713 let dot = document.createElement("button"); 6714 dot.setAttribute("type", "button"); 6715 let num = i10 + 1 + this.dots.length; 6716 dot.className = "flickity-page-dot"; 6717 dot.textContent = `View slide ${num}`; 6718 return dot; 6719 }); 6720 this.holder.append(...newDots); 6721 this.dots = this.dots.concat(newDots); 6722 }; 6723 PageDots.prototype.removeDots = function(count) { 6724 let removeDots = this.dots.splice(this.dots.length - count, count); 6725 removeDots.forEach((dot) => dot.remove()); 6726 }; 6727 PageDots.prototype.updateSelected = function(index) { 6728 if (this.selectedDot) { 6729 this.selectedDot.classList.remove("is-selected"); 6730 this.selectedDot.removeAttribute("aria-current"); 6731 } 6732 if (!this.dots.length) return; 6733 this.selectedDot = this.dots[index]; 6734 this.selectedDot.classList.add("is-selected"); 6735 this.selectedDot.setAttribute("aria-current", "step"); 6736 }; 6737 Flickity2.PageDots = PageDots; 6738 Object.assign(Flickity2.defaults, { 6739 pageDots: true 6740 }); 6741 Flickity2.create.pageDots = function() { 6742 if (!this.options.pageDots) return; 6743 this.pageDots = new PageDots(); 6744 this.handlePageDotsClick = this.onPageDotsClick.bind(this); 6745 this.on("activate", this.activatePageDots); 6746 this.on("select", this.updateSelectedPageDots); 6747 this.on("cellChange", this.updatePageDots); 6748 this.on("resize", this.updatePageDots); 6749 this.on("deactivate", this.deactivatePageDots); 6750 }; 6751 let proto = Flickity2.prototype; 6752 proto.activatePageDots = function() { 6753 this.pageDots.setDots(this.slides.length); 6754 this.focusableElems.push(...this.pageDots.dots); 6755 this.pageDots.holder.addEventListener("click", this.handlePageDotsClick); 6756 this.element.append(this.pageDots.holder); 6757 }; 6758 proto.onPageDotsClick = function(event) { 6759 let index = this.pageDots.dots.indexOf(event.target); 6760 if (index === -1) return; 6761 this.uiChange(); 6762 this.select(index); 6763 }; 6764 proto.updateSelectedPageDots = function() { 6765 this.pageDots.updateSelected(this.selectedIndex); 6766 }; 6767 proto.updatePageDots = function() { 6768 this.pageDots.dots.forEach((dot) => { 6769 utils.removeFrom(this.focusableElems, dot); 6770 }); 6771 this.pageDots.setDots(this.slides.length); 6772 this.focusableElems.push(...this.pageDots.dots); 6773 }; 6774 proto.deactivatePageDots = function() { 6775 this.pageDots.holder.remove(); 6776 this.pageDots.holder.removeEventListener("click", this.handlePageDotsClick); 6777 }; 6778 Flickity2.PageDots = PageDots; 6779 return Flickity2; 6780 }); 6781 } 6782 }); 6783 6784
vendor: 4,018 bytes, lines 6784-6895
6784// node_modules/flickity/js/player.js 6785 var require_player = __commonJS({ 6786 "node_modules/flickity/js/player.js"(exports, module) { 6787 (function(window2, factory) { 6788 if (typeof module == "object" && module.exports) { 6789 module.exports = factory(require_core()); 6790 } else { 6791 factory(window2.Flickity); 6792 } 6793 })(typeof window != "undefined" ? window : exports, function factory(Flickity2) { 6794 function Player(autoPlay, onTick) { 6795 this.autoPlay = autoPlay; 6796 this.onTick = onTick; 6797 this.state = "stopped"; 6798 this.onVisibilityChange = this.visibilityChange.bind(this); 6799 this.onVisibilityPlay = this.visibilityPlay.bind(this); 6800 } 6801 Player.prototype.play = function() { 6802 if (this.state === "playing") return; 6803 let isPageHidden = document.hidden; 6804 if (isPageHidden) { 6805 document.addEventListener("visibilitychange", this.onVisibilityPlay); 6806 return; 6807 } 6808 this.state = "playing"; 6809 document.addEventListener("visibilitychange", this.onVisibilityChange); 6810 this.tick(); 6811 }; 6812 Player.prototype.tick = function() { 6813 if (this.state !== "playing") return; 6814 let time = typeof this.autoPlay == "number" ? this.autoPlay : 3e3; 6815 this.clear(); 6816 this.timeout = setTimeout(() => { 6817 this.onTick(); 6818 this.tick(); 6819 }, time); 6820 }; 6821 Player.prototype.stop = function() { 6822 this.state = "stopped"; 6823 this.clear(); 6824 document.removeEventListener("visibilitychange", this.onVisibilityChange); 6825 }; 6826 Player.prototype.clear = function() { 6827 clearTimeout(this.timeout); 6828 }; 6829 Player.prototype.pause = function() { 6830 if (this.state === "playing") { 6831 this.state = "paused"; 6832 this.clear(); 6833 } 6834 }; 6835 Player.prototype.unpause = function() { 6836 if (this.state === "paused") this.play(); 6837 }; 6838 Player.prototype.visibilityChange = function() { 6839 let isPageHidden = document.hidden; 6840 this[isPageHidden ? "pause" : "unpause"](); 6841 }; 6842 Player.prototype.visibilityPlay = function() { 6843 this.play(); 6844 document.removeEventListener("visibilitychange", this.onVisibilityPlay); 6845 }; 6846 Object.assign(Flickity2.defaults, { 6847 pauseAutoPlayOnHover: true 6848 }); 6849 Flickity2.create.player = function() { 6850 this.player = new Player(this.options.autoPlay, () => { 6851 this.next(true); 6852 }); 6853 this.on("activate", this.activatePlayer); 6854 this.on("uiChange", this.stopPlayer); 6855 this.on("pointerDown", this.stopPlayer); 6856 this.on("deactivate", this.deactivatePlayer); 6857 }; 6858 let proto = Flickity2.prototype; 6859 proto.activatePlayer = function() { 6860 if (!this.options.autoPlay) return; 6861 this.player.play(); 6862 this.element.addEventListener("mouseenter", this); 6863 }; 6864 proto.playPlayer = function() { 6865 this.player.play(); 6866 }; 6867 proto.stopPlayer = function() { 6868 this.player.stop(); 6869 }; 6870 proto.pausePlayer = function() { 6871 this.player.pause(); 6872 }; 6873 proto.unpausePlayer = function() { 6874 this.player.unpause(); 6875 }; 6876 proto.deactivatePlayer = function() { 6877 this.player.stop(); 6878 this.element.removeEventListener("mouseenter", this); 6879 }; 6880 proto.onmouseenter = function() { 6881 if (!this.options.pauseAutoPlayOnHover) return; 6882 this.player.pause(); 6883 this.element.addEventListener("mouseleave", this); 6884 }; 6885 proto.onmouseleave = function() { 6886 this.player.unpause(); 6887 this.element.removeEventListener("mouseleave", this); 6888 }; 6889 Flickity2.Player = Player; 6890 return Flickity2; 6891 }); 6892 } 6893 }); 6894 6895
vendor: 3,378 bytes, lines 6895-6984
6895// node_modules/flickity/js/add-remove-cell.js 6896 var require_add_remove_cell = __commonJS({ 6897 "node_modules/flickity/js/add-remove-cell.js"(exports, module) { 6898 (function(window2, factory) { 6899 if (typeof module == "object" && module.exports) { 6900 module.exports = factory( 6901 require_core(), 6902 require_utils() 6903 ); 6904 } else { 6905 factory( 6906 window2.Flickity, 6907 window2.fizzyUIUtils 6908 ); 6909 } 6910 })(typeof window != "undefined" ? window : exports, function factory(Flickity2, utils) { 6911 function getCellsFragment(cells) { 6912 let fragment = document.createDocumentFragment(); 6913 cells.forEach((cell) => fragment.appendChild(cell.element)); 6914 return fragment; 6915 } 6916 let proto = Flickity2.prototype; 6917 proto.insert = function(elems, index) { 6918 let cells = this._makeCells(elems); 6919 if (!cells || !cells.length) return; 6920 let len = this.cells.length; 6921 index = index === void 0 ? len : index; 6922 let fragment = getCellsFragment(cells); 6923 let isAppend = index === len; 6924 if (isAppend) { 6925 this.slider.appendChild(fragment); 6926 } else { 6927 let insertCellElement = this.cells[index].element; 6928 this.slider.insertBefore(fragment, insertCellElement); 6929 } 6930 if (index === 0) { 6931 this.cells = cells.concat(this.cells); 6932 } else if (isAppend) { 6933 this.cells = this.cells.concat(cells); 6934 } else { 6935 let endCells = this.cells.splice(index, len - index); 6936 this.cells = this.cells.concat(cells).concat(endCells); 6937 } 6938 this._sizeCells(cells); 6939 this.cellChange(index); 6940 this.positionSliderAtSelected(); 6941 }; 6942 proto.append = function(elems) { 6943 this.insert(elems, this.cells.length); 6944 }; 6945 proto.prepend = function(elems) { 6946 this.insert(elems, 0); 6947 }; 6948 proto.remove = function(elems) { 6949 let cells = this.getCells(elems); 6950 if (!cells || !cells.length) return; 6951 let minCellIndex = this.cells.length - 1; 6952 cells.forEach((cell) => { 6953 cell.remove(); 6954 let index = this.cells.indexOf(cell); 6955 minCellIndex = Math.min(index, minCellIndex); 6956 utils.removeFrom(this.cells, cell); 6957 }); 6958 this.cellChange(minCellIndex); 6959 this.positionSliderAtSelected(); 6960 }; 6961 proto.cellSizeChange = function(elem) { 6962 let cell = this.getCell(elem); 6963 if (!cell) return; 6964 cell.getSize(); 6965 let index = this.cells.indexOf(cell); 6966 this.cellChange(index); 6967 }; 6968 proto.cellChange = function(changedCellIndex) { 6969 let prevSelectedElem = this.selectedElement; 6970 this._positionCells(changedCellIndex); 6971 this._updateWrapShiftCells(); 6972 this.setGallerySize(); 6973 let cell = this.getCell(prevSelectedElem); 6974 if (cell) this.selectedIndex = this.getCellSlideIndex(cell); 6975 this.selectedIndex = Math.min(this.slides.length - 1, this.selectedIndex); 6976 this.emitEvent("cellChange", [changedCellIndex]); 6977 this.select(this.selectedIndex); 6978 }; 6979 return Flickity2; 6980 }); 6981 } 6982 }); 6983 6984
vendor: 3,608 bytes, lines 6984-7068
6984// node_modules/flickity/js/lazyload.js 6985 var require_lazyload = __commonJS({ 6986 "node_modules/flickity/js/lazyload.js"(exports, module) { 6987 (function(window2, factory) { 6988 if (typeof module == "object" && module.exports) { 6989 module.exports = factory( 6990 require_core(), 6991 require_utils() 6992 ); 6993 } else { 6994 factory( 6995 window2.Flickity, 6996 window2.fizzyUIUtils 6997 ); 6998 } 6999 })(typeof window != "undefined" ? window : exports, function factory(Flickity2, utils) { 7000 const lazyAttr = "data-flickity-lazyload"; 7001 const lazySrcAttr = `${lazyAttr}-src`; 7002 const lazySrcsetAttr = `${lazyAttr}-srcset`; 7003 const imgSelector = `img[${lazyAttr}], img[${lazySrcAttr}], img[${lazySrcsetAttr}], source[${lazySrcsetAttr}]`; 7004 Flickity2.create.lazyLoad = function() { 7005 this.on("select", this.lazyLoad); 7006 this.handleLazyLoadComplete = this.onLazyLoadComplete.bind(this); 7007 }; 7008 let proto = Flickity2.prototype; 7009 proto.lazyLoad = function() { 7010 let { lazyLoad } = this.options; 7011 if (!lazyLoad) return; 7012 let adjCount = typeof lazyLoad == "number" ? lazyLoad : 0; 7013 this.getAdjacentCellElements(adjCount).map(getCellLazyImages).flat().forEach((img) => new LazyLoader(img, this.handleLazyLoadComplete)); 7014 }; 7015 function getCellLazyImages(cellElem) { 7016 if (cellElem.matches("img")) { 7017 let cellAttr = cellElem.getAttribute(lazyAttr); 7018 let cellSrcAttr = cellElem.getAttribute(lazySrcAttr); 7019 let cellSrcsetAttr = cellElem.getAttribute(lazySrcsetAttr); 7020 if (cellAttr || cellSrcAttr || cellSrcsetAttr) { 7021 return cellElem; 7022 } 7023 } 7024 return [...cellElem.querySelectorAll(imgSelector)]; 7025 } 7026 proto.onLazyLoadComplete = function(img, event) { 7027 let cell = this.getParentCell(img); 7028 let cellElem = cell && cell.element; 7029 this.cellSizeChange(cellElem); 7030 this.dispatchEvent("lazyLoad", event, cellElem); 7031 }; 7032 function LazyLoader(img, onComplete) { 7033 this.img = img; 7034 this.onComplete = onComplete; 7035 this.load(); 7036 } 7037 LazyLoader.prototype.handleEvent = utils.handleEvent; 7038 LazyLoader.prototype.load = function() { 7039 this.img.addEventListener("load", this); 7040 this.img.addEventListener("error", this); 7041 let src = this.img.getAttribute(lazyAttr) || this.img.getAttribute(lazySrcAttr); 7042 let srcset = this.img.getAttribute(lazySrcsetAttr); 7043 this.img.src = src; 7044 if (srcset) this.img.setAttribute("srcset", srcset); 7045 this.img.removeAttribute(lazyAttr); 7046 this.img.removeAttribute(lazySrcAttr); 7047 this.img.removeAttribute(lazySrcsetAttr); 7048 }; 7049 LazyLoader.prototype.onload = function(event) { 7050 this.complete(event, "flickity-lazyloaded"); 7051 }; 7052 LazyLoader.prototype.onerror = function(event) { 7053 this.complete(event, "flickity-lazyerror"); 7054 }; 7055 LazyLoader.prototype.complete = function(event, className) { 7056 this.img.removeEventListener("load", this); 7057 this.img.removeEventListener("error", this); 7058 let mediaElem = this.img.parentNode.matches("picture") ? this.img.parentNode : this.img; 7059 mediaElem.classList.add(className); 7060 this.onComplete(this.img, event); 7061 }; 7062 Flickity2.LazyLoader = LazyLoader; 7063 return Flickity2; 7064 }); 7065 } 7066 }); 7067 7068
vendor: 9,091 bytes, lines 7068-7289
7068// node_modules/imagesloaded/imagesloaded.js 7069 var require_imagesloaded = __commonJS({ 7070 "node_modules/imagesloaded/imagesloaded.js"(exports, module) { 7071 (function(window2, factory) { 7072 if (typeof module == "object" && module.exports) { 7073 module.exports = factory(window2, require_ev_emitter()); 7074 } else { 7075 window2.imagesLoaded = factory(window2, window2.EvEmitter); 7076 } 7077 })( 7078 typeof window !== "undefined" ? window : exports, 7079 function factory(window2, EvEmitter) { 7080 let $4 = window2.jQuery; 7081 let console2 = window2.console; 7082 function makeArray(obj) { 7083 if (Array.isArray(obj)) return obj; 7084 let isArrayLike = typeof obj == "object" && typeof obj.length == "number"; 7085 if (isArrayLike) return [...obj]; 7086 return [obj]; 7087 } 7088 function ImagesLoaded(elem, options, onAlways) { 7089 if (!(this instanceof ImagesLoaded)) { 7090 return new ImagesLoaded(elem, options, onAlways); 7091 } 7092 let queryElem = elem; 7093 if (typeof elem == "string") { 7094 queryElem = document.querySelectorAll(elem); 7095 } 7096 if (!queryElem) { 7097 console2.error(`Bad element for imagesLoaded ${queryElem || elem}`); 7098 return; 7099 } 7100 this.elements = makeArray(queryElem); 7101 this.options = {}; 7102 if (typeof options == "function") { 7103 onAlways = options; 7104 } else { 7105 Object.assign(this.options, options); 7106 } 7107 if (onAlways) this.on("always", onAlways); 7108 this.getImages(); 7109 if ($4) this.jqDeferred = new $4.Deferred(); 7110 setTimeout(this.check.bind(this)); 7111 } 7112 ImagesLoaded.prototype = Object.create(EvEmitter.prototype); 7113 ImagesLoaded.prototype.getImages = function() { 7114 this.images = []; 7115 this.elements.forEach(this.addElementImages, this); 7116 }; 7117 const elementNodeTypes = [1, 9, 11]; 7118 ImagesLoaded.prototype.addElementImages = function(elem) { 7119 if (elem.nodeName === "IMG") { 7120 this.addImage(elem); 7121 } 7122 if (this.options.background === true) { 7123 this.addElementBackgroundImages(elem); 7124 } 7125 let { nodeType } = elem; 7126 if (!nodeType || !elementNodeTypes.includes(nodeType)) return; 7127 let childImgs = elem.querySelectorAll("img"); 7128 for (let img of childImgs) { 7129 this.addImage(img); 7130 } 7131 if (typeof this.options.background == "string") { 7132 let children = elem.querySelectorAll(this.options.background); 7133 for (let child of children) { 7134 this.addElementBackgroundImages(child); 7135 } 7136 } 7137 }; 7138 const reURL = /url\((['"])?(.*?)\1\)/gi; 7139 ImagesLoaded.prototype.addElementBackgroundImages = function(elem) { 7140 let style = getComputedStyle(elem); 7141 if (!style) return; 7142 let matches = reURL.exec(style.backgroundImage); 7143 while (matches !== null) { 7144 let url = matches && matches[2]; 7145 if (url) { 7146 this.addBackground(url, elem); 7147 } 7148 matches = reURL.exec(style.backgroundImage); 7149 } 7150 }; 7151 ImagesLoaded.prototype.addImage = function(img) { 7152 let loadingImage = new LoadingImage(img); 7153 this.images.push(loadingImage); 7154 }; 7155 ImagesLoaded.prototype.addBackground = function(url, elem) { 7156 let background = new Background(url, elem); 7157 this.images.push(background); 7158 }; 7159 ImagesLoaded.prototype.check = function() { 7160 this.progressedCount = 0; 7161 this.hasAnyBroken = false; 7162 if (!this.images.length) { 7163 this.complete(); 7164 return; 7165 } 7166 let onProgress = (image, elem, message) => { 7167 setTimeout(() => { 7168 this.progress(image, elem, message); 7169 }); 7170 }; 7171 this.images.forEach(function(loadingImage) { 7172 loadingImage.once("progress", onProgress); 7173 loadingImage.check(); 7174 }); 7175 }; 7176 ImagesLoaded.prototype.progress = function(image, elem, message) { 7177 this.progressedCount++; 7178 this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded; 7179 this.emitEvent("progress", [this, image, elem]); 7180 if (this.jqDeferred && this.jqDeferred.notify) { 7181 this.jqDeferred.notify(this, image); 7182 } 7183 if (this.progressedCount === this.images.length) { 7184 this.complete(); 7185 } 7186 if (this.options.debug && console2) { 7187 console2.log(`progress: ${message}`, image, elem); 7188 } 7189 }; 7190 ImagesLoaded.prototype.complete = function() { 7191 let eventName = this.hasAnyBroken ? "fail" : "done"; 7192 this.isComplete = true; 7193 this.emitEvent(eventName, [this]); 7194 this.emitEvent("always", [this]); 7195 if (this.jqDeferred) { 7196 let jqMethod = this.hasAnyBroken ? "reject" : "resolve"; 7197 this.jqDeferred[jqMethod](this); 7198 } 7199 }; 7200 function LoadingImage(img) { 7201 this.img = img; 7202 } 7203 LoadingImage.prototype = Object.create(EvEmitter.prototype); 7204 LoadingImage.prototype.check = function() { 7205 let isComplete = this.getIsImageComplete(); 7206 if (isComplete) { 7207 this.confirm(this.img.naturalWidth !== 0, "naturalWidth"); 7208 return; 7209 } 7210 this.proxyImage = new Image(); 7211 if (this.img.crossOrigin) { 7212 this.proxyImage.crossOrigin = this.img.crossOrigin; 7213 } 7214 this.proxyImage.addEventListener("load", this); 7215 this.proxyImage.addEventListener("error", this); 7216 this.img.addEventListener("load", this); 7217 this.img.addEventListener("error", this); 7218 this.proxyImage.src = this.img.currentSrc || this.img.src; 7219 }; 7220 LoadingImage.prototype.getIsImageComplete = function() { 7221 return this.img.complete && this.img.naturalWidth; 7222 }; 7223 LoadingImage.prototype.confirm = function(isLoaded, message) { 7224 this.isLoaded = isLoaded; 7225 let { parentNode } = this.img; 7226 let elem = parentNode.nodeName === "PICTURE" ? parentNode : this.img; 7227 this.emitEvent("progress", [this, elem, message]); 7228 }; 7229 LoadingImage.prototype.handleEvent = function(event) { 7230 let method = "on" + event.type; 7231 if (this[method]) { 7232 this[method](event); 7233 } 7234 }; 7235 LoadingImage.prototype.onload = function() { 7236 this.confirm(true, "onload"); 7237 this.unbindEvents(); 7238 }; 7239 LoadingImage.prototype.onerror = function() { 7240 this.confirm(false, "onerror"); 7241 this.unbindEvents(); 7242 }; 7243 LoadingImage.prototype.unbindEvents = function() { 7244 this.proxyImage.removeEventListener("load", this); 7245 this.proxyImage.removeEventListener("error", this); 7246 this.img.removeEventListener("load", this); 7247 this.img.removeEventListener("error", this); 7248 }; 7249 function Background(url, element) { 7250 this.url = url; 7251 this.element = element; 7252 this.img = new Image(); 7253 } 7254 Background.prototype = Object.create(LoadingImage.prototype); 7255 Background.prototype.check = function() { 7256 this.img.addEventListener("load", this); 7257 this.img.addEventListener("error", this); 7258 this.img.src = this.url; 7259 let isComplete = this.getIsImageComplete(); 7260 if (isComplete) { 7261 this.confirm(this.img.naturalWidth !== 0, "naturalWidth"); 7262 this.unbindEvents(); 7263 } 7264 }; 7265 Background.prototype.unbindEvents = function() { 7266 this.img.removeEventListener("load", this); 7267 this.img.removeEventListener("error", this); 7268 }; 7269 Background.prototype.confirm = function(isLoaded, message) { 7270 this.isLoaded = isLoaded; 7271 this.emitEvent("progress", [this, this.element, message]); 7272 }; 7273 ImagesLoaded.makeJQueryPlugin = function(jQuery2) { 7274 jQuery2 = jQuery2 || window2.jQuery; 7275 if (!jQuery2) return; 7276 $4 = jQuery2; 7277 $4.fn.imagesLoaded = function(options, onAlways) { 7278 let instance = new ImagesLoaded(this, options, onAlways); 7279 return instance.jqDeferred.promise($4(this)); 7280 }; 7281 }; 7282 ImagesLoaded.makeJQueryPlugin(); 7283 return ImagesLoaded; 7284 } 7285 ); 7286 } 7287 }); 7288 7289
vendor: 1,255 bytes, lines 7289-7325
7289// node_modules/flickity/js/imagesloaded.js 7290 var require_imagesloaded2 = __commonJS({ 7291 "node_modules/flickity/js/imagesloaded.js"(exports, module) { 7292 (function(window2, factory) { 7293 if (typeof module == "object" && module.exports) { 7294 module.exports = factory( 7295 require_core(), 7296 require_imagesloaded() 7297 ); 7298 } else { 7299 factory( 7300 window2.Flickity, 7301 window2.imagesLoaded 7302 ); 7303 } 7304 })( 7305 typeof window != "undefined" ? window : exports, 7306 function factory(Flickity2, imagesLoaded2) { 7307 Flickity2.create.imagesLoaded = function() { 7308 this.on("activate", this.imagesLoaded); 7309 }; 7310 Flickity2.prototype.imagesLoaded = function() { 7311 if (!this.options.imagesLoaded) return; 7312 let onImagesLoadedProgress = (instance, image) => { 7313 let cell = this.getParentCell(image.img); 7314 this.cellSizeChange(cell && cell.element); 7315 if (!this.options.freeScroll) this.positionSliderAtSelected(); 7316 }; 7317 imagesLoaded2(this.slider).on("progress", onImagesLoadedProgress); 7318 }; 7319 return Flickity2; 7320 } 7321 ); 7322 } 7323 }); 7324 7325
vendor: 497 bytes, lines 7325-7342
7325// node_modules/flickity/js/index.js 7326 var require_js = __commonJS({ 7327 "node_modules/flickity/js/index.js"(exports, module) { 7328 if (typeof module == "object" && module.exports) { 7329 const Flickity2 = require_core(); 7330 require_drag(); 7331 require_prev_next_button(); 7332 require_page_dots(); 7333 require_player(); 7334 require_add_remove_cell(); 7335 require_lazyload(); 7336 require_imagesloaded2(); 7337 module.exports = Flickity2; 7338 } 7339 } 7340 }); 7341 7342
vendor: 138 bytes, lines 7342-7348
7342// node_modules/flickity/dist/flickity.css 7343 var init_flickity = __esm({ 7344 "node_modules/flickity/dist/flickity.css"() { 7345 } 7346 }); 7347 7348
7348// js/flickity.js 7349 var flickity_exports = {}; 7350 var import_flickity; 7351 var init_flickity2 = __esm({ 7352 "js/flickity.js"() { 7353 import_flickity = __toESM(require_js()); 7354 init_flickity(); 7355 document.addEventListener("DOMContentLoaded", () => { 7356 const options = { 7357 cellAlign: "center", 7358 // contain: true, 7359 prevNextButtons: true, 7360 wrapAround: true, 7361 groupCells: 1, 7362 selectedAttraction: 0.075, 7363 friction: 0.75, 7364 autoPlay: 3e3 7365 }; 7366 document.querySelectorAll(".flickity-carousel").forEach((el) => { 7367 new import_flickity.default(el, options); 7368 }); 7369 }); 7370 } 7371 }); 7372 7373
vendor: 142,758 bytes, lines 7373-9447
7373// node_modules/jquery/dist/jquery.min.js 7374 var require_jquery_min = __commonJS({ 7375 "node_modules/jquery/dist/jquery.min.js"(exports, module) { 7376 !(function(e11, t11) { 7377 "use strict"; 7378 "object" == typeof module && "object" == typeof module.exports ? module.exports = e11.document ? t11(e11, true) : function(e12) { 7379 if (!e12.document) throw new Error("jQuery requires a window with a document"); 7380 return t11(e12); 7381 } : t11(e11); 7382 })("undefined" != typeof window ? window : exports, function(ie, e11) { 7383 "use strict"; 7384 var oe = [], r7 = Object.getPrototypeOf, ae = oe.slice, g2 = oe.flat ? function(e12) { 7385 return oe.flat.call(e12); 7386 } : function(e12) { 7387 return oe.concat.apply([], e12); 7388 }, s13 = oe.push, se = oe.indexOf, n10 = {}, i10 = n10.toString, ue = n10.hasOwnProperty, o11 = ue.toString, a8 = o11.call(Object), le = {}, v3 = function(e12) { 7389 return "function" == typeof e12 && "number" != typeof e12.nodeType && "function" != typeof e12.item; 7390 }, y3 = function(e12) { 7391 return null != e12 && e12 === e12.window; 7392 }, C = ie.document, u5 = { type: true, src: true, nonce: true, noModule: true }; 7393 function m3(e12, t12, n11) { 7394 var r8, i11, o12 = (n11 = n11 || C).createElement("script"); 7395 if (o12.text = e12, t12) for (r8 in u5) (i11 = t12[r8] || t12.getAttribute && t12.getAttribute(r8)) && o12.setAttribute(r8, i11); 7396 n11.head.appendChild(o12).parentNode.removeChild(o12); 7397 } 7398 function x2(e12) { 7399 return null == e12 ? e12 + "" : "object" == typeof e12 || "function" == typeof e12 ? n10[i10.call(e12)] || "object" : typeof e12; 7400 } 7401 var t11 = "3.7.1", l10 = /HTML$/i, ce = function(e12, t12) { 7402 return new ce.fn.init(e12, t12); 7403 }; 7404 function c5(e12) { 7405 var t12 = !!e12 && "length" in e12 && e12.length, n11 = x2(e12); 7406 return !v3(e12) && !y3(e12) && ("array" === n11 || 0 === t12 || "number" == typeof t12 && 0 < t12 && t12 - 1 in e12); 7407 } 7408 function fe(e12, t12) { 7409 return e12.nodeName && e12.nodeName.toLowerCase() === t12.toLowerCase(); 7410 } 7411 ce.fn = ce.prototype = { jquery: t11, constructor: ce, length: 0, toArray: function() { 7412 return ae.call(this); 7413 }, get: function(e12) { 7414 return null == e12 ? ae.call(this) : e12 < 0 ? this[e12 + this.length] : this[e12]; 7415 }, pushStack: function(e12) { 7416 var t12 = ce.merge(this.constructor(), e12); 7417 return t12.prevObject = this, t12; 7418 }, each: function(e12) { 7419 return ce.each(this, e12); 7420 }, map: function(n11) { 7421 return this.pushStack(ce.map(this, function(e12, t12) { 7422 return n11.call(e12, t12, e12); 7423 })); 7424 }, slice: function() { 7425 return this.pushStack(ae.apply(this, arguments)); 7426 }, first: function() { 7427 return this.eq(0); 7428 }, last: function() { 7429 return this.eq(-1); 7430 }, even: function() { 7431 return this.pushStack(ce.grep(this, function(e12, t12) { 7432 return (t12 + 1) % 2; 7433 })); 7434 }, odd: function() { 7435 return this.pushStack(ce.grep(this, function(e12, t12) { 7436 return t12 % 2; 7437 })); 7438 }, eq: function(e12) { 7439 var t12 = this.length, n11 = +e12 + (e12 < 0 ? t12 : 0); 7440 return this.pushStack(0 <= n11 && n11 < t12 ? [this[n11]] : []); 7441 }, end: function() { 7442 return this.prevObject || this.constructor(); 7443 }, push: s13, sort: oe.sort, splice: oe.splice }, ce.extend = ce.fn.extend = function() { 7444 var e12, t12, n11, r8, i11, o12, a9 = arguments[0] || {}, s14 = 1, u6 = arguments.length, l11 = false; 7445 for ("boolean" == typeof a9 && (l11 = a9, a9 = arguments[s14] || {}, s14++), "object" == typeof a9 || v3(a9) || (a9 = {}), s14 === u6 && (a9 = this, s14--); s14 < u6; s14++) if (null != (e12 = arguments[s14])) for (t12 in e12) r8 = e12[t12], "__proto__" !== t12 && a9 !== r8 && (l11 && r8 && (ce.isPlainObject(r8) || (i11 = Array.isArray(r8))) ? (n11 = a9[t12], o12 = i11 && !Array.isArray(n11) ? [] : i11 || ce.isPlainObject(n11) ? n11 : {}, i11 = false, a9[t12] = ce.extend(l11, o12, r8)) : void 0 !== r8 && (a9[t12] = r8)); 7446 return a9; 7447 }, ce.extend({ expando: "jQuery" + (t11 + Math.random()).replace(/\D/g, ""), isReady: true, error: function(e12) { 7448 throw new Error(e12); 7449 }, noop: function() { 7450 }, isPlainObject: function(e12) { 7451 var t12, n11; 7452 return !(!e12 || "[object Object]" !== i10.call(e12)) && (!(t12 = r7(e12)) || "function" == typeof (n11 = ue.call(t12, "constructor") && t12.constructor) && o11.call(n11) === a8); 7453 }, isEmptyObject: function(e12) { 7454 var t12; 7455 for (t12 in e12) return false; 7456 return true; 7457 }, globalEval: function(e12, t12, n11) { 7458 m3(e12, { nonce: t12 && t12.nonce }, n11); 7459 }, each: function(e12, t12) { 7460 var n11, r8 = 0; 7461 if (c5(e12)) { 7462 for (n11 = e12.length; r8 < n11; r8++) if (false === t12.call(e12[r8], r8, e12[r8])) break; 7463 } else for (r8 in e12) if (false === t12.call(e12[r8], r8, e12[r8])) break; 7464 return e12; 7465 }, text: function(e12) { 7466 var t12, n11 = "", r8 = 0, i11 = e12.nodeType; 7467 if (!i11) while (t12 = e12[r8++]) n11 += ce.text(t12); 7468 return 1 === i11 || 11 === i11 ? e12.textContent : 9 === i11 ? e12.documentElement.textContent : 3 === i11 || 4 === i11 ? e12.nodeValue : n11; 7469 }, makeArray: function(e12, t12) { 7470 var n11 = t12 || []; 7471 return null != e12 && (c5(Object(e12)) ? ce.merge(n11, "string" == typeof e12 ? [e12] : e12) : s13.call(n11, e12)), n11; 7472 }, inArray: function(e12, t12, n11) { 7473 return null == t12 ? -1 : se.call(t12, e12, n11); 7474 }, isXMLDoc: function(e12) { 7475 var t12 = e12 && e12.namespaceURI, n11 = e12 && (e12.ownerDocument || e12).documentElement; 7476 return !l10.test(t12 || n11 && n11.nodeName || "HTML"); 7477 }, merge: function(e12, t12) { 7478 for (var n11 = +t12.length, r8 = 0, i11 = e12.length; r8 < n11; r8++) e12[i11++] = t12[r8]; 7479 return e12.length = i11, e12; 7480 }, grep: function(e12, t12, n11) { 7481 for (var r8 = [], i11 = 0, o12 = e12.length, a9 = !n11; i11 < o12; i11++) !t12(e12[i11], i11) !== a9 && r8.push(e12[i11]); 7482 return r8; 7483 }, map: function(e12, t12, n11) { 7484 var r8, i11, o12 = 0, a9 = []; 7485 if (c5(e12)) for (r8 = e12.length; o12 < r8; o12++) null != (i11 = t12(e12[o12], o12, n11)) && a9.push(i11); 7486 else for (o12 in e12) null != (i11 = t12(e12[o12], o12, n11)) && a9.push(i11); 7487 return g2(a9); 7488 }, guid: 1, support: le }), "function" == typeof Symbol && (ce.fn[Symbol.iterator] = oe[Symbol.iterator]), ce.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(e12, t12) { 7489 n10["[object " + t12 + "]"] = t12.toLowerCase(); 7490 }); 7491 var pe = oe.pop, de = oe.sort, he = oe.splice, ge = "[\\x20\\t\\r\\n\\f]", ve = new RegExp("^" + ge + "+|((?:^|[^\\\\])(?:\\\\.)*)" + ge + "+$", "g"); 7492 ce.contains = function(e12, t12) { 7493 var n11 = t12 && t12.parentNode; 7494 return e12 === n11 || !(!n11 || 1 !== n11.nodeType || !(e12.contains ? e12.contains(n11) : e12.compareDocumentPosition && 16 & e12.compareDocumentPosition(n11))); 7495 }; 7496 var f3 = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g; 7497 function p2(e12, t12) { 7498 return t12 ? "\0" === e12 ? "\uFFFD" : e12.slice(0, -1) + "\\" + e12.charCodeAt(e12.length - 1).toString(16) + " " : "\\" + e12; 7499 } 7500 ce.escapeSelector = function(e12) { 7501 return (e12 + "").replace(f3, p2); 7502 }; 7503 var ye = C, me = s13; 7504 !(function() { 7505 var e12, b4, w4, o12, a9, T2, r8, C2, d4, i11, k4 = me, S2 = ce.expando, E4 = 0, n11 = 0, s14 = W2(), c6 = W2(), u6 = W2(), h5 = W2(), l11 = function(e13, t13) { 7506 return e13 === t13 && (a9 = true), 0; 7507 }, f4 = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", t12 = "(?:\\\\[\\da-fA-F]{1,6}" + ge + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", p3 = "\\[" + ge + "*(" + t12 + ")(?:" + ge + "*([*^$|!~]?=)" + ge + `*(?:'((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)"|(` + t12 + "))|)" + ge + "*\\]", g3 = ":(" + t12 + `)(?:\\((('((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)")|((?:\\\\.|[^\\\\()[\\]]|` + p3 + ")*)|.*)\\)|)", v4 = new RegExp(ge + "+", "g"), y4 = new RegExp("^" + ge + "*," + ge + "*"), m4 = new RegExp("^" + ge + "*([>+~]|" + ge + ")" + ge + "*"), x3 = new RegExp(ge + "|>"), j3 = new RegExp(g3), A3 = new RegExp("^" + t12 + "$"), D3 = { ID: new RegExp("^#(" + t12 + ")"), CLASS: new RegExp("^\\.(" + t12 + ")"), TAG: new RegExp("^(" + t12 + "|[*])"), ATTR: new RegExp("^" + p3), PSEUDO: new RegExp("^" + g3), CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + ge + "*(even|odd|(([+-]|)(\\d*)n|)" + ge + "*(?:([+-]|)" + ge + "*(\\d+)|))" + ge + "*\\)|)", "i"), bool: new RegExp("^(?:" + f4 + ")$", "i"), needsContext: new RegExp("^" + ge + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + ge + "*((?:-\\d)?\\d*)" + ge + "*\\)|)(?=[^-]|$)", "i") }, N3 = /^(?:input|select|textarea|button)$/i, q3 = /^h\d$/i, L2 = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, H3 = /[+~]/, O3 = new RegExp("\\\\[\\da-fA-F]{1,6}" + ge + "?|\\\\([^\\r\\n\\f])", "g"), P2 = function(e13, t13) { 7508 var n12 = "0x" + e13.slice(1) - 65536; 7509 return t13 || (n12 < 0 ? String.fromCharCode(n12 + 65536) : String.fromCharCode(n12 >> 10 | 55296, 1023 & n12 | 56320)); 7510 }, M4 = function() { 7511 V2(); 7512 }, R3 = J2(function(e13) { 7513 return true === e13.disabled && fe(e13, "fieldset"); 7514 }, { dir: "parentNode", next: "legend" }); 7515 try { 7516 k4.apply(oe = ae.call(ye.childNodes), ye.childNodes), oe[ye.childNodes.length].nodeType; 7517 } catch (e13) { 7518 k4 = { apply: function(e14, t13) { 7519 me.apply(e14, ae.call(t13)); 7520 }, call: function(e14) { 7521 me.apply(e14, ae.call(arguments, 1)); 7522 } }; 7523 } 7524 function I3(t13, e13, n12, r9) { 7525 var i12, o13, a10, s15, u7, l12, c7, f5 = e13 && e13.ownerDocument, p4 = e13 ? e13.nodeType : 9; 7526 if (n12 = n12 || [], "string" != typeof t13 || !t13 || 1 !== p4 && 9 !== p4 && 11 !== p4) return n12; 7527 if (!r9 && (V2(e13), e13 = e13 || T2, C2)) { 7528 if (11 !== p4 && (u7 = L2.exec(t13))) if (i12 = u7[1]) { 7529 if (9 === p4) { 7530 if (!(a10 = e13.getElementById(i12))) return n12; 7531 if (a10.id === i12) return k4.call(n12, a10), n12; 7532 } else if (f5 && (a10 = f5.getElementById(i12)) && I3.contains(e13, a10) && a10.id === i12) return k4.call(n12, a10), n12; 7533 } else { 7534 if (u7[2]) return k4.apply(n12, e13.getElementsByTagName(t13)), n12; 7535 if ((i12 = u7[3]) && e13.getElementsByClassName) return k4.apply(n12, e13.getElementsByClassName(i12)), n12; 7536 } 7537 if (!(h5[t13 + " "] || d4 && d4.test(t13))) { 7538 if (c7 = t13, f5 = e13, 1 === p4 && (x3.test(t13) || m4.test(t13))) { 7539 (f5 = H3.test(t13) && U2(e13.parentNode) || e13) == e13 && le.scope || ((s15 = e13.getAttribute("id")) ? s15 = ce.escapeSelector(s15) : e13.setAttribute("id", s15 = S2)), o13 = (l12 = Y2(t13)).length; 7540 while (o13--) l12[o13] = (s15 ? "#" + s15 : ":scope") + " " + Q2(l12[o13]); 7541 c7 = l12.join(","); 7542 } 7543 try { 7544 return k4.apply(n12, f5.querySelectorAll(c7)), n12; 7545 } catch (e14) { 7546 h5(t13, true); 7547 } finally { 7548 s15 === S2 && e13.removeAttribute("id"); 7549 } 7550 } 7551 } 7552 return re2(t13.replace(ve, "$1"), e13, n12, r9); 7553 } 7554 function W2() { 7555 var r9 = []; 7556 return function e13(t13, n12) { 7557 return r9.push(t13 + " ") > b4.cacheLength && delete e13[r9.shift()], e13[t13 + " "] = n12; 7558 }; 7559 } 7560 function F2(e13) { 7561 return e13[S2] = true, e13; 7562 } 7563 function $5(e13) { 7564 var t13 = T2.createElement("fieldset"); 7565 try { 7566 return !!e13(t13); 7567 } catch (e14) { 7568 return false; 7569 } finally { 7570 t13.parentNode && t13.parentNode.removeChild(t13), t13 = null; 7571 } 7572 } 7573 function B3(t13) { 7574 return function(e13) { 7575 return fe(e13, "input") && e13.type === t13; 7576 }; 7577 } 7578 function _3(t13) { 7579 return function(e13) { 7580 return (fe(e13, "input") || fe(e13, "button")) && e13.type === t13; 7581 }; 7582 } 7583 function z3(t13) { 7584 return function(e13) { 7585 return "form" in e13 ? e13.parentNode && false === e13.disabled ? "label" in e13 ? "label" in e13.parentNode ? e13.parentNode.disabled === t13 : e13.disabled === t13 : e13.isDisabled === t13 || e13.isDisabled !== !t13 && R3(e13) === t13 : e13.disabled === t13 : "label" in e13 && e13.disabled === t13; 7586 }; 7587 } 7588 function X2(a10) { 7589 return F2(function(o13) { 7590 return o13 = +o13, F2(function(e13, t13) { 7591 var n12, r9 = a10([], e13.length, o13), i12 = r9.length; 7592 while (i12--) e13[n12 = r9[i12]] && (e13[n12] = !(t13[n12] = e13[n12])); 7593 }); 7594 }); 7595 } 7596 function U2(e13) { 7597 return e13 && "undefined" != typeof e13.getElementsByTagName && e13; 7598 } 7599 function V2(e13) { 7600 var t13, n12 = e13 ? e13.ownerDocument || e13 : ye; 7601 return n12 != T2 && 9 === n12.nodeType && n12.documentElement && (r8 = (T2 = n12).documentElement, C2 = !ce.isXMLDoc(T2), i11 = r8.matches || r8.webkitMatchesSelector || r8.msMatchesSelector, r8.msMatchesSelector && ye != T2 && (t13 = T2.defaultView) && t13.top !== t13 && t13.addEventListener("unload", M4), le.getById = $5(function(e14) { 7602 return r8.appendChild(e14).id = ce.expando, !T2.getElementsByName || !T2.getElementsByName(ce.expando).length; 7603 }), le.disconnectedMatch = $5(function(e14) { 7604 return i11.call(e14, "*"); 7605 }), le.scope = $5(function() { 7606 return T2.querySelectorAll(":scope"); 7607 }), le.cssHas = $5(function() { 7608 try { 7609 return T2.querySelector(":has(*,:jqfake)"), false; 7610 } catch (e14) { 7611 return true; 7612 } 7613 }), le.getById ? (b4.filter.ID = function(e14) { 7614 var t14 = e14.replace(O3, P2); 7615 return function(e15) { 7616 return e15.getAttribute("id") === t14; 7617 }; 7618 }, b4.find.ID = function(e14, t14) { 7619 if ("undefined" != typeof t14.getElementById && C2) { 7620 var n13 = t14.getElementById(e14); 7621 return n13 ? [n13] : []; 7622 } 7623 }) : (b4.filter.ID = function(e14) { 7624 var n13 = e14.replace(O3, P2); 7625 return function(e15) { 7626 var t14 = "undefined" != typeof e15.getAttributeNode && e15.getAttributeNode("id"); 7627 return t14 && t14.value === n13; 7628 }; 7629 }, b4.find.ID = function(e14, t14) { 7630 if ("undefined" != typeof t14.getElementById && C2) { 7631 var n13, r9, i12, o13 = t14.getElementById(e14); 7632 if (o13) { 7633 if ((n13 = o13.getAttributeNode("id")) && n13.value === e14) return [o13]; 7634 i12 = t14.getElementsByName(e14), r9 = 0; 7635 while (o13 = i12[r9++]) if ((n13 = o13.getAttributeNode("id")) && n13.value === e14) return [o13]; 7636 } 7637 return []; 7638 } 7639 }), b4.find.TAG = function(e14, t14) { 7640 return "undefined" != typeof t14.getElementsByTagName ? t14.getElementsByTagName(e14) : t14.querySelectorAll(e14); 7641 }, b4.find.CLASS = function(e14, t14) { 7642 if ("undefined" != typeof t14.getElementsByClassName && C2) return t14.getElementsByClassName(e14); 7643 }, d4 = [], $5(function(e14) { 7644 var t14; 7645 r8.appendChild(e14).innerHTML = "<a id='" + S2 + "' href='' disabled='disabled'></a><select id='" + S2 + "-\r\\' disabled='disabled'><option selected=''></option></select>", e14.querySelectorAll("[selected]").length || d4.push("\\[" + ge + "*(?:value|" + f4 + ")"), e14.querySelectorAll("[id~=" + S2 + "-]").length || d4.push("~="), e14.querySelectorAll("a#" + S2 + "+*").length || d4.push(".#.+[+~]"), e14.querySelectorAll(":checked").length || d4.push(":checked"), (t14 = T2.createElement("input")).setAttribute("type", "hidden"), e14.appendChild(t14).setAttribute("name", "D"), r8.appendChild(e14).disabled = true, 2 !== e14.querySelectorAll(":disabled").length && d4.push(":enabled", ":disabled"), (t14 = T2.createElement("input")).setAttribute("name", ""), e14.appendChild(t14), e14.querySelectorAll("[name='']").length || d4.push("\\[" + ge + "*name" + ge + "*=" + ge + `*(?:''|"")`); 7646 }), le.cssHas || d4.push(":has"), d4 = d4.length && new RegExp(d4.join("|")), l11 = function(e14, t14) { 7647 if (e14 === t14) return a9 = true, 0; 7648 var n13 = !e14.compareDocumentPosition - !t14.compareDocumentPosition; 7649 return n13 || (1 & (n13 = (e14.ownerDocument || e14) == (t14.ownerDocument || t14) ? e14.compareDocumentPosition(t14) : 1) || !le.sortDetached && t14.compareDocumentPosition(e14) === n13 ? e14 === T2 || e14.ownerDocument == ye && I3.contains(ye, e14) ? -1 : t14 === T2 || t14.ownerDocument == ye && I3.contains(ye, t14) ? 1 : o12 ? se.call(o12, e14) - se.call(o12, t14) : 0 : 4 & n13 ? -1 : 1); 7650 }), T2; 7651 } 7652 for (e12 in I3.matches = function(e13, t13) { 7653 return I3(e13, null, null, t13); 7654 }, I3.matchesSelector = function(e13, t13) { 7655 if (V2(e13), C2 && !h5[t13 + " "] && (!d4 || !d4.test(t13))) try { 7656 var n12 = i11.call(e13, t13); 7657 if (n12 || le.disconnectedMatch || e13.document && 11 !== e13.document.nodeType) return n12; 7658 } catch (e14) { 7659 h5(t13, true); 7660 } 7661 return 0 < I3(t13, T2, null, [e13]).length; 7662 }, I3.contains = function(e13, t13) { 7663 return (e13.ownerDocument || e13) != T2 && V2(e13), ce.contains(e13, t13); 7664 }, I3.attr = function(e13, t13) { 7665 (e13.ownerDocument || e13) != T2 && V2(e13); 7666 var n12 = b4.attrHandle[t13.toLowerCase()], r9 = n12 && ue.call(b4.attrHandle, t13.toLowerCase()) ? n12(e13, t13, !C2) : void 0; 7667 return void 0 !== r9 ? r9 : e13.getAttribute(t13); 7668 }, I3.error = function(e13) { 7669 throw new Error("Syntax error, unrecognized expression: " + e13); 7670 }, ce.uniqueSort = function(e13) { 7671 var t13, n12 = [], r9 = 0, i12 = 0; 7672 if (a9 = !le.sortStable, o12 = !le.sortStable && ae.call(e13, 0), de.call(e13, l11), a9) { 7673 while (t13 = e13[i12++]) t13 === e13[i12] && (r9 = n12.push(i12)); 7674 while (r9--) he.call(e13, n12[r9], 1); 7675 } 7676 return o12 = null, e13; 7677 }, ce.fn.uniqueSort = function() { 7678 return this.pushStack(ce.uniqueSort(ae.apply(this))); 7679 }, (b4 = ce.expr = { cacheLength: 50, createPseudo: F2, match: D3, attrHandle: {}, find: {}, relative: { ">": { dir: "parentNode", first: true }, " ": { dir: "parentNode" }, "+": { dir: "previousSibling", first: true }, "~": { dir: "previousSibling" } }, preFilter: { ATTR: function(e13) { 7680 return e13[1] = e13[1].replace(O3, P2), e13[3] = (e13[3] || e13[4] || e13[5] || "").replace(O3, P2), "~=" === e13[2] && (e13[3] = " " + e13[3] + " "), e13.slice(0, 4); 7681 }, CHILD: function(e13) { 7682 return e13[1] = e13[1].toLowerCase(), "nth" === e13[1].slice(0, 3) ? (e13[3] || I3.error(e13[0]), e13[4] = +(e13[4] ? e13[5] + (e13[6] || 1) : 2 * ("even" === e13[3] || "odd" === e13[3])), e13[5] = +(e13[7] + e13[8] || "odd" === e13[3])) : e13[3] && I3.error(e13[0]), e13; 7683 }, PSEUDO: function(e13) { 7684 var t13, n12 = !e13[6] && e13[2]; 7685 return D3.CHILD.test(e13[0]) ? null : (e13[3] ? e13[2] = e13[4] || e13[5] || "" : n12 && j3.test(n12) && (t13 = Y2(n12, true)) && (t13 = n12.indexOf(")", n12.length - t13) - n12.length) && (e13[0] = e13[0].slice(0, t13), e13[2] = n12.slice(0, t13)), e13.slice(0, 3)); 7686 } }, filter: { TAG: function(e13) { 7687 var t13 = e13.replace(O3, P2).toLowerCase(); 7688 return "*" === e13 ? function() { 7689 return true; 7690 } : function(e14) { 7691 return fe(e14, t13); 7692 }; 7693 }, CLASS: function(e13) { 7694 var t13 = s14[e13 + " "]; 7695 return t13 || (t13 = new RegExp("(^|" + ge + ")" + e13 + "(" + ge + "|$)")) && s14(e13, function(e14) { 7696 return t13.test("string" == typeof e14.className && e14.className || "undefined" != typeof e14.getAttribute && e14.getAttribute("class") || ""); 7697 }); 7698 }, ATTR: function(n12, r9, i12) { 7699 return function(e13) { 7700 var t13 = I3.attr(e13, n12); 7701 return null == t13 ? "!=" === r9 : !r9 || (t13 += "", "=" === r9 ? t13 === i12 : "!=" === r9 ? t13 !== i12 : "^=" === r9 ? i12 && 0 === t13.indexOf(i12) : "*=" === r9 ? i12 && -1 < t13.indexOf(i12) : "$=" === r9 ? i12 && t13.slice(-i12.length) === i12 : "~=" === r9 ? -1 < (" " + t13.replace(v4, " ") + " ").indexOf(i12) : "|=" === r9 && (t13 === i12 || t13.slice(0, i12.length + 1) === i12 + "-")); 7702 }; 7703 }, CHILD: function(d5, e13, t13, h6, g4) { 7704 var v5 = "nth" !== d5.slice(0, 3), y5 = "last" !== d5.slice(-4), m5 = "of-type" === e13; 7705 return 1 === h6 && 0 === g4 ? function(e14) { 7706 return !!e14.parentNode; 7707 } : function(e14, t14, n12) { 7708 var r9, i12, o13, a10, s15, u7 = v5 !== y5 ? "nextSibling" : "previousSibling", l12 = e14.parentNode, c7 = m5 && e14.nodeName.toLowerCase(), f5 = !n12 && !m5, p4 = false; 7709 if (l12) { 7710 if (v5) { 7711 while (u7) { 7712 o13 = e14; 7713 while (o13 = o13[u7]) if (m5 ? fe(o13, c7) : 1 === o13.nodeType) return false; 7714 s15 = u7 = "only" === d5 && !s15 && "nextSibling"; 7715 } 7716 return true; 7717 } 7718 if (s15 = [y5 ? l12.firstChild : l12.lastChild], y5 && f5) { 7719 p4 = (a10 = (r9 = (i12 = l12[S2] || (l12[S2] = {}))[d5] || [])[0] === E4 && r9[1]) && r9[2], o13 = a10 && l12.childNodes[a10]; 7720 while (o13 = ++a10 && o13 && o13[u7] || (p4 = a10 = 0) || s15.pop()) if (1 === o13.nodeType && ++p4 && o13 === e14) { 7721 i12[d5] = [E4, a10, p4]; 7722 break; 7723 } 7724 } else if (f5 && (p4 = a10 = (r9 = (i12 = e14[S2] || (e14[S2] = {}))[d5] || [])[0] === E4 && r9[1]), false === p4) { 7725 while (o13 = ++a10 && o13 && o13[u7] || (p4 = a10 = 0) || s15.pop()) if ((m5 ? fe(o13, c7) : 1 === o13.nodeType) && ++p4 && (f5 && ((i12 = o13[S2] || (o13[S2] = {}))[d5] = [E4, p4]), o13 === e14)) break; 7726 } 7727 return (p4 -= g4) === h6 || p4 % h6 == 0 && 0 <= p4 / h6; 7728 } 7729 }; 7730 }, PSEUDO: function(e13, o13) { 7731 var t13, a10 = b4.pseudos[e13] || b4.setFilters[e13.toLowerCase()] || I3.error("unsupported pseudo: " + e13); 7732 return a10[S2] ? a10(o13) : 1 < a10.length ? (t13 = [e13, e13, "", o13], b4.setFilters.hasOwnProperty(e13.toLowerCase()) ? F2(function(e14, t14) { 7733 var n12, r9 = a10(e14, o13), i12 = r9.length; 7734 while (i12--) e14[n12 = se.call(e14, r9[i12])] = !(t14[n12] = r9[i12]); 7735 }) : function(e14) { 7736 return a10(e14, 0, t13); 7737 }) : a10; 7738 } }, pseudos: { not: F2(function(e13) { 7739 var r9 = [], i12 = [], s15 = ne2(e13.replace(ve, "$1")); 7740 return s15[S2] ? F2(function(e14, t13, n12, r10) { 7741 var i13, o13 = s15(e14, null, r10, []), a10 = e14.length; 7742 while (a10--) (i13 = o13[a10]) && (e14[a10] = !(t13[a10] = i13)); 7743 }) : function(e14, t13, n12) { 7744 return r9[0] = e14, s15(r9, null, n12, i12), r9[0] = null, !i12.pop(); 7745 }; 7746 }), has: F2(function(t13) { 7747 return function(e13) { 7748 return 0 < I3(t13, e13).length; 7749 }; 7750 }), contains: F2(function(t13) { 7751 return t13 = t13.replace(O3, P2), function(e13) { 7752 return -1 < (e13.textContent || ce.text(e13)).indexOf(t13); 7753 }; 7754 }), lang: F2(function(n12) { 7755 return A3.test(n12 || "") || I3.error("unsupported lang: " + n12), n12 = n12.replace(O3, P2).toLowerCase(), function(e13) { 7756 var t13; 7757 do { 7758 if (t13 = C2 ? e13.lang : e13.getAttribute("xml:lang") || e13.getAttribute("lang")) return (t13 = t13.toLowerCase()) === n12 || 0 === t13.indexOf(n12 + "-"); 7759 } while ((e13 = e13.parentNode) && 1 === e13.nodeType); 7760 return false; 7761 }; 7762 }), target: function(e13) { 7763 var t13 = ie.location && ie.location.hash; 7764 return t13 && t13.slice(1) === e13.id; 7765 }, root: function(e13) { 7766 return e13 === r8; 7767 }, focus: function(e13) { 7768 return e13 === (function() { 7769 try { 7770 return T2.activeElement; 7771 } catch (e14) { 7772 } 7773 })() && T2.hasFocus() && !!(e13.type || e13.href || ~e13.tabIndex); 7774 }, enabled: z3(false), disabled: z3(true), checked: function(e13) { 7775 return fe(e13, "input") && !!e13.checked || fe(e13, "option") && !!e13.selected; 7776 }, selected: function(e13) { 7777 return e13.parentNode && e13.parentNode.selectedIndex, true === e13.selected; 7778 }, empty: function(e13) { 7779 for (e13 = e13.firstChild; e13; e13 = e13.nextSibling) if (e13.nodeType < 6) return false; 7780 return true; 7781 }, parent: function(e13) { 7782 return !b4.pseudos.empty(e13); 7783 }, header: function(e13) { 7784 return q3.test(e13.nodeName); 7785 }, input: function(e13) { 7786 return N3.test(e13.nodeName); 7787 }, button: function(e13) { 7788 return fe(e13, "input") && "button" === e13.type || fe(e13, "button"); 7789 }, text: function(e13) { 7790 var t13; 7791 return fe(e13, "input") && "text" === e13.type && (null == (t13 = e13.getAttribute("type")) || "text" === t13.toLowerCase()); 7792 }, first: X2(function() { 7793 return [0]; 7794 }), last: X2(function(e13, t13) { 7795 return [t13 - 1]; 7796 }), eq: X2(function(e13, t13, n12) { 7797 return [n12 < 0 ? n12 + t13 : n12]; 7798 }), even: X2(function(e13, t13) { 7799 for (var n12 = 0; n12 < t13; n12 += 2) e13.push(n12); 7800 return e13; 7801 }), odd: X2(function(e13, t13) { 7802 for (var n12 = 1; n12 < t13; n12 += 2) e13.push(n12); 7803 return e13; 7804 }), lt: X2(function(e13, t13, n12) { 7805 var r9; 7806 for (r9 = n12 < 0 ? n12 + t13 : t13 < n12 ? t13 : n12; 0 <= --r9; ) e13.push(r9); 7807 return e13; 7808 }), gt: X2(function(e13, t13, n12) { 7809 for (var r9 = n12 < 0 ? n12 + t13 : n12; ++r9 < t13; ) e13.push(r9); 7810 return e13; 7811 }) } }).pseudos.nth = b4.pseudos.eq, { radio: true, checkbox: true, file: true, password: true, image: true }) b4.pseudos[e12] = B3(e12); 7812 for (e12 in { submit: true, reset: true }) b4.pseudos[e12] = _3(e12); 7813 function G2() { 7814 } 7815 function Y2(e13, t13) { 7816 var n12, r9, i12, o13, a10, s15, u7, l12 = c6[e13 + " "]; 7817 if (l12) return t13 ? 0 : l12.slice(0); 7818 a10 = e13, s15 = [], u7 = b4.preFilter; 7819 while (a10) { 7820 for (o13 in n12 && !(r9 = y4.exec(a10)) || (r9 && (a10 = a10.slice(r9[0].length) || a10), s15.push(i12 = [])), n12 = false, (r9 = m4.exec(a10)) && (n12 = r9.shift(), i12.push({ value: n12, type: r9[0].replace(ve, " ") }), a10 = a10.slice(n12.length)), b4.filter) !(r9 = D3[o13].exec(a10)) || u7[o13] && !(r9 = u7[o13](r9)) || (n12 = r9.shift(), i12.push({ value: n12, type: o13, matches: r9 }), a10 = a10.slice(n12.length)); 7821 if (!n12) break; 7822 } 7823 return t13 ? a10.length : a10 ? I3.error(e13) : c6(e13, s15).slice(0); 7824 } 7825 function Q2(e13) { 7826 for (var t13 = 0, n12 = e13.length, r9 = ""; t13 < n12; t13++) r9 += e13[t13].value; 7827 return r9; 7828 } 7829 function J2(a10, e13, t13) { 7830 var s15 = e13.dir, u7 = e13.next, l12 = u7 || s15, c7 = t13 && "parentNode" === l12, f5 = n11++; 7831 return e13.first ? function(e14, t14, n12) { 7832 while (e14 = e14[s15]) if (1 === e14.nodeType || c7) return a10(e14, t14, n12); 7833 return false; 7834 } : function(e14, t14, n12) { 7835 var r9, i12, o13 = [E4, f5]; 7836 if (n12) { 7837 while (e14 = e14[s15]) if ((1 === e14.nodeType || c7) && a10(e14, t14, n12)) return true; 7838 } else while (e14 = e14[s15]) if (1 === e14.nodeType || c7) if (i12 = e14[S2] || (e14[S2] = {}), u7 && fe(e14, u7)) e14 = e14[s15] || e14; 7839 else { 7840 if ((r9 = i12[l12]) && r9[0] === E4 && r9[1] === f5) return o13[2] = r9[2]; 7841 if ((i12[l12] = o13)[2] = a10(e14, t14, n12)) return true; 7842 } 7843 return false; 7844 }; 7845 } 7846 function K2(i12) { 7847 return 1 < i12.length ? function(e13, t13, n12) { 7848 var r9 = i12.length; 7849 while (r9--) if (!i12[r9](e13, t13, n12)) return false; 7850 return true; 7851 } : i12[0]; 7852 } 7853 function Z2(e13, t13, n12, r9, i12) { 7854 for (var o13, a10 = [], s15 = 0, u7 = e13.length, l12 = null != t13; s15 < u7; s15++) (o13 = e13[s15]) && (n12 && !n12(o13, r9, i12) || (a10.push(o13), l12 && t13.push(s15))); 7855 return a10; 7856 } 7857 function ee2(d5, h6, g4, v5, y5, e13) { 7858 return v5 && !v5[S2] && (v5 = ee2(v5)), y5 && !y5[S2] && (y5 = ee2(y5, e13)), F2(function(e14, t13, n12, r9) { 7859 var i12, o13, a10, s15, u7 = [], l12 = [], c7 = t13.length, f5 = e14 || (function(e15, t14, n13) { 7860 for (var r10 = 0, i13 = t14.length; r10 < i13; r10++) I3(e15, t14[r10], n13); 7861 return n13; 7862 })(h6 || "*", n12.nodeType ? [n12] : n12, []), p4 = !d5 || !e14 && h6 ? f5 : Z2(f5, u7, d5, n12, r9); 7863 if (g4 ? g4(p4, s15 = y5 || (e14 ? d5 : c7 || v5) ? [] : t13, n12, r9) : s15 = p4, v5) { 7864 i12 = Z2(s15, l12), v5(i12, [], n12, r9), o13 = i12.length; 7865 while (o13--) (a10 = i12[o13]) && (s15[l12[o13]] = !(p4[l12[o13]] = a10)); 7866 } 7867 if (e14) { 7868 if (y5 || d5) { 7869 if (y5) { 7870 i12 = [], o13 = s15.length; 7871 while (o13--) (a10 = s15[o13]) && i12.push(p4[o13] = a10); 7872 y5(null, s15 = [], i12, r9); 7873 } 7874 o13 = s15.length; 7875 while (o13--) (a10 = s15[o13]) && -1 < (i12 = y5 ? se.call(e14, a10) : u7[o13]) && (e14[i12] = !(t13[i12] = a10)); 7876 } 7877 } else s15 = Z2(s15 === t13 ? s15.splice(c7, s15.length) : s15), y5 ? y5(null, t13, s15, r9) : k4.apply(t13, s15); 7878 }); 7879 } 7880 function te2(e13) { 7881 for (var i12, t13, n12, r9 = e13.length, o13 = b4.relative[e13[0].type], a10 = o13 || b4.relative[" "], s15 = o13 ? 1 : 0, u7 = J2(function(e14) { 7882 return e14 === i12; 7883 }, a10, true), l12 = J2(function(e14) { 7884 return -1 < se.call(i12, e14); 7885 }, a10, true), c7 = [function(e14, t14, n13) { 7886 var r10 = !o13 && (n13 || t14 != w4) || ((i12 = t14).nodeType ? u7(e14, t14, n13) : l12(e14, t14, n13)); 7887 return i12 = null, r10; 7888 }]; s15 < r9; s15++) if (t13 = b4.relative[e13[s15].type]) c7 = [J2(K2(c7), t13)]; 7889 else { 7890 if ((t13 = b4.filter[e13[s15].type].apply(null, e13[s15].matches))[S2]) { 7891 for (n12 = ++s15; n12 < r9; n12++) if (b4.relative[e13[n12].type]) break; 7892 return ee2(1 < s15 && K2(c7), 1 < s15 && Q2(e13.slice(0, s15 - 1).concat({ value: " " === e13[s15 - 2].type ? "*" : "" })).replace(ve, "$1"), t13, s15 < n12 && te2(e13.slice(s15, n12)), n12 < r9 && te2(e13 = e13.slice(n12)), n12 < r9 && Q2(e13)); 7893 } 7894 c7.push(t13); 7895 } 7896 return K2(c7); 7897 } 7898 function ne2(e13, t13) { 7899 var n12, v5, y5, m5, x4, r9, i12 = [], o13 = [], a10 = u6[e13 + " "]; 7900 if (!a10) { 7901 t13 || (t13 = Y2(e13)), n12 = t13.length; 7902 while (n12--) (a10 = te2(t13[n12]))[S2] ? i12.push(a10) : o13.push(a10); 7903 (a10 = u6(e13, (v5 = o13, m5 = 0 < (y5 = i12).length, x4 = 0 < v5.length, r9 = function(e14, t14, n13, r10, i13) { 7904 var o14, a11, s15, u7 = 0, l12 = "0", c7 = e14 && [], f5 = [], p4 = w4, d5 = e14 || x4 && b4.find.TAG("*", i13), h6 = E4 += null == p4 ? 1 : Math.random() || 0.1, g4 = d5.length; 7905 for (i13 && (w4 = t14 == T2 || t14 || i13); l12 !== g4 && null != (o14 = d5[l12]); l12++) { 7906 if (x4 && o14) { 7907 a11 = 0, t14 || o14.ownerDocument == T2 || (V2(o14), n13 = !C2); 7908 while (s15 = v5[a11++]) if (s15(o14, t14 || T2, n13)) { 7909 k4.call(r10, o14); 7910 break; 7911 } 7912 i13 && (E4 = h6); 7913 } 7914 m5 && ((o14 = !s15 && o14) && u7--, e14 && c7.push(o14)); 7915 } 7916 if (u7 += l12, m5 && l12 !== u7) { 7917 a11 = 0; 7918 while (s15 = y5[a11++]) s15(c7, f5, t14, n13); 7919 if (e14) { 7920 if (0 < u7) while (l12--) c7[l12] || f5[l12] || (f5[l12] = pe.call(r10)); 7921 f5 = Z2(f5); 7922 } 7923 k4.apply(r10, f5), i13 && !e14 && 0 < f5.length && 1 < u7 + y5.length && ce.uniqueSort(r10); 7924 } 7925 return i13 && (E4 = h6, w4 = p4), c7; 7926 }, m5 ? F2(r9) : r9))).selector = e13; 7927 } 7928 return a10; 7929 } 7930 function re2(e13, t13, n12, r9) { 7931 var i12, o13, a10, s15, u7, l12 = "function" == typeof e13 && e13, c7 = !r9 && Y2(e13 = l12.selector || e13); 7932 if (n12 = n12 || [], 1 === c7.length) { 7933 if (2 < (o13 = c7[0] = c7[0].slice(0)).length && "ID" === (a10 = o13[0]).type && 9 === t13.nodeType && C2 && b4.relative[o13[1].type]) { 7934 if (!(t13 = (b4.find.ID(a10.matches[0].replace(O3, P2), t13) || [])[0])) return n12; 7935 l12 && (t13 = t13.parentNode), e13 = e13.slice(o13.shift().value.length); 7936 } 7937 i12 = D3.needsContext.test(e13) ? 0 : o13.length; 7938 while (i12--) { 7939 if (a10 = o13[i12], b4.relative[s15 = a10.type]) break; 7940 if ((u7 = b4.find[s15]) && (r9 = u7(a10.matches[0].replace(O3, P2), H3.test(o13[0].type) && U2(t13.parentNode) || t13))) { 7941 if (o13.splice(i12, 1), !(e13 = r9.length && Q2(o13))) return k4.apply(n12, r9), n12; 7942 break; 7943 } 7944 } 7945 } 7946 return (l12 || ne2(e13, c7))(r9, t13, !C2, n12, !t13 || H3.test(e13) && U2(t13.parentNode) || t13), n12; 7947 } 7948 G2.prototype = b4.filters = b4.pseudos, b4.setFilters = new G2(), le.sortStable = S2.split("").sort(l11).join("") === S2, V2(), le.sortDetached = $5(function(e13) { 7949 return 1 & e13.compareDocumentPosition(T2.createElement("fieldset")); 7950 }), ce.find = I3, ce.expr[":"] = ce.expr.pseudos, ce.unique = ce.uniqueSort, I3.compile = ne2, I3.select = re2, I3.setDocument = V2, I3.tokenize = Y2, I3.escape = ce.escapeSelector, I3.getText = ce.text, I3.isXML = ce.isXMLDoc, I3.selectors = ce.expr, I3.support = ce.support, I3.uniqueSort = ce.uniqueSort; 7951 })(); 7952 var d3 = function(e12, t12, n11) { 7953 var r8 = [], i11 = void 0 !== n11; 7954 while ((e12 = e12[t12]) && 9 !== e12.nodeType) if (1 === e12.nodeType) { 7955 if (i11 && ce(e12).is(n11)) break; 7956 r8.push(e12); 7957 } 7958 return r8; 7959 }, h4 = function(e12, t12) { 7960 for (var n11 = []; e12; e12 = e12.nextSibling) 1 === e12.nodeType && e12 !== t12 && n11.push(e12); 7961 return n11; 7962 }, b3 = ce.expr.match.needsContext, w3 = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; 7963 function T(e12, n11, r8) { 7964 return v3(n11) ? ce.grep(e12, function(e13, t12) { 7965 return !!n11.call(e13, t12, e13) !== r8; 7966 }) : n11.nodeType ? ce.grep(e12, function(e13) { 7967 return e13 === n11 !== r8; 7968 }) : "string" != typeof n11 ? ce.grep(e12, function(e13) { 7969 return -1 < se.call(n11, e13) !== r8; 7970 }) : ce.filter(n11, e12, r8); 7971 } 7972 ce.filter = function(e12, t12, n11) { 7973 var r8 = t12[0]; 7974 return n11 && (e12 = ":not(" + e12 + ")"), 1 === t12.length && 1 === r8.nodeType ? ce.find.matchesSelector(r8, e12) ? [r8] : [] : ce.find.matches(e12, ce.grep(t12, function(e13) { 7975 return 1 === e13.nodeType; 7976 })); 7977 }, ce.fn.extend({ find: function(e12) { 7978 var t12, n11, r8 = this.length, i11 = this; 7979 if ("string" != typeof e12) return this.pushStack(ce(e12).filter(function() { 7980 for (t12 = 0; t12 < r8; t12++) if (ce.contains(i11[t12], this)) return true; 7981 })); 7982 for (n11 = this.pushStack([]), t12 = 0; t12 < r8; t12++) ce.find(e12, i11[t12], n11); 7983 return 1 < r8 ? ce.uniqueSort(n11) : n11; 7984 }, filter: function(e12) { 7985 return this.pushStack(T(this, e12 || [], false)); 7986 }, not: function(e12) { 7987 return this.pushStack(T(this, e12 || [], true)); 7988 }, is: function(e12) { 7989 return !!T(this, "string" == typeof e12 && b3.test(e12) ? ce(e12) : e12 || [], false).length; 7990 } }); 7991 var k3, S = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/; 7992 (ce.fn.init = function(e12, t12, n11) { 7993 var r8, i11; 7994 if (!e12) return this; 7995 if (n11 = n11 || k3, "string" == typeof e12) { 7996 if (!(r8 = "<" === e12[0] && ">" === e12[e12.length - 1] && 3 <= e12.length ? [null, e12, null] : S.exec(e12)) || !r8[1] && t12) return !t12 || t12.jquery ? (t12 || n11).find(e12) : this.constructor(t12).find(e12); 7997 if (r8[1]) { 7998 if (t12 = t12 instanceof ce ? t12[0] : t12, ce.merge(this, ce.parseHTML(r8[1], t12 && t12.nodeType ? t12.ownerDocument || t12 : C, true)), w3.test(r8[1]) && ce.isPlainObject(t12)) for (r8 in t12) v3(this[r8]) ? this[r8](t12[r8]) : this.attr(r8, t12[r8]); 7999 return this; 8000 } 8001 return (i11 = C.getElementById(r8[2])) && (this[0] = i11, this.length = 1), this; 8002 } 8003 return e12.nodeType ? (this[0] = e12, this.length = 1, this) : v3(e12) ? void 0 !== n11.ready ? n11.ready(e12) : e12(ce) : ce.makeArray(e12, this); 8004 }).prototype = ce.fn, k3 = ce(C); 8005 var E3 = /^(?:parents|prev(?:Until|All))/, j2 = { children: true, contents: true, next: true, prev: true }; 8006 function A2(e12, t12) { 8007 while ((e12 = e12[t12]) && 1 !== e12.nodeType) ; 8008 return e12; 8009 } 8010 ce.fn.extend({ has: function(e12) { 8011 var t12 = ce(e12, this), n11 = t12.length; 8012 return this.filter(function() { 8013 for (var e13 = 0; e13 < n11; e13++) if (ce.contains(this, t12[e13])) return true; 8014 }); 8015 }, closest: function(e12, t12) { 8016 var n11, r8 = 0, i11 = this.length, o12 = [], a9 = "string" != typeof e12 && ce(e12); 8017 if (!b3.test(e12)) { 8018 for (; r8 < i11; r8++) for (n11 = this[r8]; n11 && n11 !== t12; n11 = n11.parentNode) if (n11.nodeType < 11 && (a9 ? -1 < a9.index(n11) : 1 === n11.nodeType && ce.find.matchesSelector(n11, e12))) { 8019 o12.push(n11); 8020 break; 8021 } 8022 } 8023 return this.pushStack(1 < o12.length ? ce.uniqueSort(o12) : o12); 8024 }, index: function(e12) { 8025 return e12 ? "string" == typeof e12 ? se.call(ce(e12), this[0]) : se.call(this, e12.jquery ? e12[0] : e12) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1; 8026 }, add: function(e12, t12) { 8027 return this.pushStack(ce.uniqueSort(ce.merge(this.get(), ce(e12, t12)))); 8028 }, addBack: function(e12) { 8029 return this.add(null == e12 ? this.prevObject : this.prevObject.filter(e12)); 8030 } }), ce.each({ parent: function(e12) { 8031 var t12 = e12.parentNode; 8032 return t12 && 11 !== t12.nodeType ? t12 : null; 8033 }, parents: function(e12) { 8034 return d3(e12, "parentNode"); 8035 }, parentsUntil: function(e12, t12, n11) { 8036 return d3(e12, "parentNode", n11); 8037 }, next: function(e12) { 8038 return A2(e12, "nextSibling"); 8039 }, prev: function(e12) { 8040 return A2(e12, "previousSibling"); 8041 }, nextAll: function(e12) { 8042 return d3(e12, "nextSibling"); 8043 }, prevAll: function(e12) { 8044 return d3(e12, "previousSibling"); 8045 }, nextUntil: function(e12, t12, n11) { 8046 return d3(e12, "nextSibling", n11); 8047 }, prevUntil: function(e12, t12, n11) { 8048 return d3(e12, "previousSibling", n11); 8049 }, siblings: function(e12) { 8050 return h4((e12.parentNode || {}).firstChild, e12); 8051 }, children: function(e12) { 8052 return h4(e12.firstChild); 8053 }, contents: function(e12) { 8054 return null != e12.contentDocument && r7(e12.contentDocument) ? e12.contentDocument : (fe(e12, "template") && (e12 = e12.content || e12), ce.merge([], e12.childNodes)); 8055 } }, function(r8, i11) { 8056 ce.fn[r8] = function(e12, t12) { 8057 var n11 = ce.map(this, i11, e12); 8058 return "Until" !== r8.slice(-5) && (t12 = e12), t12 && "string" == typeof t12 && (n11 = ce.filter(t12, n11)), 1 < this.length && (j2[r8] || ce.uniqueSort(n11), E3.test(r8) && n11.reverse()), this.pushStack(n11); 8059 }; 8060 }); 8061 var D2 = /[^\x20\t\r\n\f]+/g; 8062 function N2(e12) { 8063 return e12; 8064 } 8065 function q2(e12) { 8066 throw e12; 8067 } 8068 function L(e12, t12, n11, r8) { 8069 var i11; 8070 try { 8071 e12 && v3(i11 = e12.promise) ? i11.call(e12).done(t12).fail(n11) : e12 && v3(i11 = e12.then) ? i11.call(e12, t12, n11) : t12.apply(void 0, [e12].slice(r8)); 8072 } catch (e13) { 8073 n11.apply(void 0, [e13]); 8074 } 8075 } 8076 ce.Callbacks = function(r8) { 8077 var e12, n11; 8078 r8 = "string" == typeof r8 ? (e12 = r8, n11 = {}, ce.each(e12.match(D2) || [], function(e13, t13) { 8079 n11[t13] = true; 8080 }), n11) : ce.extend({}, r8); 8081 var i11, t12, o12, a9, s14 = [], u6 = [], l11 = -1, c6 = function() { 8082 for (a9 = a9 || r8.once, o12 = i11 = true; u6.length; l11 = -1) { 8083 t12 = u6.shift(); 8084 while (++l11 < s14.length) false === s14[l11].apply(t12[0], t12[1]) && r8.stopOnFalse && (l11 = s14.length, t12 = false); 8085 } 8086 r8.memory || (t12 = false), i11 = false, a9 && (s14 = t12 ? [] : ""); 8087 }, f4 = { add: function() { 8088 return s14 && (t12 && !i11 && (l11 = s14.length - 1, u6.push(t12)), (function n12(e13) { 8089 ce.each(e13, function(e14, t13) { 8090 v3(t13) ? r8.unique && f4.has(t13) || s14.push(t13) : t13 && t13.length && "string" !== x2(t13) && n12(t13); 8091 }); 8092 })(arguments), t12 && !i11 && c6()), this; 8093 }, remove: function() { 8094 return ce.each(arguments, function(e13, t13) { 8095 var n12; 8096 while (-1 < (n12 = ce.inArray(t13, s14, n12))) s14.splice(n12, 1), n12 <= l11 && l11--; 8097 }), this; 8098 }, has: function(e13) { 8099 return e13 ? -1 < ce.inArray(e13, s14) : 0 < s14.length; 8100 }, empty: function() { 8101 return s14 && (s14 = []), this; 8102 }, disable: function() { 8103 return a9 = u6 = [], s14 = t12 = "", this; 8104 }, disabled: function() { 8105 return !s14; 8106 }, lock: function() { 8107 return a9 = u6 = [], t12 || i11 || (s14 = t12 = ""), this; 8108 }, locked: function() { 8109 return !!a9; 8110 }, fireWith: function(e13, t13) { 8111 return a9 || (t13 = [e13, (t13 = t13 || []).slice ? t13.slice() : t13], u6.push(t13), i11 || c6()), this; 8112 }, fire: function() { 8113 return f4.fireWith(this, arguments), this; 8114 }, fired: function() { 8115 return !!o12; 8116 } }; 8117 return f4; 8118 }, ce.extend({ Deferred: function(e12) { 8119 var o12 = [["notify", "progress", ce.Callbacks("memory"), ce.Callbacks("memory"), 2], ["resolve", "done", ce.Callbacks("once memory"), ce.Callbacks("once memory"), 0, "resolved"], ["reject", "fail", ce.Callbacks("once memory"), ce.Callbacks("once memory"), 1, "rejected"]], i11 = "pending", a9 = { state: function() { 8120 return i11; 8121 }, always: function() { 8122 return s14.done(arguments).fail(arguments), this; 8123 }, "catch": function(e13) { 8124 return a9.then(null, e13); 8125 }, pipe: function() { 8126 var i12 = arguments; 8127 return ce.Deferred(function(r8) { 8128 ce.each(o12, function(e13, t12) { 8129 var n11 = v3(i12[t12[4]]) && i12[t12[4]]; 8130 s14[t12[1]](function() { 8131 var e14 = n11 && n11.apply(this, arguments); 8132 e14 && v3(e14.promise) ? e14.promise().progress(r8.notify).done(r8.resolve).fail(r8.reject) : r8[t12[0] + "With"](this, n11 ? [e14] : arguments); 8133 }); 8134 }), i12 = null; 8135 }).promise(); 8136 }, then: function(t12, n11, r8) { 8137 var u6 = 0; 8138 function l11(i12, o13, a10, s15) { 8139 return function() { 8140 var n12 = this, r9 = arguments, e13 = function() { 8141 var e14, t14; 8142 if (!(i12 < u6)) { 8143 if ((e14 = a10.apply(n12, r9)) === o13.promise()) throw new TypeError("Thenable self-resolution"); 8144 t14 = e14 && ("object" == typeof e14 || "function" == typeof e14) && e14.then, v3(t14) ? s15 ? t14.call(e14, l11(u6, o13, N2, s15), l11(u6, o13, q2, s15)) : (u6++, t14.call(e14, l11(u6, o13, N2, s15), l11(u6, o13, q2, s15), l11(u6, o13, N2, o13.notifyWith))) : (a10 !== N2 && (n12 = void 0, r9 = [e14]), (s15 || o13.resolveWith)(n12, r9)); 8145 } 8146 }, t13 = s15 ? e13 : function() { 8147 try { 8148 e13(); 8149 } catch (e14) { 8150 ce.Deferred.exceptionHook && ce.Deferred.exceptionHook(e14, t13.error), u6 <= i12 + 1 && (a10 !== q2 && (n12 = void 0, r9 = [e14]), o13.rejectWith(n12, r9)); 8151 } 8152 }; 8153 i12 ? t13() : (ce.Deferred.getErrorHook ? t13.error = ce.Deferred.getErrorHook() : ce.Deferred.getStackHook && (t13.error = ce.Deferred.getStackHook()), ie.setTimeout(t13)); 8154 }; 8155 } 8156 return ce.Deferred(function(e13) { 8157 o12[0][3].add(l11(0, e13, v3(r8) ? r8 : N2, e13.notifyWith)), o12[1][3].add(l11(0, e13, v3(t12) ? t12 : N2)), o12[2][3].add(l11(0, e13, v3(n11) ? n11 : q2)); 8158 }).promise(); 8159 }, promise: function(e13) { 8160 return null != e13 ? ce.extend(e13, a9) : a9; 8161 } }, s14 = {}; 8162 return ce.each(o12, function(e13, t12) { 8163 var n11 = t12[2], r8 = t12[5]; 8164 a9[t12[1]] = n11.add, r8 && n11.add(function() { 8165 i11 = r8; 8166 }, o12[3 - e13][2].disable, o12[3 - e13][3].disable, o12[0][2].lock, o12[0][3].lock), n11.add(t12[3].fire), s14[t12[0]] = function() { 8167 return s14[t12[0] + "With"](this === s14 ? void 0 : this, arguments), this; 8168 }, s14[t12[0] + "With"] = n11.fireWith; 8169 }), a9.promise(s14), e12 && e12.call(s14, s14), s14; 8170 }, when: function(e12) { 8171 var n11 = arguments.length, t12 = n11, r8 = Array(t12), i11 = ae.call(arguments), o12 = ce.Deferred(), a9 = function(t13) { 8172 return function(e13) { 8173 r8[t13] = this, i11[t13] = 1 < arguments.length ? ae.call(arguments) : e13, --n11 || o12.resolveWith(r8, i11); 8174 }; 8175 }; 8176 if (n11 <= 1 && (L(e12, o12.done(a9(t12)).resolve, o12.reject, !n11), "pending" === o12.state() || v3(i11[t12] && i11[t12].then))) return o12.then(); 8177 while (t12--) L(i11[t12], a9(t12), o12.reject); 8178 return o12.promise(); 8179 } }); 8180 var H2 = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; 8181 ce.Deferred.exceptionHook = function(e12, t12) { 8182 ie.console && ie.console.warn && e12 && H2.test(e12.name) && ie.console.warn("jQuery.Deferred exception: " + e12.message, e12.stack, t12); 8183 }, ce.readyException = function(e12) { 8184 ie.setTimeout(function() { 8185 throw e12; 8186 }); 8187 }; 8188 var O2 = ce.Deferred(); 8189 function P() { 8190 C.removeEventListener("DOMContentLoaded", P), ie.removeEventListener("load", P), ce.ready(); 8191 } 8192 ce.fn.ready = function(e12) { 8193 return O2.then(e12)["catch"](function(e13) { 8194 ce.readyException(e13); 8195 }), this; 8196 }, ce.extend({ isReady: false, readyWait: 1, ready: function(e12) { 8197 (true === e12 ? --ce.readyWait : ce.isReady) || (ce.isReady = true) !== e12 && 0 < --ce.readyWait || O2.resolveWith(C, [ce]); 8198 } }), ce.ready.then = O2.then, "complete" === C.readyState || "loading" !== C.readyState && !C.documentElement.doScroll ? ie.setTimeout(ce.ready) : (C.addEventListener("DOMContentLoaded", P), ie.addEventListener("load", P)); 8199 var M3 = function(e12, t12, n11, r8, i11, o12, a9) { 8200 var s14 = 0, u6 = e12.length, l11 = null == n11; 8201 if ("object" === x2(n11)) for (s14 in i11 = true, n11) M3(e12, t12, s14, n11[s14], true, o12, a9); 8202 else if (void 0 !== r8 && (i11 = true, v3(r8) || (a9 = true), l11 && (a9 ? (t12.call(e12, r8), t12 = null) : (l11 = t12, t12 = function(e13, t13, n12) { 8203 return l11.call(ce(e13), n12); 8204 })), t12)) for (; s14 < u6; s14++) t12(e12[s14], n11, a9 ? r8 : r8.call(e12[s14], s14, t12(e12[s14], n11))); 8205 return i11 ? e12 : l11 ? t12.call(e12) : u6 ? t12(e12[0], n11) : o12; 8206 }, R2 = /^-ms-/, I2 = /-([a-z])/g; 8207 function W(e12, t12) { 8208 return t12.toUpperCase(); 8209 } 8210 function F(e12) { 8211 return e12.replace(R2, "ms-").replace(I2, W); 8212 } 8213 var $4 = function(e12) { 8214 return 1 === e12.nodeType || 9 === e12.nodeType || !+e12.nodeType; 8215 }; 8216 function B2() { 8217 this.expando = ce.expando + B2.uid++; 8218 } 8219 B2.uid = 1, B2.prototype = { cache: function(e12) { 8220 var t12 = e12[this.expando]; 8221 return t12 || (t12 = {}, $4(e12) && (e12.nodeType ? e12[this.expando] = t12 : Object.defineProperty(e12, this.expando, { value: t12, configurable: true }))), t12; 8222 }, set: function(e12, t12, n11) { 8223 var r8, i11 = this.cache(e12); 8224 if ("string" == typeof t12) i11[F(t12)] = n11; 8225 else for (r8 in t12) i11[F(r8)] = t12[r8]; 8226 return i11; 8227 }, get: function(e12, t12) { 8228 return void 0 === t12 ? this.cache(e12) : e12[this.expando] && e12[this.expando][F(t12)]; 8229 }, access: function(e12, t12, n11) { 8230 return void 0 === t12 || t12 && "string" == typeof t12 && void 0 === n11 ? this.get(e12, t12) : (this.set(e12, t12, n11), void 0 !== n11 ? n11 : t12); 8231 }, remove: function(e12, t12) { 8232 var n11, r8 = e12[this.expando]; 8233 if (void 0 !== r8) { 8234 if (void 0 !== t12) { 8235 n11 = (t12 = Array.isArray(t12) ? t12.map(F) : (t12 = F(t12)) in r8 ? [t12] : t12.match(D2) || []).length; 8236 while (n11--) delete r8[t12[n11]]; 8237 } 8238 (void 0 === t12 || ce.isEmptyObject(r8)) && (e12.nodeType ? e12[this.expando] = void 0 : delete e12[this.expando]); 8239 } 8240 }, hasData: function(e12) { 8241 var t12 = e12[this.expando]; 8242 return void 0 !== t12 && !ce.isEmptyObject(t12); 8243 } }; 8244 var _2 = new B2(), z2 = new B2(), X = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, U = /[A-Z]/g; 8245 function V(e12, t12, n11) { 8246 var r8, i11; 8247 if (void 0 === n11 && 1 === e12.nodeType) if (r8 = "data-" + t12.replace(U, "-$&").toLowerCase(), "string" == typeof (n11 = e12.getAttribute(r8))) { 8248 try { 8249 n11 = "true" === (i11 = n11) || "false" !== i11 && ("null" === i11 ? null : i11 === +i11 + "" ? +i11 : X.test(i11) ? JSON.parse(i11) : i11); 8250 } catch (e13) { 8251 } 8252 z2.set(e12, t12, n11); 8253 } else n11 = void 0; 8254 return n11; 8255 } 8256 ce.extend({ hasData: function(e12) { 8257 return z2.hasData(e12) || _2.hasData(e12); 8258 }, data: function(e12, t12, n11) { 8259 return z2.access(e12, t12, n11); 8260 }, removeData: function(e12, t12) { 8261 z2.remove(e12, t12); 8262 }, _data: function(e12, t12, n11) { 8263 return _2.access(e12, t12, n11); 8264 }, _removeData: function(e12, t12) { 8265 _2.remove(e12, t12); 8266 } }), ce.fn.extend({ data: function(n11, e12) { 8267 var t12, r8, i11, o12 = this[0], a9 = o12 && o12.attributes; 8268 if (void 0 === n11) { 8269 if (this.length && (i11 = z2.get(o12), 1 === o12.nodeType && !_2.get(o12, "hasDataAttrs"))) { 8270 t12 = a9.length; 8271 while (t12--) a9[t12] && 0 === (r8 = a9[t12].name).indexOf("data-") && (r8 = F(r8.slice(5)), V(o12, r8, i11[r8])); 8272 _2.set(o12, "hasDataAttrs", true); 8273 } 8274 return i11; 8275 } 8276 return "object" == typeof n11 ? this.each(function() { 8277 z2.set(this, n11); 8278 }) : M3(this, function(e13) { 8279 var t13; 8280 if (o12 && void 0 === e13) return void 0 !== (t13 = z2.get(o12, n11)) ? t13 : void 0 !== (t13 = V(o12, n11)) ? t13 : void 0; 8281 this.each(function() { 8282 z2.set(this, n11, e13); 8283 }); 8284 }, null, e12, 1 < arguments.length, null, true); 8285 }, removeData: function(e12) { 8286 return this.each(function() { 8287 z2.remove(this, e12); 8288 }); 8289 } }), ce.extend({ queue: function(e12, t12, n11) { 8290 var r8; 8291 if (e12) return t12 = (t12 || "fx") + "queue", r8 = _2.get(e12, t12), n11 && (!r8 || Array.isArray(n11) ? r8 = _2.access(e12, t12, ce.makeArray(n11)) : r8.push(n11)), r8 || []; 8292 }, dequeue: function(e12, t12) { 8293 t12 = t12 || "fx"; 8294 var n11 = ce.queue(e12, t12), r8 = n11.length, i11 = n11.shift(), o12 = ce._queueHooks(e12, t12); 8295 "inprogress" === i11 && (i11 = n11.shift(), r8--), i11 && ("fx" === t12 && n11.unshift("inprogress"), delete o12.stop, i11.call(e12, function() { 8296 ce.dequeue(e12, t12); 8297 }, o12)), !r8 && o12 && o12.empty.fire(); 8298 }, _queueHooks: function(e12, t12) { 8299 var n11 = t12 + "queueHooks"; 8300 return _2.get(e12, n11) || _2.access(e12, n11, { empty: ce.Callbacks("once memory").add(function() { 8301 _2.remove(e12, [t12 + "queue", n11]); 8302 }) }); 8303 } }), ce.fn.extend({ queue: function(t12, n11) { 8304 var e12 = 2; 8305 return "string" != typeof t12 && (n11 = t12, t12 = "fx", e12--), arguments.length < e12 ? ce.queue(this[0], t12) : void 0 === n11 ? this : this.each(function() { 8306 var e13 = ce.queue(this, t12, n11); 8307 ce._queueHooks(this, t12), "fx" === t12 && "inprogress" !== e13[0] && ce.dequeue(this, t12); 8308 }); 8309 }, dequeue: function(e12) { 8310 return this.each(function() { 8311 ce.dequeue(this, e12); 8312 }); 8313 }, clearQueue: function(e12) { 8314 return this.queue(e12 || "fx", []); 8315 }, promise: function(e12, t12) { 8316 var n11, r8 = 1, i11 = ce.Deferred(), o12 = this, a9 = this.length, s14 = function() { 8317 --r8 || i11.resolveWith(o12, [o12]); 8318 }; 8319 "string" != typeof e12 && (t12 = e12, e12 = void 0), e12 = e12 || "fx"; 8320 while (a9--) (n11 = _2.get(o12[a9], e12 + "queueHooks")) && n11.empty && (r8++, n11.empty.add(s14)); 8321 return s14(), i11.promise(t12); 8322 } }); 8323 var G = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, Y = new RegExp("^(?:([+-])=|)(" + G + ")([a-z%]*)$", "i"), Q = ["Top", "Right", "Bottom", "Left"], J = C.documentElement, K = function(e12) { 8324 return ce.contains(e12.ownerDocument, e12); 8325 }, Z = { composed: true }; 8326 J.getRootNode && (K = function(e12) { 8327 return ce.contains(e12.ownerDocument, e12) || e12.getRootNode(Z) === e12.ownerDocument; 8328 }); 8329 var ee = function(e12, t12) { 8330 return "none" === (e12 = t12 || e12).style.display || "" === e12.style.display && K(e12) && "none" === ce.css(e12, "display"); 8331 }; 8332 function te(e12, t12, n11, r8) { 8333 var i11, o12, a9 = 20, s14 = r8 ? function() { 8334 return r8.cur(); 8335 } : function() { 8336 return ce.css(e12, t12, ""); 8337 }, u6 = s14(), l11 = n11 && n11[3] || (ce.cssNumber[t12] ? "" : "px"), c6 = e12.nodeType && (ce.cssNumber[t12] || "px" !== l11 && +u6) && Y.exec(ce.css(e12, t12)); 8338 if (c6 && c6[3] !== l11) { 8339 u6 /= 2, l11 = l11 || c6[3], c6 = +u6 || 1; 8340 while (a9--) ce.style(e12, t12, c6 + l11), (1 - o12) * (1 - (o12 = s14() / u6 || 0.5)) <= 0 && (a9 = 0), c6 /= o12; 8341 c6 *= 2, ce.style(e12, t12, c6 + l11), n11 = n11 || []; 8342 } 8343 return n11 && (c6 = +c6 || +u6 || 0, i11 = n11[1] ? c6 + (n11[1] + 1) * n11[2] : +n11[2], r8 && (r8.unit = l11, r8.start = c6, r8.end = i11)), i11; 8344 } 8345 var ne = {}; 8346 function re(e12, t12) { 8347 for (var n11, r8, i11, o12, a9, s14, u6, l11 = [], c6 = 0, f4 = e12.length; c6 < f4; c6++) (r8 = e12[c6]).style && (n11 = r8.style.display, t12 ? ("none" === n11 && (l11[c6] = _2.get(r8, "display") || null, l11[c6] || (r8.style.display = "")), "" === r8.style.display && ee(r8) && (l11[c6] = (u6 = a9 = o12 = void 0, a9 = (i11 = r8).ownerDocument, s14 = i11.nodeName, (u6 = ne[s14]) || (o12 = a9.body.appendChild(a9.createElement(s14)), u6 = ce.css(o12, "display"), o12.parentNode.removeChild(o12), "none" === u6 && (u6 = "block"), ne[s14] = u6)))) : "none" !== n11 && (l11[c6] = "none", _2.set(r8, "display", n11))); 8348 for (c6 = 0; c6 < f4; c6++) null != l11[c6] && (e12[c6].style.display = l11[c6]); 8349 return e12; 8350 } 8351 ce.fn.extend({ show: function() { 8352 return re(this, true); 8353 }, hide: function() { 8354 return re(this); 8355 }, toggle: function(e12) { 8356 return "boolean" == typeof e12 ? e12 ? this.show() : this.hide() : this.each(function() { 8357 ee(this) ? ce(this).show() : ce(this).hide(); 8358 }); 8359 } }); 8360 var xe, be, we = /^(?:checkbox|radio)$/i, Te = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i, Ce = /^$|^module$|\/(?:java|ecma)script/i; 8361 xe = C.createDocumentFragment().appendChild(C.createElement("div")), (be = C.createElement("input")).setAttribute("type", "radio"), be.setAttribute("checked", "checked"), be.setAttribute("name", "t"), xe.appendChild(be), le.checkClone = xe.cloneNode(true).cloneNode(true).lastChild.checked, xe.innerHTML = "<textarea>x</textarea>", le.noCloneChecked = !!xe.cloneNode(true).lastChild.defaultValue, xe.innerHTML = "<option></option>", le.option = !!xe.lastChild; 8362 var ke = { thead: [1, "<table>", "</table>"], col: [2, "<table><colgroup>", "</colgroup></table>"], tr: [2, "<table><tbody>", "</tbody></table>"], td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], _default: [0, "", ""] }; 8363 function Se(e12, t12) { 8364 var n11; 8365 return n11 = "undefined" != typeof e12.getElementsByTagName ? e12.getElementsByTagName(t12 || "*") : "undefined" != typeof e12.querySelectorAll ? e12.querySelectorAll(t12 || "*") : [], void 0 === t12 || t12 && fe(e12, t12) ? ce.merge([e12], n11) : n11; 8366 } 8367 function Ee(e12, t12) { 8368 for (var n11 = 0, r8 = e12.length; n11 < r8; n11++) _2.set(e12[n11], "globalEval", !t12 || _2.get(t12[n11], "globalEval")); 8369 } 8370 ke.tbody = ke.tfoot = ke.colgroup = ke.caption = ke.thead, ke.th = ke.td, le.option || (ke.optgroup = ke.option = [1, "<select multiple='multiple'>", "</select>"]); 8371 var je = /<|&#?\w+;/; 8372 function Ae(e12, t12, n11, r8, i11) { 8373 for (var o12, a9, s14, u6, l11, c6, f4 = t12.createDocumentFragment(), p3 = [], d4 = 0, h5 = e12.length; d4 < h5; d4++) if ((o12 = e12[d4]) || 0 === o12) if ("object" === x2(o12)) ce.merge(p3, o12.nodeType ? [o12] : o12); 8374 else if (je.test(o12)) { 8375 a9 = a9 || f4.appendChild(t12.createElement("div")), s14 = (Te.exec(o12) || ["", ""])[1].toLowerCase(), u6 = ke[s14] || ke._default, a9.innerHTML = u6[1] + ce.htmlPrefilter(o12) + u6[2], c6 = u6[0]; 8376 while (c6--) a9 = a9.lastChild; 8377 ce.merge(p3, a9.childNodes), (a9 = f4.firstChild).textContent = ""; 8378 } else p3.push(t12.createTextNode(o12)); 8379 f4.textContent = "", d4 = 0; 8380 while (o12 = p3[d4++]) if (r8 && -1 < ce.inArray(o12, r8)) i11 && i11.push(o12); 8381 else if (l11 = K(o12), a9 = Se(f4.appendChild(o12), "script"), l11 && Ee(a9), n11) { 8382 c6 = 0; 8383 while (o12 = a9[c6++]) Ce.test(o12.type || "") && n11.push(o12); 8384 } 8385 return f4; 8386 } 8387 var De = /^([^.]*)(?:\.(.+)|)/; 8388 function Ne() { 8389 return true; 8390 } 8391 function qe() { 8392 return false; 8393 } 8394 function Le(e12, t12, n11, r8, i11, o12) { 8395 var a9, s14; 8396 if ("object" == typeof t12) { 8397 for (s14 in "string" != typeof n11 && (r8 = r8 || n11, n11 = void 0), t12) Le(e12, s14, n11, r8, t12[s14], o12); 8398 return e12; 8399 } 8400 if (null == r8 && null == i11 ? (i11 = n11, r8 = n11 = void 0) : null == i11 && ("string" == typeof n11 ? (i11 = r8, r8 = void 0) : (i11 = r8, r8 = n11, n11 = void 0)), false === i11) i11 = qe; 8401 else if (!i11) return e12; 8402 return 1 === o12 && (a9 = i11, (i11 = function(e13) { 8403 return ce().off(e13), a9.apply(this, arguments); 8404 }).guid = a9.guid || (a9.guid = ce.guid++)), e12.each(function() { 8405 ce.event.add(this, t12, i11, r8, n11); 8406 }); 8407 } 8408 function He(e12, r8, t12) { 8409 t12 ? (_2.set(e12, r8, false), ce.event.add(e12, r8, { namespace: false, handler: function(e13) { 8410 var t13, n11 = _2.get(this, r8); 8411 if (1 & e13.isTrigger && this[r8]) { 8412 if (n11) (ce.event.special[r8] || {}).delegateType && e13.stopPropagation(); 8413 else if (n11 = ae.call(arguments), _2.set(this, r8, n11), this[r8](), t13 = _2.get(this, r8), _2.set(this, r8, false), n11 !== t13) return e13.stopImmediatePropagation(), e13.preventDefault(), t13; 8414 } else n11 && (_2.set(this, r8, ce.event.trigger(n11[0], n11.slice(1), this)), e13.stopPropagation(), e13.isImmediatePropagationStopped = Ne); 8415 } })) : void 0 === _2.get(e12, r8) && ce.event.add(e12, r8, Ne); 8416 } 8417 ce.event = { global: {}, add: function(t12, e12, n11, r8, i11) { 8418 var o12, a9, s14, u6, l11, c6, f4, p3, d4, h5, g3, v4 = _2.get(t12); 8419 if ($4(t12)) { 8420 n11.handler && (n11 = (o12 = n11).handler, i11 = o12.selector), i11 && ce.find.matchesSelector(J, i11), n11.guid || (n11.guid = ce.guid++), (u6 = v4.events) || (u6 = v4.events = /* @__PURE__ */ Object.create(null)), (a9 = v4.handle) || (a9 = v4.handle = function(e13) { 8421 return "undefined" != typeof ce && ce.event.triggered !== e13.type ? ce.event.dispatch.apply(t12, arguments) : void 0; 8422 }), l11 = (e12 = (e12 || "").match(D2) || [""]).length; 8423 while (l11--) d4 = g3 = (s14 = De.exec(e12[l11]) || [])[1], h5 = (s14[2] || "").split(".").sort(), d4 && (f4 = ce.event.special[d4] || {}, d4 = (i11 ? f4.delegateType : f4.bindType) || d4, f4 = ce.event.special[d4] || {}, c6 = ce.extend({ type: d4, origType: g3, data: r8, handler: n11, guid: n11.guid, selector: i11, needsContext: i11 && ce.expr.match.needsContext.test(i11), namespace: h5.join(".") }, o12), (p3 = u6[d4]) || ((p3 = u6[d4] = []).delegateCount = 0, f4.setup && false !== f4.setup.call(t12, r8, h5, a9) || t12.addEventListener && t12.addEventListener(d4, a9)), f4.add && (f4.add.call(t12, c6), c6.handler.guid || (c6.handler.guid = n11.guid)), i11 ? p3.splice(p3.delegateCount++, 0, c6) : p3.push(c6), ce.event.global[d4] = true); 8424 } 8425 }, remove: function(e12, t12, n11, r8, i11) { 8426 var o12, a9, s14, u6, l11, c6, f4, p3, d4, h5, g3, v4 = _2.hasData(e12) && _2.get(e12); 8427 if (v4 && (u6 = v4.events)) { 8428 l11 = (t12 = (t12 || "").match(D2) || [""]).length; 8429 while (l11--) if (d4 = g3 = (s14 = De.exec(t12[l11]) || [])[1], h5 = (s14[2] || "").split(".").sort(), d4) { 8430 f4 = ce.event.special[d4] || {}, p3 = u6[d4 = (r8 ? f4.delegateType : f4.bindType) || d4] || [], s14 = s14[2] && new RegExp("(^|\\.)" + h5.join("\\.(?:.*\\.|)") + "(\\.|$)"), a9 = o12 = p3.length; 8431 while (o12--) c6 = p3[o12], !i11 && g3 !== c6.origType || n11 && n11.guid !== c6.guid || s14 && !s14.test(c6.namespace) || r8 && r8 !== c6.selector && ("**" !== r8 || !c6.selector) || (p3.splice(o12, 1), c6.selector && p3.delegateCount--, f4.remove && f4.remove.call(e12, c6)); 8432 a9 && !p3.length && (f4.teardown && false !== f4.teardown.call(e12, h5, v4.handle) || ce.removeEvent(e12, d4, v4.handle), delete u6[d4]); 8433 } else for (d4 in u6) ce.event.remove(e12, d4 + t12[l11], n11, r8, true); 8434 ce.isEmptyObject(u6) && _2.remove(e12, "handle events"); 8435 } 8436 }, dispatch: function(e12) { 8437 var t12, n11, r8, i11, o12, a9, s14 = new Array(arguments.length), u6 = ce.event.fix(e12), l11 = (_2.get(this, "events") || /* @__PURE__ */ Object.create(null))[u6.type] || [], c6 = ce.event.special[u6.type] || {}; 8438 for (s14[0] = u6, t12 = 1; t12 < arguments.length; t12++) s14[t12] = arguments[t12]; 8439 if (u6.delegateTarget = this, !c6.preDispatch || false !== c6.preDispatch.call(this, u6)) { 8440 a9 = ce.event.handlers.call(this, u6, l11), t12 = 0; 8441 while ((i11 = a9[t12++]) && !u6.isPropagationStopped()) { 8442 u6.currentTarget = i11.elem, n11 = 0; 8443 while ((o12 = i11.handlers[n11++]) && !u6.isImmediatePropagationStopped()) u6.rnamespace && false !== o12.namespace && !u6.rnamespace.test(o12.namespace) || (u6.handleObj = o12, u6.data = o12.data, void 0 !== (r8 = ((ce.event.special[o12.origType] || {}).handle || o12.handler).apply(i11.elem, s14)) && false === (u6.result = r8) && (u6.preventDefault(), u6.stopPropagation())); 8444 } 8445 return c6.postDispatch && c6.postDispatch.call(this, u6), u6.result; 8446 } 8447 }, handlers: function(e12, t12) { 8448 var n11, r8, i11, o12, a9, s14 = [], u6 = t12.delegateCount, l11 = e12.target; 8449 if (u6 && l11.nodeType && !("click" === e12.type && 1 <= e12.button)) { 8450 for (; l11 !== this; l11 = l11.parentNode || this) if (1 === l11.nodeType && ("click" !== e12.type || true !== l11.disabled)) { 8451 for (o12 = [], a9 = {}, n11 = 0; n11 < u6; n11++) void 0 === a9[i11 = (r8 = t12[n11]).selector + " "] && (a9[i11] = r8.needsContext ? -1 < ce(i11, this).index(l11) : ce.find(i11, this, null, [l11]).length), a9[i11] && o12.push(r8); 8452 o12.length && s14.push({ elem: l11, handlers: o12 }); 8453 } 8454 } 8455 return l11 = this, u6 < t12.length && s14.push({ elem: l11, handlers: t12.slice(u6) }), s14; 8456 }, addProp: function(t12, e12) { 8457 Object.defineProperty(ce.Event.prototype, t12, { enumerable: true, configurable: true, get: v3(e12) ? function() { 8458 if (this.originalEvent) return e12(this.originalEvent); 8459 } : function() { 8460 if (this.originalEvent) return this.originalEvent[t12]; 8461 }, set: function(e13) { 8462 Object.defineProperty(this, t12, { enumerable: true, configurable: true, writable: true, value: e13 }); 8463 } }); 8464 }, fix: function(e12) { 8465 return e12[ce.expando] ? e12 : new ce.Event(e12); 8466 }, special: { load: { noBubble: true }, click: { setup: function(e12) { 8467 var t12 = this || e12; 8468 return we.test(t12.type) && t12.click && fe(t12, "input") && He(t12, "click", true), false; 8469 }, trigger: function(e12) { 8470 var t12 = this || e12; 8471 return we.test(t12.type) && t12.click && fe(t12, "input") && He(t12, "click"), true; 8472 }, _default: function(e12) { 8473 var t12 = e12.target; 8474 return we.test(t12.type) && t12.click && fe(t12, "input") && _2.get(t12, "click") || fe(t12, "a"); 8475 } }, beforeunload: { postDispatch: function(e12) { 8476 void 0 !== e12.result && e12.originalEvent && (e12.originalEvent.returnValue = e12.result); 8477 } } } }, ce.removeEvent = function(e12, t12, n11) { 8478 e12.removeEventListener && e12.removeEventListener(t12, n11); 8479 }, ce.Event = function(e12, t12) { 8480 if (!(this instanceof ce.Event)) return new ce.Event(e12, t12); 8481 e12 && e12.type ? (this.originalEvent = e12, this.type = e12.type, this.isDefaultPrevented = e12.defaultPrevented || void 0 === e12.defaultPrevented && false === e12.returnValue ? Ne : qe, this.target = e12.target && 3 === e12.target.nodeType ? e12.target.parentNode : e12.target, this.currentTarget = e12.currentTarget, this.relatedTarget = e12.relatedTarget) : this.type = e12, t12 && ce.extend(this, t12), this.timeStamp = e12 && e12.timeStamp || Date.now(), this[ce.expando] = true; 8482 }, ce.Event.prototype = { constructor: ce.Event, isDefaultPrevented: qe, isPropagationStopped: qe, isImmediatePropagationStopped: qe, isSimulated: false, preventDefault: function() { 8483 var e12 = this.originalEvent; 8484 this.isDefaultPrevented = Ne, e12 && !this.isSimulated && e12.preventDefault(); 8485 }, stopPropagation: function() { 8486 var e12 = this.originalEvent; 8487 this.isPropagationStopped = Ne, e12 && !this.isSimulated && e12.stopPropagation(); 8488 }, stopImmediatePropagation: function() { 8489 var e12 = this.originalEvent; 8490 this.isImmediatePropagationStopped = Ne, e12 && !this.isSimulated && e12.stopImmediatePropagation(), this.stopPropagation(); 8491 } }, ce.each({ altKey: true, bubbles: true, cancelable: true, changedTouches: true, ctrlKey: true, detail: true, eventPhase: true, metaKey: true, pageX: true, pageY: true, shiftKey: true, view: true, "char": true, code: true, charCode: true, key: true, keyCode: true, button: true, buttons: true, clientX: true, clientY: true, offsetX: true, offsetY: true, pointerId: true, pointerType: true, screenX: true, screenY: true, targetTouches: true, toElement: true, touches: true, which: true }, ce.event.addProp), ce.each({ focus: "focusin", blur: "focusout" }, function(r8, i11) { 8492 function o12(e12) { 8493 if (C.documentMode) { 8494 var t12 = _2.get(this, "handle"), n11 = ce.event.fix(e12); 8495 n11.type = "focusin" === e12.type ? "focus" : "blur", n11.isSimulated = true, t12(e12), n11.target === n11.currentTarget && t12(n11); 8496 } else ce.event.simulate(i11, e12.target, ce.event.fix(e12)); 8497 } 8498 ce.event.special[r8] = { setup: function() { 8499 var e12; 8500 if (He(this, r8, true), !C.documentMode) return false; 8501 (e12 = _2.get(this, i11)) || this.addEventListener(i11, o12), _2.set(this, i11, (e12 || 0) + 1); 8502 }, trigger: function() { 8503 return He(this, r8), true; 8504 }, teardown: function() { 8505 var e12; 8506 if (!C.documentMode) return false; 8507 (e12 = _2.get(this, i11) - 1) ? _2.set(this, i11, e12) : (this.removeEventListener(i11, o12), _2.remove(this, i11)); 8508 }, _default: function(e12) { 8509 return _2.get(e12.target, r8); 8510 }, delegateType: i11 }, ce.event.special[i11] = { setup: function() { 8511 var e12 = this.ownerDocument || this.document || this, t12 = C.documentMode ? this : e12, n11 = _2.get(t12, i11); 8512 n11 || (C.documentMode ? this.addEventListener(i11, o12) : e12.addEventListener(r8, o12, true)), _2.set(t12, i11, (n11 || 0) + 1); 8513 }, teardown: function() { 8514 var e12 = this.ownerDocument || this.document || this, t12 = C.documentMode ? this : e12, n11 = _2.get(t12, i11) - 1; 8515 n11 ? _2.set(t12, i11, n11) : (C.documentMode ? this.removeEventListener(i11, o12) : e12.removeEventListener(r8, o12, true), _2.remove(t12, i11)); 8516 } }; 8517 }), ce.each({ mouseenter: "mouseover", mouseleave: "mouseout", pointerenter: "pointerover", pointerleave: "pointerout" }, function(e12, i11) { 8518 ce.event.special[e12] = { delegateType: i11, bindType: i11, handle: function(e13) { 8519 var t12, n11 = e13.relatedTarget, r8 = e13.handleObj; 8520 return n11 && (n11 === this || ce.contains(this, n11)) || (e13.type = r8.origType, t12 = r8.handler.apply(this, arguments), e13.type = i11), t12; 8521 } }; 8522 }), ce.fn.extend({ on: function(e12, t12, n11, r8) { 8523 return Le(this, e12, t12, n11, r8); 8524 }, one: function(e12, t12, n11, r8) { 8525 return Le(this, e12, t12, n11, r8, 1); 8526 }, off: function(e12, t12, n11) { 8527 var r8, i11; 8528 if (e12 && e12.preventDefault && e12.handleObj) return r8 = e12.handleObj, ce(e12.delegateTarget).off(r8.namespace ? r8.origType + "." + r8.namespace : r8.origType, r8.selector, r8.handler), this; 8529 if ("object" == typeof e12) { 8530 for (i11 in e12) this.off(i11, t12, e12[i11]); 8531 return this; 8532 } 8533 return false !== t12 && "function" != typeof t12 || (n11 = t12, t12 = void 0), false === n11 && (n11 = qe), this.each(function() { 8534 ce.event.remove(this, e12, n11, t12); 8535 }); 8536 } }); 8537 var Oe = /<script|<style|<link/i, Pe = /checked\s*(?:[^=]|=\s*.checked.)/i, Me = /^\s*<!\[CDATA\[|\]\]>\s*$/g; 8538 function Re(e12, t12) { 8539 return fe(e12, "table") && fe(11 !== t12.nodeType ? t12 : t12.firstChild, "tr") && ce(e12).children("tbody")[0] || e12; 8540 } 8541 function Ie(e12) { 8542 return e12.type = (null !== e12.getAttribute("type")) + "/" + e12.type, e12; 8543 } 8544 function We(e12) { 8545 return "true/" === (e12.type || "").slice(0, 5) ? e12.type = e12.type.slice(5) : e12.removeAttribute("type"), e12; 8546 } 8547 function Fe(e12, t12) { 8548 var n11, r8, i11, o12, a9, s14; 8549 if (1 === t12.nodeType) { 8550 if (_2.hasData(e12) && (s14 = _2.get(e12).events)) for (i11 in _2.remove(t12, "handle events"), s14) for (n11 = 0, r8 = s14[i11].length; n11 < r8; n11++) ce.event.add(t12, i11, s14[i11][n11]); 8551 z2.hasData(e12) && (o12 = z2.access(e12), a9 = ce.extend({}, o12), z2.set(t12, a9)); 8552 } 8553 } 8554 function $e(n11, r8, i11, o12) { 8555 r8 = g2(r8); 8556 var e12, t12, a9, s14, u6, l11, c6 = 0, f4 = n11.length, p3 = f4 - 1, d4 = r8[0], h5 = v3(d4); 8557 if (h5 || 1 < f4 && "string" == typeof d4 && !le.checkClone && Pe.test(d4)) return n11.each(function(e13) { 8558 var t13 = n11.eq(e13); 8559 h5 && (r8[0] = d4.call(this, e13, t13.html())), $e(t13, r8, i11, o12); 8560 }); 8561 if (f4 && (t12 = (e12 = Ae(r8, n11[0].ownerDocument, false, n11, o12)).firstChild, 1 === e12.childNodes.length && (e12 = t12), t12 || o12)) { 8562 for (s14 = (a9 = ce.map(Se(e12, "script"), Ie)).length; c6 < f4; c6++) u6 = e12, c6 !== p3 && (u6 = ce.clone(u6, true, true), s14 && ce.merge(a9, Se(u6, "script"))), i11.call(n11[c6], u6, c6); 8563 if (s14) for (l11 = a9[a9.length - 1].ownerDocument, ce.map(a9, We), c6 = 0; c6 < s14; c6++) u6 = a9[c6], Ce.test(u6.type || "") && !_2.access(u6, "globalEval") && ce.contains(l11, u6) && (u6.src && "module" !== (u6.type || "").toLowerCase() ? ce._evalUrl && !u6.noModule && ce._evalUrl(u6.src, { nonce: u6.nonce || u6.getAttribute("nonce") }, l11) : m3(u6.textContent.replace(Me, ""), u6, l11)); 8564 } 8565 return n11; 8566 } 8567 function Be(e12, t12, n11) { 8568 for (var r8, i11 = t12 ? ce.filter(t12, e12) : e12, o12 = 0; null != (r8 = i11[o12]); o12++) n11 || 1 !== r8.nodeType || ce.cleanData(Se(r8)), r8.parentNode && (n11 && K(r8) && Ee(Se(r8, "script")), r8.parentNode.removeChild(r8)); 8569 return e12; 8570 } 8571 ce.extend({ htmlPrefilter: function(e12) { 8572 return e12; 8573 }, clone: function(e12, t12, n11) { 8574 var r8, i11, o12, a9, s14, u6, l11, c6 = e12.cloneNode(true), f4 = K(e12); 8575 if (!(le.noCloneChecked || 1 !== e12.nodeType && 11 !== e12.nodeType || ce.isXMLDoc(e12))) for (a9 = Se(c6), r8 = 0, i11 = (o12 = Se(e12)).length; r8 < i11; r8++) s14 = o12[r8], u6 = a9[r8], void 0, "input" === (l11 = u6.nodeName.toLowerCase()) && we.test(s14.type) ? u6.checked = s14.checked : "input" !== l11 && "textarea" !== l11 || (u6.defaultValue = s14.defaultValue); 8576 if (t12) if (n11) for (o12 = o12 || Se(e12), a9 = a9 || Se(c6), r8 = 0, i11 = o12.length; r8 < i11; r8++) Fe(o12[r8], a9[r8]); 8577 else Fe(e12, c6); 8578 return 0 < (a9 = Se(c6, "script")).length && Ee(a9, !f4 && Se(e12, "script")), c6; 8579 }, cleanData: function(e12) { 8580 for (var t12, n11, r8, i11 = ce.event.special, o12 = 0; void 0 !== (n11 = e12[o12]); o12++) if ($4(n11)) { 8581 if (t12 = n11[_2.expando]) { 8582 if (t12.events) for (r8 in t12.events) i11[r8] ? ce.event.remove(n11, r8) : ce.removeEvent(n11, r8, t12.handle); 8583 n11[_2.expando] = void 0; 8584 } 8585 n11[z2.expando] && (n11[z2.expando] = void 0); 8586 } 8587 } }), ce.fn.extend({ detach: function(e12) { 8588 return Be(this, e12, true); 8589 }, remove: function(e12) { 8590 return Be(this, e12); 8591 }, text: function(e12) { 8592 return M3(this, function(e13) { 8593 return void 0 === e13 ? ce.text(this) : this.empty().each(function() { 8594 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = e13); 8595 }); 8596 }, null, e12, arguments.length); 8597 }, append: function() { 8598 return $e(this, arguments, function(e12) { 8599 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || Re(this, e12).appendChild(e12); 8600 }); 8601 }, prepend: function() { 8602 return $e(this, arguments, function(e12) { 8603 if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { 8604 var t12 = Re(this, e12); 8605 t12.insertBefore(e12, t12.firstChild); 8606 } 8607 }); 8608 }, before: function() { 8609 return $e(this, arguments, function(e12) { 8610 this.parentNode && this.parentNode.insertBefore(e12, this); 8611 }); 8612 }, after: function() { 8613 return $e(this, arguments, function(e12) { 8614 this.parentNode && this.parentNode.insertBefore(e12, this.nextSibling); 8615 }); 8616 }, empty: function() { 8617 for (var e12, t12 = 0; null != (e12 = this[t12]); t12++) 1 === e12.nodeType && (ce.cleanData(Se(e12, false)), e12.textContent = ""); 8618 return this; 8619 }, clone: function(e12, t12) { 8620 return e12 = null != e12 && e12, t12 = null == t12 ? e12 : t12, this.map(function() { 8621 return ce.clone(this, e12, t12); 8622 }); 8623 }, html: function(e12) { 8624 return M3(this, function(e13) { 8625 var t12 = this[0] || {}, n11 = 0, r8 = this.length; 8626 if (void 0 === e13 && 1 === t12.nodeType) return t12.innerHTML; 8627 if ("string" == typeof e13 && !Oe.test(e13) && !ke[(Te.exec(e13) || ["", ""])[1].toLowerCase()]) { 8628 e13 = ce.htmlPrefilter(e13); 8629 try { 8630 for (; n11 < r8; n11++) 1 === (t12 = this[n11] || {}).nodeType && (ce.cleanData(Se(t12, false)), t12.innerHTML = e13); 8631 t12 = 0; 8632 } catch (e14) { 8633 } 8634 } 8635 t12 && this.empty().append(e13); 8636 }, null, e12, arguments.length); 8637 }, replaceWith: function() { 8638 var n11 = []; 8639 return $e(this, arguments, function(e12) { 8640 var t12 = this.parentNode; 8641 ce.inArray(this, n11) < 0 && (ce.cleanData(Se(this)), t12 && t12.replaceChild(e12, this)); 8642 }, n11); 8643 } }), ce.each({ appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith" }, function(e12, a9) { 8644 ce.fn[e12] = function(e13) { 8645 for (var t12, n11 = [], r8 = ce(e13), i11 = r8.length - 1, o12 = 0; o12 <= i11; o12++) t12 = o12 === i11 ? this : this.clone(true), ce(r8[o12])[a9](t12), s13.apply(n11, t12.get()); 8646 return this.pushStack(n11); 8647 }; 8648 }); 8649 var _e = new RegExp("^(" + G + ")(?!px)[a-z%]+$", "i"), ze = /^--/, Xe = function(e12) { 8650 var t12 = e12.ownerDocument.defaultView; 8651 return t12 && t12.opener || (t12 = ie), t12.getComputedStyle(e12); 8652 }, Ue = function(e12, t12, n11) { 8653 var r8, i11, o12 = {}; 8654 for (i11 in t12) o12[i11] = e12.style[i11], e12.style[i11] = t12[i11]; 8655 for (i11 in r8 = n11.call(e12), t12) e12.style[i11] = o12[i11]; 8656 return r8; 8657 }, Ve = new RegExp(Q.join("|"), "i"); 8658 function Ge(e12, t12, n11) { 8659 var r8, i11, o12, a9, s14 = ze.test(t12), u6 = e12.style; 8660 return (n11 = n11 || Xe(e12)) && (a9 = n11.getPropertyValue(t12) || n11[t12], s14 && a9 && (a9 = a9.replace(ve, "$1") || void 0), "" !== a9 || K(e12) || (a9 = ce.style(e12, t12)), !le.pixelBoxStyles() && _e.test(a9) && Ve.test(t12) && (r8 = u6.width, i11 = u6.minWidth, o12 = u6.maxWidth, u6.minWidth = u6.maxWidth = u6.width = a9, a9 = n11.width, u6.width = r8, u6.minWidth = i11, u6.maxWidth = o12)), void 0 !== a9 ? a9 + "" : a9; 8661 } 8662 function Ye(e12, t12) { 8663 return { get: function() { 8664 if (!e12()) return (this.get = t12).apply(this, arguments); 8665 delete this.get; 8666 } }; 8667 } 8668 !(function() { 8669 function e12() { 8670 if (l11) { 8671 u6.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0", l11.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%", J.appendChild(u6).appendChild(l11); 8672 var e13 = ie.getComputedStyle(l11); 8673 n11 = "1%" !== e13.top, s14 = 12 === t12(e13.marginLeft), l11.style.right = "60%", o12 = 36 === t12(e13.right), r8 = 36 === t12(e13.width), l11.style.position = "absolute", i11 = 12 === t12(l11.offsetWidth / 3), J.removeChild(u6), l11 = null; 8674 } 8675 } 8676 function t12(e13) { 8677 return Math.round(parseFloat(e13)); 8678 } 8679 var n11, r8, i11, o12, a9, s14, u6 = C.createElement("div"), l11 = C.createElement("div"); 8680 l11.style && (l11.style.backgroundClip = "content-box", l11.cloneNode(true).style.backgroundClip = "", le.clearCloneStyle = "content-box" === l11.style.backgroundClip, ce.extend(le, { boxSizingReliable: function() { 8681 return e12(), r8; 8682 }, pixelBoxStyles: function() { 8683 return e12(), o12; 8684 }, pixelPosition: function() { 8685 return e12(), n11; 8686 }, reliableMarginLeft: function() { 8687 return e12(), s14; 8688 }, scrollboxSize: function() { 8689 return e12(), i11; 8690 }, reliableTrDimensions: function() { 8691 var e13, t13, n12, r9; 8692 return null == a9 && (e13 = C.createElement("table"), t13 = C.createElement("tr"), n12 = C.createElement("div"), e13.style.cssText = "position:absolute;left:-11111px;border-collapse:separate", t13.style.cssText = "box-sizing:content-box;border:1px solid", t13.style.height = "1px", n12.style.height = "9px", n12.style.display = "block", J.appendChild(e13).appendChild(t13).appendChild(n12), r9 = ie.getComputedStyle(t13), a9 = parseInt(r9.height, 10) + parseInt(r9.borderTopWidth, 10) + parseInt(r9.borderBottomWidth, 10) === t13.offsetHeight, J.removeChild(e13)), a9; 8693 } })); 8694 })(); 8695 var Qe = ["Webkit", "Moz", "ms"], Je = C.createElement("div").style, Ke = {}; 8696 function Ze(e12) { 8697 var t12 = ce.cssProps[e12] || Ke[e12]; 8698 return t12 || (e12 in Je ? e12 : Ke[e12] = (function(e13) { 8699 var t13 = e13[0].toUpperCase() + e13.slice(1), n11 = Qe.length; 8700 while (n11--) if ((e13 = Qe[n11] + t13) in Je) return e13; 8701 })(e12) || e12); 8702 } 8703 var et = /^(none|table(?!-c[ea]).+)/, tt = { position: "absolute", visibility: "hidden", display: "block" }, nt = { letterSpacing: "0", fontWeight: "400" }; 8704 function rt(e12, t12, n11) { 8705 var r8 = Y.exec(t12); 8706 return r8 ? Math.max(0, r8[2] - (n11 || 0)) + (r8[3] || "px") : t12; 8707 } 8708 function it(e12, t12, n11, r8, i11, o12) { 8709 var a9 = "width" === t12 ? 1 : 0, s14 = 0, u6 = 0, l11 = 0; 8710 if (n11 === (r8 ? "border" : "content")) return 0; 8711 for (; a9 < 4; a9 += 2) "margin" === n11 && (l11 += ce.css(e12, n11 + Q[a9], true, i11)), r8 ? ("content" === n11 && (u6 -= ce.css(e12, "padding" + Q[a9], true, i11)), "margin" !== n11 && (u6 -= ce.css(e12, "border" + Q[a9] + "Width", true, i11))) : (u6 += ce.css(e12, "padding" + Q[a9], true, i11), "padding" !== n11 ? u6 += ce.css(e12, "border" + Q[a9] + "Width", true, i11) : s14 += ce.css(e12, "border" + Q[a9] + "Width", true, i11)); 8712 return !r8 && 0 <= o12 && (u6 += Math.max(0, Math.ceil(e12["offset" + t12[0].toUpperCase() + t12.slice(1)] - o12 - u6 - s14 - 0.5)) || 0), u6 + l11; 8713 } 8714 function ot(e12, t12, n11) { 8715 var r8 = Xe(e12), i11 = (!le.boxSizingReliable() || n11) && "border-box" === ce.css(e12, "boxSizing", false, r8), o12 = i11, a9 = Ge(e12, t12, r8), s14 = "offset" + t12[0].toUpperCase() + t12.slice(1); 8716 if (_e.test(a9)) { 8717 if (!n11) return a9; 8718 a9 = "auto"; 8719 } 8720 return (!le.boxSizingReliable() && i11 || !le.reliableTrDimensions() && fe(e12, "tr") || "auto" === a9 || !parseFloat(a9) && "inline" === ce.css(e12, "display", false, r8)) && e12.getClientRects().length && (i11 = "border-box" === ce.css(e12, "boxSizing", false, r8), (o12 = s14 in e12) && (a9 = e12[s14])), (a9 = parseFloat(a9) || 0) + it(e12, t12, n11 || (i11 ? "border" : "content"), o12, r8, a9) + "px"; 8721 } 8722 function at(e12, t12, n11, r8, i11) { 8723 return new at.prototype.init(e12, t12, n11, r8, i11); 8724 } 8725 ce.extend({ cssHooks: { opacity: { get: function(e12, t12) { 8726 if (t12) { 8727 var n11 = Ge(e12, "opacity"); 8728 return "" === n11 ? "1" : n11; 8729 } 8730 } } }, cssNumber: { animationIterationCount: true, aspectRatio: true, borderImageSlice: true, columnCount: true, flexGrow: true, flexShrink: true, fontWeight: true, gridArea: true, gridColumn: true, gridColumnEnd: true, gridColumnStart: true, gridRow: true, gridRowEnd: true, gridRowStart: true, lineHeight: true, opacity: true, order: true, orphans: true, scale: true, widows: true, zIndex: true, zoom: true, fillOpacity: true, floodOpacity: true, stopOpacity: true, strokeMiterlimit: true, strokeOpacity: true }, cssProps: {}, style: function(e12, t12, n11, r8) { 8731 if (e12 && 3 !== e12.nodeType && 8 !== e12.nodeType && e12.style) { 8732 var i11, o12, a9, s14 = F(t12), u6 = ze.test(t12), l11 = e12.style; 8733 if (u6 || (t12 = Ze(s14)), a9 = ce.cssHooks[t12] || ce.cssHooks[s14], void 0 === n11) return a9 && "get" in a9 && void 0 !== (i11 = a9.get(e12, false, r8)) ? i11 : l11[t12]; 8734 "string" === (o12 = typeof n11) && (i11 = Y.exec(n11)) && i11[1] && (n11 = te(e12, t12, i11), o12 = "number"), null != n11 && n11 == n11 && ("number" !== o12 || u6 || (n11 += i11 && i11[3] || (ce.cssNumber[s14] ? "" : "px")), le.clearCloneStyle || "" !== n11 || 0 !== t12.indexOf("background") || (l11[t12] = "inherit"), a9 && "set" in a9 && void 0 === (n11 = a9.set(e12, n11, r8)) || (u6 ? l11.setProperty(t12, n11) : l11[t12] = n11)); 8735 } 8736 }, css: function(e12, t12, n11, r8) { 8737 var i11, o12, a9, s14 = F(t12); 8738 return ze.test(t12) || (t12 = Ze(s14)), (a9 = ce.cssHooks[t12] || ce.cssHooks[s14]) && "get" in a9 && (i11 = a9.get(e12, true, n11)), void 0 === i11 && (i11 = Ge(e12, t12, r8)), "normal" === i11 && t12 in nt && (i11 = nt[t12]), "" === n11 || n11 ? (o12 = parseFloat(i11), true === n11 || isFinite(o12) ? o12 || 0 : i11) : i11; 8739 } }), ce.each(["height", "width"], function(e12, u6) { 8740 ce.cssHooks[u6] = { get: function(e13, t12, n11) { 8741 if (t12) return !et.test(ce.css(e13, "display")) || e13.getClientRects().length && e13.getBoundingClientRect().width ? ot(e13, u6, n11) : Ue(e13, tt, function() { 8742 return ot(e13, u6, n11); 8743 }); 8744 }, set: function(e13, t12, n11) { 8745 var r8, i11 = Xe(e13), o12 = !le.scrollboxSize() && "absolute" === i11.position, a9 = (o12 || n11) && "border-box" === ce.css(e13, "boxSizing", false, i11), s14 = n11 ? it(e13, u6, n11, a9, i11) : 0; 8746 return a9 && o12 && (s14 -= Math.ceil(e13["offset" + u6[0].toUpperCase() + u6.slice(1)] - parseFloat(i11[u6]) - it(e13, u6, "border", false, i11) - 0.5)), s14 && (r8 = Y.exec(t12)) && "px" !== (r8[3] || "px") && (e13.style[u6] = t12, t12 = ce.css(e13, u6)), rt(0, t12, s14); 8747 } }; 8748 }), ce.cssHooks.marginLeft = Ye(le.reliableMarginLeft, function(e12, t12) { 8749 if (t12) return (parseFloat(Ge(e12, "marginLeft")) || e12.getBoundingClientRect().left - Ue(e12, { marginLeft: 0 }, function() { 8750 return e12.getBoundingClientRect().left; 8751 })) + "px"; 8752 }), ce.each({ margin: "", padding: "", border: "Width" }, function(i11, o12) { 8753 ce.cssHooks[i11 + o12] = { expand: function(e12) { 8754 for (var t12 = 0, n11 = {}, r8 = "string" == typeof e12 ? e12.split(" ") : [e12]; t12 < 4; t12++) n11[i11 + Q[t12] + o12] = r8[t12] || r8[t12 - 2] || r8[0]; 8755 return n11; 8756 } }, "margin" !== i11 && (ce.cssHooks[i11 + o12].set = rt); 8757 }), ce.fn.extend({ css: function(e12, t12) { 8758 return M3(this, function(e13, t13, n11) { 8759 var r8, i11, o12 = {}, a9 = 0; 8760 if (Array.isArray(t13)) { 8761 for (r8 = Xe(e13), i11 = t13.length; a9 < i11; a9++) o12[t13[a9]] = ce.css(e13, t13[a9], false, r8); 8762 return o12; 8763 } 8764 return void 0 !== n11 ? ce.style(e13, t13, n11) : ce.css(e13, t13); 8765 }, e12, t12, 1 < arguments.length); 8766 } }), ((ce.Tween = at).prototype = { constructor: at, init: function(e12, t12, n11, r8, i11, o12) { 8767 this.elem = e12, this.prop = n11, this.easing = i11 || ce.easing._default, this.options = t12, this.start = this.now = this.cur(), this.end = r8, this.unit = o12 || (ce.cssNumber[n11] ? "" : "px"); 8768 }, cur: function() { 8769 var e12 = at.propHooks[this.prop]; 8770 return e12 && e12.get ? e12.get(this) : at.propHooks._default.get(this); 8771 }, run: function(e12) { 8772 var t12, n11 = at.propHooks[this.prop]; 8773 return this.options.duration ? this.pos = t12 = ce.easing[this.easing](e12, this.options.duration * e12, 0, 1, this.options.duration) : this.pos = t12 = e12, this.now = (this.end - this.start) * t12 + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n11 && n11.set ? n11.set(this) : at.propHooks._default.set(this), this; 8774 } }).init.prototype = at.prototype, (at.propHooks = { _default: { get: function(e12) { 8775 var t12; 8776 return 1 !== e12.elem.nodeType || null != e12.elem[e12.prop] && null == e12.elem.style[e12.prop] ? e12.elem[e12.prop] : (t12 = ce.css(e12.elem, e12.prop, "")) && "auto" !== t12 ? t12 : 0; 8777 }, set: function(e12) { 8778 ce.fx.step[e12.prop] ? ce.fx.step[e12.prop](e12) : 1 !== e12.elem.nodeType || !ce.cssHooks[e12.prop] && null == e12.elem.style[Ze(e12.prop)] ? e12.elem[e12.prop] = e12.now : ce.style(e12.elem, e12.prop, e12.now + e12.unit); 8779 } } }).scrollTop = at.propHooks.scrollLeft = { set: function(e12) { 8780 e12.elem.nodeType && e12.elem.parentNode && (e12.elem[e12.prop] = e12.now); 8781 } }, ce.easing = { linear: function(e12) { 8782 return e12; 8783 }, swing: function(e12) { 8784 return 0.5 - Math.cos(e12 * Math.PI) / 2; 8785 }, _default: "swing" }, ce.fx = at.prototype.init, ce.fx.step = {}; 8786 var st, ut, lt, ct, ft = /^(?:toggle|show|hide)$/, pt = /queueHooks$/; 8787 function dt() { 8788 ut && (false === C.hidden && ie.requestAnimationFrame ? ie.requestAnimationFrame(dt) : ie.setTimeout(dt, ce.fx.interval), ce.fx.tick()); 8789 } 8790 function ht() { 8791 return ie.setTimeout(function() { 8792 st = void 0; 8793 }), st = Date.now(); 8794 } 8795 function gt(e12, t12) { 8796 var n11, r8 = 0, i11 = { height: e12 }; 8797 for (t12 = t12 ? 1 : 0; r8 < 4; r8 += 2 - t12) i11["margin" + (n11 = Q[r8])] = i11["padding" + n11] = e12; 8798 return t12 && (i11.opacity = i11.width = e12), i11; 8799 } 8800 function vt(e12, t12, n11) { 8801 for (var r8, i11 = (yt.tweeners[t12] || []).concat(yt.tweeners["*"]), o12 = 0, a9 = i11.length; o12 < a9; o12++) if (r8 = i11[o12].call(n11, t12, e12)) return r8; 8802 } 8803 function yt(o12, e12, t12) { 8804 var n11, a9, r8 = 0, i11 = yt.prefilters.length, s14 = ce.Deferred().always(function() { 8805 delete u6.elem; 8806 }), u6 = function() { 8807 if (a9) return false; 8808 for (var e13 = st || ht(), t13 = Math.max(0, l11.startTime + l11.duration - e13), n12 = 1 - (t13 / l11.duration || 0), r9 = 0, i12 = l11.tweens.length; r9 < i12; r9++) l11.tweens[r9].run(n12); 8809 return s14.notifyWith(o12, [l11, n12, t13]), n12 < 1 && i12 ? t13 : (i12 || s14.notifyWith(o12, [l11, 1, 0]), s14.resolveWith(o12, [l11]), false); 8810 }, l11 = s14.promise({ elem: o12, props: ce.extend({}, e12), opts: ce.extend(true, { specialEasing: {}, easing: ce.easing._default }, t12), originalProperties: e12, originalOptions: t12, startTime: st || ht(), duration: t12.duration, tweens: [], createTween: function(e13, t13) { 8811 var n12 = ce.Tween(o12, l11.opts, e13, t13, l11.opts.specialEasing[e13] || l11.opts.easing); 8812 return l11.tweens.push(n12), n12; 8813 }, stop: function(e13) { 8814 var t13 = 0, n12 = e13 ? l11.tweens.length : 0; 8815 if (a9) return this; 8816 for (a9 = true; t13 < n12; t13++) l11.tweens[t13].run(1); 8817 return e13 ? (s14.notifyWith(o12, [l11, 1, 0]), s14.resolveWith(o12, [l11, e13])) : s14.rejectWith(o12, [l11, e13]), this; 8818 } }), c6 = l11.props; 8819 for (!(function(e13, t13) { 8820 var n12, r9, i12, o13, a10; 8821 for (n12 in e13) if (i12 = t13[r9 = F(n12)], o13 = e13[n12], Array.isArray(o13) && (i12 = o13[1], o13 = e13[n12] = o13[0]), n12 !== r9 && (e13[r9] = o13, delete e13[n12]), (a10 = ce.cssHooks[r9]) && "expand" in a10) for (n12 in o13 = a10.expand(o13), delete e13[r9], o13) n12 in e13 || (e13[n12] = o13[n12], t13[n12] = i12); 8822 else t13[r9] = i12; 8823 })(c6, l11.opts.specialEasing); r8 < i11; r8++) if (n11 = yt.prefilters[r8].call(l11, o12, c6, l11.opts)) return v3(n11.stop) && (ce._queueHooks(l11.elem, l11.opts.queue).stop = n11.stop.bind(n11)), n11; 8824 return ce.map(c6, vt, l11), v3(l11.opts.start) && l11.opts.start.call(o12, l11), l11.progress(l11.opts.progress).done(l11.opts.done, l11.opts.complete).fail(l11.opts.fail).always(l11.opts.always), ce.fx.timer(ce.extend(u6, { elem: o12, anim: l11, queue: l11.opts.queue })), l11; 8825 } 8826 ce.Animation = ce.extend(yt, { tweeners: { "*": [function(e12, t12) { 8827 var n11 = this.createTween(e12, t12); 8828 return te(n11.elem, e12, Y.exec(t12), n11), n11; 8829 }] }, tweener: function(e12, t12) { 8830 v3(e12) ? (t12 = e12, e12 = ["*"]) : e12 = e12.match(D2); 8831 for (var n11, r8 = 0, i11 = e12.length; r8 < i11; r8++) n11 = e12[r8], yt.tweeners[n11] = yt.tweeners[n11] || [], yt.tweeners[n11].unshift(t12); 8832 }, prefilters: [function(e12, t12, n11) { 8833 var r8, i11, o12, a9, s14, u6, l11, c6, f4 = "width" in t12 || "height" in t12, p3 = this, d4 = {}, h5 = e12.style, g3 = e12.nodeType && ee(e12), v4 = _2.get(e12, "fxshow"); 8834 for (r8 in n11.queue || (null == (a9 = ce._queueHooks(e12, "fx")).unqueued && (a9.unqueued = 0, s14 = a9.empty.fire, a9.empty.fire = function() { 8835 a9.unqueued || s14(); 8836 }), a9.unqueued++, p3.always(function() { 8837 p3.always(function() { 8838 a9.unqueued--, ce.queue(e12, "fx").length || a9.empty.fire(); 8839 }); 8840 })), t12) if (i11 = t12[r8], ft.test(i11)) { 8841 if (delete t12[r8], o12 = o12 || "toggle" === i11, i11 === (g3 ? "hide" : "show")) { 8842 if ("show" !== i11 || !v4 || void 0 === v4[r8]) continue; 8843 g3 = true; 8844 } 8845 d4[r8] = v4 && v4[r8] || ce.style(e12, r8); 8846 } 8847 if ((u6 = !ce.isEmptyObject(t12)) || !ce.isEmptyObject(d4)) for (r8 in f4 && 1 === e12.nodeType && (n11.overflow = [h5.overflow, h5.overflowX, h5.overflowY], null == (l11 = v4 && v4.display) && (l11 = _2.get(e12, "display")), "none" === (c6 = ce.css(e12, "display")) && (l11 ? c6 = l11 : (re([e12], true), l11 = e12.style.display || l11, c6 = ce.css(e12, "display"), re([e12]))), ("inline" === c6 || "inline-block" === c6 && null != l11) && "none" === ce.css(e12, "float") && (u6 || (p3.done(function() { 8848 h5.display = l11; 8849 }), null == l11 && (c6 = h5.display, l11 = "none" === c6 ? "" : c6)), h5.display = "inline-block")), n11.overflow && (h5.overflow = "hidden", p3.always(function() { 8850 h5.overflow = n11.overflow[0], h5.overflowX = n11.overflow[1], h5.overflowY = n11.overflow[2]; 8851 })), u6 = false, d4) u6 || (v4 ? "hidden" in v4 && (g3 = v4.hidden) : v4 = _2.access(e12, "fxshow", { display: l11 }), o12 && (v4.hidden = !g3), g3 && re([e12], true), p3.done(function() { 8852 for (r8 in g3 || re([e12]), _2.remove(e12, "fxshow"), d4) ce.style(e12, r8, d4[r8]); 8853 })), u6 = vt(g3 ? v4[r8] : 0, r8, p3), r8 in v4 || (v4[r8] = u6.start, g3 && (u6.end = u6.start, u6.start = 0)); 8854 }], prefilter: function(e12, t12) { 8855 t12 ? yt.prefilters.unshift(e12) : yt.prefilters.push(e12); 8856 } }), ce.speed = function(e12, t12, n11) { 8857 var r8 = e12 && "object" == typeof e12 ? ce.extend({}, e12) : { complete: n11 || !n11 && t12 || v3(e12) && e12, duration: e12, easing: n11 && t12 || t12 && !v3(t12) && t12 }; 8858 return ce.fx.off ? r8.duration = 0 : "number" != typeof r8.duration && (r8.duration in ce.fx.speeds ? r8.duration = ce.fx.speeds[r8.duration] : r8.duration = ce.fx.speeds._default), null != r8.queue && true !== r8.queue || (r8.queue = "fx"), r8.old = r8.complete, r8.complete = function() { 8859 v3(r8.old) && r8.old.call(this), r8.queue && ce.dequeue(this, r8.queue); 8860 }, r8; 8861 }, ce.fn.extend({ fadeTo: function(e12, t12, n11, r8) { 8862 return this.filter(ee).css("opacity", 0).show().end().animate({ opacity: t12 }, e12, n11, r8); 8863 }, animate: function(t12, e12, n11, r8) { 8864 var i11 = ce.isEmptyObject(t12), o12 = ce.speed(e12, n11, r8), a9 = function() { 8865 var e13 = yt(this, ce.extend({}, t12), o12); 8866 (i11 || _2.get(this, "finish")) && e13.stop(true); 8867 }; 8868 return a9.finish = a9, i11 || false === o12.queue ? this.each(a9) : this.queue(o12.queue, a9); 8869 }, stop: function(i11, e12, o12) { 8870 var a9 = function(e13) { 8871 var t12 = e13.stop; 8872 delete e13.stop, t12(o12); 8873 }; 8874 return "string" != typeof i11 && (o12 = e12, e12 = i11, i11 = void 0), e12 && this.queue(i11 || "fx", []), this.each(function() { 8875 var e13 = true, t12 = null != i11 && i11 + "queueHooks", n11 = ce.timers, r8 = _2.get(this); 8876 if (t12) r8[t12] && r8[t12].stop && a9(r8[t12]); 8877 else for (t12 in r8) r8[t12] && r8[t12].stop && pt.test(t12) && a9(r8[t12]); 8878 for (t12 = n11.length; t12--; ) n11[t12].elem !== this || null != i11 && n11[t12].queue !== i11 || (n11[t12].anim.stop(o12), e13 = false, n11.splice(t12, 1)); 8879 !e13 && o12 || ce.dequeue(this, i11); 8880 }); 8881 }, finish: function(a9) { 8882 return false !== a9 && (a9 = a9 || "fx"), this.each(function() { 8883 var e12, t12 = _2.get(this), n11 = t12[a9 + "queue"], r8 = t12[a9 + "queueHooks"], i11 = ce.timers, o12 = n11 ? n11.length : 0; 8884 for (t12.finish = true, ce.queue(this, a9, []), r8 && r8.stop && r8.stop.call(this, true), e12 = i11.length; e12--; ) i11[e12].elem === this && i11[e12].queue === a9 && (i11[e12].anim.stop(true), i11.splice(e12, 1)); 8885 for (e12 = 0; e12 < o12; e12++) n11[e12] && n11[e12].finish && n11[e12].finish.call(this); 8886 delete t12.finish; 8887 }); 8888 } }), ce.each(["toggle", "show", "hide"], function(e12, r8) { 8889 var i11 = ce.fn[r8]; 8890 ce.fn[r8] = function(e13, t12, n11) { 8891 return null == e13 || "boolean" == typeof e13 ? i11.apply(this, arguments) : this.animate(gt(r8, true), e13, t12, n11); 8892 }; 8893 }), ce.each({ slideDown: gt("show"), slideUp: gt("hide"), slideToggle: gt("toggle"), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide" }, fadeToggle: { opacity: "toggle" } }, function(e12, r8) { 8894 ce.fn[e12] = function(e13, t12, n11) { 8895 return this.animate(r8, e13, t12, n11); 8896 }; 8897 }), ce.timers = [], ce.fx.tick = function() { 8898 var e12, t12 = 0, n11 = ce.timers; 8899 for (st = Date.now(); t12 < n11.length; t12++) (e12 = n11[t12])() || n11[t12] !== e12 || n11.splice(t12--, 1); 8900 n11.length || ce.fx.stop(), st = void 0; 8901 }, ce.fx.timer = function(e12) { 8902 ce.timers.push(e12), ce.fx.start(); 8903 }, ce.fx.interval = 13, ce.fx.start = function() { 8904 ut || (ut = true, dt()); 8905 }, ce.fx.stop = function() { 8906 ut = null; 8907 }, ce.fx.speeds = { slow: 600, fast: 200, _default: 400 }, ce.fn.delay = function(r8, e12) { 8908 return r8 = ce.fx && ce.fx.speeds[r8] || r8, e12 = e12 || "fx", this.queue(e12, function(e13, t12) { 8909 var n11 = ie.setTimeout(e13, r8); 8910 t12.stop = function() { 8911 ie.clearTimeout(n11); 8912 }; 8913 }); 8914 }, lt = C.createElement("input"), ct = C.createElement("select").appendChild(C.createElement("option")), lt.type = "checkbox", le.checkOn = "" !== lt.value, le.optSelected = ct.selected, (lt = C.createElement("input")).value = "t", lt.type = "radio", le.radioValue = "t" === lt.value; 8915 var mt, xt = ce.expr.attrHandle; 8916 ce.fn.extend({ attr: function(e12, t12) { 8917 return M3(this, ce.attr, e12, t12, 1 < arguments.length); 8918 }, removeAttr: function(e12) { 8919 return this.each(function() { 8920 ce.removeAttr(this, e12); 8921 }); 8922 } }), ce.extend({ attr: function(e12, t12, n11) { 8923 var r8, i11, o12 = e12.nodeType; 8924 if (3 !== o12 && 8 !== o12 && 2 !== o12) return "undefined" == typeof e12.getAttribute ? ce.prop(e12, t12, n11) : (1 === o12 && ce.isXMLDoc(e12) || (i11 = ce.attrHooks[t12.toLowerCase()] || (ce.expr.match.bool.test(t12) ? mt : void 0)), void 0 !== n11 ? null === n11 ? void ce.removeAttr(e12, t12) : i11 && "set" in i11 && void 0 !== (r8 = i11.set(e12, n11, t12)) ? r8 : (e12.setAttribute(t12, n11 + ""), n11) : i11 && "get" in i11 && null !== (r8 = i11.get(e12, t12)) ? r8 : null == (r8 = ce.find.attr(e12, t12)) ? void 0 : r8); 8925 }, attrHooks: { type: { set: function(e12, t12) { 8926 if (!le.radioValue && "radio" === t12 && fe(e12, "input")) { 8927 var n11 = e12.value; 8928 return e12.setAttribute("type", t12), n11 && (e12.value = n11), t12; 8929 } 8930 } } }, removeAttr: function(e12, t12) { 8931 var n11, r8 = 0, i11 = t12 && t12.match(D2); 8932 if (i11 && 1 === e12.nodeType) while (n11 = i11[r8++]) e12.removeAttribute(n11); 8933 } }), mt = { set: function(e12, t12, n11) { 8934 return false === t12 ? ce.removeAttr(e12, n11) : e12.setAttribute(n11, n11), n11; 8935 } }, ce.each(ce.expr.match.bool.source.match(/\w+/g), function(e12, t12) { 8936 var a9 = xt[t12] || ce.find.attr; 8937 xt[t12] = function(e13, t13, n11) { 8938 var r8, i11, o12 = t13.toLowerCase(); 8939 return n11 || (i11 = xt[o12], xt[o12] = r8, r8 = null != a9(e13, t13, n11) ? o12 : null, xt[o12] = i11), r8; 8940 }; 8941 }); 8942 var bt = /^(?:input|select|textarea|button)$/i, wt = /^(?:a|area)$/i; 8943 function Tt(e12) { 8944 return (e12.match(D2) || []).join(" "); 8945 } 8946 function Ct(e12) { 8947 return e12.getAttribute && e12.getAttribute("class") || ""; 8948 } 8949 function kt(e12) { 8950 return Array.isArray(e12) ? e12 : "string" == typeof e12 && e12.match(D2) || []; 8951 } 8952 ce.fn.extend({ prop: function(e12, t12) { 8953 return M3(this, ce.prop, e12, t12, 1 < arguments.length); 8954 }, removeProp: function(e12) { 8955 return this.each(function() { 8956 delete this[ce.propFix[e12] || e12]; 8957 }); 8958 } }), ce.extend({ prop: function(e12, t12, n11) { 8959 var r8, i11, o12 = e12.nodeType; 8960 if (3 !== o12 && 8 !== o12 && 2 !== o12) return 1 === o12 && ce.isXMLDoc(e12) || (t12 = ce.propFix[t12] || t12, i11 = ce.propHooks[t12]), void 0 !== n11 ? i11 && "set" in i11 && void 0 !== (r8 = i11.set(e12, n11, t12)) ? r8 : e12[t12] = n11 : i11 && "get" in i11 && null !== (r8 = i11.get(e12, t12)) ? r8 : e12[t12]; 8961 }, propHooks: { tabIndex: { get: function(e12) { 8962 var t12 = ce.find.attr(e12, "tabindex"); 8963 return t12 ? parseInt(t12, 10) : bt.test(e12.nodeName) || wt.test(e12.nodeName) && e12.href ? 0 : -1; 8964 } } }, propFix: { "for": "htmlFor", "class": "className" } }), le.optSelected || (ce.propHooks.selected = { get: function(e12) { 8965 var t12 = e12.parentNode; 8966 return t12 && t12.parentNode && t12.parentNode.selectedIndex, null; 8967 }, set: function(e12) { 8968 var t12 = e12.parentNode; 8969 t12 && (t12.selectedIndex, t12.parentNode && t12.parentNode.selectedIndex); 8970 } }), ce.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() { 8971 ce.propFix[this.toLowerCase()] = this; 8972 }), ce.fn.extend({ addClass: function(t12) { 8973 var e12, n11, r8, i11, o12, a9; 8974 return v3(t12) ? this.each(function(e13) { 8975 ce(this).addClass(t12.call(this, e13, Ct(this))); 8976 }) : (e12 = kt(t12)).length ? this.each(function() { 8977 if (r8 = Ct(this), n11 = 1 === this.nodeType && " " + Tt(r8) + " ") { 8978 for (o12 = 0; o12 < e12.length; o12++) i11 = e12[o12], n11.indexOf(" " + i11 + " ") < 0 && (n11 += i11 + " "); 8979 a9 = Tt(n11), r8 !== a9 && this.setAttribute("class", a9); 8980 } 8981 }) : this; 8982 }, removeClass: function(t12) { 8983 var e12, n11, r8, i11, o12, a9; 8984 return v3(t12) ? this.each(function(e13) { 8985 ce(this).removeClass(t12.call(this, e13, Ct(this))); 8986 }) : arguments.length ? (e12 = kt(t12)).length ? this.each(function() { 8987 if (r8 = Ct(this), n11 = 1 === this.nodeType && " " + Tt(r8) + " ") { 8988 for (o12 = 0; o12 < e12.length; o12++) { 8989 i11 = e12[o12]; 8990 while (-1 < n11.indexOf(" " + i11 + " ")) n11 = n11.replace(" " + i11 + " ", " "); 8991 } 8992 a9 = Tt(n11), r8 !== a9 && this.setAttribute("class", a9); 8993 } 8994 }) : this : this.attr("class", ""); 8995 }, toggleClass: function(t12, n11) { 8996 var e12, r8, i11, o12, a9 = typeof t12, s14 = "string" === a9 || Array.isArray(t12); 8997 return v3(t12) ? this.each(function(e13) { 8998 ce(this).toggleClass(t12.call(this, e13, Ct(this), n11), n11); 8999 }) : "boolean" == typeof n11 && s14 ? n11 ? this.addClass(t12) : this.removeClass(t12) : (e12 = kt(t12), this.each(function() { 9000 if (s14) for (o12 = ce(this), i11 = 0; i11 < e12.length; i11++) r8 = e12[i11], o12.hasClass(r8) ? o12.removeClass(r8) : o12.addClass(r8); 9001 else void 0 !== t12 && "boolean" !== a9 || ((r8 = Ct(this)) && _2.set(this, "__className__", r8), this.setAttribute && this.setAttribute("class", r8 || false === t12 ? "" : _2.get(this, "__className__") || "")); 9002 })); 9003 }, hasClass: function(e12) { 9004 var t12, n11, r8 = 0; 9005 t12 = " " + e12 + " "; 9006 while (n11 = this[r8++]) if (1 === n11.nodeType && -1 < (" " + Tt(Ct(n11)) + " ").indexOf(t12)) return true; 9007 return false; 9008 } }); 9009 var St = /\r/g; 9010 ce.fn.extend({ val: function(n11) { 9011 var r8, e12, i11, t12 = this[0]; 9012 return arguments.length ? (i11 = v3(n11), this.each(function(e13) { 9013 var t13; 9014 1 === this.nodeType && (null == (t13 = i11 ? n11.call(this, e13, ce(this).val()) : n11) ? t13 = "" : "number" == typeof t13 ? t13 += "" : Array.isArray(t13) && (t13 = ce.map(t13, function(e14) { 9015 return null == e14 ? "" : e14 + ""; 9016 })), (r8 = ce.valHooks[this.type] || ce.valHooks[this.nodeName.toLowerCase()]) && "set" in r8 && void 0 !== r8.set(this, t13, "value") || (this.value = t13)); 9017 })) : t12 ? (r8 = ce.valHooks[t12.type] || ce.valHooks[t12.nodeName.toLowerCase()]) && "get" in r8 && void 0 !== (e12 = r8.get(t12, "value")) ? e12 : "string" == typeof (e12 = t12.value) ? e12.replace(St, "") : null == e12 ? "" : e12 : void 0; 9018 } }), ce.extend({ valHooks: { option: { get: function(e12) { 9019 var t12 = ce.find.attr(e12, "value"); 9020 return null != t12 ? t12 : Tt(ce.text(e12)); 9021 } }, select: { get: function(e12) { 9022 var t12, n11, r8, i11 = e12.options, o12 = e12.selectedIndex, a9 = "select-one" === e12.type, s14 = a9 ? null : [], u6 = a9 ? o12 + 1 : i11.length; 9023 for (r8 = o12 < 0 ? u6 : a9 ? o12 : 0; r8 < u6; r8++) if (((n11 = i11[r8]).selected || r8 === o12) && !n11.disabled && (!n11.parentNode.disabled || !fe(n11.parentNode, "optgroup"))) { 9024 if (t12 = ce(n11).val(), a9) return t12; 9025 s14.push(t12); 9026 } 9027 return s14; 9028 }, set: function(e12, t12) { 9029 var n11, r8, i11 = e12.options, o12 = ce.makeArray(t12), a9 = i11.length; 9030 while (a9--) ((r8 = i11[a9]).selected = -1 < ce.inArray(ce.valHooks.option.get(r8), o12)) && (n11 = true); 9031 return n11 || (e12.selectedIndex = -1), o12; 9032 } } } }), ce.each(["radio", "checkbox"], function() { 9033 ce.valHooks[this] = { set: function(e12, t12) { 9034 if (Array.isArray(t12)) return e12.checked = -1 < ce.inArray(ce(e12).val(), t12); 9035 } }, le.checkOn || (ce.valHooks[this].get = function(e12) { 9036 return null === e12.getAttribute("value") ? "on" : e12.value; 9037 }); 9038 }); 9039 var Et = ie.location, jt = { guid: Date.now() }, At = /\?/; 9040 ce.parseXML = function(e12) { 9041 var t12, n11; 9042 if (!e12 || "string" != typeof e12) return null; 9043 try { 9044 t12 = new ie.DOMParser().parseFromString(e12, "text/xml"); 9045 } catch (e13) { 9046 } 9047 return n11 = t12 && t12.getElementsByTagName("parsererror")[0], t12 && !n11 || ce.error("Invalid XML: " + (n11 ? ce.map(n11.childNodes, function(e13) { 9048 return e13.textContent; 9049 }).join("\n") : e12)), t12; 9050 }; 9051 var Dt = /^(?:focusinfocus|focusoutblur)$/, Nt = function(e12) { 9052 e12.stopPropagation(); 9053 }; 9054 ce.extend(ce.event, { trigger: function(e12, t12, n11, r8) { 9055 var i11, o12, a9, s14, u6, l11, c6, f4, p3 = [n11 || C], d4 = ue.call(e12, "type") ? e12.type : e12, h5 = ue.call(e12, "namespace") ? e12.namespace.split(".") : []; 9056 if (o12 = f4 = a9 = n11 = n11 || C, 3 !== n11.nodeType && 8 !== n11.nodeType && !Dt.test(d4 + ce.event.triggered) && (-1 < d4.indexOf(".") && (d4 = (h5 = d4.split(".")).shift(), h5.sort()), u6 = d4.indexOf(":") < 0 && "on" + d4, (e12 = e12[ce.expando] ? e12 : new ce.Event(d4, "object" == typeof e12 && e12)).isTrigger = r8 ? 2 : 3, e12.namespace = h5.join("."), e12.rnamespace = e12.namespace ? new RegExp("(^|\\.)" + h5.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, e12.result = void 0, e12.target || (e12.target = n11), t12 = null == t12 ? [e12] : ce.makeArray(t12, [e12]), c6 = ce.event.special[d4] || {}, r8 || !c6.trigger || false !== c6.trigger.apply(n11, t12))) { 9057 if (!r8 && !c6.noBubble && !y3(n11)) { 9058 for (s14 = c6.delegateType || d4, Dt.test(s14 + d4) || (o12 = o12.parentNode); o12; o12 = o12.parentNode) p3.push(o12), a9 = o12; 9059 a9 === (n11.ownerDocument || C) && p3.push(a9.defaultView || a9.parentWindow || ie); 9060 } 9061 i11 = 0; 9062 while ((o12 = p3[i11++]) && !e12.isPropagationStopped()) f4 = o12, e12.type = 1 < i11 ? s14 : c6.bindType || d4, (l11 = (_2.get(o12, "events") || /* @__PURE__ */ Object.create(null))[e12.type] && _2.get(o12, "handle")) && l11.apply(o12, t12), (l11 = u6 && o12[u6]) && l11.apply && $4(o12) && (e12.result = l11.apply(o12, t12), false === e12.result && e12.preventDefault()); 9063 return e12.type = d4, r8 || e12.isDefaultPrevented() || c6._default && false !== c6._default.apply(p3.pop(), t12) || !$4(n11) || u6 && v3(n11[d4]) && !y3(n11) && ((a9 = n11[u6]) && (n11[u6] = null), ce.event.triggered = d4, e12.isPropagationStopped() && f4.addEventListener(d4, Nt), n11[d4](), e12.isPropagationStopped() && f4.removeEventListener(d4, Nt), ce.event.triggered = void 0, a9 && (n11[u6] = a9)), e12.result; 9064 } 9065 }, simulate: function(e12, t12, n11) { 9066 var r8 = ce.extend(new ce.Event(), n11, { type: e12, isSimulated: true }); 9067 ce.event.trigger(r8, null, t12); 9068 } }), ce.fn.extend({ trigger: function(e12, t12) { 9069 return this.each(function() { 9070 ce.event.trigger(e12, t12, this); 9071 }); 9072 }, triggerHandler: function(e12, t12) { 9073 var n11 = this[0]; 9074 if (n11) return ce.event.trigger(e12, t12, n11, true); 9075 } }); 9076 var qt = /\[\]$/, Lt = /\r?\n/g, Ht = /^(?:submit|button|image|reset|file)$/i, Ot = /^(?:input|select|textarea|keygen)/i; 9077 function Pt(n11, e12, r8, i11) { 9078 var t12; 9079 if (Array.isArray(e12)) ce.each(e12, function(e13, t13) { 9080 r8 || qt.test(n11) ? i11(n11, t13) : Pt(n11 + "[" + ("object" == typeof t13 && null != t13 ? e13 : "") + "]", t13, r8, i11); 9081 }); 9082 else if (r8 || "object" !== x2(e12)) i11(n11, e12); 9083 else for (t12 in e12) Pt(n11 + "[" + t12 + "]", e12[t12], r8, i11); 9084 } 9085 ce.param = function(e12, t12) { 9086 var n11, r8 = [], i11 = function(e13, t13) { 9087 var n12 = v3(t13) ? t13() : t13; 9088 r8[r8.length] = encodeURIComponent(e13) + "=" + encodeURIComponent(null == n12 ? "" : n12); 9089 }; 9090 if (null == e12) return ""; 9091 if (Array.isArray(e12) || e12.jquery && !ce.isPlainObject(e12)) ce.each(e12, function() { 9092 i11(this.name, this.value); 9093 }); 9094 else for (n11 in e12) Pt(n11, e12[n11], t12, i11); 9095 return r8.join("&"); 9096 }, ce.fn.extend({ serialize: function() { 9097 return ce.param(this.serializeArray()); 9098 }, serializeArray: function() { 9099 return this.map(function() { 9100 var e12 = ce.prop(this, "elements"); 9101 return e12 ? ce.makeArray(e12) : this; 9102 }).filter(function() { 9103 var e12 = this.type; 9104 return this.name && !ce(this).is(":disabled") && Ot.test(this.nodeName) && !Ht.test(e12) && (this.checked || !we.test(e12)); 9105 }).map(function(e12, t12) { 9106 var n11 = ce(this).val(); 9107 return null == n11 ? null : Array.isArray(n11) ? ce.map(n11, function(e13) { 9108 return { name: t12.name, value: e13.replace(Lt, "\r\n") }; 9109 }) : { name: t12.name, value: n11.replace(Lt, "\r\n") }; 9110 }).get(); 9111 } }); 9112 var Mt = /%20/g, Rt = /#.*$/, It = /([?&])_=[^&]*/, Wt = /^(.*?):[ \t]*([^\r\n]*)$/gm, Ft = /^(?:GET|HEAD)$/, $t = /^\/\//, Bt = {}, _t = {}, zt = "*/".concat("*"), Xt = C.createElement("a"); 9113 function Ut(o12) { 9114 return function(e12, t12) { 9115 "string" != typeof e12 && (t12 = e12, e12 = "*"); 9116 var n11, r8 = 0, i11 = e12.toLowerCase().match(D2) || []; 9117 if (v3(t12)) while (n11 = i11[r8++]) "+" === n11[0] ? (n11 = n11.slice(1) || "*", (o12[n11] = o12[n11] || []).unshift(t12)) : (o12[n11] = o12[n11] || []).push(t12); 9118 }; 9119 } 9120 function Vt(t12, i11, o12, a9) { 9121 var s14 = {}, u6 = t12 === _t; 9122 function l11(e12) { 9123 var r8; 9124 return s14[e12] = true, ce.each(t12[e12] || [], function(e13, t13) { 9125 var n11 = t13(i11, o12, a9); 9126 return "string" != typeof n11 || u6 || s14[n11] ? u6 ? !(r8 = n11) : void 0 : (i11.dataTypes.unshift(n11), l11(n11), false); 9127 }), r8; 9128 } 9129 return l11(i11.dataTypes[0]) || !s14["*"] && l11("*"); 9130 } 9131 function Gt(e12, t12) { 9132 var n11, r8, i11 = ce.ajaxSettings.flatOptions || {}; 9133 for (n11 in t12) void 0 !== t12[n11] && ((i11[n11] ? e12 : r8 || (r8 = {}))[n11] = t12[n11]); 9134 return r8 && ce.extend(true, e12, r8), e12; 9135 } 9136 Xt.href = Et.href, ce.extend({ active: 0, lastModified: {}, etag: {}, ajaxSettings: { url: Et.href, type: "GET", isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol), global: true, processData: true, async: true, contentType: "application/x-www-form-urlencoded; charset=UTF-8", accepts: { "*": zt, text: "text/plain", html: "text/html", xml: "application/xml, text/xml", json: "application/json, text/javascript" }, contents: { xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/ }, responseFields: { xml: "responseXML", text: "responseText", json: "responseJSON" }, converters: { "* text": String, "text html": true, "text json": JSON.parse, "text xml": ce.parseXML }, flatOptions: { url: true, context: true } }, ajaxSetup: function(e12, t12) { 9137 return t12 ? Gt(Gt(e12, ce.ajaxSettings), t12) : Gt(ce.ajaxSettings, e12); 9138 }, ajaxPrefilter: Ut(Bt), ajaxTransport: Ut(_t), ajax: function(e12, t12) { 9139 "object" == typeof e12 && (t12 = e12, e12 = void 0), t12 = t12 || {}; 9140 var c6, f4, p3, n11, d4, r8, h5, g3, i11, o12, v4 = ce.ajaxSetup({}, t12), y4 = v4.context || v4, m4 = v4.context && (y4.nodeType || y4.jquery) ? ce(y4) : ce.event, x3 = ce.Deferred(), b4 = ce.Callbacks("once memory"), w4 = v4.statusCode || {}, a9 = {}, s14 = {}, u6 = "canceled", T2 = { readyState: 0, getResponseHeader: function(e13) { 9141 var t13; 9142 if (h5) { 9143 if (!n11) { 9144 n11 = {}; 9145 while (t13 = Wt.exec(p3)) n11[t13[1].toLowerCase() + " "] = (n11[t13[1].toLowerCase() + " "] || []).concat(t13[2]); 9146 } 9147 t13 = n11[e13.toLowerCase() + " "]; 9148 } 9149 return null == t13 ? null : t13.join(", "); 9150 }, getAllResponseHeaders: function() { 9151 return h5 ? p3 : null; 9152 }, setRequestHeader: function(e13, t13) { 9153 return null == h5 && (e13 = s14[e13.toLowerCase()] = s14[e13.toLowerCase()] || e13, a9[e13] = t13), this; 9154 }, overrideMimeType: function(e13) { 9155 return null == h5 && (v4.mimeType = e13), this; 9156 }, statusCode: function(e13) { 9157 var t13; 9158 if (e13) if (h5) T2.always(e13[T2.status]); 9159 else for (t13 in e13) w4[t13] = [w4[t13], e13[t13]]; 9160 return this; 9161 }, abort: function(e13) { 9162 var t13 = e13 || u6; 9163 return c6 && c6.abort(t13), l11(0, t13), this; 9164 } }; 9165 if (x3.promise(T2), v4.url = ((e12 || v4.url || Et.href) + "").replace($t, Et.protocol + "//"), v4.type = t12.method || t12.type || v4.method || v4.type, v4.dataTypes = (v4.dataType || "*").toLowerCase().match(D2) || [""], null == v4.crossDomain) { 9166 r8 = C.createElement("a"); 9167 try { 9168 r8.href = v4.url, r8.href = r8.href, v4.crossDomain = Xt.protocol + "//" + Xt.host != r8.protocol + "//" + r8.host; 9169 } catch (e13) { 9170 v4.crossDomain = true; 9171 } 9172 } 9173 if (v4.data && v4.processData && "string" != typeof v4.data && (v4.data = ce.param(v4.data, v4.traditional)), Vt(Bt, v4, t12, T2), h5) return T2; 9174 for (i11 in (g3 = ce.event && v4.global) && 0 == ce.active++ && ce.event.trigger("ajaxStart"), v4.type = v4.type.toUpperCase(), v4.hasContent = !Ft.test(v4.type), f4 = v4.url.replace(Rt, ""), v4.hasContent ? v4.data && v4.processData && 0 === (v4.contentType || "").indexOf("application/x-www-form-urlencoded") && (v4.data = v4.data.replace(Mt, "+")) : (o12 = v4.url.slice(f4.length), v4.data && (v4.processData || "string" == typeof v4.data) && (f4 += (At.test(f4) ? "&" : "?") + v4.data, delete v4.data), false === v4.cache && (f4 = f4.replace(It, "$1"), o12 = (At.test(f4) ? "&" : "?") + "_=" + jt.guid++ + o12), v4.url = f4 + o12), v4.ifModified && (ce.lastModified[f4] && T2.setRequestHeader("If-Modified-Since", ce.lastModified[f4]), ce.etag[f4] && T2.setRequestHeader("If-None-Match", ce.etag[f4])), (v4.data && v4.hasContent && false !== v4.contentType || t12.contentType) && T2.setRequestHeader("Content-Type", v4.contentType), T2.setRequestHeader("Accept", v4.dataTypes[0] && v4.accepts[v4.dataTypes[0]] ? v4.accepts[v4.dataTypes[0]] + ("*" !== v4.dataTypes[0] ? ", " + zt + "; q=0.01" : "") : v4.accepts["*"]), v4.headers) T2.setRequestHeader(i11, v4.headers[i11]); 9175 if (v4.beforeSend && (false === v4.beforeSend.call(y4, T2, v4) || h5)) return T2.abort(); 9176 if (u6 = "abort", b4.add(v4.complete), T2.done(v4.success), T2.fail(v4.error), c6 = Vt(_t, v4, t12, T2)) { 9177 if (T2.readyState = 1, g3 && m4.trigger("ajaxSend", [T2, v4]), h5) return T2; 9178 v4.async && 0 < v4.timeout && (d4 = ie.setTimeout(function() { 9179 T2.abort("timeout"); 9180 }, v4.timeout)); 9181 try { 9182 h5 = false, c6.send(a9, l11); 9183 } catch (e13) { 9184 if (h5) throw e13; 9185 l11(-1, e13); 9186 } 9187 } else l11(-1, "No Transport"); 9188 function l11(e13, t13, n12, r9) { 9189 var i12, o13, a10, s15, u7, l12 = t13; 9190 h5 || (h5 = true, d4 && ie.clearTimeout(d4), c6 = void 0, p3 = r9 || "", T2.readyState = 0 < e13 ? 4 : 0, i12 = 200 <= e13 && e13 < 300 || 304 === e13, n12 && (s15 = (function(e14, t14, n13) { 9191 var r10, i13, o14, a11, s16 = e14.contents, u8 = e14.dataTypes; 9192 while ("*" === u8[0]) u8.shift(), void 0 === r10 && (r10 = e14.mimeType || t14.getResponseHeader("Content-Type")); 9193 if (r10) { 9194 for (i13 in s16) if (s16[i13] && s16[i13].test(r10)) { 9195 u8.unshift(i13); 9196 break; 9197 } 9198 } 9199 if (u8[0] in n13) o14 = u8[0]; 9200 else { 9201 for (i13 in n13) { 9202 if (!u8[0] || e14.converters[i13 + " " + u8[0]]) { 9203 o14 = i13; 9204 break; 9205 } 9206 a11 || (a11 = i13); 9207 } 9208 o14 = o14 || a11; 9209 } 9210 if (o14) return o14 !== u8[0] && u8.unshift(o14), n13[o14]; 9211 })(v4, T2, n12)), !i12 && -1 < ce.inArray("script", v4.dataTypes) && ce.inArray("json", v4.dataTypes) < 0 && (v4.converters["text script"] = function() { 9212 }), s15 = (function(e14, t14, n13, r10) { 9213 var i13, o14, a11, s16, u8, l13 = {}, c7 = e14.dataTypes.slice(); 9214 if (c7[1]) for (a11 in e14.converters) l13[a11.toLowerCase()] = e14.converters[a11]; 9215 o14 = c7.shift(); 9216 while (o14) if (e14.responseFields[o14] && (n13[e14.responseFields[o14]] = t14), !u8 && r10 && e14.dataFilter && (t14 = e14.dataFilter(t14, e14.dataType)), u8 = o14, o14 = c7.shift()) { 9217 if ("*" === o14) o14 = u8; 9218 else if ("*" !== u8 && u8 !== o14) { 9219 if (!(a11 = l13[u8 + " " + o14] || l13["* " + o14])) { 9220 for (i13 in l13) if ((s16 = i13.split(" "))[1] === o14 && (a11 = l13[u8 + " " + s16[0]] || l13["* " + s16[0]])) { 9221 true === a11 ? a11 = l13[i13] : true !== l13[i13] && (o14 = s16[0], c7.unshift(s16[1])); 9222 break; 9223 } 9224 } 9225 if (true !== a11) if (a11 && e14["throws"]) t14 = a11(t14); 9226 else try { 9227 t14 = a11(t14); 9228 } catch (e15) { 9229 return { state: "parsererror", error: a11 ? e15 : "No conversion from " + u8 + " to " + o14 }; 9230 } 9231 } 9232 } 9233 return { state: "success", data: t14 }; 9234 })(v4, s15, T2, i12), i12 ? (v4.ifModified && ((u7 = T2.getResponseHeader("Last-Modified")) && (ce.lastModified[f4] = u7), (u7 = T2.getResponseHeader("etag")) && (ce.etag[f4] = u7)), 204 === e13 || "HEAD" === v4.type ? l12 = "nocontent" : 304 === e13 ? l12 = "notmodified" : (l12 = s15.state, o13 = s15.data, i12 = !(a10 = s15.error))) : (a10 = l12, !e13 && l12 || (l12 = "error", e13 < 0 && (e13 = 0))), T2.status = e13, T2.statusText = (t13 || l12) + "", i12 ? x3.resolveWith(y4, [o13, l12, T2]) : x3.rejectWith(y4, [T2, l12, a10]), T2.statusCode(w4), w4 = void 0, g3 && m4.trigger(i12 ? "ajaxSuccess" : "ajaxError", [T2, v4, i12 ? o13 : a10]), b4.fireWith(y4, [T2, l12]), g3 && (m4.trigger("ajaxComplete", [T2, v4]), --ce.active || ce.event.trigger("ajaxStop"))); 9235 } 9236 return T2; 9237 }, getJSON: function(e12, t12, n11) { 9238 return ce.get(e12, t12, n11, "json"); 9239 }, getScript: function(e12, t12) { 9240 return ce.get(e12, void 0, t12, "script"); 9241 } }), ce.each(["get", "post"], function(e12, i11) { 9242 ce[i11] = function(e13, t12, n11, r8) { 9243 return v3(t12) && (r8 = r8 || n11, n11 = t12, t12 = void 0), ce.ajax(ce.extend({ url: e13, type: i11, dataType: r8, data: t12, success: n11 }, ce.isPlainObject(e13) && e13)); 9244 }; 9245 }), ce.ajaxPrefilter(function(e12) { 9246 var t12; 9247 for (t12 in e12.headers) "content-type" === t12.toLowerCase() && (e12.contentType = e12.headers[t12] || ""); 9248 }), ce._evalUrl = function(e12, t12, n11) { 9249 return ce.ajax({ url: e12, type: "GET", dataType: "script", cache: true, async: false, global: false, converters: { "text script": function() { 9250 } }, dataFilter: function(e13) { 9251 ce.globalEval(e13, t12, n11); 9252 } }); 9253 }, ce.fn.extend({ wrapAll: function(e12) { 9254 var t12; 9255 return this[0] && (v3(e12) && (e12 = e12.call(this[0])), t12 = ce(e12, this[0].ownerDocument).eq(0).clone(true), this[0].parentNode && t12.insertBefore(this[0]), t12.map(function() { 9256 var e13 = this; 9257 while (e13.firstElementChild) e13 = e13.firstElementChild; 9258 return e13; 9259 }).append(this)), this; 9260 }, wrapInner: function(n11) { 9261 return v3(n11) ? this.each(function(e12) { 9262 ce(this).wrapInner(n11.call(this, e12)); 9263 }) : this.each(function() { 9264 var e12 = ce(this), t12 = e12.contents(); 9265 t12.length ? t12.wrapAll(n11) : e12.append(n11); 9266 }); 9267 }, wrap: function(t12) { 9268 var n11 = v3(t12); 9269 return this.each(function(e12) { 9270 ce(this).wrapAll(n11 ? t12.call(this, e12) : t12); 9271 }); 9272 }, unwrap: function(e12) { 9273 return this.parent(e12).not("body").each(function() { 9274 ce(this).replaceWith(this.childNodes); 9275 }), this; 9276 } }), ce.expr.pseudos.hidden = function(e12) { 9277 return !ce.expr.pseudos.visible(e12); 9278 }, ce.expr.pseudos.visible = function(e12) { 9279 return !!(e12.offsetWidth || e12.offsetHeight || e12.getClientRects().length); 9280 }, ce.ajaxSettings.xhr = function() { 9281 try { 9282 return new ie.XMLHttpRequest(); 9283 } catch (e12) { 9284 } 9285 }; 9286 var Yt = { 0: 200, 1223: 204 }, Qt = ce.ajaxSettings.xhr(); 9287 le.cors = !!Qt && "withCredentials" in Qt, le.ajax = Qt = !!Qt, ce.ajaxTransport(function(i11) { 9288 var o12, a9; 9289 if (le.cors || Qt && !i11.crossDomain) return { send: function(e12, t12) { 9290 var n11, r8 = i11.xhr(); 9291 if (r8.open(i11.type, i11.url, i11.async, i11.username, i11.password), i11.xhrFields) for (n11 in i11.xhrFields) r8[n11] = i11.xhrFields[n11]; 9292 for (n11 in i11.mimeType && r8.overrideMimeType && r8.overrideMimeType(i11.mimeType), i11.crossDomain || e12["X-Requested-With"] || (e12["X-Requested-With"] = "XMLHttpRequest"), e12) r8.setRequestHeader(n11, e12[n11]); 9293 o12 = function(e13) { 9294 return function() { 9295 o12 && (o12 = a9 = r8.onload = r8.onerror = r8.onabort = r8.ontimeout = r8.onreadystatechange = null, "abort" === e13 ? r8.abort() : "error" === e13 ? "number" != typeof r8.status ? t12(0, "error") : t12(r8.status, r8.statusText) : t12(Yt[r8.status] || r8.status, r8.statusText, "text" !== (r8.responseType || "text") || "string" != typeof r8.responseText ? { binary: r8.response } : { text: r8.responseText }, r8.getAllResponseHeaders())); 9296 }; 9297 }, r8.onload = o12(), a9 = r8.onerror = r8.ontimeout = o12("error"), void 0 !== r8.onabort ? r8.onabort = a9 : r8.onreadystatechange = function() { 9298 4 === r8.readyState && ie.setTimeout(function() { 9299 o12 && a9(); 9300 }); 9301 }, o12 = o12("abort"); 9302 try { 9303 r8.send(i11.hasContent && i11.data || null); 9304 } catch (e13) { 9305 if (o12) throw e13; 9306 } 9307 }, abort: function() { 9308 o12 && o12(); 9309 } }; 9310 }), ce.ajaxPrefilter(function(e12) { 9311 e12.crossDomain && (e12.contents.script = false); 9312 }), ce.ajaxSetup({ accepts: { script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" }, contents: { script: /\b(?:java|ecma)script\b/ }, converters: { "text script": function(e12) { 9313 return ce.globalEval(e12), e12; 9314 } } }), ce.ajaxPrefilter("script", function(e12) { 9315 void 0 === e12.cache && (e12.cache = false), e12.crossDomain && (e12.type = "GET"); 9316 }), ce.ajaxTransport("script", function(n11) { 9317 var r8, i11; 9318 if (n11.crossDomain || n11.scriptAttrs) return { send: function(e12, t12) { 9319 r8 = ce("<script>").attr(n11.scriptAttrs || {}).prop({ charset: n11.scriptCharset, src: n11.url }).on("load error", i11 = function(e13) { 9320 r8.remove(), i11 = null, e13 && t12("error" === e13.type ? 404 : 200, e13.type); 9321 }), C.head.appendChild(r8[0]); 9322 }, abort: function() { 9323 i11 && i11(); 9324 } }; 9325 }); 9326 var Jt, Kt = [], Zt = /(=)\?(?=&|$)|\?\?/; 9327 ce.ajaxSetup({ jsonp: "callback", jsonpCallback: function() { 9328 var e12 = Kt.pop() || ce.expando + "_" + jt.guid++; 9329 return this[e12] = true, e12; 9330 } }), ce.ajaxPrefilter("json jsonp", function(e12, t12, n11) { 9331 var r8, i11, o12, a9 = false !== e12.jsonp && (Zt.test(e12.url) ? "url" : "string" == typeof e12.data && 0 === (e12.contentType || "").indexOf("application/x-www-form-urlencoded") && Zt.test(e12.data) && "data"); 9332 if (a9 || "jsonp" === e12.dataTypes[0]) return r8 = e12.jsonpCallback = v3(e12.jsonpCallback) ? e12.jsonpCallback() : e12.jsonpCallback, a9 ? e12[a9] = e12[a9].replace(Zt, "$1" + r8) : false !== e12.jsonp && (e12.url += (At.test(e12.url) ? "&" : "?") + e12.jsonp + "=" + r8), e12.converters["script json"] = function() { 9333 return o12 || ce.error(r8 + " was not called"), o12[0]; 9334 }, e12.dataTypes[0] = "json", i11 = ie[r8], ie[r8] = function() { 9335 o12 = arguments; 9336 }, n11.always(function() { 9337 void 0 === i11 ? ce(ie).removeProp(r8) : ie[r8] = i11, e12[r8] && (e12.jsonpCallback = t12.jsonpCallback, Kt.push(r8)), o12 && v3(i11) && i11(o12[0]), o12 = i11 = void 0; 9338 }), "script"; 9339 }), le.createHTMLDocument = ((Jt = C.implementation.createHTMLDocument("").body).innerHTML = "<form></form><form></form>", 2 === Jt.childNodes.length), ce.parseHTML = function(e12, t12, n11) { 9340 return "string" != typeof e12 ? [] : ("boolean" == typeof t12 && (n11 = t12, t12 = false), t12 || (le.createHTMLDocument ? ((r8 = (t12 = C.implementation.createHTMLDocument("")).createElement("base")).href = C.location.href, t12.head.appendChild(r8)) : t12 = C), o12 = !n11 && [], (i11 = w3.exec(e12)) ? [t12.createElement(i11[1])] : (i11 = Ae([e12], t12, o12), o12 && o12.length && ce(o12).remove(), ce.merge([], i11.childNodes))); 9341 var r8, i11, o12; 9342 }, ce.fn.load = function(e12, t12, n11) { 9343 var r8, i11, o12, a9 = this, s14 = e12.indexOf(" "); 9344 return -1 < s14 && (r8 = Tt(e12.slice(s14)), e12 = e12.slice(0, s14)), v3(t12) ? (n11 = t12, t12 = void 0) : t12 && "object" == typeof t12 && (i11 = "POST"), 0 < a9.length && ce.ajax({ url: e12, type: i11 || "GET", dataType: "html", data: t12 }).done(function(e13) { 9345 o12 = arguments, a9.html(r8 ? ce("<div>").append(ce.parseHTML(e13)).find(r8) : e13); 9346 }).always(n11 && function(e13, t13) { 9347 a9.each(function() { 9348 n11.apply(this, o12 || [e13.responseText, t13, e13]); 9349 }); 9350 }), this; 9351 }, ce.expr.pseudos.animated = function(t12) { 9352 return ce.grep(ce.timers, function(e12) { 9353 return t12 === e12.elem; 9354 }).length; 9355 }, ce.offset = { setOffset: function(e12, t12, n11) { 9356 var r8, i11, o12, a9, s14, u6, l11 = ce.css(e12, "position"), c6 = ce(e12), f4 = {}; 9357 "static" === l11 && (e12.style.position = "relative"), s14 = c6.offset(), o12 = ce.css(e12, "top"), u6 = ce.css(e12, "left"), ("absolute" === l11 || "fixed" === l11) && -1 < (o12 + u6).indexOf("auto") ? (a9 = (r8 = c6.position()).top, i11 = r8.left) : (a9 = parseFloat(o12) || 0, i11 = parseFloat(u6) || 0), v3(t12) && (t12 = t12.call(e12, n11, ce.extend({}, s14))), null != t12.top && (f4.top = t12.top - s14.top + a9), null != t12.left && (f4.left = t12.left - s14.left + i11), "using" in t12 ? t12.using.call(e12, f4) : c6.css(f4); 9358 } }, ce.fn.extend({ offset: function(t12) { 9359 if (arguments.length) return void 0 === t12 ? this : this.each(function(e13) { 9360 ce.offset.setOffset(this, t12, e13); 9361 }); 9362 var e12, n11, r8 = this[0]; 9363 return r8 ? r8.getClientRects().length ? (e12 = r8.getBoundingClientRect(), n11 = r8.ownerDocument.defaultView, { top: e12.top + n11.pageYOffset, left: e12.left + n11.pageXOffset }) : { top: 0, left: 0 } : void 0; 9364 }, position: function() { 9365 if (this[0]) { 9366 var e12, t12, n11, r8 = this[0], i11 = { top: 0, left: 0 }; 9367 if ("fixed" === ce.css(r8, "position")) t12 = r8.getBoundingClientRect(); 9368 else { 9369 t12 = this.offset(), n11 = r8.ownerDocument, e12 = r8.offsetParent || n11.documentElement; 9370 while (e12 && (e12 === n11.body || e12 === n11.documentElement) && "static" === ce.css(e12, "position")) e12 = e12.parentNode; 9371 e12 && e12 !== r8 && 1 === e12.nodeType && ((i11 = ce(e12).offset()).top += ce.css(e12, "borderTopWidth", true), i11.left += ce.css(e12, "borderLeftWidth", true)); 9372 } 9373 return { top: t12.top - i11.top - ce.css(r8, "marginTop", true), left: t12.left - i11.left - ce.css(r8, "marginLeft", true) }; 9374 } 9375 }, offsetParent: function() { 9376 return this.map(function() { 9377 var e12 = this.offsetParent; 9378 while (e12 && "static" === ce.css(e12, "position")) e12 = e12.offsetParent; 9379 return e12 || J; 9380 }); 9381 } }), ce.each({ scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function(t12, i11) { 9382 var o12 = "pageYOffset" === i11; 9383 ce.fn[t12] = function(e12) { 9384 return M3(this, function(e13, t13, n11) { 9385 var r8; 9386 if (y3(e13) ? r8 = e13 : 9 === e13.nodeType && (r8 = e13.defaultView), void 0 === n11) return r8 ? r8[i11] : e13[t13]; 9387 r8 ? r8.scrollTo(o12 ? r8.pageXOffset : n11, o12 ? n11 : r8.pageYOffset) : e13[t13] = n11; 9388 }, t12, e12, arguments.length); 9389 }; 9390 }), ce.each(["top", "left"], function(e12, n11) { 9391 ce.cssHooks[n11] = Ye(le.pixelPosition, function(e13, t12) { 9392 if (t12) return t12 = Ge(e13, n11), _e.test(t12) ? ce(e13).position()[n11] + "px" : t12; 9393 }); 9394 }), ce.each({ Height: "height", Width: "width" }, function(a9, s14) { 9395 ce.each({ padding: "inner" + a9, content: s14, "": "outer" + a9 }, function(r8, o12) { 9396 ce.fn[o12] = function(e12, t12) { 9397 var n11 = arguments.length && (r8 || "boolean" != typeof e12), i11 = r8 || (true === e12 || true === t12 ? "margin" : "border"); 9398 return M3(this, function(e13, t13, n12) { 9399 var r9; 9400 return y3(e13) ? 0 === o12.indexOf("outer") ? e13["inner" + a9] : e13.document.documentElement["client" + a9] : 9 === e13.nodeType ? (r9 = e13.documentElement, Math.max(e13.body["scroll" + a9], r9["scroll" + a9], e13.body["offset" + a9], r9["offset" + a9], r9["client" + a9])) : void 0 === n12 ? ce.css(e13, t13, i11) : ce.style(e13, t13, n12, i11); 9401 }, s14, n11 ? e12 : void 0, n11); 9402 }; 9403 }); 9404 }), ce.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(e12, t12) { 9405 ce.fn[t12] = function(e13) { 9406 return this.on(t12, e13); 9407 }; 9408 }), ce.fn.extend({ bind: function(e12, t12, n11) { 9409 return this.on(e12, null, t12, n11); 9410 }, unbind: function(e12, t12) { 9411 return this.off(e12, null, t12); 9412 }, delegate: function(e12, t12, n11, r8) { 9413 return this.on(t12, e12, n11, r8); 9414 }, undelegate: function(e12, t12, n11) { 9415 return 1 === arguments.length ? this.off(e12, "**") : this.off(t12, e12 || "**", n11); 9416 }, hover: function(e12, t12) { 9417 return this.on("mouseenter", e12).on("mouseleave", t12 || e12); 9418 } }), ce.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(e12, n11) { 9419 ce.fn[n11] = function(e13, t12) { 9420 return 0 < arguments.length ? this.on(n11, null, e13, t12) : this.trigger(n11); 9421 }; 9422 }); 9423 var en = /^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g; 9424 ce.proxy = function(e12, t12) { 9425 var n11, r8, i11; 9426 if ("string" == typeof t12 && (n11 = e12[t12], t12 = e12, e12 = n11), v3(e12)) return r8 = ae.call(arguments, 2), (i11 = function() { 9427 return e12.apply(t12 || this, r8.concat(ae.call(arguments))); 9428 }).guid = e12.guid = e12.guid || ce.guid++, i11; 9429 }, ce.holdReady = function(e12) { 9430 e12 ? ce.readyWait++ : ce.ready(true); 9431 }, ce.isArray = Array.isArray, ce.parseJSON = JSON.parse, ce.nodeName = fe, ce.isFunction = v3, ce.isWindow = y3, ce.camelCase = F, ce.type = x2, ce.now = Date.now, ce.isNumeric = function(e12) { 9432 var t12 = ce.type(e12); 9433 return ("number" === t12 || "string" === t12) && !isNaN(e12 - parseFloat(e12)); 9434 }, ce.trim = function(e12) { 9435 return null == e12 ? "" : (e12 + "").replace(en, "$1"); 9436 }, "function" == typeof define && define.amd && define("jquery", [], function() { 9437 return ce; 9438 }); 9439 var tn = ie.jQuery, nn = ie.$; 9440 return ce.noConflict = function(e12) { 9441 return ie.$ === ce && (ie.$ = nn), e12 && ie.jQuery === ce && (ie.jQuery = tn), ce; 9442 }, "undefined" == typeof e11 && (ie.jQuery = ie.$ = ce), ce; 9443 }); 9444 } 9445 }); 9446 9447
vendor: 210 bytes, lines 9447-9455
9447// node_modules/@fancyapps/ui/dist/utils/isString.js 9448 var t; 9449 var init_isString = __esm({ 9450 "node_modules/@fancyapps/ui/dist/utils/isString.js"() { 9451 t = (t11) => "string" == typeof t11; 9452 } 9453 }); 9454 9455
vendor: 248 bytes, lines 9455-9463
9455// node_modules/@fancyapps/ui/dist/utils/isNode.js 9456 var n; 9457 var init_isNode = __esm({ 9458 "node_modules/@fancyapps/ui/dist/utils/isNode.js"() { 9459 n = (n10) => n10 && null !== n10 && n10 instanceof Element && "nodeType" in n10; 9460 } 9461 }); 9462 9463
vendor: 1,083 bytes, lines 9463-9486
9463// node_modules/@fancyapps/ui/dist/utils/getScrollableParent.js 9464 var e, n2; 9465 var init_getScrollableParent = __esm({ 9466 "node_modules/@fancyapps/ui/dist/utils/getScrollableParent.js"() { 9467 e = function(e11) { 9468 if (!(e11 && e11 instanceof Element && e11.offsetParent)) return false; 9469 let n10 = false, i10 = false; 9470 if (e11.scrollWidth > e11.clientWidth) { 9471 const i11 = window.getComputedStyle(e11).overflowX, t11 = -1 !== i11.indexOf("hidden"), o11 = -1 !== i11.indexOf("clip"), d3 = -1 !== i11.indexOf("visible"); 9472 n10 = !t11 && !o11 && !d3; 9473 } 9474 if (e11.scrollHeight > e11.clientHeight) { 9475 const n11 = window.getComputedStyle(e11).overflowY, t11 = -1 !== n11.indexOf("hidden"), o11 = -1 !== n11.indexOf("clip"), d3 = -1 !== n11.indexOf("visible"); 9476 i10 = !t11 && !o11 && !d3; 9477 } 9478 return n10 || i10; 9479 }; 9480 n2 = function(i10, t11 = void 0) { 9481 return !i10 || i10 === document.body || t11 && i10 === t11 ? null : e(i10) ? i10 : n2(i10.parentElement, t11); 9482 }; 9483 } 9484 }); 9485 9486
vendor: 611 bytes, lines 9486-9502
9486// node_modules/@fancyapps/ui/dist/utils/strToHtml.js 9487 var e2; 9488 var init_strToHtml = __esm({ 9489 "node_modules/@fancyapps/ui/dist/utils/strToHtml.js"() { 9490 e2 = function(e11) { 9491 var t11 = new DOMParser().parseFromString(e11, "text/html").body; 9492 if (t11.childElementCount > 1) { 9493 for (var n10 = document.createElement("div"); t11.firstChild; ) n10.appendChild(t11.firstChild); 9494 return n10; 9495 } 9496 let r7 = t11.firstChild; 9497 return !r7 || r7 instanceof HTMLElement ? r7 : ((n10 = document.createElement("div")).appendChild(r7), n10); 9498 }; 9499 } 9500 }); 9501 9502
vendor: 265 bytes, lines 9502-9512
9502// node_modules/@fancyapps/ui/dist/utils/clamp.js 9503 var t2; 9504 var init_clamp = __esm({ 9505 "node_modules/@fancyapps/ui/dist/utils/clamp.js"() { 9506 t2 = function(t11 = 0, n10 = 0, a8 = 0) { 9507 return Math.max(Math.min(n10, a8), t11); 9508 }; 9509 } 9510 }); 9511 9512
vendor: 334 bytes, lines 9512-9520
9512// node_modules/@fancyapps/ui/dist/utils/isPlainObject.js 9513 var t3; 9514 var init_isPlainObject = __esm({ 9515 "node_modules/@fancyapps/ui/dist/utils/isPlainObject.js"() { 9516 t3 = (t11) => "object" == typeof t11 && null !== t11 && t11.constructor === Object && "[object Object]" === Object.prototype.toString.call(t11); 9517 } 9518 }); 9519 9520
vendor: 552 bytes, lines 9520-9537
9520// node_modules/@fancyapps/ui/dist/utils/isEqual.js 9521 function e3(e11) { 9522 return t3(e11) || Array.isArray(e11); 9523 } 9524 function n3(t11, r7) { 9525 const o11 = Object.keys(t11), c5 = Object.keys(r7); 9526 return o11.length === c5.length && o11.every((o12) => { 9527 const c6 = t11[o12], i10 = r7[o12]; 9528 return "function" == typeof c6 ? `${c6}` == `${i10}` : e3(c6) && e3(i10) ? n3(c6, i10) : c6 === i10; 9529 }); 9530 } 9531 var init_isEqual = __esm({ 9532 "node_modules/@fancyapps/ui/dist/utils/isEqual.js"() { 9533 init_isPlainObject(); 9534 } 9535 }); 9536 9537
vendor: 5,889 bytes, lines 9537-9672
9537// node_modules/@fancyapps/ui/dist/libs/tween.js 9538 function c() { 9539 let a8 = i.Initializing, f3 = o.Ease, l10 = 0, g2 = 0, p2 = c.Easings.Linear, m3 = 500, d3 = 0, b3 = 0, S = 0, h4 = 0, y3 = 1 / 0, E3 = 0.01, R2 = 0.01, M3 = false, j2 = {}, w3 = null, v3 = {}, O2 = {}, C = {}, L = 0, I2 = 0, D2 = r.Loop, z2 = c.Easings.Linear; 9540 const N2 = /* @__PURE__ */ new Map(); 9541 function V(n10, ...t11) { 9542 for (const e11 of N2.get(n10) || []) e11(...t11); 9543 } 9544 function q2(n10) { 9545 return g2 = 0, n10 ? w3 = setTimeout(() => { 9546 x2(); 9547 }, n10) : x2(), F; 9548 } 9549 function x2() { 9550 a8 = i.Running, V("start", v3, O2); 9551 } 9552 function A2() { 9553 if (a8 = i.Completed, C = {}, V("end", v3), a8 === i.Completed) if (l10 < L) { 9554 if (l10++, D2 === r.Reverse) { 9555 const n10 = Object.assign({}, j2); 9556 j2 = Object.assign({}, O2), O2 = n10; 9557 } 9558 q2(I2); 9559 } else l10 = 0; 9560 return F; 9561 } 9562 const F = { getState: function() { 9563 return a8; 9564 }, easing: function(n10) { 9565 return p2 = n10, f3 = o.Ease, C = {}, F; 9566 }, duration: function(n10) { 9567 return m3 = n10, F; 9568 }, spring: function(n10 = {}) { 9569 f3 = o.Spring; 9570 const t11 = { velocity: 0, mass: 1, tension: 170, friction: 26, restDelta: 0.1, restSpeed: 0.1, maxSpeed: 1 / 0, clamp: true }, { velocity: e11, mass: i10, tension: r7, friction: s13, restDelta: u5, restSpeed: a9, maxSpeed: c5, clamp: l11 } = Object.assign(Object.assign({}, t11), n10); 9571 return d3 = e11, b3 = i10, S = r7, h4 = s13, R2 = u5, E3 = a9, y3 = c5, M3 = l11, C = {}, F; 9572 }, isRunning: function() { 9573 return a8 === i.Running; 9574 }, isSpring: function() { 9575 return f3 === o.Spring; 9576 }, from: function(n10) { 9577 return v3 = Object.assign({}, n10), F; 9578 }, to: function(n10) { 9579 return O2 = n10, F; 9580 }, repeat: function(n10, t11 = 0, e11 = r.Loop, i10) { 9581 return L = n10, I2 = t11, D2 = e11, z2 = i10 || p2, F; 9582 }, on: function(n10, t11) { 9583 var e11, i10; 9584 return e11 = n10, i10 = t11, N2.set(e11, [...N2.get(e11) || [], i10]), F; 9585 }, off: function(n10, t11) { 9586 var e11, i10; 9587 return e11 = n10, i10 = t11, N2.has(e11) && N2.set(e11, N2.get(e11).filter((n11) => n11 !== i10)), F; 9588 }, start: function(n10) { 9589 return n3(v3, O2) || (a8 = i.Initializing, j2 = Object.assign({}, v3), s.add(this), u || (u = window.requestAnimationFrame(e4)), q2(n10)), F; 9590 }, pause: function() { 9591 return w3 && (clearTimeout(w3), w3 = null), a8 === i.Running && (a8 = i.Paused, V("pause", v3)), F; 9592 }, end: A2, tick: function(e11) { 9593 e11 > 50 && (e11 = 50), g2 += e11; 9594 let s13 = 0, u5 = false; 9595 if (a8 !== i.Running) return F; 9596 if (f3 === o.Ease) { 9597 s13 = t2(0, g2 / m3, 1), u5 = 1 === s13; 9598 const t11 = D2 === r.Reverse ? z2 : p2; 9599 for (const n10 in v3) v3[n10] = j2[n10] + (O2[n10] - j2[n10]) * t11(s13); 9600 } 9601 if (f3 === o.Spring) { 9602 const t11 = 1e-3 * e11; 9603 let i10 = 0; 9604 for (const e12 in v3) { 9605 const o11 = O2[e12]; 9606 let r7 = v3[e12]; 9607 if ("number" != typeof o11 || isNaN(o11) || "number" != typeof r7 || isNaN(r7)) continue; 9608 if (Math.abs(o11 - r7) <= R2) { 9609 v3[e12] = o11, C[e12] = 0; 9610 continue; 9611 } 9612 C[e12] || ("object" == typeof d3 && "number" == typeof d3[e12] ? C[e12] = d3[e12] : C[e12] = "number" == typeof d3 ? d3 : 0); 9613 let s14 = C[e12]; 9614 s14 = t2(-1 * Math.abs(y3), s14, Math.abs(y3)); 9615 const u6 = s14 * b3 * h4; 9616 s14 += ((r7 > o11 ? -1 : 1) * (Math.abs(o11 - r7) * S) - u6) / b3 * t11, r7 += s14 * t11; 9617 const a9 = v3[e12] > o11 ? r7 < o11 : r7 > o11; 9618 let c6 = Math.abs(s14) < E3 && Math.abs(o11 - r7) <= R2; 9619 M3 && a9 && (c6 = true), c6 ? (r7 = o11, s14 = 0) : i10++, v3[e12] = r7, C[e12] = s14; 9620 } 9621 u5 = !i10; 9622 } 9623 const c5 = Object.assign({}, O2); 9624 return V("step", v3, j2, O2, s13), u5 && a8 === i.Running && n3(O2, c5) && (a8 = i.Completed, A2()), F; 9625 }, getStartValues: function() { 9626 return j2; 9627 }, getCurrentValues: function() { 9628 return v3; 9629 }, getCurrentVelocities: function() { 9630 return C; 9631 }, getEndValues: function() { 9632 return O2; 9633 }, destroy: function() { 9634 a8 = i.Destroyed, w3 && (clearTimeout(w3), w3 = null), j2 = v3 = O2 = {}, s.delete(this); 9635 } }; 9636 return F; 9637 } 9638 var e4, i, o, r, s, u, a; 9639 var init_tween = __esm({ 9640 "node_modules/@fancyapps/ui/dist/libs/tween.js"() { 9641 init_clamp(); 9642 init_isEqual(); 9643 e4 = function(n10) { 9644 for (const t11 of s) t11.getState() === i.Running && t11.tick(a ? n10 - a : 0); 9645 a = n10, u = window.requestAnimationFrame(e4); 9646 }; 9647 !(function(n10) { 9648 n10[n10.Initializing = 0] = "Initializing", n10[n10.Running = 1] = "Running", n10[n10.Paused = 2] = "Paused", n10[n10.Completed = 3] = "Completed", n10[n10.Destroyed = 4] = "Destroyed"; 9649 })(i || (i = {})), (function(n10) { 9650 n10[n10.Spring = 0] = "Spring", n10[n10.Ease = 1] = "Ease"; 9651 })(o || (o = {})), (function(n10) { 9652 n10[n10.Loop = 0] = "Loop", n10[n10.Reverse = 1] = "Reverse"; 9653 })(r || (r = {})); 9654 s = /* @__PURE__ */ new Set(); 9655 u = null; 9656 a = 0; 9657 c.destroy = () => { 9658 for (const n10 of s) n10.destroy(); 9659 u && (cancelAnimationFrame(u), u = null); 9660 }, c.Easings = { Linear: function(n10) { 9661 return n10; 9662 }, EaseIn: function(n10) { 9663 return 0 === n10 ? 0 : Math.pow(2, 10 * n10 - 10); 9664 }, EaseOut: function(n10) { 9665 return 1 === n10 ? 1 : 1 - Math.pow(2, -10 * n10); 9666 }, EaseInOut: function(n10) { 9667 return 0 === n10 ? 0 : 1 === n10 ? 1 : n10 < 0.5 ? Math.pow(2, 20 * n10 - 10) / 2 : (2 - Math.pow(2, -20 * n10 + 10)) / 2; 9668 } }; 9669 } 9670 }); 9671 9672
vendor: 7,232 bytes, lines 9672-9799
9672// node_modules/@fancyapps/ui/dist/libs/gestures.js 9673 function e5(e11) { 9674 return "undefined" != typeof TouchEvent && e11 instanceof TouchEvent; 9675 } 9676 function t4(t11, n10) { 9677 const o11 = [], s13 = e5(t11) ? t11[n10] : t11 instanceof MouseEvent && ("changedTouches" === n10 || "mouseup" !== t11.type) ? [t11] : []; 9678 for (const e11 of s13) o11.push({ x: e11.clientX, y: e11.clientY, ts: Date.now() }); 9679 return o11; 9680 } 9681 function n4(e11) { 9682 return t4(e11, "touches"); 9683 } 9684 function o2(e11) { 9685 return t4(e11, "targetTouches"); 9686 } 9687 function s2(e11) { 9688 return t4(e11, "changedTouches"); 9689 } 9690 function i2(e11) { 9691 const t11 = e11[0], n10 = e11[1] || t11; 9692 return { x: (t11.x + n10.x) / 2, y: (t11.y + n10.y) / 2, ts: n10.ts }; 9693 } 9694 function r2(e11) { 9695 const t11 = e11[0], n10 = e11[1] || e11[0]; 9696 return t11 && n10 ? -1 * Math.sqrt((n10.x - t11.x) * (n10.x - t11.x) + (n10.y - t11.y) * (n10.y - t11.y)) : 0; 9697 } 9698 var c2, a2, u2, l, d, f; 9699 var init_gestures = __esm({ 9700 "node_modules/@fancyapps/ui/dist/libs/gestures.js"() { 9701 c2 = (e11) => { 9702 e11.cancelable && e11.preventDefault(); 9703 }; 9704 a2 = { passive: false }; 9705 u2 = { panThreshold: 5, swipeThreshold: 3, ignore: ["textarea", "input", "select", "[contenteditable]", "[data-selectable]", "[data-draggable]"] }; 9706 l = false; 9707 d = true; 9708 f = (e11, t11) => { 9709 let f3, h4, v3, g2 = Object.assign(Object.assign({}, u2), t11), p2 = [], m3 = [], E3 = [], w3 = false, y3 = false, T = false, b3 = false, M3 = 0, L = 0, x2 = 0, P = 0, D2 = 0, X = 0, Y = 0, j2 = 0, k3 = 0, R2 = [], z2 = 0, A2 = 0; 9710 const O2 = /* @__PURE__ */ new Map(); 9711 function S(e12) { 9712 const t12 = r2(m3), n10 = r2(E3), o11 = t12 && n10 ? t12 / n10 : 0, s13 = Math.abs(Y) > Math.abs(j2) ? Y : j2, i10 = { srcEvent: f3, isPanRecognized: w3, isSwipeRecognized: y3, firstTouch: p2, previousTouch: E3, currentTouch: m3, deltaX: x2, deltaY: P, offsetX: D2, offsetY: X, velocityX: Y, velocityY: j2, velocity: s13, angle: k3, axis: v3, scale: o11, center: h4 }; 9713 for (const t13 of O2.get(e12) || []) t13(i10); 9714 } 9715 function q2(e12) { 9716 const t12 = e12.target, n10 = e12.composedPath()[0], o11 = g2.ignore.join(","), s13 = (e13) => e13 && e13 instanceof HTMLElement && (e13.matches(o11) || e13.closest(o11)); 9717 if (s13(t12) || s13(n10)) return false; 9718 } 9719 function C(e12) { 9720 const t12 = Date.now(); 9721 if (R2 = R2.filter((e13) => !e13.ts || e13.ts > t12 - 100), e12 && R2.push(e12), Y = 0, j2 = 0, R2.length > 3) { 9722 const e13 = R2[0], t13 = R2[R2.length - 1]; 9723 if (e13 && t13) { 9724 const n10 = t13.x - e13.x, o11 = t13.y - e13.y, s13 = e13.ts && t13.ts ? t13.ts - e13.ts : 0; 9725 s13 > 0 && (Y = Math.abs(n10) > 3 ? n10 / (s13 / 30) : 0, j2 = Math.abs(o11) > 3 ? o11 / (s13 / 30) : 0); 9726 } 9727 } 9728 } 9729 function H2(e12) { 9730 if (false === q2(e12)) return; 9731 if ("undefined" != typeof MouseEvent && e12 instanceof MouseEvent) { 9732 if (l) return; 9733 } else l = true; 9734 if ("undefined" != typeof MouseEvent && e12 instanceof MouseEvent) { 9735 if (!e12.buttons || 0 !== e12.button) return; 9736 c2(e12); 9737 } 9738 e12 instanceof MouseEvent && (window.addEventListener("mousemove", I2), window.addEventListener("mouseup", B2)), window.addEventListener("blur", F), f3 = e12, m3 = o2(e12), p2 = [...m3], E3 = [], L = m3.length, h4 = i2(m3), 1 === L && (w3 = false, y3 = false, T = false), L && C(i2(m3)); 9739 const t12 = Date.now(), n10 = t12 - (M3 || t12); 9740 b3 = n10 > 0 && n10 <= 250 && 1 === L, M3 = t12, clearTimeout(z2), S("start"); 9741 } 9742 function I2(e12) { 9743 var t12; 9744 if (!p2.length) return; 9745 if (e12.defaultPrevented) return; 9746 if (false === q2(e12)) return; 9747 f3 = e12, E3 = [...m3], m3 = n4(e12); 9748 const o11 = i2(E3), s13 = i2(n4(e12)); 9749 if (C(s13), L = m3.length, h4 = s13, E3.length === m3.length ? (x2 = s13.x - o11.x, P = s13.y - o11.y) : (x2 = 0, P = 0), p2.length) { 9750 const e13 = i2(p2); 9751 D2 = s13.x - e13.x, X = s13.y - e13.y; 9752 } 9753 if (m3.length > 1) { 9754 const e13 = r2(m3), t13 = r2(E3); 9755 Math.abs(e13 - t13) >= 0.1 && (T = true, S("pinch")); 9756 } 9757 w3 || (w3 = Math.abs(D2) > g2.panThreshold || Math.abs(X) > g2.panThreshold, w3 && (d = false, clearTimeout(A2), A2 = 0, k3 = Math.abs(180 * Math.atan2(X, D2) / Math.PI), v3 = k3 > 45 && k3 < 135 ? "y" : "x", p2 = [...m3], E3 = [...m3], D2 = 0, X = 0, x2 = 0, P = 0, null === (t12 = window.getSelection()) || void 0 === t12 || t12.removeAllRanges(), S("panstart"))), w3 && (x2 || P) && S("pan"), S("move"); 9758 } 9759 function B2(e12) { 9760 if (f3 = e12, !p2.length) return; 9761 const t12 = o2(e12), n10 = s2(e12); 9762 if (L = t12.length, h4 = i2(n10), n10.length && C(i2(n10)), E3 = [...m3], m3 = [...t12], p2 = [...t12], L > 0) S("end"), w3 = false, y3 = false, R2 = []; 9763 else { 9764 const e13 = g2.swipeThreshold; 9765 (Math.abs(Y) > e13 || Math.abs(j2) > e13) && (y3 = true), w3 && S("panend"), y3 && S("swipe"), w3 || y3 || T || (S("tap"), b3 ? S("doubleTap") : z2 = setTimeout(function() { 9766 S("singleTap"); 9767 }, 250)), S("end"), G(); 9768 } 9769 } 9770 function F() { 9771 clearTimeout(z2), G(), w3 && S("panend"), S("end"); 9772 } 9773 function G() { 9774 l = false, w3 = false, y3 = false, b3 = false, L = 0, R2 = [], m3 = [], E3 = [], p2 = [], x2 = 0, P = 0, D2 = 0, X = 0, Y = 0, j2 = 0, k3 = 0, v3 = void 0, window.removeEventListener("mousemove", I2), window.removeEventListener("mouseup", B2), window.removeEventListener("blur", F), d || A2 || (A2 = setTimeout(() => { 9775 d = true, A2 = 0; 9776 }, 100)); 9777 } 9778 function J(e12) { 9779 const t12 = e12.target; 9780 l = false, t12 && !e12.defaultPrevented && (d || (c2(e12), e12.stopPropagation())); 9781 } 9782 const K = { init: function() { 9783 return e11 && (e11.addEventListener("click", J, a2), e11.addEventListener("mousedown", H2, a2), e11.addEventListener("touchstart", H2, a2), e11.addEventListener("touchmove", I2, a2), e11.addEventListener("touchend", B2), e11.addEventListener("touchcancel", B2)), K; 9784 }, on: function(e12, t12) { 9785 return (function(e13, t13) { 9786 O2.set(e13, [...O2.get(e13) || [], t13]); 9787 })(e12, t12), K; 9788 }, off: function(e12, t12) { 9789 return O2.has(e12) && O2.set(e12, O2.get(e12).filter((e13) => e13 !== t12)), K; 9790 }, isPointerDown: () => L > 0, destroy: function() { 9791 clearTimeout(z2), clearTimeout(A2), A2 = 0, e11 && (e11.removeEventListener("click", J, a2), e11.removeEventListener("mousedown", H2, a2), e11.removeEventListener("touchstart", H2, a2), e11.removeEventListener("touchmove", I2, a2), e11.removeEventListener("touchend", B2), e11.removeEventListener("touchcancel", B2)), e11 = null, G(); 9792 } }; 9793 return K; 9794 }; 9795 f.isClickAllowed = () => d; 9796 } 9797 }); 9798 9799
vendor: 679 bytes, lines 9799-9807
9799// node_modules/@fancyapps/ui/dist/panzoom/l10n/en_EN.js 9800 var e6; 9801 var init_en_EN = __esm({ 9802 "node_modules/@fancyapps/ui/dist/panzoom/l10n/en_EN.js"() { 9803 e6 = { IMAGE_ERROR: "This image couldn't be loaded. <br /> Please try again later.", MOVE_UP: "Move up", MOVE_DOWN: "Move down", MOVE_LEFT: "Move left", MOVE_RIGHT: "Move right", ZOOM_IN: "Zoom in", ZOOM_OUT: "Zoom out", TOGGLE_FULL: "Toggle zoom level", TOGGLE_1TO1: "Toggle zoom level", ITERATE_ZOOM: "Toggle zoom level", ROTATE_CCW: "Rotate counterclockwise", ROTATE_CW: "Rotate clockwise", FLIP_X: "Flip horizontally", FLIP_Y: "Flip vertically", RESET: "Reset", TOGGLE_FS: "Toggle fullscreen" }; 9804 } 9805 }); 9806 9807
vendor: 328 bytes, lines 9807-9819
9807// node_modules/@fancyapps/ui/dist/utils/addClass.js 9808 var s3; 9809 var init_addClass = __esm({ 9810 "node_modules/@fancyapps/ui/dist/utils/addClass.js"() { 9811 s3 = (s13, t11 = "") => { 9812 s13 && s13.classList && t11.split(" ").forEach((t12) => { 9813 t12 && s13.classList.add(t12); 9814 }); 9815 }; 9816 } 9817 }); 9818 9819
vendor: 340 bytes, lines 9819-9831
9819// node_modules/@fancyapps/ui/dist/utils/removeClass.js 9820 var s4; 9821 var init_removeClass = __esm({ 9822 "node_modules/@fancyapps/ui/dist/utils/removeClass.js"() { 9823 s4 = (s13, t11 = "") => { 9824 s13 && s13.classList && t11.split(" ").forEach((t12) => { 9825 t12 && s13.classList.remove(t12); 9826 }); 9827 }; 9828 } 9829 }); 9830 9831
vendor: 357 bytes, lines 9831-9843
9831// node_modules/@fancyapps/ui/dist/utils/toggleClass.js 9832 var s5; 9833 var init_toggleClass = __esm({ 9834 "node_modules/@fancyapps/ui/dist/utils/toggleClass.js"() { 9835 s5 = (s13, t11 = "", c5) => { 9836 s13 && s13.classList && t11.split(" ").forEach((t12) => { 9837 t12 && s13.classList.toggle(t12, c5 || false); 9838 }); 9839 }; 9840 } 9841 }); 9842 9843
vendor: 34,126 bytes, lines 9843-10489
9843// node_modules/@fancyapps/ui/dist/panzoom/panzoom.js 9844 var h, m, p, v, b, y, x, w, M, k, j, E; 9845 var init_panzoom = __esm({ 9846 "node_modules/@fancyapps/ui/dist/panzoom/panzoom.js"() { 9847 init_isString(); 9848 init_isNode(); 9849 init_getScrollableParent(); 9850 init_strToHtml(); 9851 init_clamp(); 9852 init_tween(); 9853 init_gestures(); 9854 init_en_EN(); 9855 init_addClass(); 9856 init_removeClass(); 9857 init_toggleClass(); 9858 init_isEqual(); 9859 h = (e11) => { 9860 e11.cancelable && e11.preventDefault(); 9861 }; 9862 m = (e11, t11 = 1e4) => (e11 = parseFloat(e11 + "") || 0, Math.round((e11 + Number.EPSILON) * t11) / t11); 9863 p = (e11) => e11 instanceof HTMLImageElement; 9864 !(function(e11) { 9865 e11.Reset = "reset", e11.Zoom = "zoom", e11.ZoomIn = "zoomIn", e11.ZoomOut = "zoomOut", e11.ZoomTo = "zoomTo", e11.ToggleCover = "toggleCover", e11.ToggleFull = "toggleFull", e11.ToggleMax = "toggleMax", e11.IterateZoom = "iterateZoom", e11.Pan = "pan", e11.Swipe = "swipe", e11.Move = "move", e11.MoveLeft = "moveLeft", e11.MoveRight = "moveRight", e11.MoveUp = "moveUp", e11.MoveDown = "moveDown", e11.RotateCCW = "rotateCCW", e11.RotateCW = "rotateCW", e11.FlipX = "flipX", e11.FlipY = "flipY", e11.ToggleFS = "toggleFS"; 9866 })(v || (v = {})), (function(e11) { 9867 e11.Cover = "cover", e11.Full = "full", e11.Max = "max"; 9868 })(b || (b = {})); 9869 y = { x: 0, y: 0, scale: 1, angle: 0, flipX: 1, flipY: 1 }; 9870 x = { bounds: true, classes: { container: "f-panzoom", wrapper: "f-panzoom__wrapper", content: "f-panzoom__content", viewport: "f-panzoom__viewport" }, clickAction: v.ToggleFull, dblClickAction: false, gestures: {}, height: "auto", l10n: e6, maxScale: 4, minScale: 1, mouseMoveFactor: 1, panMode: "drag", protected: false, singleClickAction: false, spinnerTpl: '<div class="f-spinner"></div>', wheelAction: v.Zoom, width: "auto" }; 9871 M = 0; 9872 k = 0; 9873 j = 0; 9874 E = (c5, b3 = {}, E3 = {}) => { 9875 let S, O2, A2, C, T, F, Z, L, P = 0, X = Object.assign(Object.assign({}, x), b3), Y = {}, R2 = Object.assign({}, y), z2 = Object.assign({}, y); 9876 const D2 = []; 9877 function I2(e11) { 9878 let t11 = X[e11]; 9879 return t11 && "function" == typeof t11 ? t11(je) : t11; 9880 } 9881 function W() { 9882 return c5 && c5.parentElement && S && 3 === P; 9883 } 9884 const q2 = /* @__PURE__ */ new Map(); 9885 function H2(e11, ...t11) { 9886 const n10 = [...q2.get(e11) || []]; 9887 X.on && n10.push(X.on[e11]); 9888 for (const e12 of n10) e12 && e12 instanceof Function && e12(je, ...t11); 9889 "*" !== e11 && H2("*", e11, ...t11); 9890 } 9891 function $4(e11) { 9892 if (!W()) return; 9893 const t11 = e11.target; 9894 if (n2(t11)) return; 9895 const o11 = Date.now(), a8 = [-e11.deltaX || 0, -e11.deltaY || 0, -e11.detail || 0].reduce(function(e12, t12) { 9896 return Math.abs(t12) > Math.abs(e12) ? t12 : e12; 9897 }), s13 = t2(-1, a8, 1); 9898 H2("wheel", e11, s13); 9899 const r7 = I2("wheelAction"); 9900 if (!r7) return; 9901 if (e11.defaultPrevented) return; 9902 const l10 = z2.scale; 9903 let c6 = l10 * (s13 > 0 ? 1.5 : 0.5); 9904 if (r7 === v.Zoom) { 9905 const t12 = Math.abs(e11.deltaY) < 100 && Math.abs(e11.deltaX) < 100; 9906 if (o11 - k < (t12 ? 200 : 45)) return void h(e11); 9907 k = o11; 9908 const n10 = ne(), a9 = se(); 9909 if (m(c6) < m(n10) && m(l10) <= m(n10) ? (j += Math.abs(s13), c6 = n10) : m(c6) > m(a9) && m(l10) >= m(a9) ? (j += Math.abs(s13), c6 = a9) : (j = 0, c6 = t2(n10, c6, a9)), j > 7) return; 9910 } 9911 switch (h(e11), r7) { 9912 case v.Pan: 9913 ue(r7, { srcEvent: e11, deltaX: 2 * -e11.deltaX, deltaY: 2 * -e11.deltaY }); 9914 break; 9915 case v.Zoom: 9916 ue(v.ZoomTo, { srcEvent: e11, scale: c6, center: { x: e11.clientX, y: e11.clientY } }); 9917 break; 9918 default: 9919 ue(r7, { srcEvent: e11 }); 9920 } 9921 } 9922 function _2(e11) { 9923 var n10, o11; 9924 const i10 = e11.composedPath()[0]; 9925 if (!f.isClickAllowed()) return; 9926 if (!n(i10) || e11.defaultPrevented) return; 9927 if (!(null == c5 ? void 0 : c5.contains(i10))) return; 9928 if (i10.hasAttribute("disabled") || i10.hasAttribute("aria-disabled") || i10.hasAttribute("data-carousel-go-prev") || i10.hasAttribute("data-carousel-go-next")) return; 9929 const a8 = i10.closest("[data-panzoom-action]"), s13 = null === (n10 = null == a8 ? void 0 : a8.dataset) || void 0 === n10 ? void 0 : n10.panzoomAction, r7 = (null === (o11 = null == a8 ? void 0 : a8.dataset) || void 0 === o11 ? void 0 : o11.panzoomValue) || ""; 9930 if (s13) { 9931 switch (h(e11), s13) { 9932 case v.ZoomTo: 9933 case v.ZoomIn: 9934 case v.ZoomOut: 9935 ue(s13, { scale: parseFloat(r7 || "") || void 0 }); 9936 break; 9937 case v.MoveLeft: 9938 case v.MoveRight: 9939 ue(s13, { deltaX: parseFloat(r7 || "") || void 0 }); 9940 break; 9941 case v.MoveUp: 9942 case v.MoveDown: 9943 ue(s13, { deltaY: parseFloat(r7 || "") || void 0 }); 9944 break; 9945 case v.ToggleFS: 9946 Me(); 9947 break; 9948 default: 9949 ue(s13); 9950 } 9951 return; 9952 } 9953 if (!(null == S ? void 0 : S.contains(i10))) return; 9954 const u5 = { srcEvent: e11 }; 9955 if (ue(I2("clickAction"), u5), I2("dblClickAction")) { 9956 const e12 = Date.now(), t11 = e12 - (M || e12); 9957 M = e12, t11 > 0 && t11 <= 250 ? (w && (clearTimeout(w), w = void 0), ue(I2("dblClickAction"), u5)) : w = setTimeout(() => { 9958 ue(I2("singleClickAction"), u5); 9959 }, 250); 9960 } 9961 } 9962 function B2(e11) { 9963 if (L = e11, !W() || !Q()) return; 9964 if (R2.scale <= 1 || z2.scale <= 1) return; 9965 if (((null == S ? void 0 : S.dataset.animationName) || "").indexOf("zoom") > -1) return; 9966 const t11 = ee(z2.scale); 9967 if (!t11) return; 9968 const { x: n10, y: o11 } = t11; 9969 ue(v.Pan, { deltaX: n10 - z2.x, deltaY: o11 - z2.y }); 9970 } 9971 function N2() { 9972 var e11; 9973 c5 && (s4(c5, "is-loading"), null === (e11 = c5.querySelector(".f-spinner")) || void 0 === e11 || e11.remove()); 9974 } 9975 function V() { 9976 if (!c5 || !O2) return; 9977 if (N2(), p(O2) && (!O2.complete || !O2.naturalWidth)) return P = 2, null == S || S.classList.add("has-error"), void H2("error"); 9978 H2("loaded"); 9979 const { width: e11, height: t11 } = J(); 9980 p(O2) && (O2.setAttribute("width", e11 + ""), O2.setAttribute("height", t11 + "")), S && (s4(S, "has-error"), p(O2) && (S.setAttribute("width", e11 + ""), S.setAttribute("height", t11 + ""), S.style.aspectRatio = `${e11 / t11 || ""}`)), F = c().on("start", (e12, t12) => { 9981 void 0 !== t12.angle && (t12.angle = 90 * Math.round(t12.angle / 90)), void 0 !== t12.flipX && (t12.flipX = t12.flipX > 0 ? 1 : -1), void 0 !== t12.flipY && (t12.flipY = t12.flipY > 0 ? 1 : -1), z2 = Object.assign(Object.assign({}, y), t12), ce(), H2("animationStart"); 9982 }).on("pause", (e12) => { 9983 z2 = Object.assign(Object.assign({}, y), e12); 9984 }).on("step", (e12) => { 9985 if (!W()) return void (null == F || F.end()); 9986 if (R2 = Object.assign(Object.assign({}, y), e12), Q() || !I2("bounds") || ye() || z2.scale > R2.scale || z2.scale < oe()) return void de(); 9987 const t12 = re(z2.scale); 9988 let n11 = false, o11 = false, a8 = false, s13 = false; 9989 R2.x < t12.x[0] && (n11 = true), R2.x > t12.x[1] && (o11 = true), R2.y < t12.y[0] && (s13 = true), R2.y > t12.y[1] && (a8 = true); 9990 let r7 = false, l10 = false, c6 = false, u5 = false; 9991 z2.x < t12.x[0] && (r7 = true), z2.x > t12.x[1] && (l10 = true), z2.y < t12.y[0] && (u5 = true), z2.y > t12.y[1] && (c6 = true); 9992 let d3 = false; 9993 (o11 && l10 || n11 && r7) && (z2.x = t2(t12.x[0], z2.x, t12.x[1]), d3 = true), (a8 && c6 || s13 && u5) && (z2.y = t2(t12.y[0], z2.y, t12.y[1]), d3 = true), d3 && F && F.spring({ tension: 94, friction: 17, maxSpeed: 555 * z2.scale, restDelta: 0.1, restSpeed: 0.1, velocity: F.getCurrentVelocities() }).from(R2).to(z2).start(), de(); 9994 }).on("end", () => { 9995 (null == T ? void 0 : T.isPointerDown()) || le(), (null == F ? void 0 : F.isRunning()) || (ce(), H2("animationEnd")); 9996 }), (function() { 9997 const e12 = I2("gestures"); 9998 if (!e12) return; 9999 if (!C || !O2) return; 10000 let t12 = false; 10001 T = f(C, e12).on("start", (e13) => { 10002 if (!I2("gestures")) return; 10003 if (!F) return; 10004 if (!W() || Q()) return; 10005 const n11 = e13.srcEvent; 10006 (R2.scale > 1 || e13.currentTouch.length > 1) && (null == n11 || n11.stopPropagation(), F.pause(), t12 = true), 1 === e13.currentTouch.length && H2("touchStart"); 10007 }).on("move", (e13) => { 10008 var n11; 10009 t12 && (1 !== z2.scale || e13.currentTouch.length > 1) && (h(e13.srcEvent), null === (n11 = e13.srcEvent) || void 0 === n11 || n11.stopPropagation()); 10010 }).on("pan", (e13) => { 10011 if (!t12) return; 10012 const n11 = e13.srcEvent; 10013 (1 !== z2.scale || e13.currentTouch.length > 1) && (h(n11), ue(v.Pan, e13)); 10014 }).on("swipe", (e13) => { 10015 t12 && z2.scale > 1 && ue(v.Swipe, e13); 10016 }).on("tap", (e13) => { 10017 H2("click", e13); 10018 }).on("singleTap", (e13) => { 10019 H2("singleClick", e13); 10020 }).on("doubleTap", (e13) => { 10021 H2("dblClick", e13); 10022 }).on("pinch", (e13) => { 10023 t12 && (e13.scale > oe() ? ue(v.ZoomIn, e13) : e13.scale < oe() ? ue(v.ZoomOut, e13) : ue(v.Pan, e13)); 10024 }).on("end", (e13) => { 10025 t12 && (e13.currentTouch.length ? (e13.srcEvent.stopPropagation(), h(e13.srcEvent), null == F || F.end()) : (t12 = false, ce(), le(), H2("touchEnd"))); 10026 }).init(); 10027 })(), C && (C.addEventListener("wheel", $4, { passive: false }), D2.push(() => { 10028 null == C || C.removeEventListener("wheel", $4, { passive: false }); 10029 })), null == c5 || c5.addEventListener("click", _2), null === document || void 0 === document || document.addEventListener("mousemove", B2), D2.push(() => { 10030 null == c5 || c5.removeEventListener("click", _2), null === document || void 0 === document || document.removeEventListener("mousemove", B2); 10031 }); 10032 const n10 = U(); 10033 R2 = Object.assign({}, n10), z2 = Object.assign({}, n10), P = 3, de(), ce(), H2("ready"), requestAnimationFrame(() => { 10034 3 === P && (N2(), C && (C.style.visibility = "")); 10035 }); 10036 } 10037 function U() { 10038 const e11 = Object.assign({}, I2("startPos") || {}); 10039 let t11 = e11.scale, n10 = 1; 10040 n10 = "string" == typeof t11 ? te(t11) : "number" == typeof t11 ? t11 : oe(); 10041 const o11 = Object.assign(Object.assign(Object.assign({}, y), e11), { scale: n10 }), i10 = Q() ? ee(n10) : void 0; 10042 if (i10) { 10043 const { x: e12, y: t12 } = i10; 10044 o11.x = e12, o11.y = t12; 10045 } 10046 return o11; 10047 } 10048 function G() { 10049 const e11 = { top: 0, left: 0, width: 0, height: 0 }; 10050 if (S) { 10051 const t11 = S.getBoundingClientRect(); 10052 z2.angle % 180 == 90 ? (e11.top = t11.top + 0.5 * t11.height - 0.5 * t11.width, e11.left = t11.left + 0.5 * t11.width - 0.5 * t11.height, e11.width = t11.height, e11.height = t11.width) : (e11.top = t11.top, e11.left = t11.left, e11.width = t11.width, e11.height = t11.height); 10053 } 10054 return e11; 10055 } 10056 function J() { 10057 let t11 = I2("width"), n10 = I2("height"); 10058 if (O2 && "auto" === t11) { 10059 const e11 = O2.getAttribute("width"); 10060 t11 = e11 ? parseFloat(e11 + "") : void 0 !== O2.dataset.width ? parseFloat(O2.dataset.width + "") : p(C) ? C.naturalWidth : p(O2) ? O2.naturalWidth : (null == S ? void 0 : S.getBoundingClientRect().width) || 0; 10061 } else t11 = t(t11) ? parseFloat(t11) : t11; 10062 if (O2 && "auto" === n10) { 10063 const e11 = O2.getAttribute("height"); 10064 n10 = e11 ? parseFloat(e11 + "") : void 0 !== O2.dataset.height ? parseFloat(O2.dataset.height + "") : p(C) ? C.naturalHeight : p(O2) ? O2.naturalHeight : (null == S ? void 0 : S.getBoundingClientRect().height) || 0; 10065 } else n10 = t(n10) ? parseFloat(n10) : n10; 10066 return { width: t11, height: n10 }; 10067 } 10068 function K() { 10069 const e11 = G(); 10070 return { width: e11.width, height: e11.height }; 10071 } 10072 function Q() { 10073 return "mousemove" === I2("panMode") && matchMedia("(hover: hover)").matches; 10074 } 10075 function ee(e11) { 10076 const t11 = L || I2("event"), n10 = null == S ? void 0 : S.getBoundingClientRect(); 10077 if (!t11 || !n10 || e11 <= 1) return { x: 0, y: 0 }; 10078 const o11 = (t11.clientX || 0) - n10.left, a8 = (t11.clientY || 0) - n10.top, { width: s13, height: r7 } = K(), l10 = re(e11); 10079 if (e11 > 1) { 10080 const t12 = I2("mouseMoveFactor"); 10081 t12 > 1 && (e11 *= t12); 10082 } 10083 let c6 = s13 * e11, u5 = r7 * e11, d3 = 0.5 * (c6 - s13) - o11 / s13 * 100 / 100 * (c6 - s13), f3 = 0.5 * (u5 - r7) - a8 / r7 * 100 / 100 * (u5 - r7); 10084 return d3 = t2(l10.x[0], d3, l10.x[1]), f3 = t2(l10.y[0], f3, l10.y[1]), { x: d3, y: f3 }; 10085 } 10086 function te(e11 = "base") { 10087 if (!c5) return 1; 10088 const t11 = c5.getBoundingClientRect(), n10 = G(), { width: o11, height: a8 } = J(), s13 = (e12) => { 10089 if ("number" == typeof e12) return e12; 10090 switch (e12) { 10091 case "min": 10092 case "base": 10093 return 1; 10094 case "cover": 10095 return Math.max(t11.height / n10.height, t11.width / n10.width) || 1; 10096 case "full": 10097 case "max": { 10098 const e13 = z2.angle % 180 == 90 ? a8 : o11; 10099 return e13 && n10.width ? e13 / n10.width : 1; 10100 } 10101 } 10102 }, r7 = I2("minScale"), l10 = I2("maxScale"), u5 = Math.min(s13("full"), s13(r7)), d3 = "number" == typeof l10 ? s13("full") * l10 : Math.min(s13("full"), s13(l10)); 10103 switch (e11) { 10104 case "min": 10105 return u5; 10106 case "base": 10107 return t2(u5, 1, d3); 10108 case "cover": 10109 return s13("cover"); 10110 case "full": 10111 return Math.min(d3, s13("full")); 10112 case "max": 10113 return d3; 10114 } 10115 } 10116 function ne() { 10117 return te("min"); 10118 } 10119 function oe() { 10120 return te("base"); 10121 } 10122 function ie() { 10123 return te("cover"); 10124 } 10125 function ae() { 10126 return te("full"); 10127 } 10128 function se() { 10129 return te("max"); 10130 } 10131 function re(e11) { 10132 const t11 = { x: [0, 0], y: [0, 0] }, n10 = null == c5 ? void 0 : c5.getBoundingClientRect(); 10133 if (!n10) return t11; 10134 const o11 = G(), i10 = n10.width, a8 = n10.height; 10135 let s13 = o11.width, r7 = o11.height, l10 = e11 = void 0 === e11 ? z2.scale : e11, u5 = e11; 10136 if (Q() && e11 > 1) { 10137 const t12 = I2("mouseMoveFactor"); 10138 t12 > 1 && (s13 * e11 > i10 + 0.01 && (l10 *= t12), r7 * e11 > a8 + 0.01 && (u5 *= t12)); 10139 } 10140 return s13 *= l10, r7 *= u5, e11 > 1 && (s13 > i10 && (t11.x[0] = 0.5 * (i10 - s13), t11.x[1] = 0.5 * (s13 - i10)), t11.x[0] -= 0.5 * (o11.left - n10.left), t11.x[1] -= 0.5 * (o11.left - n10.left), t11.x[0] -= 0.5 * (o11.left + o11.width - n10.right), t11.x[1] -= 0.5 * (o11.left + o11.width - n10.right), r7 > a8 && (t11.y[0] = 0.5 * (a8 - r7), t11.y[1] = 0.5 * (r7 - a8)), t11.y[0] -= 0.5 * (o11.top - n10.top), t11.y[1] -= 0.5 * (o11.top - n10.top), t11.y[0] -= 0.5 * (o11.top + o11.height - n10.bottom), t11.y[1] -= 0.5 * (o11.top + o11.height - n10.bottom)), t11; 10141 } 10142 function le() { 10143 if (!W()) return; 10144 if (!I2("bounds")) return; 10145 if (!F) return; 10146 const e11 = ne(), t11 = se(), n10 = t2(e11, z2.scale, t11); 10147 if (z2.scale < e11 - 0.01 || z2.scale > t11 + 0.01) return void ue(v.ZoomTo, { scale: n10 }); 10148 if (F.isRunning()) return; 10149 if (ye()) return; 10150 const o11 = re(n10); 10151 z2.x < o11.x[0] || z2.x > o11.x[1] || z2.y < o11.y[0] || z2.y > o11.y[1] ? (z2.x = t2(o11.x[0], z2.x, o11.x[1]), z2.y = t2(o11.y[0], z2.y, o11.y[1]), F.spring({ tension: 170, friction: 17, restDelta: 1e-3, restSpeed: 1e-3, maxSpeed: 1 / 0, velocity: F.getCurrentVelocities() }), F.from(R2).to(z2).start()) : de(); 10152 } 10153 function ce(e11) { 10154 var t11; 10155 if (!W()) return; 10156 const n10 = be(), o11 = ye(), i10 = xe(), a8 = we(), s13 = ge(), r7 = he(); 10157 s5(S, "is-fullsize", a8), s5(S, "is-expanded", i10), s5(S, "is-dragging", o11), s5(S, "can-drag", n10), s5(S, "will-zoom-in", s13), s5(S, "will-zoom-out", r7); 10158 const l10 = pe(), u5 = ve(), d3 = me(), g2 = !W(); 10159 for (const n11 of (null === (t11 = e11 || c5) || void 0 === t11 ? void 0 : t11.querySelectorAll("[data-panzoom-action]")) || []) { 10160 const e12 = n11.dataset.panzoomAction; 10161 let t12 = false; 10162 if (g2) t12 = true; 10163 else switch (e12) { 10164 case v.ZoomIn: 10165 l10 || (t12 = true); 10166 break; 10167 case v.ZoomOut: 10168 d3 || (t12 = true); 10169 break; 10170 case v.ToggleFull: { 10171 u5 || d3 || (t12 = true); 10172 const e13 = n11.querySelector("g"); 10173 e13 && (e13.style.display = a8 && !t12 ? "none" : ""); 10174 break; 10175 } 10176 case v.IterateZoom: { 10177 l10 || d3 || (t12 = true); 10178 const e13 = n11.querySelector("g"); 10179 e13 && (e13.style.display = l10 || t12 ? "" : "none"); 10180 break; 10181 } 10182 case v.ToggleCover: 10183 case v.ToggleMax: 10184 l10 || d3 || (t12 = true); 10185 } 10186 t12 ? (n11.setAttribute("aria-disabled", ""), n11.setAttribute("tabindex", "-1")) : (n11.removeAttribute("aria-disabled"), n11.removeAttribute("tabindex")); 10187 } 10188 } 10189 function ue(e11, t11) { 10190 var n10; 10191 if (!(e11 && c5 && O2 && F && W())) return; 10192 if (e11 === v.Swipe && Math.abs(F.getCurrentVelocities().scale) > 0.01) return; 10193 const o11 = Object.assign({}, z2); 10194 let a8 = Object.assign({}, z2), l10 = re(Q() ? o11.scale : R2.scale); 10195 const u5 = F.getCurrentVelocities(), d3 = G(), f3 = ((null === (n10 = (t11 = t11 || {}).currentTouch) || void 0 === n10 ? void 0 : n10.length) || 0) > 1, h4 = t11.velocityX || 0, m3 = t11.velocityY || 0; 10196 let p2 = t11.center; 10197 t11.srcEvent && (p2 = i2(s2(t11.srcEvent))); 10198 let b4 = t11.deltaX || 0, x2 = t11.deltaY || 0; 10199 switch (e11) { 10200 case v.MoveRight: 10201 b4 = t11.deltaX || 100; 10202 break; 10203 case v.MoveLeft: 10204 b4 = t11.deltaX || -100; 10205 break; 10206 case v.MoveUp: 10207 x2 = t11.deltaY || -100; 10208 break; 10209 case v.MoveDown: 10210 x2 = t11.deltaY || 100; 10211 } 10212 let w3 = []; 10213 switch (e11) { 10214 case v.Reset: 10215 a8 = Object.assign({}, y), a8.scale = oe(); 10216 break; 10217 case v.Pan: 10218 case v.Move: 10219 case v.MoveLeft: 10220 case v.MoveRight: 10221 case v.MoveUp: 10222 case v.MoveDown: 10223 if (ye()) { 10224 let e13 = 1, t12 = 1; 10225 a8.x <= l10.x[0] && h4 <= 0 && (e13 = Math.max(0.01, 1 - Math.abs(1 / d3.width * Math.abs(a8.x - l10.x[0]))), e13 *= 0.2), a8.x >= l10.x[1] && h4 >= 0 && (e13 = Math.max(0.01, 1 - Math.abs(1 / d3.width * Math.abs(a8.x - l10.x[1]))), e13 *= 0.2), a8.y <= l10.y[0] && m3 <= 0 && (t12 = Math.max(0.01, 1 - Math.abs(1 / d3.height * Math.abs(a8.y - l10.y[0]))), t12 *= 0.2), a8.y >= l10.y[1] && m3 >= 0 && (t12 = Math.max(0.01, 1 - Math.abs(1 / d3.height * Math.abs(a8.y - l10.y[1]))), t12 *= 0.2), a8.x += b4 * e13, a8.y += x2 * t12; 10226 } else a8.x = t2(l10.x[0], a8.x + b4, l10.x[1]), a8.y = t2(l10.y[0], a8.y + x2, l10.y[1]); 10227 break; 10228 case v.Swipe: 10229 const e12 = (e13 = 0) => Math.sign(e13) * Math.pow(Math.abs(e13), 1.5); 10230 a8.x += t2(-1e3, e12(h4), 1e3), a8.y += t2(-1e3, e12(m3), 1e3), m3 && !h4 && (a8.x = t2(l10.x[0], a8.x, l10.x[1])), !m3 && h4 && (a8.y = t2(l10.y[0], a8.y, l10.y[1])), u5.x = h4, u5.y = m3; 10231 break; 10232 case v.ZoomTo: 10233 a8.scale = t11.scale || 1; 10234 break; 10235 case v.ZoomIn: 10236 a8.scale = a8.scale * (t11.scale || 2), f3 || (a8.scale = Math.min(a8.scale, se())); 10237 break; 10238 case v.ZoomOut: 10239 a8.scale = a8.scale * (t11.scale || 0.5), f3 || (a8.scale = Math.max(a8.scale, ne())); 10240 break; 10241 case v.ToggleCover: 10242 w3 = [oe(), ie()]; 10243 break; 10244 case v.ToggleFull: 10245 w3 = [oe(), ae()]; 10246 break; 10247 case v.ToggleMax: 10248 w3 = [oe(), se()]; 10249 break; 10250 case v.IterateZoom: 10251 w3 = [oe(), ae(), se()]; 10252 break; 10253 case v.Zoom: 10254 const n11 = ae(); 10255 a8.scale >= n11 - 0.05 ? a8.scale = oe() : a8.scale = Math.min(n11, a8.scale * (t11.scale || 2)); 10256 break; 10257 case v.RotateCW: 10258 a8.angle += 90; 10259 break; 10260 case v.RotateCCW: 10261 a8.angle -= 90; 10262 break; 10263 case v.FlipX: 10264 a8.flipX *= -1; 10265 break; 10266 case v.FlipY: 10267 a8.flipY *= -1; 10268 } 10269 if (void 0 !== R2.angle && Math.abs(R2.angle) >= 360 && (a8.angle -= 360 * Math.floor(R2.angle / 360), R2.angle -= 360 * Math.floor(R2.angle / 360)), w3.length) { 10270 const e12 = w3.findIndex((e13) => e13 > a8.scale + 1e-4); 10271 a8.scale = w3[e12] || w3[0]; 10272 } 10273 if (f3 && (a8.scale = t2(ne() * (f3 ? 0.8 : 1), a8.scale, se() * (f3 ? 1.6 : 1))), Q()) { 10274 const e12 = ee(a8.scale); 10275 if (e12) { 10276 const { x: t12, y: n11 } = e12; 10277 a8.x = t12, a8.y = n11; 10278 } 10279 } else if (Math.abs(a8.scale - o11.scale) > 1e-4) { 10280 let e12 = 0, t12 = 0; 10281 if (p2) e12 = p2.x, t12 = p2.y; 10282 else { 10283 const n12 = c5.getBoundingClientRect(); 10284 e12 = n12.x + 0.5 * n12.width, t12 = n12.y + 0.5 * n12.height; 10285 } 10286 let n11 = e12 - d3.left, s13 = t12 - d3.top; 10287 n11 -= 0.5 * d3.width, s13 -= 0.5 * d3.height; 10288 const r7 = (n11 - o11.x) / o11.scale, u6 = (s13 - o11.y) / o11.scale; 10289 a8.x = n11 - r7 * a8.scale, a8.y = s13 - u6 * a8.scale, !f3 && I2("bounds") && (l10 = re(a8.scale), a8.x = t2(l10.x[0], a8.x, l10.x[1]), a8.y = t2(l10.y[0], a8.y, l10.y[1])); 10290 } 10291 if (e11 === v.Swipe) { 10292 let e12 = 94, t12 = 17, n11 = 500 * a8.scale, o12 = u5; 10293 F.spring({ tension: e12, friction: t12, maxSpeed: n11, restDelta: 0.1, restSpeed: 0.1, velocity: o12 }); 10294 } else e11 === v.Pan || f3 ? F.spring({ tension: 900, friction: 17, restDelta: 0.01, restSpeed: 0.01, maxSpeed: 1 }) : F.spring({ tension: 170, friction: 17, restDelta: 1e-3, restSpeed: 1e-3, maxSpeed: 1 / 0, velocity: u5 }); 10295 if (0 === t11.velocity || n3(R2, a8)) R2 = Object.assign({}, a8), z2 = Object.assign({}, a8), F.end(), de(), ce(); 10296 else { 10297 if (n3(z2, a8)) return; 10298 F.from(R2).to(a8).start(); 10299 } 10300 H2("action", e11); 10301 } 10302 function de() { 10303 if (!O2 || !S || !C) return; 10304 const { width: e11, height: t11 } = J(); 10305 Object.assign(S.style, { maxWidth: `min(${e11}px, 100%)`, maxHeight: `min(${t11}px, 100%)` }); 10306 const n10 = (function() { 10307 const { width: e12, height: t12 } = J(), { width: n11, height: o12 } = K(); 10308 if (!c5) return { x: 0, y: 0, width: 0, height: 0, scale: 0, flipX: 0, flipY: 0, angle: 0, fitWidth: n11, fitHeight: o12, fullWidth: e12, fullHeight: t12 }; 10309 let { x: i11, y: a9, scale: s14, angle: r8, flipX: l11, flipY: u6 } = R2, d4 = 1 / ae(), f4 = e12, g2 = t12, h4 = R2.scale * d4, m3 = z2.scale * d4; 10310 const p2 = Math.max(n11, o12), v3 = Math.min(n11, o12); 10311 e12 > t12 ? (f4 = p2, g2 = v3) : (f4 = v3, g2 = p2); 10312 h4 = e12 > t12 ? p2 * s14 / e12 || 1 : p2 * s14 / t12 || 1; 10313 let b4 = f4 ? e12 * m3 : 0, y3 = g2 ? t12 * m3 : 0, x2 = f4 && g2 ? e12 * h4 / b4 : 0; 10314 return i11 = i11 + 0.5 * f4 - 0.5 * b4, a9 = a9 + 0.5 * g2 - 0.5 * y3, { x: i11, y: a9, width: b4, height: y3, scale: x2, flipX: l11, flipY: u6, angle: r8, fitWidth: n11, fitHeight: o12, fullWidth: e12, fullHeight: t12 }; 10315 })(), { x: o11, y: i10, width: a8, height: s13, scale: r7, angle: l10, flipX: u5, flipY: d3 } = n10; 10316 let f3 = `translate(${m(o11)}px, ${m(i10)}px)`; 10317 f3 += 1 !== u5 || 1 !== d3 ? ` scaleX(${m(r7 * u5)}) scaleY(${m(r7 * d3)})` : ` scale(${m(r7)})`, 0 !== l10 && (f3 += ` rotate(${l10}deg)`), C.style.width = `${m(a8)}px`, C.style.height = `${m(s13)}px`, C.style.transform = `${f3}`, H2("render"); 10318 } 10319 function fe() { 10320 let e11 = z2.scale; 10321 const t11 = I2("clickAction"); 10322 let n10 = oe(); 10323 if (t11) { 10324 let o11 = []; 10325 switch (t11) { 10326 case v.ZoomIn: 10327 n10 = 2 * e11; 10328 break; 10329 case v.ZoomOut: 10330 n10 = 0.5 * e11; 10331 break; 10332 case v.ToggleCover: 10333 o11 = [oe(), ie()]; 10334 break; 10335 case v.ToggleFull: 10336 o11 = [oe(), ae()]; 10337 break; 10338 case v.ToggleMax: 10339 o11 = [oe(), se()]; 10340 break; 10341 case v.IterateZoom: 10342 o11 = [oe(), ae(), se()]; 10343 break; 10344 case v.Zoom: 10345 const t12 = ae(); 10346 n10 = e11 >= t12 - 0.05 ? oe() : Math.min(t12, 2 * e11); 10347 } 10348 if (o11.length) { 10349 const t12 = o11.findIndex((t13) => t13 > e11 + 1e-4); 10350 n10 = o11[t12] || oe(); 10351 } 10352 } 10353 return n10 = t2(ne(), n10, se()), n10; 10354 } 10355 function ge() { 10356 return !!(W() && fe() > z2.scale); 10357 } 10358 function he() { 10359 return !!(W() && fe() < z2.scale); 10360 } 10361 function me() { 10362 return !!(W() && z2.scale > ne()); 10363 } 10364 function pe() { 10365 return !!(W() && z2.scale < se()); 10366 } 10367 function ve() { 10368 return !!(W() && z2.scale < ae()); 10369 } 10370 function be() { 10371 return !(!(W() && xe() && T) || Q()); 10372 } 10373 function ye() { 10374 return !(!W() || !(null == T ? void 0 : T.isPointerDown()) || Q()); 10375 } 10376 function xe() { 10377 return !!(W() && z2.scale > oe()); 10378 } 10379 function we() { 10380 return !!(W() && z2.scale >= ae()); 10381 } 10382 function Me() { 10383 const e11 = "in-fullscreen", t11 = "with-panzoom-in-fullscreen"; 10384 null == c5 || c5.classList.toggle(e11); 10385 const n10 = null == c5 ? void 0 : c5.classList.contains(e11); 10386 n10 ? (document.documentElement.classList.add(t11), document.addEventListener("keydown", ke, true)) : (document.documentElement.classList.remove(t11), document.removeEventListener("keydown", ke, true)), de(), H2(n10 ? "enterFS" : "exitFS"); 10387 } 10388 function ke(e11) { 10389 "Escape" !== e11.key || e11.defaultPrevented || Me(); 10390 } 10391 const je = { canDrag: be, canZoomIn: pe, canZoomOut: me, canZoomToFull: ve, destroy: function() { 10392 H2("destroy"); 10393 for (const e11 of Object.values(Y)) null == e11 || e11.destroy(je); 10394 for (const e11 of D2) e11(); 10395 return S && (S.style.aspectRatio = "", S.style.maxWidth = "", S.style.maxHeight = ""), C && (C.style.width = "", C.style.height = "", C.style.transform = ""), S = void 0, O2 = void 0, C = void 0, R2 = Object.assign({}, y), z2 = Object.assign({}, y), null == F || F.destroy(), F = void 0, null == T || T.destroy(), T = void 0, P = 4, je; 10396 }, emit: H2, execute: ue, getBoundaries: re, getContainer: function() { 10397 return c5; 10398 }, getContent: function() { 10399 return O2; 10400 }, getFullDim: J, getGestures: function() { 10401 return T; 10402 }, getMousemovePos: ee, getOptions: function() { 10403 return X; 10404 }, getPlugins: function() { 10405 return Y; 10406 }, getScale: te, getStartPosition: U, getState: function() { 10407 return P; 10408 }, getTransform: function(e11) { 10409 return true === e11 ? z2 : R2; 10410 }, getTween: function() { 10411 return F; 10412 }, getViewport: function() { 10413 return C; 10414 }, getWrapper: function() { 10415 return S; 10416 }, init: function() { 10417 return P = 0, H2("init"), (function() { 10418 for (const [e11, t11] of Object.entries(Object.assign(Object.assign({}, E3), X.plugins || {}))) if (e11 && !Y[e11] && t11 instanceof Function) { 10419 const n10 = t11(); 10420 n10.init(je), Y[e11] = n10; 10421 } 10422 H2("initPlugins"); 10423 })(), (function() { 10424 const e11 = Object.assign(Object.assign({}, x.classes), I2("classes")); 10425 if (!c5) return; 10426 if (s3(c5, e11.container), O2 = c5.querySelector("." + e11.content), !O2) return; 10427 O2.setAttribute("draggable", "false"), S = c5.querySelector("." + e11.wrapper), S || (S = document.createElement("div"), s3(S, e11.wrapper), O2.insertAdjacentElement("beforebegin", S), S.insertAdjacentElement("afterbegin", O2)); 10428 C = c5.querySelector("." + e11.viewport), C || (C = document.createElement("div"), s3(C, e11.viewport), C.insertAdjacentElement("afterbegin", O2), S.insertAdjacentElement("beforeend", C)); 10429 A2 = O2.cloneNode(true), A2.removeAttribute("id"), S.insertAdjacentElement("afterbegin", A2), O2 instanceof HTMLPictureElement && (O2 = O2.querySelector("img")); 10430 A2 instanceof HTMLPictureElement && (A2 = A2.querySelector("img")); 10431 C instanceof HTMLPictureElement && (C = C.querySelector("img")); 10432 if (C && (C.style.visibility = "hidden", I2("protected"))) { 10433 C.addEventListener("contextmenu", (e13) => { 10434 h(e13); 10435 }); 10436 const e12 = document.createElement("div"); 10437 s3(e12, "f-panzoom__protected"), C.appendChild(e12); 10438 } 10439 H2("initLayout"); 10440 })(), (function() { 10441 if (c5 && S && !Z) { 10442 let e11 = null; 10443 Z = new ResizeObserver(() => { 10444 W() && (e11 = e11 || requestAnimationFrame(() => { 10445 W() && (ce(), le(), H2("refresh")), e11 = null; 10446 })); 10447 }), Z.observe(S), D2.push(() => { 10448 null == Z || Z.disconnect(), Z = void 0, e11 && (cancelAnimationFrame(e11), e11 = null); 10449 }); 10450 } 10451 })(), (function() { 10452 if (!c5 || !O2) return; 10453 if (!p(O2) || !p(A2)) return void V(); 10454 const e11 = () => { 10455 O2 && p(O2) && O2.decode().then(() => { 10456 V(); 10457 }).catch(() => { 10458 V(); 10459 }); 10460 }; 10461 if (P = 1, c5.classList.add("is-loading"), H2("loading"), A2.src && A2.complete) return void e11(); 10462 (function() { 10463 if (!c5) return; 10464 if (null == c5 ? void 0 : c5.querySelector(".f-spinner")) return; 10465 const e12 = I2("spinnerTpl"), t11 = e2(e12); 10466 t11 && (t11.classList.add("f-spinner"), c5.classList.add("is-loading"), null == S || S.insertAdjacentElement("afterbegin", t11)); 10467 })(), A2.addEventListener("load", e11, false), A2.addEventListener("error", e11, false), D2.push(() => { 10468 null == A2 || A2.removeEventListener("load", e11, false), null == A2 || A2.removeEventListener("error", e11, false); 10469 }); 10470 })(), je; 10471 }, isDragging: ye, isExpanded: xe, isFullsize: we, isMousemoveMode: Q, localize: function(e11, t11 = []) { 10472 const n10 = I2("l10n") || {}; 10473 e11 = String(e11).replace(/\{\{(\w+)\}\}/g, (e12, t12) => n10[t12] || e12); 10474 for (let n11 = 0; n11 < t11.length; n11++) e11 = e11.split(t11[n11][0]).join(t11[n11][1]); 10475 return e11 = e11.replace(/\{\{(.*?)\}\}/g, (e12, t12) => t12); 10476 }, off: function(e11, t11) { 10477 for (const n10 of e11 instanceof Array ? e11 : [e11]) q2.has(n10) && q2.set(n10, q2.get(n10).filter((e12) => e12 !== t11)); 10478 return je; 10479 }, on: function(e11, t11) { 10480 for (const n10 of e11 instanceof Array ? e11 : [e11]) q2.set(n10, [...q2.get(n10) || [], t11]); 10481 return je; 10482 }, toggleFS: Me, updateControls: ce, version: "6.1.10", willZoomIn: ge, willZoomOut: he }; 10483 return je; 10484 }; 10485 E.l10n = { en_EN: e6 }, E.getDefaults = () => x; 10486 } 10487 }); 10488 10489
vendor: 410 bytes, lines 10489-10502
10489// node_modules/@fancyapps/ui/dist/utils/getDirectChildren.js 10490 var e7; 10491 var init_getDirectChildren = __esm({ 10492 "node_modules/@fancyapps/ui/dist/utils/getDirectChildren.js"() { 10493 e7 = (e11, o11) => { 10494 let t11 = []; 10495 return e11.childNodes.forEach((e12) => { 10496 e12.nodeType !== Node.ELEMENT_NODE || o11 && !e12.matches(o11) || t11.push(e12); 10497 }), t11; 10498 }; 10499 } 10500 }); 10501 10502
vendor: 707 bytes, lines 10502-10521
10502// node_modules/@fancyapps/ui/dist/utils/extend.js 10503 var r3; 10504 var init_extend = __esm({ 10505 "node_modules/@fancyapps/ui/dist/utils/extend.js"() { 10506 init_isPlainObject(); 10507 r3 = (t11, ...e11) => { 10508 const n10 = e11.length; 10509 for (let c5 = 0; c5 < n10; c5++) { 10510 const n11 = e11[c5] || {}; 10511 Object.entries(n11).forEach(([e12, n12]) => { 10512 const c6 = Array.isArray(n12) ? [] : {}; 10513 t11[e12] || Object.assign(t11, { [e12]: c6 }), t3(n12) ? Object.assign(t11[e12], r3(t11[e12], n12)) : Array.isArray(n12) ? Object.assign(t11, { [e12]: [...n12] }) : Object.assign(t11, { [e12]: n12 }); 10514 }); 10515 } 10516 return t11; 10517 }; 10518 } 10519 }); 10520 10521
vendor: 392 bytes, lines 10521-10533
10521// node_modules/@fancyapps/ui/dist/utils/map.js 10522 var t5; 10523 var init_map = __esm({ 10524 "node_modules/@fancyapps/ui/dist/utils/map.js"() { 10525 init_clamp(); 10526 t5 = function(t11 = 0, n10 = 0, r7 = 0, c5 = 0, m3 = 0, p2 = false) { 10527 const s13 = (t11 - n10) / (r7 - n10) * (m3 - c5) + c5; 10528 return p2 ? c5 < m3 ? t2(c5, s13, m3) : t2(m3, s13, c5) : s13; 10529 }; 10530 } 10531 }); 10532 10533
vendor: 559 bytes, lines 10533-10542
10533// node_modules/@fancyapps/ui/dist/carousel/l10n/en_EN.js 10534 var o3; 10535 var init_en_EN2 = __esm({ 10536 "node_modules/@fancyapps/ui/dist/carousel/l10n/en_EN.js"() { 10537 init_en_EN(); 10538 o3 = Object.assign(Object.assign({}, e6), { ERROR: "Something went wrong. <br /> Please try again later.", NEXT: "Next page", PREV: "Previous page", GOTO: "Go to page #%d", DOWNLOAD: "Download", TOGGLE_FULLSCREEN: "Toggle full-screen mode", TOGGLE_EXPAND: "Toggle full-size mode", TOGGLE_THUMBS: "Toggle thumbnails", TOGGLE_AUTOPLAY: "Toggle slideshow" }); 10539 } 10540 }); 10541 10542
vendor: 37,764 bytes, lines 10542-11186
10542// node_modules/@fancyapps/ui/dist/carousel/carousel.js 10543 var m2, h2, b2, y2, E2; 10544 var init_carousel = __esm({ 10545 "node_modules/@fancyapps/ui/dist/carousel/carousel.js"() { 10546 init_isPlainObject(); 10547 init_isNode(); 10548 init_isString(); 10549 init_getScrollableParent(); 10550 init_getDirectChildren(); 10551 init_extend(); 10552 init_map(); 10553 init_strToHtml(); 10554 init_clamp(); 10555 init_addClass(); 10556 init_removeClass(); 10557 init_toggleClass(); 10558 init_tween(); 10559 init_gestures(); 10560 init_en_EN2(); 10561 m2 = (t11) => { 10562 t11.cancelable && t11.preventDefault(); 10563 }; 10564 h2 = { adaptiveHeight: false, center: true, classes: { container: "f-carousel", isEnabled: "is-enabled", isLTR: "is-ltr", isRTL: "is-rtl", isHorizontal: "is-horizontal", isVertical: "is-vertical", hasAdaptiveHeight: "has-adaptive-height", viewport: "f-carousel__viewport", slide: "f-carousel__slide", isSelected: "is-selected" }, dragFree: false, enabled: true, errorTpl: '<div class="f-html">{{ERROR}}</div>', fill: false, infinite: true, initialPage: 0, l10n: o3, rtl: false, slides: [], slidesPerPage: "auto", spinnerTpl: '<div class="f-spinner"></div>', transition: "fade", tween: { clamp: true, mass: 1, tension: 160, friction: 25, restDelta: 1, restSpeed: 1, velocity: 0 }, vertical: false }; 10565 y2 = 0; 10566 E2 = (g2, x2 = {}, M3 = {}) => { 10567 y2++; 10568 let w3, S, j2, A2, L, P = 0, T = Object.assign({}, h2), O2 = Object.assign({}, h2), R2 = {}, H2 = null, V = null, C = 0, D2 = 0, $4 = 0, q2 = false, I2 = false, F = false, z2 = "height", k3 = 0, N2 = true, B2 = 0, _2 = 0, G = 0, X = 0, Y = "*", W = [], J = []; 10569 const K = /* @__PURE__ */ new Set(); 10570 let Q = [], U = [], Z = 0, tt = 0, et = 0; 10571 function nt(t11, ...e11) { 10572 let n10 = O2[t11]; 10573 return n10 && n10 instanceof Function ? n10(It, ...e11) : n10; 10574 } 10575 function it(t11, e11 = []) { 10576 const n10 = nt("l10n") || {}; 10577 t11 = String(t11).replace(/\{\{(\w+)\}\}/g, (t12, e12) => n10[e12] || t12); 10578 for (let n11 = 0; n11 < e11.length; n11++) t11 = t11.split(e11[n11][0]).join(e11[n11][1]); 10579 return t11 = t11.replace(/\{\{(.*?)\}\}/g, (t12, e12) => e12); 10580 } 10581 const ot = /* @__PURE__ */ new Map(); 10582 function st(t11, ...e11) { 10583 const n10 = [...ot.get(t11) || []]; 10584 O2.on && n10.push(O2.on[t11]); 10585 for (const t12 of n10) t12 && t12 instanceof Function && t12(It, ...e11); 10586 "*" !== t11 && st("*", t11, ...e11); 10587 } 10588 function rt() { 10589 var e11, n10; 10590 const i10 = r3({}, h2, T); 10591 r3(i10, h2, T); 10592 let r7 = ""; 10593 const l10 = T.breakpoints || {}; 10594 if (l10) for (const [t11, e12] of Object.entries(l10)) window.matchMedia(t11).matches && (r7 += t11, r3(i10, e12)); 10595 if (void 0 === L || r7 !== L) { 10596 if (L = r7, 0 !== P) { 10597 let t11 = null === (n10 = null === (e11 = U[B2]) || void 0 === e11 ? void 0 : e11.slides[0]) || void 0 === n10 ? void 0 : n10.index; 10598 void 0 === t11 && (t11 = O2.initialSlide), i10.initialSlide = t11, i10.slides = []; 10599 for (const t12 of W) t12.isVirtual && i10.slides.push(t12); 10600 } 10601 Dt(), O2 = i10, false !== nt("enabled") && (P = 0, st("init"), (function() { 10602 for (const [t11, e12] of Object.entries(Object.assign(Object.assign({}, M3), O2.plugins || {}))) if (t11 && !R2[t11] && e12 instanceof Function) { 10603 const n11 = e12(); 10604 n11.init(It, E2), R2[t11] = n11; 10605 } 10606 st("initPlugins"); 10607 })(), (function() { 10608 if (!H2) return; 10609 const e12 = nt("classes") || {}; 10610 s3(H2, e12.container); 10611 const n11 = nt("style"); 10612 if (n11 && t3(n11)) for (const [t11, e13] of Object.entries(n11)) H2.style.setProperty(t11, e13); 10613 V = H2.querySelector(`.${e12.viewport}`), V || (V = document.createElement("div"), s3(V, e12.viewport), V.append(...e7(H2, `.${e12.slide}`)), H2.insertAdjacentElement("afterbegin", V)), H2.carousel = It, st("initLayout"); 10614 })(), (function() { 10615 if (!V) return; 10616 const t11 = nt("classes") || {}; 10617 W = [], [...e7(V, `.${t11.slide}`)].forEach((t12) => { 10618 if (t12.parentElement) { 10619 const e12 = yt(Object.assign({ el: t12, isVirtual: false }, t12.dataset || {})); 10620 st("createSlide", e12), W.push(e12); 10621 } 10622 }), wt(); 10623 for (const t12 of W) st("addSlide", t12); 10624 bt(nt("slides")); 10625 for (const t12 of W) { 10626 const e12 = t12.el; 10627 (null == e12 ? void 0 : e12.parentElement) === V && (s3(e12, O2.classes.slide), s3(e12, t12.class), Rt(t12), st("attachSlideEl", t12)); 10628 } 10629 st("initSlides"); 10630 })(), St(), P = 1, s3(H2, (nt("classes") || {}).isEnabled || ""), Ct(), ut(), S = c().on("start", () => { 10631 w3 && w3.isPointerDown() || (dt(), Ct()); 10632 }).on("step", (t11) => { 10633 const e12 = k3; 10634 k3 = t11.pos, k3 !== e12 && (N2 = false, Ct()); 10635 }).on("end", (t11) => { 10636 (null == w3 ? void 0 : w3.isPointerDown()) || (k3 = t11.pos, S && !q2 && (k3 < G || k3 > X) ? S.spring({ clamp: true, mass: 1, tension: 200, friction: 25, velocity: 0, restDelta: 1, restSpeed: 1 }).from({ pos: k3 }).to({ pos: t2(G, k3, X) }).start() : N2 || (N2 = true, st("settle"))); 10637 }), at(), (function() { 10638 if (!H2 || !V) return; 10639 H2.addEventListener("click", Pt), document.addEventListener("mousemove", lt); 10640 const t11 = V.getBoundingClientRect(); 10641 if (Z = t11.height, tt = t11.width, !j2) { 10642 let t12 = null; 10643 j2 = new ResizeObserver(() => { 10644 t12 || (t12 = requestAnimationFrame(() => { 10645 !(function() { 10646 if (1 !== P || !V) return; 10647 const t13 = U.length, e12 = V.getBoundingClientRect(), n11 = e12.height, i11 = e12.width; 10648 t13 > 1 && (F && Math.abs(n11 - Z) < 0.5 || !F && Math.abs(i11 - tt) < 0.5) || (St(), at(), Z = n11, tt = i11, F && !Z || !F && !tt || H2 && V && (t13 === U.length && (null == w3 ? void 0 : w3.isPointerDown()) || (nt("dragFree") && (q2 || k3 > G && k3 < X) ? (dt(), Ct()) : Ht(B2, { transition: false })))); 10649 })(), t12 = null; 10650 })); 10651 }), j2.observe(V); 10652 } 10653 })(), st("ready")); 10654 } 10655 } 10656 function lt(t11) { 10657 b2 = t11; 10658 } 10659 function at() { 10660 false === nt("gestures") ? w3 && (w3.destroy(), w3 = void 0) : w3 || (function() { 10661 const t11 = nt("gestures"); 10662 !w3 && false !== t11 && V && (w3 = f(V, t11).on("start", (t12) => { 10663 var e11, n10; 10664 if (!S) return; 10665 if (false === nt("gestures", t12)) return; 10666 const { srcEvent: o11 } = t12; 10667 F && e5(o11) && !n2(o11.target) && m2(o11), S.pause(), S.getCurrentVelocities().pos = 0; 10668 const s13 = null === (e11 = U[B2]) || void 0 === e11 ? void 0 : e11.slides[0], r7 = null == s13 ? void 0 : s13.el; 10669 s13 && K.has(s13.index) && r7 && (k3 = s13.offset || 0, k3 += ((function(t13) { 10670 const e12 = window.getComputedStyle(t13), n11 = new DOMMatrixReadOnly(e12.transform); 10671 return { width: n11.m41 || 0, height: n11.m42 || 0 }; 10672 })(r7)[z2] || 0) * (I2 && !F ? 1 : -1)), At(), q2 || (k3 < G || k3 > X) && S.spring({ clamp: true, mass: 1, tension: 500, friction: 25, velocity: (null === (n10 = S.getCurrentVelocities()) || void 0 === n10 ? void 0 : n10.pos) || 0, restDelta: 1, restSpeed: 1 }).from({ pos: k3 }).to({ pos: t2(G, k3, X) }).start(); 10673 }).on("move", (t12) => { 10674 var e11, n10; 10675 if (false === nt("gestures", t12)) return; 10676 const { srcEvent: o11, axis: s13, deltaX: r7, deltaY: l10 } = t12; 10677 if (e5(o11) && (null === (e11 = o11.touches) || void 0 === e11 ? void 0 : e11.length) > 1) return; 10678 const a8 = o11.target, c5 = n2(a8), d3 = c5 ? c5.scrollHeight > c5.clientHeight ? "y" : "x" : void 0; 10679 if (c5 && c5 !== V && (!s13 || s13 === d3)) return; 10680 if (!s13) return m2(o11), o11.stopPropagation(), void o11.stopImmediatePropagation(); 10681 if ("y" === s13 && !F || "x" === s13 && F) return; 10682 if (m2(o11), o11.stopPropagation(), !S) return; 10683 const u5 = I2 && !F ? 1 : -1, f3 = F ? l10 : r7; 10684 let v3 = (null == S ? void 0 : S.isRunning()) ? S.getEndValues().pos : k3, g3 = 1; 10685 q2 || (v3 <= G && f3 * u5 < 0 ? (g3 = Math.max(0.01, 1 - (Math.abs(1 / gt() * Math.abs(v3 - G)) || 0)), g3 *= 0.2) : v3 >= X && f3 * u5 > 0 && (g3 = Math.max(0.01, 1 - (Math.abs(1 / gt() * Math.abs(v3 - X)) || 0)), g3 *= 0.2)), v3 += f3 * g3 * u5, S.spring({ clamp: true, mass: 1, tension: 700, friction: 25, velocity: (null === (n10 = S.getCurrentVelocities()) || void 0 === n10 ? void 0 : n10.pos) || 0, restDelta: 1, restSpeed: 1 }).from({ pos: k3 }).to({ pos: v3 }).start(); 10686 }).on("panstart", (t12) => { 10687 false !== nt("gestures", t12) && (null == t12 ? void 0 : t12.axis) === (F ? "y" : "x") && s3(V, "is-dragging"); 10688 }).on("panend", (t12) => { 10689 false !== nt("gestures", t12) && s4(V, "is-dragging"); 10690 }).on("end", (t12) => { 10691 var e11, n10; 10692 if (false === nt("gestures", t12)) return; 10693 const { srcEvent: o11, axis: s13, velocityX: r7, velocityY: l10, currentTouch: c5 } = t12; 10694 if (c5.length > 0 || !S) return; 10695 const d3 = o11.target, u5 = n2(d3), f3 = u5 ? u5.scrollHeight > u5.clientHeight ? "y" : "x" : void 0, v3 = u5 && (!s13 || s13 === f3); 10696 F && e5(o11) && !s13 && Pt(o11); 10697 const g3 = U.length, m3 = nt("dragFree"); 10698 if (!g3) return; 10699 let h4 = v3 ? 0 : nt("vertical") ? l10 : r7; 10700 s13 !== (F ? "y" : "x") && (h4 = 0); 10701 let b3 = (null == S ? void 0 : S.isRunning()) ? S.getEndValues().pos : k3; 10702 const y3 = I2 && !F ? 1 : -1; 10703 if (v3 || (b3 += h4 * (m3 ? 5 : 1) * y3), !q2 && (h4 * y3 <= 0 && b3 < G || h4 * y3 >= 0 && b3 > X)) { 10704 let t13 = 0; 10705 return Math.abs(h4) > 0 && (t13 = 2 * Math.abs(h4), t13 = Math.min(0.3 * gt(), t13)), b3 = t2(G + -1 * t13, b3, X + t13), void S.spring({ clamp: true, mass: 1, tension: 380, friction: 25, velocity: -1 * h4, restDelta: 1, restSpeed: 1 }).from({ pos: k3 }).to({ pos: b3 }).start(); 10706 } 10707 if (m3 || (null === (e11 = R2.Autoscroll) || void 0 === e11 ? void 0 : e11.isEnabled())) return void (Math.abs(h4) > 10 ? S.spring({ clamp: true, mass: 1, tension: 150, friction: 25, velocity: -1 * h4, restDelta: 1, restSpeed: 1 }).from({ pos: k3 }).to({ pos: b3 }).start() : S.isRunning() || N2 || (N2 = true, st("settle"))); 10708 if (!m3 && !(null === (n10 = R2.Autoscroll) || void 0 === n10 ? void 0 : n10.isEnabled()) && (!t12.offsetX && !t12.offsetY || "y" === s13 && !F || "x" === s13 && F)) return void Ht(B2, { transition: "tween" }); 10709 let E3 = vt(b3); 10710 Math.abs(h4) > 10 && E3 === B2 && (E3 += h4 > 0 ? I2 && !F ? 1 : -1 : I2 && !F ? -1 : 1), Ht(E3, { transition: "tween", tween: { velocity: -1 * h4 } }); 10711 }).init()); 10712 })(), s5(V, "is-draggable", !!w3 && U.length > 0); 10713 } 10714 function ct(t11 = "*") { 10715 var e11; 10716 const n10 = []; 10717 for (const i10 of W) ("*" === t11 || i10.class && i10.class.includes(t11) || i10.el && (null === (e11 = i10.el) || void 0 === e11 ? void 0 : e11.classList.contains(t11))) && n10.push(i10); 10718 A2 = void 0, Y = t11, J = [...n10]; 10719 } 10720 function dt() { 10721 if (!S) return; 10722 const t11 = vt((null == S ? void 0 : S.isRunning()) ? S.getEndValues().pos : k3); 10723 t11 !== B2 && (A2 = B2, B2 = t11, Rt(), ut(), ft(), st("change", B2, A2)); 10724 } 10725 function ut() { 10726 var t11, e11; 10727 if (!H2) return; 10728 for (const t12 of H2.querySelectorAll("[data-carousel-index]")) t12.innerHTML = B2 + ""; 10729 for (const t12 of H2.querySelectorAll("[data-carousel-page]")) t12.innerHTML = B2 + 1 + ""; 10730 for (const t12 of H2.querySelectorAll("[data-carousel-pages]")) t12.innerHTML = U.length + ""; 10731 for (const e12 of H2.querySelectorAll("[data-carousel-go-to]")) { 10732 parseInt((null === (t11 = e12.dataset) || void 0 === t11 ? void 0 : t11.carouselGoTo) || "-1", 10) === B2 ? e12.setAttribute("aria-current", "true") : e12.removeAttribute("aria-current"); 10733 } 10734 for (const t12 of H2.querySelectorAll("[data-carousel-go-prev]")) t12.toggleAttribute("aria-disabled", !$t()), $t() ? t12.removeAttribute("tabindex") : t12.setAttribute("tabindex", "-1"); 10735 for (const t12 of H2.querySelectorAll("[data-carousel-go-next]")) t12.toggleAttribute("aria-disabled", !qt()), qt() ? t12.removeAttribute("tabindex") : t12.setAttribute("tabindex", "-1"); 10736 let n10 = false; 10737 const i10 = null === (e11 = U[B2]) || void 0 === e11 ? void 0 : e11.slides[0]; 10738 i10 && (i10.downloadSrc || "image" === i10.type && i10.src) && (n10 = true); 10739 for (const t12 of H2.querySelectorAll("[data-carousel-download]")) t12.toggleAttribute("aria-disabled", !n10); 10740 } 10741 function ft(t11) { 10742 var e11; 10743 t11 || (t11 = null === (e11 = U[B2]) || void 0 === e11 ? void 0 : e11.slides[0]); 10744 const n10 = null == t11 ? void 0 : t11.el; 10745 if (n10) for (const e12 of n10.querySelectorAll("[data-slide-index]")) e12.innerHTML = t11.index + 1 + ""; 10746 } 10747 function vt(t11) { 10748 var e11, n10, i10; 10749 if (!U.length) return 0; 10750 const o11 = mt(); 10751 let s13 = t11; 10752 q2 ? s13 -= Math.floor((t11 - (null === (e11 = U[0]) || void 0 === e11 ? void 0 : e11.pos)) / o11) * o11 || 0 : s13 = t2(null === (n10 = U[0]) || void 0 === n10 ? void 0 : n10.pos, t11, null === (i10 = U[U.length - 1]) || void 0 === i10 ? void 0 : i10.pos); 10753 const r7 = /* @__PURE__ */ new Map(); 10754 let l10 = 0; 10755 for (const t12 of U) { 10756 const e12 = Math.abs(t12.pos - s13), n11 = Math.abs(t12.pos - s13 - o11), i11 = Math.abs(t12.pos - s13 + o11), a8 = Math.min(e12, n11, i11); 10757 r7.set(l10, a8), l10++; 10758 } 10759 const c5 = r7.size > 0 ? [...r7.entries()].reduce((t12, e12) => e12[1] < t12[1] ? e12 : t12) : [B2, 0]; 10760 return parseInt(c5[0]); 10761 } 10762 function pt() { 10763 return et; 10764 } 10765 function gt() { 10766 return C; 10767 } 10768 function mt(t11 = true) { 10769 return J.length ? J.reduce((t12, e11) => t12 + e11.dim, 0) + (J.length - (q2 && t11 ? 0 : 1)) * et : 0; 10770 } 10771 function ht(t11) { 10772 const e11 = mt(), n10 = gt(); 10773 if (!e11 || !V || !n10) return []; 10774 const i10 = []; 10775 t11 = void 0 === t11 ? k3 : t11, q2 && (t11 -= Math.floor(t11 / e11) * e11 || 0); 10776 let o11 = 0; 10777 for (let s13 of J) { 10778 const r7 = (e12 = 0) => { 10779 i10.indexOf(s13) > -1 || (s13.pos = o11 - t11 + e12 || 0, s13.offset + e12 > t11 - s13.dim - D2 + 0.51 && s13.offset + e12 < t11 + n10 + $4 - 0.51 && i10.push(s13)); 10780 }; 10781 s13.offset = o11, q2 && (r7(e11), r7(-1 * e11)), r7(), o11 += s13.dim + et; 10782 } 10783 return i10; 10784 } 10785 function bt(t11, e11) { 10786 const n10 = []; 10787 for (const e12 of Array.isArray(t11) ? t11 : [t11]) { 10788 const t12 = yt(Object.assign(Object.assign({}, e12), { isVirtual: true })); 10789 t12.el || (t12.el = document.createElement("div")), st("createSlide", t12), n10.push(t12); 10790 } 10791 W.splice(void 0 === e11 ? W.length : e11, 0, ...n10), wt(); 10792 for (const t12 of n10) st("addSlide", t12), Et(t12); 10793 return ct(Y), n10; 10794 } 10795 function yt(t11) { 10796 return (t(t11) || t11 instanceof HTMLElement) && (t11 = { html: t11 }), Object.assign({ index: -1, el: void 0, class: "", isVirtual: true, dim: 0, pos: 0, offset: 0, html: "", src: "" }, t11); 10797 } 10798 function Et(t11) { 10799 let e11 = t11.el; 10800 if (!t11 || !e11) return; 10801 const n10 = t11.html ? t11.html instanceof HTMLElement ? t11.html : e2(t11.html) : void 0; 10802 n10 && (s3(n10, "f-html"), t11.htmlEl = n10, s3(e11, "has-html"), e11.append(n10), st("contentReady", t11)); 10803 } 10804 function xt(t11) { 10805 if (!V || !t11) return; 10806 let e11 = t11.el; 10807 if (e11) { 10808 if (e11.setAttribute("index", t11.index + ""), e11.parentElement !== V) { 10809 let n10; 10810 s3(e11, O2.classes.slide), s3(e11, t11.class), Rt(t11); 10811 for (const e12 of W) if (e12.index > t11.index) { 10812 n10 = e12.el; 10813 break; 10814 } 10815 V.insertBefore(e11, n10 && V.contains(n10) ? n10 : null), st("attachSlideEl", t11); 10816 } 10817 return ft(t11), e11; 10818 } 10819 } 10820 function Mt(t11) { 10821 const e11 = null == t11 ? void 0 : t11.el; 10822 e11 && (e11.remove(), jt(e11), st("detachSlideEl", t11)); 10823 } 10824 function wt() { 10825 for (let t11 = 0; t11 < W.length; t11++) { 10826 const e11 = W[t11], n10 = e11.el; 10827 n10 && (e11.index !== t11 && jt(n10), n10.setAttribute("index", `${t11}`)), e11.index = t11; 10828 } 10829 } 10830 function St() { 10831 var t11, n10, i10, o11, s13; 10832 if (!H2 || !V) return; 10833 I2 = nt("rtl"), F = nt("vertical"), z2 = F ? "height" : "width"; 10834 const r7 = nt("classes"); 10835 if (s5(H2, r7.isLTR, !I2), s5(H2, r7.isRTL, I2), s5(H2, r7.isHorizontal, !F), s5(H2, r7.isVertical, F), s5(H2, r7.hasAdaptiveHeight, nt("adaptiveHeight")), C = 0, D2 = 0, $4 = 0, et = 0, V) { 10836 V.childElementCount || (V.style.display = "grid"); 10837 const t12 = V.getBoundingClientRect(); 10838 C = V.getBoundingClientRect()[z2] || 0; 10839 const e11 = window.getComputedStyle(V); 10840 et = parseFloat(e11.getPropertyValue("--f-carousel-gap")) || 0; 10841 "visible" === e11.getPropertyValue("overflow-" + (F ? "y" : "x")) && (D2 = Math.abs(t12[F ? "top" : "left"]), $4 = Math.abs(window[F ? "innerHeight" : "innerWidth"] - t12[F ? "bottom" : "right"])), V.style.display = ""; 10842 } 10843 if (!C) return; 10844 const l10 = (function() { 10845 let t12 = 0; 10846 if (V) { 10847 let e11 = document.createElement("div"); 10848 e11.style.display = "block", s3(e11, O2.classes.slide), V.appendChild(e11), t12 = e11.getBoundingClientRect()[z2], e11.remove(), e11 = void 0; 10849 } 10850 return t12; 10851 })(); 10852 for (const n11 of J) { 10853 const i11 = n11.el; 10854 let o12 = 0; 10855 if (!n11.isVirtual && i11 && n(i11)) { 10856 let e11 = false; 10857 i11.parentElement && i11.parentElement === V || (V.appendChild(i11), e11 = true), o12 = i11.getBoundingClientRect()[z2], e11 && (null === (t11 = i11.parentElement) || void 0 === t11 || t11.removeChild(i11)); 10858 } else o12 = l10; 10859 n11.dim = o12; 10860 } 10861 if (q2 = false, nt("infinite")) { 10862 q2 = true; 10863 const t12 = mt(); 10864 let e11 = C + D2 + $4; 10865 for (let i11 = 0; i11 < J.length; i11++) { 10866 const o12 = (null === (n10 = J[i11]) || void 0 === n10 ? void 0 : n10.dim) + et; 10867 if (t12 - o12 < e11 && t12 - o12 - e11 < o12) { 10868 q2 = false; 10869 break; 10870 } 10871 } 10872 } 10873 !(function() { 10874 var t12; 10875 if (!H2) return; 10876 const e11 = gt(), n11 = mt(false); 10877 let i11 = nt("slidesPerPage"); 10878 i11 = "auto" === i11 ? 1 / 0 : parseFloat(i11 + ""), U = []; 10879 let o12 = 0, s14 = 0; 10880 for (const n12 of J) (!U.length || o12 + n12.dim - e11 > 0.05 || s14 >= i11) && (U.push({ index: U.length, slides: [], dim: 0, offset: 0, pos: 0 }), o12 = 0, s14 = 0), null === (t12 = U[U.length - 1]) || void 0 === t12 || t12.slides.push(n12), o12 += n12.dim + et, s14++; 10881 const r8 = nt("center"), l11 = nt("fill"); 10882 let c5 = 0; 10883 for (const t13 of U) { 10884 t13.dim = (t13.slides.length - 1) * et; 10885 for (const e12 of t13.slides) t13.dim += e12.dim; 10886 t13.offset = c5, t13.pos = c5, false !== r8 && (t13.pos -= 0.5 * (e11 - t13.dim)), l11 && !q2 && n11 > e11 && (t13.pos = t2(0, t13.pos, n11 - e11)), c5 += t13.dim + et; 10887 } 10888 const d3 = []; 10889 let u5; 10890 for (const t13 of U) { 10891 const e12 = Object.assign({}, t13); 10892 u5 && Math.abs(e12.pos - u5.pos) < 0.1 ? (u5.dim += e12.dim, u5.slides = [...u5.slides, ...e12.slides]) : (u5 = e12, e12.index = d3.length, d3.push(e12)); 10893 } 10894 U = d3, B2 = t2(0, B2, U.length - 1); 10895 })(), G = (null === (i10 = U[0]) || void 0 === i10 ? void 0 : i10.pos) || 0, X = (null === (o11 = U[U.length - 1]) || void 0 === o11 ? void 0 : o11.pos) || 0, 0 === P ? (function() { 10896 var t12; 10897 A2 = void 0, B2 = nt("initialPage"); 10898 const e11 = nt("initialSlide") || void 0; 10899 void 0 !== e11 && (B2 = It.getPageIndex(e11) || 0), B2 = t2(0, B2, U.length - 1), k3 = (null === (t12 = U[B2]) || void 0 === t12 ? void 0 : t12.pos) || 0, _2 = k3; 10900 })() : _2 = (null === (s13 = U[B2 || 0]) || void 0 === s13 ? void 0 : s13.pos) || 0, st("refresh"), ut(); 10901 } 10902 function jt(t11) { 10903 if (!t11 || !n(t11)) return; 10904 const n10 = parseInt(t11.getAttribute("index") || "-1"); 10905 let i10 = ""; 10906 for (const e11 of Array.from(t11.classList)) { 10907 const t12 = e11.match(/^f-(\w+)(Out|In)$/); 10908 t12 && t12[1] && (i10 = t12[1] + ""); 10909 } 10910 if (!t11 || !i10) return; 10911 const o11 = [`f-${i10}Out`, `f-${i10}In`, "to-prev", "to-next", "from-prev", "from-next"]; 10912 t11.removeEventListener("animationend", Lt), s4(t11, o11.join(" ")), K.delete(n10); 10913 } 10914 function At() { 10915 if (!V) return; 10916 const t11 = K.size > 0; 10917 for (const t12 of J) jt(t12.el); 10918 K.clear(), t11 && Ct(); 10919 } 10920 function Lt(t11) { 10921 var e11; 10922 "f-" === (null === (e11 = t11.animationName) || void 0 === e11 ? void 0 : e11.substring(0, 2)) && (jt(t11.target), K.size || (s4(H2, "in-transition"), !N2 && Math.abs(It.getPosition(true) - _2) < 0.5 && (N2 = true, st("settle"))), Ct()); 10923 } 10924 function Pt(t11) { 10925 var e11; 10926 if (t11.defaultPrevented) return; 10927 const n10 = t11.composedPath()[0]; 10928 if (n10.closest("[data-carousel-go-prev]")) return m2(t11), void It.prev(); 10929 if (n10.closest("[data-carousel-go-next]")) return m2(t11), void It.next(); 10930 const i10 = n10.closest("[data-carousel-go-to]"); 10931 if (i10) return m2(t11), void It.goTo(parseFloat(i10.dataset.carouselGoTo || "") || 0); 10932 if (n10.closest("[data-carousel-download]")) { 10933 m2(t11); 10934 const n11 = null === (e11 = U[B2]) || void 0 === e11 ? void 0 : e11.slides[0]; 10935 if (n11 && (n11.downloadSrc || "image" === n11.type && n11.src)) { 10936 const t12 = n11.downloadFilename, e12 = document.createElement("a"), i11 = n11.downloadSrc || n11.src || ""; 10937 e12.href = i11, e12.target = "_blank", e12.download = t12 || i11, e12.click(); 10938 } 10939 return; 10940 } 10941 st("click", t11); 10942 } 10943 function Tt(t11) { 10944 var e11; 10945 const n10 = t11.el; 10946 n10 && (null === (e11 = n10.querySelector(".f-spinner")) || void 0 === e11 || e11.remove()); 10947 } 10948 function Ot(t11) { 10949 var e11; 10950 const n10 = t11.el; 10951 n10 && (null === (e11 = n10.querySelector(".f-html.is-error")) || void 0 === e11 || e11.remove(), s4(n10, "has-error")); 10952 } 10953 function Rt(t11) { 10954 var e11; 10955 t11 || (t11 = null === (e11 = U[B2]) || void 0 === e11 ? void 0 : e11.slides[0]); 10956 const i10 = null == t11 ? void 0 : t11.el; 10957 if (!i10) return; 10958 let o11 = nt("formatCaption", t11); 10959 void 0 === o11 && (o11 = t11.caption), o11 = o11 || ""; 10960 const s13 = nt("captionEl"); 10961 if (s13 && s13 instanceof HTMLElement) { 10962 if (t11.index !== B2) return; 10963 if (t(o11) && (s13.innerHTML = it(o11 + "")), o11 instanceof HTMLElement) { 10964 if (o11.parentElement === s13) return; 10965 s13.innerHTML = "", o11.parentElement && (o11 = o11.cloneNode(true)), s13.append(o11); 10966 } 10967 return; 10968 } 10969 if (!o11) return; 10970 let r7 = t11.captionEl || i10.querySelector(".f-caption"); 10971 !r7 && o11 instanceof HTMLElement && o11.classList.contains("f-caption") && (r7 = o11), r7 || (r7 = document.createElement("div"), s3(r7, "f-caption"), t(o11) ? r7.innerHTML = it(o11 + "") : o11 instanceof HTMLElement && (o11.parentElement && (o11 = o11.cloneNode(true)), r7.append(o11))); 10972 const l10 = `f-caption-${y2}_${t11.index}`; 10973 r7.setAttribute("id", l10), r7.dataset.selectable = "true", s3(i10, "has-caption"), i10.setAttribute("aria-labelledby", l10), t11.captionEl = r7, i10.insertAdjacentElement("beforeend", r7); 10974 } 10975 function Ht(e11, i10 = {}) { 10976 var o11, r7; 10977 let { transition: l10, tween: u5 } = Object.assign({ transition: O2.transition, tween: O2.tween }, i10 || {}); 10978 if (!H2 || !S) return; 10979 const f3 = U.length; 10980 if (!f3) return; 10981 if ((function(t11, e12) { 10982 var i11, o12, s13; 10983 if (!(H2 && C && S && e12 && t(e12) && "tween" !== e12)) return false; 10984 for (const t12 of Q) if (C - t12.dim > 0.5) return false; 10985 if (D2 > 0.5 || $4 > 0.5) return; 10986 const r8 = U.length; 10987 let l11 = t11 > B2 ? 1 : -1; 10988 t11 = q2 ? (t11 % r8 + r8) % r8 : t2(0, t11, r8 - 1), I2 && (l11 *= -1); 10989 const u6 = null === (i11 = U[B2]) || void 0 === i11 ? void 0 : i11.slides[0], f4 = null == u6 ? void 0 : u6.index, v4 = null === (o12 = U[t11]) || void 0 === o12 ? void 0 : o12.slides[0], p3 = null == v4 ? void 0 : v4.index, g3 = null === (s13 = U[t11]) || void 0 === s13 ? void 0 : s13.pos; 10990 if (void 0 === p3 || void 0 === f4 || f4 === p3 || k3 === g3 || Math.abs(C - ((null == v4 ? void 0 : v4.dim) || 0)) > 1) return false; 10991 N2 = false, S.pause(), At(), s3(H2, "in-transition"), k3 = _2 = g3; 10992 const m3 = xt(u6), h4 = xt(v4); 10993 return dt(), m3 && (K.add(f4), m3.style.transform = "", m3.addEventListener("animationend", Lt), s4(m3, O2.classes.isSelected), m3.inert = false, s3(m3, `f-${e12}Out to-${l11 > 0 ? "next" : "prev"}`)), h4 && (K.add(p3), h4.style.transform = "", h4.addEventListener("animationend", Lt), s3(h4, O2.classes.isSelected), h4.inert = false, s3(h4, `f-${e12}In from-${l11 > 0 ? "prev" : "next"}`)), Ct(), true; 10994 })(e11, l10)) return; 10995 e11 = q2 ? (e11 % f3 + f3) % f3 : t2(0, e11, f3 - 1); 10996 const v3 = (null === (o11 = U[e11 || 0]) || void 0 === o11 ? void 0 : o11.pos) || 0; 10997 _2 = v3; 10998 const p2 = S.isRunning() ? S.getEndValues().pos : k3; 10999 if (Math.abs(_2 - p2) < 1) return k3 = _2, B2 !== e11 && (Rt(), A2 = B2, B2 = e11, ut(), ft(), st("change", B2, A2)), Ct(), void (N2 || (N2 = true, st("settle"))); 11000 if (S.pause(), At(), q2) { 11001 const t11 = mt(), e12 = Math.floor((p2 - (null === (r7 = U[0]) || void 0 === r7 ? void 0 : r7.pos)) / t11) || 0, n10 = _2 + e12 * t11; 11002 _2 = [n10 + t11, n10, n10 - t11].reduce(function(t12, e13) { 11003 return Math.abs(e13 - p2) < Math.abs(t12 - p2) ? e13 : t12; 11004 }); 11005 } 11006 false !== l10 && t3(u5) ? S.spring(r3({}, O2.tween, u5)).from({ pos: k3 }).to({ pos: _2 }).start() : (k3 = _2, dt(), Ct(), N2 || (N2 = true, st("settle"))); 11007 } 11008 function Vt(t11) { 11009 var e11; 11010 let n10 = k3; 11011 if (q2 && true !== t11) { 11012 const t12 = mt(); 11013 n10 -= (Math.floor((k3 - (null === (e11 = U[0]) || void 0 === e11 ? void 0 : e11.pos) || 0) / t12) || 0) * t12; 11014 } 11015 return n10; 11016 } 11017 function Ct() { 11018 var t11; 11019 if (!H2 || !V) return; 11020 Q = ht(); 11021 const e11 = /* @__PURE__ */ new Set(), n10 = [], i10 = U[B2], s13 = O2.setTransform; 11022 let l10; 11023 for (const o11 of J) { 11024 const s14 = K.has(o11.index), r7 = Q.indexOf(o11) > -1, a8 = (null === (t11 = null == i10 ? void 0 : i10.slides) || void 0 === t11 ? void 0 : t11.indexOf(o11)) > -1; 11025 if (o11.isVirtual && !s14 && !r7) continue; 11026 let c5 = xt(o11); 11027 if (c5 && (n10.push(o11), a8 && e11.add(c5), nt("adaptiveHeight") && a8)) { 11028 const t12 = (c5.firstElementChild || c5).getBoundingClientRect().height; 11029 l10 = null == l10 ? t12 : Math.max(l10, t12); 11030 } 11031 } 11032 V && l10 && (V.style.height = `${l10}px`), [...e7(V, `.${O2.classes.slide}`)].forEach((t12) => { 11033 s5(t12, O2.classes.isSelected, e11.has(t12)); 11034 const n11 = W[parseInt(t12.getAttribute("index") || "-1")]; 11035 if (!n11) return t12.remove(), void jt(t12); 11036 const i11 = K.has(n11.index), o11 = Q.indexOf(n11) > -1; 11037 if (n11.isVirtual && !i11 && !o11) return void Mt(n11); 11038 if (t12.inert = !o11, false === s13) return; 11039 let l11 = n11.pos ? Math.round(1e4 * n11.pos) / 1e4 : 0, a8 = 0, c5 = 0, d3 = 0, f3 = 0; 11040 i11 || (a8 = F ? 0 : I2 ? -1 * l11 : l11, c5 = F ? l11 : 0, d3 = t5(a8, 0, n11.dim, 0, 100), f3 = t5(c5, 0, n11.dim, 0, 100)), s13 instanceof Function && !i11 ? s13(It, n11, { x: a8, y: c5, xPercent: d3, yPercent: f3 }) : t12.style.transform = a8 || c5 ? `translate3d(${d3}%, ${f3}%,0)` : ""; 11041 }), st("render", n10); 11042 } 11043 function Dt() { 11044 null == H2 || H2.removeEventListener("click", Pt), document.removeEventListener("mousemove", lt), K.clear(), null == j2 || j2.disconnect(), j2 = void 0; 11045 for (const t11 of W) { 11046 let n10 = t11.el; 11047 n10 && n(n10) && (t11.state = void 0, Tt(t11), Ot(t11), t11.isVirtual ? (Mt(t11), t11.el = void 0) : (jt(n10), n10.style.transform = "", V && !V.contains(n10) && V.appendChild(n10))); 11048 } 11049 for (const t11 of Object.values(R2)) null == t11 || t11.destroy(); 11050 R2 = {}, null == w3 || w3.destroy(), w3 = void 0, null == S || S.destroy(), S = void 0; 11051 for (const [t11, e11] of Object.entries(O2.classes || {})) "container" !== t11 && s4(H2, e11); 11052 s4(V, "is-draggable"); 11053 } 11054 function $t() { 11055 return q2 || B2 > 0; 11056 } 11057 function qt() { 11058 return q2 || B2 < U.length - 1; 11059 } 11060 const It = { add: function(t11, e11) { 11061 var n10; 11062 let i10 = k3; 11063 const o11 = B2, s13 = mt(), r7 = (null == S ? void 0 : S.isRunning()) ? S.getEndValues().pos : k3, l10 = s13 && Math.floor((r7 - ((null === (n10 = U[0]) || void 0 === n10 ? void 0 : n10.pos) || 0)) / s13) || 0; 11064 return bt(t11, e11), ct(Y), St(), S && s13 && (o11 === B2 && (i10 -= l10 * s13), i10 === _2 ? k3 = _2 : S.spring({ clamp: true, mass: 1, tension: 300, friction: 25, restDelta: 1, restSpeed: 1 }).from({ pos: i10 }).to({ pos: _2 }).start()), Ct(), It; 11065 }, canGoPrev: $t, canGoNext: qt, destroy: function() { 11066 return st("destroy"), window.removeEventListener("resize", rt), Dt(), ot.clear(), H2 = null, U = [], W = [], O2 = Object.assign({}, h2), R2 = {}, J = [], L = void 0, Y = "*", P = 2, It; 11067 }, emit: st, filter: function(t11 = "*") { 11068 return ct(t11), St(), k3 = t2(G, k3, X), Ct(), st("filter", t11), It; 11069 }, getContainer: function() { 11070 return H2; 11071 }, getGapDim: pt, getGestures: function() { 11072 return w3; 11073 }, getLastMouseMove: function() { 11074 return b2; 11075 }, getOption: function(t11) { 11076 return nt(t11); 11077 }, getOptions: function() { 11078 return O2; 11079 }, getPage: function() { 11080 return U[B2]; 11081 }, getPageIndex: function(t11) { 11082 if (void 0 !== t11) { 11083 for (const e11 of U || []) for (const n10 of e11.slides) if (n10.index === t11) return e11.index; 11084 return -1; 11085 } 11086 return B2; 11087 }, getPageIndexFromPosition: vt, getPageProgress: function(t11, e11) { 11088 var n10; 11089 void 0 === t11 && (t11 = B2); 11090 const i10 = U[t11]; 11091 if (!i10) return t11 > B2 ? -1 : 1; 11092 const o11 = mt(), s13 = pt(); 11093 let r7 = i10.pos, l10 = Vt(); 11094 if (q2 && true !== e11) { 11095 const t12 = Math.floor((l10 - (null === (n10 = U[0]) || void 0 === n10 ? void 0 : n10.pos)) / o11) || 0; 11096 l10 -= t12 * o11, r7 = [r7 + o11, r7, r7 - o11].reduce(function(t13, e12) { 11097 return Math.abs(e12 - l10) < Math.abs(t13 - l10) ? e12 : t13; 11098 }); 11099 } 11100 return (l10 - r7) / (i10.dim + s13) || 0; 11101 }, getPageVisibility: function(t11) { 11102 var e11; 11103 void 0 === t11 && (t11 = B2); 11104 const n10 = U[t11]; 11105 if (!n10) return t11 > B2 ? -1 : 1; 11106 const i10 = Vt(), o11 = gt(); 11107 let s13 = n10.pos; 11108 if (q2) { 11109 const t12 = mt(), n11 = s13 + (Math.floor((i10 - (null === (e11 = U[0]) || void 0 === e11 ? void 0 : e11.pos)) / t12) || 0) * t12; 11110 s13 = [n11 + t12, n11, n11 - t12].reduce(function(t13, e12) { 11111 return Math.abs(e12 - i10) < Math.abs(t13 - i10) ? e12 : t13; 11112 }); 11113 } 11114 return s13 > i10 && s13 + n10.dim < i10 + o11 ? 1 : s13 < i10 ? (s13 + n10.dim - i10) / n10.dim || 0 : s13 + n10.dim > i10 + o11 && (i10 + o11 - s13) / n10.dim || 0; 11115 }, getPages: function() { 11116 return U; 11117 }, getPlugins: function() { 11118 return R2; 11119 }, getPosition: Vt, getSlides: function() { 11120 return W; 11121 }, getState: function() { 11122 return P; 11123 }, getTotalSlideDim: mt, getTween: function() { 11124 return S; 11125 }, getViewport: function() { 11126 return V; 11127 }, getViewportDim: gt, getVisibleSlides: function(t11) { 11128 return void 0 === t11 ? Q : ht(t11); 11129 }, goTo: Ht, hasNavigated: function() { 11130 return void 0 !== A2; 11131 }, hideError: Ot, hideLoading: Tt, init: function() { 11132 if (!g2 || !n(g2)) throw new Error("No Element found"); 11133 return 0 !== P && (Dt(), P = 0), H2 = g2, T = x2, window.removeEventListener("resize", rt), T.breakpoints && window.addEventListener("resize", rt), rt(), It; 11134 }, isInfinite: function() { 11135 return q2; 11136 }, isInTransition: function() { 11137 return K.size > 0; 11138 }, isRTL: function() { 11139 return I2; 11140 }, isSettled: function() { 11141 return N2; 11142 }, isVertical: function() { 11143 return F; 11144 }, localize: function(t11, e11 = []) { 11145 return it(t11, e11); 11146 }, next: function(t11 = {}) { 11147 return Ht(B2 + 1, t11), It; 11148 }, off: function(t11, e11) { 11149 for (const n10 of t11 instanceof Array ? t11 : [t11]) ot.has(n10) && ot.set(n10, ot.get(n10).filter((t12) => t12 !== e11)); 11150 return It; 11151 }, on: function(t11, e11) { 11152 for (const n10 of t11 instanceof Array ? t11 : [t11]) ot.set(n10, [...ot.get(n10) || [], e11]); 11153 return It; 11154 }, prev: function(t11 = {}) { 11155 return Ht(B2 - 1, t11), It; 11156 }, reInit: function(e11 = {}, n10) { 11157 return Dt(), P = 0, L = void 0, Y = "*", x2 = e11, T = e11, t3(n10) && (M3 = n10), rt(), It; 11158 }, remove: function(t11) { 11159 void 0 === t11 && (t11 = W.length - 1); 11160 const e11 = W[t11]; 11161 return e11 && (st("removeSlide", e11), e11.el && (jt(e11.el), e11.el.remove(), e11.el = void 0), W.splice(t11, 1), ct(Y), St(), k3 = t2(G, k3, X), Ct()), It; 11162 }, setPosition: function(t11) { 11163 k3 = t11, dt(), Ct(); 11164 }, showError: function(t11, e11) { 11165 if (1 === P) { 11166 Tt(t11), Ot(t11); 11167 const n10 = t11.el; 11168 if (n10) { 11169 const i10 = document.createElement("div"); 11170 s3(i10, "f-html"), s3(i10, "is-error"), i10.innerHTML = it(e11 || "<p>{{ERROR}}</p>"), t11.htmlEl = i10, s3(n10, "has-html has-error"), n10.insertAdjacentElement("afterbegin", i10), st("contentReady", t11); 11171 } 11172 } 11173 return It; 11174 }, showLoading: function(t11) { 11175 const e11 = t11.el, n10 = null == e11 ? void 0 : e11.querySelector(".f-spinner"); 11176 if (!e11 || n10) return It; 11177 const i10 = nt("spinnerTpl"), o11 = e2(i10); 11178 return o11 && (s3(o11, "f-spinner"), e11.insertAdjacentElement("beforeend", o11)), It; 11179 }, version: "6.1.10" }; 11180 return It; 11181 }; 11182 E2.l10n = { en_EN: o3 }, E2.getDefaults = () => h2; 11183 } 11184 }); 11185 11186
vendor: 857 bytes, lines 11186-11203
11186// node_modules/@fancyapps/ui/dist/utils/scrollLock.js 11187 var t6; 11188 var init_scrollLock = __esm({ 11189 "node_modules/@fancyapps/ui/dist/utils/scrollLock.js"() { 11190 t6 = (t11 = true, e11 = "--f-scrollbar-compensate", s13 = "--f-body-margin", o11 = "hide-scrollbar") => { 11191 const n10 = document, r7 = n10.body, l10 = n10.documentElement; 11192 if (t11) { 11193 if (r7.classList.contains(o11)) return; 11194 let t12 = window.innerWidth - l10.getBoundingClientRect().width; 11195 t12 < 0 && (t12 = 0), l10.style.setProperty(e11, `${t12}px`); 11196 const n11 = parseFloat(window.getComputedStyle(r7).marginRight); 11197 n11 && r7.style.setProperty(s13, `${n11}px`), r7.classList.add(o11); 11198 } else r7.classList.remove(o11), r7.style.setProperty(s13, ""), n10.documentElement.style.setProperty(e11, ""); 11199 }; 11200 } 11201 }); 11202 11203
vendor: 281 bytes, lines 11203-11212
11203// node_modules/@fancyapps/ui/dist/utils/canUseDOM.js 11204 function e8() { 11205 return !("undefined" == typeof window || !window.document || !window.document.createElement); 11206 } 11207 var init_canUseDOM = __esm({ 11208 "node_modules/@fancyapps/ui/dist/utils/canUseDOM.js"() { 11209 } 11210 }); 11211 11212
vendor: 276 bytes, lines 11212-11222
11212// node_modules/@fancyapps/ui/dist/utils/replaceAll.js 11213 var n5; 11214 var init_replaceAll = __esm({ 11215 "node_modules/@fancyapps/ui/dist/utils/replaceAll.js"() { 11216 n5 = function(n10 = "", t11 = "", o11 = "") { 11217 return n10.split(t11).join(o11); 11218 }; 11219 } 11220 }); 11221 11222
vendor: 5,044 bytes, lines 11222-11309
11222// node_modules/@fancyapps/ui/dist/carousel/carousel.zoomable.js 11223 var a3, s6; 11224 var init_carousel_zoomable = __esm({ 11225 "node_modules/@fancyapps/ui/dist/carousel/carousel.zoomable.js"() { 11226 init_isPlainObject(); 11227 init_isString(); 11228 init_replaceAll(); 11229 init_panzoom(); 11230 a3 = { tpl: (t11) => `<img class="f-panzoom__content" 11231 ${t11.srcset ? 'data-lazy-srcset="{{srcset}}"' : ""} 11232 ${t11.sizes ? 'data-lazy-sizes="{{sizes}}"' : ""} 11233 data-lazy-src="{{src}}" alt="{{alt}}" />` }; 11234 s6 = () => { 11235 let s13; 11236 function l10(e11, o11) { 11237 const n10 = null == s13 ? void 0 : s13.getOptions().Zoomable; 11238 let i10 = (t3(n10) ? Object.assign(Object.assign({}, a3), n10) : a3)[e11]; 11239 return i10 && "function" == typeof i10 && o11 ? i10(o11) : i10; 11240 } 11241 function c5() { 11242 s13 && false !== s13.getOptions().Zoomable && (s13.on("addSlide", f3), s13.on("removeSlide", u5), s13.on("attachSlideEl", g2), s13.on("click", d3), s13.on("change", r7), s13.on("ready", r7)); 11243 } 11244 function r7() { 11245 m3(); 11246 const t11 = (null == s13 ? void 0 : s13.getVisibleSlides()) || []; 11247 if (t11.length > 1 || "slide" === (null == s13 ? void 0 : s13.getOption("transition"))) for (const e11 of t11) { 11248 const t12 = e11.panzoomRef; 11249 t12 && ((null == s13 ? void 0 : s13.getPage().slides) || []).indexOf(e11) < 0 && t12.execute(v.ZoomTo, Object.assign({}, t12.getStartPosition())); 11250 } 11251 } 11252 function d3(t11, e11) { 11253 const o11 = e11.target; 11254 o11 && !e11.defaultPrevented && o11.dataset.panzoomAction && p2(o11.dataset.panzoomAction); 11255 } 11256 function f3(t11, i10) { 11257 const a8 = i10.el; 11258 if (!s13 || !a8 || i10.panzoomRef) return; 11259 const c6 = i10.src || i10.lazySrc || "", r8 = i10.alt || i10.caption || `Image #${i10.index}`, d4 = i10.srcset || i10.lazySrcset || "", f4 = i10.sizes || i10.lazySizes || ""; 11260 if (c6 && t(c6) && !i10.html && (!i10.type || "image" === i10.type)) { 11261 i10.type = "image", i10.thumbSrc = i10.thumbSrc || c6; 11262 let t12 = l10("tpl", i10); 11263 t12 = n5(t12, "{{src}}", c6 + ""), t12 = n5(t12, "{{srcset}}", d4 + ""), t12 = n5(t12, "{{sizes}}", f4 + ""), a8.insertAdjacentHTML("afterbegin", t12); 11264 } 11265 const u6 = a8.querySelector(".f-panzoom__content"); 11266 if (!u6) return; 11267 u6.setAttribute("alt", r8 + ""); 11268 const g3 = i10.width && "auto" !== i10.width ? parseFloat(i10.width + "") : "auto", p3 = i10.height && "auto" !== i10.height ? parseFloat(i10.height + "") : "auto", z2 = E(a8, Object.assign({ width: g3, height: p3, classes: { container: "f-zoomable" }, event: () => null == s13 ? void 0 : s13.getLastMouseMove(), spinnerTpl: () => (null == s13 ? void 0 : s13.getOption("spinnerTpl")) || "" }, l10("Panzoom"))); 11269 z2.on("*", (t12, e11, ...o11) => { 11270 s13 && ("loading" === e11 && (i10.state = 0), "loaded" === e11 && (i10.state = 1), "error" === e11 && (i10.state = 2, null == s13 || s13.showError(i10, "{{IMAGE_ERROR}}")), s13.emit(`panzoom:${e11}`, i10, ...o11), "loading" === e11 && s13.emit("contentLoading", i10), "ready" === e11 && s13.emit("contentReady", i10), i10.index === (null == s13 ? void 0 : s13.getPageIndex()) && m3()); 11271 }), i10.panzoomRef = z2; 11272 } 11273 function u5(t11, e11) { 11274 e11.panzoomRef && (e11.panzoomRef.destroy(), e11.panzoomRef = void 0); 11275 } 11276 function g2(t11, e11) { 11277 const o11 = e11.panzoomRef; 11278 if (o11) switch (o11.getState()) { 11279 case 0: 11280 o11.init(); 11281 break; 11282 case 3: 11283 o11.execute(v.ZoomTo, Object.assign(Object.assign({}, o11.getStartPosition()), { velocity: 0 })); 11284 } 11285 } 11286 function m3() { 11287 var t11, e11; 11288 const o11 = (null == s13 ? void 0 : s13.getContainer()) || void 0, n10 = null === (e11 = null === (t11 = null == s13 ? void 0 : s13.getPage()) || void 0 === t11 ? void 0 : t11.slides[0]) || void 0 === e11 ? void 0 : e11.panzoomRef; 11289 if (o11) if (n10) n10.updateControls(o11); 11290 else for (const t12 of o11.querySelectorAll("[data-panzoom-action]") || []) t12.setAttribute("aria-disabled", ""), t12.setAttribute("tabindex", "-1"); 11291 } 11292 function p2(t11, ...e11) { 11293 var o11; 11294 null === (o11 = null == s13 ? void 0 : s13.getPage().slides[0].panzoomRef) || void 0 === o11 || o11.execute(t11, ...e11); 11295 } 11296 return { init: function(t11) { 11297 s13 = t11, s13.on("initPlugins", c5); 11298 }, destroy: function() { 11299 if (s13) { 11300 s13.off("initPlugins", c5), s13.off("addSlide", f3), s13.off("removeSlide", u5), s13.off("attachSlideEl", g2), s13.off("click", d3), s13.off("change", r7), s13.off("ready", r7); 11301 for (const t11 of s13.getSlides()) u5(0, t11); 11302 } 11303 s13 = void 0; 11304 }, execute: p2 }; 11305 }; 11306 } 11307 }); 11308 11309
vendor: 4,176 bytes, lines 11309-11392
11309// node_modules/@fancyapps/ui/dist/carousel/carousel.sync.js 11310 var e9, i3; 11311 var init_carousel_sync = __esm({ 11312 "node_modules/@fancyapps/ui/dist/carousel/carousel.sync.js"() { 11313 init_isPlainObject(); 11314 e9 = { syncOnChange: false, syncOnClick: true, syncOnHover: false }; 11315 i3 = () => { 11316 let i10, t11; 11317 function o11() { 11318 const t12 = null == i10 ? void 0 : i10.getOptions().Sync; 11319 return t3(t12) ? Object.assign(Object.assign({}, e9), t12) : e9; 11320 } 11321 function s13(n10) { 11322 var e11, s14, l11; 11323 i10 && n10 && (t11 = n10, i10.getOptions().classes = Object.assign(Object.assign({}, i10.getOptions().classes), { isSelected: "" }), i10.getOptions().initialSlide = (null === (s14 = null === (e11 = t11.getPage()) || void 0 === e11 ? void 0 : e11.slides[0]) || void 0 === s14 ? void 0 : s14.index) || 0, o11().syncOnChange && i10.on("change", c5), o11().syncOnClick && i10.on("click", g2), o11().syncOnHover && (null === (l11 = i10.getViewport()) || void 0 === l11 || l11.addEventListener("mouseover", u5)), (function() { 11324 if (!i10 || !t11) return; 11325 i10.on("ready", d3), i10.on("refresh", a8), t11.on("change", r7), t11.on("filter", f3); 11326 })()); 11327 } 11328 function l10() { 11329 const n10 = o11().target; 11330 i10 && n10 && s13(n10); 11331 } 11332 function d3() { 11333 v3(); 11334 } 11335 function c5() { 11336 var n10; 11337 if (i10 && t11) { 11338 const e11 = (null === (n10 = i10.getPage()) || void 0 === n10 ? void 0 : n10.slides) || [], o12 = t11.getPageIndex(e11[0].index || 0); 11339 o12 > -1 && t11.goTo(o12, i10.hasNavigated() ? void 0 : { tween: false, transition: false }), v3(); 11340 } 11341 } 11342 function r7() { 11343 var n10; 11344 if (i10 && t11) { 11345 const e11 = i10.getPageIndex((null === (n10 = t11.getPage()) || void 0 === n10 ? void 0 : n10.slides[0].index) || 0); 11346 e11 > -1 && i10.goTo(e11, t11.hasNavigated() ? void 0 : { tween: false, transition: false }), v3(); 11347 } 11348 } 11349 function g2(n10, e11) { 11350 var o12; 11351 if (!i10 || !t11) return; 11352 if (null === (o12 = i10.getTween()) || void 0 === o12 ? void 0 : o12.isRunning()) return; 11353 const s14 = null == i10 ? void 0 : i10.getOptions().classes.slide; 11354 if (!s14) return; 11355 const l11 = s14 ? e11.target.closest(`.${s14}`) : null; 11356 if (l11) { 11357 const n11 = parseInt(l11.getAttribute("index") || "") || 0, e12 = t11.getPageIndex(n11); 11358 t11.goTo(e12); 11359 } 11360 } 11361 function u5(n10) { 11362 i10 && g2(0, n10); 11363 } 11364 function a8() { 11365 var n10; 11366 if (i10 && t11) { 11367 const e11 = i10.getPageIndex((null === (n10 = t11.getPage()) || void 0 === n10 ? void 0 : n10.slides[0].index) || 0); 11368 e11 > -1 && i10.goTo(e11, { tween: false, transition: false }), v3(); 11369 } 11370 } 11371 function f3(n10, e11) { 11372 i10 && t11 && (i10.filter(e11), r7()); 11373 } 11374 function v3() { 11375 var n10, e11, o12; 11376 if (!t11) return; 11377 const s14 = (null === (e11 = null === (n10 = t11.getPage()) || void 0 === n10 ? void 0 : n10.slides[0]) || void 0 === e11 ? void 0 : e11.index) || 0; 11378 for (const n11 of (null == i10 ? void 0 : i10.getSlides()) || []) null === (o12 = n11.el) || void 0 === o12 || o12.classList.toggle("is-selected", n11.index === s14); 11379 } 11380 return { init: function(n10) { 11381 i10 = n10, i10.on("initSlides", l10); 11382 }, destroy: function() { 11383 var n10; 11384 null == i10 || i10.off("ready", d3), null == i10 || i10.off("refresh", a8), null == i10 || i10.off("change", c5), null == i10 || i10.off("click", g2), null === (n10 = null == i10 ? void 0 : i10.getViewport()) || void 0 === n10 || n10.removeEventListener("mouseover", u5), null == t11 || t11.off("change", r7), null == t11 || t11.off("filter", f3), t11 = void 0, null == i10 || i10.off("initSlides", l10), i10 = void 0; 11385 }, getTarget: function() { 11386 return t11; 11387 } }; 11388 }; 11389 } 11390 }); 11391 11392
vendor: 3,299 bytes, lines 11392-11459
11392// node_modules/@fancyapps/ui/dist/carousel/carousel.lazyload.js 11393 var s7, n6, o4, l2, i4; 11394 var init_carousel_lazyload = __esm({ 11395 "node_modules/@fancyapps/ui/dist/carousel/carousel.lazyload.js"() { 11396 init_addClass(); 11397 init_isPlainObject(); 11398 init_removeClass(); 11399 s7 = { showLoading: true, preload: 1 }; 11400 n6 = "is-lazyloading"; 11401 o4 = "is-lazyloaded"; 11402 l2 = "has-lazyerror"; 11403 i4 = () => { 11404 let i10; 11405 function d3() { 11406 const e11 = null == i10 ? void 0 : i10.getOptions().Lazyload; 11407 return t3(e11) ? Object.assign(Object.assign({}, s7), e11) : s7; 11408 } 11409 function r7(t11) { 11410 var s13; 11411 const r8 = t11.el; 11412 if (!r8) return; 11413 const c6 = "[data-lazy-src],[data-lazy-srcset],[data-lazy-bg]", u5 = Array.from(r8.querySelectorAll(c6)); 11414 r8.matches(c6) && u5.push(r8); 11415 for (const r9 of u5) { 11416 const c7 = r9.dataset.lazySrc, u6 = r9.dataset.lazySrcset, f3 = r9.dataset.lazySizes, m3 = r9.dataset.lazyBg, y3 = (r9 instanceof HTMLImageElement || r9 instanceof HTMLSourceElement) && (c7 || u6), z2 = r9 instanceof HTMLElement && m3; 11417 if (!y3 && !z2) continue; 11418 const g2 = c7 || u6 || m3; 11419 if (g2) { 11420 if (y3 && g2) { 11421 const m4 = null === (s13 = r9.parentElement) || void 0 === s13 ? void 0 : s13.classList.contains("f-panzoom__wrapper"); 11422 d3().showLoading && (null == i10 || i10.showLoading(t11)), r9.addEventListener("load", () => { 11423 null == i10 || i10.hideLoading(t11), s4(r9, l2), r9 instanceof HTMLImageElement ? r9.decode().then(() => { 11424 s4(r9, n6), s3(r9, o4); 11425 }).catch(() => { 11426 s4(r9, n6), s3(r9, o4); 11427 }) : (s4(r9, n6), s3(r9, o4)), m4 || null == i10 || i10.emit("lazyLoad:loaded", t11, r9, g2); 11428 }), r9.addEventListener("error", () => { 11429 null == i10 || i10.hideLoading(t11), s4(r9, n6), s3(r9, l2), m4 || null == i10 || i10.emit("lazyLoad:error", t11, r9, g2); 11430 }), r9.classList.add("f-lazyload"), r9.classList.add(n6), m4 || null == i10 || i10.emit("lazyLoad:load", t11, r9, g2), c7 && (r9.src = c7), u6 && (r9.srcset = u6), f3 && (r9.sizes = f3); 11431 } else if (z2) { 11432 if (!document.body.contains(r9)) { 11433 document.createElement("img").src = m3; 11434 } 11435 r9.style.backgroundImage = `url('${m3}')`; 11436 } 11437 delete r9.dataset.lazySrc, delete r9.dataset.lazySrcset, delete r9.dataset.lazySizes, delete r9.dataset.lazyBg; 11438 } 11439 } 11440 } 11441 function c5() { 11442 if (!i10) return; 11443 const e11 = [...i10.getVisibleSlides()], t11 = d3().preload; 11444 if (t11 > 0) { 11445 const a8 = i10.getPosition(), s13 = i10.getViewportDim(); 11446 e11.push(...i10.getVisibleSlides(a8 + s13 * t11), ...i10.getVisibleSlides(a8 - s13 * t11)); 11447 } 11448 for (const t12 of e11) r7(t12); 11449 } 11450 return { init: function(e11) { 11451 i10 = e11, i10.on("render", c5); 11452 }, destroy: function() { 11453 null == i10 || i10.off("render", c5), i10 = void 0; 11454 } }; 11455 }; 11456 } 11457 }); 11458 11459
vendor: 2,176 bytes, lines 11459-11501
11459// node_modules/@fancyapps/ui/dist/carousel/carousel.arrows.js 11460 var r4, i5, s8, l3; 11461 var init_carousel_arrows = __esm({ 11462 "node_modules/@fancyapps/ui/dist/carousel/carousel.arrows.js"() { 11463 init_addClass(); 11464 init_isPlainObject(); 11465 init_strToHtml(); 11466 init_toggleClass(); 11467 r4 = '<svg width="24" height="24" viewBox="0 0 24 24" tabindex="-1">'; 11468 i5 = "</svg>"; 11469 s8 = { prevTpl: r4 + '<path d="M15 3l-9 9 9 9"></path>' + i5, nextTpl: r4 + '<path d="M9 3l9 9-9 9"></path>' + i5 }; 11470 l3 = () => { 11471 let r7, i10, l10; 11472 function a8() { 11473 const t11 = null == r7 ? void 0 : r7.getOptions().Arrows; 11474 return t3(t11) ? Object.assign(Object.assign({}, s8), t11) : s8; 11475 } 11476 function u5(e11) { 11477 if (!r7) return; 11478 const o11 = `<button data-carousel-go-${e11} tabindex="0" class="f-button is-arrow is-${e11}" title="{{${e11.toUpperCase()}}}">` + a8()[`${e11}Tpl`] + "</button", i11 = e2(r7.localize(o11)) || void 0; 11479 return i11 && s3(i11, a8()[`${e11}Class`]), i11; 11480 } 11481 function c5() { 11482 var t11; 11483 null == i10 || i10.remove(), i10 = void 0, null == l10 || l10.remove(), l10 = void 0, null === (t11 = null == r7 ? void 0 : r7.getContainer()) || void 0 === t11 || t11.classList.remove("has-arrows"); 11484 } 11485 function d3() { 11486 r7 && false !== r7.getOptions().Arrows && r7.getPages().length > 1 ? (!(function() { 11487 if (!r7) return; 11488 const t11 = r7.getViewport(); 11489 t11 && (i10 || (i10 = u5("prev"), i10 && t11.insertAdjacentElement("beforebegin", i10)), l10 || (l10 = u5("next"), l10 && t11.insertAdjacentElement("afterend", l10)), s5(r7.getContainer(), "has-arrows", !(!i10 && !l10))); 11490 })(), r7 && (null == i10 || i10.toggleAttribute("aria-disabled", !r7.canGoPrev()), null == l10 || l10.toggleAttribute("aria-disabled", !r7.canGoNext()))) : c5(); 11491 } 11492 return { init: function(t11) { 11493 r7 = t11.on(["change", "refresh"], d3); 11494 }, destroy: function() { 11495 c5(), null == r7 || r7.off(["change", "refresh"], d3), r7 = void 0; 11496 } }; 11497 }; 11498 } 11499 }); 11500 11501
vendor: 2,156 bytes, lines 11501-11513
11501// node_modules/@fancyapps/ui/dist/shared/buttons.js 11502 var t7, M2, o5, v2; 11503 var init_buttons = __esm({ 11504 "node_modules/@fancyapps/ui/dist/shared/buttons.js"() { 11505 t7 = '<circle cx="11" cy="11" r="7.5"/><path d="m21 21-4.35-4.35M8 11h6"/>'; 11506 M2 = '<g><line x1="11" y1="8" x2="11" y2="14"></line></g>' + t7; 11507 o5 = { moveLeft: ["moveLeft", "MOVE_LEFT", '<path d="M5 12h14M5 12l6 6M5 12l6-6"/>'], moveRight: ["moveRight", "MOVE_RIGHT", '<path d="M5 12h14M13 18l6-6M13 6l6 6"/>'], moveUp: ["moveUp", "MOVE_UP", '<path d="M12 5v14M18 11l-6-6M6 11l6-6"/>'], moveDown: ["moveDown", "MOVE_DOWN", '<path d="M12 5v14M18 13l-6 6M6 13l6 6"/>'], zoomOut: ["zoomOut", "ZOOM_OUT", t7], zoomIn: ["zoomIn", "ZOOM_IN", M2], toggleFull: ["toggleFull", "TOGGLE_FULL", M2], iterateZoom: ["iterateZoom", "ITERATE_ZOOM", M2], toggle1to1: ["toggleFull", "TOGGLE_FULL", '<path d="M3.51 3.07c5.74.02 11.48-.02 17.22.02 1.37.1 2.34 1.64 2.18 3.13 0 4.08.02 8.16 0 12.23-.1 1.54-1.47 2.64-2.79 2.46-5.61-.01-11.24.02-16.86-.01-1.36-.12-2.33-1.65-2.17-3.14 0-4.07-.02-8.16 0-12.23.1-1.36 1.22-2.48 2.42-2.46Z"/><path d="M5.65 8.54h1.49v6.92m8.94-6.92h1.49v6.92M11.5 9.4v.02m0 5.18v0"/>'], rotateCCW: ["rotateCCW", "ROTATE_CCW", '<path d="M15 4.55a8 8 0 0 0-6 14.9M9 15v5H4M18.37 7.16v.01M13 19.94v.01M16.84 18.37v.01M19.37 15.1v.01M19.94 11v.01"/>'], rotateCW: ["rotateCW", "ROTATE_CW", '<path d="M9 4.55a8 8 0 0 1 6 14.9M15 15v5h5M5.63 7.16v.01M4.06 11v.01M4.63 15.1v.01M7.16 18.37v.01M11 19.94v.01"/>'], flipX: ["flipX", "FLIP_X", '<path d="M12 3v18M16 7v10h5L16 7M8 7v10H3L8 7"/>'], flipY: ["flipY", "FLIP_Y", '<path d="M3 12h18M7 16h10L7 21v-5M7 8h10L7 3v5"/>'], reset: ["reset", "RESET", '<path d="M20 11A8.1 8.1 0 0 0 4.5 9M4 5v4h4M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4"/>'], toggleFS: ["toggleFS", "TOGGLE_FS", '<g><path d="M14.5 9.5 21 3m0 0h-6m6 0v6M3 21l6.5-6.5M3 21v-6m0 6h6"/></g><g><path d="m14 10 7-7m-7 7h6m-6 0V4M3 21l7-7m0 0v6m0-6H4"/></g>'] }; 11508 v2 = {}; 11509 for (const [t11, M3] of Object.entries(o5)) v2[t11] = { tpl: `<button data-panzoom-action="${M3[0]}" class="f-button" title="{{${M3[1]}}}"><svg>${M3[2]}</svg></button>` }; 11510 } 11511 }); 11512 11513
vendor: 4,981 bytes, lines 11513-11596
11513// node_modules/@fancyapps/ui/dist/carousel/carousel.toolbar.js 11514 var l4, s9, a4, r5; 11515 var init_carousel_toolbar = __esm({ 11516 "node_modules/@fancyapps/ui/dist/carousel/carousel.toolbar.js"() { 11517 init_isPlainObject(); 11518 init_isString(); 11519 init_strToHtml(); 11520 init_buttons(); 11521 init_extend(); 11522 !(function(t11) { 11523 t11.Left = "left", t11.middle = "middle", t11.right = "right"; 11524 })(l4 || (l4 = {})); 11525 s9 = Object.assign({ counter: { tpl: '<div class="f-counter"><span data-carousel-page></span>/<span data-carousel-pages></span></div>' }, download: { tpl: '<button data-carousel-download class="f-button" title="{{DOWNLOAD}}"><svg><path d="M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2M7 11l5 5 5-5M12 4v12"/></svg></button>' }, autoplay: { tpl: '<button data-autoplay-action="toggle" class="f-button" title="{{TOGGLE_AUTOPLAY}}"><svg><g><path d="M5 3.5 19 12 5 20.5Z"/></g><g><path d="M8 4v15M17 4v15"/></g></svg></button>' }, thumbs: { tpl: '<button data-thumbs-action="toggle" class="f-button" title="{{TOGGLE_THUMBS}}"><svg><rect width="18" height="14" x="3" y="3" rx="2"/><path d="M4 21h1M9 21h1M14 21h1M19 21h1"/></svg></button>' } }, v2); 11526 a4 = { absolute: false, display: { left: [], middle: ["zoomIn", "zoomOut", "toggle1to1", "rotateCCW", "rotateCW", "flipX", "flipY", "reset"], right: [] }, enabled: "auto", items: {} }; 11527 r5 = () => { 11528 let l10, r7; 11529 function u5(e11) { 11530 const o11 = null == l10 ? void 0 : l10.getOptions().Toolbar; 11531 let n10 = (t3(o11) ? Object.assign(Object.assign({}, a4), o11) : a4)[e11]; 11532 return n10 && "function" == typeof n10 && l10 ? n10(l10) : n10; 11533 } 11534 function c5() { 11535 var a8, c6; 11536 if (!(null == l10 ? void 0 : l10.getOptions().Toolbar)) return; 11537 if (!l10 || r7) return; 11538 const d3 = l10.getContainer(); 11539 if (!d3) return; 11540 let f3 = u5("enabled"); 11541 if (!f3) return; 11542 const g2 = u5("absolute"), p2 = l10.getSlides().length > 1; 11543 let b3 = false, m3 = false; 11544 for (const t11 of l10.getSlides()) t11.panzoomRef && (b3 = true), (t11.downloadSrc || "image" === t11.type && t11.src) && (m3 = true); 11545 const v3 = (null === (a8 = l10.getPlugins().Thumbs) || void 0 === a8 ? void 0 : a8.isEnabled()) || false, h4 = p2 && l10.getPlugins().Autoplay || false, E3 = l10.getPlugins().Fullscreen && (document.fullscreenEnabled || document.webkitFullscreenEnabled); 11546 if ("auto" === f3 && (f3 = b3), !f3) return; 11547 r7 = d3.querySelector(".f-carousel__toolbar") || void 0, r7 || (r7 = document.createElement("div"), r7.classList.add("f-carousel__toolbar")); 11548 const y3 = u5("display"), j2 = r3({}, s9, u5("items")); 11549 for (const i10 of ["left", "middle", "right"]) { 11550 const s13 = y3[i10] || [], a9 = document.createElement("div"); 11551 a9.classList.add("f-carousel__toolbar__column"), a9.classList.add(`is-${i10}`); 11552 for (const i11 of s13) { 11553 let s14; 11554 if (t(i11)) { 11555 if ("counter" === i11 && !p2) continue; 11556 if ("autoplay" === i11 && !h4) continue; 11557 if (v2[i11] && !b3) continue; 11558 if ("fullscreen" === i11 && !E3) continue; 11559 if ("thumbs" === i11 && !v3) continue; 11560 if ("download" === i11 && !m3) continue; 11561 s14 = j2[i11]; 11562 } 11563 if (t3(i11) && (s14 = i11), s14 && s14.tpl) { 11564 let t11 = l10.localize(s14.tpl); 11565 t11 = t11.split("<svg>").join('<svg tabindex="-1" width="24" height="24" viewBox="0 0 24 24">'); 11566 const e11 = e2(t11); 11567 e11 && ("function" == typeof s14.click && l10 && e11.addEventListener("click", (t12) => { 11568 t12.preventDefault(), t12.stopPropagation(), "function" == typeof s14.click && l10 && s14.click(l10, t12); 11569 }), a9.append(e11)); 11570 } 11571 } 11572 r7.append(a9); 11573 } 11574 if (r7.childElementCount) { 11575 if (g2 && r7.classList.add("is-absolute"), !r7.parentElement) { 11576 const t11 = u5("parentEl"); 11577 t11 ? t11.insertAdjacentElement("afterbegin", r7) : null === (c6 = l10.getViewport()) || void 0 === c6 || c6.insertAdjacentElement("beforebegin", r7); 11578 } 11579 d3.contains(r7) && d3.classList.add("has-toolbar"); 11580 } 11581 } 11582 return { init: function(t11) { 11583 l10 = t11, null == l10 || l10.on("initSlides", c5); 11584 }, destroy: function() { 11585 var t11; 11586 null == l10 || l10.off("initSlides", c5), null === (t11 = null == l10 ? void 0 : l10.getContainer()) || void 0 === t11 || t11.classList.remove("has-toolbar"), null == r7 || r7.remove(), r7 = void 0; 11587 }, add: function(t11, e11) { 11588 s9[t11] = e11; 11589 }, isEnabled: function() { 11590 return !!r7; 11591 } }; 11592 }; 11593 } 11594 }); 11595 11596
vendor: 5,235 bytes, lines 11596-11709
11596// node_modules/@fancyapps/ui/dist/carousel/carousel.autoplay.js 11597 var n7, o6; 11598 var init_carousel_autoplay = __esm({ 11599 "node_modules/@fancyapps/ui/dist/carousel/carousel.autoplay.js"() { 11600 init_isPlainObject(); 11601 init_addClass(); 11602 n7 = { autoStart: true, pauseOnHover: true, showProgressbar: true, timeout: 2e3 }; 11603 o6 = () => { 11604 let o11, i10, a8 = false, s13 = false, l10 = false, r7 = null; 11605 function u5(e11) { 11606 const i11 = null == o11 ? void 0 : o11.getOptions().Autoplay; 11607 let a9 = (t3(i11) ? Object.assign(Object.assign({}, n7), i11) : n7)[e11]; 11608 return a9 && "function" == typeof a9 && o11 ? a9(o11) : a9; 11609 } 11610 function f3() { 11611 clearTimeout(i10), i10 = void 0; 11612 } 11613 function g2() { 11614 if (!o11 || !a8 || l10 || s13 || i10 || !o11.isSettled() || (function() { 11615 var t12; 11616 const e11 = (null === (t12 = null == o11 ? void 0 : o11.getPage()) || void 0 === t12 ? void 0 : t12.slides) || []; 11617 for (const t13 of e11) if (0 === t13.state) return true; 11618 return false; 11619 })()) return; 11620 !(function() { 11621 var t12, n10, i11, a9; 11622 if (!o11) return; 11623 if (v3(), !u5("showProgressbar")) return; 11624 let s14 = u5("progressbarParentEl"); 11625 !s14 && (null === (t12 = o11.getPlugins().Toolbar) || void 0 === t12 ? void 0 : t12.isEnabled()) && (s14 = o11.getContainer()); 11626 if (!s14 && true !== (null === (n10 = o11.getPlugins().Toolbar) || void 0 === n10 ? void 0 : n10.isEnabled())) { 11627 const t13 = (null === (i11 = o11.getPages()[0]) || void 0 === i11 ? void 0 : i11.slides) || [], e11 = (null === (a9 = o11.getPage()) || void 0 === a9 ? void 0 : a9.slides) || []; 11628 1 === t13.length && 1 === e11.length && (s14 = e11[0].el); 11629 } 11630 s14 || (s14 = o11.getViewport()); 11631 if (!s14) return; 11632 r7 = document.createElement("div"), s3(r7, "f-progressbar"), s14.prepend(r7); 11633 const l11 = u5("timeout") || 1e3; 11634 r7.style.animationDuration = `${l11}ms`; 11635 })(); 11636 const t11 = u5("timeout"); 11637 i10 = setTimeout(() => { 11638 o11 && a8 && !s13 && (o11.isInfinite() || o11.getPageIndex() !== o11.getPages().length - 1 ? o11.next() : o11.goTo(0)); 11639 }, t11); 11640 } 11641 function c5() { 11642 var t11; 11643 if (!o11 || o11.getPages().length < 2 || false === o11.getOptions().Autoplay) return; 11644 if (a8) return; 11645 a8 = true, o11.emit("autoplay:start", u5("timeout")), s3(o11.getContainer(), "has-autoplay"), null === (t11 = o11.getTween()) || void 0 === t11 || t11.on("start", b3); 11646 const n10 = null == o11 ? void 0 : o11.getContainer(); 11647 n10 && u5("pauseOnHover") && matchMedia("(hover: hover)").matches && (n10.addEventListener("mouseenter", E3, false), n10.addEventListener("mouseleave", w3, false)), o11.on("change", P), o11.on("settle", y3), o11.on("contentReady", p2), o11.on("panzoom:touchStart", d3), o11.on("panzoom:wheel", d3), o11.isSettled() && g2(); 11648 } 11649 function d3() { 11650 var t11; 11651 if (f3(), v3(), o11) { 11652 if (a8) { 11653 o11.emit("autoplay:end"), null === (t11 = o11.getTween()) || void 0 === t11 || t11.off("start", b3); 11654 const e11 = o11.getContainer(); 11655 e11 && (e11.classList.remove("has-autoplay"), e11.removeEventListener("mouseenter", E3, false), e11.removeEventListener("mouseleave", w3, false)); 11656 } 11657 o11.off("change", P), o11.off("settle", y3), o11.off("contentReady", p2), o11.off("panzoom:touchStart", d3), o11.off("panzoom:wheel", d3); 11658 } 11659 a8 = false, s13 = false; 11660 } 11661 function v3() { 11662 r7 && (r7.remove(), r7 = null); 11663 } 11664 function m3() { 11665 o11 && o11.getPages().length > 1 && u5("autoStart") && c5(); 11666 } 11667 function p2() { 11668 g2(); 11669 } 11670 function h4(t11, e11) { 11671 const n10 = e11.target; 11672 n10 && !e11.defaultPrevented && "toggle" === n10.dataset.autoplayAction && O2.toggle(); 11673 } 11674 function P() { 11675 !o11 || !(null == o11 ? void 0 : o11.isInfinite()) && o11.getPageIndex() === o11.getPages().length - 1 ? d3() : (v3(), f3()); 11676 } 11677 function y3() { 11678 g2(); 11679 } 11680 function b3() { 11681 f3(), v3(); 11682 } 11683 function E3() { 11684 l10 = true, a8 && (v3(), f3()); 11685 } 11686 function w3() { 11687 l10 = false, a8 && !s13 && (null == o11 ? void 0 : o11.isSettled()) && g2(); 11688 } 11689 const O2 = { init: function(t11) { 11690 o11 = t11, o11.on("ready", m3), o11.on("click", h4); 11691 }, destroy: function() { 11692 d3(), null == o11 || o11.off("ready", m3), null == o11 || o11.off("click", h4), o11 = void 0; 11693 }, isEnabled: () => a8, pause: function() { 11694 s13 = true, f3(); 11695 }, resume: function() { 11696 s13 = false, a8 && !l10 && g2(); 11697 }, start() { 11698 c5(); 11699 }, stop() { 11700 d3(); 11701 }, toggle() { 11702 a8 ? d3() : c5(); 11703 } }; 11704 return O2; 11705 }; 11706 } 11707 }); 11708 11709
vendor: 11,173 bytes, lines 11709-11913
11709// node_modules/@fancyapps/ui/dist/carousel/carousel.thumbs.js 11710 var u3, a5, c3; 11711 var init_carousel_thumbs = __esm({ 11712 "node_modules/@fancyapps/ui/dist/carousel/carousel.thumbs.js"() { 11713 init_isPlainObject(); 11714 init_extend(); 11715 init_replaceAll(); 11716 init_clamp(); 11717 init_strToHtml(); 11718 init_carousel_sync(); 11719 init_carousel_lazyload(); 11720 init_addClass(); 11721 u3 = { Carousel: { Lazyload: { showLoading: false } }, minCount: 2, showOnStart: true, thumbTpl: '<button aria-label="Slide to #{{page}}"><img draggable="false" alt="{{alt}}" data-lazy-src="{{src}}" /></button>', type: "modern" }; 11722 c3 = () => { 11723 let c5, d3, f3, m3, g2, h4 = 0, v3 = 0, p2 = true; 11724 function b3(e11) { 11725 const n10 = null == c5 ? void 0 : c5.getOptions().Thumbs; 11726 let o11 = (t3(n10) ? Object.assign(Object.assign({}, u3), n10) : u3)[e11]; 11727 return o11 && "function" == typeof o11 && c5 ? o11(c5) : o11; 11728 } 11729 function y3() { 11730 if (!c5) return false; 11731 if (false === (null == c5 ? void 0 : c5.getOptions().Thumbs)) return false; 11732 let t11 = 0; 11733 for (const e11 of c5.getSlides()) e11.thumbSrc && t11++; 11734 return t11 >= b3("minCount"); 11735 } 11736 function x2() { 11737 return "modern" === b3("type"); 11738 } 11739 function S() { 11740 return "scrollable" === b3("type"); 11741 } 11742 function C() { 11743 const t11 = [], e11 = (null == c5 ? void 0 : c5.getSlides()) || []; 11744 for (const n10 of e11) t11.push({ index: n10.index, class: n10.thumbClass, html: T(n10) }); 11745 return t11; 11746 } 11747 function T(t11) { 11748 const e11 = t11.thumb ? t11.thumb instanceof HTMLImageElement ? t11.thumb.src : t11.thumb : t11.thumbSrc || void 0, o11 = void 0 === t11.thumbAlt ? `Thumbnail #${(t11.index || 0) + 1}` : t11.thumbAlt + ""; 11749 let i10 = b3("thumbTpl"); 11750 return i10 = n5(i10, "{{alt}}", o11), i10 = n5(i10, "{{src}}", e11 + ""), i10 = n5(i10, "{{index}}", `${t11.index || 0}`), i10 = n5(i10, "{{page}}", `${(t11.index || 0) + 1}`), i10; 11751 } 11752 function L(t11) { 11753 return `<div index="${t11.index || 0}" class="f-thumbs__slide ${t11.class || ""}">${t11.html || ""}</div>`; 11754 } 11755 function E3(t11 = false) { 11756 var e11; 11757 const n10 = null == c5 ? void 0 : c5.getContainer(); 11758 if (!c5 || !n10 || f3) return; 11759 if (!y3()) return; 11760 const o11 = (null === (e11 = b3("Carousel")) || void 0 === e11 ? void 0 : e11.classes) || {}; 11761 if (o11.container = o11.container || "f-thumbs", !f3) { 11762 const t12 = n10.nextElementSibling; 11763 (null == t12 ? void 0 : t12.classList.contains(o11.container)) && (f3 = t12); 11764 } 11765 if (!f3) { 11766 f3 = document.createElement("div"); 11767 const t12 = b3("parentEl"); 11768 t12 ? t12.insertAdjacentElement("beforeend", f3) : n10.insertAdjacentElement("afterend", f3); 11769 } 11770 s3(f3, o11.container), s3(f3, "f-thumbs"), s3(f3, `is-${b3("type")}`), t11 && s3(f3, "is-hidden"); 11771 } 11772 function P() { 11773 if (!f3 || !S()) return; 11774 m3 = document.createElement("div"), s3(m3, "f-thumbs__viewport"); 11775 let t11 = ""; 11776 for (const e11 of C()) { 11777 "string" == typeof (e11.html || "") && (t11 += L(e11)); 11778 } 11779 m3.innerHTML = t11, f3.append(m3), f3.addEventListener("click", (t12) => { 11780 t12.preventDefault(); 11781 const e11 = t12.target.closest("[index]"), n10 = parseInt((null == e11 ? void 0 : e11.getAttribute("index")) || "-1"); 11782 c5 && n10 > -1 && c5.goTo(n10); 11783 }), g2 = new IntersectionObserver((t12) => { 11784 t12.forEach((t13) => { 11785 t13.isIntersecting && t13.target instanceof HTMLImageElement && (t13.target.src = t13.target.getAttribute("data-lazy-src") + "", t13.target.removeAttribute("data-lazy-src"), null == g2 || g2.unobserve(t13.target)); 11786 }); 11787 }, { root: m3, rootMargin: "100px" }), f3.querySelectorAll("[data-lazy-src]").forEach((t12) => { 11788 null == g2 || g2.observe(t12); 11789 }), null == c5 || c5.emit("thumbs:ready"); 11790 } 11791 function w3() { 11792 var t11; 11793 if (!a5 || !c5 || !f3 || S() || d3) return; 11794 const n10 = C(); 11795 if (!n10.length) return; 11796 const o11 = r3({}, { Sync: { target: c5 }, Lazyload: { preload: 1 }, slides: n10, classes: { container: "f-thumbs", viewport: "f-thumbs__viewport", slide: "f-thumbs__slide" }, center: true, fill: !x2(), infinite: false, dragFree: true, rtl: c5.getOptions().rtl || false, slidesPerPage: (t12) => { 11797 let e11 = 0; 11798 return x2() && (!(function() { 11799 if (!x2()) return; 11800 if (!f3) return; 11801 const t13 = (t14) => f3 && parseFloat(getComputedStyle(f3).getPropertyValue("--f-thumb-" + t14)) || 0; 11802 h4 = t13("width"), v3 = t13("clip-width"); 11803 })(), e11 = 4 * (h4 - v3)), t12 && t12.getTotalSlideDim() <= t12.getViewportDim() - e11 ? 1 / 0 : 1; 11804 } }, u3.Carousel || {}, b3("Carousel") || {}); 11805 d3 = a5(f3, o11, { Sync: i3, Lazyload: i4 }), d3.on("ready", () => { 11806 s3(f3, "is-syncing"), null == c5 || c5.emit("thumbs:ready"), x2() && (null == c5 || c5.on("render", $4)); 11807 }), d3.on("destroy", () => { 11808 null == c5 || c5.emit("thumbs:destroy"); 11809 }), d3.init(), null === (t11 = d3.getGestures()) || void 0 === t11 || t11.on("start", () => { 11810 p2 = false; 11811 }), d3.on("click", (t12, e11) => { 11812 const n11 = e11.target; 11813 if (n11) { 11814 const t13 = n11.matches("button") ? n11 : n11.firstElementChild; 11815 t13 && t13.matches("button") && (e11.preventDefault(), t13.focus({ preventScroll: true })); 11816 } 11817 }), s3(c5.getContainer(), "has-thumbs"), R2(); 11818 } 11819 function j2() { 11820 y3() && b3("showOnStart") && (E3(), P()); 11821 } 11822 function A2() { 11823 var t11; 11824 y3() && (w3(), null == c5 || c5.on("addSlide", z2), null == c5 || c5.on("removeSlide", _2), null == c5 || c5.on("click", I2), null == c5 || c5.on("refresh", q2), null === (t11 = null == c5 ? void 0 : c5.getGestures()) || void 0 === t11 || t11.on("start", M3), D2(true)); 11825 } 11826 function M3() { 11827 var t11, e11; 11828 p2 = true; 11829 (null === (t11 = document.activeElement) || void 0 === t11 ? void 0 : t11.closest(".f-thumbs")) && (null === (e11 = document.activeElement) || void 0 === e11 || e11.blur()); 11830 } 11831 function $4() { 11832 var t11, e11; 11833 null == f3 || f3.classList.toggle("is-syncing", false === (null == c5 ? void 0 : c5.hasNavigated()) || (null === (t11 = null == c5 ? void 0 : c5.getTween()) || void 0 === t11 ? void 0 : t11.isRunning())), R2(), (null === (e11 = null == c5 ? void 0 : c5.getGestures()) || void 0 === e11 ? void 0 : e11.isPointerDown()) && (function() { 11834 if (!x2()) return; 11835 if (!c5 || !d3) return; 11836 if (!p2) return; 11837 const t12 = d3.getTween(), e12 = d3.getPages(), n10 = c5.getPageIndex() || 0, i10 = c5.getPageProgress() || 0; 11838 if (!(c5 && e12 && e12[n10] && t12)) return; 11839 const l10 = t12.isRunning() ? t12.getCurrentValues().pos : d3.getPosition(); 11840 if (void 0 === l10) return; 11841 let r7 = e12[n10].pos + i10 * (h4 - v3); 11842 r7 = t2(e12[0].pos, r7, e12[e12.length - 1].pos), t12.from({ pos: l10 }).to({ pos: r7 }).start(); 11843 })(); 11844 } 11845 function O2() { 11846 p2 = true, D2(); 11847 } 11848 function z2(t11, e11) { 11849 const n10 = { html: T(e11) }; 11850 if (d3) d3.add(n10, e11.index); 11851 else if (m3) { 11852 const t12 = e2(L(n10)); 11853 if (t12) { 11854 m3.append(t12); 11855 const e12 = t12.querySelector("img"); 11856 e12 && (null == g2 || g2.observe(e12)); 11857 } 11858 } 11859 } 11860 function _2(t11, e11) { 11861 var n10; 11862 d3 ? d3.remove(e11.index) : m3 && (null === (n10 = m3.querySelector(`[index="${e11.index}"]`)) || void 0 === n10 || n10.remove()); 11863 } 11864 function I2(t11, e11) { 11865 var n10; 11866 const o11 = e11.target; 11867 e11.defaultPrevented || "toggle" !== (null === (n10 = null == o11 ? void 0 : o11.dataset) || void 0 === n10 ? void 0 : n10.thumbsAction) || (f3 || (E3(true), P(), w3()), f3 && f3.classList.toggle("is-hidden")); 11868 } 11869 function q2() { 11870 D2(); 11871 } 11872 function D2(t11 = false) { 11873 if (!c5 || !m3 || !S()) return; 11874 const e11 = c5.getPageIndex(); 11875 m3.querySelectorAll(".is-selected").forEach((t12) => { 11876 t12.classList.remove("is-selected"); 11877 }); 11878 const n10 = m3.querySelector(`[index="${e11}"]`); 11879 if (n10) { 11880 n10.classList.add("is-selected"); 11881 const e12 = m3.getBoundingClientRect(), o11 = n10.getBoundingClientRect(), i10 = n10.offsetTop - m3.offsetTop - 0.5 * e12.height + 0.5 * o11.height, l10 = n10.scrollLeft - m3.scrollLeft - 0.5 * e12.width + 0.5 * o11.width; 11882 m3.scrollTo({ top: i10, left: l10, behavior: t11 ? "instant" : "smooth" }); 11883 } 11884 } 11885 function R2() { 11886 if (!x2()) return; 11887 if (!c5 || !d3) return; 11888 const t11 = (null == d3 ? void 0 : d3.getSlides()) || []; 11889 let e11 = -0.5 * h4; 11890 for (const n10 of t11) { 11891 const t12 = n10.el; 11892 if (!t12) continue; 11893 let o11 = c5.getPageProgress(n10.index) || 0; 11894 o11 = Math.max(-1, Math.min(1, o11)), o11 > -1 && o11 < 1 && (e11 += 0.5 * h4 * (1 - Math.abs(o11))), o11 = Math.round(1e4 * o11) / 1e4, e11 = Math.round(1e4 * e11) / 1e4, t12.style.setProperty("--progress", `${Math.abs(o11)}`), t12.style.setProperty("--shift", `${(null == c5 ? void 0 : c5.isRTL()) ? -1 * e11 : e11}px`), o11 > -1 && o11 < 1 && (e11 += 0.5 * h4 * (1 - Math.abs(o11))); 11895 } 11896 } 11897 return { init: function(t11, e11) { 11898 a5 = e11, c5 = t11, c5.on("ready", A2), c5.on("initSlides", j2), c5.on("change", O2); 11899 }, destroy: function() { 11900 var t11, e11; 11901 S() && (null == c5 || c5.emit("thumbs:destroy")), null == c5 || c5.off("ready", A2), null == c5 || c5.off("initSlides", j2), null == c5 || c5.off("change", O2), null == c5 || c5.off("render", $4), null == c5 || c5.off("addSlide", z2), null == c5 || c5.off("click", I2), null == c5 || c5.off("refresh", q2), null === (t11 = null == c5 ? void 0 : c5.getGestures()) || void 0 === t11 || t11.off("start", M3), null === (e11 = null == c5 ? void 0 : c5.getContainer()) || void 0 === e11 || e11.classList.remove("has-thumbs"), c5 = void 0, null == d3 || d3.destroy(), d3 = void 0, null == f3 || f3.remove(), f3 = void 0; 11902 }, getCarousel: function() { 11903 return d3; 11904 }, getContainer: function() { 11905 return f3; 11906 }, getType: function() { 11907 return b3("type"); 11908 }, isEnabled: y3 }; 11909 }; 11910 } 11911 }); 11912 11913
vendor: 6,302 bytes, lines 11913-12012
11913// node_modules/@fancyapps/ui/dist/carousel/carousel.html.js 11914 var o7, l5; 11915 var init_carousel_html = __esm({ 11916 "node_modules/@fancyapps/ui/dist/carousel/carousel.html.js"() { 11917 init_isPlainObject(); 11918 init_isString(); 11919 init_addClass(); 11920 init_removeClass(); 11921 o7 = { autosize: false, iframeAttr: { allow: "autoplay; fullscreen", scrolling: "auto" }, preload: false }; 11922 l5 = () => { 11923 let l10; 11924 function n10() { 11925 const e11 = null == l10 ? void 0 : l10.getOptions().Html; 11926 return t3(e11) ? Object.assign(Object.assign({}, o7), e11) : o7; 11927 } 11928 function s13(t11, e11) { 11929 let i10 = t11[e11]; 11930 return void 0 === i10 && (i10 = n10()[e11]), "true" === i10 || "false" !== i10 && i10; 11931 } 11932 function r7(t11, i10) { 11933 let a8 = i10.type, o11 = i10.src; 11934 if (!a8 && t(o11)) { 11935 if ("#" === o11.charAt(0) ? a8 = "inline" : o11.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.((a)?png|avif|gif|jp(g|eg)|pjp(eg)?|jfif|svg|webp|bmp|ico|tif(f)?)((\?|#).*)?$)/i) ? a8 = "image" : o11.match(/\.(pdf)((\?|#).*)?$/i) ? a8 = "pdf" : o11.match(/\.(html|php)((\?|#).*)?$/i) && (a8 = "iframe"), !a8) { 11936 const t12 = o11.match(/(?:maps\.)?google\.([a-z]{2,3}(?:\.[a-z]{2})?)\/(?:(?:(?:maps\/(?:place\/(?:.*)\/)?\@(.*),(\d+.?\d+?)z))|(?:\?ll=))(.*)?/i); 11937 t12 && (o11 = `https://maps.google.${t12[1]}/?ll=${(t12[2] ? t12[2] + "&z=" + Math.floor(parseFloat(t12[3])) + (t12[4] ? t12[4].replace(/^\//, "&") : "") : t12[4] + "").replace(/\?/, "&")}&output=${t12[4] && t12[4].indexOf("layer=c") > 0 ? "svembed" : "embed"}`, a8 = "gmap"); 11938 } 11939 if (!a8) { 11940 const t12 = o11.match(/(?:maps\.)?google\.([a-z]{2,3}(?:\.[a-z]{2})?)\/(?:maps\/search\/)(.*)/i); 11941 t12 && (o11 = `https://maps.google.${t12[1]}/maps?q=${t12[2].replace("query=", "q=").replace("api=1", "")}&output=embed`, a8 = "gmap"); 11942 } 11943 a8 && (i10.src = o11, i10.type = a8); 11944 } 11945 } 11946 function d3(t11, e11) { 11947 "iframe" !== e11.type && "pdf" !== e11.type && "gmap" !== e11.type || (function(t12) { 11948 const e12 = t12.el, o11 = t12.src; 11949 if (!l10 || !e12 || !o11) return; 11950 const r8 = document.createElement("iframe"); 11951 s3(r8, "f-iframe"); 11952 for (const [t13, e13] of Object.entries(n10().iframeAttr || {})) r8.setAttribute(t13, e13); 11953 r8.onerror = () => { 11954 t12.state = 2, null == l10 || l10.showError(t12, "{{IFRAME_ERROR}}"); 11955 }; 11956 const d4 = document.createElement("div"); 11957 if (s3(d4, "f-html"), d4.append(r8), t12.width) { 11958 let e13 = `${t12.width}`; 11959 e13.match(/^\d+$/) && (e13 += "px"), d4.style.maxWidth = `${e13}`; 11960 } 11961 if (t12.height) { 11962 let e13 = `${t12.height}`; 11963 e13.match(/^\d+$/) && (e13 += "px"), d4.style.maxHeight = `${e13}`; 11964 } 11965 if (t12.aspectRatio) { 11966 const i10 = e12.getBoundingClientRect(); 11967 d4.style.aspectRatio = `${t12.aspectRatio}`, d4.style[i10.width > i10.height ? "width" : "height"] = "auto", d4.style[i10.width > i10.height ? "maxWidth" : "maxHeight"] = "none"; 11968 } 11969 t12.htmlEl = d4, t12.contentEl = r8, s3(e12, `has-html has-iframe has-${t12.type}`), e12.prepend(d4); 11970 const c6 = s13(t12, "preload"), p2 = s13(t12, "autosize"); 11971 "iframe" === t12.type && (c6 || p2) ? (t12.state = 0, l10.showLoading(t12), s3(e12, "is-loading"), r8.onload = () => { 11972 if (!l10 || 1 !== l10.getState() || !r8.src.length) return; 11973 t12.state = 1; 11974 const i10 = "true" !== r8.dataset.ready; 11975 r8.dataset.ready = "true", (function(t13) { 11976 const e13 = t13.contentEl, i11 = null == e13 ? void 0 : e13.parentElement, a8 = null == i11 ? void 0 : i11.style; 11977 let o12 = s13(t13, "autosize"), l11 = t13.width || 0, n11 = t13.height || 0; 11978 l11 && n11 && (o12 = false); 11979 if (!(e13 && i11 && a8 && o12)) return; 11980 try { 11981 const t14 = window.getComputedStyle(i11), o13 = parseFloat(t14.paddingLeft) + parseFloat(t14.paddingRight), s14 = parseFloat(t14.paddingTop) + parseFloat(t14.paddingBottom), r9 = e13.contentWindow; 11982 if (r9) { 11983 const t15 = r9.document, e14 = t15.getElementsByTagName("html")[0], i12 = t15.body; 11984 a8.width = ""; 11985 const d5 = window.getComputedStyle(i12), c7 = parseFloat(d5.marginLeft) + parseFloat(d5.marginRight), p3 = i12.style.overflow || ""; 11986 i12.style.overflow = "hidden", l11 = l11 || i12.scrollWidth + c7 + o13, a8.flex = "0 0 auto", a8.width = `${l11}px`, a8.height = `${i12.scrollHeight}px`, i12.style.overflow = p3; 11987 n11 = Math.max(e14.scrollHeight, Math.ceil(e14.getBoundingClientRect().height)) + s14; 11988 } 11989 } catch (t14) { 11990 } 11991 if (l11 || n11) { 11992 const t14 = { flex: "0 1 auto", width: "", height: "" }; 11993 l11 && "auto" !== l11 && (t14.width = `${l11}px`), n11 && "auto" !== n11 && (t14.height = `${n11}px`), Object.assign(a8, t14); 11994 } 11995 })(t12), l10.hideLoading(t12), i10 && l10.emit("contentReady", t12), s4(e12, "is-loading"); 11996 }, r8.src = `${o11}`) : (r8.src = `${o11}`, l10.emit("contentReady", t12)); 11997 })(e11); 11998 } 11999 function c5(t11, e11) { 12000 var i10, a8; 12001 "iframe" !== e11.type && "pdf" !== e11.type && "gmap" !== e11.type || (null == l10 || l10.hideError(e11), null === (i10 = e11.contentEl) || void 0 === i10 || i10.remove(), e11.contentEl = void 0, null === (a8 = e11.htmlEl) || void 0 === a8 || a8.remove(), e11.htmlEl = void 0); 12002 } 12003 return { init: function(t11) { 12004 l10 = t11, l10.on("addSlide", r7), l10.on("attachSlideEl", d3), l10.on("detachSlideEl", c5); 12005 }, destroy: function() { 12006 null == l10 || l10.off("addSlide", r7), null == l10 || l10.off("attachSlideEl", d3), null == l10 || l10.off("detachSlideEl", c5), l10 = void 0; 12007 } }; 12008 }; 12009 } 12010 }); 12011 12012
vendor: 10,284 bytes, lines 12012-12179
12012// node_modules/@fancyapps/ui/dist/carousel/carousel.video.js 12013 var i6, l6, s10; 12014 var init_carousel_video = __esm({ 12015 "node_modules/@fancyapps/ui/dist/carousel/carousel.video.js"() { 12016 init_addClass(); 12017 init_isPlainObject(); 12018 init_isString(); 12019 init_strToHtml(); 12020 i6 = (t11, e11 = {}) => { 12021 const o11 = new URL(t11), n10 = new URLSearchParams(o11.search), i10 = new URLSearchParams(); 12022 for (const [t12, o12] of [...n10, ...Object.entries(e11)]) { 12023 let e12 = o12 + ""; 12024 if ("t" === t12) { 12025 let t13 = e12.match(/((\d*)m)?(\d*)s?/); 12026 t13 && i10.set("start", 60 * parseInt(t13[2] || "0") + parseInt(t13[3] || "0") + ""); 12027 } else i10.set(t12, e12); 12028 } 12029 let l10 = i10 + "", s13 = t11.match(/#t=((.*)?\d+s)/); 12030 return s13 && (l10 += `#t=${s13[1]}`), l10; 12031 }; 12032 l6 = { autoplay: false, html5videoTpl: `<video class="f-html5video" playsinline controls controlsList="nodownload" poster="{{poster}}"> 12033 <source src="{{src}}" type="{{format}}" />Sorry, your browser doesn't support embedded videos.</video>`, iframeAttr: { allow: "autoplay; fullscreen", scrolling: "no", referrerPolicy: "strict-origin-when-cross-origin", credentialless: "" }, vimeo: { byline: 1, color: "00adef", controls: 1, dnt: 1, muted: 0 }, youtube: { controls: 1, enablejsapi: 1, nocookie: 1, rel: 0, fs: 1 } }; 12034 s10 = () => { 12035 let s13, r7 = false; 12036 function c5() { 12037 const t11 = null == s13 ? void 0 : s13.getOptions().Video; 12038 return t3(t11) ? Object.assign(Object.assign({}, l6), t11) : l6; 12039 } 12040 function a8() { 12041 var t11; 12042 return null === (t11 = null == s13 ? void 0 : s13.getPage()) || void 0 === t11 ? void 0 : t11.slides[0]; 12043 } 12044 const d3 = (t11) => { 12045 var e11; 12046 try { 12047 let o11 = JSON.parse(t11.data); 12048 if ("https://player.vimeo.com" === t11.origin) { 12049 if ("ready" === o11.event) for (let o12 of Array.from((null === (e11 = null == s13 ? void 0 : s13.getContainer()) || void 0 === e11 ? void 0 : e11.getElementsByClassName("f-iframe")) || [])) o12 instanceof HTMLIFrameElement && o12.contentWindow === t11.source && (o12.dataset.ready = "true"); 12050 } else if (t11.origin.match(/^https:\/\/(www.)?youtube(-nocookie)?.com$/) && "onReady" === o11.event) { 12051 const t12 = document.getElementById(o11.id); 12052 t12 && (t12.dataset.ready = "true"); 12053 } 12054 } catch (t12) { 12055 } 12056 }; 12057 function m3(t11, e11) { 12058 const n10 = e11.src; 12059 if (!t(n10)) return; 12060 let l10 = e11.type; 12061 if (!l10 || "html5video" === l10) { 12062 const t12 = n10.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i); 12063 t12 && (l10 = "html5video", e11.html5videoFormat = e11.html5videoFormat || "video/" + ("ogv" === t12[1] ? "ogg" : t12[1])); 12064 } 12065 if (!l10 || "youtube" === l10) { 12066 const t12 = n10.match(/(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(?:watch\?(?:.*&)?v=|v\/|u\/|shorts\/|embed\/?)?(videoseries\?list=(?:.*)|[\w-]{11}|\?listType=(?:.*)&list=(?:.*))(?:.*)/i); 12067 if (t12) { 12068 const o11 = Object.assign(Object.assign({}, c5().youtube), e11.youtube || {}), s14 = `www.youtube${o11.nocookie ? "-nocookie" : ""}.com`, r8 = i6(n10, o11), a9 = encodeURIComponent(t12[2]); 12069 e11.videoId = a9, e11.src = `https://${s14}/embed/${a9}?${r8}`, e11.thumb = e11.thumb || `https://i.ytimg.com/vi/${a9}/mqdefault.jpg`, l10 = "youtube"; 12070 } 12071 } 12072 if (!l10 || "vimeo" === l10) { 12073 const t12 = n10.match(/^.+vimeo.com\/(?:\/)?(video\/)?([\d]+)((\/|\?h=)([a-z0-9]+))?(.*)?/); 12074 if (t12) { 12075 const o11 = Object.assign(Object.assign({}, c5().vimeo), e11.vimeo || {}), s14 = i6(n10, o11), r8 = encodeURIComponent(t12[2]), a9 = t12[5] || ""; 12076 e11.videoId = r8, e11.src = `https://player.vimeo.com/video/${r8}?${a9 ? `h=${a9}${s14 ? "&" : ""}` : ""}${s14}`, l10 = "vimeo"; 12077 } 12078 } 12079 e11.type = l10; 12080 } 12081 function u5(e11, i10) { 12082 "html5video" === i10.type && (function(e12) { 12083 const i11 = e12.el, l10 = e12.src; 12084 if (!s13 || !i11 || !l10) return; 12085 const r8 = e12.html5videoTpl || c5().html5videoTpl, a9 = e12.html5videoFormat || c5().html5videoFormat; 12086 if (!r8) return; 12087 const d4 = e12.poster || (e12.thumb && t(e12.thumb) ? e12.thumb : ""), m4 = e2(r8.replace(/\{\{src\}\}/gi, l10 + "").replace(/\{\{format\}\}/gi, a9 || "").replace(/\{\{poster\}\}/gi, d4 + "")); 12088 if (!m4) return; 12089 const u6 = document.createElement("div"); 12090 s3(u6, "f-html"), u6.append(m4), e12.contentEl = m4, e12.htmlEl = u6, s3(i11, `has-${e12.type}`), i11.prepend(u6), v3(e12), s13.emit("contentReady", e12); 12091 })(i10), "youtube" !== i10.type && "vimeo" !== i10.type || (function(e12) { 12092 const o11 = e12.el, n10 = e12.src; 12093 if (!s13 || !o11 || !n10) return; 12094 const i11 = document.createElement("iframe"); 12095 s3(i11, "f-iframe"), i11.setAttribute("id", `f-iframe_${e12.videoId}`); 12096 for (const [t11, e13] of Object.entries(c5().iframeAttr || {})) i11.setAttribute(t11, e13); 12097 "youtube" === e12.type && (i11.onload = () => { 12098 var t11; 12099 1 === (null == s13 ? void 0 : s13.getState()) && (null === (t11 = i11.contentWindow) || void 0 === t11 || t11.postMessage(JSON.stringify({ event: "listening", id: i11.getAttribute("id") }), "*")); 12100 }), i11.onerror = () => { 12101 null == s13 || s13.showError(e12, "{{IFRAME_ERROR}}"); 12102 }; 12103 const l10 = document.createElement("div"); 12104 s3(l10, "f-html"), l10.append(i11), e12.contentEl = i11, e12.htmlEl = l10, s3(o11, `has-html has-iframe has-${e12.type}`), i11.src = `${e12.src}`, o11.prepend(l10), v3(e12), s13.emit("contentReady", e12); 12105 })(i10); 12106 } 12107 function f3(t11, e11) { 12108 var o11, n10; 12109 "html5video" !== e11.type && "youtube" !== e11.type && "vimeo" !== e11.type || (null === (o11 = e11.contentEl) || void 0 === o11 || o11.remove(), e11.contentEl = void 0, null === (n10 = e11.htmlEl) || void 0 === n10 || n10.remove(), e11.htmlEl = void 0), e11.poller && clearTimeout(e11.poller); 12110 } 12111 function p2() { 12112 r7 = false; 12113 } 12114 function h4() { 12115 if (r7) return; 12116 r7 = true; 12117 const t11 = a8(); 12118 (t11 && void 0 !== t11.autoplay ? t11.autoplay : c5().autoplay) && ((function() { 12119 var t12; 12120 const e11 = a8(), o11 = null == e11 ? void 0 : e11.el; 12121 if (o11 && "html5video" === (null == e11 ? void 0 : e11.type)) try { 12122 const t13 = o11.querySelector("video"); 12123 if (t13) { 12124 const e12 = t13.play(); 12125 void 0 !== e12 && e12.then(() => { 12126 }).catch((e13) => { 12127 t13.muted = true, t13.play(); 12128 }); 12129 } 12130 } catch (t13) { 12131 } 12132 const n10 = null == e11 ? void 0 : e11.htmlEl; 12133 n10 instanceof HTMLIFrameElement && (null === (t12 = n10.contentWindow) || void 0 === t12 || t12.postMessage('{"event":"command","func":"stopVideo","args":""}', "*")); 12134 })(), (function() { 12135 const t12 = a8(), e11 = null == t12 ? void 0 : t12.type; 12136 if (!(null == t12 ? void 0 : t12.el) || "youtube" !== e11 && "vimeo" !== e11) return; 12137 const o11 = () => { 12138 if (t12.contentEl && t12.contentEl instanceof HTMLIFrameElement && t12.contentEl.contentWindow) { 12139 let e12; 12140 if ("true" === t12.contentEl.dataset.ready) return e12 = "youtube" === t12.type ? { event: "command", func: "playVideo" } : { method: "play", value: "true" }, e12 && t12.contentEl.contentWindow.postMessage(JSON.stringify(e12), "*"), void (t12.poller = void 0); 12141 "youtube" === t12.type && (e12 = { event: "listening", id: t12.contentEl.getAttribute("id") }, t12.contentEl.contentWindow.postMessage(JSON.stringify(e12), "*")); 12142 } 12143 t12.poller = setTimeout(o11, 250); 12144 }; 12145 o11(); 12146 })()); 12147 } 12148 function v3(t11) { 12149 const e11 = null == t11 ? void 0 : t11.htmlEl; 12150 if (t11 && e11 && ("html5video" === t11.type || "youtube" === t11.type || "vimeo" === t11.type)) { 12151 if (e11.style.aspectRatio = "", e11.style.width = "", e11.style.height = "", e11.style.maxWidth = "", e11.style.maxHeight = "", t11.width) { 12152 let o11 = `${t11.width}`; 12153 o11.match(/^\d+$/) && (o11 += "px"), e11.style.maxWidth = `${o11}`; 12154 } 12155 if (t11.height) { 12156 let o11 = `${t11.height}`; 12157 o11.match(/^\d+$/) && (o11 += "px"), e11.style.maxHeight = `${o11}`; 12158 } 12159 if (t11.aspectRatio) { 12160 const o11 = t11.aspectRatio.split("/"), n10 = parseFloat(o11[0].trim()), i10 = o11[1] ? parseFloat(o11[1].trim()) : 0, l10 = n10 && i10 ? n10 / i10 : n10; 12161 e11.offsetHeight; 12162 const s14 = e11.getBoundingClientRect(), r8 = l10 < (s14.width || 1) / (s14.height || 1); 12163 e11.style.aspectRatio = `${t11.aspectRatio}`, e11.style.width = r8 ? "auto" : "", e11.style.height = r8 ? "" : "auto"; 12164 } 12165 } 12166 } 12167 function y3() { 12168 v3(a8()); 12169 } 12170 return { init: function(t11) { 12171 s13 = t11, s13.on("addSlide", m3), s13.on("attachSlideEl", u5), s13.on("detachSlideEl", f3), s13.on("ready", h4), s13.on("change", p2), s13.on("settle", h4), s13.on("refresh", y3), window.addEventListener("message", d3); 12172 }, destroy: function() { 12173 null == s13 || s13.off("addSlide", m3), null == s13 || s13.off("attachSlideEl", u5), null == s13 || s13.off("detachSlideEl", f3), null == s13 || s13.off("ready", h4), null == s13 || s13.off("change", p2), null == s13 || s13.off("settle", h4), null == s13 || s13.off("refresh", y3), window.removeEventListener("message", d3), s13 = void 0; 12174 } }; 12175 }; 12176 } 12177 }); 12178 12179
vendor: 3,089 bytes, lines 12179-12245
12179// node_modules/@fancyapps/ui/dist/carousel/carousel.fullscreen.js 12180 var n8, t8, l7; 12181 var init_carousel_fullscreen = __esm({ 12182 "node_modules/@fancyapps/ui/dist/carousel/carousel.fullscreen.js"() { 12183 init_isPlainObject(); 12184 n8 = { autoStart: false, btnTpl: '<button data-fullscreen-action="toggle" class="f-button" title="{{TOGGLE_FULLSCREEN}}"><svg><g><path d="M8 3H5a2 2 0 0 0-2 2v3M21 8V5a2 2 0 0 0-2-2h-3M3 16v3a2 2 0 0 0 2 2h3M16 21h3a2 2 0 0 0 2-2v-3"/></g><g><path d="M15 19v-2a2 2 0 0 1 2-2h2M15 5v2a2 2 0 0 0 2 2h2M5 15h2a2 2 0 0 1 2 2v2M5 9h2a2 2 0 0 0 2-2V5"/></g></svg></button>' }; 12185 t8 = "in-fullscreen-mode"; 12186 l7 = () => { 12187 let l10; 12188 function u5(t11) { 12189 const u6 = null == l10 ? void 0 : l10.getOptions().Fullscreen; 12190 let o12 = (t3(u6) ? Object.assign(Object.assign({}, n8), u6) : n8)[t11]; 12191 return o12 && "function" == typeof o12 && l10 ? o12(l10) : o12; 12192 } 12193 function o11() { 12194 var e11; 12195 null === (e11 = null == l10 ? void 0 : l10.getPlugins().Toolbar) || void 0 === e11 || e11.add("fullscreen", { tpl: u5("btnTpl") }); 12196 } 12197 function c5() { 12198 if (u5("autoStart")) { 12199 const e11 = s13(); 12200 e11 && a8(e11); 12201 } 12202 } 12203 function i10(e11, n10) { 12204 const t11 = n10.target; 12205 t11 && !n10.defaultPrevented && "toggle" === t11.dataset.fullscreenAction && d3(); 12206 } 12207 function s13() { 12208 return u5("el") || (null == l10 ? void 0 : l10.getContainer()) || void 0; 12209 } 12210 function r7() { 12211 const e11 = document; 12212 return e11.fullscreenEnabled ? !!e11.fullscreenElement : !!e11.webkitFullscreenEnabled && !!e11.webkitFullscreenElement; 12213 } 12214 function a8(e11) { 12215 const n10 = document; 12216 let l11; 12217 return e11 || (e11 = n10.documentElement), n10.fullscreenEnabled ? l11 = e11.requestFullscreen() : n10.webkitFullscreenEnabled && (l11 = e11.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)), l11 && l11.then(() => { 12218 e11.classList.add(t8); 12219 }), l11; 12220 } 12221 function f3() { 12222 const e11 = document; 12223 let n10; 12224 return e11.fullscreenEnabled ? n10 = e11.fullscreenElement && e11.exitFullscreen() : e11.webkitFullscreenEnabled && (n10 = e11.webkitFullscreenElement && e11.webkitExitFullscreen()), n10 && n10.then(() => { 12225 var e12; 12226 null === (e12 = s13()) || void 0 === e12 || e12.classList.remove(t8); 12227 }), n10; 12228 } 12229 function d3() { 12230 if (r7()) f3(); 12231 else { 12232 const e11 = s13(); 12233 e11 && a8(e11); 12234 } 12235 } 12236 return { init: function(e11) { 12237 l10 = e11, l10.on("initPlugins", o11), l10.on("ready", c5), l10.on("click", i10); 12238 }, destroy: function() { 12239 null == l10 || l10.off("initPlugins", o11), null == l10 || l10.off("ready", c5), null == l10 || l10.off("click", i10); 12240 }, exit: f3, inFullscreen: r7, request: a8, toggle: d3 }; 12241 }; 12242 } 12243 }); 12244 12245
vendor: 5,918 bytes, lines 12245-12371
12245// node_modules/@fancyapps/ui/dist/fancybox/fancybox.hash.js 12246 var n9, o8, r6, i7, l8, s11, a6, u4, c4, d2, f2, g, h3, w2; 12247 var init_fancybox_hash = __esm({ 12248 "node_modules/@fancyapps/ui/dist/fancybox/fancybox.hash.js"() { 12249 init_canUseDOM(); 12250 init_isPlainObject(); 12251 r6 = false; 12252 i7 = false; 12253 l8 = false; 12254 s11 = false; 12255 a6 = () => { 12256 const t11 = new URL(document.URL).hash, e11 = t11.slice(1).split("-"), n10 = e11[e11.length - 1], o11 = n10 && /^\+?\d+$/.test(n10) && parseInt(e11.pop() || "1", 10) || 1; 12257 return { urlHash: t11, urlSlug: e11.join("-"), urlIndex: o11 }; 12258 }; 12259 u4 = () => { 12260 const t11 = null == n9 ? void 0 : n9.getInstance(), e11 = null == t11 ? void 0 : t11.getState(); 12261 return !(!t11 || 0 !== e11 && 1 !== e11); 12262 }; 12263 c4 = () => { 12264 if (!n9) return; 12265 if (u4()) return; 12266 const { urlSlug: t11, urlIndex: e11 } = a6(); 12267 if (!t11) return; 12268 let o11 = document.querySelector(`[data-slug="${t11}"]`); 12269 o11 && n9.fromTriggerEl(o11), u4() || (o11 = document.querySelectorAll(`[data-fancybox="${t11}"]`)[e11 - 1], o11 && n9.fromTriggerEl(o11, { startIndex: e11 - 1 })), u4() && o11 && !o11.closest("[inert]") && o11.scrollIntoView({ behavior: "instant", block: "center", inline: "center" }); 12270 }; 12271 d2 = (t11) => { 12272 const n10 = t11.getOptions().Hash, o11 = t11.getSlide(); 12273 return o11 && (o11.slug || o11.fancybox || (t3(n10) ? n10.slug : "")) || ""; 12274 }; 12275 f2 = (t11) => { 12276 var e11, n10; 12277 const o11 = d2(t11), r7 = t11.getSlide(); 12278 if (!r7 || !o11) return ""; 12279 let i10 = parseInt(r7.index + "", 10) + 1, l10 = r7.slug ? `#${r7.slug}` : `#${o11}-${i10}`; 12280 return ((null === (n10 = null === (e11 = t11.getCarousel()) || void 0 === e11 ? void 0 : e11.getPages()) || void 0 === n10 ? void 0 : n10.length) || 0) < 2 && (l10 = `#${o11}`), l10; 12281 }; 12282 g = () => { 12283 if (!n9) return; 12284 if (l8) return; 12285 const t11 = null == n9 ? void 0 : n9.getInstance(), e11 = null == t11 ? void 0 : t11.getCarousel(); 12286 if (false === (null == t11 ? void 0 : t11.getOptions().Hash)) return; 12287 const { urlSlug: o11, urlIndex: r7 } = a6(); 12288 if (t11 && 1 === t11.getState() && e11) { 12289 const n10 = e11.getSlides(); 12290 for (const t12 of n10 || []) if (o11 === t12.slug || o11 === t12.fancybox && t12.index === r7 - 1) return i7 = false, void e11.goTo(t12.index); 12291 s11 = true, t11.close(), s11 = false; 12292 } 12293 c4(); 12294 }; 12295 h3 = () => { 12296 n9 && (o8 = setTimeout(() => { 12297 r6 = true, c4(), r6 = false; 12298 }, 300), window.addEventListener("hashchange", g, false)); 12299 }; 12300 w2 = () => { 12301 let t11, e11 = "auto", n10 = ""; 12302 function u5() { 12303 var o11; 12304 if (!t11 || !t11.isTopMost()) return; 12305 if (false === t11.getOptions().Hash) return; 12306 if (r6) { 12307 const e12 = t11.getOptions().sync; 12308 e12 && e12.goTo((null === (o11 = null == t11 ? void 0 : t11.getCarousel()) || void 0 === o11 ? void 0 : o11.getPageIndex()) || 0, { transition: false, tween: false }); 12309 } 12310 const l10 = t11.getCarousel(); 12311 if (!l10) return; 12312 const { urlHash: s13, urlSlug: u6 } = a6(); 12313 if (!t11.getSlide()) return; 12314 const g3 = d2(t11); 12315 if (!g3) return; 12316 const h4 = f2(t11); 12317 s13 !== h4 && (n10 = s13), history.scrollRestoration && (e11 = history.scrollRestoration, history.scrollRestoration = "manual"), l10.on("change", c5); 12318 const w3 = g3 !== u6; 12319 try { 12320 window.history[w3 ? "pushState" : "replaceState"]({}, document.title, window.location.pathname + window.location.search + h4), w3 && (i7 = true); 12321 } catch (t12) { 12322 } 12323 } 12324 function c5() { 12325 if (!t11 || !t11.isTopMost()) return; 12326 if (false === t11.getOptions().Hash) return; 12327 if (!t11.getSlide()) return; 12328 if (!d2(t11)) return; 12329 const e12 = f2(t11); 12330 l8 = true; 12331 try { 12332 window.history.replaceState({}, document.title, window.location.pathname + window.location.search + e12); 12333 } catch (t12) { 12334 } 12335 l8 = false; 12336 } 12337 function g2() { 12338 var e12; 12339 if (s11 || !t11 || !t11.isTopMost() || false === t11.getOptions().Hash) return; 12340 if (d2(t11)) { 12341 l8 = true; 12342 try { 12343 i7 && !(function() { 12344 if (window.parent === window) return false; 12345 try { 12346 var t12 = window.frameElement; 12347 } catch (e13) { 12348 t12 = null; 12349 } 12350 return null === t12 ? "data:" === location.protocol : t12.hasAttribute("sandbox"); 12351 })() && "IFRAME" !== (null === (e12 = document.activeElement) || void 0 === e12 ? void 0 : e12.nodeName) ? window.history.back() : window.history.replaceState({}, document.title, window.location.pathname + window.location.search + n10); 12352 } catch (t12) { 12353 } 12354 l8 = false; 12355 } 12356 } 12357 return { init: function(e12) { 12358 clearTimeout(o8), t11 = e12, t11.on("ready", u5), t11.on("close", g2); 12359 }, destroy: function() { 12360 null == t11 || t11.off("ready", u5), null == t11 || t11.off("close", g2); 12361 const n11 = null == t11 ? void 0 : t11.getCarousel(); 12362 n11 && n11.off("change", c5), t11 = void 0, history.scrollRestoration && e11 && (history.scrollRestoration = e11); 12363 } }; 12364 }; 12365 w2.getInfoFromURL = a6, w2.startFromUrl = c4, w2.setup = function(e11) { 12366 n9 || (n9 = e11, e8() && (/complete|interactive|loaded/.test(document.readyState) ? h3() : document.addEventListener("DOMContentLoaded", h3))); 12367 }; 12368 } 12369 }); 12370 12371
vendor: 439 bytes, lines 12371-12380
12371// node_modules/@fancyapps/ui/dist/fancybox/l10n/en_EN.js 12372 var o9; 12373 var init_en_EN3 = __esm({ 12374 "node_modules/@fancyapps/ui/dist/fancybox/l10n/en_EN.js"() { 12375 init_en_EN2(); 12376 o9 = Object.assign(Object.assign({}, o3), { CLOSE: "Close", NEXT: "Next", PREV: "Previous", MODAL: "You can close this modal content with the ESC key", ELEMENT_NOT_FOUND: "HTML Element Not Found", IFRAME_ERROR: "Error Loading Page" }); 12377 } 12378 }); 12379 12380
vendor: 38,385 bytes, lines 12380-13030
12380// node_modules/@fancyapps/ui/dist/fancybox/fancybox.js 12381 function q(e11, t11 = {}) { 12382 var n10, o11, i10; 12383 if (!(e11 && e11 instanceof Element)) return; 12384 let s13, r7, a8, c5, u5 = {}; 12385 for (const [t12, n11] of N.openers) if (t12.contains(e11)) for (const [o12, i11] of n11) { 12386 let n12; 12387 if (o12) { 12388 for (const i12 of t12.querySelectorAll(o12)) if (i12.contains(e11)) { 12389 n12 = i12; 12390 break; 12391 } 12392 if (!n12) continue; 12393 } 12394 for (const [o13, d4] of i11) { 12395 let i12 = null; 12396 try { 12397 i12 = e11.closest(o13); 12398 } catch (e12) { 12399 } 12400 i12 && (r7 = t12, a8 = n12, s13 = i12, c5 = o13, r3(u5, d4 || {})); 12401 } 12402 } 12403 if (!r7 || !c5 || !s13) return; 12404 const d3 = r3({}, I, t11, u5, { triggerEl: s13 }); 12405 let f3 = [].slice.call((a8 || r7).querySelectorAll(c5)); 12406 const m3 = s13.closest(".f-carousel"), g2 = null == m3 ? void 0 : m3.carousel; 12407 if (g2 && (!a8 || !m3.contains(a8))) { 12408 const e12 = []; 12409 for (const t12 of null == g2 ? void 0 : g2.getSlides()) { 12410 const n11 = t12.el; 12411 n11 && (n11.matches(c5) ? e12.push(n11) : e12.push(...[].slice.call(n11.querySelectorAll(c5)))); 12412 } 12413 e12.length && (f3 = [...e12], null === (n10 = g2.getPlugins().Autoplay) || void 0 === n10 || n10.pause(), null === (o11 = g2.getPlugins().Autoscroll) || void 0 === o11 || o11.pause(), d3.sync = g2); 12414 } 12415 if (false === d3.groupAll) { 12416 const e12 = d3.groupAttr, t12 = e12 && s13 ? s13.getAttribute(`${e12}`) : ""; 12417 f3 = e12 && t12 ? f3.filter((n11) => n11.getAttribute(`${e12}`) === t12) : [s13]; 12418 } 12419 if (!f3.length) return; 12420 null === (i10 = d3.triggerEvent) || void 0 === i10 || i10.preventDefault(); 12421 const p2 = N.getInstance(), v3 = null == p2 ? void 0 : p2.getState(); 12422 if (p2 && (v3 === _.Init || v3 === _.Ready)) { 12423 const e12 = p2.getOptions().triggerEl; 12424 if (e12 && f3.indexOf(e12) > -1) return; 12425 } 12426 return Object.assign({}, d3.Carousel || {}).rtl && (f3 = f3.reverse()), s13 && void 0 === t11.startIndex && (d3.startIndex = f3.indexOf(s13)), N.fromNodes(f3, d3); 12427 } 12428 var A, k2, R, O, _, I, z, H, D, B, N; 12429 var init_fancybox = __esm({ 12430 "node_modules/@fancyapps/ui/dist/fancybox/fancybox.js"() { 12431 init_isPlainObject(); 12432 init_isString(); 12433 init_isNode(); 12434 init_strToHtml(); 12435 init_getScrollableParent(); 12436 init_scrollLock(); 12437 init_extend(); 12438 init_canUseDOM(); 12439 init_map(); 12440 init_addClass(); 12441 init_removeClass(); 12442 init_toggleClass(); 12443 init_tween(); 12444 init_gestures(); 12445 init_panzoom(); 12446 init_panzoom(); 12447 init_carousel(); 12448 init_carousel_zoomable(); 12449 init_carousel_sync(); 12450 init_carousel_lazyload(); 12451 init_carousel_arrows(); 12452 init_carousel_toolbar(); 12453 init_carousel_toolbar(); 12454 init_carousel_autoplay(); 12455 init_carousel_thumbs(); 12456 init_carousel_html(); 12457 init_carousel_video(); 12458 init_carousel_fullscreen(); 12459 init_fancybox_hash(); 12460 init_en_EN3(); 12461 A = '<button class="f-button" title="{{CLOSE}}" data-fancybox-close><svg tabindex="-1" width="24" height="24" viewBox="0 0 24 24"><path d="M19.286 4.714 4.714 19.286M4.714 4.714l14.572 14.572" /></svg></button>'; 12462 r5().add("close", { tpl: A }); 12463 k2 = (e11) => { 12464 e11.cancelable && e11.preventDefault(); 12465 }; 12466 R = (e11 = null, t11 = "", n10) => { 12467 if (!e11 || !e11.parentElement || !t11) return void (n10 && n10()); 12468 O(e11); 12469 const o11 = (i10) => { 12470 i10.target === e11 && e11.dataset.animationName && (e11.removeEventListener("animationend", o11), delete e11.dataset.animationName, n10 && n10(), e11.classList.remove(t11)); 12471 }; 12472 e11.dataset.animationName = t11, e11.addEventListener("animationend", o11), s3(e11, t11); 12473 }; 12474 O = (e11) => { 12475 e11 && e11.dispatchEvent(new CustomEvent("animationend", { bubbles: false, cancelable: true, currentTarget: e11 })); 12476 }; 12477 !(function(e11) { 12478 e11[e11.Init = 0] = "Init", e11[e11.Ready = 1] = "Ready", e11[e11.Closing = 2] = "Closing", e11[e11.Destroyed = 3] = "Destroyed"; 12479 })(_ || (_ = {})); 12480 I = { ajax: null, backdropClick: "close", Carousel: {}, closeButton: "auto", closeExisting: false, delegateEl: void 0, dragToClose: true, fadeEffect: true, groupAll: false, groupAttr: "data-fancybox", hideClass: "f-fadeOut", hideScrollbar: true, id: void 0, idle: false, keyboard: { Escape: "close", Delete: "close", Backspace: "close", PageUp: "next", PageDown: "prev", ArrowUp: "prev", ArrowDown: "next", ArrowRight: "next", ArrowLeft: "prev" }, l10n: o9, mainClass: "", mainStyle: {}, mainTpl: '<dialog class="fancybox__dialog">\n <div class="fancybox__container" tabindex="0" aria-label="{{MODAL}}">\n <div class="fancybox__backdrop"></div>\n <div class="fancybox__carousel"></div>\n </div>\n </dialog>', modal: true, on: {}, parentEl: void 0, placeFocusBack: true, showClass: "f-zoomInUp", startIndex: 0, sync: void 0, theme: "dark", triggerEl: void 0, triggerEvent: void 0, zoomEffect: true }; 12481 z = /* @__PURE__ */ new Map(); 12482 H = 0; 12483 D = "with-fancybox"; 12484 B = () => { 12485 let r7, T, M3, B2, q2, F, V, W = _.Init, $4 = Object.assign({}, I), K = -1, U = {}, X = [], G = false, Y = true, Z = 0; 12486 function J(e11, ...t11) { 12487 let n10 = $4[e11]; 12488 return n10 && "function" == typeof n10 ? n10(Oe, ...t11) : n10; 12489 } 12490 function Q(e11, t11 = []) { 12491 const n10 = J("l10n") || {}; 12492 e11 = String(e11).replace(/\{\{(\w+)\}\}/g, (e12, t12) => n10[t12] || e12); 12493 for (let n11 = 0; n11 < t11.length; n11++) e11 = e11.split(t11[n11][0]).join(t11[n11][1]); 12494 return e11 = e11.replace(/\{\{(.*?)\}\}/g, (e12, t12) => t12); 12495 } 12496 const ee = /* @__PURE__ */ new Map(); 12497 function te(e11, ...t11) { 12498 const n10 = [...ee.get(e11) || []]; 12499 for (const [t12, o11] of Object.entries($4.on || {})) (t12 === e11 || t12.split(" ").indexOf(e11) > -1) && n10.push(o11); 12500 for (const e12 of n10) e12 && "function" == typeof e12 && e12(Oe, ...t11); 12501 "*" !== e11 && te("*", e11, ...t11); 12502 } 12503 function ne() { 12504 s4(T, "is-revealing"); 12505 try { 12506 if (document.activeElement === r7) { 12507 ((null == T ? void 0 : T.querySelector("[autofocus]")) || T).focus(); 12508 } 12509 } catch (e11) { 12510 } 12511 } 12512 function oe(e11, n10) { 12513 var o11; 12514 ye(n10), fe(), null === (o11 = n10.el) || void 0 === o11 || o11.addEventListener("click", se), "inline" !== n10.type && "clone" !== n10.type || (function(e12) { 12515 if (!B2 || !e12 || !e12.el) return; 12516 let n11 = null; 12517 if (t(e12.src)) { 12518 const t11 = e12.src.split("#", 2).pop(); 12519 n11 = t11 ? document.getElementById(t11) : null; 12520 } 12521 if (n11) { 12522 if (s3(n11, "f-html"), "clone" === e12.type || n11.closest(".fancybox__carousel")) { 12523 n11 = n11.cloneNode(true); 12524 const t11 = n11.dataset.animationName; 12525 t11 && (n11.classList.remove(t11), delete n11.dataset.animationName); 12526 let o12 = n11.getAttribute("id"); 12527 o12 = o12 ? `${o12}--clone` : `clone-${K}-${e12.index}`, n11.setAttribute("id", o12); 12528 } else if (n11.parentNode) { 12529 const t11 = document.createElement("div"); 12530 t11.inert = true, n11.parentNode.insertBefore(t11, n11), e12.placeholderEl = t11; 12531 } 12532 e12.htmlEl = n11, s3(e12.el, "has-html"), e12.el.prepend(n11), n11.classList.remove("hidden"), "none" === n11.style.display && (n11.style.display = ""), "none" === getComputedStyle(n11).getPropertyValue("display") && (n11.style.display = n11.dataset.display || "flex"), null == B2 || B2.emit("contentReady", e12); 12533 } else null == B2 || B2.showError(e12, "{{ELEMENT_NOT_FOUND}}"); 12534 })(n10), "ajax" === n10.type && (function(e12) { 12535 const t11 = e12.el; 12536 if (!t11) return; 12537 if (e12.htmlEl || e12.xhr) return; 12538 null == B2 || B2.showLoading(e12), e12.state = 0; 12539 const n11 = new XMLHttpRequest(); 12540 n11.onreadystatechange = function() { 12541 if (n11.readyState === XMLHttpRequest.DONE && W === _.Ready) if (null == B2 || B2.hideLoading(e12), e12.state = 1, 200 === n11.status) { 12542 let o13 = n11.responseText + "", i10 = null, s13 = null; 12543 if (e12.filter) { 12544 const t12 = document.createElement("div"); 12545 t12.innerHTML = o13, s13 = t12.querySelector(e12.filter + ""); 12546 } 12547 s13 && s13 instanceof HTMLElement ? i10 = s13 : (i10 = document.createElement("div"), i10.innerHTML = o13), i10.classList.add("f-html"), e12.htmlEl = i10, t11.classList.add("has-html"), t11.classList.add("has-ajax"), t11.prepend(i10), null == B2 || B2.emit("contentReady", e12); 12548 } else null == B2 || B2.showError(e12); 12549 }; 12550 const o12 = J("ajax") || null; 12551 n11.open(o12 ? "POST" : "GET", e12.src + ""), n11.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"), n11.setRequestHeader("X-Requested-With", "XMLHttpRequest"), n11.send(o12), e12.xhr = n11; 12552 })(n10); 12553 } 12554 function ie(e11, t11) { 12555 var n10; 12556 he(t11), null === (n10 = t11.el) || void 0 === n10 || n10.removeEventListener("click", se), "inline" !== t11.type && "clone" !== t11.type || (function(e12) { 12557 const t12 = e12.htmlEl, n11 = e12.placeholderEl; 12558 t12 && ("none" !== getComputedStyle(t12).getPropertyValue("display") && (t12.style.display = "none"), t12.offsetHeight); 12559 n11 && (t12 && n11.parentNode && n11.parentNode.insertBefore(t12, n11), n11.remove()); 12560 e12.htmlEl = void 0, e12.placeholderEl = void 0; 12561 })(t11), t11.xhr && (t11.xhr.abort(), t11.xhr = void 0); 12562 } 12563 function se(e11) { 12564 if (!Ee()) return; 12565 if (W !== _.Ready) return k2(e11), void e11.stopPropagation(); 12566 if (e11.defaultPrevented) return; 12567 if (!f.isClickAllowed()) return; 12568 const t11 = e11.composedPath()[0]; 12569 t11.closest(".fancybox__carousel") && t11.classList.contains("fancybox__slide") && me(e11); 12570 } 12571 function le() { 12572 Y = false, T && B2 && T.classList.remove("is-revealing"), fe(); 12573 const e11 = J("sync"); 12574 if (B2 && e11) { 12575 const t11 = e11.getPageIndex(B2.getPageIndex()) || 0; 12576 e11.goTo(t11, { transition: false, tween: false }); 12577 } 12578 } 12579 function re() { 12580 var e11; 12581 !(function() { 12582 const e12 = null == B2 ? void 0 : B2.getViewport(); 12583 if (!J("dragToClose") || !B2 || !e12) return; 12584 if (q2 = f(e12).init(), !q2) return; 12585 let t12 = false, n10 = 0, o11 = 0, s13 = {}, l10 = 1; 12586 function r8() { 12587 var e13, t13; 12588 null == F || F.spring({ clamp: true, mass: 1, tension: 0 === o11 ? 140 : 960, friction: 17, restDelta: 0.1, restSpeed: 0.1, maxSpeed: 1 / 0 }).from({ y: n10 }).to({ y: o11 }).start(); 12589 const i10 = (null === (e13 = null == B2 ? void 0 : B2.getViewport()) || void 0 === e13 ? void 0 : e13.getBoundingClientRect().height) || 0, s14 = null === (t13 = xe()) || void 0 === t13 ? void 0 : t13.panzoomRef; 12590 if (i10 && s14) if (0 === o11) s14.execute(v.Reset); 12591 else { 12592 const e14 = t5(Math.abs(n10), 0, 0.33 * i10, l10, 0.77 * l10, false); 12593 s14.execute(v.ZoomTo, { scale: e14 }); 12594 } 12595 } 12596 const c5 = (e13) => { 12597 var t13; 12598 const n11 = e13.srcEvent, o12 = n11.target; 12599 return B2 && !(e5(n11) && (null === (t13 = n11.touches) || void 0 === t13 ? void 0 : t13.length) > 1) && o12 && !n2(o12); 12600 }; 12601 F = c().on("step", (t13) => { 12602 if (T && e12 && W === _.Ready) { 12603 const o12 = e12.getBoundingClientRect().height; 12604 n10 = Math.min(o12, Math.max(-1 * o12, t13.y)); 12605 const i10 = t5(Math.abs(n10), 0, 0.5 * o12, 1, 0, true); 12606 T.style.setProperty("--f-drag-opacity", i10 + ""), T.style.setProperty("--f-drag-offset", n10 + "px"); 12607 } 12608 }), q2.on("start", function() { 12609 t12 || (null == F || F.pause(), o11 = n10); 12610 }).on("panstart", (e13) => { 12611 var n11, o12; 12612 if (!t12 && c5(e13) && "y" === e13.axis) { 12613 k2(e13.srcEvent), t12 = true, Me(), null === (n11 = null == B2 ? void 0 : B2.getViewport()) || void 0 === n11 || n11.classList.add("is-dragging"); 12614 const i10 = null === (o12 = xe()) || void 0 === o12 ? void 0 : o12.panzoomRef; 12615 if (i10) { 12616 l10 = i10.getTransform().scale || 1; 12617 const e14 = i10.getOptions(); 12618 s13 = Object.assign({}, e14), e14.bounds = false, e14.gestures = false; 12619 } 12620 } else t12 = false; 12621 }).on("pan", function(e13) { 12622 t12 && c5(e13) && (k2(e13.srcEvent), e13.srcEvent.stopPropagation(), "y" === e13.axis && (o11 += e13.deltaY, r8())); 12623 }).on("end", (e13) => { 12624 var i10, l11, a8; 12625 if (null === (i10 = null == B2 ? void 0 : B2.getViewport()) || void 0 === i10 || i10.classList.remove("is-dragging"), t12) { 12626 const t13 = null === (l11 = xe()) || void 0 === l11 ? void 0 : l11.panzoomRef; 12627 if (t13) { 12628 null === (a8 = t13.getTween()) || void 0 === a8 || a8.end(); 12629 const e14 = t13.getOptions(); 12630 e14.bounds = s13.bounds || false, e14.gestures = s13.gestures || false; 12631 } 12632 c5(e13) && "y" === e13.axis && (Math.abs(e13.velocityY) > 5 || Math.abs(n10) > 50) && Ae(e13.srcEvent, "f-throwOut" + (e13.velocityY > 0 ? "Down" : "Up")); 12633 } 12634 t12 = false, W === _.Ready && 0 !== n10 && (o11 = 0, r8()); 12635 }); 12636 })(), document.body.addEventListener("click", ve), document.body.addEventListener("keydown", pe, { passive: false, capture: true }), fe(), Se(); 12637 const t11 = J("sync"); 12638 B2 && t11 && (null === (e11 = t11.getTween()) || void 0 === e11 || e11.start()), be(xe()); 12639 } 12640 function ae() { 12641 (null == B2 ? void 0 : B2.canGoNext()) ? Se() : Te(); 12642 } 12643 function ce(e11, t11) { 12644 ye(t11); 12645 } 12646 function ue(e11, t11) { 12647 ye(t11), be(t11); 12648 } 12649 function de() { 12650 var e11; 12651 const t11 = null == B2 ? void 0 : B2.getPlugins().Thumbs; 12652 s5(T, "has-thumbs", (null == t11 ? void 0 : t11.isEnabled()) || false), s5(T, "has-vertical-thumbs", !!t11 && ("scrollable" === t11.getType() || true === (null === (e11 = t11.getCarousel()) || void 0 === e11 ? void 0 : e11.isVertical()))); 12653 } 12654 function fe() { 12655 if (T) { 12656 const e11 = (null == B2 ? void 0 : B2.getPages()) || [], t11 = (null == B2 ? void 0 : B2.getPageIndex()) || 0; 12657 for (const e12 of T.querySelectorAll("[data-fancybox-index]")) e12.innerHTML = t11 + ""; 12658 for (const e12 of T.querySelectorAll("[data-fancybox-page]")) e12.innerHTML = t11 + 1 + ""; 12659 for (const t12 of T.querySelectorAll("[data-fancybox-pages]")) t12.innerHTML = e11.length + ""; 12660 } 12661 } 12662 function me(e11) { 12663 if (!!e11.composedPath()[0].closest("[data-fancybox-close]")) return void Ae(e11); 12664 if (te("backdropClick", e11), e11.defaultPrevented) return; 12665 J("backdropClick") && Ae(e11); 12666 } 12667 function ge() { 12668 Ce(); 12669 } 12670 function pe(e11) { 12671 if (!Ee()) return; 12672 if (W !== _.Ready) return; 12673 const t11 = e11.key, o11 = J("keyboard"); 12674 if (!o11) return; 12675 if (e11.ctrlKey || e11.altKey || e11.shiftKey) return; 12676 const i10 = e11.composedPath()[0]; 12677 if (!n(i10)) return; 12678 if ("Escape" !== t11 && ((e12) => { 12679 const t12 = ["input", "textarea", "select", "option", "video", "iframe", "[contenteditable]", "[data-selectable]", "[data-draggable]"].join(","); 12680 return e12.matches(t12) || e12.closest(t12); 12681 })(i10)) return; 12682 if (te("keydown", e11), e11.defaultPrevented) return; 12683 const s13 = o11[t11]; 12684 if (s13) switch (s13) { 12685 case "close": 12686 Ae(e11); 12687 break; 12688 case "next": 12689 k2(e11), null == B2 || B2.next(); 12690 break; 12691 case "prev": 12692 k2(e11), null == B2 || B2.prev(); 12693 } 12694 } 12695 function ve(e11) { 12696 if (!Ee()) return; 12697 if (W !== _.Ready) return; 12698 if (Ce(), e11.defaultPrevented) return; 12699 const t11 = e11.composedPath()[0], n10 = !!t11.closest("[data-fancybox-close]"), o11 = t11.classList.contains("fancybox__backdrop"); 12700 (n10 || o11) && me(e11); 12701 } 12702 function ye(e11) { 12703 var t11; 12704 const { el: n10, htmlEl: i10, panzoomRef: s13, closeButtonEl: l10 } = e11, r8 = s13 ? s13.getWrapper() : i10; 12705 if (!n10 || !n10.parentElement || !r8) return; 12706 let a8 = J("closeButton"); 12707 if ("auto" === a8 && (a8 = true !== (null === (t11 = null == B2 ? void 0 : B2.getPlugins().Toolbar) || void 0 === t11 ? void 0 : t11.isEnabled())), a8) { 12708 if (!l10) { 12709 const t12 = e2(Q(A)); 12710 t12 && (s3(t12, "is-close-button"), e11.closeButtonEl = r8.insertAdjacentElement("afterbegin", t12), s3(n10, "has-close-btn")); 12711 } 12712 } else he(e11); 12713 } 12714 function he(e11) { 12715 e11.closeButtonEl && (e11.closeButtonEl.remove(), e11.closeButtonEl = void 0), s4(e11.el, "has-close-btn"); 12716 } 12717 function be(e11) { 12718 if (!(Y && B2 && 1 === B2.getState() && e11 && e11.index === B2.getOptions().initialPage && e11.el && e11.el.parentElement)) return; 12719 if (void 0 !== e11.state && 1 !== e11.state) return; 12720 Y = false; 12721 const t11 = e11.panzoomRef, n10 = null == t11 ? void 0 : t11.getTween(), o11 = J("zoomEffect") && n10 ? Le(e11) : void 0; 12722 if (t11 && n10 && o11) { 12723 const { x: e12, y: i11, scale: s13 } = t11.getStartPosition(); 12724 return void n10.spring({ tension: 215, friction: 25, restDelta: 1e-3, restSpeed: 1e-3, maxSpeed: 1 / 0 }).from(o11).to({ x: e12, y: i11, scale: s13 }).start(); 12725 } 12726 const i10 = (null == t11 ? void 0 : t11.getContent()) || e11.htmlEl; 12727 i10 && R(i10, J("showClass", e11)); 12728 } 12729 function Ee() { 12730 var e11; 12731 return (null === (e11 = N.getInstance()) || void 0 === e11 ? void 0 : e11.getId()) === K; 12732 } 12733 function xe() { 12734 var e11; 12735 return null === (e11 = null == B2 ? void 0 : B2.getPage()) || void 0 === e11 ? void 0 : e11.slides[0]; 12736 } 12737 function we() { 12738 const e11 = xe(); 12739 return e11 ? e11.triggerEl || J("triggerEl") : void 0; 12740 } 12741 function Le(e11) { 12742 var t11, n10; 12743 const o11 = e11.thumbEl; 12744 if (!o11 || !((e12) => { 12745 const t12 = e12.getBoundingClientRect(), n11 = e12.closest("[style]"), o12 = null == n11 ? void 0 : n11.parentElement; 12746 if (n11 && n11.style.transform && o12) { 12747 const e13 = o12.getBoundingClientRect(); 12748 if (t12.left < e13.left || t12.left > e13.left + e13.width - t12.width) return false; 12749 if (t12.top < e13.top || t12.top > e13.top + e13.height - t12.height) return false; 12750 } 12751 const i11 = Math.max(document.documentElement.clientHeight, window.innerHeight), s14 = Math.max(document.documentElement.clientWidth, window.innerWidth); 12752 return !(t12.bottom < 0 || t12.top - i11 >= 0 || t12.right < 0 || t12.left - s14 >= 0); 12753 })(o11)) return; 12754 const i10 = null === (n10 = null === (t11 = e11.panzoomRef) || void 0 === t11 ? void 0 : t11.getWrapper()) || void 0 === n10 ? void 0 : n10.getBoundingClientRect(), s13 = null == i10 ? void 0 : i10.width, l10 = null == i10 ? void 0 : i10.height; 12755 if (!s13 || !l10) return; 12756 const r8 = o11.getBoundingClientRect(); 12757 let a8 = r8.width, c5 = r8.height, u5 = r8.left, d3 = r8.top; 12758 if (!r8 || !a8 || !c5) return; 12759 if (o11 instanceof HTMLImageElement) { 12760 const e12 = window.getComputedStyle(o11).getPropertyValue("object-fit"); 12761 if ("contain" === e12 || "scale-down" === e12) { 12762 const { width: t12, height: n11 } = ((e13, t13, n12, o12, i11 = "contain") => { 12763 if ("contain" === i11 || e13 > n12 || t13 > o12) { 12764 const i12 = n12 / e13, s14 = o12 / t13, l11 = Math.min(i12, s14); 12765 e13 *= l11, t13 *= l11; 12766 } 12767 return { width: e13, height: t13 }; 12768 })(o11.naturalWidth, o11.naturalHeight, a8, c5, e12); 12769 u5 += 0.5 * (a8 - t12), d3 += 0.5 * (c5 - n11), a8 = t12, c5 = n11; 12770 } 12771 } 12772 if (Math.abs(s13 / l10 - a8 / c5) > 0.1) return; 12773 return { x: u5 + 0.5 * a8 - (i10.left + 0.5 * s13), y: d3 + 0.5 * c5 - (i10.top + 0.5 * l10), scale: a8 / s13 }; 12774 } 12775 function je() { 12776 V && clearTimeout(V), V = void 0, document.removeEventListener("mousemove", ge); 12777 } 12778 function Se() { 12779 if (G) return; 12780 if (V) return; 12781 const e11 = J("idle"); 12782 e11 && (V = setTimeout(Pe, e11)); 12783 } 12784 function Pe() { 12785 T && (je(), s3(T, "is-idle"), document.addEventListener("mousemove", ge), G = true); 12786 } 12787 function Ce() { 12788 G && (Te(), Se()); 12789 } 12790 function Te() { 12791 je(), null == T || T.classList.remove("is-idle"), G = false; 12792 } 12793 function Me() { 12794 const e11 = we(); 12795 var t11; 12796 !e11 || (t11 = e11.getBoundingClientRect()).bottom > 0 && t11.right > 0 && t11.left < (window.innerWidth || document.documentElement.clientWidth) && t11.top < (window.innerHeight || document.documentElement.clientHeight) || e11.closest("[inert]") || e11.scrollIntoView({ behavior: "instant", block: "center", inline: "center" }); 12797 } 12798 function Ae(e11, t11) { 12799 var n10, o11, i10, s13, r8; 12800 if (W === _.Closing || W === _.Destroyed) return; 12801 const a8 = new Event("shouldClose", { bubbles: true, cancelable: true }); 12802 if (te("shouldClose", a8, e11), a8.defaultPrevented) return; 12803 if (je(), e11) { 12804 if (e11.defaultPrevented) return; 12805 k2(e11), e11.stopPropagation(), e11.stopImmediatePropagation(); 12806 } 12807 if (W = _.Closing, null == F || F.pause(), null == q2 || q2.destroy(), B2) { 12808 null === (n10 = B2.getGestures()) || void 0 === n10 || n10.destroy(), null === (o11 = B2.getTween()) || void 0 === o11 || o11.pause(); 12809 for (const e12 of B2.getSlides()) { 12810 const t12 = e12.panzoomRef; 12811 t12 && (r3(t12.getOptions(), { clickAction: false, dblClickAction: false, wheelAction: false, bounds: false, minScale: 0, maxScale: 1 / 0 }), null === (i10 = t12.getGestures()) || void 0 === i10 || i10.destroy(), null === (s13 = t12.getTween()) || void 0 === s13 || s13.pause()); 12812 } 12813 } 12814 const c5 = null == B2 ? void 0 : B2.getPlugins(); 12815 null === (r8 = null == c5 ? void 0 : c5.Autoplay) || void 0 === r8 || r8.stop(); 12816 const u5 = null == c5 ? void 0 : c5.Fullscreen; 12817 u5 && u5.inFullscreen() ? Promise.resolve(u5.exit()).then(() => { 12818 setTimeout(() => { 12819 ke(e11, t11); 12820 }, 150); 12821 }) : ke(e11, t11); 12822 } 12823 function ke(e11, t11) { 12824 var n10, o11; 12825 if (W !== _.Closing) return; 12826 te("close", e11), Y = false, document.body.removeEventListener("click", ve), document.body.removeEventListener("keydown", pe, { passive: false, capture: true }), J("placeFocusBack") && Me(); 12827 const i10 = document.activeElement; 12828 i10 && (null == r7 ? void 0 : r7.contains(i10)) && i10.blur(), J("fadeEffect") && (null == T || T.classList.remove("is-ready"), null == T || T.classList.add("is-hiding")), null == T || T.classList.add("is-closing"); 12829 const s13 = xe(), l10 = null == s13 ? void 0 : s13.el, a8 = null == s13 ? void 0 : s13.panzoomRef, c5 = null === (n10 = null == s13 ? void 0 : s13.panzoomRef) || void 0 === n10 ? void 0 : n10.getTween(), u5 = t11 || J("hideClass"); 12830 let d3 = false, m3 = false; 12831 if (B2 && s13 && l10 && a8 && c5) { 12832 let e12; 12833 if (J("zoomEffect") && 1 === s13.state && (e12 = Le(s13)), e12) { 12834 d3 = true; 12835 const t12 = () => { 12836 e12 = Le(s13), e12 ? c5.to(Object.assign(Object.assign({}, y), e12)) : Re(); 12837 }; 12838 a8.on("refresh", () => { 12839 t12(); 12840 }), c5.easing(c.Easings.EaseOut).duration(350).from(Object.assign({}, a8.getTransform())).to(Object.assign(Object.assign({}, y), e12)).start(), (null == l10 ? void 0 : l10.getAnimations()) && (l10.style.animationPlayState = "paused", requestAnimationFrame(() => { 12841 t12(); 12842 })); 12843 } 12844 } 12845 const g2 = (null == s13 ? void 0 : s13.htmlEl) || (null === (o11 = null == s13 ? void 0 : s13.panzoomRef) || void 0 === o11 ? void 0 : o11.getWrapper()); 12846 g2 && O(g2), !d3 && u5 && g2 && (m3 = true, R(g2, u5, () => { 12847 Re(); 12848 })), d3 || m3 ? setTimeout(() => { 12849 Re(); 12850 }, 350) : Re(); 12851 } 12852 function Re() { 12853 var e11, t11, n10, o11, i10; 12854 if (W === _.Destroyed) return; 12855 W = _.Destroyed; 12856 const l10 = we(); 12857 te("destroy"), null === (t11 = null === (e11 = J("sync")) || void 0 === e11 ? void 0 : e11.getPlugins().Autoplay) || void 0 === t11 || t11.resume(), null === (o11 = null === (n10 = J("sync")) || void 0 === n10 ? void 0 : n10.getPlugins().Autoscroll) || void 0 === o11 || o11.resume(), r7 instanceof HTMLDialogElement && r7.close(), null === (i10 = null == B2 ? void 0 : B2.getContainer()) || void 0 === i10 || i10.classList.remove("is-idle"), null == B2 || B2.destroy(); 12858 for (const e12 of Object.values(U)) null == e12 || e12.destroy(); 12859 if (U = {}, null == r7 || r7.remove(), r7 = void 0, T = void 0, B2 = void 0, z.delete(K), !z.size && (t6(false), document.documentElement.classList.remove(D), J("placeFocusBack") && l10 && !l10.closest("[inert]"))) try { 12860 null == l10 || l10.focus({ preventScroll: true }); 12861 } catch (e12) { 12862 } 12863 } 12864 const Oe = { close: Ae, destroy: Re, getCarousel: function() { 12865 return B2; 12866 }, getContainer: function() { 12867 return T; 12868 }, getId: function() { 12869 return K; 12870 }, getOptions: function() { 12871 return $4; 12872 }, getPlugins: function() { 12873 return U; 12874 }, getSlide: function() { 12875 return xe(); 12876 }, getState: function() { 12877 return W; 12878 }, init: function(t11 = [], n10 = {}) { 12879 W !== _.Init && (Oe.destroy(), W = _.Init), $4 = r3({}, I, n10), K = J("id") || "fancybox-" + ++H; 12880 const a8 = z.get(K); 12881 if (a8 && a8.destroy(), z.set(K, Oe), te("init"), (function() { 12882 for (const [e11, t12] of Object.entries(Object.assign(Object.assign({}, N.Plugins), $4.plugins || {}))) if (e11 && !U[e11] && t12 instanceof Function) { 12883 const n11 = t12(); 12884 n11.init(Oe), U[e11] = n11; 12885 } 12886 te("initPlugins"); 12887 })(), (function(e11 = []) { 12888 te("initSlides", e11), X = [...e11]; 12889 })(t11), (function() { 12890 const t12 = J("parentEl") || document.body; 12891 if (!(t12 && t12 instanceof HTMLElement)) return; 12892 const n11 = Q(J("mainTpl") || ""); 12893 if (r7 = e2(n11) || void 0, !r7) return; 12894 if (T = r7.querySelector(".fancybox__container"), !(T && T instanceof HTMLElement)) return; 12895 const l10 = J("mainClass"); 12896 l10 && s3(T, l10); 12897 const a9 = J("mainStyle"); 12898 if (a9 && t3(a9)) for (const [e11, t13] of Object.entries(a9)) T.style.setProperty(e11, t13); 12899 const u5 = J("theme"), d3 = "auto" === u5 ? window.matchMedia("(prefers-color-scheme:light)").matches : "light" === u5; 12900 T.setAttribute("theme", d3 ? "light" : "dark"), r7.setAttribute("id", `${K}`), r7.addEventListener("keydown", (e11) => { 12901 "Escape" === e11.key && k2(e11); 12902 }), r7.addEventListener("wheel", (e11) => { 12903 const t13 = e11.target; 12904 let n12 = J("wheel", e11); 12905 t13.closest(".f-thumbs") && (n12 = "slide"); 12906 const o11 = "slide" === n12, s13 = [-e11.deltaX || 0, -e11.deltaY || 0, -e11.detail || 0].reduce(function(e12, t14) { 12907 return Math.abs(t14) > Math.abs(e12) ? t14 : e12; 12908 }), l11 = Math.max(-1, Math.min(1, s13)), r8 = Date.now(); 12909 Z && r8 - Z < 300 ? o11 && k2(e11) : (Z = r8, te("wheel", e11, l11), e11.defaultPrevented || ("close" === n12 ? Ae(e11) : "slide" === n12 && B2 && !n2(t13) && (k2(e11), B2[l11 > 0 ? "prev" : "next"]()))); 12910 }, { capture: true, passive: false }), r7.addEventListener("cancel", (e11) => { 12911 Ae(e11); 12912 }), t12.append(r7), 1 === z.size && (J("hideScrollbar") && t6(true), document.documentElement.classList.add(D)); 12913 r7 instanceof HTMLDialogElement && (J("modal") ? r7.showModal() : r7.show()); 12914 te("initLayout"); 12915 })(), (function() { 12916 if (M3 = (null == r7 ? void 0 : r7.querySelector(".fancybox__carousel")) || void 0, !M3) return; 12917 M3.fancybox = Oe; 12918 const e11 = r3({}, { Autoplay: { autoStart: false, pauseOnHover: false, progressbarParentEl: (e12) => { 12919 const t12 = e12.getContainer(); 12920 return (null == t12 ? void 0 : t12.querySelector(".f-carousel__toolbar [data-autoplay-action]")) || t12; 12921 } }, Fullscreen: { el: T }, Toolbar: { absolute: true, items: { counter: { tpl: '<div class="f-counter"><span data-fancybox-page></span>/<span data-fancybox-pages></span></div>' } }, display: { left: ["counter"], right: ["toggleFull", "autoplay", "fullscreen", "thumbs", "close"] } }, Video: { autoplay: true }, Thumbs: { minCount: 2, Carousel: { classes: { container: "fancybox__thumbs" } } }, classes: { container: "fancybox__carousel", viewport: "fancybox__viewport", slide: "fancybox__slide" }, spinnerTpl: '<div class="f-spinner" data-fancybox-close></div>', dragFree: false, slidesPerPage: 1, plugins: { Sync: i3, Arrows: l3, Lazyload: i4, Zoomable: s6, Html: l5, Video: s10, Autoplay: o6, Fullscreen: l7, Thumbs: c3, Toolbar: r5 } }, J("Carousel") || {}, { slides: X, enabled: true, initialPage: J("startIndex") || 0, l10n: J("l10n") }); 12922 B2 = E2(M3, e11), te("initCarousel", B2), B2.on("*", (e12, t12, ...n11) => { 12923 te(`Carousel.${t12}`, e12, ...n11); 12924 }), B2.on("attachSlideEl", oe), B2.on("detachSlideEl", ie), B2.on("contentLoading", ce), B2.on("contentReady", ue), B2.on("ready", re), B2.on("change", le), B2.on("settle", ae), B2.on("thumbs:ready", de), B2.on("thumbs:destroy", de), B2.init(); 12925 })(), r7 && T) { 12926 if (J("closeExisting")) for (const [e11, t12] of z.entries()) e11 !== K && t12.close(); 12927 J("fadeEffect") ? (setTimeout(() => { 12928 ne(); 12929 }, 500), s3(T, "is-revealing")) : ne(), T.classList.add("is-ready"), W = _.Ready, te("ready"); 12930 } 12931 }, isCurrentSlide: function(e11) { 12932 const t11 = xe(); 12933 return !(!e11 || !t11) && t11.index === e11.index; 12934 }, isTopMost: function() { 12935 return Ee(); 12936 }, off: function(e11, t11) { 12937 return ee.has(e11) && ee.set(e11, ee.get(e11).filter((e12) => e12 !== t11)), Oe; 12938 }, on: function(e11, t11) { 12939 return ee.set(e11, [...ee.get(e11) || [], t11]), Oe; 12940 }, toggleIdle(e11) { 12941 (G || true === e11) && Pe(), G && false !== e11 || Te(); 12942 } }; 12943 return Oe; 12944 }; 12945 N = { Plugins: { Hash: w2 }, version: "6.1.10", openers: /* @__PURE__ */ new Map(), bind: function(e11, n10, o11, i10) { 12946 if (!e8()) return; 12947 let s13 = document.body, l10 = null, a8 = "[data-fancybox]", c5 = {}; 12948 e11 instanceof Element && (s13 = e11), t(e11) && t(n10) ? (l10 = e11, a8 = n10) : t(n10) && t(o11) ? (l10 = n10, a8 = o11) : t(n10) ? a8 = n10 : t(e11) && (a8 = e11), "object" == typeof n10 && (c5 = n10 || {}), "object" == typeof o11 && (c5 = o11 || {}), "object" == typeof i10 && (c5 = i10 || {}), (function(e12, t11, n11, o12 = {}) { 12949 if (!(e12 && e12 instanceof Element && n11)) return; 12950 const i11 = N.openers.get(e12) || /* @__PURE__ */ new Map(), s14 = i11.get(t11) || /* @__PURE__ */ new Map(); 12951 if (s14.set(n11, o12), i11.set(t11, s14), N.openers.set(e12, i11), 1 === i11.size && e12.addEventListener("click", N.fromEvent), 1 === N.openers.size) for (const e13 of Object.values(N.Plugins)) { 12952 const t12 = e13.setup; 12953 "function" == typeof t12 && t12(N); 12954 } 12955 })(s13, l10, a8, c5); 12956 }, close: function(e11 = true, ...t11) { 12957 if (e11) for (const e12 of z.values()) e12.close(...t11); 12958 else { 12959 const e12 = N.getInstance(); 12960 e12 && e12.close(...t11); 12961 } 12962 }, destroy: function() { 12963 let e11; 12964 for (; e11 = N.getInstance(); ) e11.destroy(); 12965 for (const e12 of N.openers.keys()) e12.removeEventListener("click", N.fromEvent); 12966 N.openers.clear(); 12967 }, fromEvent: function(e11) { 12968 if (e11.defaultPrevented) return; 12969 if (e11.button && 0 !== e11.button) return; 12970 if (e11.ctrlKey || e11.metaKey || e11.shiftKey) return; 12971 let t11 = e11.composedPath()[0]; 12972 const n10 = { triggerEvent: e11 }; 12973 if (t11.closest(".fancybox__container.is-hiding")) return k2(e11), void e11.stopPropagation(); 12974 const o11 = t11.closest("[data-fancybox-delegate]") || void 0; 12975 if (o11) { 12976 const e12 = o11.dataset.fancyboxDelegate || "", i10 = document.querySelectorAll(`[data-fancybox="${e12}"]`), s13 = parseInt(o11.dataset.fancyboxIndex || "", 10) || 0; 12977 t11 = i10[s13] || i10[0], r3(n10, { delegateEl: o11, startIndex: s13 }); 12978 } 12979 return q(t11, n10); 12980 }, fromNodes: function(e11, t11) { 12981 t11 = r3({}, I, t11 || {}); 12982 const n10 = [], o11 = (e12) => e12 instanceof HTMLImageElement ? e12 : e12 instanceof HTMLElement ? e12.querySelector("img:not([aria-hidden])") : void 0; 12983 for (const i10 of e11) { 12984 const s13 = i10.dataset || {}, l10 = t11.delegateEl && e11.indexOf(i10) === t11.startIndex ? t11.delegateEl : void 0, r7 = o11(l10) || o11(i10) || void 0, a8 = s13.src || i10.getAttribute("href") || i10.getAttribute("currentSrc") || i10.getAttribute("src") || void 0, c5 = s13.thumb || s13.thumbSrc || (null == r7 ? void 0 : r7.getAttribute("currentSrc")) || (null == r7 ? void 0 : r7.getAttribute("src")) || (null == r7 ? void 0 : r7.dataset.lazySrc) || void 0, u5 = { src: a8, alt: s13.alt || (null == r7 ? void 0 : r7.getAttribute("alt")) || void 0, thumbSrc: c5, thumbEl: r7, triggerEl: i10, delegateEl: l10 }; 12985 for (const e12 in s13) { 12986 let t12 = s13[e12] + ""; 12987 t12 = "false" !== t12 && ("true" === t12 || t12), u5[e12] = t12; 12988 } 12989 n10.push(u5); 12990 } 12991 return N.show(n10, t11); 12992 }, fromSelector: function(e11, n10, o11, i10) { 12993 if (!e8()) return; 12994 let s13 = document.body, l10 = null, a8 = "[data-fancybox]", c5 = {}; 12995 e11 instanceof Element && (s13 = e11), t(e11) && t(n10) ? (l10 = e11, a8 = n10) : t(n10) && t(o11) ? (l10 = n10, a8 = o11) : t(n10) ? a8 = n10 : t(e11) && (a8 = e11), "object" == typeof n10 && (c5 = n10 || {}), "object" == typeof o11 && (c5 = o11 || {}), "object" == typeof i10 && (c5 = i10 || {}); 12996 for (const [e12, t11] of N.openers) for (const [n11, o12] of t11) for (const [t12, i11] of o12) if (e12 === s13 && n11 === l10) { 12997 const e13 = s13.querySelector((n11 ? `${n11} ` : "") + a8); 12998 if (e13 && e13.matches(t12)) return N.fromTriggerEl(e13, c5); 12999 } 13000 }, fromTriggerEl: q, getCarousel: function() { 13001 var e11; 13002 return (null === (e11 = N.getInstance()) || void 0 === e11 ? void 0 : e11.getCarousel()) || void 0; 13003 }, getDefaults: function() { 13004 return I; 13005 }, getInstance: function(e11) { 13006 if (e11) { 13007 const t11 = z.get(e11); 13008 return t11 && t11.getState() !== _.Destroyed ? t11 : void 0; 13009 } 13010 return Array.from(z.values()).reverse().find((e12) => { 13011 if (e12.getState() !== _.Destroyed) return e12; 13012 }) || void 0; 13013 }, getSlide: function() { 13014 var e11; 13015 return (null === (e11 = N.getInstance()) || void 0 === e11 ? void 0 : e11.getSlide()) || void 0; 13016 }, show: function(e11 = [], t11 = {}) { 13017 return B().init(e11, t11); 13018 }, unbind: function(e11, n10, o11) { 13019 if (!e8()) return; 13020 let i10 = document.body, s13 = null, l10 = "[data-fancybox]"; 13021 e11 instanceof Element && (i10 = e11), t(e11) && t(n10) ? (s13 = e11, l10 = n10) : t(n10) && t(o11) ? (s13 = n10, l10 = o11) : t(n10) ? l10 = n10 : t(e11) && (l10 = e11), (function(e12, t11, n11) { 13022 if (!(e12 && e12 instanceof Element && n11)) return; 13023 const o12 = N.openers.get(e12) || /* @__PURE__ */ new Map(), i11 = o12.get(t11) || /* @__PURE__ */ new Map(); 13024 i11 && n11 && i11.delete(n11), i11.size && n11 || o12.delete(t11), o12.size || (N.openers.delete(e12), e12.removeEventListener("click", N.fromEvent)); 13025 })(i10, s13, l10); 13026 } }; 13027 } 13028 }); 13029 13030
vendor: 510 bytes, lines 13030-13049
13030// node_modules/@fancyapps/ui/dist/index.js 13031 var init_dist = __esm({ 13032 "node_modules/@fancyapps/ui/dist/index.js"() { 13033 init_panzoom(); 13034 init_carousel(); 13035 init_fancybox(); 13036 init_carousel_arrows(); 13037 init_carousel_autoplay(); 13038 init_carousel_fullscreen(); 13039 init_carousel_html(); 13040 init_carousel_lazyload(); 13041 init_carousel_sync(); 13042 init_carousel_thumbs(); 13043 init_carousel_toolbar(); 13044 init_carousel_video(); 13045 init_carousel_zoomable(); 13046 } 13047 }); 13048 13049
vendor: 167 bytes, lines 13049-13055
13049// node_modules/@fancyapps/ui/dist/fancybox/fancybox.css 13050 var init_fancybox2 = __esm({ 13051 "node_modules/@fancyapps/ui/dist/fancybox/fancybox.css"() { 13052 } 13053 }); 13054 13055
vendor: 167 bytes, lines 13055-13061
13055// node_modules/@fancyapps/ui/dist/carousel/carousel.css 13056 var init_carousel2 = __esm({ 13057 "node_modules/@fancyapps/ui/dist/carousel/carousel.css"() { 13058 } 13059 }); 13060 13061
vendor: 194 bytes, lines 13061-13067
13061// node_modules/@fancyapps/ui/dist/carousel/carousel.autoplay.css 13062 var init_carousel_autoplay2 = __esm({ 13063 "node_modules/@fancyapps/ui/dist/carousel/carousel.autoplay.css"() { 13064 } 13065 }); 13066 13067
vendor: 3,216 bytes, lines 13067-13130
13067// node_modules/@fancyapps/ui/dist/carousel/carousel.dots.js 13068 var i8, s12, l9, a7; 13069 var init_carousel_dots = __esm({ 13070 "node_modules/@fancyapps/ui/dist/carousel/carousel.dots.js"() { 13071 init_isPlainObject(); 13072 init_strToHtml(); 13073 init_addClass(); 13074 init_removeClass(); 13075 i8 = { dotTpl: '<button class="f-carousel__dot" data-carousel-go-to="%i" aria-label="{{GOTO}}"></button>', dynamicFrom: 11, dynamicPadd: 4, maxCount: 1 / 0, minCount: 2 }; 13076 s12 = "f-carousel__dots"; 13077 l9 = "has-dots"; 13078 a7 = () => { 13079 let a8, r7, c5 = false, d3 = 4, u5 = 0, f3 = d3; 13080 function m3(n10) { 13081 const e11 = null == a8 ? void 0 : a8.getOptions().Dots; 13082 return (t3(e11) ? Object.assign(Object.assign({}, i8), e11) : i8)[n10]; 13083 } 13084 function g2() { 13085 var t11, o11; 13086 if (!a8) return; 13087 d3 = m3("dynamicPadd"), u5 = 0, f3 = d3; 13088 const i10 = a8.getContainer(), g3 = a8.getPages().length; 13089 if (false === a8.getOptions().Dots || !i10 || g3 < m3("minCount") || g3 > m3("maxCount")) return void v3(); 13090 r7 || (r7 = (null === (t11 = a8.getContainer()) || void 0 === t11 ? void 0 : t11.querySelector("." + s12)) || void 0), r7 || (r7 = document.createElement("div"), s3(r7, s12), null === (o11 = a8.getViewport()) || void 0 === o11 || o11.insertAdjacentElement("afterend", r7)); 13091 const p3 = c5, C = m3("dynamicFrom"); 13092 c5 = !!(C && g3 >= C && g3 >= d3 + 4), p3 !== c5 && v3(), (function() { 13093 if (!a8 || !r7) return; 13094 const t12 = a8.getPages().length; 13095 if (t12 !== r7.childElementCount) { 13096 const e11 = []; 13097 for (let o12 = 0; o12 < t12; o12++) { 13098 const t13 = m3("dotTpl") || "%d", i11 = e2(a8.localize(t13, [["%d", o12 + 1]]).replace(/\%i/g, o12 + "")); 13099 i11 && e11.push(i11); 13100 } 13101 r7.replaceChildren(...e11); 13102 } 13103 })(), h4(), r7.classList.toggle("is-dynamic", c5), r7.style.display = "", s3(i10, l9); 13104 } 13105 function p2() { 13106 h4(); 13107 } 13108 function h4() { 13109 if (!a8 || !r7 || !c5) return; 13110 const t11 = a8.getPageIndex(), n10 = a8.getPages().length; 13111 t11 < u5 && (u5 = t11, f3 = u5 + d3, f3 > n10 && (f3 = n10)), t11 > f3 && (f3 = t11, u5 = f3 - d3, u5 < 0 && (u5 = 0)); 13112 const i10 = (n11) => n11 === t11 ? "active" : n11 >= u5 && n11 <= f3 ? "padd" : n11 === u5 - 1 || n11 === f3 + 1 ? "small" : n11 === u5 - 2 || n11 === f3 + 2 ? "micro" : "hidden", s13 = [...r7.childNodes]; 13113 for (const t12 of s13) { 13114 const n11 = parseInt(t12.dataset.carouselGoTo || "0", 10); 13115 s4(t12, "active padd small micro hidden"), s3(t12, i10(n11)); 13116 } 13117 } 13118 function v3() { 13119 r7 && (r7.replaceChildren(), r7.style.display = "none"), s4(null == a8 ? void 0 : a8.getContainer(), l9); 13120 } 13121 return { init: function(t11) { 13122 a8 = t11, a8.on("refresh", g2), a8.on("change", p2); 13123 }, destroy: function() { 13124 v3(), null == a8 || a8.off("refresh", g2), null == a8 || a8.off("change", p2), a8 = void 0; 13125 } }; 13126 }; 13127 } 13128 }); 13129 13130
vendor: 182 bytes, lines 13130-13136
13130// node_modules/@fancyapps/ui/dist/carousel/carousel.dots.css 13131 var init_carousel_dots2 = __esm({ 13132 "node_modules/@fancyapps/ui/dist/carousel/carousel.dots.css"() { 13133 } 13134 }); 13135 13136
vendor: 3,812 bytes, lines 13136-13228
13136// node_modules/@fancyapps/ui/dist/carousel/carousel.autoscroll.js 13137 var e10, t9, o10; 13138 var init_carousel_autoscroll = __esm({ 13139 "node_modules/@fancyapps/ui/dist/carousel/carousel.autoscroll.js"() { 13140 init_isPlainObject(); 13141 e10 = { autoStart: true, speed: 3 }; 13142 t9 = 1 / 60 * 1e3 * 1; 13143 o10 = () => { 13144 let o11, i10, l10 = null, u5 = false, s13 = false, r7 = false, a8 = false; 13145 function c5() { 13146 const t11 = null == o11 ? void 0 : o11.getOptions().Autoscroll; 13147 return t3(t11) ? Object.assign(Object.assign({}, e10), t11) : e10; 13148 } 13149 function d3() { 13150 l10 || (i10 = performance.now(), l10 = requestAnimationFrame(g2)); 13151 } 13152 function v3() { 13153 l10 && (cancelAnimationFrame(l10), l10 = null); 13154 } 13155 function f3() { 13156 var n10; 13157 if (o11 && o11.isInfinite()) { 13158 if (!u5) { 13159 u5 = true; 13160 const e11 = null == o11 ? void 0 : o11.getContainer(); 13161 null === (n10 = null == o11 ? void 0 : o11.getTween()) || void 0 === n10 || n10.on("start", O2), e11 && matchMedia("(hover: hover)").matches && (e11.addEventListener("mouseenter", p2, false), e11.addEventListener("mouseleave", h4, false)), o11.emit("autoscroll:start"); 13162 } 13163 d3(); 13164 } 13165 } 13166 function m3() { 13167 var n10; 13168 if (v3(), u5) { 13169 u5 = false, r7 = false, null === (n10 = null == o11 ? void 0 : o11.getTween()) || void 0 === n10 || n10.off("start", O2); 13170 const e11 = null == o11 ? void 0 : o11.getContainer(); 13171 null == e11 || e11.addEventListener("mouseenter", p2, false), null == e11 || e11.addEventListener("mouseleave", h4, false), null == o11 || o11.emit("autoscroll:end"); 13172 } 13173 } 13174 function g2(n10) { 13175 if (o11 && u5 && !r7 && i10) { 13176 if (!o11.isInTransition()) { 13177 let e11 = n10 - i10; 13178 e11 > t9 && (e11 = t9); 13179 const l11 = 1 / 60 * e11, u6 = c5().speed, r8 = c5().speedOnHover; 13180 let a9 = l11 * (s13 && void 0 !== r8 ? r8 : u6); 13181 const d4 = o11.getPosition() + a9; 13182 o11.setPosition(d4); 13183 } 13184 l10 = null, d3(); 13185 } 13186 } 13187 function p2() { 13188 var n10; 13189 s13 = true; 13190 0 === c5().speedOnHover && (a8 = true, null === (n10 = null == o11 ? void 0 : o11.getTween()) || void 0 === n10 || n10.pause(), v3()); 13191 } 13192 function h4() { 13193 s13 = false, a8 = false, u5 && !r7 && d3(); 13194 } 13195 function E3() { 13196 o11 && false !== o11.getOptions().Autoscroll && c5().autoStart && f3(); 13197 } 13198 function O2() { 13199 v3(); 13200 } 13201 function b3() { 13202 !u5 || r7 || a8 || d3(); 13203 } 13204 function w3() { 13205 var n10; 13206 u5 && (document.hidden ? (null === (n10 = null == o11 ? void 0 : o11.getTween()) || void 0 === n10 || n10.pause(), v3()) : r7 || a8 || d3()); 13207 } 13208 return { init: function(n10) { 13209 o11 = n10, o11.on("ready", E3), o11.on("settle", b3), document.addEventListener("visibilitychange", w3); 13210 }, destroy: function() { 13211 a8 = false, m3(), o11 && (o11.off("ready", E3), o11.off("settle", b3)), o11 = void 0, document.removeEventListener("visibilitychange", w3); 13212 }, isEnabled: () => u5, pause: function() { 13213 var n10; 13214 r7 || (r7 = true, null === (n10 = null == o11 ? void 0 : o11.getTween()) || void 0 === n10 || n10.pause(), v3()); 13215 }, resume: function() { 13216 r7 = false, u5 && !a8 && d3(); 13217 }, start: function() { 13218 f3(); 13219 }, stop: function() { 13220 m3(); 13221 }, toggle() { 13222 u5 ? m3() : f3(); 13223 } }; 13224 }; 13225 } 13226 }); 13227 13228
vendor: 188 bytes, lines 13228-13234
13228// node_modules/@fancyapps/ui/dist/carousel/carousel.arrows.css 13229 var init_carousel_arrows2 = __esm({ 13230 "node_modules/@fancyapps/ui/dist/carousel/carousel.arrows.css"() { 13231 } 13232 }); 13233 13234
vendor: 188 bytes, lines 13234-13240
13234// node_modules/@fancyapps/ui/dist/carousel/carousel.thumbs.css 13235 var init_carousel_thumbs2 = __esm({ 13236 "node_modules/@fancyapps/ui/dist/carousel/carousel.thumbs.css"() { 13237 } 13238 }); 13239 13240
13240// js/fancybox.js 13241 var fancybox_exports = {}; 13242 var import_jquery_min; 13243 var init_fancybox3 = __esm({ 13244 "js/fancybox.js"() { 13245 import_jquery_min = __toESM(require_jquery_min()); 13246 init_dist(); 13247 init_fancybox2(); 13248 init_carousel(); 13249 init_carousel2(); 13250 init_carousel_autoplay(); 13251 init_carousel_autoplay2(); 13252 init_carousel_dots(); 13253 init_carousel_dots2(); 13254 init_carousel_autoscroll(); 13255 init_carousel_arrows(); 13256 init_carousel_arrows2(); 13257 init_carousel_thumbs(); 13258 init_carousel_thumbs2(); 13259 (0, import_jquery_min.default)(document).ready(function() { 13260 if (typeof N !== "undefined") { 13261 N.bind("[data-fancybox]", { 13262 Carousel: { 13263 infinite: true 13264 }, 13265 Slideshow: { 13266 playOnStart: true, 13267 timeout: 3e3 13268 }, 13269 Toolbar: { 13270 display: { 13271 left: [], 13272 middle: [], 13273 right: ["slideshow", "close"] 13274 } 13275 }, 13276 Images: { 13277 zoom: false 13278 } 13279 }); 13280 } 13281 N.bind("[data-fancybox]", { 13282 Carousel: { 13283 infinite: true 13284 }, 13285 Slideshow: { 13286 playOnStart: true, 13287 timeout: 3e3 13288 }, 13289 Toolbar: { 13290 display: { 13291 left: [], 13292 middle: [], 13293 right: ["slideshow", "close"] 13294 } 13295 }, 13296 Images: { 13297 zoom: false 13298 } 13299 }); 13300 (0, import_jquery_min.default)(".f-carousel").each(function(e11) { 13301 var container = (0, import_jquery_min.default)(this)[0]; 13302 var options = { 13303 style: { 13304 "--f-progressbar-color": "#111", 13305 "--f-progressbar-height": "2px" 13306 }, 13307 Autoscroll: { 13308 speed: 3, 13309 speedOnHover: 1 13310 }, 13311 Autoplay: { 13312 showProgressbar: false 13313 }, 13314 infinite: true, 13315 autoStart: true 13316 }; 13317 const pluginMap = { 13318 Autoplay: o6, 13319 Dots: a7, 13320 Autoscroll: o10 13321 }; 13322 let dataExtras = (0, import_jquery_min.default)(this).attr("data-extras") || ""; 13323 dataExtras = dataExtras.replace(/[{}]/g, "").split(",").map((s13) => s13.trim()); 13324 const extras = {}; 13325 dataExtras.forEach((pluginName) => { 13326 if (pluginMap[pluginName]) { 13327 extras[pluginName] = pluginMap[pluginName]; 13328 } 13329 }); 13330 var carousel = E2(container, options, extras).init(); 13331 }); 13332 (0, import_jquery_min.default)(".f-logoCarousel").each(function(e11) { 13333 var container = (0, import_jquery_min.default)(this)[0]; 13334 let dataTransition = (0, import_jquery_min.default)(this).attr("data-transition") || ""; 13335 let dataInfinite = (0, import_jquery_min.default)(this).data("infinite") !== void 0 ? (0, import_jquery_min.default)(this).data("infinite") : false; 13336 let dataCenter = (0, import_jquery_min.default)(this).data("center") !== void 0 ? (0, import_jquery_min.default)(this).data("center") : true; 13337 var options = { 13338 transition: dataTransition, 13339 infinite: dataInfinite, 13340 center: dataCenter, 13341 style: { 13342 "--f-arrow-pos": "-20px" 13343 }, 13344 Thumbs: { 13345 type: "classic" 13346 }, 13347 Autoplay: { 13348 timeout: 3500, 13349 showProgressbar: false 13350 } 13351 }; 13352 const pluginMap = { 13353 Autoplay: o6, 13354 Arrows: l3, 13355 Dots: a7, 13356 Autoscroll: o10, 13357 Thumbs: c3 13358 }; 13359 let dataExtras = (0, import_jquery_min.default)(this).attr("data-extras") || ""; 13360 dataExtras = dataExtras.replace(/[{}]/g, "").split(",").map((s13) => s13.trim()); 13361 const extras = {}; 13362 dataExtras.forEach((pluginName) => { 13363 if (pluginMap[pluginName]) { 13364 extras[pluginName] = pluginMap[pluginName]; 13365 } 13366 }); 13367 var carousel = E2(container, options, extras).init(); 13368 }); 13369 (0, import_jquery_min.default)(".f-slideshow").each(function(e11) { 13370 var container = (0, import_jquery_min.default)(this)[0]; 13371 let dataTransition = (0, import_jquery_min.default)(this).attr("data-transition") || ""; 13372 let dataInfinite = (0, import_jquery_min.default)(this).data("infinite") !== void 0 ? (0, import_jquery_min.default)(this).data("infinite") : false;
13373 var options = { 13374 transition: dataTransition, 13375 infinite: dataInfinite, 13376 style: { 13377 "--f-arrow-pos": "-20px" 13378 }, 13379 Thumbs: { 13380 type: "classic" 13381 }, 13382 Autoplay: { 13383 timeout: 3500, 13384 showProgressbar: false 13385 } 13386 }; 13387 const pluginMap = { 13388 Autoplay: o6, 13389 Arrows: l3, 13390 Dots: a7, 13391 Autoscroll: o10, 13392 Thumbs: c3 13393 }; 13394 let dataExtras = (0, import_jquery_min.default)(this).attr("data-extras") || ""; 13395 dataExtras = dataExtras.replace(/[{}]/g, "").split(",").map((s13) => s13.trim()); 13396 const extras = {}; 13397 dataExtras.forEach((pluginName) => { 13398 if (pluginMap[pluginName]) { 13399 extras[pluginName] = pluginMap[pluginName]; 13400 } 13401 }); 13402 var carousel = E2(container, options, extras).init(); 13403 }); 13404 (0, import_jquery_min.default)(".f-logo").each(function(e11) { 13405 var container = (0, import_jquery_min.default)(this)[0]; 13406 var options = { 13407 Autoscroll: { 13408 slidesPerPage: 1, 13409 speed: 3, 13410 speedOnHover: 1 13411 } 13412 }; 13413 var carousel = E2(container, options, { Autoscroll: o10 }).init(); 13414 }); 13415 (0, import_jquery_min.default)(".f-gallery").each(function(e11) { 13416 var container = (0, import_jquery_min.default)(this)[0]; 13417 var options = { 13418 Thumbs: { 13419 type: "classic" 13420 } 13421 }; 13422 var carousel = E2(container, options, { Thumbs: c3 }).init(); 13423 }); 13424 (0, import_jquery_min.default)(".f-testimonials").each(function(e11) { 13425 var container = (0, import_jquery_min.default)(this)[0]; 13426 var options = { 13427 infinite: true, 13428 autoStart: true 13429 }; 13430 var carousel = E2(container, options).init(); 13431 }); 13432 }); 13433 } 13434 }); 13435 13436
vendor: 8,316 bytes, lines 13436-13529
13436// node_modules/countup.js/dist/countUp.min.js 13437 var t10, i9; 13438 var init_countUp_min = __esm({ 13439 "node_modules/countup.js/dist/countUp.min.js"() { 13440 t10 = function() { 13441 return t10 = Object.assign || function(t11) { 13442 for (var i10, n10 = 1, s13 = arguments.length; n10 < s13; n10++) for (var a8 in i10 = arguments[n10]) Object.prototype.hasOwnProperty.call(i10, a8) && (t11[a8] = i10[a8]); 13443 return t11; 13444 }, t10.apply(this, arguments); 13445 }; 13446 i9 = (function() { 13447 function i10(i11, n10, s13) { 13448 var a8 = this; 13449 this.endVal = n10, this.options = s13, this.version = "2.9.0", this.defaults = { startVal: 0, decimalPlaces: 0, duration: 2, useEasing: true, useGrouping: true, useIndianSeparators: false, smartEasingThreshold: 999, smartEasingAmount: 333, separator: ",", decimal: ".", prefix: "", suffix: "", enableScrollSpy: false, scrollSpyDelay: 200, scrollSpyOnce: false }, this.finalEndVal = null, this.useEasing = true, this.countDown = false, this.error = "", this.startVal = 0, this.paused = true, this.once = false, this.count = function(t11) { 13450 a8.startTime || (a8.startTime = t11); 13451 var i12 = t11 - a8.startTime; 13452 a8.remaining = a8.duration - i12, a8.useEasing ? a8.countDown ? a8.frameVal = a8.startVal - a8.easingFn(i12, 0, a8.startVal - a8.endVal, a8.duration) : a8.frameVal = a8.easingFn(i12, a8.startVal, a8.endVal - a8.startVal, a8.duration) : a8.frameVal = a8.startVal + (a8.endVal - a8.startVal) * (i12 / a8.duration); 13453 var n11 = a8.countDown ? a8.frameVal < a8.endVal : a8.frameVal > a8.endVal; 13454 a8.frameVal = n11 ? a8.endVal : a8.frameVal, a8.frameVal = Number(a8.frameVal.toFixed(a8.options.decimalPlaces)), a8.printValue(a8.frameVal), i12 < a8.duration ? a8.rAF = requestAnimationFrame(a8.count) : null !== a8.finalEndVal ? a8.update(a8.finalEndVal) : a8.options.onCompleteCallback && a8.options.onCompleteCallback(); 13455 }, this.formatNumber = function(t11) { 13456 var i12, n11, s14, e11, o11 = t11 < 0 ? "-" : ""; 13457 i12 = Math.abs(t11).toFixed(a8.options.decimalPlaces); 13458 var r7 = (i12 += "").split("."); 13459 if (n11 = r7[0], s14 = r7.length > 1 ? a8.options.decimal + r7[1] : "", a8.options.useGrouping) { 13460 e11 = ""; 13461 for (var l10 = 3, h4 = 0, u5 = 0, p2 = n11.length; u5 < p2; ++u5) a8.options.useIndianSeparators && 4 === u5 && (l10 = 2, h4 = 1), 0 !== u5 && h4 % l10 == 0 && (e11 = a8.options.separator + e11), h4++, e11 = n11[p2 - u5 - 1] + e11; 13462 n11 = e11; 13463 } 13464 return a8.options.numerals && a8.options.numerals.length && (n11 = n11.replace(/[0-9]/g, (function(t12) { 13465 return a8.options.numerals[+t12]; 13466 })), s14 = s14.replace(/[0-9]/g, (function(t12) { 13467 return a8.options.numerals[+t12]; 13468 }))), o11 + a8.options.prefix + n11 + s14 + a8.options.suffix; 13469 }, this.easeOutExpo = function(t11, i12, n11, s14) { 13470 return n11 * (1 - Math.pow(2, -10 * t11 / s14)) * 1024 / 1023 + i12; 13471 }, this.options = t10(t10({}, this.defaults), s13), this.formattingFn = this.options.formattingFn ? this.options.formattingFn : this.formatNumber, this.easingFn = this.options.easingFn ? this.options.easingFn : this.easeOutExpo, this.el = "string" == typeof i11 ? document.getElementById(i11) : i11, n10 = null == n10 ? this.parse(this.el.innerHTML) : n10, this.startVal = this.validateValue(this.options.startVal), this.frameVal = this.startVal, this.endVal = this.validateValue(n10), this.options.decimalPlaces = Math.max(this.options.decimalPlaces), this.resetDuration(), this.options.separator = String(this.options.separator), this.useEasing = this.options.useEasing, "" === this.options.separator && (this.options.useGrouping = false), this.el ? this.printValue(this.startVal) : this.error = "[CountUp] target is null or undefined", "undefined" != typeof window && this.options.enableScrollSpy && (this.error ? console.error(this.error, i11) : (window.onScrollFns = window.onScrollFns || [], window.onScrollFns.push((function() { 13472 return a8.handleScroll(a8); 13473 })), window.onscroll = function() { 13474 window.onScrollFns.forEach((function(t11) { 13475 return t11(); 13476 })); 13477 }, this.handleScroll(this))); 13478 } 13479 return i10.prototype.handleScroll = function(t11) { 13480 if (t11 && window && !t11.once) { 13481 var i11 = window.innerHeight + window.scrollY, n10 = t11.el.getBoundingClientRect(), s13 = n10.top + window.pageYOffset, a8 = n10.top + n10.height + window.pageYOffset; 13482 a8 < i11 && a8 > window.scrollY && t11.paused ? (t11.paused = false, setTimeout((function() { 13483 return t11.start(); 13484 }), t11.options.scrollSpyDelay), t11.options.scrollSpyOnce && (t11.once = true)) : (window.scrollY > a8 || s13 > i11) && !t11.paused && t11.reset(); 13485 } 13486 }, i10.prototype.determineDirectionAndSmartEasing = function() { 13487 var t11 = this.finalEndVal ? this.finalEndVal : this.endVal; 13488 this.countDown = this.startVal > t11; 13489 var i11 = t11 - this.startVal; 13490 if (Math.abs(i11) > this.options.smartEasingThreshold && this.options.useEasing) { 13491 this.finalEndVal = t11; 13492 var n10 = this.countDown ? 1 : -1; 13493 this.endVal = t11 + n10 * this.options.smartEasingAmount, this.duration = this.duration / 2; 13494 } else this.endVal = t11, this.finalEndVal = null; 13495 null !== this.finalEndVal ? this.useEasing = false : this.useEasing = this.options.useEasing; 13496 }, i10.prototype.start = function(t11) { 13497 this.error || (this.options.onStartCallback && this.options.onStartCallback(), t11 && (this.options.onCompleteCallback = t11), this.duration > 0 ? (this.determineDirectionAndSmartEasing(), this.paused = false, this.rAF = requestAnimationFrame(this.count)) : this.printValue(this.endVal)); 13498 }, i10.prototype.pauseResume = function() { 13499 this.paused ? (this.startTime = null, this.duration = this.remaining, this.startVal = this.frameVal, this.determineDirectionAndSmartEasing(), this.rAF = requestAnimationFrame(this.count)) : cancelAnimationFrame(this.rAF), this.paused = !this.paused; 13500 }, i10.prototype.reset = function() { 13501 cancelAnimationFrame(this.rAF), this.paused = true, this.resetDuration(), this.startVal = this.validateValue(this.options.startVal), this.frameVal = this.startVal, this.printValue(this.startVal); 13502 }, i10.prototype.update = function(t11) { 13503 cancelAnimationFrame(this.rAF), this.startTime = null, this.endVal = this.validateValue(t11), this.endVal !== this.frameVal && (this.startVal = this.frameVal, null == this.finalEndVal && this.resetDuration(), this.finalEndVal = null, this.determineDirectionAndSmartEasing(), this.rAF = requestAnimationFrame(this.count)); 13504 }, i10.prototype.printValue = function(t11) { 13505 var i11; 13506 if (this.el) { 13507 var n10 = this.formattingFn(t11); 13508 if (null === (i11 = this.options.plugin) || void 0 === i11 ? void 0 : i11.render) this.options.plugin.render(this.el, n10); 13509 else if ("INPUT" === this.el.tagName) this.el.value = n10; 13510 else "text" === this.el.tagName || "tspan" === this.el.tagName ? this.el.textContent = n10 : this.el.innerHTML = n10; 13511 } 13512 }, i10.prototype.ensureNumber = function(t11) { 13513 return "number" == typeof t11 && !isNaN(t11); 13514 }, i10.prototype.validateValue = function(t11) { 13515 var i11 = Number(t11); 13516 return this.ensureNumber(i11) ? i11 : (this.error = "[CountUp] invalid start or end value: ".concat(t11), null); 13517 }, i10.prototype.resetDuration = function() { 13518 this.startTime = null, this.duration = 1e3 * Number(this.options.duration), this.remaining = this.duration; 13519 }, i10.prototype.parse = function(t11) { 13520 var i11 = function(t12) { 13521 return t12.replace(/([.,' ])/g, "\\$1"); 13522 }, n10 = i11(this.options.separator), s13 = i11(this.options.decimal), a8 = t11.replace(new RegExp(n10, "g"), "").replace(new RegExp(s13, "g"), "."); 13523 return parseFloat(a8); 13524 }, i10; 13525 })(); 13526 } 13527 }); 13528 13529
13529// js/countup.js 13530 var countup_exports = {}; 13531 var init_countup = __esm({ 13532 "js/countup.js"() { 13533 init_countUp_min(); 13534 window.onload = function() { 13535 var countUp2 = new i9("countUp", 2e3); 13536 countUp2.start(); 13537 }; 13538 { 13539 } 13540 } 13541 }); 13542 13543
vendor: 23,297 bytes, lines 13543-13900
13543// node_modules/aos/dist/aos.js 13544 var require_aos = __commonJS({ 13545 "node_modules/aos/dist/aos.js"(exports, module) { 13546 !(function(e11, t11) { 13547 "object" == typeof exports && "object" == typeof module ? module.exports = t11() : "function" == typeof define && define.amd ? define([], t11) : "object" == typeof exports ? exports.AOS = t11() : e11.AOS = t11(); 13548 })(exports, function() { 13549 return (function(e11) { 13550 function t11(o11) { 13551 if (n10[o11]) return n10[o11].exports; 13552 var i10 = n10[o11] = { exports: {}, id: o11, loaded: false }; 13553 return e11[o11].call(i10.exports, i10, i10.exports, t11), i10.loaded = true, i10.exports; 13554 } 13555 var n10 = {}; 13556 return t11.m = e11, t11.c = n10, t11.p = "dist/", t11(0); 13557 })([function(e11, t11, n10) { 13558 "use strict"; 13559 function o11(e12) { 13560 return e12 && e12.__esModule ? e12 : { default: e12 }; 13561 } 13562 var i10 = Object.assign || function(e12) { 13563 for (var t12 = 1; t12 < arguments.length; t12++) { 13564 var n11 = arguments[t12]; 13565 for (var o12 in n11) Object.prototype.hasOwnProperty.call(n11, o12) && (e12[o12] = n11[o12]); 13566 } 13567 return e12; 13568 }, r7 = n10(1), a8 = (o11(r7), n10(6)), u5 = o11(a8), c5 = n10(7), s13 = o11(c5), f3 = n10(8), d3 = o11(f3), l10 = n10(9), p2 = o11(l10), m3 = n10(10), b3 = o11(m3), v3 = n10(11), y3 = o11(v3), g2 = n10(14), h4 = o11(g2), w3 = [], k3 = false, x2 = { offset: 120, delay: 0, easing: "ease", duration: 400, disable: false, once: false, startEvent: "DOMContentLoaded", throttleDelay: 99, debounceDelay: 50, disableMutationObserver: false }, j2 = function() { 13569 var e12 = arguments.length > 0 && void 0 !== arguments[0] && arguments[0]; 13570 if (e12 && (k3 = true), k3) return w3 = (0, y3.default)(w3, x2), (0, b3.default)(w3, x2.once), w3; 13571 }, O2 = function() { 13572 w3 = (0, h4.default)(), j2(); 13573 }, M3 = function() { 13574 w3.forEach(function(e12, t12) { 13575 e12.node.removeAttribute("data-aos"), e12.node.removeAttribute("data-aos-easing"), e12.node.removeAttribute("data-aos-duration"), e12.node.removeAttribute("data-aos-delay"); 13576 }); 13577 }, S = function(e12) { 13578 return e12 === true || "mobile" === e12 && p2.default.mobile() || "phone" === e12 && p2.default.phone() || "tablet" === e12 && p2.default.tablet() || "function" == typeof e12 && e12() === true; 13579 }, _2 = function(e12) { 13580 x2 = i10(x2, e12), w3 = (0, h4.default)(); 13581 var t12 = document.all && !window.atob; 13582 return S(x2.disable) || t12 ? M3() : (x2.disableMutationObserver || d3.default.isSupported() || (console.info('\n aos: MutationObserver is not supported on this browser,\n code mutations observing has been disabled.\n You may have to call "refreshHard()" by yourself.\n '), x2.disableMutationObserver = true), document.querySelector("body").setAttribute("data-aos-easing", x2.easing), document.querySelector("body").setAttribute("data-aos-duration", x2.duration), document.querySelector("body").setAttribute("data-aos-delay", x2.delay), "DOMContentLoaded" === x2.startEvent && ["complete", "interactive"].indexOf(document.readyState) > -1 ? j2(true) : "load" === x2.startEvent ? window.addEventListener(x2.startEvent, function() { 13583 j2(true); 13584 }) : document.addEventListener(x2.startEvent, function() { 13585 j2(true); 13586 }), window.addEventListener("resize", (0, s13.default)(j2, x2.debounceDelay, true)), window.addEventListener("orientationchange", (0, s13.default)(j2, x2.debounceDelay, true)), window.addEventListener("scroll", (0, u5.default)(function() { 13587 (0, b3.default)(w3, x2.once); 13588 }, x2.throttleDelay)), x2.disableMutationObserver || d3.default.ready("[data-aos]", O2), w3); 13589 }; 13590 e11.exports = { init: _2, refresh: j2, refreshHard: O2 }; 13591 }, function(e11, t11) { 13592 }, , , , , function(e11, t11) { 13593 (function(t12) { 13594 "use strict"; 13595 function n10(e12, t13, n11) { 13596 function o12(t14) { 13597 var n12 = b4, o13 = v4; 13598 return b4 = v4 = void 0, k4 = t14, g3 = e12.apply(o13, n12); 13599 } 13600 function r8(e13) { 13601 return k4 = e13, h5 = setTimeout(f4, t13), M3 ? o12(e13) : g3; 13602 } 13603 function a9(e13) { 13604 var n12 = e13 - w4, o13 = e13 - k4, i11 = t13 - n12; 13605 return S ? j2(i11, y4 - o13) : i11; 13606 } 13607 function c6(e13) { 13608 var n12 = e13 - w4, o13 = e13 - k4; 13609 return void 0 === w4 || n12 >= t13 || n12 < 0 || S && o13 >= y4; 13610 } 13611 function f4() { 13612 var e13 = O2(); 13613 return c6(e13) ? d4(e13) : void (h5 = setTimeout(f4, a9(e13))); 13614 } 13615 function d4(e13) { 13616 return h5 = void 0, _2 && b4 ? o12(e13) : (b4 = v4 = void 0, g3); 13617 } 13618 function l11() { 13619 void 0 !== h5 && clearTimeout(h5), k4 = 0, b4 = w4 = v4 = h5 = void 0; 13620 } 13621 function p3() { 13622 return void 0 === h5 ? g3 : d4(O2()); 13623 } 13624 function m4() { 13625 var e13 = O2(), n12 = c6(e13); 13626 if (b4 = arguments, v4 = this, w4 = e13, n12) { 13627 if (void 0 === h5) return r8(w4); 13628 if (S) return h5 = setTimeout(f4, t13), o12(w4); 13629 } 13630 return void 0 === h5 && (h5 = setTimeout(f4, t13)), g3; 13631 } 13632 var b4, v4, y4, g3, h5, w4, k4 = 0, M3 = false, S = false, _2 = true; 13633 if ("function" != typeof e12) throw new TypeError(s13); 13634 return t13 = u5(t13) || 0, i10(n11) && (M3 = !!n11.leading, S = "maxWait" in n11, y4 = S ? x2(u5(n11.maxWait) || 0, t13) : y4, _2 = "trailing" in n11 ? !!n11.trailing : _2), m4.cancel = l11, m4.flush = p3, m4; 13635 } 13636 function o11(e12, t13, o12) { 13637 var r8 = true, a9 = true; 13638 if ("function" != typeof e12) throw new TypeError(s13); 13639 return i10(o12) && (r8 = "leading" in o12 ? !!o12.leading : r8, a9 = "trailing" in o12 ? !!o12.trailing : a9), n10(e12, t13, { leading: r8, maxWait: t13, trailing: a9 }); 13640 } 13641 function i10(e12) { 13642 var t13 = "undefined" == typeof e12 ? "undefined" : c5(e12); 13643 return !!e12 && ("object" == t13 || "function" == t13); 13644 } 13645 function r7(e12) { 13646 return !!e12 && "object" == ("undefined" == typeof e12 ? "undefined" : c5(e12)); 13647 } 13648 function a8(e12) { 13649 return "symbol" == ("undefined" == typeof e12 ? "undefined" : c5(e12)) || r7(e12) && k3.call(e12) == d3; 13650 } 13651 function u5(e12) { 13652 if ("number" == typeof e12) return e12; 13653 if (a8(e12)) return f3; 13654 if (i10(e12)) { 13655 var t13 = "function" == typeof e12.valueOf ? e12.valueOf() : e12; 13656 e12 = i10(t13) ? t13 + "" : t13; 13657 } 13658 if ("string" != typeof e12) return 0 === e12 ? e12 : +e12; 13659 e12 = e12.replace(l10, ""); 13660 var n11 = m3.test(e12); 13661 return n11 || b3.test(e12) ? v3(e12.slice(2), n11 ? 2 : 8) : p2.test(e12) ? f3 : +e12; 13662 } 13663 var c5 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e12) { 13664 return typeof e12; 13665 } : function(e12) { 13666 return e12 && "function" == typeof Symbol && e12.constructor === Symbol && e12 !== Symbol.prototype ? "symbol" : typeof e12; 13667 }, s13 = "Expected a function", f3 = NaN, d3 = "[object Symbol]", l10 = /^\s+|\s+$/g, p2 = /^[-+]0x[0-9a-f]+$/i, m3 = /^0b[01]+$/i, b3 = /^0o[0-7]+$/i, v3 = parseInt, y3 = "object" == ("undefined" == typeof t12 ? "undefined" : c5(t12)) && t12 && t12.Object === Object && t12, g2 = "object" == ("undefined" == typeof self ? "undefined" : c5(self)) && self && self.Object === Object && self, h4 = y3 || g2 || Function("return this")(), w3 = Object.prototype, k3 = w3.toString, x2 = Math.max, j2 = Math.min, O2 = function() { 13668 return h4.Date.now(); 13669 }; 13670 e11.exports = o11; 13671 }).call(t11, /* @__PURE__ */ (function() { 13672 return this; 13673 })()); 13674 }, function(e11, t11) { 13675 (function(t12) { 13676 "use strict"; 13677 function n10(e12, t13, n11) { 13678 function i11(t14) { 13679 var n12 = b4, o12 = v4; 13680 return b4 = v4 = void 0, O2 = t14, g3 = e12.apply(o12, n12); 13681 } 13682 function r8(e13) { 13683 return O2 = e13, h5 = setTimeout(f4, t13), M3 ? i11(e13) : g3; 13684 } 13685 function u6(e13) { 13686 var n12 = e13 - w4, o12 = e13 - O2, i12 = t13 - n12; 13687 return S ? x2(i12, y4 - o12) : i12; 13688 } 13689 function s14(e13) { 13690 var n12 = e13 - w4, o12 = e13 - O2; 13691 return void 0 === w4 || n12 >= t13 || n12 < 0 || S && o12 >= y4; 13692 } 13693 function f4() { 13694 var e13 = j2(); 13695 return s14(e13) ? d4(e13) : void (h5 = setTimeout(f4, u6(e13))); 13696 } 13697 function d4(e13) { 13698 return h5 = void 0, _2 && b4 ? i11(e13) : (b4 = v4 = void 0, g3); 13699 } 13700 function l11() { 13701 void 0 !== h5 && clearTimeout(h5), O2 = 0, b4 = w4 = v4 = h5 = void 0; 13702 } 13703 function p3() { 13704 return void 0 === h5 ? g3 : d4(j2()); 13705 } 13706 function m4() { 13707 var e13 = j2(), n12 = s14(e13); 13708 if (b4 = arguments, v4 = this, w4 = e13, n12) { 13709 if (void 0 === h5) return r8(w4); 13710 if (S) return h5 = setTimeout(f4, t13), i11(w4); 13711 } 13712 return void 0 === h5 && (h5 = setTimeout(f4, t13)), g3; 13713 } 13714 var b4, v4, y4, g3, h5, w4, O2 = 0, M3 = false, S = false, _2 = true; 13715 if ("function" != typeof e12) throw new TypeError(c5); 13716 return t13 = a8(t13) || 0, o11(n11) && (M3 = !!n11.leading, S = "maxWait" in n11, y4 = S ? k3(a8(n11.maxWait) || 0, t13) : y4, _2 = "trailing" in n11 ? !!n11.trailing : _2), m4.cancel = l11, m4.flush = p3, m4; 13717 } 13718 function o11(e12) { 13719 var t13 = "undefined" == typeof e12 ? "undefined" : u5(e12); 13720 return !!e12 && ("object" == t13 || "function" == t13); 13721 } 13722 function i10(e12) { 13723 return !!e12 && "object" == ("undefined" == typeof e12 ? "undefined" : u5(e12)); 13724 } 13725 function r7(e12) { 13726 return "symbol" == ("undefined" == typeof e12 ? "undefined" : u5(e12)) || i10(e12) && w3.call(e12) == f3; 13727 } 13728 function a8(e12) { 13729 if ("number" == typeof e12) return e12; 13730 if (r7(e12)) return s13; 13731 if (o11(e12)) { 13732 var t13 = "function" == typeof e12.valueOf ? e12.valueOf() : e12; 13733 e12 = o11(t13) ? t13 + "" : t13; 13734 } 13735 if ("string" != typeof e12) return 0 === e12 ? e12 : +e12; 13736 e12 = e12.replace(d3, ""); 13737 var n11 = p2.test(e12); 13738 return n11 || m3.test(e12) ? b3(e12.slice(2), n11 ? 2 : 8) : l10.test(e12) ? s13 : +e12; 13739 } 13740 var u5 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e12) { 13741 return typeof e12; 13742 } : function(e12) { 13743 return e12 && "function" == typeof Symbol && e12.constructor === Symbol && e12 !== Symbol.prototype ? "symbol" : typeof e12; 13744 }, c5 = "Expected a function", s13 = NaN, f3 = "[object Symbol]", d3 = /^\s+|\s+$/g, l10 = /^[-+]0x[0-9a-f]+$/i, p2 = /^0b[01]+$/i, m3 = /^0o[0-7]+$/i, b3 = parseInt, v3 = "object" == ("undefined" == typeof t12 ? "undefined" : u5(t12)) && t12 && t12.Object === Object && t12, y3 = "object" == ("undefined" == typeof self ? "undefined" : u5(self)) && self && self.Object === Object && self, g2 = v3 || y3 || Function("return this")(), h4 = Object.prototype, w3 = h4.toString, k3 = Math.max, x2 = Math.min, j2 = function() { 13745 return g2.Date.now(); 13746 }; 13747 e11.exports = n10; 13748 }).call(t11, /* @__PURE__ */ (function() { 13749 return this; 13750 })()); 13751 }, function(e11, t11) { 13752 "use strict"; 13753 function n10(e12) { 13754 var t12 = void 0, o12 = void 0, i11 = void 0; 13755 for (t12 = 0; t12 < e12.length; t12 += 1) { 13756 if (o12 = e12[t12], o12.dataset && o12.dataset.aos) return true; 13757 if (i11 = o12.children && n10(o12.children)) return true; 13758 } 13759 return false; 13760 } 13761 function o11() { 13762 return window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver; 13763 } 13764 function i10() { 13765 return !!o11(); 13766 } 13767 function r7(e12, t12) { 13768 var n11 = window.document, i11 = o11(), r8 = new i11(a8); 13769 u5 = t12, r8.observe(n11.documentElement, { childList: true, subtree: true, removedNodes: true }); 13770 } 13771 function a8(e12) { 13772 e12 && e12.forEach(function(e13) { 13773 var t12 = Array.prototype.slice.call(e13.addedNodes), o12 = Array.prototype.slice.call(e13.removedNodes), i11 = t12.concat(o12); 13774 if (n10(i11)) return u5(); 13775 }); 13776 } 13777 Object.defineProperty(t11, "__esModule", { value: true }); 13778 var u5 = function() { 13779 }; 13780 t11.default = { isSupported: i10, ready: r7 }; 13781 }, function(e11, t11) { 13782 "use strict"; 13783 function n10(e12, t12) { 13784 if (!(e12 instanceof t12)) throw new TypeError("Cannot call a class as a function"); 13785 } 13786 function o11() { 13787 return navigator.userAgent || navigator.vendor || window.opera || ""; 13788 } 13789 Object.defineProperty(t11, "__esModule", { value: true }); 13790 var i10 = /* @__PURE__ */ (function() { 13791 function e12(e13, t12) { 13792 for (var n11 = 0; n11 < t12.length; n11++) { 13793 var o12 = t12[n11]; 13794 o12.enumerable = o12.enumerable || false, o12.configurable = true, "value" in o12 && (o12.writable = true), Object.defineProperty(e13, o12.key, o12); 13795 } 13796 } 13797 return function(t12, n11, o12) { 13798 return n11 && e12(t12.prototype, n11), o12 && e12(t12, o12), t12; 13799 }; 13800 })(), r7 = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i, a8 = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i, u5 = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i, c5 = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i, s13 = (function() { 13801 function e12() { 13802 n10(this, e12); 13803 } 13804 return i10(e12, [{ key: "phone", value: function() { 13805 var e13 = o11(); 13806 return !(!r7.test(e13) && !a8.test(e13.substr(0, 4))); 13807 } }, { key: "mobile", value: function() { 13808 var e13 = o11(); 13809 return !(!u5.test(e13) && !c5.test(e13.substr(0, 4))); 13810 } }, { key: "tablet", value: function() { 13811 return this.mobile() && !this.phone(); 13812 } }]), e12; 13813 })(); 13814 t11.default = new s13(); 13815 }, function(e11, t11) { 13816 "use strict"; 13817 Object.defineProperty(t11, "__esModule", { value: true }); 13818 var n10 = function(e12, t12, n11) { 13819 var o12 = e12.node.getAttribute("data-aos-once"); 13820 t12 > e12.position ? e12.node.classList.add("aos-animate") : "undefined" != typeof o12 && ("false" === o12 || !n11 && "true" !== o12) && e12.node.classList.remove("aos-animate"); 13821 }, o11 = function(e12, t12) { 13822 var o12 = window.pageYOffset, i10 = window.innerHeight; 13823 e12.forEach(function(e13, r7) { 13824 n10(e13, i10 + o12, t12); 13825 }); 13826 }; 13827 t11.default = o11; 13828 }, function(e11, t11, n10) { 13829 "use strict"; 13830 function o11(e12) { 13831 return e12 && e12.__esModule ? e12 : { default: e12 }; 13832 } 13833 Object.defineProperty(t11, "__esModule", { value: true }); 13834 var i10 = n10(12), r7 = o11(i10), a8 = function(e12, t12) { 13835 return e12.forEach(function(e13, n11) { 13836 e13.node.classList.add("aos-init"), e13.position = (0, r7.default)(e13.node, t12.offset); 13837 }), e12; 13838 }; 13839 t11.default = a8; 13840 }, function(e11, t11, n10) { 13841 "use strict"; 13842 function o11(e12) { 13843 return e12 && e12.__esModule ? e12 : { default: e12 }; 13844 } 13845 Object.defineProperty(t11, "__esModule", { value: true }); 13846 var i10 = n10(13), r7 = o11(i10), a8 = function(e12, t12) { 13847 var n11 = 0, o12 = 0, i11 = window.innerHeight, a9 = { offset: e12.getAttribute("data-aos-offset"), anchor: e12.getAttribute("data-aos-anchor"), anchorPlacement: e12.getAttribute("data-aos-anchor-placement") }; 13848 switch (a9.offset && !isNaN(a9.offset) && (o12 = parseInt(a9.offset)), a9.anchor && document.querySelectorAll(a9.anchor) && (e12 = document.querySelectorAll(a9.anchor)[0]), n11 = (0, r7.default)(e12).top, a9.anchorPlacement) { 13849 case "top-bottom": 13850 break; 13851 case "center-bottom": 13852 n11 += e12.offsetHeight / 2; 13853 break; 13854 case "bottom-bottom": 13855 n11 += e12.offsetHeight; 13856 break; 13857 case "top-center": 13858 n11 += i11 / 2; 13859 break; 13860 case "bottom-center": 13861 n11 += i11 / 2 + e12.offsetHeight; 13862 break; 13863 case "center-center": 13864 n11 += i11 / 2 + e12.offsetHeight / 2; 13865 break; 13866 case "top-top": 13867 n11 += i11; 13868 break; 13869 case "bottom-top": 13870 n11 += e12.offsetHeight + i11; 13871 break; 13872 case "center-top": 13873 n11 += e12.offsetHeight / 2 + i11; 13874 } 13875 return a9.anchorPlacement || a9.offset || isNaN(t12) || (o12 = t12), n11 + o12; 13876 }; 13877 t11.default = a8; 13878 }, function(e11, t11) { 13879 "use strict"; 13880 Object.defineProperty(t11, "__esModule", { value: true }); 13881 var n10 = function(e12) { 13882 for (var t12 = 0, n11 = 0; e12 && !isNaN(e12.offsetLeft) && !isNaN(e12.offsetTop); ) t12 += e12.offsetLeft - ("BODY" != e12.tagName ? e12.scrollLeft : 0), n11 += e12.offsetTop - ("BODY" != e12.tagName ? e12.scrollTop : 0), e12 = e12.offsetParent; 13883 return { top: n11, left: t12 }; 13884 }; 13885 t11.default = n10; 13886 }, function(e11, t11) { 13887 "use strict"; 13888 Object.defineProperty(t11, "__esModule", { value: true }); 13889 var n10 = function(e12) { 13890 return e12 = e12 || document.querySelectorAll("[data-aos]"), Array.prototype.map.call(e12, function(e13) { 13891 return { node: e13 }; 13892 }); 13893 }; 13894 t11.default = n10; 13895 }]); 13896 }); 13897 } 13898 }); 13899 13900
vendor: 113 bytes, lines 13900-13906
13900// node_modules/aos/dist/aos.css 13901 var init_aos = __esm({ 13902 "node_modules/aos/dist/aos.css"() { 13903 } 13904 }); 13905 13906
13906// js/aos.js 13907 var aos_exports = {}; 13908 var import_aos; 13909 var init_aos2 = __esm({ 13910 "js/aos.js"() { 13911 import_aos = __toESM(require_aos()); 13912 init_aos(); 13913 import_aos.default.init({ 13914 startEvent: "load" 13915 // initializes AOS when the whole page (images/scripts) is ready 13916 }); 13917 document.querySelectorAll('button[data-bs-toggle="tab"], a[data-bs-toggle="tab"]').forEach((tab) => { 13918 tab.addEventListener("shown.bs.tab", () => { 13919 import_aos.default.refresh(); 13920 }); 13921 }); 13922 } 13923 }); 13924 13925
vendor: 142,103 bytes, lines 13925-17085
13925// node_modules/gsap/gsap-core.js 13926 function _assertThisInitialized(self2) { 13927 if (self2 === void 0) { 13928 throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); 13929 } 13930 return self2; 13931 } 13932 function _inheritsLoose(subClass, superClass) { 13933 subClass.prototype = Object.create(superClass.prototype); 13934 subClass.prototype.constructor = subClass; 13935 subClass.__proto__ = superClass; 13936 } 13937 var _config, _defaults, _suppressOverwrites, _reverting, _context, _bigNum, _tinyNum, _2PI, _HALF_PI, _gsID, _sqrt, _cos, _sin, _isString, _isFunction, _isNumber, _isUndefined, _isObject, _isNotFalse, _windowExists, _isFuncOrString, _isTypedArray, _isArray, _randomExp, _commaDelimExp, _strictNumExp, _numExp, _numWithUnitExp, _complexStringNumExp, _relExp, _delimitedValueExp, _unitExp, _globalTimeline, _win, _coreInitted, _doc, _globals, _installScope, _coreReady, _install, _missingPlugin, _warn, _addGlobal, _emptyFunc, _startAtRevertConfig, _revertConfigNoKill, _revertConfig, _reservedProps, _lazyTweens, _lazyLookup, _lastRenderedFrame, _plugins, _effects, _nextGCFrame, _harnessPlugins, _callbackNames, _harness, _getCache, _getProperty, _forEachName, _round, _roundPrecise, _parseRelative, _arrayContainsAny, _lazyRender, _isRevertWorthy, _lazySafeRender, _numericIfPossible, _passThrough, _setDefaults, _setKeyframeDefaults, _merge, _mergeDeep, _copyExcluding, _inheritDefaults, _arraysMatch, _addLinkedListItem, _removeLinkedListItem, _removeFromParent, _uncache, _recacheAncestors, _rewindStartAt, _hasNoPausedAncestors, _elapsedCycleDuration, _animationCycle, _parentToChildTotalTime, _setEnd, _alignPlayhead, _postAddChecks, _addToTimeline, _scrollTrigger, _attemptInitTween, _parentPlayheadIsBeforeStart, _isFromOrFromStart, _renderZeroDurationTween, _findNextPauseTween, _setDuration, _onUpdateTotalDuration, _zeroPosition, _parsePosition, _createTweenType, _conditionalReturn, _clamp, getUnit, clamp, _slice, _isArrayLike, _flatten, toArray, selector, shuffle, distribute, _roundModifier, snap, random, pipe, unitize, normalize, _wrapArray, wrap, wrapYoyo, _replaceRandom, mapRange, interpolate, _getLabelInDirection, _callback, _interrupt, _quickTween, _registerPluginQueue, _createPlugin, _255, _colorLookup, _hue, splitColor, _colorOrderData, _formatColors, _colorExp, _hslExp, _colorStringFilter, _tickerActive, _ticker, _wake, _easeMap, _customEaseExp, _quotesExp, _parseObjectInString, _valueInParentheses, _configEaseFromString, _invertEase, _propagateYoyoEase, _parseEase, _insertEase, _easeInOutFromOut, _configElastic, _configBack, GSCache, Animation, Timeline, _addComplexStringPropTween, _addPropTween, _processVars, _checkPlugin, _overwritingTween, _forceAllPropTweens, _initTween, _updatePropTweens, _addAliasesToVars, _parseKeyframe, _parseFuncOrString, _staggerTweenProps, _staggerPropsToSkip, Tween, _setterPlain, _setterFunc, _setterFuncWithParam, _setterAttribute, _getSetter, _renderPlain, _renderBoolean, _renderComplexString, _renderPropTweens, _addPluginModifier, _killPropTweensOf, _setterWithModifier, _sortPropTweensByPriority, PropTween, _media, _listeners, _emptyArray, _lastMediaTime, _contextID, _dispatch, _onMediaChange, Context, MatchMedia, _gsap, _getPluginPropTween, _addModifiers, _buildModifierPlugin, gsap, Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ; 13938 var init_gsap_core = __esm({ 13939 "node_modules/gsap/gsap-core.js"() { 13940 _config = { 13941 autoSleep: 120, 13942 force3D: "auto", 13943 nullTargetWarn: 1, 13944 units: { 13945 lineHeight: "" 13946 } 13947 }; 13948 _defaults = { 13949 duration: 0.5, 13950 overwrite: false, 13951 delay: 0 13952 }; 13953 _bigNum = 1e8; 13954 _tinyNum = 1 / _bigNum; 13955 _2PI = Math.PI * 2; 13956 _HALF_PI = _2PI / 4; 13957 _gsID = 0; 13958 _sqrt = Math.sqrt; 13959 _cos = Math.cos; 13960 _sin = Math.sin; 13961 _isString = function _isString2(value) { 13962 return typeof value === "string"; 13963 }; 13964 _isFunction = function _isFunction2(value) { 13965 return typeof value === "function"; 13966 }; 13967 _isNumber = function _isNumber2(value) { 13968 return typeof value === "number"; 13969 }; 13970 _isUndefined = function _isUndefined2(value) { 13971 return typeof value === "undefined"; 13972 }; 13973 _isObject = function _isObject2(value) { 13974 return typeof value === "object"; 13975 }; 13976 _isNotFalse = function _isNotFalse2(value) { 13977 return value !== false; 13978 }; 13979 _windowExists = function _windowExists2() { 13980 return typeof window !== "undefined"; 13981 }; 13982 _isFuncOrString = function _isFuncOrString2(value) { 13983 return _isFunction(value) || _isString(value); 13984 }; 13985 _isTypedArray = typeof ArrayBuffer === "function" && ArrayBuffer.isView || function() { 13986 }; 13987 _isArray = Array.isArray; 13988 _randomExp = /random\([^)]+\)/g; 13989 _commaDelimExp = /,\s*/g; 13990 _strictNumExp = /(?:-?\.?\d|\.)+/gi; 13991 _numExp = /[-+=.]*\d+[.e\-+]*\d*[e\-+]*\d*/g; 13992 _numWithUnitExp = /[-+=.]*\d+[.e-]*\d*[a-z%]*/g; 13993 _complexStringNumExp = /[-+=.]*\d+\.?\d*(?:e-|e\+)?\d*/gi; 13994 _relExp = /[+-]=-?[.\d]+/; 13995 _delimitedValueExp = /[^,'"\[\]\s]+/gi; 13996 _unitExp = /^[+\-=e\s\d]*\d+[.\d]*([a-z]*|%)\s*$/i; 13997 _globals = {}; 13998 _installScope = {}; 13999 _install = function _install2(scope) { 14000 return (_installScope = _merge(scope, _globals)) && gsap; 14001 }; 14002 _missingPlugin = function _missingPlugin2(property, value) { 14003 return console.warn("Invalid property", property, "set to", value, "Missing plugin? gsap.registerPlugin()"); 14004 }; 14005 _warn = function _warn2(message, suppress) { 14006 return !suppress && console.warn(message); 14007 }; 14008 _addGlobal = function _addGlobal2(name, obj) { 14009 return name && (_globals[name] = obj) && _installScope && (_installScope[name] = obj) || _globals; 14010 }; 14011 _emptyFunc = function _emptyFunc2() { 14012 return 0; 14013 }; 14014 _startAtRevertConfig = { 14015 suppressEvents: true, 14016 isStart: true, 14017 kill: false 14018 }; 14019 _revertConfigNoKill = { 14020 suppressEvents: true, 14021 kill: false 14022 }; 14023 _revertConfig = { 14024 suppressEvents: true 14025 }; 14026 _reservedProps = {}; 14027 _lazyTweens = []; 14028 _lazyLookup = {}; 14029 _plugins = {}; 14030 _effects = {}; 14031 _nextGCFrame = 30; 14032 _harnessPlugins = []; 14033 _callbackNames = ""; 14034 _harness = function _harness2(targets) { 14035 var target = targets[0], harnessPlugin, i10; 14036 _isObject(target) || _isFunction(target) || (targets = [targets]); 14037 if (!(harnessPlugin = (target._gsap || {}).harness)) { 14038 i10 = _harnessPlugins.length; 14039 while (i10-- && !_harnessPlugins[i10].targetTest(target)) { 14040 } 14041 harnessPlugin = _harnessPlugins[i10]; 14042 } 14043 i10 = targets.length; 14044 while (i10--) { 14045 targets[i10] && (targets[i10]._gsap || (targets[i10]._gsap = new GSCache(targets[i10], harnessPlugin))) || targets.splice(i10, 1); 14046 } 14047 return targets; 14048 }; 14049 _getCache = function _getCache2(target) { 14050 return target._gsap || _harness(toArray(target))[0]._gsap; 14051 }; 14052 _getProperty = function _getProperty2(target, property, v3) { 14053 return (v3 = target[property]) && _isFunction(v3) ? target[property]() : _isUndefined(v3) && target.getAttribute && target.getAttribute(property) || v3; 14054 }; 14055 _forEachName = function _forEachName2(names, func) { 14056 return (names = names.split(",")).forEach(func) || names; 14057 }; 14058 _round = function _round2(value) { 14059 return Math.round(value * 1e5) / 1e5 || 0; 14060 }; 14061 _roundPrecise = function _roundPrecise2(value) { 14062 return Math.round(value * 1e7) / 1e7 || 0; 14063 }; 14064 _parseRelative = function _parseRelative2(start, value) { 14065 var operator = value.charAt(0), end = parseFloat(value.substr(2)); 14066 start = parseFloat(start); 14067 return operator === "+" ? start + end : operator === "-" ? start - end : operator === "*" ? start * end : start / end; 14068 }; 14069 _arrayContainsAny = function _arrayContainsAny2(toSearch, toFind) { 14070 var l10 = toFind.length, i10 = 0; 14071 for (; toSearch.indexOf(toFind[i10]) < 0 && ++i10 < l10; ) { 14072 } 14073 return i10 < l10; 14074 }; 14075 _lazyRender = function _lazyRender2() { 14076 var l10 = _lazyTweens.length, a8 = _lazyTweens.slice(0), i10, tween; 14077 _lazyLookup = {}; 14078 _lazyTweens.length = 0; 14079 for (i10 = 0; i10 < l10; i10++) { 14080 tween = a8[i10]; 14081 tween && tween._lazy && (tween.render(tween._lazy[0], tween._lazy[1], true)._lazy = 0); 14082 } 14083 }; 14084 _isRevertWorthy = function _isRevertWorthy2(animation) { 14085 return !!(animation._initted || animation._startAt || animation.add); 14086 }; 14087 _lazySafeRender = function _lazySafeRender2(animation, time, suppressEvents, force) { 14088 _lazyTweens.length && !_reverting && _lazyRender(); 14089 animation.render(time, suppressEvents, force || !!(_reverting && time < 0 && _isRevertWorthy(animation))); 14090 _lazyTweens.length && !_reverting && _lazyRender(); 14091 }; 14092 _numericIfPossible = function _numericIfPossible2(value) { 14093 var n10 = parseFloat(value); 14094 return (n10 || n10 === 0) && (value + "").match(_delimitedValueExp).length < 2 ? n10 : _isString(value) ? value.trim() : value; 14095 }; 14096 _passThrough = function _passThrough2(p2) { 14097 return p2; 14098 }; 14099 _setDefaults = function _setDefaults2(obj, defaults2) { 14100 for (var p2 in defaults2) { 14101 p2 in obj || (obj[p2] = defaults2[p2]); 14102 } 14103 return obj; 14104 }; 14105 _setKeyframeDefaults = function _setKeyframeDefaults2(excludeDuration) { 14106 return function(obj, defaults2) { 14107 for (var p2 in defaults2) { 14108 p2 in obj || p2 === "duration" && excludeDuration || p2 === "ease" || (obj[p2] = defaults2[p2]); 14109 } 14110 }; 14111 }; 14112 _merge = function _merge2(base, toMerge) { 14113 for (var p2 in toMerge) { 14114 base[p2] = toMerge[p2]; 14115 } 14116 return base; 14117 }; 14118 _mergeDeep = function _mergeDeep2(base, toMerge) { 14119 for (var p2 in toMerge) { 14120 p2 !== "__proto__" && p2 !== "constructor" && p2 !== "prototype" && (base[p2] = _isObject(toMerge[p2]) ? _mergeDeep2(base[p2] || (base[p2] = {}), toMerge[p2]) : toMerge[p2]); 14121 } 14122 return base; 14123 }; 14124 _copyExcluding = function _copyExcluding2(obj, excluding) { 14125 var copy = {}, p2; 14126 for (p2 in obj) { 14127 p2 in excluding || (copy[p2] = obj[p2]); 14128 } 14129 return copy; 14130 }; 14131 _inheritDefaults = function _inheritDefaults2(vars) { 14132 var parent = vars.parent || _globalTimeline, func = vars.keyframes ? _setKeyframeDefaults(_isArray(vars.keyframes)) : _setDefaults; 14133 if (_isNotFalse(vars.inherit)) { 14134 while (parent) { 14135 func(vars, parent.vars.defaults); 14136 parent = parent.parent || parent._dp; 14137 } 14138 } 14139 return vars; 14140 }; 14141 _arraysMatch = function _arraysMatch2(a1, a22) { 14142 var i10 = a1.length, match = i10 === a22.length; 14143 while (match && i10-- && a1[i10] === a22[i10]) { 14144 } 14145 return i10 < 0; 14146 }; 14147 _addLinkedListItem = function _addLinkedListItem2(parent, child, firstProp, lastProp, sortBy) { 14148 if (firstProp === void 0) { 14149 firstProp = "_first"; 14150 } 14151 if (lastProp === void 0) { 14152 lastProp = "_last"; 14153 } 14154 var prev = parent[lastProp], t11; 14155 if (sortBy) { 14156 t11 = child[sortBy]; 14157 while (prev && prev[sortBy] > t11) { 14158 prev = prev._prev; 14159 } 14160 } 14161 if (prev) { 14162 child._next = prev._next; 14163 prev._next = child; 14164 } else { 14165 child._next = parent[firstProp]; 14166 parent[firstProp] = child; 14167 } 14168 if (child._next) { 14169 child._next._prev = child; 14170 } else { 14171 parent[lastProp] = child; 14172 } 14173 child._prev = prev; 14174 child.parent = child._dp = parent; 14175 return child; 14176 }; 14177 _removeLinkedListItem = function _removeLinkedListItem2(parent, child, firstProp, lastProp) { 14178 if (firstProp === void 0) { 14179 firstProp = "_first"; 14180 } 14181 if (lastProp === void 0) { 14182 lastProp = "_last"; 14183 } 14184 var prev = child._prev, next = child._next; 14185 if (prev) { 14186 prev._next = next; 14187 } else if (parent[firstProp] === child) { 14188 parent[firstProp] = next; 14189 } 14190 if (next) { 14191 next._prev = prev; 14192 } else if (parent[lastProp] === child) { 14193 parent[lastProp] = prev; 14194 } 14195 child._next = child._prev = child.parent = null; 14196 }; 14197 _removeFromParent = function _removeFromParent2(child, onlyIfParentHasAutoRemove) { 14198 child.parent && (!onlyIfParentHasAutoRemove || child.parent.autoRemoveChildren) && child.parent.remove && child.parent.remove(child); 14199 child._act = 0; 14200 }; 14201 _uncache = function _uncache2(animation, child) { 14202 if (animation && (!child || child._end > animation._dur || child._start < 0)) { 14203 var a8 = animation; 14204 while (a8) { 14205 a8._dirty = 1; 14206 a8 = a8.parent; 14207 } 14208 } 14209 return animation; 14210 }; 14211 _recacheAncestors = function _recacheAncestors2(animation) { 14212 var parent = animation.parent; 14213 while (parent && parent.parent) { 14214 parent._dirty = 1; 14215 parent.totalDuration(); 14216 parent = parent.parent; 14217 } 14218 return animation; 14219 }; 14220 _rewindStartAt = function _rewindStartAt2(tween, totalTime, suppressEvents, force) { 14221 return tween._startAt && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : tween.vars.immediateRender && !tween.vars.autoRevert || tween._startAt.render(totalTime, true, force)); 14222 }; 14223 _hasNoPausedAncestors = function _hasNoPausedAncestors2(animation) { 14224 return !animation || animation._ts && _hasNoPausedAncestors2(animation.parent); 14225 }; 14226 _elapsedCycleDuration = function _elapsedCycleDuration2(animation) { 14227 return animation._repeat ? _animationCycle(animation._tTime, animation = animation.duration() + animation._rDelay) * animation : 0; 14228 }; 14229 _animationCycle = function _animationCycle2(tTime, cycleDuration) { 14230 var whole = Math.floor(tTime = _roundPrecise(tTime / cycleDuration)); 14231 return tTime && whole === tTime ? whole - 1 : whole; 14232 }; 14233 _parentToChildTotalTime = function _parentToChildTotalTime2(parentTime, child) { 14234 return (parentTime - child._start) * child._ts + (child._ts >= 0 ? 0 : child._dirty ? child.totalDuration() : child._tDur); 14235 }; 14236 _setEnd = function _setEnd2(animation) { 14237 return animation._end = _roundPrecise(animation._start + (animation._tDur / Math.abs(animation._ts || animation._rts || _tinyNum) || 0)); 14238 }; 14239 _alignPlayhead = function _alignPlayhead2(animation, totalTime) { 14240 var parent = animation._dp; 14241 if (parent && parent.smoothChildTiming && animation._ts) { 14242 animation._start = _roundPrecise(parent._time - (animation._ts > 0 ? totalTime / animation._ts : ((animation._dirty ? animation.totalDuration() : animation._tDur) - totalTime) / -animation._ts)); 14243 _setEnd(animation); 14244 parent._dirty || _uncache(parent, animation); 14245 } 14246 return animation; 14247 }; 14248 _postAddChecks = function _postAddChecks2(timeline2, child) { 14249 var t11; 14250 if (child._time || !child._dur && child._initted || child._start < timeline2._time && (child._dur || !child.add)) { 14251 t11 = _parentToChildTotalTime(timeline2.rawTime(), child); 14252 if (!child._dur || _clamp(0, child.totalDuration(), t11) - child._tTime > _tinyNum) { 14253 child.render(t11, true); 14254 } 14255 } 14256 if (_uncache(timeline2, child)._dp && timeline2._initted && timeline2._time >= timeline2._dur && timeline2._ts) { 14257 if (timeline2._dur < timeline2.duration()) { 14258 t11 = timeline2; 14259 while (t11._dp) { 14260 t11.rawTime() >= 0 && t11.totalTime(t11._tTime); 14261 t11 = t11._dp; 14262 } 14263 } 14264 timeline2._zTime = -_tinyNum; 14265 } 14266 }; 14267 _addToTimeline = function _addToTimeline2(timeline2, child, position, skipChecks) { 14268 child.parent && _removeFromParent(child); 14269 child._start = _roundPrecise((_isNumber(position) ? position : position || timeline2 !== _globalTimeline ? _parsePosition(timeline2, position, child) : timeline2._time) + child._delay); 14270 child._end = _roundPrecise(child._start + (child.totalDuration() / Math.abs(child.timeScale()) || 0)); 14271 _addLinkedListItem(timeline2, child, "_first", "_last", timeline2._sort ? "_start" : 0); 14272 _isFromOrFromStart(child) || (timeline2._recent = child); 14273 skipChecks || _postAddChecks(timeline2, child); 14274 timeline2._ts < 0 && _alignPlayhead(timeline2, timeline2._tTime); 14275 return timeline2; 14276 }; 14277 _scrollTrigger = function _scrollTrigger2(animation, trigger) { 14278 return (_globals.ScrollTrigger || _missingPlugin("scrollTrigger", trigger)) && _globals.ScrollTrigger.create(trigger, animation); 14279 }; 14280 _attemptInitTween = function _attemptInitTween2(tween, time, force, suppressEvents, tTime) { 14281 _initTween(tween, time, tTime); 14282 if (!tween._initted) { 14283 return 1; 14284 } 14285 if (!force && tween._pt && !_reverting && (tween._dur && tween.vars.lazy !== false || !tween._dur && tween.vars.lazy) && _lastRenderedFrame !== _ticker.frame) { 14286 _lazyTweens.push(tween); 14287 tween._lazy = [tTime, suppressEvents]; 14288 return 1; 14289 } 14290 }; 14291 _parentPlayheadIsBeforeStart = function _parentPlayheadIsBeforeStart2(_ref) { 14292 var parent = _ref.parent; 14293 return parent && parent._ts && parent._initted && !parent._lock && (parent.rawTime() < 0 || _parentPlayheadIsBeforeStart2(parent)); 14294 }; 14295 _isFromOrFromStart = function _isFromOrFromStart2(_ref2) { 14296 var data = _ref2.data; 14297 return data === "isFromStart" || data === "isStart"; 14298 }; 14299 _renderZeroDurationTween = function _renderZeroDurationTween2(tween, totalTime, suppressEvents, force) { 14300 var prevRatio = tween.ratio, ratio = totalTime < 0 || !totalTime && (!tween._start && _parentPlayheadIsBeforeStart(tween) && !(!tween._initted && _isFromOrFromStart(tween)) || (tween._ts < 0 || tween._dp._ts < 0) && !_isFromOrFromStart(tween)) ? 0 : 1, repeatDelay = tween._rDelay, tTime = 0, pt, iteration, prevIteration; 14301 if (repeatDelay && tween._repeat) { 14302 tTime = _clamp(0, tween._tDur, totalTime); 14303 iteration = _animationCycle(tTime, repeatDelay); 14304 tween._yoyo && iteration & 1 && (ratio = 1 - ratio); 14305 if (iteration !== _animationCycle(tween._tTime, repeatDelay)) { 14306 prevRatio = 1 - ratio; 14307 tween.vars.repeatRefresh && tween._initted && tween.invalidate(); 14308 } 14309 } 14310 if (ratio !== prevRatio || _reverting || force || tween._zTime === _tinyNum || !totalTime && tween._zTime) { 14311 if (!tween._initted && _attemptInitTween(tween, totalTime, force, suppressEvents, tTime)) { 14312 return; 14313 } 14314 prevIteration = tween._zTime; 14315 tween._zTime = totalTime || (suppressEvents ? _tinyNum : 0); 14316 suppressEvents || (suppressEvents = totalTime && !prevIteration); 14317 tween.ratio = ratio; 14318 tween._from && (ratio = 1 - ratio); 14319 tween._time = 0; 14320 tween._tTime = tTime; 14321 pt = tween._pt; 14322 while (pt) { 14323 pt.r(ratio, pt.d); 14324 pt = pt._next; 14325 } 14326 totalTime < 0 && _rewindStartAt(tween, totalTime, suppressEvents, true); 14327 tween._onUpdate && !suppressEvents && _callback(tween, "onUpdate"); 14328 tTime && tween._repeat && !suppressEvents && tween.parent && _callback(tween, "onRepeat"); 14329 if ((totalTime >= tween._tDur || totalTime < 0) && tween.ratio === ratio) { 14330 ratio && _removeFromParent(tween, 1); 14331 if (!suppressEvents && !_reverting) { 14332 _callback(tween, ratio ? "onComplete" : "onReverseComplete", true); 14333 tween._prom && tween._prom(); 14334 } 14335 } 14336 } else if (!tween._zTime) { 14337 tween._zTime = totalTime; 14338 } 14339 }; 14340 _findNextPauseTween = function _findNextPauseTween2(animation, prevTime, time) { 14341 var child; 14342 if (time > prevTime) { 14343 child = animation._first; 14344 while (child && child._start <= time) { 14345 if (child.data === "isPause" && child._start > prevTime) { 14346 return child; 14347 } 14348 child = child._next; 14349 } 14350 } else { 14351 child = animation._last; 14352 while (child && child._start >= time) { 14353 if (child.data === "isPause" && child._start < prevTime) { 14354 return child; 14355 } 14356 child = child._prev; 14357 } 14358 } 14359 }; 14360 _setDuration = function _setDuration2(animation, duration, skipUncache, leavePlayhead) { 14361 var repeat = animation._repeat, dur = _roundPrecise(duration) || 0, totalProgress = animation._tTime / animation._tDur; 14362 totalProgress && !leavePlayhead && (animation._time *= dur / animation._dur); 14363 animation._dur = dur; 14364 animation._tDur = !repeat ? dur : repeat < 0 ? 1e10 : _roundPrecise(dur * (repeat + 1) + animation._rDelay * repeat); 14365 totalProgress > 0 && !leavePlayhead && _alignPlayhead(animation, animation._tTime = animation._tDur * totalProgress); 14366 animation.parent && _setEnd(animation); 14367 skipUncache || _uncache(animation.parent, animation); 14368 return animation; 14369 }; 14370 _onUpdateTotalDuration = function _onUpdateTotalDuration2(animation) { 14371 return animation instanceof Timeline ? _uncache(animation) : _setDuration(animation, animation._dur); 14372 }; 14373 _zeroPosition = { 14374 _start: 0, 14375 endTime: _emptyFunc, 14376 totalDuration: _emptyFunc 14377 }; 14378 _parsePosition = function _parsePosition2(animation, position, percentAnimation) { 14379 var labels = animation.labels, recent = animation._recent || _zeroPosition, clippedDuration = animation.duration() >= _bigNum ? recent.endTime(false) : animation._dur, i10, offset, isPercent; 14380 if (_isString(position) && (isNaN(position) || position in labels)) { 14381 offset = position.charAt(0); 14382 isPercent = position.substr(-1) === "%"; 14383 i10 = position.indexOf("="); 14384 if (offset === "<" || offset === ">") { 14385 i10 >= 0 && (position = position.replace(/=/, "")); 14386 return (offset === "<" ? recent._start : recent.endTime(recent._repeat >= 0)) + (parseFloat(position.substr(1)) || 0) * (isPercent ? (i10 < 0 ? recent : percentAnimation).totalDuration() / 100 : 1); 14387 } 14388 if (i10 < 0) { 14389 position in labels || (labels[position] = clippedDuration); 14390 return labels[position]; 14391 } 14392 offset = parseFloat(position.charAt(i10 - 1) + position.substr(i10 + 1)); 14393 if (isPercent && percentAnimation) { 14394 offset = offset / 100 * (_isArray(percentAnimation) ? percentAnimation[0] : percentAnimation).totalDuration(); 14395 } 14396 return i10 > 1 ? _parsePosition2(animation, position.substr(0, i10 - 1), percentAnimation) + offset : clippedDuration + offset; 14397 } 14398 return position == null ? clippedDuration : +position; 14399 }; 14400 _createTweenType = function _createTweenType2(type, params, timeline2) { 14401 var isLegacy = _isNumber(params[1]), varsIndex = (isLegacy ? 2 : 1) + (type < 2 ? 0 : 1), vars = params[varsIndex], irVars, parent; 14402 isLegacy && (vars.duration = params[1]); 14403 vars.parent = timeline2; 14404 if (type) { 14405 irVars = vars; 14406 parent = timeline2; 14407 while (parent && !("immediateRender" in irVars)) { 14408 irVars = parent.vars.defaults || {}; 14409 parent = _isNotFalse(parent.vars.inherit) && parent.parent; 14410 } 14411 vars.immediateRender = _isNotFalse(irVars.immediateRender); 14412 type < 2 ? vars.runBackwards = 1 : vars.startAt = params[varsIndex - 1]; 14413 } 14414 return new Tween(params[0], vars, params[varsIndex + 1]); 14415 }; 14416 _conditionalReturn = function _conditionalReturn2(value, func) { 14417 return value || value === 0 ? func(value) : func; 14418 }; 14419 _clamp = function _clamp2(min, max, value) { 14420 return value < min ? min : value > max ? max : value; 14421 }; 14422 getUnit = function getUnit2(value, v3) { 14423 return !_isString(value) || !(v3 = _unitExp.exec(value)) ? "" : v3[1]; 14424 }; 14425 clamp = function clamp2(min, max, value) { 14426 return _conditionalReturn(value, function(v3) { 14427 return _clamp(min, max, v3); 14428 }); 14429 }; 14430 _slice = [].slice; 14431 _isArrayLike = function _isArrayLike2(value, nonEmpty) { 14432 return value && _isObject(value) && "length" in value && (!nonEmpty && !value.length || value.length - 1 in value && _isObject(value[0])) && !value.nodeType && value !== _win; 14433 }; 14434 _flatten = function _flatten2(ar, leaveStrings, accumulator) { 14435 if (accumulator === void 0) { 14436 accumulator = []; 14437 } 14438 return ar.forEach(function(value) { 14439 var _accumulator; 14440 return _isString(value) && !leaveStrings || _isArrayLike(value, 1) ? (_accumulator = accumulator).push.apply(_accumulator, toArray(value)) : accumulator.push(value); 14441 }) || accumulator; 14442 }; 14443 toArray = function toArray2(value, scope, leaveStrings) { 14444 return _context && !scope && _context.selector ? _context.selector(value) : _isString(value) && !leaveStrings && (_coreInitted || !_wake()) ? _slice.call((scope || _doc).querySelectorAll(value), 0) : _isArray(value) ? _flatten(value, leaveStrings) : _isArrayLike(value) ? _slice.call(value, 0) : value ? [value] : []; 14445 }; 14446 selector = function selector2(value) { 14447 value = toArray(value)[0] || _warn("Invalid scope") || {}; 14448 return function(v3) { 14449 var el = value.current || value.nativeElement || value; 14450 return toArray(v3, el.querySelectorAll ? el : el === value ? _warn("Invalid scope") || _doc.createElement("div") : value); 14451 }; 14452 }; 14453 shuffle = function shuffle2(a8) { 14454 return a8.sort(function() { 14455 return 0.5 - Math.random(); 14456 }); 14457 }; 14458 distribute = function distribute2(v3) { 14459 if (_isFunction(v3)) { 14460 return v3; 14461 } 14462 var vars = _isObject(v3) ? v3 : { 14463 each: v3 14464 }, ease = _parseEase(vars.ease), from = vars.from || 0, base = parseFloat(vars.base) || 0, cache = {}, isDecimal = from > 0 && from < 1, ratios = isNaN(from) || isDecimal, axis = vars.axis, ratioX = from, ratioY = from; 14465 if (_isString(from)) { 14466 ratioX = ratioY = { 14467 center: 0.5, 14468 edges: 0.5, 14469 end: 1 14470 }[from] || 0; 14471 } else if (!isDecimal && ratios) { 14472 ratioX = from[0]; 14473 ratioY = from[1]; 14474 } 14475 return function(i10, target, a8) { 14476 var l10 = (a8 || vars).length, distances = cache[l10], originX, originY, x2, y3, d3, j2, max, min, wrapAt; 14477 if (!distances) { 14478 wrapAt = vars.grid === "auto" ? 0 : (vars.grid || [1, _bigNum])[1]; 14479 if (!wrapAt) { 14480 max = -_bigNum; 14481 while (max < (max = a8[wrapAt++].getBoundingClientRect().left) && wrapAt < l10) { 14482 } 14483 wrapAt < l10 && wrapAt--; 14484 } 14485 distances = cache[l10] = []; 14486 originX = ratios ? Math.min(wrapAt, l10) * ratioX - 0.5 : from % wrapAt; 14487 originY = wrapAt === _bigNum ? 0 : ratios ? l10 * ratioY / wrapAt - 0.5 : from / wrapAt | 0; 14488 max = 0; 14489 min = _bigNum; 14490 for (j2 = 0; j2 < l10; j2++) { 14491 x2 = j2 % wrapAt - originX; 14492 y3 = originY - (j2 / wrapAt | 0); 14493 distances[j2] = d3 = !axis ? _sqrt(x2 * x2 + y3 * y3) : Math.abs(axis === "y" ? y3 : x2); 14494 d3 > max && (max = d3); 14495 d3 < min && (min = d3); 14496 } 14497 from === "random" && shuffle(distances); 14498 distances.max = max - min; 14499 distances.min = min; 14500 distances.v = l10 = (parseFloat(vars.amount) || parseFloat(vars.each) * (wrapAt > l10 ? l10 - 1 : !axis ? Math.max(wrapAt, l10 / wrapAt) : axis === "y" ? l10 / wrapAt : wrapAt) || 0) * (from === "edges" ? -1 : 1); 14501 distances.b = l10 < 0 ? base - l10 : base; 14502 distances.u = getUnit(vars.amount || vars.each) || 0; 14503 ease = ease && l10 < 0 ? _invertEase(ease) : ease; 14504 } 14505 l10 = (distances[i10] - distances.min) / distances.max || 0; 14506 return _roundPrecise(distances.b + (ease ? ease(l10) : l10) * distances.v) + distances.u; 14507 }; 14508 }; 14509 _roundModifier = function _roundModifier2(v3) { 14510 var p2 = Math.pow(10, ((v3 + "").split(".")[1] || "").length); 14511 return function(raw) { 14512 var n10 = _roundPrecise(Math.round(parseFloat(raw) / v3) * v3 * p2); 14513 return (n10 - n10 % 1) / p2 + (_isNumber(raw) ? 0 : getUnit(raw)); 14514 }; 14515 }; 14516 snap = function snap2(snapTo, value) { 14517 var isArray2 = _isArray(snapTo), radius, is2D; 14518 if (!isArray2 && _isObject(snapTo)) { 14519 radius = isArray2 = snapTo.radius || _bigNum; 14520 if (snapTo.values) { 14521 snapTo = toArray(snapTo.values); 14522 if (is2D = !_isNumber(snapTo[0])) { 14523 radius *= radius; 14524 } 14525 } else { 14526 snapTo = _roundModifier(snapTo.increment); 14527 } 14528 } 14529 return _conditionalReturn(value, !isArray2 ? _roundModifier(snapTo) : _isFunction(snapTo) ? function(raw) { 14530 is2D = snapTo(raw); 14531 return Math.abs(is2D - raw) <= radius ? is2D : raw; 14532 } : function(raw) { 14533 var x2 = parseFloat(is2D ? raw.x : raw), y3 = parseFloat(is2D ? raw.y : 0), min = _bigNum, closest = 0, i10 = snapTo.length, dx, dy; 14534 while (i10--) { 14535 if (is2D) { 14536 dx = snapTo[i10].x - x2; 14537 dy = snapTo[i10].y - y3; 14538 dx = dx * dx + dy * dy; 14539 } else { 14540 dx = Math.abs(snapTo[i10] - x2); 14541 } 14542 if (dx < min) { 14543 min = dx; 14544 closest = i10; 14545 } 14546 } 14547 closest = !radius || min <= radius ? snapTo[closest] : raw; 14548 return is2D || closest === raw || _isNumber(raw) ? closest : closest + getUnit(raw); 14549 }); 14550 }; 14551 random = function random2(min, max, roundingIncrement, returnFunction) { 14552 return _conditionalReturn(_isArray(min) ? !max : roundingIncrement === true ? !!(roundingIncrement = 0) : !returnFunction, function() { 14553 return _isArray(min) ? min[~~(Math.random() * min.length)] : (roundingIncrement = roundingIncrement || 1e-5) && (returnFunction = roundingIncrement < 1 ? Math.pow(10, (roundingIncrement + "").length - 2) : 1) && Math.floor(Math.round((min - roundingIncrement / 2 + Math.random() * (max - min + roundingIncrement * 0.99)) / roundingIncrement) * roundingIncrement * returnFunction) / returnFunction; 14554 }); 14555 }; 14556 pipe = function pipe2() { 14557 for (var _len = arguments.length, functions = new Array(_len), _key = 0; _key < _len; _key++) { 14558 functions[_key] = arguments[_key]; 14559 } 14560 return function(value) { 14561 return functions.reduce(function(v3, f3) { 14562 return f3(v3); 14563 }, value); 14564 }; 14565 }; 14566 unitize = function unitize2(func, unit) { 14567 return function(value) { 14568 return func(parseFloat(value)) + (unit || getUnit(value)); 14569 }; 14570 }; 14571 normalize = function normalize2(min, max, value) { 14572 return mapRange(min, max, 0, 1, value); 14573 }; 14574 _wrapArray = function _wrapArray2(a8, wrapper, value) { 14575 return _conditionalReturn(value, function(index) { 14576 return a8[~~wrapper(index)]; 14577 }); 14578 }; 14579 wrap = function wrap2(min, max, value) { 14580 var range2 = max - min; 14581 return _isArray(min) ? _wrapArray(min, wrap2(0, min.length), max) : _conditionalReturn(value, function(value2) { 14582 return (range2 + (value2 - min) % range2) % range2 + min; 14583 }); 14584 }; 14585 wrapYoyo = function wrapYoyo2(min, max, value) { 14586 var range2 = max - min, total = range2 * 2; 14587 return _isArray(min) ? _wrapArray(min, wrapYoyo2(0, min.length - 1), max) : _conditionalReturn(value, function(value2) { 14588 value2 = (total + (value2 - min) % total) % total || 0; 14589 return min + (value2 > range2 ? total - value2 : value2); 14590 }); 14591 }; 14592 _replaceRandom = function _replaceRandom2(s13) { 14593 return s13.replace(_randomExp, function(match) { 14594 var arIndex = match.indexOf("[") + 1, values = match.substring(arIndex || 7, arIndex ? match.indexOf("]") : match.length - 1).split(_commaDelimExp); 14595 return random(arIndex ? values : +values[0], arIndex ? 0 : +values[1], +values[2] || 1e-5); 14596 }); 14597 }; 14598 mapRange = function mapRange2(inMin, inMax, outMin, outMax, value) { 14599 var inRange = inMax - inMin, outRange = outMax - outMin; 14600 return _conditionalReturn(value, function(value2) { 14601 return outMin + ((value2 - inMin) / inRange * outRange || 0); 14602 }); 14603 }; 14604 interpolate = function interpolate2(start, end, progress, mutate) { 14605 var func = isNaN(start + end) ? 0 : function(p3) { 14606 return (1 - p3) * start + p3 * end; 14607 }; 14608 if (!func) { 14609 var isString = _isString(start), master = {}, p2, i10, interpolators, l10, il; 14610 progress === true && (mutate = 1) && (progress = null); 14611 if (isString) { 14612 start = { 14613 p: start 14614 }; 14615 end = { 14616 p: end 14617 }; 14618 } else if (_isArray(start) && !_isArray(end)) { 14619 interpolators = []; 14620 l10 = start.length; 14621 il = l10 - 2; 14622 for (i10 = 1; i10 < l10; i10++) { 14623 interpolators.push(interpolate2(start[i10 - 1], start[i10])); 14624 } 14625 l10--; 14626 func = function func2(p3) { 14627 p3 *= l10; 14628 var i11 = Math.min(il, ~~p3); 14629 return interpolators[i11](p3 - i11); 14630 }; 14631 progress = end; 14632 } else if (!mutate) { 14633 start = _merge(_isArray(start) ? [] : {}, start); 14634 } 14635 if (!interpolators) { 14636 for (p2 in end) { 14637 _addPropTween.call(master, start, p2, "get", end[p2]); 14638 } 14639 func = function func2(p3) { 14640 return _renderPropTweens(p3, master) || (isString ? start.p : start); 14641 }; 14642 } 14643 } 14644 return _conditionalReturn(progress, func); 14645 }; 14646 _getLabelInDirection = function _getLabelInDirection2(timeline2, fromTime, backward) { 14647 var labels = timeline2.labels, min = _bigNum, p2, distance, label; 14648 for (p2 in labels) { 14649 distance = labels[p2] - fromTime; 14650 if (distance < 0 === !!backward && distance && min > (distance = Math.abs(distance))) { 14651 label = p2; 14652 min = distance; 14653 } 14654 } 14655 return label; 14656 }; 14657 _callback = function _callback2(animation, type, executeLazyFirst) { 14658 var v3 = animation.vars, callback = v3[type], prevContext = _context, context3 = animation._ctx, params, scope, result; 14659 if (!callback) { 14660 return; 14661 } 14662 params = v3[type + "Params"]; 14663 scope = v3.callbackScope || animation; 14664 executeLazyFirst && _lazyTweens.length && _lazyRender(); 14665 context3 && (_context = context3); 14666 result = params ? callback.apply(scope, params) : callback.call(scope); 14667 _context = prevContext; 14668 return result; 14669 }; 14670 _interrupt = function _interrupt2(animation) { 14671 _removeFromParent(animation); 14672 animation.scrollTrigger && animation.scrollTrigger.kill(!!_reverting); 14673 animation.progress() < 1 && _callback(animation, "onInterrupt"); 14674 return animation; 14675 }; 14676 _registerPluginQueue = []; 14677 _createPlugin = function _createPlugin2(config3) { 14678 if (!config3) return; 14679 config3 = !config3.name && config3["default"] || config3; 14680 if (_windowExists() || config3.headless) { 14681 var name = config3.name, isFunc = _isFunction(config3), Plugin = name && !isFunc && config3.init ? function() { 14682 this._props = []; 14683 } : config3, instanceDefaults = { 14684 init: _emptyFunc, 14685 render: _renderPropTweens, 14686 add: _addPropTween, 14687 kill: _killPropTweensOf, 14688 modifier: _addPluginModifier, 14689 rawVars: 0 14690 }, statics = { 14691 targetTest: 0, 14692 get: 0, 14693 getSetter: _getSetter, 14694 aliases: {}, 14695 register: 0 14696 }; 14697 _wake(); 14698 if (config3 !== Plugin) { 14699 if (_plugins[name]) { 14700 return; 14701 } 14702 _setDefaults(Plugin, _setDefaults(_copyExcluding(config3, instanceDefaults), statics)); 14703 _merge(Plugin.prototype, _merge(instanceDefaults, _copyExcluding(config3, statics))); 14704 _plugins[Plugin.prop = name] = Plugin; 14705 if (config3.targetTest) { 14706 _harnessPlugins.push(Plugin); 14707 _reservedProps[name] = 1; 14708 } 14709 name = (name === "css" ? "CSS" : name.charAt(0).toUpperCase() + name.substr(1)) + "Plugin"; 14710 } 14711 _addGlobal(name, Plugin); 14712 config3.register && config3.register(gsap, Plugin, PropTween); 14713 } else { 14714 _registerPluginQueue.push(config3); 14715 } 14716 }; 14717 _255 = 255; 14718 _colorLookup = { 14719 aqua: [0, _255, _255], 14720 lime: [0, _255, 0], 14721 silver: [192, 192, 192], 14722 black: [0, 0, 0], 14723 maroon: [128, 0, 0], 14724 teal: [0, 128, 128], 14725 blue: [0, 0, _255], 14726 navy: [0, 0, 128], 14727 white: [_255, _255, _255], 14728 olive: [128, 128, 0], 14729 yellow: [_255, _255, 0], 14730 orange: [_255, 165, 0], 14731 gray: [128, 128, 128], 14732 purple: [128, 0, 128], 14733 green: [0, 128, 0], 14734 red: [_255, 0, 0], 14735 pink: [_255, 192, 203], 14736 cyan: [0, _255, _255], 14737 transparent: [_255, _255, _255, 0] 14738 }; 14739 _hue = function _hue2(h4, m1, m22) { 14740 h4 += h4 < 0 ? 1 : h4 > 1 ? -1 : 0; 14741 return (h4 * 6 < 1 ? m1 + (m22 - m1) * h4 * 6 : h4 < 0.5 ? m22 : h4 * 3 < 2 ? m1 + (m22 - m1) * (2 / 3 - h4) * 6 : m1) * _255 + 0.5 | 0; 14742 }; 14743 splitColor = function splitColor2(v3, toHSL, forceAlpha) { 14744 var a8 = !v3 ? _colorLookup.black : _isNumber(v3) ? [v3 >> 16, v3 >> 8 & _255, v3 & _255] : 0, r7, g2, b3, h4, s13, l10, max, min, d3, wasHSL; 14745 if (!a8) { 14746 if (v3.substr(-1) === ",") { 14747 v3 = v3.substr(0, v3.length - 1); 14748 } 14749 if (_colorLookup[v3]) { 14750 a8 = _colorLookup[v3]; 14751 } else if (v3.charAt(0) === "#") { 14752 if (v3.length < 6) { 14753 r7 = v3.charAt(1); 14754 g2 = v3.charAt(2); 14755 b3 = v3.charAt(3); 14756 v3 = "#" + r7 + r7 + g2 + g2 + b3 + b3 + (v3.length === 5 ? v3.charAt(4) + v3.charAt(4) : ""); 14757 } 14758 if (v3.length === 9) { 14759 a8 = parseInt(v3.substr(1, 6), 16); 14760 return [a8 >> 16, a8 >> 8 & _255, a8 & _255, parseInt(v3.substr(7), 16) / 255]; 14761 } 14762 v3 = parseInt(v3.substr(1), 16); 14763 a8 = [v3 >> 16, v3 >> 8 & _255, v3 & _255]; 14764 } else if (v3.substr(0, 3) === "hsl") { 14765 a8 = wasHSL = v3.match(_strictNumExp); 14766 if (!toHSL) { 14767 h4 = +a8[0] % 360 / 360; 14768 s13 = +a8[1] / 100; 14769 l10 = +a8[2] / 100; 14770 g2 = l10 <= 0.5 ? l10 * (s13 + 1) : l10 + s13 - l10 * s13; 14771 r7 = l10 * 2 - g2; 14772 a8.length > 3 && (a8[3] *= 1); 14773 a8[0] = _hue(h4 + 1 / 3, r7, g2); 14774 a8[1] = _hue(h4, r7, g2); 14775 a8[2] = _hue(h4 - 1 / 3, r7, g2); 14776 } else if (~v3.indexOf("=")) { 14777 a8 = v3.match(_numExp); 14778 forceAlpha && a8.length < 4 && (a8[3] = 1); 14779 return a8; 14780 } 14781 } else { 14782 a8 = v3.match(_strictNumExp) || _colorLookup.transparent; 14783 } 14784 a8 = a8.map(Number); 14785 } 14786 if (toHSL && !wasHSL) { 14787 r7 = a8[0] / _255; 14788 g2 = a8[1] / _255; 14789 b3 = a8[2] / _255; 14790 max = Math.max(r7, g2, b3); 14791 min = Math.min(r7, g2, b3); 14792 l10 = (max + min) / 2; 14793 if (max === min) { 14794 h4 = s13 = 0; 14795 } else { 14796 d3 = max - min; 14797 s13 = l10 > 0.5 ? d3 / (2 - max - min) : d3 / (max + min); 14798 h4 = max === r7 ? (g2 - b3) / d3 + (g2 < b3 ? 6 : 0) : max === g2 ? (b3 - r7) / d3 + 2 : (r7 - g2) / d3 + 4; 14799 h4 *= 60; 14800 } 14801 a8[0] = ~~(h4 + 0.5); 14802 a8[1] = ~~(s13 * 100 + 0.5); 14803 a8[2] = ~~(l10 * 100 + 0.5); 14804 } 14805 forceAlpha && a8.length < 4 && (a8[3] = 1); 14806 return a8; 14807 }; 14808 _colorOrderData = function _colorOrderData2(v3) { 14809 var values = [], c5 = [], i10 = -1; 14810 v3.split(_colorExp).forEach(function(v4) { 14811 var a8 = v4.match(_numWithUnitExp) || []; 14812 values.push.apply(values, a8); 14813 c5.push(i10 += a8.length + 1); 14814 }); 14815 values.c = c5; 14816 return values; 14817 }; 14818 _formatColors = function _formatColors2(s13, toHSL, orderMatchData) { 14819 var result = "", colors = (s13 + result).match(_colorExp), type = toHSL ? "hsla(" : "rgba(", i10 = 0, c5, shell, d3, l10; 14820 if (!colors) { 14821 return s13; 14822 } 14823 colors = colors.map(function(color) { 14824 return (color = splitColor(color, toHSL, 1)) && type + (toHSL ? color[0] + "," + color[1] + "%," + color[2] + "%," + color[3] : color.join(",")) + ")"; 14825 }); 14826 if (orderMatchData) { 14827 d3 = _colorOrderData(s13); 14828 c5 = orderMatchData.c; 14829 if (c5.join(result) !== d3.c.join(result)) { 14830 shell = s13.replace(_colorExp, "1").split(_numWithUnitExp); 14831 l10 = shell.length - 1; 14832 for (; i10 < l10; i10++) { 14833 result += shell[i10] + (~c5.indexOf(i10) ? colors.shift() || type + "0,0,0,0)" : (d3.length ? d3 : colors.length ? colors : orderMatchData).shift()); 14834 } 14835 } 14836 } 14837 if (!shell) { 14838 shell = s13.split(_colorExp); 14839 l10 = shell.length - 1; 14840 for (; i10 < l10; i10++) { 14841 result += shell[i10] + colors[i10]; 14842 } 14843 } 14844 return result + shell[l10]; 14845 }; 14846 _colorExp = (function() { 14847 var s13 = "(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#(?:[0-9a-f]{3,4}){1,2}\\b", p2; 14848 for (p2 in _colorLookup) { 14849 s13 += "|" + p2 + "\\b"; 14850 } 14851 return new RegExp(s13 + ")", "gi"); 14852 })(); 14853 _hslExp = /hsl[a]?\(/; 14854 _colorStringFilter = function _colorStringFilter2(a8) { 14855 var combined = a8.join(" "), toHSL; 14856 _colorExp.lastIndex = 0; 14857 if (_colorExp.test(combined)) { 14858 toHSL = _hslExp.test(combined); 14859 a8[1] = _formatColors(a8[1], toHSL); 14860 a8[0] = _formatColors(a8[0], toHSL, _colorOrderData(a8[1])); 14861 return true; 14862 } 14863 }; 14864 _ticker = (function() { 14865 var _getTime3 = Date.now, _lagThreshold = 500, _adjustedLag = 33, _startTime = _getTime3(), _lastUpdate = _startTime, _gap = 1e3 / 240, _nextTime = _gap, _listeners3 = [], _id, _req, _raf, _self, _delta, _i2, _tick = function _tick2(v3) { 14866 var elapsed = _getTime3() - _lastUpdate, manual = v3 === true, overlap, dispatch, time, frame; 14867 (elapsed > _lagThreshold || elapsed < 0) && (_startTime += elapsed - _adjustedLag); 14868 _lastUpdate += elapsed; 14869 time = _lastUpdate - _startTime; 14870 overlap = time - _nextTime; 14871 if (overlap > 0 || manual) { 14872 frame = ++_self.frame; 14873 _delta = time - _self.time * 1e3; 14874 _self.time = time = time / 1e3; 14875 _nextTime += overlap + (overlap >= _gap ? 4 : _gap - overlap); 14876 dispatch = 1; 14877 } 14878 manual || (_id = _req(_tick2)); 14879 if (dispatch) { 14880 for (_i2 = 0; _i2 < _listeners3.length; _i2++) { 14881 _listeners3[_i2](time, _delta, frame, v3); 14882 } 14883 } 14884 }; 14885 _self = { 14886 time: 0, 14887 frame: 0, 14888 tick: function tick() { 14889 _tick(true); 14890 }, 14891 deltaRatio: function deltaRatio(fps) { 14892 return _delta / (1e3 / (fps || 60)); 14893 }, 14894 wake: function wake() { 14895 if (_coreReady) { 14896 if (!_coreInitted && _windowExists()) { 14897 _win = _coreInitted = window; 14898 _doc = _win.document || {}; 14899 _globals.gsap = gsap; 14900 (_win.gsapVersions || (_win.gsapVersions = [])).push(gsap.version); 14901 _install(_installScope || _win.GreenSockGlobals || !_win.gsap && _win || {}); 14902 _registerPluginQueue.forEach(_createPlugin); 14903 } 14904 _raf = typeof requestAnimationFrame !== "undefined" && requestAnimationFrame; 14905 _id && _self.sleep(); 14906 _req = _raf || function(f3) { 14907 return setTimeout(f3, _nextTime - _self.time * 1e3 + 1 | 0); 14908 }; 14909 _tickerActive = 1; 14910 _tick(2); 14911 } 14912 }, 14913 sleep: function sleep() { 14914 (_raf ? cancelAnimationFrame : clearTimeout)(_id); 14915 _tickerActive = 0; 14916 _req = _emptyFunc; 14917 }, 14918 lagSmoothing: function lagSmoothing(threshold, adjustedLag) { 14919 _lagThreshold = threshold || Infinity; 14920 _adjustedLag = Math.min(adjustedLag || 33, _lagThreshold); 14921 }, 14922 fps: function fps(_fps) { 14923 _gap = 1e3 / (_fps || 240); 14924 _nextTime = _self.time * 1e3 + _gap; 14925 }, 14926 add: function add(callback, once, prioritize) { 14927 var func = once ? function(t11, d3, f3, v3) { 14928 callback(t11, d3, f3, v3); 14929 _self.remove(func); 14930 } : callback; 14931 _self.remove(callback); 14932 _listeners3[prioritize ? "unshift" : "push"](func); 14933 _wake(); 14934 return func; 14935 }, 14936 remove: function remove(callback, i10) { 14937 ~(i10 = _listeners3.indexOf(callback)) && _listeners3.splice(i10, 1) && _i2 >= i10 && _i2--; 14938 }, 14939 _listeners: _listeners3 14940 }; 14941 return _self; 14942 })(); 14943 _wake = function _wake2() { 14944 return !_tickerActive && _ticker.wake(); 14945 }; 14946 _easeMap = {}; 14947 _customEaseExp = /^[\d.\-M][\d.\-,\s]/; 14948 _quotesExp = /["']/g; 14949 _parseObjectInString = function _parseObjectInString2(value) { 14950 var obj = {}, split = value.substr(1, value.length - 3).split(":"), key = split[0], i10 = 1, l10 = split.length, index, val, parsedVal; 14951 for (; i10 < l10; i10++) { 14952 val = split[i10]; 14953 index = i10 !== l10 - 1 ? val.lastIndexOf(",") : val.length; 14954 parsedVal = val.substr(0, index); 14955 obj[key] = isNaN(parsedVal) ? parsedVal.replace(_quotesExp, "").trim() : +parsedVal; 14956 key = val.substr(index + 1).trim(); 14957 } 14958 return obj; 14959 }; 14960 _valueInParentheses = function _valueInParentheses2(value) { 14961 var open = value.indexOf("(") + 1, close = value.indexOf(")"), nested = value.indexOf("(", open); 14962 return value.substring(open, ~nested && nested < close ? value.indexOf(")", close + 1) : close); 14963 }; 14964 _configEaseFromString = function _configEaseFromString2(name) { 14965 var split = (name + "").split("("), ease = _easeMap[split[0]]; 14966 return ease && split.length > 1 && ease.config ? ease.config.apply(null, ~name.indexOf("{") ? [_parseObjectInString(split[1])] : _valueInParentheses(name).split(",").map(_numericIfPossible)) : _easeMap._CE && _customEaseExp.test(name) ? _easeMap._CE("", name) : ease; 14967 }; 14968 _invertEase = function _invertEase2(ease) { 14969 return function(p2) { 14970 return 1 - ease(1 - p2); 14971 }; 14972 }; 14973 _propagateYoyoEase = function _propagateYoyoEase2(timeline2, isYoyo) { 14974 var child = timeline2._first, ease; 14975 while (child) { 14976 if (child instanceof Timeline) { 14977 _propagateYoyoEase2(child, isYoyo); 14978 } else if (child.vars.yoyoEase && (!child._yoyo || !child._repeat) && child._yoyo !== isYoyo) { 14979 if (child.timeline) { 14980 _propagateYoyoEase2(child.timeline, isYoyo); 14981 } else { 14982 ease = child._ease; 14983 child._ease = child._yEase; 14984 child._yEase = ease; 14985 child._yoyo = isYoyo; 14986 } 14987 } 14988 child = child._next; 14989 } 14990 }; 14991 _parseEase = function _parseEase2(ease, defaultEase) { 14992 return !ease ? defaultEase : (_isFunction(ease) ? ease : _easeMap[ease] || _configEaseFromString(ease)) || defaultEase; 14993 }; 14994 _insertEase = function _insertEase2(names, easeIn, easeOut, easeInOut) { 14995 if (easeOut === void 0) { 14996 easeOut = function easeOut2(p2) { 14997 return 1 - easeIn(1 - p2); 14998 }; 14999 } 15000 if (easeInOut === void 0) { 15001 easeInOut = function easeInOut2(p2) { 15002 return p2 < 0.5 ? easeIn(p2 * 2) / 2 : 1 - easeIn((1 - p2) * 2) / 2; 15003 }; 15004 } 15005 var ease = { 15006 easeIn, 15007 easeOut, 15008 easeInOut 15009 }, lowercaseName; 15010 _forEachName(names, function(name) { 15011 _easeMap[name] = _globals[name] = ease; 15012 _easeMap[lowercaseName = name.toLowerCase()] = easeOut; 15013 for (var p2 in ease) { 15014 _easeMap[lowercaseName + (p2 === "easeIn" ? ".in" : p2 === "easeOut" ? ".out" : ".inOut")] = _easeMap[name + "." + p2] = ease[p2]; 15015 } 15016 }); 15017 return ease; 15018 }; 15019 _easeInOutFromOut = function _easeInOutFromOut2(easeOut) { 15020 return function(p2) { 15021 return p2 < 0.5 ? (1 - easeOut(1 - p2 * 2)) / 2 : 0.5 + easeOut((p2 - 0.5) * 2) / 2; 15022 }; 15023 }; 15024 _configElastic = function _configElastic2(type, amplitude, period) { 15025 var p1 = amplitude >= 1 ? amplitude : 1, p2 = (period || (type ? 0.3 : 0.45)) / (amplitude < 1 ? amplitude : 1), p3 = p2 / _2PI * (Math.asin(1 / p1) || 0), easeOut = function easeOut2(p4) { 15026 return p4 === 1 ? 1 : p1 * Math.pow(2, -10 * p4) * _sin((p4 - p3) * p2) + 1; 15027 }, ease = type === "out" ? easeOut : type === "in" ? function(p4) { 15028 return 1 - easeOut(1 - p4); 15029 } : _easeInOutFromOut(easeOut); 15030 p2 = _2PI / p2; 15031 ease.config = function(amplitude2, period2) { 15032 return _configElastic2(type, amplitude2, period2); 15033 }; 15034 return ease; 15035 }; 15036 _configBack = function _configBack2(type, overshoot) { 15037 if (overshoot === void 0) { 15038 overshoot = 1.70158; 15039 } 15040 var easeOut = function easeOut2(p2) { 15041 return p2 ? --p2 * p2 * ((overshoot + 1) * p2 + overshoot) + 1 : 0; 15042 }, ease = type === "out" ? easeOut : type === "in" ? function(p2) { 15043 return 1 - easeOut(1 - p2); 15044 } : _easeInOutFromOut(easeOut); 15045 ease.config = function(overshoot2) { 15046 return _configBack2(type, overshoot2); 15047 }; 15048 return ease; 15049 }; 15050 _forEachName("Linear,Quad,Cubic,Quart,Quint,Strong", function(name, i10) { 15051 var power = i10 < 5 ? i10 + 1 : i10; 15052 _insertEase(name + ",Power" + (power - 1), i10 ? function(p2) { 15053 return Math.pow(p2, power); 15054 } : function(p2) { 15055 return p2; 15056 }, function(p2) { 15057 return 1 - Math.pow(1 - p2, power); 15058 }, function(p2) { 15059 return p2 < 0.5 ? Math.pow(p2 * 2, power) / 2 : 1 - Math.pow((1 - p2) * 2, power) / 2; 15060 }); 15061 }); 15062 _easeMap.Linear.easeNone = _easeMap.none = _easeMap.Linear.easeIn; 15063 _insertEase("Elastic", _configElastic("in"), _configElastic("out"), _configElastic()); 15064 (function(n10, c5) { 15065 var n1 = 1 / c5, n22 = 2 * n1, n32 = 2.5 * n1, easeOut = function easeOut2(p2) { 15066 return p2 < n1 ? n10 * p2 * p2 : p2 < n22 ? n10 * Math.pow(p2 - 1.5 / c5, 2) + 0.75 : p2 < n32 ? n10 * (p2 -= 2.25 / c5) * p2 + 0.9375 : n10 * Math.pow(p2 - 2.625 / c5, 2) + 0.984375; 15067 }; 15068 _insertEase("Bounce", function(p2) { 15069 return 1 - easeOut(1 - p2); 15070 }, easeOut); 15071 })(7.5625, 2.75); 15072 _insertEase("Expo", function(p2) { 15073 return Math.pow(2, 10 * (p2 - 1)) * p2 + p2 * p2 * p2 * p2 * p2 * p2 * (1 - p2); 15074 }); 15075 _insertEase("Circ", function(p2) { 15076 return -(_sqrt(1 - p2 * p2) - 1); 15077 }); 15078 _insertEase("Sine", function(p2) { 15079 return p2 === 1 ? 1 : -_cos(p2 * _HALF_PI) + 1; 15080 }); 15081 _insertEase("Back", _configBack("in"), _configBack("out"), _configBack()); 15082 _easeMap.SteppedEase = _easeMap.steps = _globals.SteppedEase = { 15083 config: function config(steps, immediateStart) { 15084 if (steps === void 0) { 15085 steps = 1; 15086 } 15087 var p1 = 1 / steps, p2 = steps + (immediateStart ? 0 : 1), p3 = immediateStart ? 1 : 0, max = 1 - _tinyNum; 15088 return function(p4) { 15089 return ((p2 * _clamp(0, max, p4) | 0) + p3) * p1; 15090 }; 15091 } 15092 }; 15093 _defaults.ease = _easeMap["quad.out"]; 15094 _forEachName("onComplete,onUpdate,onStart,onRepeat,onReverseComplete,onInterrupt", function(name) { 15095 return _callbackNames += name + "," + name + "Params,"; 15096 }); 15097 GSCache = function GSCache2(target, harness) { 15098 this.id = _gsID++; 15099 target._gsap = this; 15100 this.target = target; 15101 this.harness = harness; 15102 this.get = harness ? harness.get : _getProperty; 15103 this.set = harness ? harness.getSetter : _getSetter; 15104 }; 15105 Animation = /* @__PURE__ */ (function() { 15106 function Animation2(vars) { 15107 this.vars = vars; 15108 this._delay = +vars.delay || 0; 15109 if (this._repeat = vars.repeat === Infinity ? -2 : vars.repeat || 0) { 15110 this._rDelay = vars.repeatDelay || 0; 15111 this._yoyo = !!vars.yoyo || !!vars.yoyoEase; 15112 } 15113 this._ts = 1; 15114 _setDuration(this, +vars.duration, 1, 1); 15115 this.data = vars.data; 15116 if (_context) { 15117 this._ctx = _context; 15118 _context.data.push(this); 15119 } 15120 _tickerActive || _ticker.wake(); 15121 } 15122 var _proto = Animation2.prototype; 15123 _proto.delay = function delay(value) { 15124 if (value || value === 0) { 15125 this.parent && this.parent.smoothChildTiming && this.startTime(this._start + value - this._delay); 15126 this._delay = value; 15127 return this; 15128 } 15129 return this._delay; 15130 }; 15131 _proto.duration = function duration(value) { 15132 return arguments.length ? this.totalDuration(this._repeat > 0 ? value + (value + this._rDelay) * this._repeat : value) : this.totalDuration() && this._dur; 15133 }; 15134 _proto.totalDuration = function totalDuration(value) { 15135 if (!arguments.length) { 15136 return this._tDur; 15137 } 15138 this._dirty = 0; 15139 return _setDuration(this, this._repeat < 0 ? value : (value - this._repeat * this._rDelay) / (this._repeat + 1)); 15140 }; 15141 _proto.totalTime = function totalTime(_totalTime, suppressEvents) { 15142 _wake(); 15143 if (!arguments.length) { 15144 return this._tTime; 15145 } 15146 var parent = this._dp; 15147 if (parent && parent.smoothChildTiming && this._ts) { 15148 _alignPlayhead(this, _totalTime); 15149 !parent._dp || parent.parent || _postAddChecks(parent, this); 15150 while (parent && parent.parent) { 15151 if (parent.parent._time !== parent._start + (parent._ts >= 0 ? parent._tTime / parent._ts : (parent.totalDuration() - parent._tTime) / -parent._ts)) { 15152 parent.totalTime(parent._tTime, true); 15153 } 15154 parent = parent.parent; 15155 } 15156 if (!this.parent && this._dp.autoRemoveChildren && (this._ts > 0 && _totalTime < this._tDur || this._ts < 0 && _totalTime > 0 || !this._tDur && !_totalTime)) { 15157 _addToTimeline(this._dp, this, this._start - this._delay); 15158 } 15159 } 15160 if (this._tTime !== _totalTime || !this._dur && !suppressEvents || this._initted && Math.abs(this._zTime) === _tinyNum || !this._initted && this._dur && _totalTime || !_totalTime && !this._initted && (this.add || this._ptLookup)) { 15161 this._ts || (this._pTime = _totalTime); 15162 _lazySafeRender(this, _totalTime, suppressEvents); 15163 } 15164 return this; 15165 }; 15166 _proto.time = function time(value, suppressEvents) { 15167 return arguments.length ? this.totalTime(Math.min(this.totalDuration(), value + _elapsedCycleDuration(this)) % (this._dur + this._rDelay) || (value ? this._dur : 0), suppressEvents) : this._time; 15168 }; 15169 _proto.totalProgress = function totalProgress(value, suppressEvents) { 15170 return arguments.length ? this.totalTime(this.totalDuration() * value, suppressEvents) : this.totalDuration() ? Math.min(1, this._tTime / this._tDur) : this.rawTime() >= 0 && this._initted ? 1 : 0; 15171 }; 15172 _proto.progress = function progress(value, suppressEvents) { 15173 return arguments.length ? this.totalTime(this.duration() * (this._yoyo && !(this.iteration() & 1) ? 1 - value : value) + _elapsedCycleDuration(this), suppressEvents) : this.duration() ? Math.min(1, this._time / this._dur) : this.rawTime() > 0 ? 1 : 0; 15174 }; 15175 _proto.iteration = function iteration(value, suppressEvents) { 15176 var cycleDuration = this.duration() + this._rDelay; 15177 return arguments.length ? this.totalTime(this._time + (value - 1) * cycleDuration, suppressEvents) : this._repeat ? _animationCycle(this._tTime, cycleDuration) + 1 : 1; 15178 }; 15179 _proto.timeScale = function timeScale(value, suppressEvents) { 15180 if (!arguments.length) { 15181 return this._rts === -_tinyNum ? 0 : this._rts; 15182 } 15183 if (this._rts === value) { 15184 return this; 15185 } 15186 var tTime = this.parent && this._ts ? _parentToChildTotalTime(this.parent._time, this) : this._tTime; 15187 this._rts = +value || 0; 15188 this._ts = this._ps || value === -_tinyNum ? 0 : this._rts; 15189 this.totalTime(_clamp(-Math.abs(this._delay), this.totalDuration(), tTime), suppressEvents !== false); 15190 _setEnd(this); 15191 return _recacheAncestors(this); 15192 }; 15193 _proto.paused = function paused(value) { 15194 if (!arguments.length) { 15195 return this._ps; 15196 } 15197 if (this._ps !== value) { 15198 this._ps = value; 15199 if (value) { 15200 this._pTime = this._tTime || Math.max(-this._delay, this.rawTime()); 15201 this._ts = this._act = 0; 15202 } else { 15203 _wake(); 15204 this._ts = this._rts; 15205 this.totalTime(this.parent && !this.parent.smoothChildTiming ? this.rawTime() : this._tTime || this._pTime, this.progress() === 1 && Math.abs(this._zTime) !== _tinyNum && (this._tTime -= _tinyNum)); 15206 } 15207 } 15208 return this; 15209 }; 15210 _proto.startTime = function startTime(value) { 15211 if (arguments.length) { 15212 this._start = _roundPrecise(value); 15213 var parent = this.parent || this._dp; 15214 parent && (parent._sort || !this.parent) && _addToTimeline(parent, this, this._start - this._delay); 15215 return this; 15216 } 15217 return this._start; 15218 }; 15219 _proto.endTime = function endTime(includeRepeats) { 15220 return this._start + (_isNotFalse(includeRepeats) ? this.totalDuration() : this.duration()) / Math.abs(this._ts || 1); 15221 }; 15222 _proto.rawTime = function rawTime(wrapRepeats) { 15223 var parent = this.parent || this._dp; 15224 return !parent ? this._tTime : wrapRepeats && (!this._ts || this._repeat && this._time && this.totalProgress() < 1) ? this._tTime % (this._dur + this._rDelay) : !this._ts ? this._tTime : _parentToChildTotalTime(parent.rawTime(wrapRepeats), this); 15225 }; 15226 _proto.revert = function revert(config3) { 15227 if (config3 === void 0) { 15228 config3 = _revertConfig; 15229 } 15230 var prevIsReverting = _reverting; 15231 _reverting = config3; 15232 if (_isRevertWorthy(this)) { 15233 this.timeline && this.timeline.revert(config3); 15234 this.totalTime(-0.01, config3.suppressEvents); 15235 } 15236 this.data !== "nested" && config3.kill !== false && this.kill(); 15237 _reverting = prevIsReverting; 15238 return this; 15239 }; 15240 _proto.globalTime = function globalTime(rawTime) { 15241 var animation = this, time = arguments.length ? rawTime : animation.rawTime(); 15242 while (animation) { 15243 time = animation._start + time / (Math.abs(animation._ts) || 1); 15244 animation = animation._dp; 15245 } 15246 return !this.parent && this._sat ? this._sat.globalTime(rawTime) : time; 15247 }; 15248 _proto.repeat = function repeat(value) { 15249 if (arguments.length) { 15250 this._repeat = value === Infinity ? -2 : value; 15251 return _onUpdateTotalDuration(this); 15252 } 15253 return this._repeat === -2 ? Infinity : this._repeat; 15254 }; 15255 _proto.repeatDelay = function repeatDelay(value) { 15256 if (arguments.length) { 15257 var time = this._time; 15258 this._rDelay = value; 15259 _onUpdateTotalDuration(this); 15260 return time ? this.time(time) : this; 15261 } 15262 return this._rDelay; 15263 }; 15264 _proto.yoyo = function yoyo(value) { 15265 if (arguments.length) { 15266 this._yoyo = value; 15267 return this; 15268 } 15269 return this._yoyo; 15270 }; 15271 _proto.seek = function seek(position, suppressEvents) { 15272 return this.totalTime(_parsePosition(this, position), _isNotFalse(suppressEvents)); 15273 }; 15274 _proto.restart = function restart(includeDelay, suppressEvents) { 15275 this.play().totalTime(includeDelay ? -this._delay : 0, _isNotFalse(suppressEvents)); 15276 this._dur || (this._zTime = -_tinyNum); 15277 return this; 15278 }; 15279 _proto.play = function play(from, suppressEvents) { 15280 from != null && this.seek(from, suppressEvents); 15281 return this.reversed(false).paused(false); 15282 }; 15283 _proto.reverse = function reverse(from, suppressEvents) { 15284 from != null && this.seek(from || this.totalDuration(), suppressEvents); 15285 return this.reversed(true).paused(false); 15286 }; 15287 _proto.pause = function pause(atTime, suppressEvents) { 15288 atTime != null && this.seek(atTime, suppressEvents); 15289 return this.paused(true); 15290 }; 15291 _proto.resume = function resume() { 15292 return this.paused(false); 15293 }; 15294 _proto.reversed = function reversed(value) { 15295 if (arguments.length) { 15296 !!value !== this.reversed() && this.timeScale(-this._rts || (value ? -_tinyNum : 0)); 15297 return this; 15298 } 15299 return this._rts < 0; 15300 }; 15301 _proto.invalidate = function invalidate() { 15302 this._initted = this._act = 0; 15303 this._zTime = -_tinyNum; 15304 return this; 15305 }; 15306 _proto.isActive = function isActive() { 15307 var parent = this.parent || this._dp, start = this._start, rawTime; 15308 return !!(!parent || this._ts && this._initted && parent.isActive() && (rawTime = parent.rawTime(true)) >= start && rawTime < this.endTime(true) - _tinyNum); 15309 }; 15310 _proto.eventCallback = function eventCallback(type, callback, params) { 15311 var vars = this.vars; 15312 if (arguments.length > 1) { 15313 if (!callback) { 15314 delete vars[type]; 15315 } else { 15316 vars[type] = callback; 15317 params && (vars[type + "Params"] = params); 15318 type === "onUpdate" && (this._onUpdate = callback); 15319 } 15320 return this; 15321 } 15322 return vars[type]; 15323 }; 15324 _proto.then = function then(onFulfilled) { 15325 var self2 = this, prevProm = self2._prom; 15326 return new Promise(function(resolve) { 15327 var f3 = _isFunction(onFulfilled) ? onFulfilled : _passThrough, _resolve = function _resolve2() { 15328 var _then = self2.then; 15329 self2.then = null; 15330 prevProm && prevProm(); 15331 _isFunction(f3) && (f3 = f3(self2)) && (f3.then || f3 === self2) && (self2.then = _then); 15332 resolve(f3); 15333 self2.then = _then; 15334 }; 15335 if (self2._initted && self2.totalProgress() === 1 && self2._ts >= 0 || !self2._tTime && self2._ts < 0) { 15336 _resolve(); 15337 } else { 15338 self2._prom = _resolve; 15339 } 15340 }); 15341 }; 15342 _proto.kill = function kill() { 15343 _interrupt(this); 15344 }; 15345 return Animation2; 15346 })(); 15347 _setDefaults(Animation.prototype, { 15348 _time: 0, 15349 _start: 0, 15350 _end: 0, 15351 _tTime: 0, 15352 _tDur: 0, 15353 _dirty: 0, 15354 _repeat: 0, 15355 _yoyo: false, 15356 parent: null, 15357 _initted: false, 15358 _rDelay: 0, 15359 _ts: 1, 15360 _dp: 0, 15361 ratio: 0, 15362 _zTime: -_tinyNum, 15363 _prom: 0, 15364 _ps: false, 15365 _rts: 1 15366 }); 15367 Timeline = /* @__PURE__ */ (function(_Animation) { 15368 _inheritsLoose(Timeline2, _Animation); 15369 function Timeline2(vars, position) { 15370 var _this; 15371 if (vars === void 0) { 15372 vars = {}; 15373 } 15374 _this = _Animation.call(this, vars) || this; 15375 _this.labels = {}; 15376 _this.smoothChildTiming = !!vars.smoothChildTiming; 15377 _this.autoRemoveChildren = !!vars.autoRemoveChildren; 15378 _this._sort = _isNotFalse(vars.sortChildren); 15379 _globalTimeline && _addToTimeline(vars.parent || _globalTimeline, _assertThisInitialized(_this), position); 15380 vars.reversed && _this.reverse(); 15381 vars.paused && _this.paused(true); 15382 vars.scrollTrigger && _scrollTrigger(_assertThisInitialized(_this), vars.scrollTrigger); 15383 return _this; 15384 } 15385 var _proto2 = Timeline2.prototype; 15386 _proto2.to = function to(targets, vars, position) { 15387 _createTweenType(0, arguments, this); 15388 return this; 15389 }; 15390 _proto2.from = function from(targets, vars, position) { 15391 _createTweenType(1, arguments, this); 15392 return this; 15393 }; 15394 _proto2.fromTo = function fromTo(targets, fromVars, toVars, position) { 15395 _createTweenType(2, arguments, this); 15396 return this; 15397 }; 15398 _proto2.set = function set(targets, vars, position) { 15399 vars.duration = 0; 15400 vars.parent = this; 15401 _inheritDefaults(vars).repeatDelay || (vars.repeat = 0); 15402 vars.immediateRender = !!vars.immediateRender; 15403 new Tween(targets, vars, _parsePosition(this, position), 1); 15404 return this; 15405 }; 15406 _proto2.call = function call(callback, params, position) { 15407 return _addToTimeline(this, Tween.delayedCall(0, callback, params), position); 15408 }; 15409 _proto2.staggerTo = function staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) { 15410 vars.duration = duration; 15411 vars.stagger = vars.stagger || stagger; 15412 vars.onComplete = onCompleteAll; 15413 vars.onCompleteParams = onCompleteAllParams; 15414 vars.parent = this; 15415 new Tween(targets, vars, _parsePosition(this, position)); 15416 return this; 15417 }; 15418 _proto2.staggerFrom = function staggerFrom(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) { 15419 vars.runBackwards = 1; 15420 _inheritDefaults(vars).immediateRender = _isNotFalse(vars.immediateRender); 15421 return this.staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams); 15422 }; 15423 _proto2.staggerFromTo = function staggerFromTo(targets, duration, fromVars, toVars, stagger, position, onCompleteAll, onCompleteAllParams) { 15424 toVars.startAt = fromVars; 15425 _inheritDefaults(toVars).immediateRender = _isNotFalse(toVars.immediateRender); 15426 return this.staggerTo(targets, duration, toVars, stagger, position, onCompleteAll, onCompleteAllParams); 15427 }; 15428 _proto2.render = function render3(totalTime, suppressEvents, force) { 15429 var prevTime = this._time, tDur = this._dirty ? this.totalDuration() : this._tDur, dur = this._dur, tTime = totalTime <= 0 ? 0 : _roundPrecise(totalTime), crossingStart = this._zTime < 0 !== totalTime < 0 && (this._initted || !dur), time, child, next, iteration, cycleDuration, prevPaused, pauseTween, timeScale, prevStart, prevIteration, yoyo, isYoyo; 15430 this !== _globalTimeline && tTime > tDur && totalTime >= 0 && (tTime = tDur); 15431 if (tTime !== this._tTime || force || crossingStart) { 15432 if (prevTime !== this._time && dur) { 15433 tTime += this._time - prevTime; 15434 totalTime += this._time - prevTime; 15435 } 15436 time = tTime; 15437 prevStart = this._start; 15438 timeScale = this._ts; 15439 prevPaused = !timeScale; 15440 if (crossingStart) { 15441 dur || (prevTime = this._zTime); 15442 (totalTime || !suppressEvents) && (this._zTime = totalTime); 15443 } 15444 if (this._repeat) { 15445 yoyo = this._yoyo; 15446 cycleDuration = dur + this._rDelay; 15447 if (this._repeat < -1 && totalTime < 0) { 15448 return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force); 15449 } 15450 time = _roundPrecise(tTime % cycleDuration); 15451 if (tTime === tDur) { 15452 iteration = this._repeat; 15453 time = dur; 15454 } else { 15455 prevIteration = _roundPrecise(tTime / cycleDuration); 15456 iteration = ~~prevIteration; 15457 if (iteration && iteration === prevIteration) { 15458 time = dur; 15459 iteration--; 15460 } 15461 time > dur && (time = dur); 15462 } 15463 prevIteration = _animationCycle(this._tTime, cycleDuration); 15464 !prevTime && this._tTime && prevIteration !== iteration && this._tTime - prevIteration * cycleDuration - this._dur <= 0 && (prevIteration = iteration); 15465 if (yoyo && iteration & 1) { 15466 time = dur - time; 15467 isYoyo = 1; 15468 } 15469 if (iteration !== prevIteration && !this._lock) { 15470 var rewinding = yoyo && prevIteration & 1, doesWrap = rewinding === (yoyo && iteration & 1); 15471 iteration < prevIteration && (rewinding = !rewinding); 15472 prevTime = rewinding ? 0 : tTime % dur ? dur : tTime; 15473 this._lock = 1; 15474 this.render(prevTime || (isYoyo ? 0 : _roundPrecise(iteration * cycleDuration)), suppressEvents, !dur)._lock = 0; 15475 this._tTime = tTime; 15476 !suppressEvents && this.parent && _callback(this, "onRepeat"); 15477 if (this.vars.repeatRefresh && !isYoyo) { 15478 this.invalidate()._lock = 1; 15479 prevIteration = iteration; 15480 } 15481 if (prevTime && prevTime !== this._time || prevPaused !== !this._ts || this.vars.onRepeat && !this.parent && !this._act) { 15482 return this; 15483 } 15484 dur = this._dur; 15485 tDur = this._tDur; 15486 if (doesWrap) { 15487 this._lock = 2; 15488 prevTime = rewinding ? dur : -1e-4; 15489 this.render(prevTime, true); 15490 this.vars.repeatRefresh && !isYoyo && this.invalidate(); 15491 } 15492 this._lock = 0; 15493 if (!this._ts && !prevPaused) { 15494 return this; 15495 } 15496 _propagateYoyoEase(this, isYoyo); 15497 } 15498 } 15499 if (this._hasPause && !this._forcing && this._lock < 2) { 15500 pauseTween = _findNextPauseTween(this, _roundPrecise(prevTime), _roundPrecise(time)); 15501 if (pauseTween) { 15502 tTime -= time - (time = pauseTween._start); 15503 } 15504 } 15505 this._tTime = tTime; 15506 this._time = time; 15507 this._act = !timeScale; 15508 if (!this._initted) { 15509 this._onUpdate = this.vars.onUpdate; 15510 this._initted = 1; 15511 this._zTime = totalTime; 15512 prevTime = 0; 15513 } 15514 if (!prevTime && tTime && dur && !suppressEvents && !prevIteration) { 15515 _callback(this, "onStart"); 15516 if (this._tTime !== tTime) { 15517 return this; 15518 } 15519 } 15520 if (time >= prevTime && totalTime >= 0) { 15521 child = this._first; 15522 while (child) { 15523 next = child._next; 15524 if ((child._act || time >= child._start) && child._ts && pauseTween !== child) { 15525 if (child.parent !== this) { 15526 return this.render(totalTime, suppressEvents, force); 15527 } 15528 child.render(child._ts > 0 ? (time - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (time - child._start) * child._ts, suppressEvents, force); 15529 if (time !== this._time || !this._ts && !prevPaused) { 15530 pauseTween = 0; 15531 next && (tTime += this._zTime = -_tinyNum); 15532 break; 15533 } 15534 } 15535 child = next; 15536 } 15537 } else { 15538 child = this._last; 15539 var adjustedTime = totalTime < 0 ? totalTime : time; 15540 while (child) { 15541 next = child._prev; 15542 if ((child._act || adjustedTime <= child._end) && child._ts && pauseTween !== child) { 15543 if (child.parent !== this) { 15544 return this.render(totalTime, suppressEvents, force); 15545 } 15546 child.render(child._ts > 0 ? (adjustedTime - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (adjustedTime - child._start) * child._ts, suppressEvents, force || _reverting && _isRevertWorthy(child)); 15547 if (time !== this._time || !this._ts && !prevPaused) { 15548 pauseTween = 0; 15549 next && (tTime += this._zTime = adjustedTime ? -_tinyNum : _tinyNum); 15550 break; 15551 } 15552 } 15553 child = next; 15554 } 15555 } 15556 if (pauseTween && !suppressEvents) { 15557 this.pause(); 15558 pauseTween.render(time >= prevTime ? 0 : -_tinyNum)._zTime = time >= prevTime ? 1 : -1; 15559 if (this._ts) { 15560 this._start = prevStart; 15561 _setEnd(this); 15562 return this.render(totalTime, suppressEvents, force); 15563 } 15564 } 15565 this._onUpdate && !suppressEvents && _callback(this, "onUpdate", true); 15566 if (tTime === tDur && this._tTime >= this.totalDuration() || !tTime && prevTime) { 15567 if (prevStart === this._start || Math.abs(timeScale) !== Math.abs(this._ts)) { 15568 if (!this._lock) { 15569 (totalTime || !dur) && (tTime === tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1); 15570 if (!suppressEvents && !(totalTime < 0 && !prevTime) && (tTime || prevTime || !tDur)) { 15571 _callback(this, tTime === tDur && totalTime >= 0 ? "onComplete" : "onReverseComplete", true); 15572 this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom(); 15573 } 15574 } 15575 } 15576 } 15577 } 15578 return this; 15579 }; 15580 _proto2.add = function add(child, position) { 15581 var _this2 = this; 15582 _isNumber(position) || (position = _parsePosition(this, position, child)); 15583 if (!(child instanceof Animation)) { 15584 if (_isArray(child)) { 15585 child.forEach(function(obj) { 15586 return _this2.add(obj, position); 15587 }); 15588 return this; 15589 } 15590 if (_isString(child)) { 15591 return this.addLabel(child, position); 15592 } 15593 if (_isFunction(child)) { 15594 child = Tween.delayedCall(0, child); 15595 } else { 15596 return this; 15597 } 15598 } 15599 return this !== child ? _addToTimeline(this, child, position) : this; 15600 }; 15601 _proto2.getChildren = function getChildren(nested, tweens, timelines, ignoreBeforeTime) { 15602 if (nested === void 0) { 15603 nested = true; 15604 } 15605 if (tweens === void 0) { 15606 tweens = true; 15607 } 15608 if (timelines === void 0) { 15609 timelines = true; 15610 } 15611 if (ignoreBeforeTime === void 0) { 15612 ignoreBeforeTime = -_bigNum; 15613 } 15614 var a8 = [], child = this._first; 15615 while (child) { 15616 if (child._start >= ignoreBeforeTime) { 15617 if (child instanceof Tween) { 15618 tweens && a8.push(child); 15619 } else { 15620 timelines && a8.push(child); 15621 nested && a8.push.apply(a8, child.getChildren(true, tweens, timelines)); 15622 } 15623 } 15624 child = child._next; 15625 } 15626 return a8; 15627 }; 15628 _proto2.getById = function getById2(id) { 15629 var animations = this.getChildren(1, 1, 1), i10 = animations.length; 15630 while (i10--) { 15631 if (animations[i10].vars.id === id) { 15632 return animations[i10]; 15633 } 15634 } 15635 }; 15636 _proto2.remove = function remove(child) { 15637 if (_isString(child)) { 15638 return this.removeLabel(child); 15639 } 15640 if (_isFunction(child)) { 15641 return this.killTweensOf(child); 15642 } 15643 child.parent === this && _removeLinkedListItem(this, child); 15644 if (child === this._recent) { 15645 this._recent = this._last; 15646 } 15647 return _uncache(this); 15648 }; 15649 _proto2.totalTime = function totalTime(_totalTime2, suppressEvents) { 15650 if (!arguments.length) { 15651 return this._tTime; 15652 } 15653 this._forcing = 1; 15654 if (!this._dp && this._ts) { 15655 this._start = _roundPrecise(_ticker.time - (this._ts > 0 ? _totalTime2 / this._ts : (this.totalDuration() - _totalTime2) / -this._ts)); 15656 } 15657 _Animation.prototype.totalTime.call(this, _totalTime2, suppressEvents); 15658 this._forcing = 0; 15659 return this; 15660 }; 15661 _proto2.addLabel = function addLabel(label, position) { 15662 this.labels[label] = _parsePosition(this, position); 15663 return this; 15664 }; 15665 _proto2.removeLabel = function removeLabel(label) { 15666 delete this.labels[label]; 15667 return this; 15668 }; 15669 _proto2.addPause = function addPause(position, callback, params) { 15670 var t11 = Tween.delayedCall(0, callback || _emptyFunc, params); 15671 t11.data = "isPause"; 15672 this._hasPause = 1; 15673 return _addToTimeline(this, t11, _parsePosition(this, position)); 15674 }; 15675 _proto2.removePause = function removePause(position) { 15676 var child = this._first; 15677 position = _parsePosition(this, position); 15678 while (child) { 15679 if (child._start === position && child.data === "isPause") { 15680 _removeFromParent(child); 15681 } 15682 child = child._next; 15683 } 15684 }; 15685 _proto2.killTweensOf = function killTweensOf(targets, props, onlyActive) { 15686 var tweens = this.getTweensOf(targets, onlyActive), i10 = tweens.length; 15687 while (i10--) { 15688 _overwritingTween !== tweens[i10] && tweens[i10].kill(targets, props); 15689 } 15690 return this; 15691 }; 15692 _proto2.getTweensOf = function getTweensOf2(targets, onlyActive) { 15693 var a8 = [], parsedTargets = toArray(targets), child = this._first, isGlobalTime = _isNumber(onlyActive), children; 15694 while (child) { 15695 if (child instanceof Tween) { 15696 if (_arrayContainsAny(child._targets, parsedTargets) && (isGlobalTime ? (!_overwritingTween || child._initted && child._ts) && child.globalTime(0) <= onlyActive && child.globalTime(child.totalDuration()) > onlyActive : !onlyActive || child.isActive())) { 15697 a8.push(child); 15698 } 15699 } else if ((children = child.getTweensOf(parsedTargets, onlyActive)).length) { 15700 a8.push.apply(a8, children); 15701 } 15702 child = child._next; 15703 } 15704 return a8; 15705 }; 15706 _proto2.tweenTo = function tweenTo(position, vars) { 15707 vars = vars || {}; 15708 var tl = this, endTime = _parsePosition(tl, position), _vars = vars, startAt = _vars.startAt, _onStart = _vars.onStart, onStartParams = _vars.onStartParams, immediateRender = _vars.immediateRender, initted, tween = Tween.to(tl, _setDefaults({ 15709 ease: vars.ease || "none", 15710 lazy: false, 15711 immediateRender: false, 15712 time: endTime, 15713 overwrite: "auto", 15714 duration: vars.duration || Math.abs((endTime - (startAt && "time" in startAt ? startAt.time : tl._time)) / tl.timeScale()) || _tinyNum, 15715 onStart: function onStart() { 15716 tl.pause(); 15717 if (!initted) { 15718 var duration = vars.duration || Math.abs((endTime - (startAt && "time" in startAt ? startAt.time : tl._time)) / tl.timeScale()); 15719 tween._dur !== duration && _setDuration(tween, duration, 0, 1).render(tween._time, true, true); 15720 initted = 1; 15721 } 15722 _onStart && _onStart.apply(tween, onStartParams || []); 15723 } 15724 }, vars)); 15725 return immediateRender ? tween.render(0) : tween; 15726 }; 15727 _proto2.tweenFromTo = function tweenFromTo(fromPosition, toPosition, vars) { 15728 return this.tweenTo(toPosition, _setDefaults({ 15729 startAt: { 15730 time: _parsePosition(this, fromPosition) 15731 } 15732 }, vars)); 15733 }; 15734 _proto2.recent = function recent() { 15735 return this._recent; 15736 }; 15737 _proto2.nextLabel = function nextLabel(afterTime) { 15738 if (afterTime === void 0) { 15739 afterTime = this._time; 15740 } 15741 return _getLabelInDirection(this, _parsePosition(this, afterTime)); 15742 }; 15743 _proto2.previousLabel = function previousLabel(beforeTime) { 15744 if (beforeTime === void 0) { 15745 beforeTime = this._time; 15746 } 15747 return _getLabelInDirection(this, _parsePosition(this, beforeTime), 1); 15748 }; 15749 _proto2.currentLabel = function currentLabel(value) { 15750 return arguments.length ? this.seek(value, true) : this.previousLabel(this._time + _tinyNum); 15751 }; 15752 _proto2.shiftChildren = function shiftChildren(amount, adjustLabels, ignoreBeforeTime) { 15753 if (ignoreBeforeTime === void 0) { 15754 ignoreBeforeTime = 0; 15755 } 15756 var child = this._first, labels = this.labels, p2; 15757 amount = _roundPrecise(amount); 15758 while (child) { 15759 if (child._start >= ignoreBeforeTime) { 15760 child._start += amount; 15761 child._end += amount; 15762 } 15763 child = child._next; 15764 } 15765 if (adjustLabels) { 15766 for (p2 in labels) { 15767 if (labels[p2] >= ignoreBeforeTime) { 15768 labels[p2] += amount; 15769 } 15770 } 15771 } 15772 return _uncache(this); 15773 }; 15774 _proto2.invalidate = function invalidate(soft) { 15775 var child = this._first; 15776 this._lock = 0; 15777 while (child) { 15778 child.invalidate(soft); 15779 child = child._next; 15780 } 15781 return _Animation.prototype.invalidate.call(this, soft); 15782 }; 15783 _proto2.clear = function clear(includeLabels) { 15784 if (includeLabels === void 0) { 15785 includeLabels = true; 15786 } 15787 var child = this._first, next; 15788 while (child) { 15789 next = child._next; 15790 this.remove(child); 15791 child = next; 15792 } 15793 this._dp && (this._time = this._tTime = this._pTime = 0); 15794 includeLabels && (this.labels = {}); 15795 return _uncache(this); 15796 }; 15797 _proto2.totalDuration = function totalDuration(value) { 15798 var max = 0, self2 = this, child = self2._last, prevStart = _bigNum, prev, start, parent; 15799 if (arguments.length) { 15800 return self2.timeScale((self2._repeat < 0 ? self2.duration() : self2.totalDuration()) / (self2.reversed() ? -value : value)); 15801 } 15802 if (self2._dirty) { 15803 parent = self2.parent; 15804 while (child) { 15805 prev = child._prev; 15806 child._dirty && child.totalDuration(); 15807 start = child._start; 15808 if (start > prevStart && self2._sort && child._ts && !self2._lock) { 15809 self2._lock = 1; 15810 _addToTimeline(self2, child, start - child._delay, 1)._lock = 0; 15811 } else { 15812 prevStart = start; 15813 } 15814 if (start < 0 && child._ts) { 15815 max -= start; 15816 if (!parent && !self2._dp || parent && parent.smoothChildTiming) { 15817 self2._start += _roundPrecise(start / self2._ts); 15818 self2._time -= start; 15819 self2._tTime -= start; 15820 } 15821 self2.shiftChildren(-start, false, -Infinity); 15822 prevStart = 0; 15823 } 15824 child._end > max && child._ts && (max = child._end); 15825 child = prev; 15826 } 15827 _setDuration(self2, self2 === _globalTimeline && self2._time > max ? self2._time : max, 1, 1); 15828 self2._dirty = 0; 15829 } 15830 return self2._tDur; 15831 }; 15832 Timeline2.updateRoot = function updateRoot(time) { 15833 if (_globalTimeline._ts) { 15834 _lazySafeRender(_globalTimeline, _parentToChildTotalTime(time, _globalTimeline)); 15835 _lastRenderedFrame = _ticker.frame; 15836 } 15837 if (_ticker.frame >= _nextGCFrame) { 15838 _nextGCFrame += _config.autoSleep || 120; 15839 var child = _globalTimeline._first; 15840 if (!child || !child._ts) { 15841 if (_config.autoSleep && _ticker._listeners.length < 2) { 15842 while (child && !child._ts) { 15843 child = child._next; 15844 } 15845 child || _ticker.sleep(); 15846 } 15847 } 15848 } 15849 }; 15850 return Timeline2; 15851 })(Animation); 15852 _setDefaults(Timeline.prototype, { 15853 _lock: 0, 15854 _hasPause: 0, 15855 _forcing: 0 15856 }); 15857 _addComplexStringPropTween = function _addComplexStringPropTween2(target, prop, start, end, setter, stringFilter, funcParam) { 15858 var pt = new PropTween(this._pt, target, prop, 0, 1, _renderComplexString, null, setter), index = 0, matchIndex = 0, result, startNums, color, endNum, chunk, startNum, hasRandom, a8; 15859 pt.b = start; 15860 pt.e = end; 15861 start += ""; 15862 end += ""; 15863 if (hasRandom = ~end.indexOf("random(")) { 15864 end = _replaceRandom(end); 15865 } 15866 if (stringFilter) { 15867 a8 = [start, end]; 15868 stringFilter(a8, target, prop); 15869 start = a8[0]; 15870 end = a8[1]; 15871 } 15872 startNums = start.match(_complexStringNumExp) || []; 15873 while (result = _complexStringNumExp.exec(end)) { 15874 endNum = result[0]; 15875 chunk = end.substring(index, result.index); 15876 if (color) { 15877 color = (color + 1) % 5; 15878 } else if (chunk.substr(-5) === "rgba(") { 15879 color = 1; 15880 } 15881 if (endNum !== startNums[matchIndex++]) { 15882 startNum = parseFloat(startNums[matchIndex - 1]) || 0; 15883 pt._pt = { 15884 _next: pt._pt, 15885 p: chunk || matchIndex === 1 ? chunk : ",", 15886 //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case. 15887 s: startNum, 15888 c: endNum.charAt(1) === "=" ? _parseRelative(startNum, endNum) - startNum : parseFloat(endNum) - startNum, 15889 m: color && color < 4 ? Math.round : 0 15890 }; 15891 index = _complexStringNumExp.lastIndex; 15892 } 15893 } 15894 pt.c = index < end.length ? end.substring(index, end.length) : ""; 15895 pt.fp = funcParam; 15896 if (_relExp.test(end) || hasRandom) { 15897 pt.e = 0; 15898 } 15899 this._pt = pt; 15900 return pt; 15901 }; 15902 _addPropTween = function _addPropTween2(target, prop, start, end, index, targets, modifier, stringFilter, funcParam, optional) { 15903 _isFunction(end) && (end = end(index || 0, target, targets)); 15904 var currentValue = target[prop], parsedStart = start !== "get" ? start : !_isFunction(currentValue) ? currentValue : funcParam ? target[prop.indexOf("set") || !_isFunction(target["get" + prop.substr(3)]) ? prop : "get" + prop.substr(3)](funcParam) : target[prop](), setter = !_isFunction(currentValue) ? _setterPlain : funcParam ? _setterFuncWithParam : _setterFunc, pt; 15905 if (_isString(end)) { 15906 if (~end.indexOf("random(")) { 15907 end = _replaceRandom(end); 15908 } 15909 if (end.charAt(1) === "=") { 15910 pt = _parseRelative(parsedStart, end) + (getUnit(parsedStart) || 0); 15911 if (pt || pt === 0) { 15912 end = pt; 15913 } 15914 } 15915 } 15916 if (!optional || parsedStart !== end || _forceAllPropTweens) { 15917 if (!isNaN(parsedStart * end) && end !== "") { 15918 pt = new PropTween(this._pt, target, prop, +parsedStart || 0, end - (parsedStart || 0), typeof currentValue === "boolean" ? _renderBoolean : _renderPlain, 0, setter); 15919 funcParam && (pt.fp = funcParam); 15920 modifier && pt.modifier(modifier, this, target); 15921 return this._pt = pt; 15922 } 15923 !currentValue && !(prop in target) && _missingPlugin(prop, end); 15924 return _addComplexStringPropTween.call(this, target, prop, parsedStart, end, setter, stringFilter || _config.stringFilter, funcParam); 15925 } 15926 }; 15927 _processVars = function _processVars2(vars, index, target, targets, tween) { 15928 _isFunction(vars) && (vars = _parseFuncOrString(vars, tween, index, target, targets)); 15929 if (!_isObject(vars) || vars.style && vars.nodeType || _isArray(vars) || _isTypedArray(vars)) { 15930 return _isString(vars) ? _parseFuncOrString(vars, tween, index, target, targets) : vars; 15931 } 15932 var copy = {}, p2; 15933 for (p2 in vars) { 15934 copy[p2] = _parseFuncOrString(vars[p2], tween, index, target, targets); 15935 } 15936 return copy; 15937 }; 15938 _checkPlugin = function _checkPlugin2(property, vars, tween, index, target, targets) { 15939 var plugin, pt, ptLookup, i10; 15940 if (_plugins[property] && (plugin = new _plugins[property]()).init(target, plugin.rawVars ? vars[property] : _processVars(vars[property], index, target, targets, tween), tween, index, targets) !== false) { 15941 tween._pt = pt = new PropTween(tween._pt, target, property, 0, 1, plugin.render, plugin, 0, plugin.priority); 15942 if (tween !== _quickTween) { 15943 ptLookup = tween._ptLookup[tween._targets.indexOf(target)]; 15944 i10 = plugin._props.length; 15945 while (i10--) { 15946 ptLookup[plugin._props[i10]] = pt; 15947 } 15948 } 15949 } 15950 return plugin; 15951 }; 15952 _initTween = function _initTween2(tween, time, tTime) { 15953 var vars = tween.vars, ease = vars.ease, startAt = vars.startAt, immediateRender = vars.immediateRender, lazy = vars.lazy, onUpdate = vars.onUpdate, runBackwards = vars.runBackwards, yoyoEase = vars.yoyoEase, keyframes = vars.keyframes, autoRevert = vars.autoRevert, dur = tween._dur, prevStartAt = tween._startAt, targets = tween._targets, parent = tween.parent, fullTargets = parent && parent.data === "nested" ? parent.vars.targets : targets, autoOverwrite = tween._overwrite === "auto" && !_suppressOverwrites, tl = tween.timeline, cleanVars, i10, p2, pt, target, hasPriority, gsData, harness, plugin, ptLookup, index, harnessVars, overwritten; 15954 tl && (!keyframes || !ease) && (ease = "none"); 15955 tween._ease = _parseEase(ease, _defaults.ease); 15956 tween._yEase = yoyoEase ? _invertEase(_parseEase(yoyoEase === true ? ease : yoyoEase, _defaults.ease)) : 0; 15957 if (yoyoEase && tween._yoyo && !tween._repeat) { 15958 yoyoEase = tween._yEase; 15959 tween._yEase = tween._ease; 15960 tween._ease = yoyoEase; 15961 } 15962 tween._from = !tl && !!vars.runBackwards; 15963 if (!tl || keyframes && !vars.stagger) { 15964 harness = targets[0] ? _getCache(targets[0]).harness : 0; 15965 harnessVars = harness && vars[harness.prop]; 15966 cleanVars = _copyExcluding(vars, _reservedProps); 15967 if (prevStartAt) { 15968 prevStartAt._zTime < 0 && prevStartAt.progress(1); 15969 time < 0 && runBackwards && immediateRender && !autoRevert ? prevStartAt.render(-1, true) : prevStartAt.revert(runBackwards && dur ? _revertConfigNoKill : _startAtRevertConfig); 15970 prevStartAt._lazy = 0; 15971 } 15972 if (startAt) { 15973 _removeFromParent(tween._startAt = Tween.set(targets, _setDefaults({ 15974 data: "isStart", 15975 overwrite: false, 15976 parent, 15977 immediateRender: true, 15978 lazy: !prevStartAt && _isNotFalse(lazy), 15979 startAt: null, 15980 delay: 0, 15981 onUpdate: onUpdate && function() { 15982 return _callback(tween, "onUpdate"); 15983 }, 15984 stagger: 0 15985 }, startAt))); 15986 tween._startAt._dp = 0; 15987 tween._startAt._sat = tween; 15988 time < 0 && (_reverting || !immediateRender && !autoRevert) && tween._startAt.revert(_revertConfigNoKill); 15989 if (immediateRender) { 15990 if (dur && time <= 0 && tTime <= 0) { 15991 time && (tween._zTime = time); 15992 return; 15993 } 15994 } 15995 } else if (runBackwards && dur) { 15996 if (!prevStartAt) { 15997 time && (immediateRender = false); 15998 p2 = _setDefaults({ 15999 overwrite: false, 16000 data: "isFromStart", 16001 //we tag the tween with as "isFromStart" so that if [inside a plugin] we need to only do something at the very END of a tween, we have a way of identifying this tween as merely the one that's setting the beginning values for a "from()" tween. For example, clearProps in CSSPlugin should only get applied at the very END of a tween and without this tag, from(...{height:100, clearProps:"height", delay:1}) would wipe the height at the beginning of the tween and after 1 second, it'd kick back in. 16002 lazy: immediateRender && !prevStartAt && _isNotFalse(lazy), 16003 immediateRender, 16004 //zero-duration tweens render immediately by default, but if we're not specifically instructed to render this tween immediately, we should skip this and merely _init() to record the starting values (rendering them immediately would push them to completion which is wasteful in that case - we'd have to render(-1) immediately after) 16005 stagger: 0, 16006 parent 16007 //ensures that nested tweens that had a stagger are handled properly, like gsap.from(".class", {y: gsap.utils.wrap([-100,100]), stagger: 0.5}) 16008 }, cleanVars); 16009 harnessVars && (p2[harness.prop] = harnessVars); 16010 _removeFromParent(tween._startAt = Tween.set(targets, p2)); 16011 tween._startAt._dp = 0; 16012 tween._startAt._sat = tween; 16013 time < 0 && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : tween._startAt.render(-1, true)); 16014 tween._zTime = time; 16015 if (!immediateRender) { 16016 _initTween2(tween._startAt, _tinyNum, _tinyNum); 16017 } else if (!time) { 16018 return; 16019 } 16020 } 16021 } 16022 tween._pt = tween._ptCache = 0; 16023 lazy = dur && _isNotFalse(lazy) || lazy && !dur; 16024 for (i10 = 0; i10 < targets.length; i10++) { 16025 target = targets[i10]; 16026 gsData = target._gsap || _harness(targets)[i10]._gsap; 16027 tween._ptLookup[i10] = ptLookup = {}; 16028 _lazyLookup[gsData.id] && _lazyTweens.length && _lazyRender(); 16029 index = fullTargets === targets ? i10 : fullTargets.indexOf(target); 16030 if (harness && (plugin = new harness()).init(target, harnessVars || cleanVars, tween, index, fullTargets) !== false) { 16031 tween._pt = pt = new PropTween(tween._pt, target, plugin.name, 0, 1, plugin.render, plugin, 0, plugin.priority); 16032 plugin._props.forEach(function(name) { 16033 ptLookup[name] = pt; 16034 }); 16035 plugin.priority && (hasPriority = 1); 16036 } 16037 if (!harness || harnessVars) { 16038 for (p2 in cleanVars) { 16039 if (_plugins[p2] && (plugin = _checkPlugin(p2, cleanVars, tween, index, target, fullTargets))) { 16040 plugin.priority && (hasPriority = 1); 16041 } else { 16042 ptLookup[p2] = pt = _addPropTween.call(tween, target, p2, "get", cleanVars[p2], index, fullTargets, 0, vars.stringFilter); 16043 } 16044 } 16045 } 16046 tween._op && tween._op[i10] && tween.kill(target, tween._op[i10]); 16047 if (autoOverwrite && tween._pt) { 16048 _overwritingTween = tween; 16049 _globalTimeline.killTweensOf(target, ptLookup, tween.globalTime(time)); 16050 overwritten = !tween.parent; 16051 _overwritingTween = 0; 16052 } 16053 tween._pt && lazy && (_lazyLookup[gsData.id] = 1); 16054 } 16055 hasPriority && _sortPropTweensByPriority(tween); 16056 tween._onInit && tween._onInit(tween); 16057 } 16058 tween._onUpdate = onUpdate; 16059 tween._initted = (!tween._op || tween._pt) && !overwritten; 16060 keyframes && time <= 0 && tl.render(_bigNum, true, true); 16061 }; 16062 _updatePropTweens = function _updatePropTweens2(tween, property, value, start, startIsRelative, ratio, time, skipRecursion) { 16063 var ptCache = (tween._pt && tween._ptCache || (tween._ptCache = {}))[property], pt, rootPT, lookup, i10; 16064 if (!ptCache) { 16065 ptCache = tween._ptCache[property] = []; 16066 lookup = tween._ptLookup; 16067 i10 = tween._targets.length; 16068 while (i10--) { 16069 pt = lookup[i10][property]; 16070 if (pt && pt.d && pt.d._pt) { 16071 pt = pt.d._pt; 16072 while (pt && pt.p !== property && pt.fp !== property) { 16073 pt = pt._next; 16074 } 16075 } 16076 if (!pt) { 16077 _forceAllPropTweens = 1; 16078 tween.vars[property] = "+=0"; 16079 _initTween(tween, time); 16080 _forceAllPropTweens = 0; 16081 return skipRecursion ? _warn(property + " not eligible for reset") : 1; 16082 } 16083 ptCache.push(pt); 16084 } 16085 } 16086 i10 = ptCache.length; 16087 while (i10--) { 16088 rootPT = ptCache[i10]; 16089 pt = rootPT._pt || rootPT; 16090 pt.s = (start || start === 0) && !startIsRelative ? start : pt.s + (start || 0) + ratio * pt.c; 16091 pt.c = value - pt.s; 16092 rootPT.e && (rootPT.e = _round(value) + getUnit(rootPT.e)); 16093 rootPT.b && (rootPT.b = pt.s + getUnit(rootPT.b)); 16094 } 16095 }; 16096 _addAliasesToVars = function _addAliasesToVars2(targets, vars) { 16097 var harness = targets[0] ? _getCache(targets[0]).harness : 0, propertyAliases = harness && harness.aliases, copy, p2, i10, aliases; 16098 if (!propertyAliases) { 16099 return vars; 16100 } 16101 copy = _merge({}, vars); 16102 for (p2 in propertyAliases) { 16103 if (p2 in copy) { 16104 aliases = propertyAliases[p2].split(","); 16105 i10 = aliases.length; 16106 while (i10--) { 16107 copy[aliases[i10]] = copy[p2]; 16108 } 16109 } 16110 } 16111 return copy; 16112 }; 16113 _parseKeyframe = function _parseKeyframe2(prop, obj, allProps, easeEach) { 16114 var ease = obj.ease || easeEach || "power1.inOut", p2, a8; 16115 if (_isArray(obj)) { 16116 a8 = allProps[prop] || (allProps[prop] = []); 16117 obj.forEach(function(value, i10) { 16118 return a8.push({ 16119 t: i10 / (obj.length - 1) * 100, 16120 v: value, 16121 e: ease 16122 }); 16123 }); 16124 } else { 16125 for (p2 in obj) { 16126 a8 = allProps[p2] || (allProps[p2] = []); 16127 p2 === "ease" || a8.push({ 16128 t: parseFloat(prop), 16129 v: obj[p2], 16130 e: ease 16131 }); 16132 } 16133 } 16134 }; 16135 _parseFuncOrString = function _parseFuncOrString2(value, tween, i10, target, targets) { 16136 return _isFunction(value) ? value.call(tween, i10, target, targets) : _isString(value) && ~value.indexOf("random(") ? _replaceRandom(value) : value; 16137 }; 16138 _staggerTweenProps = _callbackNames + "repeat,repeatDelay,yoyo,repeatRefresh,yoyoEase,autoRevert"; 16139 _staggerPropsToSkip = {}; 16140 _forEachName(_staggerTweenProps + ",id,stagger,delay,duration,paused,scrollTrigger", function(name) { 16141 return _staggerPropsToSkip[name] = 1; 16142 }); 16143 Tween = /* @__PURE__ */ (function(_Animation2) { 16144 _inheritsLoose(Tween2, _Animation2); 16145 function Tween2(targets, vars, position, skipInherit) { 16146 var _this3; 16147 if (typeof vars === "number") { 16148 position.duration = vars; 16149 vars = position; 16150 position = null; 16151 } 16152 _this3 = _Animation2.call(this, skipInherit ? vars : _inheritDefaults(vars)) || this; 16153 var _this3$vars = _this3.vars, duration = _this3$vars.duration, delay = _this3$vars.delay, immediateRender = _this3$vars.immediateRender, stagger = _this3$vars.stagger, overwrite = _this3$vars.overwrite, keyframes = _this3$vars.keyframes, defaults2 = _this3$vars.defaults, scrollTrigger = _this3$vars.scrollTrigger, yoyoEase = _this3$vars.yoyoEase, parent = vars.parent || _globalTimeline, parsedTargets = (_isArray(targets) || _isTypedArray(targets) ? _isNumber(targets[0]) : "length" in vars) ? [targets] : toArray(targets), tl, i10, copy, l10, p2, curTarget, staggerFunc, staggerVarsToMerge; 16154 _this3._targets = parsedTargets.length ? _harness(parsedTargets) : _warn("GSAP target " + targets + " not found. https://gsap.com", !_config.nullTargetWarn) || []; 16155 _this3._ptLookup = []; 16156 _this3._overwrite = overwrite; 16157 if (keyframes || stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) { 16158 vars = _this3.vars; 16159 tl = _this3.timeline = new Timeline({ 16160 data: "nested", 16161 defaults: defaults2 || {}, 16162 targets: parent && parent.data === "nested" ? parent.vars.targets : parsedTargets 16163 }); 16164 tl.kill(); 16165 tl.parent = tl._dp = _assertThisInitialized(_this3); 16166 tl._start = 0; 16167 if (stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) { 16168 l10 = parsedTargets.length; 16169 staggerFunc = stagger && distribute(stagger); 16170 if (_isObject(stagger)) { 16171 for (p2 in stagger) { 16172 if (~_staggerTweenProps.indexOf(p2)) { 16173 staggerVarsToMerge || (staggerVarsToMerge = {}); 16174 staggerVarsToMerge[p2] = stagger[p2]; 16175 } 16176 } 16177 } 16178 for (i10 = 0; i10 < l10; i10++) { 16179 copy = _copyExcluding(vars, _staggerPropsToSkip); 16180 copy.stagger = 0; 16181 yoyoEase && (copy.yoyoEase = yoyoEase); 16182 staggerVarsToMerge && _merge(copy, staggerVarsToMerge); 16183 curTarget = parsedTargets[i10]; 16184 copy.duration = +_parseFuncOrString(duration, _assertThisInitialized(_this3), i10, curTarget, parsedTargets); 16185 copy.delay = (+_parseFuncOrString(delay, _assertThisInitialized(_this3), i10, curTarget, parsedTargets) || 0) - _this3._delay; 16186 if (!stagger && l10 === 1 && copy.delay) { 16187 _this3._delay = delay = copy.delay; 16188 _this3._start += delay; 16189 copy.delay = 0; 16190 } 16191 tl.to(curTarget, copy, staggerFunc ? staggerFunc(i10, curTarget, parsedTargets) : 0); 16192 tl._ease = _easeMap.none; 16193 } 16194 tl.duration() ? duration = delay = 0 : _this3.timeline = 0; 16195 } else if (keyframes) { 16196 _inheritDefaults(_setDefaults(tl.vars.defaults, { 16197 ease: "none" 16198 })); 16199 tl._ease = _parseEase(keyframes.ease || vars.ease || "none"); 16200 var time = 0, a8, kf, v3; 16201 if (_isArray(keyframes)) { 16202 keyframes.forEach(function(frame) { 16203 return tl.to(parsedTargets, frame, ">"); 16204 }); 16205 tl.duration(); 16206 } else { 16207 copy = {}; 16208 for (p2 in keyframes) { 16209 p2 === "ease" || p2 === "easeEach" || _parseKeyframe(p2, keyframes[p2], copy, keyframes.easeEach); 16210 } 16211 for (p2 in copy) { 16212 a8 = copy[p2].sort(function(a9, b3) { 16213 return a9.t - b3.t; 16214 }); 16215 time = 0; 16216 for (i10 = 0; i10 < a8.length; i10++) { 16217 kf = a8[i10]; 16218 v3 = { 16219 ease: kf.e, 16220 duration: (kf.t - (i10 ? a8[i10 - 1].t : 0)) / 100 * duration 16221 }; 16222 v3[p2] = kf.v; 16223 tl.to(parsedTargets, v3, time); 16224 time += v3.duration; 16225 } 16226 } 16227 tl.duration() < duration && tl.to({}, { 16228 duration: duration - tl.duration() 16229 }); 16230 } 16231 } 16232 duration || _this3.duration(duration = tl.duration()); 16233 } else { 16234 _this3.timeline = 0; 16235 } 16236 if (overwrite === true && !_suppressOverwrites) { 16237 _overwritingTween = _assertThisInitialized(_this3); 16238 _globalTimeline.killTweensOf(parsedTargets); 16239 _overwritingTween = 0; 16240 } 16241 _addToTimeline(parent, _assertThisInitialized(_this3), position); 16242 vars.reversed && _this3.reverse(); 16243 vars.paused && _this3.paused(true); 16244 if (immediateRender || !duration && !keyframes && _this3._start === _roundPrecise(parent._time) && _isNotFalse(immediateRender) && _hasNoPausedAncestors(_assertThisInitialized(_this3)) && parent.data !== "nested") { 16245 _this3._tTime = -_tinyNum; 16246 _this3.render(Math.max(0, -delay) || 0); 16247 } 16248 scrollTrigger && _scrollTrigger(_assertThisInitialized(_this3), scrollTrigger); 16249 return _this3; 16250 } 16251 var _proto3 = Tween2.prototype; 16252 _proto3.render = function render3(totalTime, suppressEvents, force) { 16253 var prevTime = this._time, tDur = this._tDur, dur = this._dur, isNegative = totalTime < 0, tTime = totalTime > tDur - _tinyNum && !isNegative ? tDur : totalTime < _tinyNum ? 0 : totalTime, time, pt, iteration, cycleDuration, prevIteration, isYoyo, ratio, timeline2, yoyoEase; 16254 if (!dur) { 16255 _renderZeroDurationTween(this, totalTime, suppressEvents, force); 16256 } else if (tTime !== this._tTime || !totalTime || force || !this._initted && this._tTime || this._startAt && this._zTime < 0 !== isNegative || this._lazy) { 16257 time = tTime; 16258 timeline2 = this.timeline; 16259 if (this._repeat) { 16260 cycleDuration = dur + this._rDelay; 16261 if (this._repeat < -1 && isNegative) { 16262 return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force); 16263 } 16264 time = _roundPrecise(tTime % cycleDuration); 16265 if (tTime === tDur) { 16266 iteration = this._repeat; 16267 time = dur; 16268 } else { 16269 prevIteration = _roundPrecise(tTime / cycleDuration); 16270 iteration = ~~prevIteration; 16271 if (iteration && iteration === prevIteration) { 16272 time = dur; 16273 iteration--; 16274 } else if (time > dur) { 16275 time = dur; 16276 } 16277 } 16278 isYoyo = this._yoyo && iteration & 1; 16279 if (isYoyo) { 16280 yoyoEase = this._yEase; 16281 time = dur - time; 16282 } 16283 prevIteration = _animationCycle(this._tTime, cycleDuration); 16284 if (time === prevTime && !force && this._initted && iteration === prevIteration) { 16285 this._tTime = tTime; 16286 return this; 16287 } 16288 if (iteration !== prevIteration) { 16289 timeline2 && this._yEase && _propagateYoyoEase(timeline2, isYoyo); 16290 if (this.vars.repeatRefresh && !isYoyo && !this._lock && time !== cycleDuration && this._initted) { 16291 this._lock = force = 1; 16292 this.render(_roundPrecise(cycleDuration * iteration), true).invalidate()._lock = 0; 16293 } 16294 } 16295 } 16296 if (!this._initted) { 16297 if (_attemptInitTween(this, isNegative ? totalTime : time, force, suppressEvents, tTime)) { 16298 this._tTime = 0; 16299 return this; 16300 } 16301 if (prevTime !== this._time && !(force && this.vars.repeatRefresh && iteration !== prevIteration)) { 16302 return this; 16303 } 16304 if (dur !== this._dur) { 16305 return this.render(totalTime, suppressEvents, force); 16306 } 16307 } 16308 this._tTime = tTime; 16309 this._time = time; 16310 if (!this._act && this._ts) { 16311 this._act = 1; 16312 this._lazy = 0; 16313 } 16314 this.ratio = ratio = (yoyoEase || this._ease)(time / dur); 16315 if (this._from) { 16316 this.ratio = ratio = 1 - ratio; 16317 } 16318 if (!prevTime && tTime && !suppressEvents && !prevIteration) { 16319 _callback(this, "onStart"); 16320 if (this._tTime !== tTime) { 16321 return this; 16322 } 16323 } 16324 pt = this._pt; 16325 while (pt) { 16326 pt.r(ratio, pt.d); 16327 pt = pt._next; 16328 } 16329 timeline2 && timeline2.render(totalTime < 0 ? totalTime : timeline2._dur * timeline2._ease(time / this._dur), suppressEvents, force) || this._startAt && (this._zTime = totalTime); 16330 if (this._onUpdate && !suppressEvents) { 16331 isNegative && _rewindStartAt(this, totalTime, suppressEvents, force); 16332 _callback(this, "onUpdate"); 16333 } 16334 this._repeat && iteration !== prevIteration && this.vars.onRepeat && !suppressEvents && this.parent && _callback(this, "onRepeat"); 16335 if ((tTime === this._tDur || !tTime) && this._tTime === tTime) { 16336 isNegative && !this._onUpdate && _rewindStartAt(this, totalTime, true, true); 16337 (totalTime || !dur) && (tTime === this._tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1); 16338 if (!suppressEvents && !(isNegative && !prevTime) && (tTime || prevTime || isYoyo)) { 16339 _callback(this, tTime === tDur ? "onComplete" : "onReverseComplete", true); 16340 this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom(); 16341 } 16342 } 16343 } 16344 return this; 16345 }; 16346 _proto3.targets = function targets() { 16347 return this._targets; 16348 }; 16349 _proto3.invalidate = function invalidate(soft) { 16350 (!soft || !this.vars.runBackwards) && (this._startAt = 0); 16351 this._pt = this._op = this._onUpdate = this._lazy = this.ratio = 0; 16352 this._ptLookup = []; 16353 this.timeline && this.timeline.invalidate(soft); 16354 return _Animation2.prototype.invalidate.call(this, soft); 16355 }; 16356 _proto3.resetTo = function resetTo(property, value, start, startIsRelative, skipRecursion) { 16357 _tickerActive || _ticker.wake(); 16358 this._ts || this.play(); 16359 var time = Math.min(this._dur, (this._dp._time - this._start) * this._ts), ratio; 16360 this._initted || _initTween(this, time); 16361 ratio = this._ease(time / this._dur); 16362 if (_updatePropTweens(this, property, value, start, startIsRelative, ratio, time, skipRecursion)) { 16363 return this.resetTo(property, value, start, startIsRelative, 1); 16364 } 16365 _alignPlayhead(this, 0); 16366 this.parent || _addLinkedListItem(this._dp, this, "_first", "_last", this._dp._sort ? "_start" : 0); 16367 return this.render(0); 16368 }; 16369 _proto3.kill = function kill(targets, vars) { 16370 if (vars === void 0) { 16371 vars = "all"; 16372 } 16373 if (!targets && (!vars || vars === "all")) { 16374 this._lazy = this._pt = 0; 16375 this.parent ? _interrupt(this) : this.scrollTrigger && this.scrollTrigger.kill(!!_reverting); 16376 return this; 16377 } 16378 if (this.timeline) { 16379 var tDur = this.timeline.totalDuration(); 16380 this.timeline.killTweensOf(targets, vars, _overwritingTween && _overwritingTween.vars.overwrite !== true)._first || _interrupt(this); 16381 this.parent && tDur !== this.timeline.totalDuration() && _setDuration(this, this._dur * this.timeline._tDur / tDur, 0, 1); 16382 return this; 16383 } 16384 var parsedTargets = this._targets, killingTargets = targets ? toArray(targets) : parsedTargets, propTweenLookup = this._ptLookup, firstPT = this._pt, overwrittenProps, curLookup, curOverwriteProps, props, p2, pt, i10; 16385 if ((!vars || vars === "all") && _arraysMatch(parsedTargets, killingTargets)) { 16386 vars === "all" && (this._pt = 0); 16387 return _interrupt(this); 16388 } 16389 overwrittenProps = this._op = this._op || []; 16390 if (vars !== "all") { 16391 if (_isString(vars)) { 16392 p2 = {}; 16393 _forEachName(vars, function(name) { 16394 return p2[name] = 1; 16395 }); 16396 vars = p2; 16397 } 16398 vars = _addAliasesToVars(parsedTargets, vars); 16399 } 16400 i10 = parsedTargets.length; 16401 while (i10--) { 16402 if (~killingTargets.indexOf(parsedTargets[i10])) { 16403 curLookup = propTweenLookup[i10]; 16404 if (vars === "all") { 16405 overwrittenProps[i10] = vars; 16406 props = curLookup; 16407 curOverwriteProps = {}; 16408 } else { 16409 curOverwriteProps = overwrittenProps[i10] = overwrittenProps[i10] || {}; 16410 props = vars; 16411 } 16412 for (p2 in props) { 16413 pt = curLookup && curLookup[p2]; 16414 if (pt) { 16415 if (!("kill" in pt.d) || pt.d.kill(p2) === true) { 16416 _removeLinkedListItem(this, pt, "_pt"); 16417 } 16418 delete curLookup[p2]; 16419 } 16420 if (curOverwriteProps !== "all") { 16421 curOverwriteProps[p2] = 1; 16422 } 16423 } 16424 } 16425 } 16426 this._initted && !this._pt && firstPT && _interrupt(this); 16427 return this; 16428 }; 16429 Tween2.to = function to(targets, vars) { 16430 return new Tween2(targets, vars, arguments[2]); 16431 }; 16432 Tween2.from = function from(targets, vars) { 16433 return _createTweenType(1, arguments); 16434 }; 16435 Tween2.delayedCall = function delayedCall(delay, callback, params, scope) { 16436 return new Tween2(callback, 0, { 16437 immediateRender: false, 16438 lazy: false, 16439 overwrite: false, 16440 delay, 16441 onComplete: callback, 16442 onReverseComplete: callback, 16443 onCompleteParams: params, 16444 onReverseCompleteParams: params, 16445 callbackScope: scope 16446 }); 16447 }; 16448 Tween2.fromTo = function fromTo(targets, fromVars, toVars) { 16449 return _createTweenType(2, arguments); 16450 }; 16451 Tween2.set = function set(targets, vars) { 16452 vars.duration = 0; 16453 vars.repeatDelay || (vars.repeat = 0); 16454 return new Tween2(targets, vars); 16455 }; 16456 Tween2.killTweensOf = function killTweensOf(targets, props, onlyActive) { 16457 return _globalTimeline.killTweensOf(targets, props, onlyActive); 16458 }; 16459 return Tween2; 16460 })(Animation); 16461 _setDefaults(Tween.prototype, { 16462 _targets: [], 16463 _lazy: 0, 16464 _startAt: 0, 16465 _op: 0, 16466 _onInit: 0 16467 }); 16468 _forEachName("staggerTo,staggerFrom,staggerFromTo", function(name) { 16469 Tween[name] = function() { 16470 var tl = new Timeline(), params = _slice.call(arguments, 0); 16471 params.splice(name === "staggerFromTo" ? 5 : 4, 0, 0); 16472 return tl[name].apply(tl, params); 16473 }; 16474 }); 16475 _setterPlain = function _setterPlain2(target, property, value) { 16476 return target[property] = value; 16477 }; 16478 _setterFunc = function _setterFunc2(target, property, value) { 16479 return target[property](value); 16480 }; 16481 _setterFuncWithParam = function _setterFuncWithParam2(target, property, value, data) { 16482 return target[property](data.fp, value); 16483 }; 16484 _setterAttribute = function _setterAttribute2(target, property, value) { 16485 return target.setAttribute(property, value); 16486 }; 16487 _getSetter = function _getSetter2(target, property) { 16488 return _isFunction(target[property]) ? _setterFunc : _isUndefined(target[property]) && target.setAttribute ? _setterAttribute : _setterPlain; 16489 }; 16490 _renderPlain = function _renderPlain2(ratio, data) { 16491 return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 1e6) / 1e6, data); 16492 }; 16493 _renderBoolean = function _renderBoolean2(ratio, data) { 16494 return data.set(data.t, data.p, !!(data.s + data.c * ratio), data); 16495 }; 16496 _renderComplexString = function _renderComplexString2(ratio, data) { 16497 var pt = data._pt, s13 = ""; 16498 if (!ratio && data.b) { 16499 s13 = data.b; 16500 } else if (ratio === 1 && data.e) { 16501 s13 = data.e; 16502 } else { 16503 while (pt) { 16504 s13 = pt.p + (pt.m ? pt.m(pt.s + pt.c * ratio) : Math.round((pt.s + pt.c * ratio) * 1e4) / 1e4) + s13; 16505 pt = pt._next; 16506 } 16507 s13 += data.c; 16508 } 16509 data.set(data.t, data.p, s13, data); 16510 }; 16511 _renderPropTweens = function _renderPropTweens2(ratio, data) { 16512 var pt = data._pt; 16513 while (pt) { 16514 pt.r(ratio, pt.d); 16515 pt = pt._next; 16516 } 16517 }; 16518 _addPluginModifier = function _addPluginModifier2(modifier, tween, target, property) { 16519 var pt = this._pt, next; 16520 while (pt) { 16521 next = pt._next; 16522 pt.p === property && pt.modifier(modifier, tween, target); 16523 pt = next; 16524 } 16525 }; 16526 _killPropTweensOf = function _killPropTweensOf2(property) { 16527 var pt = this._pt, hasNonDependentRemaining, next; 16528 while (pt) { 16529 next = pt._next; 16530 if (pt.p === property && !pt.op || pt.op === property) { 16531 _removeLinkedListItem(this, pt, "_pt"); 16532 } else if (!pt.dep) { 16533 hasNonDependentRemaining = 1; 16534 } 16535 pt = next; 16536 } 16537 return !hasNonDependentRemaining; 16538 }; 16539 _setterWithModifier = function _setterWithModifier2(target, property, value, data) { 16540 data.mSet(target, property, data.m.call(data.tween, value, data.mt), data); 16541 }; 16542 _sortPropTweensByPriority = function _sortPropTweensByPriority2(parent) { 16543 var pt = parent._pt, next, pt2, first, last; 16544 while (pt) { 16545 next = pt._next; 16546 pt2 = first; 16547 while (pt2 && pt2.pr > pt.pr) { 16548 pt2 = pt2._next; 16549 } 16550 if (pt._prev = pt2 ? pt2._prev : last) { 16551 pt._prev._next = pt; 16552 } else { 16553 first = pt; 16554 } 16555 if (pt._next = pt2) { 16556 pt2._prev = pt; 16557 } else { 16558 last = pt; 16559 } 16560 pt = next; 16561 } 16562 parent._pt = first; 16563 }; 16564 PropTween = /* @__PURE__ */ (function() { 16565 function PropTween2(next, target, prop, start, change, renderer, data, setter, priority) { 16566 this.t = target; 16567 this.s = start; 16568 this.c = change; 16569 this.p = prop; 16570 this.r = renderer || _renderPlain; 16571 this.d = data || this; 16572 this.set = setter || _setterPlain; 16573 this.pr = priority || 0; 16574 this._next = next; 16575 if (next) { 16576 next._prev = this; 16577 } 16578 } 16579 var _proto4 = PropTween2.prototype; 16580 _proto4.modifier = function modifier(func, tween, target) { 16581 this.mSet = this.mSet || this.set; 16582 this.set = _setterWithModifier; 16583 this.m = func; 16584 this.mt = target; 16585 this.tween = tween; 16586 }; 16587 return PropTween2; 16588 })(); 16589 _forEachName(_callbackNames + "parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger", function(name) { 16590 return _reservedProps[name] = 1; 16591 }); 16592 _globals.TweenMax = _globals.TweenLite = Tween; 16593 _globals.TimelineLite = _globals.TimelineMax = Timeline; 16594 _globalTimeline = new Timeline({ 16595 sortChildren: false, 16596 defaults: _defaults, 16597 autoRemoveChildren: true, 16598 id: "root", 16599 smoothChildTiming: true 16600 }); 16601 _config.stringFilter = _colorStringFilter; 16602 _media = []; 16603 _listeners = {}; 16604 _emptyArray = []; 16605 _lastMediaTime = 0; 16606 _contextID = 0; 16607 _dispatch = function _dispatch2(type) { 16608 return (_listeners[type] || _emptyArray).map(function(f3) { 16609 return f3(); 16610 }); 16611 }; 16612 _onMediaChange = function _onMediaChange2() { 16613 var time = Date.now(), matches = []; 16614 if (time - _lastMediaTime > 2) { 16615 _dispatch("matchMediaInit"); 16616 _media.forEach(function(c5) { 16617 var queries = c5.queries, conditions = c5.conditions, match, p2, anyMatch, toggled; 16618 for (p2 in queries) { 16619 match = _win.matchMedia(queries[p2]).matches; 16620 match && (anyMatch = 1); 16621 if (match !== conditions[p2]) { 16622 conditions[p2] = match; 16623 toggled = 1; 16624 } 16625 } 16626 if (toggled) { 16627 c5.revert(); 16628 anyMatch && matches.push(c5); 16629 } 16630 }); 16631 _dispatch("matchMediaRevert"); 16632 matches.forEach(function(c5) { 16633 return c5.onMatch(c5, function(func) { 16634 return c5.add(null, func); 16635 }); 16636 }); 16637 _lastMediaTime = time; 16638 _dispatch("matchMedia"); 16639 } 16640 }; 16641 Context = /* @__PURE__ */ (function() { 16642 function Context2(func, scope) { 16643 this.selector = scope && selector(scope); 16644 this.data = []; 16645 this._r = []; 16646 this.isReverted = false; 16647 this.id = _contextID++; 16648 func && this.add(func); 16649 } 16650 var _proto5 = Context2.prototype; 16651 _proto5.add = function add(name, func, scope) { 16652 if (_isFunction(name)) { 16653 scope = func; 16654 func = name; 16655 name = _isFunction; 16656 } 16657 var self2 = this, f3 = function f4() { 16658 var prev = _context, prevSelector = self2.selector, result; 16659 prev && prev !== self2 && prev.data.push(self2); 16660 scope && (self2.selector = selector(scope)); 16661 _context = self2; 16662 result = func.apply(self2, arguments); 16663 _isFunction(result) && self2._r.push(result); 16664 _context = prev; 16665 self2.selector = prevSelector; 16666 self2.isReverted = false; 16667 return result; 16668 }; 16669 self2.last = f3; 16670 return name === _isFunction ? f3(self2, function(func2) { 16671 return self2.add(null, func2); 16672 }) : name ? self2[name] = f3 : f3; 16673 }; 16674 _proto5.ignore = function ignore(func) { 16675 var prev = _context; 16676 _context = null; 16677 func(this); 16678 _context = prev; 16679 }; 16680 _proto5.getTweens = function getTweens() { 16681 var a8 = []; 16682 this.data.forEach(function(e11) { 16683 return e11 instanceof Context2 ? a8.push.apply(a8, e11.getTweens()) : e11 instanceof Tween && !(e11.parent && e11.parent.data === "nested") && a8.push(e11); 16684 }); 16685 return a8; 16686 }; 16687 _proto5.clear = function clear() { 16688 this._r.length = this.data.length = 0; 16689 }; 16690 _proto5.kill = function kill(revert, matchMedia3) { 16691 var _this4 = this; 16692 if (revert) { 16693 (function() { 16694 var tweens = _this4.getTweens(), i11 = _this4.data.length, t11; 16695 while (i11--) { 16696 t11 = _this4.data[i11]; 16697 if (t11.data === "isFlip") { 16698 t11.revert(); 16699 t11.getChildren(true, true, false).forEach(function(tween) { 16700 return tweens.splice(tweens.indexOf(tween), 1); 16701 }); 16702 } 16703 } 16704 tweens.map(function(t12) { 16705 return { 16706 g: t12._dur || t12._delay || t12._sat && !t12._sat.vars.immediateRender ? t12.globalTime(0) : -Infinity, 16707 t: t12 16708 }; 16709 }).sort(function(a8, b3) { 16710 return b3.g - a8.g || -Infinity; 16711 }).forEach(function(o11) { 16712 return o11.t.revert(revert); 16713 }); 16714 i11 = _this4.data.length; 16715 while (i11--) { 16716 t11 = _this4.data[i11]; 16717 if (t11 instanceof Timeline) { 16718 if (t11.data !== "nested") { 16719 t11.scrollTrigger && t11.scrollTrigger.revert(); 16720 t11.kill(); 16721 } 16722 } else { 16723 !(t11 instanceof Tween) && t11.revert && t11.revert(revert); 16724 } 16725 } 16726 _this4._r.forEach(function(f3) { 16727 return f3(revert, _this4); 16728 }); 16729 _this4.isReverted = true; 16730 })(); 16731 } else { 16732 this.data.forEach(function(e11) { 16733 return e11.kill && e11.kill(); 16734 }); 16735 } 16736 this.clear(); 16737 if (matchMedia3) { 16738 var i10 = _media.length; 16739 while (i10--) { 16740 _media[i10].id === this.id && _media.splice(i10, 1); 16741 } 16742 } 16743 }; 16744 _proto5.revert = function revert(config3) { 16745 this.kill(config3 || {}); 16746 }; 16747 return Context2; 16748 })(); 16749 MatchMedia = /* @__PURE__ */ (function() { 16750 function MatchMedia2(scope) { 16751 this.contexts = []; 16752 this.scope = scope; 16753 _context && _context.data.push(this); 16754 } 16755 var _proto6 = MatchMedia2.prototype; 16756 _proto6.add = function add(conditions, func, scope) { 16757 _isObject(conditions) || (conditions = { 16758 matches: conditions 16759 }); 16760 var context3 = new Context(0, scope || this.scope), cond = context3.conditions = {}, mq, p2, active; 16761 _context && !context3.selector && (context3.selector = _context.selector); 16762 this.contexts.push(context3); 16763 func = context3.add("onMatch", func); 16764 context3.queries = conditions; 16765 for (p2 in conditions) { 16766 if (p2 === "all") { 16767 active = 1; 16768 } else { 16769 mq = _win.matchMedia(conditions[p2]); 16770 if (mq) { 16771 _media.indexOf(context3) < 0 && _media.push(context3); 16772 (cond[p2] = mq.matches) && (active = 1); 16773 mq.addListener ? mq.addListener(_onMediaChange) : mq.addEventListener("change", _onMediaChange); 16774 } 16775 } 16776 } 16777 active && func(context3, function(f3) { 16778 return context3.add(null, f3); 16779 }); 16780 return this; 16781 }; 16782 _proto6.revert = function revert(config3) { 16783 this.kill(config3 || {}); 16784 }; 16785 _proto6.kill = function kill(revert) { 16786 this.contexts.forEach(function(c5) { 16787 return c5.kill(revert, true); 16788 }); 16789 }; 16790 return MatchMedia2; 16791 })(); 16792 _gsap = { 16793 registerPlugin: function registerPlugin() { 16794 for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { 16795 args[_key2] = arguments[_key2]; 16796 } 16797 args.forEach(function(config3) { 16798 return _createPlugin(config3); 16799 }); 16800 }, 16801 timeline: function timeline(vars) { 16802 return new Timeline(vars); 16803 }, 16804 getTweensOf: function getTweensOf(targets, onlyActive) { 16805 return _globalTimeline.getTweensOf(targets, onlyActive); 16806 }, 16807 getProperty: function getProperty(target, property, unit, uncache) { 16808 _isString(target) && (target = toArray(target)[0]); 16809 var getter = _getCache(target || {}).get, format = unit ? _passThrough : _numericIfPossible; 16810 unit === "native" && (unit = ""); 16811 return !target ? target : !property ? function(property2, unit2, uncache2) { 16812 return format((_plugins[property2] && _plugins[property2].get || getter)(target, property2, unit2, uncache2)); 16813 } : format((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache)); 16814 }, 16815 quickSetter: function quickSetter(target, property, unit) { 16816 target = toArray(target); 16817 if (target.length > 1) { 16818 var setters = target.map(function(t11) { 16819 return gsap.quickSetter(t11, property, unit); 16820 }), l10 = setters.length; 16821 return function(value) { 16822 var i10 = l10; 16823 while (i10--) { 16824 setters[i10](value); 16825 } 16826 }; 16827 } 16828 target = target[0] || {}; 16829 var Plugin = _plugins[property], cache = _getCache(target), p2 = cache.harness && (cache.harness.aliases || {})[property] || property, setter = Plugin ? function(value) { 16830 var p3 = new Plugin(); 16831 _quickTween._pt = 0; 16832 p3.init(target, unit ? value + unit : value, _quickTween, 0, [target]); 16833 p3.render(1, p3); 16834 _quickTween._pt && _renderPropTweens(1, _quickTween); 16835 } : cache.set(target, p2); 16836 return Plugin ? setter : function(value) { 16837 return setter(target, p2, unit ? value + unit : value, cache, 1); 16838 }; 16839 }, 16840 quickTo: function quickTo(target, property, vars) { 16841 var _setDefaults22; 16842 var tween = gsap.to(target, _setDefaults((_setDefaults22 = {}, _setDefaults22[property] = "+=0.1", _setDefaults22.paused = true, _setDefaults22.stagger = 0, _setDefaults22), vars || {})), func = function func2(value, start, startIsRelative) { 16843 return tween.resetTo(property, value, start, startIsRelative); 16844 }; 16845 func.tween = tween; 16846 return func; 16847 }, 16848 isTweening: function isTweening(targets) { 16849 return _globalTimeline.getTweensOf(targets, true).length > 0; 16850 }, 16851 defaults: function defaults(value) { 16852 value && value.ease && (value.ease = _parseEase(value.ease, _defaults.ease)); 16853 return _mergeDeep(_defaults, value || {}); 16854 }, 16855 config: function config2(value) { 16856 return _mergeDeep(_config, value || {}); 16857 }, 16858 registerEffect: function registerEffect(_ref3) { 16859 var name = _ref3.name, effect = _ref3.effect, plugins = _ref3.plugins, defaults2 = _ref3.defaults, extendTimeline = _ref3.extendTimeline; 16860 (plugins || "").split(",").forEach(function(pluginName) { 16861 return pluginName && !_plugins[pluginName] && !_globals[pluginName] && _warn(name + " effect requires " + pluginName + " plugin."); 16862 }); 16863 _effects[name] = function(targets, vars, tl) { 16864 return effect(toArray(targets), _setDefaults(vars || {}, defaults2), tl); 16865 }; 16866 if (extendTimeline) { 16867 Timeline.prototype[name] = function(targets, vars, position) { 16868 return this.add(_effects[name](targets, _isObject(vars) ? vars : (position = vars) && {}, this), position); 16869 }; 16870 } 16871 }, 16872 registerEase: function registerEase(name, ease) { 16873 _easeMap[name] = _parseEase(ease); 16874 }, 16875 parseEase: function parseEase(ease, defaultEase) { 16876 return arguments.length ? _parseEase(ease, defaultEase) : _easeMap; 16877 }, 16878 getById: function getById(id) { 16879 return _globalTimeline.getById(id); 16880 }, 16881 exportRoot: function exportRoot(vars, includeDelayedCalls) { 16882 if (vars === void 0) { 16883 vars = {}; 16884 } 16885 var tl = new Timeline(vars), child, next; 16886 tl.smoothChildTiming = _isNotFalse(vars.smoothChildTiming); 16887 _globalTimeline.remove(tl); 16888 tl._dp = 0; 16889 tl._time = tl._tTime = _globalTimeline._time; 16890 child = _globalTimeline._first; 16891 while (child) { 16892 next = child._next; 16893 if (includeDelayedCalls || !(!child._dur && child instanceof Tween && child.vars.onComplete === child._targets[0])) { 16894 _addToTimeline(tl, child, child._start - child._delay); 16895 } 16896 child = next; 16897 } 16898 _addToTimeline(_globalTimeline, tl, 0); 16899 return tl; 16900 }, 16901 context: function context(func, scope) { 16902 return func ? new Context(func, scope) : _context; 16903 }, 16904 matchMedia: function matchMedia2(scope) { 16905 return new MatchMedia(scope); 16906 }, 16907 matchMediaRefresh: function matchMediaRefresh() { 16908 return _media.forEach(function(c5) { 16909 var cond = c5.conditions, found, p2; 16910 for (p2 in cond) { 16911 if (cond[p2]) { 16912 cond[p2] = false; 16913 found = 1; 16914 } 16915 } 16916 found && c5.revert(); 16917 }) || _onMediaChange(); 16918 }, 16919 addEventListener: function addEventListener(type, callback) { 16920 var a8 = _listeners[type] || (_listeners[type] = []); 16921 ~a8.indexOf(callback) || a8.push(callback); 16922 }, 16923 removeEventListener: function removeEventListener(type, callback) { 16924 var a8 = _listeners[type], i10 = a8 && a8.indexOf(callback); 16925 i10 >= 0 && a8.splice(i10, 1); 16926 }, 16927 utils: { 16928 wrap, 16929 wrapYoyo, 16930 distribute, 16931 random, 16932 snap, 16933 normalize, 16934 getUnit, 16935 clamp, 16936 splitColor, 16937 toArray, 16938 selector, 16939 mapRange, 16940 pipe, 16941 unitize, 16942 interpolate, 16943 shuffle 16944 }, 16945 install: _install, 16946 effects: _effects, 16947 ticker: _ticker, 16948 updateRoot: Timeline.updateRoot, 16949 plugins: _plugins, 16950 globalTimeline: _globalTimeline, 16951 core: { 16952 PropTween, 16953 globals: _addGlobal, 16954 Tween, 16955 Timeline, 16956 Animation, 16957 getCache: _getCache, 16958 _removeLinkedListItem, 16959 reverting: function reverting() { 16960 return _reverting; 16961 }, 16962 context: function context2(toAdd) { 16963 if (toAdd && _context) { 16964 _context.data.push(toAdd); 16965 toAdd._ctx = _context; 16966 } 16967 return _context; 16968 }, 16969 suppressOverwrites: function suppressOverwrites(value) { 16970 return _suppressOverwrites = value; 16971 } 16972 } 16973 }; 16974 _forEachName("to,from,fromTo,delayedCall,set,killTweensOf", function(name) { 16975 return _gsap[name] = Tween[name]; 16976 }); 16977 _ticker.add(Timeline.updateRoot); 16978 _quickTween = _gsap.to({}, { 16979 duration: 0 16980 }); 16981 _getPluginPropTween = function _getPluginPropTween2(plugin, prop) { 16982 var pt = plugin._pt; 16983 while (pt && pt.p !== prop && pt.op !== prop && pt.fp !== prop) { 16984 pt = pt._next; 16985 } 16986 return pt; 16987 }; 16988 _addModifiers = function _addModifiers2(tween, modifiers) { 16989 var targets = tween._targets, p2, i10, pt; 16990 for (p2 in modifiers) { 16991 i10 = targets.length; 16992 while (i10--) { 16993 pt = tween._ptLookup[i10][p2]; 16994 if (pt && (pt = pt.d)) { 16995 if (pt._pt) { 16996 pt = _getPluginPropTween(pt, p2); 16997 } 16998 pt && pt.modifier && pt.modifier(modifiers[p2], tween, targets[i10], p2); 16999 } 17000 } 17001 } 17002 }; 17003 _buildModifierPlugin = function _buildModifierPlugin2(name, modifier) { 17004 return { 17005 name, 17006 headless: 1, 17007 rawVars: 1, 17008 //don't pre-process function-based values or "random()" strings. 17009 init: function init5(target, vars, tween) { 17010 tween._onInit = function(tween2) { 17011 var temp, p2; 17012 if (_isString(vars)) { 17013 temp = {}; 17014 _forEachName(vars, function(name2) { 17015 return temp[name2] = 1; 17016 }); 17017 vars = temp; 17018 } 17019 if (modifier) { 17020 temp = {}; 17021 for (p2 in vars) { 17022 temp[p2] = modifier(vars[p2]); 17023 } 17024 vars = temp; 17025 } 17026 _addModifiers(tween2, vars); 17027 }; 17028 } 17029 }; 17030 }; 17031 gsap = _gsap.registerPlugin({ 17032 name: "attr", 17033 init: function init2(target, vars, tween, index, targets) { 17034 var p2, pt, v3; 17035 this.tween = tween; 17036 for (p2 in vars) { 17037 v3 = target.getAttribute(p2) || ""; 17038 pt = this.add(target, "setAttribute", (v3 || 0) + "", vars[p2], index, targets, 0, 0, p2); 17039 pt.op = p2; 17040 pt.b = v3; 17041 this._props.push(p2); 17042 } 17043 }, 17044 render: function render(ratio, data) { 17045 var pt = data._pt; 17046 while (pt) { 17047 _reverting ? pt.set(pt.t, pt.p, pt.b, pt) : pt.r(ratio, pt.d); 17048 pt = pt._next; 17049 } 17050 } 17051 }, { 17052 name: "endArray", 17053 headless: 1, 17054 init: function init3(target, value) { 17055 var i10 = value.length; 17056 while (i10--) { 17057 this.add(target, i10, target[i10] || 0, value[i10], 0, 0, 0, 0, 0, 1); 17058 } 17059 } 17060 }, _buildModifierPlugin("roundProps", _roundModifier), _buildModifierPlugin("modifiers"), _buildModifierPlugin("snap", snap)) || _gsap; 17061 Tween.version = Timeline.version = gsap.version = "3.14.2"; 17062 _coreReady = 1; 17063 _windowExists() && _wake(); 17064 Power0 = _easeMap.Power0; 17065 Power1 = _easeMap.Power1; 17066 Power2 = _easeMap.Power2; 17067 Power3 = _easeMap.Power3; 17068 Power4 = _easeMap.Power4; 17069 Linear = _easeMap.Linear; 17070 Quad = _easeMap.Quad; 17071 Cubic = _easeMap.Cubic; 17072 Quart = _easeMap.Quart; 17073 Quint = _easeMap.Quint; 17074 Strong = _easeMap.Strong; 17075 Elastic = _easeMap.Elastic; 17076 Back = _easeMap.Back; 17077 SteppedEase = _easeMap.SteppedEase; 17078 Bounce = _easeMap.Bounce; 17079 Sine = _easeMap.Sine; 17080 Expo = _easeMap.Expo; 17081 Circ = _easeMap.Circ; 17082 } 17083 }); 17084 17085
vendor: 57,039 bytes, lines 17085-18199
17085// node_modules/gsap/CSSPlugin.js 17086 var _win2, _doc2, _docElement, _pluginInitted, _tempDiv, _tempDivStyler, _recentSetterPlugin, _reverting2, _windowExists3, _transformProps, _RAD2DEG, _DEG2RAD, _atan2, _bigNum2, _capsExp, _horizontalExp, _complexExp, _propertyAliases, _renderCSSProp, _renderPropWithEnd, _renderCSSPropWithBeginning, _renderCSSPropWithBeginningAndEnd, _renderRoundedCSSProp, _renderNonTweeningValue, _renderNonTweeningValueOnlyAtEnd, _setterCSSStyle, _setterCSSProp, _setterTransform, _setterScale, _setterScaleWithRender, _setterTransformWithRender, _transformProp, _transformOriginProp, _saveStyle, _removeIndependentTransforms, _revertStyle, _getStyleSaver, _supports3D, _createElement, _getComputedProperty, _prefixes, _checkPropPrefix, _initCore, _getReparentedCloneBBox, _getAttributeFallbacks, _getBBox, _isSVG, _removeProperty, _addNonTweeningPT, _nonConvertibleUnits, _nonStandardLayouts, _convertToUnit, _get, _tweenComplexCSSString, _keywordToPercent, _convertKeywordsToPercentages, _renderClearProps, _specialProps, _identity2DMatrix, _rotationalProperties, _isNullTransform, _getComputedTransformMatrixAsArray, _getMatrix, _applySVGOrigin, _parseTransform, _firstTwoOnly, _addPxTranslate, _renderNon3DTransforms, _zeroDeg, _zeroPx, _endParenthesis, _renderCSSTransforms, _renderSVGTransforms, _addRotationalPropTween, _assign, _addRawTransformPTs, CSSPlugin; 17087 var init_CSSPlugin = __esm({ 17088 "node_modules/gsap/CSSPlugin.js"() { 17089 init_gsap_core(); 17090 _windowExists3 = function _windowExists4() { 17091 return typeof window !== "undefined"; 17092 }; 17093 _transformProps = {}; 17094 _RAD2DEG = 180 / Math.PI; 17095 _DEG2RAD = Math.PI / 180; 17096 _atan2 = Math.atan2; 17097 _bigNum2 = 1e8; 17098 _capsExp = /([A-Z])/g; 17099 _horizontalExp = /(left|right|width|margin|padding|x)/i; 17100 _complexExp = /[\s,\(]\S/; 17101 _propertyAliases = { 17102 autoAlpha: "opacity,visibility", 17103 scale: "scaleX,scaleY", 17104 alpha: "opacity" 17105 }; 17106 _renderCSSProp = function _renderCSSProp2(ratio, data) { 17107 return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 1e4) / 1e4 + data.u, data); 17108 }; 17109 _renderPropWithEnd = function _renderPropWithEnd2(ratio, data) { 17110 return data.set(data.t, data.p, ratio === 1 ? data.e : Math.round((data.s + data.c * ratio) * 1e4) / 1e4 + data.u, data); 17111 }; 17112 _renderCSSPropWithBeginning = function _renderCSSPropWithBeginning2(ratio, data) { 17113 return data.set(data.t, data.p, ratio ? Math.round((data.s + data.c * ratio) * 1e4) / 1e4 + data.u : data.b, data); 17114 }; 17115 _renderCSSPropWithBeginningAndEnd = function _renderCSSPropWithBeginningAndEnd2(ratio, data) { 17116 return data.set(data.t, data.p, ratio === 1 ? data.e : ratio ? Math.round((data.s + data.c * ratio) * 1e4) / 1e4 + data.u : data.b, data); 17117 }; 17118 _renderRoundedCSSProp = function _renderRoundedCSSProp2(ratio, data) { 17119 var value = data.s + data.c * ratio; 17120 data.set(data.t, data.p, ~~(value + (value < 0 ? -0.5 : 0.5)) + data.u, data); 17121 }; 17122 _renderNonTweeningValue = function _renderNonTweeningValue2(ratio, data) { 17123 return data.set(data.t, data.p, ratio ? data.e : data.b, data); 17124 }; 17125 _renderNonTweeningValueOnlyAtEnd = function _renderNonTweeningValueOnlyAtEnd2(ratio, data) { 17126 return data.set(data.t, data.p, ratio !== 1 ? data.b : data.e, data); 17127 }; 17128 _setterCSSStyle = function _setterCSSStyle2(target, property, value) { 17129 return target.style[property] = value; 17130 }; 17131 _setterCSSProp = function _setterCSSProp2(target, property, value) { 17132 return target.style.setProperty(property, value); 17133 }; 17134 _setterTransform = function _setterTransform2(target, property, value) { 17135 return target._gsap[property] = value; 17136 }; 17137 _setterScale = function _setterScale2(target, property, value) { 17138 return target._gsap.scaleX = target._gsap.scaleY = value; 17139 }; 17140 _setterScaleWithRender = function _setterScaleWithRender2(target, property, value, data, ratio) { 17141 var cache = target._gsap; 17142 cache.scaleX = cache.scaleY = value; 17143 cache.renderTransform(ratio, cache); 17144 }; 17145 _setterTransformWithRender = function _setterTransformWithRender2(target, property, value, data, ratio) { 17146 var cache = target._gsap; 17147 cache[property] = value; 17148 cache.renderTransform(ratio, cache); 17149 }; 17150 _transformProp = "transform"; 17151 _transformOriginProp = _transformProp + "Origin"; 17152 _saveStyle = function _saveStyle2(property, isNotCSS) { 17153 var _this = this; 17154 var target = this.target, style = target.style, cache = target._gsap; 17155 if (property in _transformProps && style) { 17156 this.tfm = this.tfm || {}; 17157 if (property !== "transform") { 17158 property = _propertyAliases[property] || property; 17159 ~property.indexOf(",") ? property.split(",").forEach(function(a8) { 17160 return _this.tfm[a8] = _get(target, a8); 17161 }) : this.tfm[property] = cache.x ? cache[property] : _get(target, property); 17162 property === _transformOriginProp && (this.tfm.zOrigin = cache.zOrigin); 17163 } else { 17164 return _propertyAliases.transform.split(",").forEach(function(p2) { 17165 return _saveStyle2.call(_this, p2, isNotCSS); 17166 }); 17167 } 17168 if (this.props.indexOf(_transformProp) >= 0) { 17169 return; 17170 } 17171 if (cache.svg) { 17172 this.svgo = target.getAttribute("data-svg-origin"); 17173 this.props.push(_transformOriginProp, isNotCSS, ""); 17174 } 17175 property = _transformProp; 17176 } 17177 (style || isNotCSS) && this.props.push(property, isNotCSS, style[property]); 17178 }; 17179 _removeIndependentTransforms = function _removeIndependentTransforms2(style) { 17180 if (style.translate) { 17181 style.removeProperty("translate"); 17182 style.removeProperty("scale"); 17183 style.removeProperty("rotate"); 17184 } 17185 }; 17186 _revertStyle = function _revertStyle2() { 17187 var props = this.props, target = this.target, style = target.style, cache = target._gsap, i10, p2; 17188 for (i10 = 0; i10 < props.length; i10 += 3) { 17189 if (!props[i10 + 1]) { 17190 props[i10 + 2] ? style[props[i10]] = props[i10 + 2] : style.removeProperty(props[i10].substr(0, 2) === "--" ? props[i10] : props[i10].replace(_capsExp, "-$1").toLowerCase()); 17191 } else if (props[i10 + 1] === 2) { 17192 target[props[i10]](props[i10 + 2]); 17193 } else { 17194 target[props[i10]] = props[i10 + 2]; 17195 } 17196 } 17197 if (this.tfm) { 17198 for (p2 in this.tfm) { 17199 cache[p2] = this.tfm[p2]; 17200 } 17201 if (cache.svg) { 17202 cache.renderTransform(); 17203 target.setAttribute("data-svg-origin", this.svgo || ""); 17204 } 17205 i10 = _reverting2(); 17206 if ((!i10 || !i10.isStart) && !style[_transformProp]) { 17207 _removeIndependentTransforms(style); 17208 if (cache.zOrigin && style[_transformOriginProp]) { 17209 style[_transformOriginProp] += " " + cache.zOrigin + "px"; 17210 cache.zOrigin = 0; 17211 cache.renderTransform(); 17212 } 17213 cache.uncache = 1; 17214 } 17215 } 17216 }; 17217 _getStyleSaver = function _getStyleSaver2(target, properties) { 17218 var saver = { 17219 target, 17220 props: [], 17221 revert: _revertStyle, 17222 save: _saveStyle 17223 }; 17224 target._gsap || gsap.core.getCache(target); 17225 properties && target.style && target.nodeType && properties.split(",").forEach(function(p2) { 17226 return saver.save(p2); 17227 }); 17228 return saver; 17229 }; 17230 _createElement = function _createElement2(type, ns) { 17231 var e11 = _doc2.createElementNS ? _doc2.createElementNS((ns || "http://www.w3.org/1999/xhtml").replace(/^https/, "http"), type) : _doc2.createElement(type); 17232 return e11 && e11.style ? e11 : _doc2.createElement(type); 17233 }; 17234 _getComputedProperty = function _getComputedProperty2(target, property, skipPrefixFallback) { 17235 var cs = getComputedStyle(target); 17236 return cs[property] || cs.getPropertyValue(property.replace(_capsExp, "-$1").toLowerCase()) || cs.getPropertyValue(property) || !skipPrefixFallback && _getComputedProperty2(target, _checkPropPrefix(property) || property, 1) || ""; 17237 }; 17238 _prefixes = "O,Moz,ms,Ms,Webkit".split(","); 17239 _checkPropPrefix = function _checkPropPrefix2(property, element, preferPrefix) { 17240 var e11 = element || _tempDiv, s13 = e11.style, i10 = 5; 17241 if (property in s13 && !preferPrefix) { 17242 return property; 17243 } 17244 property = property.charAt(0).toUpperCase() + property.substr(1); 17245 while (i10-- && !(_prefixes[i10] + property in s13)) { 17246 } 17247 return i10 < 0 ? null : (i10 === 3 ? "ms" : i10 >= 0 ? _prefixes[i10] : "") + property; 17248 }; 17249 _initCore = function _initCore2() { 17250 if (_windowExists3() && window.document) { 17251 _win2 = window; 17252 _doc2 = _win2.document; 17253 _docElement = _doc2.documentElement; 17254 _tempDiv = _createElement("div") || { 17255 style: {} 17256 }; 17257 _tempDivStyler = _createElement("div"); 17258 _transformProp = _checkPropPrefix(_transformProp); 17259 _transformOriginProp = _transformProp + "Origin"; 17260 _tempDiv.style.cssText = "border-width:0;line-height:0;position:absolute;padding:0"; 17261 _supports3D = !!_checkPropPrefix("perspective"); 17262 _reverting2 = gsap.core.reverting; 17263 _pluginInitted = 1; 17264 } 17265 }; 17266 _getReparentedCloneBBox = function _getReparentedCloneBBox2(target) { 17267 var owner = target.ownerSVGElement, svg = _createElement("svg", owner && owner.getAttribute("xmlns") || "http://www.w3.org/2000/svg"), clone = target.cloneNode(true), bbox; 17268 clone.style.display = "block"; 17269 svg.appendChild(clone); 17270 _docElement.appendChild(svg); 17271 try { 17272 bbox = clone.getBBox(); 17273 } catch (e11) { 17274 } 17275 svg.removeChild(clone); 17276 _docElement.removeChild(svg); 17277 return bbox; 17278 }; 17279 _getAttributeFallbacks = function _getAttributeFallbacks2(target, attributesArray) { 17280 var i10 = attributesArray.length; 17281 while (i10--) { 17282 if (target.hasAttribute(attributesArray[i10])) { 17283 return target.getAttribute(attributesArray[i10]); 17284 } 17285 } 17286 }; 17287 _getBBox = function _getBBox2(target) { 17288 var bounds, cloned; 17289 try { 17290 bounds = target.getBBox(); 17291 } catch (error) { 17292 bounds = _getReparentedCloneBBox(target); 17293 cloned = 1; 17294 } 17295 bounds && (bounds.width || bounds.height) || cloned || (bounds = _getReparentedCloneBBox(target)); 17296 return bounds && !bounds.width && !bounds.x && !bounds.y ? { 17297 x: +_getAttributeFallbacks(target, ["x", "cx", "x1"]) || 0, 17298 y: +_getAttributeFallbacks(target, ["y", "cy", "y1"]) || 0, 17299 width: 0, 17300 height: 0 17301 } : bounds; 17302 }; 17303 _isSVG = function _isSVG2(e11) { 17304 return !!(e11.getCTM && (!e11.parentNode || e11.ownerSVGElement) && _getBBox(e11)); 17305 }; 17306 _removeProperty = function _removeProperty2(target, property) { 17307 if (property) { 17308 var style = target.style, first2Chars; 17309 if (property in _transformProps && property !== _transformOriginProp) { 17310 property = _transformProp; 17311 } 17312 if (style.removeProperty) { 17313 first2Chars = property.substr(0, 2); 17314 if (first2Chars === "ms" || property.substr(0, 6) === "webkit") { 17315 property = "-" + property; 17316 } 17317 style.removeProperty(first2Chars === "--" ? property : property.replace(_capsExp, "-$1").toLowerCase()); 17318 } else { 17319 style.removeAttribute(property); 17320 } 17321 } 17322 }; 17323 _addNonTweeningPT = function _addNonTweeningPT2(plugin, target, property, beginning, end, onlySetAtEnd) { 17324 var pt = new PropTween(plugin._pt, target, property, 0, 1, onlySetAtEnd ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue); 17325 plugin._pt = pt; 17326 pt.b = beginning; 17327 pt.e = end; 17328 plugin._props.push(property); 17329 return pt; 17330 }; 17331 _nonConvertibleUnits = { 17332 deg: 1, 17333 rad: 1, 17334 turn: 1 17335 }; 17336 _nonStandardLayouts = { 17337 grid: 1, 17338 flex: 1 17339 }; 17340 _convertToUnit = function _convertToUnit2(target, property, value, unit) { 17341 var curValue = parseFloat(value) || 0, curUnit = (value + "").trim().substr((curValue + "").length) || "px", style = _tempDiv.style, horizontal = _horizontalExp.test(property), isRootSVG = target.tagName.toLowerCase() === "svg", measureProperty = (isRootSVG ? "client" : "offset") + (horizontal ? "Width" : "Height"), amount = 100, toPixels = unit === "px", toPercent = unit === "%", px, parent, cache, isSVG; 17342 if (unit === curUnit || !curValue || _nonConvertibleUnits[unit] || _nonConvertibleUnits[curUnit]) { 17343 return curValue; 17344 } 17345 curUnit !== "px" && !toPixels && (curValue = _convertToUnit2(target, property, value, "px")); 17346 isSVG = target.getCTM && _isSVG(target); 17347 if ((toPercent || curUnit === "%") && (_transformProps[property] || ~property.indexOf("adius"))) { 17348 px = isSVG ? target.getBBox()[horizontal ? "width" : "height"] : target[measureProperty]; 17349 return _round(toPercent ? curValue / px * amount : curValue / 100 * px); 17350 } 17351 style[horizontal ? "width" : "height"] = amount + (toPixels ? curUnit : unit); 17352 parent = unit !== "rem" && ~property.indexOf("adius") || unit === "em" && target.appendChild && !isRootSVG ? target : target.parentNode; 17353 if (isSVG) { 17354 parent = (target.ownerSVGElement || {}).parentNode; 17355 } 17356 if (!parent || parent === _doc2 || !parent.appendChild) { 17357 parent = _doc2.body; 17358 } 17359 cache = parent._gsap; 17360 if (cache && toPercent && cache.width && horizontal && cache.time === _ticker.time && !cache.uncache) { 17361 return _round(curValue / cache.width * amount); 17362 } else { 17363 if (toPercent && (property === "height" || property === "width")) { 17364 var v3 = target.style[property]; 17365 target.style[property] = amount + unit; 17366 px = target[measureProperty]; 17367 v3 ? target.style[property] = v3 : _removeProperty(target, property); 17368 } else { 17369 (toPercent || curUnit === "%") && !_nonStandardLayouts[_getComputedProperty(parent, "display")] && (style.position = _getComputedProperty(target, "position")); 17370 parent === target && (style.position = "static"); 17371 parent.appendChild(_tempDiv); 17372 px = _tempDiv[measureProperty]; 17373 parent.removeChild(_tempDiv); 17374 style.position = "absolute"; 17375 } 17376 if (horizontal && toPercent) { 17377 cache = _getCache(parent); 17378 cache.time = _ticker.time; 17379 cache.width = parent[measureProperty]; 17380 } 17381 } 17382 return _round(toPixels ? px * curValue / amount : px && curValue ? amount / px * curValue : 0); 17383 }; 17384 _get = function _get2(target, property, unit, uncache) { 17385 var value; 17386 _pluginInitted || _initCore(); 17387 if (property in _propertyAliases && property !== "transform") { 17388 property = _propertyAliases[property]; 17389 if (~property.indexOf(",")) { 17390 property = property.split(",")[0]; 17391 } 17392 } 17393 if (_transformProps[property] && property !== "transform") { 17394 value = _parseTransform(target, uncache); 17395 value = property !== "transformOrigin" ? value[property] : value.svg ? value.origin : _firstTwoOnly(_getComputedProperty(target, _transformOriginProp)) + " " + value.zOrigin + "px"; 17396 } else { 17397 value = target.style[property]; 17398 if (!value || value === "auto" || uncache || ~(value + "").indexOf("calc(")) { 17399 value = _specialProps[property] && _specialProps[property](target, property, unit) || _getComputedProperty(target, property) || _getProperty(target, property) || (property === "opacity" ? 1 : 0); 17400 } 17401 } 17402 return unit && !~(value + "").trim().indexOf(" ") ? _convertToUnit(target, property, value, unit) + unit : value; 17403 }; 17404 _tweenComplexCSSString = function _tweenComplexCSSString2(target, prop, start, end) { 17405 if (!start || start === "none") { 17406 var p2 = _checkPropPrefix(prop, target, 1), s13 = p2 && _getComputedProperty(target, p2, 1); 17407 if (s13 && s13 !== start) { 17408 prop = p2; 17409 start = s13; 17410 } else if (prop === "borderColor") { 17411 start = _getComputedProperty(target, "borderTopColor"); 17412 } 17413 } 17414 var pt = new PropTween(this._pt, target.style, prop, 0, 1, _renderComplexString), index = 0, matchIndex = 0, a8, result, startValues, startNum, color, startValue, endValue, endNum, chunk, endUnit, startUnit, endValues; 17415 pt.b = start; 17416 pt.e = end; 17417 start += ""; 17418 end += ""; 17419 if (end.substring(0, 6) === "var(--") { 17420 end = _getComputedProperty(target, end.substring(4, end.indexOf(")"))); 17421 } 17422 if (end === "auto") { 17423 startValue = target.style[prop]; 17424 target.style[prop] = end; 17425 end = _getComputedProperty(target, prop) || end; 17426 startValue ? target.style[prop] = startValue : _removeProperty(target, prop); 17427 } 17428 a8 = [start, end]; 17429 _colorStringFilter(a8); 17430 start = a8[0]; 17431 end = a8[1]; 17432 startValues = start.match(_numWithUnitExp) || []; 17433 endValues = end.match(_numWithUnitExp) || []; 17434 if (endValues.length) { 17435 while (result = _numWithUnitExp.exec(end)) { 17436 endValue = result[0]; 17437 chunk = end.substring(index, result.index); 17438 if (color) { 17439 color = (color + 1) % 5; 17440 } else if (chunk.substr(-5) === "rgba(" || chunk.substr(-5) === "hsla(") { 17441 color = 1; 17442 } 17443 if (endValue !== (startValue = startValues[matchIndex++] || "")) { 17444 startNum = parseFloat(startValue) || 0; 17445 startUnit = startValue.substr((startNum + "").length); 17446 endValue.charAt(1) === "=" && (endValue = _parseRelative(startNum, endValue) + startUnit); 17447 endNum = parseFloat(endValue); 17448 endUnit = endValue.substr((endNum + "").length); 17449 index = _numWithUnitExp.lastIndex - endUnit.length; 17450 if (!endUnit) { 17451 endUnit = endUnit || _config.units[prop] || startUnit; 17452 if (index === end.length) { 17453 end += endUnit; 17454 pt.e += endUnit; 17455 } 17456 } 17457 if (startUnit !== endUnit) { 17458 startNum = _convertToUnit(target, prop, startValue, endUnit) || 0; 17459 } 17460 pt._pt = { 17461 _next: pt._pt, 17462 p: chunk || matchIndex === 1 ? chunk : ",", 17463 //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case. 17464 s: startNum, 17465 c: endNum - startNum, 17466 m: color && color < 4 || prop === "zIndex" ? Math.round : 0 17467 }; 17468 } 17469 } 17470 pt.c = index < end.length ? end.substring(index, end.length) : ""; 17471 } else { 17472 pt.r = prop === "display" && end === "none" ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue; 17473 } 17474 _relExp.test(end) && (pt.e = 0); 17475 this._pt = pt; 17476 return pt; 17477 }; 17478 _keywordToPercent = { 17479 top: "0%", 17480 bottom: "100%", 17481 left: "0%", 17482 right: "100%", 17483 center: "50%" 17484 }; 17485 _convertKeywordsToPercentages = function _convertKeywordsToPercentages2(value) { 17486 var split = value.split(" "), x2 = split[0], y3 = split[1] || "50%"; 17487 if (x2 === "top" || x2 === "bottom" || y3 === "left" || y3 === "right") { 17488 value = x2; 17489 x2 = y3; 17490 y3 = value; 17491 } 17492 split[0] = _keywordToPercent[x2] || x2; 17493 split[1] = _keywordToPercent[y3] || y3; 17494 return split.join(" "); 17495 }; 17496 _renderClearProps = function _renderClearProps2(ratio, data) { 17497 if (data.tween && data.tween._time === data.tween._dur) { 17498 var target = data.t, style = target.style, props = data.u, cache = target._gsap, prop, clearTransforms, i10; 17499 if (props === "all" || props === true) { 17500 style.cssText = ""; 17501 clearTransforms = 1; 17502 } else { 17503 props = props.split(","); 17504 i10 = props.length; 17505 while (--i10 > -1) { 17506 prop = props[i10]; 17507 if (_transformProps[prop]) { 17508 clearTransforms = 1; 17509 prop = prop === "transformOrigin" ? _transformOriginProp : _transformProp; 17510 } 17511 _removeProperty(target, prop); 17512 } 17513 } 17514 if (clearTransforms) { 17515 _removeProperty(target, _transformProp); 17516 if (cache) { 17517 cache.svg && target.removeAttribute("transform"); 17518 style.scale = style.rotate = style.translate = "none"; 17519 _parseTransform(target, 1); 17520 cache.uncache = 1; 17521 _removeIndependentTransforms(style); 17522 } 17523 } 17524 } 17525 }; 17526 _specialProps = { 17527 clearProps: function clearProps(plugin, target, property, endValue, tween) { 17528 if (tween.data !== "isFromStart") { 17529 var pt = plugin._pt = new PropTween(plugin._pt, target, property, 0, 0, _renderClearProps); 17530 pt.u = endValue; 17531 pt.pr = -10; 17532 pt.tween = tween; 17533 plugin._props.push(property); 17534 return 1; 17535 } 17536 } 17537 /* className feature (about 0.4kb gzipped). 17538 , className(plugin, target, property, endValue, tween) { 17539 let _renderClassName = (ratio, data) => { 17540 data.css.render(ratio, data.css); 17541 if (!ratio || ratio === 1) { 17542 let inline = data.rmv, 17543 target = data.t, 17544 p; 17545 target.setAttribute("class", ratio ? data.e : data.b); 17546 for (p in inline) { 17547 _removeProperty(target, p); 17548 } 17549 } 17550 }, 17551 _getAllStyles = (target) => { 17552 let styles = {}, 17553 computed = getComputedStyle(target), 17554 p; 17555 for (p in computed) { 17556 if (isNaN(p) && p !== "cssText" && p !== "length") { 17557 styles[p] = computed[p]; 17558 } 17559 } 17560 _setDefaults(styles, _parseTransform(target, 1)); 17561 return styles; 17562 }, 17563 startClassList = target.getAttribute("class"), 17564 style = target.style, 17565 cssText = style.cssText, 17566 cache = target._gsap, 17567 classPT = cache.classPT, 17568 inlineToRemoveAtEnd = {}, 17569 data = {t:target, plugin:plugin, rmv:inlineToRemoveAtEnd, b:startClassList, e:(endValue.charAt(1) !== "=") ? endValue : startClassList.replace(new RegExp("(?:\\s|^)" + endValue.substr(2) + "(?![\\w-])"), "") + ((endValue.charAt(0) === "+") ? " " + endValue.substr(2) : "")}, 17570 changingVars = {}, 17571 startVars = _getAllStyles(target), 17572 transformRelated = /(transform|perspective)/i, 17573 endVars, p; 17574 if (classPT) { 17575 classPT.r(1, classPT.d); 17576 _removeLinkedListItem(classPT.d.plugin, classPT, "_pt"); 17577 } 17578 target.setAttribute("class", data.e); 17579 endVars = _getAllStyles(target, true); 17580 target.setAttribute("class", startClassList); 17581 for (p in endVars) { 17582 if (endVars[p] !== startVars[p] && !transformRelated.test(p)) { 17583 changingVars[p] = endVars[p]; 17584 if (!style[p] && style[p] !== "0") { 17585 inlineToRemoveAtEnd[p] = 1; 17586 } 17587 } 17588 } 17589 cache.classPT = plugin._pt = new PropTween(plugin._pt, target, "className", 0, 0, _renderClassName, data, 0, -11); 17590 if (style.cssText !== cssText) { //only apply if things change. Otherwise, in cases like a background-image that's pulled dynamically, it could cause a refresh. See https://gsap.com/forums/topic/20368-possible-gsap-bug-switching-classnames-in-chrome/. 17591 style.cssText = cssText; //we recorded cssText before we swapped classes and ran _getAllStyles() because in cases when a className tween is overwritten, we remove all the related tweening properties from that class change (otherwise class-specific stuff can't override properties we've directly set on the target's style object due to specificity). 17592 } 17593 _parseTransform(target, true); //to clear the caching of transforms 17594 data.css = new gsap.plugins.css(); 17595 data.css.init(target, changingVars, tween); 17596 plugin._props.push(...data.css._props); 17597 return 1; 17598 } 17599 */ 17600 }; 17601 _identity2DMatrix = [1, 0, 0, 1, 0, 0]; 17602 _rotationalProperties = {}; 17603 _isNullTransform = function _isNullTransform2(value) { 17604 return value === "matrix(1, 0, 0, 1, 0, 0)" || value === "none" || !value; 17605 }; 17606 _getComputedTransformMatrixAsArray = function _getComputedTransformMatrixAsArray2(target) { 17607 var matrixString = _getComputedProperty(target, _transformProp); 17608 return _isNullTransform(matrixString) ? _identity2DMatrix : matrixString.substr(7).match(_numExp).map(_round); 17609 }; 17610 _getMatrix = function _getMatrix2(target, force2D) { 17611 var cache = target._gsap || _getCache(target), style = target.style, matrix = _getComputedTransformMatrixAsArray(target), parent, nextSibling, temp, addedToDOM; 17612 if (cache.svg && target.getAttribute("transform")) { 17613 temp = target.transform.baseVal.consolidate().matrix; 17614 matrix = [temp.a, temp.b, temp.c, temp.d, temp.e, temp.f]; 17615 return matrix.join(",") === "1,0,0,1,0,0" ? _identity2DMatrix : matrix; 17616 } else if (matrix === _identity2DMatrix && !target.offsetParent && target !== _docElement && !cache.svg) { 17617 temp = style.display; 17618 style.display = "block"; 17619 parent = target.parentNode; 17620 if (!parent || !target.offsetParent && !target.getBoundingClientRect().width) { 17621 addedToDOM = 1; 17622 nextSibling = target.nextElementSibling; 17623 _docElement.appendChild(target); 17624 } 17625 matrix = _getComputedTransformMatrixAsArray(target); 17626 temp ? style.display = temp : _removeProperty(target, "display"); 17627 if (addedToDOM) { 17628 nextSibling ? parent.insertBefore(target, nextSibling) : parent ? parent.appendChild(target) : _docElement.removeChild(target); 17629 } 17630 } 17631 return force2D && matrix.length > 6 ? [matrix[0], matrix[1], matrix[4], matrix[5], matrix[12], matrix[13]] : matrix; 17632 }; 17633 _applySVGOrigin = function _applySVGOrigin2(target, origin, originIsAbsolute, smooth, matrixArray, pluginToAddPropTweensTo) { 17634 var cache = target._gsap, matrix = matrixArray || _getMatrix(target, true), xOriginOld = cache.xOrigin || 0, yOriginOld = cache.yOrigin || 0, xOffsetOld = cache.xOffset || 0, yOffsetOld = cache.yOffset || 0, a8 = matrix[0], b3 = matrix[1], c5 = matrix[2], d3 = matrix[3], tx = matrix[4], ty = matrix[5], originSplit = origin.split(" "), xOrigin = parseFloat(originSplit[0]) || 0, yOrigin = parseFloat(originSplit[1]) || 0, bounds, determinant, x2, y3; 17635 if (!originIsAbsolute) { 17636 bounds = _getBBox(target); 17637 xOrigin = bounds.x + (~originSplit[0].indexOf("%") ? xOrigin / 100 * bounds.width : xOrigin); 17638 yOrigin = bounds.y + (~(originSplit[1] || originSplit[0]).indexOf("%") ? yOrigin / 100 * bounds.height : yOrigin); 17639 } else if (matrix !== _identity2DMatrix && (determinant = a8 * d3 - b3 * c5)) { 17640 x2 = xOrigin * (d3 / determinant) + yOrigin * (-c5 / determinant) + (c5 * ty - d3 * tx) / determinant; 17641 y3 = xOrigin * (-b3 / determinant) + yOrigin * (a8 / determinant) - (a8 * ty - b3 * tx) / determinant; 17642 xOrigin = x2; 17643 yOrigin = y3; 17644 } 17645 if (smooth || smooth !== false && cache.smooth) { 17646 tx = xOrigin - xOriginOld; 17647 ty = yOrigin - yOriginOld; 17648 cache.xOffset = xOffsetOld + (tx * a8 + ty * c5) - tx; 17649 cache.yOffset = yOffsetOld + (tx * b3 + ty * d3) - ty; 17650 } else { 17651 cache.xOffset = cache.yOffset = 0; 17652 } 17653 cache.xOrigin = xOrigin; 17654 cache.yOrigin = yOrigin; 17655 cache.smooth = !!smooth; 17656 cache.origin = origin; 17657 cache.originIsAbsolute = !!originIsAbsolute; 17658 target.style[_transformOriginProp] = "0px 0px"; 17659 if (pluginToAddPropTweensTo) { 17660 _addNonTweeningPT(pluginToAddPropTweensTo, cache, "xOrigin", xOriginOld, xOrigin); 17661 _addNonTweeningPT(pluginToAddPropTweensTo, cache, "yOrigin", yOriginOld, yOrigin); 17662 _addNonTweeningPT(pluginToAddPropTweensTo, cache, "xOffset", xOffsetOld, cache.xOffset); 17663 _addNonTweeningPT(pluginToAddPropTweensTo, cache, "yOffset", yOffsetOld, cache.yOffset); 17664 } 17665 target.setAttribute("data-svg-origin", xOrigin + " " + yOrigin); 17666 }; 17667 _parseTransform = function _parseTransform2(target, uncache) { 17668 var cache = target._gsap || new GSCache(target); 17669 if ("x" in cache && !uncache && !cache.uncache) { 17670 return cache; 17671 } 17672 var style = target.style, invertedScaleX = cache.scaleX < 0, px = "px", deg = "deg", cs = getComputedStyle(target), origin = _getComputedProperty(target, _transformOriginProp) || "0", x2, y3, z2, scaleX, scaleY, rotation, rotationX, rotationY, skewX, skewY, perspective, xOrigin, yOrigin, matrix, angle, cos, sin, a8, b3, c5, d3, a12, a22, t1, t22, t32, a13, a23, a33, a42, a43, a32; 17673 x2 = y3 = z2 = rotation = rotationX = rotationY = skewX = skewY = perspective = 0; 17674 scaleX = scaleY = 1; 17675 cache.svg = !!(target.getCTM && _isSVG(target)); 17676 if (cs.translate) { 17677 if (cs.translate !== "none" || cs.scale !== "none" || cs.rotate !== "none") { 17678 style[_transformProp] = (cs.translate !== "none" ? "translate3d(" + (cs.translate + " 0 0").split(" ").slice(0, 3).join(", ") + ") " : "") + (cs.rotate !== "none" ? "rotate(" + cs.rotate + ") " : "") + (cs.scale !== "none" ? "scale(" + cs.scale.split(" ").join(",") + ") " : "") + (cs[_transformProp] !== "none" ? cs[_transformProp] : ""); 17679 } 17680 style.scale = style.rotate = style.translate = "none"; 17681 } 17682 matrix = _getMatrix(target, cache.svg); 17683 if (cache.svg) { 17684 if (cache.uncache) { 17685 t22 = target.getBBox(); 17686 origin = cache.xOrigin - t22.x + "px " + (cache.yOrigin - t22.y) + "px"; 17687 t1 = ""; 17688 } else { 17689 t1 = !uncache && target.getAttribute("data-svg-origin"); 17690 } 17691 _applySVGOrigin(target, t1 || origin, !!t1 || cache.originIsAbsolute, cache.smooth !== false, matrix); 17692 } 17693 xOrigin = cache.xOrigin || 0; 17694 yOrigin = cache.yOrigin || 0; 17695 if (matrix !== _identity2DMatrix) { 17696 a8 = matrix[0]; 17697 b3 = matrix[1]; 17698 c5 = matrix[2]; 17699 d3 = matrix[3]; 17700 x2 = a12 = matrix[4]; 17701 y3 = a22 = matrix[5]; 17702 if (matrix.length === 6) { 17703 scaleX = Math.sqrt(a8 * a8 + b3 * b3); 17704 scaleY = Math.sqrt(d3 * d3 + c5 * c5); 17705 rotation = a8 || b3 ? _atan2(b3, a8) * _RAD2DEG : 0; 17706 skewX = c5 || d3 ? _atan2(c5, d3) * _RAD2DEG + rotation : 0; 17707 skewX && (scaleY *= Math.abs(Math.cos(skewX * _DEG2RAD))); 17708 if (cache.svg) { 17709 x2 -= xOrigin - (xOrigin * a8 + yOrigin * c5); 17710 y3 -= yOrigin - (xOrigin * b3 + yOrigin * d3); 17711 } 17712 } else { 17713 a32 = matrix[6]; 17714 a42 = matrix[7]; 17715 a13 = matrix[8]; 17716 a23 = matrix[9]; 17717 a33 = matrix[10]; 17718 a43 = matrix[11]; 17719 x2 = matrix[12]; 17720 y3 = matrix[13]; 17721 z2 = matrix[14]; 17722 angle = _atan2(a32, a33); 17723 rotationX = angle * _RAD2DEG; 17724 if (angle) { 17725 cos = Math.cos(-angle); 17726 sin = Math.sin(-angle); 17727 t1 = a12 * cos + a13 * sin; 17728 t22 = a22 * cos + a23 * sin; 17729 t32 = a32 * cos + a33 * sin; 17730 a13 = a12 * -sin + a13 * cos; 17731 a23 = a22 * -sin + a23 * cos; 17732 a33 = a32 * -sin + a33 * cos; 17733 a43 = a42 * -sin + a43 * cos; 17734 a12 = t1; 17735 a22 = t22; 17736 a32 = t32; 17737 } 17738 angle = _atan2(-c5, a33); 17739 rotationY = angle * _RAD2DEG; 17740 if (angle) { 17741 cos = Math.cos(-angle); 17742 sin = Math.sin(-angle); 17743 t1 = a8 * cos - a13 * sin; 17744 t22 = b3 * cos - a23 * sin; 17745 t32 = c5 * cos - a33 * sin; 17746 a43 = d3 * sin + a43 * cos; 17747 a8 = t1; 17748 b3 = t22; 17749 c5 = t32; 17750 } 17751 angle = _atan2(b3, a8); 17752 rotation = angle * _RAD2DEG; 17753 if (angle) { 17754 cos = Math.cos(angle); 17755 sin = Math.sin(angle); 17756 t1 = a8 * cos + b3 * sin; 17757 t22 = a12 * cos + a22 * sin; 17758 b3 = b3 * cos - a8 * sin; 17759 a22 = a22 * cos - a12 * sin; 17760 a8 = t1; 17761 a12 = t22; 17762 } 17763 if (rotationX && Math.abs(rotationX) + Math.abs(rotation) > 359.9) { 17764 rotationX = rotation = 0; 17765 rotationY = 180 - rotationY; 17766 } 17767 scaleX = _round(Math.sqrt(a8 * a8 + b3 * b3 + c5 * c5)); 17768 scaleY = _round(Math.sqrt(a22 * a22 + a32 * a32)); 17769 angle = _atan2(a12, a22); 17770 skewX = Math.abs(angle) > 2e-4 ? angle * _RAD2DEG : 0; 17771 perspective = a43 ? 1 / (a43 < 0 ? -a43 : a43) : 0; 17772 } 17773 if (cache.svg) { 17774 t1 = target.getAttribute("transform"); 17775 cache.forceCSS = target.setAttribute("transform", "") || !_isNullTransform(_getComputedProperty(target, _transformProp)); 17776 t1 && target.setAttribute("transform", t1); 17777 } 17778 } 17779 if (Math.abs(skewX) > 90 && Math.abs(skewX) < 270) { 17780 if (invertedScaleX) { 17781 scaleX *= -1; 17782 skewX += rotation <= 0 ? 180 : -180; 17783 rotation += rotation <= 0 ? 180 : -180; 17784 } else { 17785 scaleY *= -1; 17786 skewX += skewX <= 0 ? 180 : -180; 17787 } 17788 } 17789 uncache = uncache || cache.uncache; 17790 cache.x = x2 - ((cache.xPercent = x2 && (!uncache && cache.xPercent || (Math.round(target.offsetWidth / 2) === Math.round(-x2) ? -50 : 0))) ? target.offsetWidth * cache.xPercent / 100 : 0) + px; 17791 cache.y = y3 - ((cache.yPercent = y3 && (!uncache && cache.yPercent || (Math.round(target.offsetHeight / 2) === Math.round(-y3) ? -50 : 0))) ? target.offsetHeight * cache.yPercent / 100 : 0) + px; 17792 cache.z = z2 + px; 17793 cache.scaleX = _round(scaleX); 17794 cache.scaleY = _round(scaleY); 17795 cache.rotation = _round(rotation) + deg; 17796 cache.rotationX = _round(rotationX) + deg; 17797 cache.rotationY = _round(rotationY) + deg; 17798 cache.skewX = skewX + deg; 17799 cache.skewY = skewY + deg; 17800 cache.transformPerspective = perspective + px; 17801 if (cache.zOrigin = parseFloat(origin.split(" ")[2]) || !uncache && cache.zOrigin || 0) { 17802 style[_transformOriginProp] = _firstTwoOnly(origin); 17803 } 17804 cache.xOffset = cache.yOffset = 0; 17805 cache.force3D = _config.force3D; 17806 cache.renderTransform = cache.svg ? _renderSVGTransforms : _supports3D ? _renderCSSTransforms : _renderNon3DTransforms; 17807 cache.uncache = 0; 17808 return cache; 17809 }; 17810 _firstTwoOnly = function _firstTwoOnly2(value) { 17811 return (value = value.split(" "))[0] + " " + value[1]; 17812 }; 17813 _addPxTranslate = function _addPxTranslate2(target, start, value) { 17814 var unit = getUnit(start); 17815 return _round(parseFloat(start) + parseFloat(_convertToUnit(target, "x", value + "px", unit))) + unit; 17816 }; 17817 _renderNon3DTransforms = function _renderNon3DTransforms2(ratio, cache) { 17818 cache.z = "0px"; 17819 cache.rotationY = cache.rotationX = "0deg"; 17820 cache.force3D = 0; 17821 _renderCSSTransforms(ratio, cache); 17822 }; 17823 _zeroDeg = "0deg"; 17824 _zeroPx = "0px"; 17825 _endParenthesis = ") "; 17826 _renderCSSTransforms = function _renderCSSTransforms2(ratio, cache) { 17827 var _ref = cache || this, xPercent = _ref.xPercent, yPercent = _ref.yPercent, x2 = _ref.x, y3 = _ref.y, z2 = _ref.z, rotation = _ref.rotation, rotationY = _ref.rotationY, rotationX = _ref.rotationX, skewX = _ref.skewX, skewY = _ref.skewY, scaleX = _ref.scaleX, scaleY = _ref.scaleY, transformPerspective = _ref.transformPerspective, force3D = _ref.force3D, target = _ref.target, zOrigin = _ref.zOrigin, transforms = "", use3D = force3D === "auto" && ratio && ratio !== 1 || force3D === true; 17828 if (zOrigin && (rotationX !== _zeroDeg || rotationY !== _zeroDeg)) { 17829 var angle = parseFloat(rotationY) * _DEG2RAD, a13 = Math.sin(angle), a33 = Math.cos(angle), cos; 17830 angle = parseFloat(rotationX) * _DEG2RAD; 17831 cos = Math.cos(angle); 17832 x2 = _addPxTranslate(target, x2, a13 * cos * -zOrigin); 17833 y3 = _addPxTranslate(target, y3, -Math.sin(angle) * -zOrigin); 17834 z2 = _addPxTranslate(target, z2, a33 * cos * -zOrigin + zOrigin); 17835 } 17836 if (transformPerspective !== _zeroPx) { 17837 transforms += "perspective(" + transformPerspective + _endParenthesis; 17838 } 17839 if (xPercent || yPercent) { 17840 transforms += "translate(" + xPercent + "%, " + yPercent + "%) "; 17841 } 17842 if (use3D || x2 !== _zeroPx || y3 !== _zeroPx || z2 !== _zeroPx) { 17843 transforms += z2 !== _zeroPx || use3D ? "translate3d(" + x2 + ", " + y3 + ", " + z2 + ") " : "translate(" + x2 + ", " + y3 + _endParenthesis; 17844 } 17845 if (rotation !== _zeroDeg) { 17846 transforms += "rotate(" + rotation + _endParenthesis; 17847 } 17848 if (rotationY !== _zeroDeg) { 17849 transforms += "rotateY(" + rotationY + _endParenthesis; 17850 } 17851 if (rotationX !== _zeroDeg) { 17852 transforms += "rotateX(" + rotationX + _endParenthesis; 17853 } 17854 if (skewX !== _zeroDeg || skewY !== _zeroDeg) { 17855 transforms += "skew(" + skewX + ", " + skewY + _endParenthesis; 17856 } 17857 if (scaleX !== 1 || scaleY !== 1) { 17858 transforms += "scale(" + scaleX + ", " + scaleY + _endParenthesis; 17859 } 17860 target.style[_transformProp] = transforms || "translate(0, 0)"; 17861 }; 17862 _renderSVGTransforms = function _renderSVGTransforms2(ratio, cache) { 17863 var _ref2 = cache || this, xPercent = _ref2.xPercent, yPercent = _ref2.yPercent, x2 = _ref2.x, y3 = _ref2.y, rotation = _ref2.rotation, skewX = _ref2.skewX, skewY = _ref2.skewY, scaleX = _ref2.scaleX, scaleY = _ref2.scaleY, target = _ref2.target, xOrigin = _ref2.xOrigin, yOrigin = _ref2.yOrigin, xOffset = _ref2.xOffset, yOffset = _ref2.yOffset, forceCSS = _ref2.forceCSS, tx = parseFloat(x2), ty = parseFloat(y3), a11, a21, a12, a22, temp; 17864 rotation = parseFloat(rotation); 17865 skewX = parseFloat(skewX); 17866 skewY = parseFloat(skewY); 17867 if (skewY) { 17868 skewY = parseFloat(skewY); 17869 skewX += skewY; 17870 rotation += skewY; 17871 } 17872 if (rotation || skewX) { 17873 rotation *= _DEG2RAD; 17874 skewX *= _DEG2RAD; 17875 a11 = Math.cos(rotation) * scaleX; 17876 a21 = Math.sin(rotation) * scaleX; 17877 a12 = Math.sin(rotation - skewX) * -scaleY; 17878 a22 = Math.cos(rotation - skewX) * scaleY; 17879 if (skewX) { 17880 skewY *= _DEG2RAD; 17881 temp = Math.tan(skewX - skewY); 17882 temp = Math.sqrt(1 + temp * temp); 17883 a12 *= temp; 17884 a22 *= temp; 17885 if (skewY) { 17886 temp = Math.tan(skewY); 17887 temp = Math.sqrt(1 + temp * temp); 17888 a11 *= temp; 17889 a21 *= temp; 17890 } 17891 } 17892 a11 = _round(a11); 17893 a21 = _round(a21); 17894 a12 = _round(a12); 17895 a22 = _round(a22); 17896 } else { 17897 a11 = scaleX; 17898 a22 = scaleY; 17899 a21 = a12 = 0; 17900 } 17901 if (tx && !~(x2 + "").indexOf("px") || ty && !~(y3 + "").indexOf("px")) { 17902 tx = _convertToUnit(target, "x", x2, "px"); 17903 ty = _convertToUnit(target, "y", y3, "px"); 17904 } 17905 if (xOrigin || yOrigin || xOffset || yOffset) { 17906 tx = _round(tx + xOrigin - (xOrigin * a11 + yOrigin * a12) + xOffset); 17907 ty = _round(ty + yOrigin - (xOrigin * a21 + yOrigin * a22) + yOffset); 17908 } 17909 if (xPercent || yPercent) { 17910 temp = target.getBBox(); 17911 tx = _round(tx + xPercent / 100 * temp.width); 17912 ty = _round(ty + yPercent / 100 * temp.height); 17913 } 17914 temp = "matrix(" + a11 + "," + a21 + "," + a12 + "," + a22 + "," + tx + "," + ty + ")"; 17915 target.setAttribute("transform", temp); 17916 forceCSS && (target.style[_transformProp] = temp); 17917 }; 17918 _addRotationalPropTween = function _addRotationalPropTween2(plugin, target, property, startNum, endValue) { 17919 var cap = 360, isString = _isString(endValue), endNum = parseFloat(endValue) * (isString && ~endValue.indexOf("rad") ? _RAD2DEG : 1), change = endNum - startNum, finalValue = startNum + change + "deg", direction, pt; 17920 if (isString) { 17921 direction = endValue.split("_")[1]; 17922 if (direction === "short") { 17923 change %= cap; 17924 if (change !== change % (cap / 2)) { 17925 change += change < 0 ? cap : -cap; 17926 } 17927 } 17928 if (direction === "cw" && change < 0) { 17929 change = (change + cap * _bigNum2) % cap - ~~(change / cap) * cap; 17930 } else if (direction === "ccw" && change > 0) { 17931 change = (change - cap * _bigNum2) % cap - ~~(change / cap) * cap; 17932 } 17933 } 17934 plugin._pt = pt = new PropTween(plugin._pt, target, property, startNum, change, _renderPropWithEnd); 17935 pt.e = finalValue; 17936 pt.u = "deg"; 17937 plugin._props.push(property); 17938 return pt; 17939 }; 17940 _assign = function _assign2(target, source) { 17941 for (var p2 in source) { 17942 target[p2] = source[p2]; 17943 } 17944 return target; 17945 }; 17946 _addRawTransformPTs = function _addRawTransformPTs2(plugin, transforms, target) { 17947 var startCache = _assign({}, target._gsap), exclude = "perspective,force3D,transformOrigin,svgOrigin", style = target.style, endCache, p2, startValue, endValue, startNum, endNum, startUnit, endUnit; 17948 if (startCache.svg) { 17949 startValue = target.getAttribute("transform"); 17950 target.setAttribute("transform", ""); 17951 style[_transformProp] = transforms; 17952 endCache = _parseTransform(target, 1); 17953 _removeProperty(target, _transformProp); 17954 target.setAttribute("transform", startValue); 17955 } else { 17956 startValue = getComputedStyle(target)[_transformProp]; 17957 style[_transformProp] = transforms; 17958 endCache = _parseTransform(target, 1); 17959 style[_transformProp] = startValue; 17960 } 17961 for (p2 in _transformProps) { 17962 startValue = startCache[p2]; 17963 endValue = endCache[p2]; 17964 if (startValue !== endValue && exclude.indexOf(p2) < 0) { 17965 startUnit = getUnit(startValue); 17966 endUnit = getUnit(endValue); 17967 startNum = startUnit !== endUnit ? _convertToUnit(target, p2, startValue, endUnit) : parseFloat(startValue); 17968 endNum = parseFloat(endValue); 17969 plugin._pt = new PropTween(plugin._pt, endCache, p2, startNum, endNum - startNum, _renderCSSProp); 17970 plugin._pt.u = endUnit || 0; 17971 plugin._props.push(p2); 17972 } 17973 } 17974 _assign(endCache, startCache); 17975 }; 17976 _forEachName("padding,margin,Width,Radius", function(name, index) { 17977 var t11 = "Top", r7 = "Right", b3 = "Bottom", l10 = "Left", props = (index < 3 ? [t11, r7, b3, l10] : [t11 + l10, t11 + r7, b3 + r7, b3 + l10]).map(function(side) { 17978 return index < 2 ? name + side : "border" + side + name; 17979 }); 17980 _specialProps[index > 1 ? "border" + name : name] = function(plugin, target, property, endValue, tween) { 17981 var a8, vars; 17982 if (arguments.length < 4) { 17983 a8 = props.map(function(prop) { 17984 return _get(plugin, prop, property); 17985 }); 17986 vars = a8.join(" "); 17987 return vars.split(a8[0]).length === 5 ? a8[0] : vars; 17988 } 17989 a8 = (endValue + "").split(" "); 17990 vars = {}; 17991 props.forEach(function(prop, i10) { 17992 return vars[prop] = a8[i10] = a8[i10] || a8[(i10 - 1) / 2 | 0]; 17993 }); 17994 plugin.init(target, vars, tween); 17995 }; 17996 }); 17997 CSSPlugin = { 17998 name: "css", 17999 register: _initCore, 18000 targetTest: function targetTest(target) { 18001 return target.style && target.nodeType; 18002 }, 18003 init: function init4(target, vars, tween, index, targets) { 18004 var props = this._props, style = target.style, startAt = tween.vars.startAt, startValue, endValue, endNum, startNum, type, specialProp, p2, startUnit, endUnit, relative, isTransformRelated, transformPropTween, cache, smooth, hasPriority, inlineProps, finalTransformValue; 18005 _pluginInitted || _initCore(); 18006 this.styles = this.styles || _getStyleSaver(target); 18007 inlineProps = this.styles.props; 18008 this.tween = tween; 18009 for (p2 in vars) { 18010 if (p2 === "autoRound") { 18011 continue; 18012 } 18013 endValue = vars[p2]; 18014 if (_plugins[p2] && _checkPlugin(p2, vars, tween, index, target, targets)) { 18015 continue; 18016 } 18017 type = typeof endValue; 18018 specialProp = _specialProps[p2]; 18019 if (type === "function") { 18020 endValue = endValue.call(tween, index, target, targets); 18021 type = typeof endValue; 18022 } 18023 if (type === "string" && ~endValue.indexOf("random(")) { 18024 endValue = _replaceRandom(endValue); 18025 } 18026 if (specialProp) { 18027 specialProp(this, target, p2, endValue, tween) && (hasPriority = 1); 18028 } else if (p2.substr(0, 2) === "--") { 18029 startValue = (getComputedStyle(target).getPropertyValue(p2) + "").trim(); 18030 endValue += ""; 18031 _colorExp.lastIndex = 0; 18032 if (!_colorExp.test(startValue)) { 18033 startUnit = getUnit(startValue); 18034 endUnit = getUnit(endValue); 18035 endUnit ? startUnit !== endUnit && (startValue = _convertToUnit(target, p2, startValue, endUnit) + endUnit) : startUnit && (endValue += startUnit); 18036 } 18037 this.add(style, "setProperty", startValue, endValue, index, targets, 0, 0, p2); 18038 props.push(p2); 18039 inlineProps.push(p2, 0, style[p2]); 18040 } else if (type !== "undefined") { 18041 if (startAt && p2 in startAt) { 18042 startValue = typeof startAt[p2] === "function" ? startAt[p2].call(tween, index, target, targets) : startAt[p2]; 18043 _isString(startValue) && ~startValue.indexOf("random(") && (startValue = _replaceRandom(startValue)); 18044 getUnit(startValue + "") || startValue === "auto" || (startValue += _config.units[p2] || getUnit(_get(target, p2)) || ""); 18045 (startValue + "").charAt(1) === "=" && (startValue = _get(target, p2)); 18046 } else { 18047 startValue = _get(target, p2); 18048 } 18049 startNum = parseFloat(startValue); 18050 relative = type === "string" && endValue.charAt(1) === "=" && endValue.substr(0, 2); 18051 relative && (endValue = endValue.substr(2)); 18052 endNum = parseFloat(endValue); 18053 if (p2 in _propertyAliases) { 18054 if (p2 === "autoAlpha") { 18055 if (startNum === 1 && _get(target, "visibility") === "hidden" && endNum) { 18056 startNum = 0; 18057 } 18058 inlineProps.push("visibility", 0, style.visibility); 18059 _addNonTweeningPT(this, style, "visibility", startNum ? "inherit" : "hidden", endNum ? "inherit" : "hidden", !endNum); 18060 } 18061 if (p2 !== "scale" && p2 !== "transform") { 18062 p2 = _propertyAliases[p2]; 18063 ~p2.indexOf(",") && (p2 = p2.split(",")[0]); 18064 } 18065 } 18066 isTransformRelated = p2 in _transformProps; 18067 if (isTransformRelated) { 18068 this.styles.save(p2); 18069 finalTransformValue = endValue; 18070 if (type === "string" && endValue.substring(0, 6) === "var(--") { 18071 endValue = _getComputedProperty(target, endValue.substring(4, endValue.indexOf(")"))); 18072 if (endValue.substring(0, 5) === "calc(") { 18073 var origPerspective = target.style.perspective; 18074 target.style.perspective = endValue; 18075 endValue = _getComputedProperty(target, "perspective"); 18076 origPerspective ? target.style.perspective = origPerspective : _removeProperty(target, "perspective"); 18077 } 18078 endNum = parseFloat(endValue); 18079 } 18080 if (!transformPropTween) { 18081 cache = target._gsap; 18082 cache.renderTransform && !vars.parseTransform || _parseTransform(target, vars.parseTransform); 18083 smooth = vars.smoothOrigin !== false && cache.smooth; 18084 transformPropTween = this._pt = new PropTween(this._pt, style, _transformProp, 0, 1, cache.renderTransform, cache, 0, -1); 18085 transformPropTween.dep = 1; 18086 } 18087 if (p2 === "scale") { 18088 this._pt = new PropTween(this._pt, cache, "scaleY", cache.scaleY, (relative ? _parseRelative(cache.scaleY, relative + endNum) : endNum) - cache.scaleY || 0, _renderCSSProp); 18089 this._pt.u = 0; 18090 props.push("scaleY", p2); 18091 p2 += "X"; 18092 } else if (p2 === "transformOrigin") { 18093 inlineProps.push(_transformOriginProp, 0, style[_transformOriginProp]); 18094 endValue = _convertKeywordsToPercentages(endValue); 18095 if (cache.svg) { 18096 _applySVGOrigin(target, endValue, 0, smooth, 0, this); 18097 } else { 18098 endUnit = parseFloat(endValue.split(" ")[2]) || 0; 18099 endUnit !== cache.zOrigin && _addNonTweeningPT(this, cache, "zOrigin", cache.zOrigin, endUnit); 18100 _addNonTweeningPT(this, style, p2, _firstTwoOnly(startValue), _firstTwoOnly(endValue)); 18101 } 18102 continue; 18103 } else if (p2 === "svgOrigin") { 18104 _applySVGOrigin(target, endValue, 1, smooth, 0, this); 18105 continue; 18106 } else if (p2 in _rotationalProperties) { 18107 _addRotationalPropTween(this, cache, p2, startNum, relative ? _parseRelative(startNum, relative + endValue) : endValue); 18108 continue; 18109 } else if (p2 === "smoothOrigin") { 18110 _addNonTweeningPT(this, cache, "smooth", cache.smooth, endValue); 18111 continue; 18112 } else if (p2 === "force3D") { 18113 cache[p2] = endValue; 18114 continue; 18115 } else if (p2 === "transform") { 18116 _addRawTransformPTs(this, endValue, target); 18117 continue; 18118 } 18119 } else if (!(p2 in style)) { 18120 p2 = _checkPropPrefix(p2) || p2; 18121 } 18122 if (isTransformRelated || (endNum || endNum === 0) && (startNum || startNum === 0) && !_complexExp.test(endValue) && p2 in style) { 18123 startUnit = (startValue + "").substr((startNum + "").length); 18124 endNum || (endNum = 0); 18125 endUnit = getUnit(endValue) || (p2 in _config.units ? _config.units[p2] : startUnit); 18126 startUnit !== endUnit && (startNum = _convertToUnit(target, p2, startValue, endUnit)); 18127 this._pt = new PropTween(this._pt, isTransformRelated ? cache : style, p2, startNum, (relative ? _parseRelative(startNum, relative + endNum) : endNum) - startNum, !isTransformRelated && (endUnit === "px" || p2 === "zIndex") && vars.autoRound !== false ? _renderRoundedCSSProp : _renderCSSProp); 18128 this._pt.u = endUnit || 0; 18129 if (isTransformRelated && finalTransformValue !== endValue) { 18130 this._pt.b = startValue; 18131 this._pt.e = finalTransformValue; 18132 this._pt.r = _renderCSSPropWithBeginningAndEnd; 18133 } else if (startUnit !== endUnit && endUnit !== "%") { 18134 this._pt.b = startValue; 18135 this._pt.r = _renderCSSPropWithBeginning; 18136 } 18137 } else if (!(p2 in style)) { 18138 if (p2 in target) { 18139 this.add(target, p2, startValue || target[p2], relative ? relative + endValue : endValue, index, targets); 18140 } else if (p2 !== "parseTransform") { 18141 _missingPlugin(p2, endValue); 18142 continue; 18143 } 18144 } else { 18145 _tweenComplexCSSString.call(this, target, p2, startValue, relative ? relative + endValue : endValue); 18146 } 18147 isTransformRelated || (p2 in style ? inlineProps.push(p2, 0, style[p2]) : typeof target[p2] === "function" ? inlineProps.push(p2, 2, target[p2]()) : inlineProps.push(p2, 1, startValue || target[p2])); 18148 props.push(p2); 18149 } 18150 } 18151 hasPriority && _sortPropTweensByPriority(this); 18152 }, 18153 render: function render2(ratio, data) { 18154 if (data.tween._time || !_reverting2()) { 18155 var pt = data._pt; 18156 while (pt) { 18157 pt.r(ratio, pt.d); 18158 pt = pt._next; 18159 } 18160 } else { 18161 data.styles.revert(); 18162 } 18163 }, 18164 get: _get, 18165 aliases: _propertyAliases, 18166 getSetter: function getSetter(target, property, plugin) { 18167 var p2 = _propertyAliases[property]; 18168 p2 && p2.indexOf(",") < 0 && (property = p2); 18169 return property in _transformProps && property !== _transformOriginProp && (target._gsap.x || _get(target, "x")) ? plugin && _recentSetterPlugin === plugin ? property === "scale" ? _setterScale : _setterTransform : (_recentSetterPlugin = plugin || {}) && (property === "scale" ? _setterScaleWithRender : _setterTransformWithRender) : target.style && !_isUndefined(target.style[property]) ? _setterCSSStyle : ~property.indexOf("-") ? _setterCSSProp : _getSetter(target, property); 18170 }, 18171 core: { 18172 _removeProperty, 18173 _getMatrix 18174 } 18175 }; 18176 gsap.utils.checkPrefix = _checkPropPrefix; 18177 gsap.core.getStyleSaver = _getStyleSaver; 18178 (function(positionAndScale, rotation, others, aliases) { 18179 var all = _forEachName(positionAndScale + "," + rotation + "," + others, function(name) { 18180 _transformProps[name] = 1; 18181 }); 18182 _forEachName(rotation, function(name) { 18183 _config.units[name] = "deg"; 18184 _rotationalProperties[name] = 1; 18185 }); 18186 _propertyAliases[all[13]] = positionAndScale + "," + rotation; 18187 _forEachName(aliases, function(name) { 18188 var split = name.split(":"); 18189 _propertyAliases[split[1]] = all[split[0]]; 18190 }); 18191 })("x,y,z,scale,scaleX,scaleY,xPercent,yPercent", "rotation,rotationX,rotationY,skewX,skewY", "transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective", "0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY"); 18192 _forEachName("x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective", function(name) { 18193 _config.units[name] = "px"; 18194 }); 18195 gsap.registerPlugin(CSSPlugin); 18196 } 18197 }); 18198 18199
vendor: 300 bytes, lines 18199-18210
18199// node_modules/gsap/index.js 18200 var gsapWithCSS, TweenMaxWithCSS; 18201 var init_gsap = __esm({ 18202 "node_modules/gsap/index.js"() { 18203 init_gsap_core(); 18204 init_CSSPlugin(); 18205 gsapWithCSS = gsap.registerPlugin(CSSPlugin) || gsap; 18206 TweenMaxWithCSS = gsapWithCSS.core.Tween; 18207 } 18208 }); 18209 18210
vendor: 24,289 bytes, lines 18210-18684
18210// node_modules/gsap/Observer.js 18211 function _defineProperties(target, props) { 18212 for (var i10 = 0; i10 < props.length; i10++) { 18213 var descriptor = props[i10]; 18214 descriptor.enumerable = descriptor.enumerable || false; 18215 descriptor.configurable = true; 18216 if ("value" in descriptor) descriptor.writable = true; 18217 Object.defineProperty(target, descriptor.key, descriptor); 18218 } 18219 } 18220 function _createClass(Constructor, protoProps, staticProps) { 18221 if (protoProps) _defineProperties(Constructor.prototype, protoProps); 18222 if (staticProps) _defineProperties(Constructor, staticProps); 18223 return Constructor; 18224 } 18225 var gsap2, _coreInitted2, _clamp3, _win3, _doc3, _docEl, _body, _isTouch, _pointerType, ScrollTrigger, _root, _normalizer, _eventTypes, _context2, _getGSAP, _startup, _observers, _scrollers, _proxies, _getTime, _bridge, _integrate, _getProxyProp, _isViewport, _addListener, _removeListener, _scrollLeft, _scrollTop, _onScroll, _scrollCacheFunc, _horizontal, _vertical, _getTarget, _isWithin, _getScrollFunc, _getVelocityProp, _getEvent, _getAbsoluteMax, _setScrollTrigger, _initCore3, Observer; 18226 var init_Observer = __esm({ 18227 "node_modules/gsap/Observer.js"() { 18228 _getGSAP = function _getGSAP2() { 18229 return gsap2 || typeof window !== "undefined" && (gsap2 = window.gsap) && gsap2.registerPlugin && gsap2; 18230 }; 18231 _startup = 1; 18232 _observers = []; 18233 _scrollers = []; 18234 _proxies = []; 18235 _getTime = Date.now; 18236 _bridge = function _bridge2(name, value) { 18237 return value; 18238 }; 18239 _integrate = function _integrate2() { 18240 var core = ScrollTrigger.core, data = core.bridge || {}, scrollers = core._scrollers, proxies = core._proxies; 18241 scrollers.push.apply(scrollers, _scrollers); 18242 proxies.push.apply(proxies, _proxies); 18243 _scrollers = scrollers; 18244 _proxies = proxies; 18245 _bridge = function _bridge3(name, value) { 18246 return data[name](value); 18247 }; 18248 }; 18249 _getProxyProp = function _getProxyProp2(element, property) { 18250 return ~_proxies.indexOf(element) && _proxies[_proxies.indexOf(element) + 1][property]; 18251 }; 18252 _isViewport = function _isViewport2(el) { 18253 return !!~_root.indexOf(el); 18254 }; 18255 _addListener = function _addListener2(element, type, func, passive, capture) { 18256 return element.addEventListener(type, func, { 18257 passive: passive !== false, 18258 capture: !!capture 18259 }); 18260 }; 18261 _removeListener = function _removeListener2(element, type, func, capture) { 18262 return element.removeEventListener(type, func, !!capture); 18263 }; 18264 _scrollLeft = "scrollLeft"; 18265 _scrollTop = "scrollTop"; 18266 _onScroll = function _onScroll2() { 18267 return _normalizer && _normalizer.isPressed || _scrollers.cache++; 18268 }; 18269 _scrollCacheFunc = function _scrollCacheFunc2(f3, doNotCache) { 18270 var cachingFunc = function cachingFunc2(value) { 18271 if (value || value === 0) { 18272 _startup && (_win3.history.scrollRestoration = "manual"); 18273 var isNormalizing = _normalizer && _normalizer.isPressed; 18274 value = cachingFunc2.v = Math.round(value) || (_normalizer && _normalizer.iOS ? 1 : 0); 18275 f3(value); 18276 cachingFunc2.cacheID = _scrollers.cache; 18277 isNormalizing && _bridge("ss", value); 18278 } else if (doNotCache || _scrollers.cache !== cachingFunc2.cacheID || _bridge("ref")) { 18279 cachingFunc2.cacheID = _scrollers.cache; 18280 cachingFunc2.v = f3(); 18281 } 18282 return cachingFunc2.v + cachingFunc2.offset; 18283 }; 18284 cachingFunc.offset = 0; 18285 return f3 && cachingFunc; 18286 }; 18287 _horizontal = { 18288 s: _scrollLeft, 18289 p: "left", 18290 p2: "Left", 18291 os: "right", 18292 os2: "Right", 18293 d: "width", 18294 d2: "Width", 18295 a: "x", 18296 sc: _scrollCacheFunc(function(value) { 18297 return arguments.length ? _win3.scrollTo(value, _vertical.sc()) : _win3.pageXOffset || _doc3[_scrollLeft] || _docEl[_scrollLeft] || _body[_scrollLeft] || 0; 18298 }) 18299 }; 18300 _vertical = { 18301 s: _scrollTop, 18302 p: "top", 18303 p2: "Top", 18304 os: "bottom", 18305 os2: "Bottom", 18306 d: "height", 18307 d2: "Height", 18308 a: "y", 18309 op: _horizontal, 18310 sc: _scrollCacheFunc(function(value) { 18311 return arguments.length ? _win3.scrollTo(_horizontal.sc(), value) : _win3.pageYOffset || _doc3[_scrollTop] || _docEl[_scrollTop] || _body[_scrollTop] || 0; 18312 }) 18313 }; 18314 _getTarget = function _getTarget2(t11, self2) { 18315 return (self2 && self2._ctx && self2._ctx.selector || gsap2.utils.toArray)(t11)[0] || (typeof t11 === "string" && gsap2.config().nullTargetWarn !== false ? console.warn("Element not found:", t11) : null); 18316 }; 18317 _isWithin = function _isWithin2(element, list) { 18318 var i10 = list.length; 18319 while (i10--) { 18320 if (list[i10] === element || list[i10].contains(element)) { 18321 return true; 18322 } 18323 } 18324 return false; 18325 }; 18326 _getScrollFunc = function _getScrollFunc2(element, _ref) { 18327 var s13 = _ref.s, sc = _ref.sc; 18328 _isViewport(element) && (element = _doc3.scrollingElement || _docEl); 18329 var i10 = _scrollers.indexOf(element), offset = sc === _vertical.sc ? 1 : 2; 18330 !~i10 && (i10 = _scrollers.push(element) - 1); 18331 _scrollers[i10 + offset] || _addListener(element, "scroll", _onScroll); 18332 var prev = _scrollers[i10 + offset], func = prev || (_scrollers[i10 + offset] = _scrollCacheFunc(_getProxyProp(element, s13), true) || (_isViewport(element) ? sc : _scrollCacheFunc(function(value) { 18333 return arguments.length ? element[s13] = value : element[s13]; 18334 }))); 18335 func.target = element; 18336 prev || (func.smooth = gsap2.getProperty(element, "scrollBehavior") === "smooth"); 18337 return func; 18338 }; 18339 _getVelocityProp = function _getVelocityProp2(value, minTimeRefresh, useDelta) { 18340 var v1 = value, v22 = value, t1 = _getTime(), t22 = t1, min = minTimeRefresh || 50, dropToZeroTime = Math.max(500, min * 3), update = function update2(value2, force) { 18341 var t11 = _getTime(); 18342 if (force || t11 - t1 > min) { 18343 v22 = v1; 18344 v1 = value2; 18345 t22 = t1; 18346 t1 = t11; 18347 } else if (useDelta) { 18348 v1 += value2; 18349 } else { 18350 v1 = v22 + (value2 - v22) / (t11 - t22) * (t1 - t22); 18351 } 18352 }, reset = function reset2() { 18353 v22 = v1 = useDelta ? 0 : v1; 18354 t22 = t1 = 0; 18355 }, getVelocity = function getVelocity2(latestValue) { 18356 var tOld = t22, vOld = v22, t11 = _getTime(); 18357 (latestValue || latestValue === 0) && latestValue !== v1 && update(latestValue); 18358 return t1 === t22 || t11 - t22 > dropToZeroTime ? 0 : (v1 + (useDelta ? vOld : -vOld)) / ((useDelta ? t11 : t1) - tOld) * 1e3; 18359 }; 18360 return { 18361 update, 18362 reset, 18363 getVelocity 18364 }; 18365 }; 18366 _getEvent = function _getEvent2(e11, preventDefault) { 18367 preventDefault && !e11._gsapAllow && e11.preventDefault(); 18368 return e11.changedTouches ? e11.changedTouches[0] : e11; 18369 }; 18370 _getAbsoluteMax = function _getAbsoluteMax2(a8) { 18371 var max = Math.max.apply(Math, a8), min = Math.min.apply(Math, a8); 18372 return Math.abs(max) >= Math.abs(min) ? max : min; 18373 }; 18374 _setScrollTrigger = function _setScrollTrigger2() { 18375 ScrollTrigger = gsap2.core.globals().ScrollTrigger; 18376 ScrollTrigger && ScrollTrigger.core && _integrate(); 18377 }; 18378 _initCore3 = function _initCore4(core) { 18379 gsap2 = core || _getGSAP(); 18380 if (!_coreInitted2 && gsap2 && typeof document !== "undefined" && document.body) { 18381 _win3 = window; 18382 _doc3 = document; 18383 _docEl = _doc3.documentElement; 18384 _body = _doc3.body; 18385 _root = [_win3, _doc3, _docEl, _body]; 18386 _clamp3 = gsap2.utils.clamp; 18387 _context2 = gsap2.core.context || function() { 18388 }; 18389 _pointerType = "onpointerenter" in _body ? "pointer" : "mouse"; 18390 _isTouch = Observer.isTouch = _win3.matchMedia && _win3.matchMedia("(hover: none), (pointer: coarse)").matches ? 1 : "ontouchstart" in _win3 || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0 ? 2 : 0; 18391 _eventTypes = Observer.eventTypes = ("ontouchstart" in _docEl ? "touchstart,touchmove,touchcancel,touchend" : !("onpointerdown" in _docEl) ? "mousedown,mousemove,mouseup,mouseup" : "pointerdown,pointermove,pointercancel,pointerup").split(","); 18392 setTimeout(function() { 18393 return _startup = 0; 18394 }, 500); 18395 _setScrollTrigger(); 18396 _coreInitted2 = 1; 18397 } 18398 return _coreInitted2; 18399 }; 18400 _horizontal.op = _vertical; 18401 _scrollers.cache = 0; 18402 Observer = /* @__PURE__ */ (function() { 18403 function Observer2(vars) { 18404 this.init(vars); 18405 } 18406 var _proto = Observer2.prototype; 18407 _proto.init = function init5(vars) { 18408 _coreInitted2 || _initCore3(gsap2) || console.warn("Please gsap.registerPlugin(Observer)"); 18409 ScrollTrigger || _setScrollTrigger(); 18410 var tolerance = vars.tolerance, dragMinimum = vars.dragMinimum, type = vars.type, target = vars.target, lineHeight = vars.lineHeight, debounce = vars.debounce, preventDefault = vars.preventDefault, onStop = vars.onStop, onStopDelay = vars.onStopDelay, ignore = vars.ignore, wheelSpeed = vars.wheelSpeed, event = vars.event, onDragStart = vars.onDragStart, onDragEnd = vars.onDragEnd, onDrag = vars.onDrag, onPress = vars.onPress, onRelease = vars.onRelease, onRight = vars.onRight, onLeft = vars.onLeft, onUp = vars.onUp, onDown = vars.onDown, onChangeX = vars.onChangeX, onChangeY = vars.onChangeY, onChange = vars.onChange, onToggleX = vars.onToggleX, onToggleY = vars.onToggleY, onHover = vars.onHover, onHoverEnd = vars.onHoverEnd, onMove = vars.onMove, ignoreCheck = vars.ignoreCheck, isNormalizer = vars.isNormalizer, onGestureStart = vars.onGestureStart, onGestureEnd = vars.onGestureEnd, onWheel = vars.onWheel, onEnable = vars.onEnable, onDisable = vars.onDisable, onClick = vars.onClick, scrollSpeed = vars.scrollSpeed, capture = vars.capture, allowClicks = vars.allowClicks, lockAxis = vars.lockAxis, onLockAxis = vars.onLockAxis; 18411 this.target = target = _getTarget(target) || _docEl; 18412 this.vars = vars; 18413 ignore && (ignore = gsap2.utils.toArray(ignore)); 18414 tolerance = tolerance || 1e-9; 18415 dragMinimum = dragMinimum || 0; 18416 wheelSpeed = wheelSpeed || 1; 18417 scrollSpeed = scrollSpeed || 1; 18418 type = type || "wheel,touch,pointer"; 18419 debounce = debounce !== false; 18420 lineHeight || (lineHeight = parseFloat(_win3.getComputedStyle(_body).lineHeight) || 22); 18421 var id, onStopDelayedCall, dragged, moved, wheeled, locked, axis, self2 = this, prevDeltaX = 0, prevDeltaY = 0, passive = vars.passive || !preventDefault && vars.passive !== false, scrollFuncX = _getScrollFunc(target, _horizontal), scrollFuncY = _getScrollFunc(target, _vertical), scrollX = scrollFuncX(), scrollY = scrollFuncY(), limitToTouch = ~type.indexOf("touch") && !~type.indexOf("pointer") && _eventTypes[0] === "pointerdown", isViewport = _isViewport(target), ownerDoc = target.ownerDocument || _doc3, deltaX = [0, 0, 0], deltaY = [0, 0, 0], onClickTime = 0, clickCapture = function clickCapture2() { 18422 return onClickTime = _getTime(); 18423 }, _ignoreCheck = function _ignoreCheck2(e11, isPointerOrTouch) { 18424 return (self2.event = e11) && ignore && _isWithin(e11.target, ignore) || isPointerOrTouch && limitToTouch && e11.pointerType !== "touch" || ignoreCheck && ignoreCheck(e11, isPointerOrTouch); 18425 }, onStopFunc = function onStopFunc2() { 18426 self2._vx.reset(); 18427 self2._vy.reset(); 18428 onStopDelayedCall.pause(); 18429 onStop && onStop(self2); 18430 }, update = function update2() { 18431 var dx = self2.deltaX = _getAbsoluteMax(deltaX), dy = self2.deltaY = _getAbsoluteMax(deltaY), changedX = Math.abs(dx) >= tolerance, changedY = Math.abs(dy) >= tolerance; 18432 onChange && (changedX || changedY) && onChange(self2, dx, dy, deltaX, deltaY); 18433 if (changedX) { 18434 onRight && self2.deltaX > 0 && onRight(self2); 18435 onLeft && self2.deltaX < 0 && onLeft(self2); 18436 onChangeX && onChangeX(self2); 18437 onToggleX && self2.deltaX < 0 !== prevDeltaX < 0 && onToggleX(self2); 18438 prevDeltaX = self2.deltaX; 18439 deltaX[0] = deltaX[1] = deltaX[2] = 0; 18440 } 18441 if (changedY) { 18442 onDown && self2.deltaY > 0 && onDown(self2); 18443 onUp && self2.deltaY < 0 && onUp(self2); 18444 onChangeY && onChangeY(self2); 18445 onToggleY && self2.deltaY < 0 !== prevDeltaY < 0 && onToggleY(self2); 18446 prevDeltaY = self2.deltaY; 18447 deltaY[0] = deltaY[1] = deltaY[2] = 0; 18448 } 18449 if (moved || dragged) { 18450 onMove && onMove(self2); 18451 if (dragged) { 18452 onDragStart && dragged === 1 && onDragStart(self2); 18453 onDrag && onDrag(self2); 18454 dragged = 0; 18455 } 18456 moved = false; 18457 } 18458 locked && !(locked = false) && onLockAxis && onLockAxis(self2); 18459 if (wheeled) { 18460 onWheel(self2); 18461 wheeled = false; 18462 } 18463 id = 0; 18464 }, onDelta = function onDelta2(x2, y3, index) { 18465 deltaX[index] += x2; 18466 deltaY[index] += y3; 18467 self2._vx.update(x2); 18468 self2._vy.update(y3); 18469 debounce ? id || (id = requestAnimationFrame(update)) : update(); 18470 }, onTouchOrPointerDelta = function onTouchOrPointerDelta2(x2, y3) { 18471 if (lockAxis && !axis) { 18472 self2.axis = axis = Math.abs(x2) > Math.abs(y3) ? "x" : "y"; 18473 locked = true; 18474 } 18475 if (axis !== "y") { 18476 deltaX[2] += x2; 18477 self2._vx.update(x2, true); 18478 } 18479 if (axis !== "x") { 18480 deltaY[2] += y3; 18481 self2._vy.update(y3, true); 18482 } 18483 debounce ? id || (id = requestAnimationFrame(update)) : update(); 18484 }, _onDrag = function _onDrag2(e11) { 18485 if (_ignoreCheck(e11, 1)) { 18486 return; 18487 } 18488 e11 = _getEvent(e11, preventDefault); 18489 var x2 = e11.clientX, y3 = e11.clientY, dx = x2 - self2.x, dy = y3 - self2.y, isDragging = self2.isDragging; 18490 self2.x = x2; 18491 self2.y = y3; 18492 if (isDragging || (dx || dy) && (Math.abs(self2.startX - x2) >= dragMinimum || Math.abs(self2.startY - y3) >= dragMinimum)) { 18493 dragged || (dragged = isDragging ? 2 : 1); 18494 isDragging || (self2.isDragging = true); 18495 onTouchOrPointerDelta(dx, dy); 18496 } 18497 }, _onPress = self2.onPress = function(e11) { 18498 if (_ignoreCheck(e11, 1) || e11 && e11.button) { 18499 return; 18500 } 18501 self2.axis = axis = null; 18502 onStopDelayedCall.pause(); 18503 self2.isPressed = true; 18504 e11 = _getEvent(e11); 18505 prevDeltaX = prevDeltaY = 0; 18506 self2.startX = self2.x = e11.clientX; 18507 self2.startY = self2.y = e11.clientY; 18508 self2._vx.reset(); 18509 self2._vy.reset(); 18510 _addListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, passive, true); 18511 self2.deltaX = self2.deltaY = 0; 18512 onPress && onPress(self2); 18513 }, _onRelease = self2.onRelease = function(e11) { 18514 if (_ignoreCheck(e11, 1)) { 18515 return; 18516 } 18517 _removeListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, true); 18518 var isTrackingDrag = !isNaN(self2.y - self2.startY), wasDragging = self2.isDragging, isDragNotClick = wasDragging && (Math.abs(self2.x - self2.startX) > 3 || Math.abs(self2.y - self2.startY) > 3), eventData = _getEvent(e11); 18519 if (!isDragNotClick && isTrackingDrag) { 18520 self2._vx.reset(); 18521 self2._vy.reset(); 18522 if (preventDefault && allowClicks) { 18523 gsap2.delayedCall(0.08, function() { 18524 if (_getTime() - onClickTime > 300 && !e11.defaultPrevented) { 18525 if (e11.target.click) { 18526 e11.target.click(); 18527 } else if (ownerDoc.createEvent) { 18528 var syntheticEvent = ownerDoc.createEvent("MouseEvents"); 18529 syntheticEvent.initMouseEvent("click", true, true, _win3, 1, eventData.screenX, eventData.screenY, eventData.clientX, eventData.clientY, false, false, false, false, 0, null); 18530 e11.target.dispatchEvent(syntheticEvent); 18531 } 18532 } 18533 }); 18534 } 18535 } 18536 self2.isDragging = self2.isGesturing = self2.isPressed = false; 18537 onStop && wasDragging && !isNormalizer && onStopDelayedCall.restart(true); 18538 dragged && update(); 18539 onDragEnd && wasDragging && onDragEnd(self2); 18540 onRelease && onRelease(self2, isDragNotClick); 18541 }, _onGestureStart = function _onGestureStart2(e11) { 18542 return e11.touches && e11.touches.length > 1 && (self2.isGesturing = true) && onGestureStart(e11, self2.isDragging); 18543 }, _onGestureEnd = function _onGestureEnd2() { 18544 return (self2.isGesturing = false) || onGestureEnd(self2); 18545 }, onScroll = function onScroll2(e11) { 18546 if (_ignoreCheck(e11)) { 18547 return; 18548 } 18549 var x2 = scrollFuncX(), y3 = scrollFuncY(); 18550 onDelta((x2 - scrollX) * scrollSpeed, (y3 - scrollY) * scrollSpeed, 1); 18551 scrollX = x2; 18552 scrollY = y3; 18553 onStop && onStopDelayedCall.restart(true); 18554 }, _onWheel = function _onWheel2(e11) { 18555 if (_ignoreCheck(e11)) { 18556 return; 18557 } 18558 e11 = _getEvent(e11, preventDefault); 18559 onWheel && (wheeled = true); 18560 var multiplier = (e11.deltaMode === 1 ? lineHeight : e11.deltaMode === 2 ? _win3.innerHeight : 1) * wheelSpeed; 18561 onDelta(e11.deltaX * multiplier, e11.deltaY * multiplier, 0); 18562 onStop && !isNormalizer && onStopDelayedCall.restart(true); 18563 }, _onMove = function _onMove2(e11) { 18564 if (_ignoreCheck(e11)) { 18565 return; 18566 } 18567 var x2 = e11.clientX, y3 = e11.clientY, dx = x2 - self2.x, dy = y3 - self2.y; 18568 self2.x = x2; 18569 self2.y = y3; 18570 moved = true; 18571 onStop && onStopDelayedCall.restart(true); 18572 (dx || dy) && onTouchOrPointerDelta(dx, dy); 18573 }, _onHover = function _onHover2(e11) { 18574 self2.event = e11; 18575 onHover(self2); 18576 }, _onHoverEnd = function _onHoverEnd2(e11) { 18577 self2.event = e11; 18578 onHoverEnd(self2); 18579 }, _onClick = function _onClick2(e11) { 18580 return _ignoreCheck(e11) || _getEvent(e11, preventDefault) && onClick(self2); 18581 }; 18582 onStopDelayedCall = self2._dc = gsap2.delayedCall(onStopDelay || 0.25, onStopFunc).pause(); 18583 self2.deltaX = self2.deltaY = 0; 18584 self2._vx = _getVelocityProp(0, 50, true); 18585 self2._vy = _getVelocityProp(0, 50, true); 18586 self2.scrollX = scrollFuncX; 18587 self2.scrollY = scrollFuncY; 18588 self2.isDragging = self2.isGesturing = self2.isPressed = false; 18589 _context2(this); 18590 self2.enable = function(e11) { 18591 if (!self2.isEnabled) { 18592 _addListener(isViewport ? ownerDoc : target, "scroll", _onScroll); 18593 type.indexOf("scroll") >= 0 && _addListener(isViewport ? ownerDoc : target, "scroll", onScroll, passive, capture); 18594 type.indexOf("wheel") >= 0 && _addListener(target, "wheel", _onWheel, passive, capture); 18595 if (type.indexOf("touch") >= 0 && _isTouch || type.indexOf("pointer") >= 0) { 18596 _addListener(target, _eventTypes[0], _onPress, passive, capture); 18597 _addListener(ownerDoc, _eventTypes[2], _onRelease); 18598 _addListener(ownerDoc, _eventTypes[3], _onRelease); 18599 allowClicks && _addListener(target, "click", clickCapture, true, true); 18600 onClick && _addListener(target, "click", _onClick); 18601 onGestureStart && _addListener(ownerDoc, "gesturestart", _onGestureStart); 18602 onGestureEnd && _addListener(ownerDoc, "gestureend", _onGestureEnd); 18603 onHover && _addListener(target, _pointerType + "enter", _onHover); 18604 onHoverEnd && _addListener(target, _pointerType + "leave", _onHoverEnd); 18605 onMove && _addListener(target, _pointerType + "move", _onMove); 18606 } 18607 self2.isEnabled = true; 18608 self2.isDragging = self2.isGesturing = self2.isPressed = moved = dragged = false; 18609 self2._vx.reset(); 18610 self2._vy.reset(); 18611 scrollX = scrollFuncX(); 18612 scrollY = scrollFuncY(); 18613 e11 && e11.type && _onPress(e11); 18614 onEnable && onEnable(self2); 18615 } 18616 return self2; 18617 }; 18618 self2.disable = function() { 18619 if (self2.isEnabled) { 18620 _observers.filter(function(o11) { 18621 return o11 !== self2 && _isViewport(o11.target); 18622 }).length || _removeListener(isViewport ? ownerDoc : target, "scroll", _onScroll); 18623 if (self2.isPressed) { 18624 self2._vx.reset(); 18625 self2._vy.reset(); 18626 _removeListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, true); 18627 } 18628 _removeListener(isViewport ? ownerDoc : target, "scroll", onScroll, capture); 18629 _removeListener(target, "wheel", _onWheel, capture); 18630 _removeListener(target, _eventTypes[0], _onPress, capture); 18631 _removeListener(ownerDoc, _eventTypes[2], _onRelease); 18632 _removeListener(ownerDoc, _eventTypes[3], _onRelease); 18633 _removeListener(target, "click", clickCapture, true); 18634 _removeListener(target, "click", _onClick); 18635 _removeListener(ownerDoc, "gesturestart", _onGestureStart); 18636 _removeListener(ownerDoc, "gestureend", _onGestureEnd); 18637 _removeListener(target, _pointerType + "enter", _onHover); 18638 _removeListener(target, _pointerType + "leave", _onHoverEnd); 18639 _removeListener(target, _pointerType + "move", _onMove); 18640 self2.isEnabled = self2.isPressed = self2.isDragging = false; 18641 onDisable && onDisable(self2); 18642 } 18643 }; 18644 self2.kill = self2.revert = function() { 18645 self2.disable(); 18646 var i10 = _observers.indexOf(self2); 18647 i10 >= 0 && _observers.splice(i10, 1); 18648 _normalizer === self2 && (_normalizer = 0); 18649 }; 18650 _observers.push(self2); 18651 isNormalizer && _isViewport(target) && (_normalizer = self2); 18652 self2.enable(event); 18653 }; 18654 _createClass(Observer2, [{ 18655 key: "velocityX", 18656 get: function get() { 18657 return this._vx.getVelocity(); 18658 } 18659 }, { 18660 key: "velocityY", 18661 get: function get() { 18662 return this._vy.getVelocity(); 18663 } 18664 }]); 18665 return Observer2; 18666 })(); 18667 Observer.version = "3.14.2"; 18668 Observer.create = function(vars) { 18669 return new Observer(vars); 18670 }; 18671 Observer.register = _initCore3; 18672 Observer.getAll = function() { 18673 return _observers.slice(); 18674 }; 18675 Observer.getById = function(id) { 18676 return _observers.filter(function(o11) { 18677 return o11.vars.id === id; 18678 })[0]; 18679 }; 18680 _getGSAP() && gsap2.registerPlugin(Observer); 18681 } 18682 }); 18683 18684
vendor: 97,346 bytes, lines 18684-20554
18684// node_modules/gsap/ScrollTrigger.js 18685 var gsap3, _coreInitted3, _win4, _doc4, _docEl2, _body2, _root2, _resizeDelay, _toArray, _clamp4, _time2, _syncInterval, _refreshing, _pointerIsDown, _transformProp2, _i, _prevWidth, _prevHeight, _autoRefresh, _sort, _suppressOverwrites2, _ignoreResize, _normalizer2, _ignoreMobileResize, _baseScreenHeight, _baseScreenWidth, _fixIOSBug, _context3, _scrollRestoration, _div100vh, _100vh, _isReverted, _clampingMax, _limitCallbacks, _startup2, _getTime2, _time1, _lastScrollTime, _enabled, _parseClamp, _keepClamp, _rafBugFix, _pointerDownHandler, _pointerUpHandler, _passThrough3, _round3, _windowExists5, _getGSAP3, _isViewport3, _getViewportDimension, _getBoundsFunc, _getSizeFunc, _getOffsetsFunc, _maxScroll, _iterateAutoRefresh, _isString3, _isFunction3, _isNumber3, _isObject3, _endAnimation, _callback3, _abs, _left, _top, _right, _bottom, _width, _height, _Right, _Left, _Top, _Bottom, _padding, _margin, _Width, _Height, _px, _getComputedStyle, _makePositionable, _setDefaults3, _getBounds, _getSize, _getLabelRatioArray, _getClosestLabel, _snapDirectional, _getLabelAtDirection, _multiListener, _addListener3, _removeListener3, _wheelListener, _markerDefaults, _defaults2, _keywords, _offsetToPx, _createMarker, _positionMarker, _triggers, _ids, _rafID, _sync, _onScroll3, _setBaseDimensions, _onResize, _listeners2, _emptyArray2, _softRefresh, _dispatch3, _savedStyles, _revertRecorded, _recordScrollPositions, _revertAll, _clearScrollMemory, _refreshingAll, _refreshID, _queueRefreshID, _queueRefreshAll, _refresh100vh, _hideAllMarkers, _refreshAll, _lastScroll, _direction, _primary, _updateAll, _propNamesToCopy, _stateProps, _swapPinOut, _swapPinIn, _capsExp2, _setState, _getState, _copyState, _winOffsets, _parsePosition3, _prefixExp, _reparent, _interruptionTracker, _shiftMarker, _getTweenCreator, ScrollTrigger2, _clampScrollAndGetDurationMultiplier, _allowNativePanning, _overflow, _nestedScroll, _inputObserver, _inputExp, _inputIsFocused, _captureInputs, _getScrollNormalizer; 18686 var init_ScrollTrigger = __esm({ 18687 "node_modules/gsap/ScrollTrigger.js"() { 18688 init_Observer(); 18689 _startup2 = 1; 18690 _getTime2 = Date.now; 18691 _time1 = _getTime2(); 18692 _lastScrollTime = 0; 18693 _enabled = 0; 18694 _parseClamp = function _parseClamp2(value, type, self2) { 18695 var clamp3 = _isString3(value) && (value.substr(0, 6) === "clamp(" || value.indexOf("max") > -1); 18696 self2["_" + type + "Clamp"] = clamp3; 18697 return clamp3 ? value.substr(6, value.length - 7) : value; 18698 }; 18699 _keepClamp = function _keepClamp2(value, clamp3) { 18700 return clamp3 && (!_isString3(value) || value.substr(0, 6) !== "clamp(") ? "clamp(" + value + ")" : value; 18701 }; 18702 _rafBugFix = function _rafBugFix2() { 18703 return _enabled && requestAnimationFrame(_rafBugFix2); 18704 }; 18705 _pointerDownHandler = function _pointerDownHandler2() { 18706 return _pointerIsDown = 1; 18707 }; 18708 _pointerUpHandler = function _pointerUpHandler2() { 18709 return _pointerIsDown = 0; 18710 }; 18711 _passThrough3 = function _passThrough4(v3) { 18712 return v3; 18713 }; 18714 _round3 = function _round4(value) { 18715 return Math.round(value * 1e5) / 1e5 || 0; 18716 }; 18717 _windowExists5 = function _windowExists6() { 18718 return typeof window !== "undefined"; 18719 }; 18720 _getGSAP3 = function _getGSAP4() { 18721 return gsap3 || _windowExists5() && (gsap3 = window.gsap) && gsap3.registerPlugin && gsap3; 18722 }; 18723 _isViewport3 = function _isViewport4(e11) { 18724 return !!~_root2.indexOf(e11); 18725 }; 18726 _getViewportDimension = function _getViewportDimension2(dimensionProperty) { 18727 return (dimensionProperty === "Height" ? _100vh : _win4["inner" + dimensionProperty]) || _docEl2["client" + dimensionProperty] || _body2["client" + dimensionProperty]; 18728 }; 18729 _getBoundsFunc = function _getBoundsFunc2(element) { 18730 return _getProxyProp(element, "getBoundingClientRect") || (_isViewport3(element) ? function() { 18731 _winOffsets.width = _win4.innerWidth; 18732 _winOffsets.height = _100vh; 18733 return _winOffsets; 18734 } : function() { 18735 return _getBounds(element); 18736 }); 18737 }; 18738 _getSizeFunc = function _getSizeFunc2(scroller, isViewport, _ref) { 18739 var d3 = _ref.d, d22 = _ref.d2, a8 = _ref.a; 18740 return (a8 = _getProxyProp(scroller, "getBoundingClientRect")) ? function() { 18741 return a8()[d3]; 18742 } : function() { 18743 return (isViewport ? _getViewportDimension(d22) : scroller["client" + d22]) || 0; 18744 }; 18745 }; 18746 _getOffsetsFunc = function _getOffsetsFunc2(element, isViewport) { 18747 return !isViewport || ~_proxies.indexOf(element) ? _getBoundsFunc(element) : function() { 18748 return _winOffsets; 18749 }; 18750 }; 18751 _maxScroll = function _maxScroll2(element, _ref2) { 18752 var s13 = _ref2.s, d22 = _ref2.d2, d3 = _ref2.d, a8 = _ref2.a; 18753 return Math.max(0, (s13 = "scroll" + d22) && (a8 = _getProxyProp(element, s13)) ? a8() - _getBoundsFunc(element)()[d3] : _isViewport3(element) ? (_docEl2[s13] || _body2[s13]) - _getViewportDimension(d22) : element[s13] - element["offset" + d22]); 18754 }; 18755 _iterateAutoRefresh = function _iterateAutoRefresh2(func, events) { 18756 for (var i10 = 0; i10 < _autoRefresh.length; i10 += 3) { 18757 (!events || ~events.indexOf(_autoRefresh[i10 + 1])) && func(_autoRefresh[i10], _autoRefresh[i10 + 1], _autoRefresh[i10 + 2]); 18758 } 18759 }; 18760 _isString3 = function _isString4(value) { 18761 return typeof value === "string"; 18762 }; 18763 _isFunction3 = function _isFunction4(value) { 18764 return typeof value === "function"; 18765 }; 18766 _isNumber3 = function _isNumber4(value) { 18767 return typeof value === "number"; 18768 }; 18769 _isObject3 = function _isObject4(value) { 18770 return typeof value === "object"; 18771 }; 18772 _endAnimation = function _endAnimation2(animation, reversed, pause) { 18773 return animation && animation.progress(reversed ? 0 : 1) && pause && animation.pause(); 18774 }; 18775 _callback3 = function _callback4(self2, func) { 18776 if (self2.enabled) { 18777 var result = self2._ctx ? self2._ctx.add(function() { 18778 return func(self2); 18779 }) : func(self2); 18780 result && result.totalTime && (self2.callbackAnimation = result); 18781 } 18782 }; 18783 _abs = Math.abs; 18784 _left = "left"; 18785 _top = "top"; 18786 _right = "right"; 18787 _bottom = "bottom"; 18788 _width = "width"; 18789 _height = "height"; 18790 _Right = "Right"; 18791 _Left = "Left"; 18792 _Top = "Top"; 18793 _Bottom = "Bottom"; 18794 _padding = "padding"; 18795 _margin = "margin"; 18796 _Width = "Width"; 18797 _Height = "Height"; 18798 _px = "px"; 18799 _getComputedStyle = function _getComputedStyle2(element) { 18800 return _win4.getComputedStyle(element); 18801 }; 18802 _makePositionable = function _makePositionable2(element) { 18803 var position = _getComputedStyle(element).position; 18804 element.style.position = position === "absolute" || position === "fixed" ? position : "relative"; 18805 }; 18806 _setDefaults3 = function _setDefaults4(obj, defaults2) { 18807 for (var p2 in defaults2) { 18808 p2 in obj || (obj[p2] = defaults2[p2]); 18809 } 18810 return obj; 18811 }; 18812 _getBounds = function _getBounds2(element, withoutTransforms) { 18813 var tween = withoutTransforms && _getComputedStyle(element)[_transformProp2] !== "matrix(1, 0, 0, 1, 0, 0)" && gsap3.to(element, { 18814 x: 0, 18815 y: 0, 18816 xPercent: 0, 18817 yPercent: 0, 18818 rotation: 0, 18819 rotationX: 0, 18820 rotationY: 0, 18821 scale: 1, 18822 skewX: 0, 18823 skewY: 0 18824 }).progress(1), bounds = element.getBoundingClientRect(); 18825 tween && tween.progress(0).kill(); 18826 return bounds; 18827 }; 18828 _getSize = function _getSize2(element, _ref3) { 18829 var d22 = _ref3.d2; 18830 return element["offset" + d22] || element["client" + d22] || 0; 18831 }; 18832 _getLabelRatioArray = function _getLabelRatioArray2(timeline2) { 18833 var a8 = [], labels = timeline2.labels, duration = timeline2.duration(), p2; 18834 for (p2 in labels) { 18835 a8.push(labels[p2] / duration); 18836 } 18837 return a8; 18838 }; 18839 _getClosestLabel = function _getClosestLabel2(animation) { 18840 return function(value) { 18841 return gsap3.utils.snap(_getLabelRatioArray(animation), value); 18842 }; 18843 }; 18844 _snapDirectional = function _snapDirectional2(snapIncrementOrArray) { 18845 var snap3 = gsap3.utils.snap(snapIncrementOrArray), a8 = Array.isArray(snapIncrementOrArray) && snapIncrementOrArray.slice(0).sort(function(a9, b3) { 18846 return a9 - b3; 18847 }); 18848 return a8 ? function(value, direction, threshold) { 18849 if (threshold === void 0) { 18850 threshold = 1e-3; 18851 } 18852 var i10; 18853 if (!direction) { 18854 return snap3(value); 18855 } 18856 if (direction > 0) { 18857 value -= threshold; 18858 for (i10 = 0; i10 < a8.length; i10++) { 18859 if (a8[i10] >= value) { 18860 return a8[i10]; 18861 } 18862 } 18863 return a8[i10 - 1]; 18864 } else { 18865 i10 = a8.length; 18866 value += threshold; 18867 while (i10--) { 18868 if (a8[i10] <= value) { 18869 return a8[i10]; 18870 } 18871 } 18872 } 18873 return a8[0]; 18874 } : function(value, direction, threshold) { 18875 if (threshold === void 0) { 18876 threshold = 1e-3; 18877 } 18878 var snapped = snap3(value); 18879 return !direction || Math.abs(snapped - value) < threshold || snapped - value < 0 === direction < 0 ? snapped : snap3(direction < 0 ? value - snapIncrementOrArray : value + snapIncrementOrArray); 18880 }; 18881 }; 18882 _getLabelAtDirection = function _getLabelAtDirection2(timeline2) { 18883 return function(value, st) { 18884 return _snapDirectional(_getLabelRatioArray(timeline2))(value, st.direction); 18885 }; 18886 }; 18887 _multiListener = function _multiListener2(func, element, types, callback) { 18888 return types.split(",").forEach(function(type) { 18889 return func(element, type, callback); 18890 }); 18891 }; 18892 _addListener3 = function _addListener4(element, type, func, nonPassive, capture) { 18893 return element.addEventListener(type, func, { 18894 passive: !nonPassive, 18895 capture: !!capture 18896 }); 18897 }; 18898 _removeListener3 = function _removeListener4(element, type, func, capture) { 18899 return element.removeEventListener(type, func, !!capture); 18900 }; 18901 _wheelListener = function _wheelListener2(func, el, scrollFunc) { 18902 scrollFunc = scrollFunc && scrollFunc.wheelHandler; 18903 if (scrollFunc) { 18904 func(el, "wheel", scrollFunc); 18905 func(el, "touchmove", scrollFunc); 18906 } 18907 }; 18908 _markerDefaults = { 18909 startColor: "green", 18910 endColor: "red", 18911 indent: 0, 18912 fontSize: "16px", 18913 fontWeight: "normal" 18914 }; 18915 _defaults2 = { 18916 toggleActions: "play", 18917 anticipatePin: 0 18918 }; 18919 _keywords = { 18920 top: 0, 18921 left: 0, 18922 center: 0.5, 18923 bottom: 1, 18924 right: 1 18925 }; 18926 _offsetToPx = function _offsetToPx2(value, size) { 18927 if (_isString3(value)) { 18928 var eqIndex = value.indexOf("="), relative = ~eqIndex ? +(value.charAt(eqIndex - 1) + 1) * parseFloat(value.substr(eqIndex + 1)) : 0; 18929 if (~eqIndex) { 18930 value.indexOf("%") > eqIndex && (relative *= size / 100); 18931 value = value.substr(0, eqIndex - 1); 18932 } 18933 value = relative + (value in _keywords ? _keywords[value] * size : ~value.indexOf("%") ? parseFloat(value) * size / 100 : parseFloat(value) || 0); 18934 } 18935 return value; 18936 }; 18937 _createMarker = function _createMarker2(type, name, container, direction, _ref4, offset, matchWidthEl, containerAnimation) { 18938 var startColor = _ref4.startColor, endColor = _ref4.endColor, fontSize = _ref4.fontSize, indent = _ref4.indent, fontWeight = _ref4.fontWeight; 18939 var e11 = _doc4.createElement("div"), useFixedPosition = _isViewport3(container) || _getProxyProp(container, "pinType") === "fixed", isScroller = type.indexOf("scroller") !== -1, parent = useFixedPosition ? _body2 : container, isStart = type.indexOf("start") !== -1, color = isStart ? startColor : endColor, css = "border-color:" + color + ";font-size:" + fontSize + ";color:" + color + ";font-weight:" + fontWeight + ";pointer-events:none;white-space:nowrap;font-family:sans-serif,Arial;z-index:1000;padding:4px 8px;border-width:0;border-style:solid;"; 18940 css += "position:" + ((isScroller || containerAnimation) && useFixedPosition ? "fixed;" : "absolute;"); 18941 (isScroller || containerAnimation || !useFixedPosition) && (css += (direction === _vertical ? _right : _bottom) + ":" + (offset + parseFloat(indent)) + "px;"); 18942 matchWidthEl && (css += "box-sizing:border-box;text-align:left;width:" + matchWidthEl.offsetWidth + "px;"); 18943 e11._isStart = isStart; 18944 e11.setAttribute("class", "gsap-marker-" + type + (name ? " marker-" + name : "")); 18945 e11.style.cssText = css; 18946 e11.innerText = name || name === 0 ? type + "-" + name : type; 18947 parent.children[0] ? parent.insertBefore(e11, parent.children[0]) : parent.appendChild(e11); 18948 e11._offset = e11["offset" + direction.op.d2]; 18949 _positionMarker(e11, 0, direction, isStart); 18950 return e11; 18951 }; 18952 _positionMarker = function _positionMarker2(marker, start, direction, flipped) { 18953 var vars = { 18954 display: "block" 18955 }, side = direction[flipped ? "os2" : "p2"], oppositeSide = direction[flipped ? "p2" : "os2"]; 18956 marker._isFlipped = flipped; 18957 vars[direction.a + "Percent"] = flipped ? -100 : 0; 18958 vars[direction.a] = flipped ? "1px" : 0; 18959 vars["border" + side + _Width] = 1; 18960 vars["border" + oppositeSide + _Width] = 0; 18961 vars[direction.p] = start + "px"; 18962 gsap3.set(marker, vars); 18963 }; 18964 _triggers = []; 18965 _ids = {}; 18966 _sync = function _sync2() { 18967 return _getTime2() - _lastScrollTime > 34 && (_rafID || (_rafID = requestAnimationFrame(_updateAll))); 18968 }; 18969 _onScroll3 = function _onScroll4() { 18970 if (!_normalizer2 || !_normalizer2.isPressed || _normalizer2.startX > _body2.clientWidth) { 18971 _scrollers.cache++; 18972 if (_normalizer2) { 18973 _rafID || (_rafID = requestAnimationFrame(_updateAll)); 18974 } else { 18975 _updateAll(); 18976 } 18977 _lastScrollTime || _dispatch3("scrollStart"); 18978 _lastScrollTime = _getTime2(); 18979 } 18980 }; 18981 _setBaseDimensions = function _setBaseDimensions2() { 18982 _baseScreenWidth = _win4.innerWidth; 18983 _baseScreenHeight = _win4.innerHeight; 18984 }; 18985 _onResize = function _onResize2(force) { 18986 _scrollers.cache++; 18987 (force === true || !_refreshing && !_ignoreResize && !_doc4.fullscreenElement && !_doc4.webkitFullscreenElement && (!_ignoreMobileResize || _baseScreenWidth !== _win4.innerWidth || Math.abs(_win4.innerHeight - _baseScreenHeight) > _win4.innerHeight * 0.25)) && _resizeDelay.restart(true); 18988 }; 18989 _listeners2 = {}; 18990 _emptyArray2 = []; 18991 _softRefresh = function _softRefresh2() { 18992 return _removeListener3(ScrollTrigger2, "scrollEnd", _softRefresh2) || _refreshAll(true); 18993 }; 18994 _dispatch3 = function _dispatch4(type) { 18995 return _listeners2[type] && _listeners2[type].map(function(f3) { 18996 return f3(); 18997 }) || _emptyArray2; 18998 }; 18999 _savedStyles = []; 19000 _revertRecorded = function _revertRecorded2(media) { 19001 for (var i10 = 0; i10 < _savedStyles.length; i10 += 5) { 19002 if (!media || _savedStyles[i10 + 4] && _savedStyles[i10 + 4].query === media) { 19003 _savedStyles[i10].style.cssText = _savedStyles[i10 + 1]; 19004 _savedStyles[i10].getBBox && _savedStyles[i10].setAttribute("transform", _savedStyles[i10 + 2] || ""); 19005 _savedStyles[i10 + 3].uncache = 1; 19006 } 19007 } 19008 }; 19009 _recordScrollPositions = function _recordScrollPositions2() { 19010 return _scrollers.forEach(function(obj) { 19011 return _isFunction3(obj) && ++obj.cacheID && (obj.rec = obj()); 19012 }); 19013 }; 19014 _revertAll = function _revertAll2(kill, media) { 19015 var trigger; 19016 for (_i = 0; _i < _triggers.length; _i++) { 19017 trigger = _triggers[_i]; 19018 if (trigger && (!media || trigger._ctx === media)) { 19019 if (kill) { 19020 trigger.kill(1); 19021 } else { 19022 trigger.revert(true, true); 19023 } 19024 } 19025 } 19026 _isReverted = true; 19027 media && _revertRecorded(media); 19028 media || _dispatch3("revert"); 19029 }; 19030 _clearScrollMemory = function _clearScrollMemory2(scrollRestoration, force) { 19031 _scrollers.cache++; 19032 (force || !_refreshingAll) && _scrollers.forEach(function(obj) { 19033 return _isFunction3(obj) && obj.cacheID++ && (obj.rec = 0); 19034 }); 19035 _isString3(scrollRestoration) && (_win4.history.scrollRestoration = _scrollRestoration = scrollRestoration); 19036 }; 19037 _refreshID = 0; 19038 _queueRefreshAll = function _queueRefreshAll2() { 19039 if (_queueRefreshID !== _refreshID) { 19040 var id = _queueRefreshID = _refreshID; 19041 requestAnimationFrame(function() { 19042 return id === _refreshID && _refreshAll(true); 19043 }); 19044 } 19045 }; 19046 _refresh100vh = function _refresh100vh2() { 19047 _body2.appendChild(_div100vh); 19048 _100vh = !_normalizer2 && _div100vh.offsetHeight || _win4.innerHeight; 19049 _body2.removeChild(_div100vh); 19050 }; 19051 _hideAllMarkers = function _hideAllMarkers2(hide) { 19052 return _toArray(".gsap-marker-start, .gsap-marker-end, .gsap-marker-scroller-start, .gsap-marker-scroller-end").forEach(function(el) { 19053 return el.style.display = hide ? "none" : "block"; 19054 }); 19055 }; 19056 _refreshAll = function _refreshAll2(force, skipRevert) { 19057 _docEl2 = _doc4.documentElement; 19058 _body2 = _doc4.body; 19059 _root2 = [_win4, _doc4, _docEl2, _body2]; 19060 if (_lastScrollTime && !force && !_isReverted) { 19061 _addListener3(ScrollTrigger2, "scrollEnd", _softRefresh); 19062 return; 19063 } 19064 _refresh100vh(); 19065 _refreshingAll = ScrollTrigger2.isRefreshing = true; 19066 _isReverted || _recordScrollPositions(); 19067 var refreshInits = _dispatch3("refreshInit"); 19068 _sort && ScrollTrigger2.sort(); 19069 skipRevert || _revertAll(); 19070 _scrollers.forEach(function(obj) { 19071 if (_isFunction3(obj)) { 19072 obj.smooth && (obj.target.style.scrollBehavior = "auto"); 19073 obj(0); 19074 } 19075 }); 19076 _triggers.slice(0).forEach(function(t11) { 19077 return t11.refresh(); 19078 }); 19079 _isReverted = false; 19080 _triggers.forEach(function(t11) { 19081 if (t11._subPinOffset && t11.pin) { 19082 var prop = t11.vars.horizontal ? "offsetWidth" : "offsetHeight", original = t11.pin[prop]; 19083 t11.revert(true, 1); 19084 t11.adjustPinSpacing(t11.pin[prop] - original); 19085 t11.refresh(); 19086 } 19087 }); 19088 _clampingMax = 1; 19089 _hideAllMarkers(true); 19090 _triggers.forEach(function(t11) { 19091 var max = _maxScroll(t11.scroller, t11._dir), endClamp = t11.vars.end === "max" || t11._endClamp && t11.end > max, startClamp = t11._startClamp && t11.start >= max; 19092 (endClamp || startClamp) && t11.setPositions(startClamp ? max - 1 : t11.start, endClamp ? Math.max(startClamp ? max : t11.start + 1, max) : t11.end, true); 19093 }); 19094 _hideAllMarkers(false); 19095 _clampingMax = 0; 19096 refreshInits.forEach(function(result) { 19097 return result && result.render && result.render(-1); 19098 }); 19099 _scrollers.forEach(function(obj) { 19100 if (_isFunction3(obj)) { 19101 obj.smooth && requestAnimationFrame(function() { 19102 return obj.target.style.scrollBehavior = "smooth"; 19103 }); 19104 obj.rec && obj(obj.rec); 19105 } 19106 }); 19107 _clearScrollMemory(_scrollRestoration, 1); 19108 _resizeDelay.pause(); 19109 _refreshID++; 19110 _refreshingAll = 2; 19111 _updateAll(2); 19112 _triggers.forEach(function(t11) { 19113 return _isFunction3(t11.vars.onRefresh) && t11.vars.onRefresh(t11); 19114 }); 19115 _refreshingAll = ScrollTrigger2.isRefreshing = false; 19116 _dispatch3("refresh"); 19117 }; 19118 _lastScroll = 0; 19119 _direction = 1; 19120 _updateAll = function _updateAll2(force) { 19121 if (force === 2 || !_refreshingAll && !_isReverted) { 19122 ScrollTrigger2.isUpdating = true; 19123 _primary && _primary.update(0); 19124 var l10 = _triggers.length, time = _getTime2(), recordVelocity = time - _time1 >= 50, scroll = l10 && _triggers[0].scroll(); 19125 _direction = _lastScroll > scroll ? -1 : 1; 19126 _refreshingAll || (_lastScroll = scroll); 19127 if (recordVelocity) { 19128 if (_lastScrollTime && !_pointerIsDown && time - _lastScrollTime > 200) { 19129 _lastScrollTime = 0; 19130 _dispatch3("scrollEnd"); 19131 } 19132 _time2 = _time1; 19133 _time1 = time; 19134 } 19135 if (_direction < 0) { 19136 _i = l10; 19137 while (_i-- > 0) { 19138 _triggers[_i] && _triggers[_i].update(0, recordVelocity); 19139 } 19140 _direction = 1; 19141 } else { 19142 for (_i = 0; _i < l10; _i++) { 19143 _triggers[_i] && _triggers[_i].update(0, recordVelocity); 19144 } 19145 } 19146 ScrollTrigger2.isUpdating = false; 19147 } 19148 _rafID = 0; 19149 }; 19150 _propNamesToCopy = [_left, _top, _bottom, _right, _margin + _Bottom, _margin + _Right, _margin + _Top, _margin + _Left, "display", "flexShrink", "float", "zIndex", "gridColumnStart", "gridColumnEnd", "gridRowStart", "gridRowEnd", "gridArea", "justifySelf", "alignSelf", "placeSelf", "order"]; 19151 _stateProps = _propNamesToCopy.concat([_width, _height, "boxSizing", "max" + _Width, "max" + _Height, "position", _margin, _padding, _padding + _Top, _padding + _Right, _padding + _Bottom, _padding + _Left]); 19152 _swapPinOut = function _swapPinOut2(pin, spacer, state) { 19153 _setState(state); 19154 var cache = pin._gsap; 19155 if (cache.spacerIsNative) { 19156 _setState(cache.spacerState); 19157 } else if (pin._gsap.swappedIn) { 19158 var parent = spacer.parentNode; 19159 if (parent) { 19160 parent.insertBefore(pin, spacer); 19161 parent.removeChild(spacer); 19162 } 19163 } 19164 pin._gsap.swappedIn = false; 19165 }; 19166 _swapPinIn = function _swapPinIn2(pin, spacer, cs, spacerState) { 19167 if (!pin._gsap.swappedIn) { 19168 var i10 = _propNamesToCopy.length, spacerStyle = spacer.style, pinStyle = pin.style, p2; 19169 while (i10--) { 19170 p2 = _propNamesToCopy[i10]; 19171 spacerStyle[p2] = cs[p2]; 19172 } 19173 spacerStyle.position = cs.position === "absolute" ? "absolute" : "relative"; 19174 cs.display === "inline" && (spacerStyle.display = "inline-block"); 19175 pinStyle[_bottom] = pinStyle[_right] = "auto"; 19176 spacerStyle.flexBasis = cs.flexBasis || "auto"; 19177 spacerStyle.overflow = "visible"; 19178 spacerStyle.boxSizing = "border-box"; 19179 spacerStyle[_width] = _getSize(pin, _horizontal) + _px; 19180 spacerStyle[_height] = _getSize(pin, _vertical) + _px; 19181 spacerStyle[_padding] = pinStyle[_margin] = pinStyle[_top] = pinStyle[_left] = "0"; 19182 _setState(spacerState); 19183 pinStyle[_width] = pinStyle["max" + _Width] = cs[_width]; 19184 pinStyle[_height] = pinStyle["max" + _Height] = cs[_height]; 19185 pinStyle[_padding] = cs[_padding]; 19186 if (pin.parentNode !== spacer) { 19187 pin.parentNode.insertBefore(spacer, pin); 19188 spacer.appendChild(pin); 19189 } 19190 pin._gsap.swappedIn = true; 19191 } 19192 }; 19193 _capsExp2 = /([A-Z])/g; 19194 _setState = function _setState2(state) { 19195 if (state) { 19196 var style = state.t.style, l10 = state.length, i10 = 0, p2, value; 19197 (state.t._gsap || gsap3.core.getCache(state.t)).uncache = 1; 19198 for (; i10 < l10; i10 += 2) { 19199 value = state[i10 + 1]; 19200 p2 = state[i10]; 19201 if (value) { 19202 style[p2] = value; 19203 } else if (style[p2]) { 19204 style.removeProperty(p2.replace(_capsExp2, "-$1").toLowerCase()); 19205 } 19206 } 19207 } 19208 }; 19209 _getState = function _getState2(element) { 19210 var l10 = _stateProps.length, style = element.style, state = [], i10 = 0; 19211 for (; i10 < l10; i10++) { 19212 state.push(_stateProps[i10], style[_stateProps[i10]]); 19213 } 19214 state.t = element; 19215 return state; 19216 }; 19217 _copyState = function _copyState2(state, override, omitOffsets) { 19218 var result = [], l10 = state.length, i10 = omitOffsets ? 8 : 0, p2; 19219 for (; i10 < l10; i10 += 2) { 19220 p2 = state[i10]; 19221 result.push(p2, p2 in override ? override[p2] : state[i10 + 1]); 19222 } 19223 result.t = state.t; 19224 return result; 19225 }; 19226 _winOffsets = { 19227 left: 0, 19228 top: 0 19229 }; 19230 _parsePosition3 = function _parsePosition4(value, trigger, scrollerSize, direction, scroll, marker, markerScroller, self2, scrollerBounds, borderWidth, useFixedPosition, scrollerMax, containerAnimation, clampZeroProp) { 19231 _isFunction3(value) && (value = value(self2)); 19232 if (_isString3(value) && value.substr(0, 3) === "max") { 19233 value = scrollerMax + (value.charAt(4) === "=" ? _offsetToPx("0" + value.substr(3), scrollerSize) : 0); 19234 } 19235 var time = containerAnimation ? containerAnimation.time() : 0, p1, p2, element; 19236 containerAnimation && containerAnimation.seek(0); 19237 isNaN(value) || (value = +value); 19238 if (!_isNumber3(value)) { 19239 _isFunction3(trigger) && (trigger = trigger(self2)); 19240 var offsets = (value || "0").split(" "), bounds, localOffset, globalOffset, display; 19241 element = _getTarget(trigger, self2) || _body2; 19242 bounds = _getBounds(element) || {}; 19243 if ((!bounds || !bounds.left && !bounds.top) && _getComputedStyle(element).display === "none") { 19244 display = element.style.display; 19245 element.style.display = "block"; 19246 bounds = _getBounds(element); 19247 display ? element.style.display = display : element.style.removeProperty("display"); 19248 } 19249 localOffset = _offsetToPx(offsets[0], bounds[direction.d]); 19250 globalOffset = _offsetToPx(offsets[1] || "0", scrollerSize); 19251 value = bounds[direction.p] - scrollerBounds[direction.p] - borderWidth + localOffset + scroll - globalOffset; 19252 markerScroller && _positionMarker(markerScroller, globalOffset, direction, scrollerSize - globalOffset < 20 || markerScroller._isStart && globalOffset > 20); 19253 scrollerSize -= scrollerSize - globalOffset; 19254 } else { 19255 containerAnimation && (value = gsap3.utils.mapRange(containerAnimation.scrollTrigger.start, containerAnimation.scrollTrigger.end, 0, scrollerMax, value)); 19256 markerScroller && _positionMarker(markerScroller, scrollerSize, direction, true); 19257 } 19258 if (clampZeroProp) { 19259 self2[clampZeroProp] = value || -1e-3; 19260 value < 0 && (value = 0); 19261 } 19262 if (marker) { 19263 var position = value + scrollerSize, isStart = marker._isStart; 19264 p1 = "scroll" + direction.d2; 19265 _positionMarker(marker, position, direction, isStart && position > 20 || !isStart && (useFixedPosition ? Math.max(_body2[p1], _docEl2[p1]) : marker.parentNode[p1]) <= position + 1); 19266 if (useFixedPosition) { 19267 scrollerBounds = _getBounds(markerScroller); 19268 useFixedPosition && (marker.style[direction.op.p] = scrollerBounds[direction.op.p] - direction.op.m - marker._offset + _px); 19269 } 19270 } 19271 if (containerAnimation && element) { 19272 p1 = _getBounds(element); 19273 containerAnimation.seek(scrollerMax); 19274 p2 = _getBounds(element); 19275 containerAnimation._caScrollDist = p1[direction.p] - p2[direction.p]; 19276 value = value / containerAnimation._caScrollDist * scrollerMax; 19277 } 19278 containerAnimation && containerAnimation.seek(time); 19279 return containerAnimation ? value : Math.round(value); 19280 }; 19281 _prefixExp = /(webkit|moz|length|cssText|inset)/i; 19282 _reparent = function _reparent2(element, parent, top, left) { 19283 if (element.parentNode !== parent) { 19284 var style = element.style, p2, cs; 19285 if (parent === _body2) { 19286 element._stOrig = style.cssText; 19287 cs = _getComputedStyle(element); 19288 for (p2 in cs) { 19289 if (!+p2 && !_prefixExp.test(p2) && cs[p2] && typeof style[p2] === "string" && p2 !== "0") { 19290 style[p2] = cs[p2]; 19291 } 19292 } 19293 style.top = top; 19294 style.left = left; 19295 } else { 19296 style.cssText = element._stOrig; 19297 } 19298 gsap3.core.getCache(element).uncache = 1; 19299 parent.appendChild(element); 19300 } 19301 }; 19302 _interruptionTracker = function _interruptionTracker2(getValueFunc, initialValue, onInterrupt) { 19303 var last1 = initialValue, last2 = last1; 19304 return function(value) { 19305 var current = Math.round(getValueFunc()); 19306 if (current !== last1 && current !== last2 && Math.abs(current - last1) > 3 && Math.abs(current - last2) > 3) { 19307 value = current; 19308 onInterrupt && onInterrupt(); 19309 } 19310 last2 = last1; 19311 last1 = Math.round(value); 19312 return last1; 19313 }; 19314 }; 19315 _shiftMarker = function _shiftMarker2(marker, direction, value) { 19316 var vars = {}; 19317 vars[direction.p] = "+=" + value; 19318 gsap3.set(marker, vars); 19319 }; 19320 _getTweenCreator = function _getTweenCreator2(scroller, direction) { 19321 var getScroll = _getScrollFunc(scroller, direction), prop = "_scroll" + direction.p2, getTween = function getTween2(scrollTo, vars, initialValue, change1, change2) { 19322 var tween = getTween2.tween, onComplete = vars.onComplete, modifiers = {}; 19323 initialValue = initialValue || getScroll(); 19324 var checkForInterruption = _interruptionTracker(getScroll, initialValue, function() { 19325 tween.kill(); 19326 getTween2.tween = 0; 19327 }); 19328 change2 = change1 && change2 || 0; 19329 change1 = change1 || scrollTo - initialValue; 19330 tween && tween.kill(); 19331 vars[prop] = scrollTo; 19332 vars.inherit = false; 19333 vars.modifiers = modifiers; 19334 modifiers[prop] = function() { 19335 return checkForInterruption(initialValue + change1 * tween.ratio + change2 * tween.ratio * tween.ratio); 19336 }; 19337 vars.onUpdate = function() { 19338 _scrollers.cache++; 19339 getTween2.tween && _updateAll(); 19340 }; 19341 vars.onComplete = function() { 19342 getTween2.tween = 0; 19343 onComplete && onComplete.call(tween); 19344 }; 19345 tween = getTween2.tween = gsap3.to(scroller, vars); 19346 return tween; 19347 }; 19348 scroller[prop] = getScroll; 19349 getScroll.wheelHandler = function() { 19350 return getTween.tween && getTween.tween.kill() && (getTween.tween = 0); 19351 }; 19352 _addListener3(scroller, "wheel", getScroll.wheelHandler); 19353 ScrollTrigger2.isTouch && _addListener3(scroller, "touchmove", getScroll.wheelHandler); 19354 return getTween; 19355 }; 19356 ScrollTrigger2 = /* @__PURE__ */ (function() { 19357 function ScrollTrigger4(vars, animation) { 19358 _coreInitted3 || ScrollTrigger4.register(gsap3) || console.warn("Please gsap.registerPlugin(ScrollTrigger)"); 19359 _context3(this); 19360 this.init(vars, animation); 19361 } 19362 var _proto = ScrollTrigger4.prototype; 19363 _proto.init = function init5(vars, animation) { 19364 this.progress = this.start = 0; 19365 this.vars && this.kill(true, true); 19366 if (!_enabled) { 19367 this.update = this.refresh = this.kill = _passThrough3; 19368 return; 19369 } 19370 vars = _setDefaults3(_isString3(vars) || _isNumber3(vars) || vars.nodeType ? { 19371 trigger: vars 19372 } : vars, _defaults2); 19373 var _vars = vars, onUpdate = _vars.onUpdate, toggleClass = _vars.toggleClass, id = _vars.id, onToggle = _vars.onToggle, onRefresh = _vars.onRefresh, scrub = _vars.scrub, trigger = _vars.trigger, pin = _vars.pin, pinSpacing = _vars.pinSpacing, invalidateOnRefresh = _vars.invalidateOnRefresh, anticipatePin = _vars.anticipatePin, onScrubComplete = _vars.onScrubComplete, onSnapComplete = _vars.onSnapComplete, once = _vars.once, snap3 = _vars.snap, pinReparent = _vars.pinReparent, pinSpacer = _vars.pinSpacer, containerAnimation = _vars.containerAnimation, fastScrollEnd = _vars.fastScrollEnd, preventOverlaps = _vars.preventOverlaps, direction = vars.horizontal || vars.containerAnimation && vars.horizontal !== false ? _horizontal : _vertical, isToggle = !scrub && scrub !== 0, scroller = _getTarget(vars.scroller || _win4), scrollerCache = gsap3.core.getCache(scroller), isViewport = _isViewport3(scroller), useFixedPosition = ("pinType" in vars ? vars.pinType : _getProxyProp(scroller, "pinType") || isViewport && "fixed") === "fixed", callbacks = [vars.onEnter, vars.onLeave, vars.onEnterBack, vars.onLeaveBack], toggleActions = isToggle && vars.toggleActions.split(" "), markers = "markers" in vars ? vars.markers : _defaults2.markers, borderWidth = isViewport ? 0 : parseFloat(_getComputedStyle(scroller)["border" + direction.p2 + _Width]) || 0, self2 = this, onRefreshInit = vars.onRefreshInit && function() { 19374 return vars.onRefreshInit(self2); 19375 }, getScrollerSize = _getSizeFunc(scroller, isViewport, direction), getScrollerOffsets = _getOffsetsFunc(scroller, isViewport), lastSnap = 0, lastRefresh = 0, prevProgress = 0, scrollFunc = _getScrollFunc(scroller, direction), tweenTo, pinCache, snapFunc, scroll1, scroll2, start, end, markerStart, markerEnd, markerStartTrigger, markerEndTrigger, markerVars, executingOnRefresh, change, pinOriginalState, pinActiveState, pinState, spacer, offset, pinGetter, pinSetter, pinStart, pinChange, spacingStart, spacerState, markerStartSetter, pinMoves, markerEndSetter, cs, snap1, snap22, scrubTween, scrubSmooth, snapDurClamp, snapDelayedCall, prevScroll, prevAnimProgress, caMarkerSetter, customRevertReturn; 19376 self2._startClamp = self2._endClamp = false; 19377 self2._dir = direction; 19378 anticipatePin *= 45; 19379 self2.scroller = scroller; 19380 self2.scroll = containerAnimation ? containerAnimation.time.bind(containerAnimation) : scrollFunc; 19381 scroll1 = scrollFunc(); 19382 self2.vars = vars; 19383 animation = animation || vars.animation; 19384 if ("refreshPriority" in vars) { 19385 _sort = 1; 19386 vars.refreshPriority === -9999 && (_primary = self2); 19387 } 19388 scrollerCache.tweenScroll = scrollerCache.tweenScroll || { 19389 top: _getTweenCreator(scroller, _vertical), 19390 left: _getTweenCreator(scroller, _horizontal) 19391 }; 19392 self2.tweenTo = tweenTo = scrollerCache.tweenScroll[direction.p]; 19393 self2.scrubDuration = function(value) { 19394 scrubSmooth = _isNumber3(value) && value; 19395 if (!scrubSmooth) { 19396 scrubTween && scrubTween.progress(1).kill(); 19397 scrubTween = 0; 19398 } else { 19399 scrubTween ? scrubTween.duration(value) : scrubTween = gsap3.to(animation, { 19400 ease: "expo", 19401 totalProgress: "+=0", 19402 inherit: false, 19403 duration: scrubSmooth, 19404 paused: true, 19405 onComplete: function onComplete() { 19406 return onScrubComplete && onScrubComplete(self2); 19407 } 19408 }); 19409 } 19410 }; 19411 if (animation) { 19412 animation.vars.lazy = false; 19413 animation._initted && !self2.isReverted || animation.vars.immediateRender !== false && vars.immediateRender !== false && animation.duration() && animation.render(0, true, true); 19414 self2.animation = animation.pause(); 19415 animation.scrollTrigger = self2; 19416 self2.scrubDuration(scrub); 19417 snap1 = 0; 19418 id || (id = animation.vars.id); 19419 } 19420 if (snap3) { 19421 if (!_isObject3(snap3) || snap3.push) { 19422 snap3 = { 19423 snapTo: snap3 19424 }; 19425 } 19426 "scrollBehavior" in _body2.style && gsap3.set(isViewport ? [_body2, _docEl2] : scroller, { 19427 scrollBehavior: "auto" 19428 }); 19429 _scrollers.forEach(function(o11) { 19430 return _isFunction3(o11) && o11.target === (isViewport ? _doc4.scrollingElement || _docEl2 : scroller) && (o11.smooth = false); 19431 }); 19432 snapFunc = _isFunction3(snap3.snapTo) ? snap3.snapTo : snap3.snapTo === "labels" ? _getClosestLabel(animation) : snap3.snapTo === "labelsDirectional" ? _getLabelAtDirection(animation) : snap3.directional !== false ? function(value, st) { 19433 return _snapDirectional(snap3.snapTo)(value, _getTime2() - lastRefresh < 500 ? 0 : st.direction); 19434 } : gsap3.utils.snap(snap3.snapTo); 19435 snapDurClamp = snap3.duration || { 19436 min: 0.1, 19437 max: 2 19438 }; 19439 snapDurClamp = _isObject3(snapDurClamp) ? _clamp4(snapDurClamp.min, snapDurClamp.max) : _clamp4(snapDurClamp, snapDurClamp); 19440 snapDelayedCall = gsap3.delayedCall(snap3.delay || scrubSmooth / 2 || 0.1, function() { 19441 var scroll = scrollFunc(), refreshedRecently = _getTime2() - lastRefresh < 500, tween = tweenTo.tween; 19442 if ((refreshedRecently || Math.abs(self2.getVelocity()) < 10) && !tween && !_pointerIsDown && lastSnap !== scroll) { 19443 var progress = (scroll - start) / change, totalProgress = animation && !isToggle ? animation.totalProgress() : progress, velocity = refreshedRecently ? 0 : (totalProgress - snap22) / (_getTime2() - _time2) * 1e3 || 0, change1 = gsap3.utils.clamp(-progress, 1 - progress, _abs(velocity / 2) * velocity / 0.185), naturalEnd = progress + (snap3.inertia === false ? 0 : change1), endValue, endScroll, _snap = snap3, onStart = _snap.onStart, _onInterrupt = _snap.onInterrupt, _onComplete = _snap.onComplete; 19444 endValue = snapFunc(naturalEnd, self2); 19445 _isNumber3(endValue) || (endValue = naturalEnd); 19446 endScroll = Math.max(0, Math.round(start + endValue * change)); 19447 if (scroll <= end && scroll >= start && endScroll !== scroll) { 19448 if (tween && !tween._initted && tween.data <= _abs(endScroll - scroll)) { 19449 return; 19450 } 19451 if (snap3.inertia === false) { 19452 change1 = endValue - progress; 19453 } 19454 tweenTo(endScroll, { 19455 duration: snapDurClamp(_abs(Math.max(_abs(naturalEnd - totalProgress), _abs(endValue - totalProgress)) * 0.185 / velocity / 0.05 || 0)), 19456 ease: snap3.ease || "power3", 19457 data: _abs(endScroll - scroll), 19458 // record the distance so that if another snap tween occurs (conflict) we can prioritize the closest snap. 19459 onInterrupt: function onInterrupt() { 19460 return snapDelayedCall.restart(true) && _onInterrupt && _onInterrupt(self2); 19461 }, 19462 onComplete: function onComplete() { 19463 self2.update(); 19464 lastSnap = scrollFunc(); 19465 if (animation && !isToggle) { 19466 scrubTween ? scrubTween.resetTo("totalProgress", endValue, animation._tTime / animation._tDur) : animation.progress(endValue); 19467 } 19468 snap1 = snap22 = animation && !isToggle ? animation.totalProgress() : self2.progress; 19469 onSnapComplete && onSnapComplete(self2); 19470 _onComplete && _onComplete(self2); 19471 } 19472 }, scroll, change1 * change, endScroll - scroll - change1 * change); 19473 onStart && onStart(self2, tweenTo.tween); 19474 } 19475 } else if (self2.isActive && lastSnap !== scroll) { 19476 snapDelayedCall.restart(true); 19477 } 19478 }).pause(); 19479 } 19480 id && (_ids[id] = self2); 19481 trigger = self2.trigger = _getTarget(trigger || pin !== true && pin); 19482 customRevertReturn = trigger && trigger._gsap && trigger._gsap.stRevert; 19483 customRevertReturn && (customRevertReturn = customRevertReturn(self2)); 19484 pin = pin === true ? trigger : _getTarget(pin); 19485 _isString3(toggleClass) && (toggleClass = { 19486 targets: trigger, 19487 className: toggleClass 19488 }); 19489 if (pin) { 19490 pinSpacing === false || pinSpacing === _margin || (pinSpacing = !pinSpacing && pin.parentNode && pin.parentNode.style && _getComputedStyle(pin.parentNode).display === "flex" ? false : _padding); 19491 self2.pin = pin; 19492 pinCache = gsap3.core.getCache(pin); 19493 if (!pinCache.spacer) { 19494 if (pinSpacer) { 19495 pinSpacer = _getTarget(pinSpacer); 19496 pinSpacer && !pinSpacer.nodeType && (pinSpacer = pinSpacer.current || pinSpacer.nativeElement); 19497 pinCache.spacerIsNative = !!pinSpacer; 19498 pinSpacer && (pinCache.spacerState = _getState(pinSpacer)); 19499 } 19500 pinCache.spacer = spacer = pinSpacer || _doc4.createElement("div"); 19501 spacer.classList.add("pin-spacer"); 19502 id && spacer.classList.add("pin-spacer-" + id); 19503 pinCache.pinState = pinOriginalState = _getState(pin); 19504 } else { 19505 pinOriginalState = pinCache.pinState; 19506 } 19507 vars.force3D !== false && gsap3.set(pin, { 19508 force3D: true 19509 }); 19510 self2.spacer = spacer = pinCache.spacer; 19511 cs = _getComputedStyle(pin); 19512 spacingStart = cs[pinSpacing + direction.os2]; 19513 pinGetter = gsap3.getProperty(pin); 19514 pinSetter = gsap3.quickSetter(pin, direction.a, _px); 19515 _swapPinIn(pin, spacer, cs); 19516 pinState = _getState(pin); 19517 } 19518 if (markers) { 19519 markerVars = _isObject3(markers) ? _setDefaults3(markers, _markerDefaults) : _markerDefaults; 19520 markerStartTrigger = _createMarker("scroller-start", id, scroller, direction, markerVars, 0); 19521 markerEndTrigger = _createMarker("scroller-end", id, scroller, direction, markerVars, 0, markerStartTrigger); 19522 offset = markerStartTrigger["offset" + direction.op.d2]; 19523 var content = _getTarget(_getProxyProp(scroller, "content") || scroller); 19524 markerStart = this.markerStart = _createMarker("start", id, content, direction, markerVars, offset, 0, containerAnimation); 19525 markerEnd = this.markerEnd = _createMarker("end", id, content, direction, markerVars, offset, 0, containerAnimation); 19526 containerAnimation && (caMarkerSetter = gsap3.quickSetter([markerStart, markerEnd], direction.a, _px)); 19527 if (!useFixedPosition && !(_proxies.length && _getProxyProp(scroller, "fixedMarkers") === true)) { 19528 _makePositionable(isViewport ? _body2 : scroller); 19529 gsap3.set([markerStartTrigger, markerEndTrigger], { 19530 force3D: true 19531 }); 19532 markerStartSetter = gsap3.quickSetter(markerStartTrigger, direction.a, _px); 19533 markerEndSetter = gsap3.quickSetter(markerEndTrigger, direction.a, _px); 19534 } 19535 } 19536 if (containerAnimation) { 19537 var oldOnUpdate = containerAnimation.vars.onUpdate, oldParams = containerAnimation.vars.onUpdateParams; 19538 containerAnimation.eventCallback("onUpdate", function() { 19539 self2.update(0, 0, 1); 19540 oldOnUpdate && oldOnUpdate.apply(containerAnimation, oldParams || []); 19541 }); 19542 } 19543 self2.previous = function() { 19544 return _triggers[_triggers.indexOf(self2) - 1]; 19545 }; 19546 self2.next = function() { 19547 return _triggers[_triggers.indexOf(self2) + 1]; 19548 }; 19549 self2.revert = function(revert, temp) { 19550 if (!temp) { 19551 return self2.kill(true); 19552 } 19553 var r7 = revert !== false || !self2.enabled, prevRefreshing = _refreshing; 19554 if (r7 !== self2.isReverted) { 19555 if (r7) { 19556 prevScroll = Math.max(scrollFunc(), self2.scroll.rec || 0); 19557 prevProgress = self2.progress; 19558 prevAnimProgress = animation && animation.progress(); 19559 } 19560 markerStart && [markerStart, markerEnd, markerStartTrigger, markerEndTrigger].forEach(function(m3) { 19561 return m3.style.display = r7 ? "none" : "block"; 19562 }); 19563 if (r7) { 19564 _refreshing = self2; 19565 self2.update(r7); 19566 } 19567 if (pin && (!pinReparent || !self2.isActive)) { 19568 if (r7) { 19569 _swapPinOut(pin, spacer, pinOriginalState); 19570 } else { 19571 _swapPinIn(pin, spacer, _getComputedStyle(pin), spacerState); 19572 } 19573 } 19574 r7 || self2.update(r7); 19575 _refreshing = prevRefreshing; 19576 self2.isReverted = r7; 19577 } 19578 }; 19579 self2.refresh = function(soft, force, position, pinOffset) { 19580 if ((_refreshing || !self2.enabled) && !force) { 19581 return; 19582 } 19583 if (pin && soft && _lastScrollTime) { 19584 _addListener3(ScrollTrigger4, "scrollEnd", _softRefresh); 19585 return; 19586 } 19587 !_refreshingAll && onRefreshInit && onRefreshInit(self2); 19588 _refreshing = self2; 19589 if (tweenTo.tween && !position) { 19590 tweenTo.tween.kill(); 19591 tweenTo.tween = 0; 19592 } 19593 scrubTween && scrubTween.pause(); 19594 if (invalidateOnRefresh && animation) { 19595 animation.revert({ 19596 kill: false 19597 }).invalidate(); 19598 animation.getChildren ? animation.getChildren(true, true, false).forEach(function(t11) { 19599 return t11.vars.immediateRender && t11.render(0, true, true); 19600 }) : animation.vars.immediateRender && animation.render(0, true, true); 19601 } 19602 self2.isReverted || self2.revert(true, true); 19603 self2._subPinOffset = false; 19604 var size = getScrollerSize(), scrollerBounds = getScrollerOffsets(), max = containerAnimation ? containerAnimation.duration() : _maxScroll(scroller, direction), isFirstRefresh = change <= 0.01 || !change, offset2 = 0, otherPinOffset = pinOffset || 0, parsedEnd = _isObject3(position) ? position.end : vars.end, parsedEndTrigger = vars.endTrigger || trigger, parsedStart = _isObject3(position) ? position.start : vars.start || (vars.start === 0 || !trigger ? 0 : pin ? "0 0" : "0 100%"), pinnedContainer = self2.pinnedContainer = vars.pinnedContainer && _getTarget(vars.pinnedContainer, self2), triggerIndex = trigger && Math.max(0, _triggers.indexOf(self2)) || 0, i10 = triggerIndex, cs2, bounds, scroll, isVertical, override, curTrigger, curPin, oppositeScroll, initted, revertedPins, forcedOverflow, markerStartOffset, markerEndOffset; 19605 if (markers && _isObject3(position)) { 19606 markerStartOffset = gsap3.getProperty(markerStartTrigger, direction.p); 19607 markerEndOffset = gsap3.getProperty(markerEndTrigger, direction.p); 19608 } 19609 while (i10-- > 0) { 19610 curTrigger = _triggers[i10]; 19611 curTrigger.end || curTrigger.refresh(0, 1) || (_refreshing = self2); 19612 curPin = curTrigger.pin; 19613 if (curPin && (curPin === trigger || curPin === pin || curPin === pinnedContainer) && !curTrigger.isReverted) { 19614 revertedPins || (revertedPins = []); 19615 revertedPins.unshift(curTrigger); 19616 curTrigger.revert(true, true); 19617 } 19618 if (curTrigger !== _triggers[i10]) { 19619 triggerIndex--; 19620 i10--; 19621 } 19622 } 19623 _isFunction3(parsedStart) && (parsedStart = parsedStart(self2)); 19624 parsedStart = _parseClamp(parsedStart, "start", self2); 19625 start = _parsePosition3(parsedStart, trigger, size, direction, scrollFunc(), markerStart, markerStartTrigger, self2, scrollerBounds, borderWidth, useFixedPosition, max, containerAnimation, self2._startClamp && "_startClamp") || (pin ? -1e-3 : 0); 19626 _isFunction3(parsedEnd) && (parsedEnd = parsedEnd(self2)); 19627 if (_isString3(parsedEnd) && !parsedEnd.indexOf("+=")) { 19628 if (~parsedEnd.indexOf(" ")) { 19629 parsedEnd = (_isString3(parsedStart) ? parsedStart.split(" ")[0] : "") + parsedEnd; 19630 } else { 19631 offset2 = _offsetToPx(parsedEnd.substr(2), size); 19632 parsedEnd = _isString3(parsedStart) ? parsedStart : (containerAnimation ? gsap3.utils.mapRange(0, containerAnimation.duration(), containerAnimation.scrollTrigger.start, containerAnimation.scrollTrigger.end, start) : start) + offset2; 19633 parsedEndTrigger = trigger; 19634 } 19635 } 19636 parsedEnd = _parseClamp(parsedEnd, "end", self2); 19637 end = Math.max(start, _parsePosition3(parsedEnd || (parsedEndTrigger ? "100% 0" : max), parsedEndTrigger, size, direction, scrollFunc() + offset2, markerEnd, markerEndTrigger, self2, scrollerBounds, borderWidth, useFixedPosition, max, containerAnimation, self2._endClamp && "_endClamp")) || -1e-3; 19638 offset2 = 0; 19639 i10 = triggerIndex; 19640 while (i10--) { 19641 curTrigger = _triggers[i10] || {}; 19642 curPin = curTrigger.pin; 19643 if (curPin && curTrigger.start - curTrigger._pinPush <= start && !containerAnimation && curTrigger.end > 0) { 19644 cs2 = curTrigger.end - (self2._startClamp ? Math.max(0, curTrigger.start) : curTrigger.start); 19645 if ((curPin === trigger && curTrigger.start - curTrigger._pinPush < start || curPin === pinnedContainer) && isNaN(parsedStart)) { 19646 offset2 += cs2 * (1 - curTrigger.progress); 19647 } 19648 curPin === pin && (otherPinOffset += cs2); 19649 } 19650 } 19651 start += offset2; 19652 end += offset2; 19653 self2._startClamp && (self2._startClamp += offset2); 19654 if (self2._endClamp && !_refreshingAll) { 19655 self2._endClamp = end || -1e-3; 19656 end = Math.min(end, _maxScroll(scroller, direction)); 19657 } 19658 change = end - start || (start -= 0.01) && 1e-3; 19659 if (isFirstRefresh) { 19660 prevProgress = gsap3.utils.clamp(0, 1, gsap3.utils.normalize(start, end, prevScroll)); 19661 } 19662 self2._pinPush = otherPinOffset; 19663 if (markerStart && offset2) { 19664 cs2 = {}; 19665 cs2[direction.a] = "+=" + offset2; 19666 pinnedContainer && (cs2[direction.p] = "-=" + scrollFunc()); 19667 gsap3.set([markerStart, markerEnd], cs2); 19668 } 19669 if (pin && !(_clampingMax && self2.end >= _maxScroll(scroller, direction))) { 19670 cs2 = _getComputedStyle(pin); 19671 isVertical = direction === _vertical; 19672 scroll = scrollFunc(); 19673 pinStart = parseFloat(pinGetter(direction.a)) + otherPinOffset; 19674 if (!max && end > 1) { 19675 forcedOverflow = (isViewport ? _doc4.scrollingElement || _docEl2 : scroller).style; 19676 forcedOverflow = { 19677 style: forcedOverflow, 19678 value: forcedOverflow["overflow" + direction.a.toUpperCase()] 19679 }; 19680 if (isViewport && _getComputedStyle(_body2)["overflow" + direction.a.toUpperCase()] !== "scroll") { 19681 forcedOverflow.style["overflow" + direction.a.toUpperCase()] = "scroll"; 19682 } 19683 } 19684 _swapPinIn(pin, spacer, cs2); 19685 pinState = _getState(pin); 19686 bounds = _getBounds(pin, true); 19687 oppositeScroll = useFixedPosition && _getScrollFunc(scroller, isVertical ? _horizontal : _vertical)(); 19688 if (pinSpacing) { 19689 spacerState = [pinSpacing + direction.os2, change + otherPinOffset + _px]; 19690 spacerState.t = spacer; 19691 i10 = pinSpacing === _padding ? _getSize(pin, direction) + change + otherPinOffset : 0; 19692 if (i10) { 19693 spacerState.push(direction.d, i10 + _px); 19694 spacer.style.flexBasis !== "auto" && (spacer.style.flexBasis = i10 + _px); 19695 } 19696 _setState(spacerState); 19697 if (pinnedContainer) { 19698 _triggers.forEach(function(t11) { 19699 if (t11.pin === pinnedContainer && t11.vars.pinSpacing !== false) { 19700 t11._subPinOffset = true; 19701 } 19702 }); 19703 } 19704 useFixedPosition && scrollFunc(prevScroll); 19705 } else { 19706 i10 = _getSize(pin, direction); 19707 i10 && spacer.style.flexBasis !== "auto" && (spacer.style.flexBasis = i10 + _px); 19708 } 19709 if (useFixedPosition) { 19710 override = { 19711 top: bounds.top + (isVertical ? scroll - start : oppositeScroll) + _px, 19712 left: bounds.left + (isVertical ? oppositeScroll : scroll - start) + _px, 19713 boxSizing: "border-box", 19714 position: "fixed" 19715 }; 19716 override[_width] = override["max" + _Width] = Math.ceil(bounds.width) + _px; 19717 override[_height] = override["max" + _Height] = Math.ceil(bounds.height) + _px; 19718 override[_margin] = override[_margin + _Top] = override[_margin + _Right] = override[_margin + _Bottom] = override[_margin + _Left] = "0"; 19719 override[_padding] = cs2[_padding]; 19720 override[_padding + _Top] = cs2[_padding + _Top]; 19721 override[_padding + _Right] = cs2[_padding + _Right]; 19722 override[_padding + _Bottom] = cs2[_padding + _Bottom]; 19723 override[_padding + _Left] = cs2[_padding + _Left]; 19724 pinActiveState = _copyState(pinOriginalState, override, pinReparent); 19725 _refreshingAll && scrollFunc(0); 19726 } 19727 if (animation) { 19728 initted = animation._initted; 19729 _suppressOverwrites2(1); 19730 animation.render(animation.duration(), true, true); 19731 pinChange = pinGetter(direction.a) - pinStart + change + otherPinOffset; 19732 pinMoves = Math.abs(change - pinChange) > 1; 19733 useFixedPosition && pinMoves && pinActiveState.splice(pinActiveState.length - 2, 2); 19734 animation.render(0, true, true); 19735 initted || animation.invalidate(true); 19736 animation.parent || animation.totalTime(animation.totalTime()); 19737 _suppressOverwrites2(0); 19738 } else { 19739 pinChange = change; 19740 } 19741 forcedOverflow && (forcedOverflow.value ? forcedOverflow.style["overflow" + direction.a.toUpperCase()] = forcedOverflow.value : forcedOverflow.style.removeProperty("overflow-" + direction.a)); 19742 } else if (trigger && scrollFunc() && !containerAnimation) { 19743 bounds = trigger.parentNode; 19744 while (bounds && bounds !== _body2) { 19745 if (bounds._pinOffset) { 19746 start -= bounds._pinOffset; 19747 end -= bounds._pinOffset; 19748 } 19749 bounds = bounds.parentNode; 19750 } 19751 } 19752 revertedPins && revertedPins.forEach(function(t11) { 19753 return t11.revert(false, true); 19754 }); 19755 self2.start = start; 19756 self2.end = end; 19757 scroll1 = scroll2 = _refreshingAll ? prevScroll : scrollFunc(); 19758 if (!containerAnimation && !_refreshingAll) { 19759 scroll1 < prevScroll && scrollFunc(prevScroll); 19760 self2.scroll.rec = 0; 19761 } 19762 self2.revert(false, true); 19763 lastRefresh = _getTime2(); 19764 if (snapDelayedCall) { 19765 lastSnap = -1; 19766 snapDelayedCall.restart(true); 19767 } 19768 _refreshing = 0; 19769 animation && isToggle && (animation._initted || prevAnimProgress) && animation.progress() !== prevAnimProgress && animation.progress(prevAnimProgress || 0, true).render(animation.time(), true, true); 19770 if (isFirstRefresh || prevProgress !== self2.progress || containerAnimation || invalidateOnRefresh || animation && !animation._initted) { 19771 animation && !isToggle && (animation._initted || prevProgress || animation.vars.immediateRender !== false) && animation.totalProgress(containerAnimation && start < -1e-3 && !prevProgress ? gsap3.utils.normalize(start, end, 0) : prevProgress, true); 19772 self2.progress = isFirstRefresh || (scroll1 - start) / change === prevProgress ? 0 : prevProgress; 19773 } 19774 pin && pinSpacing && (spacer._pinOffset = Math.round(self2.progress * pinChange)); 19775 scrubTween && scrubTween.invalidate(); 19776 if (!isNaN(markerStartOffset)) { 19777 markerStartOffset -= gsap3.getProperty(markerStartTrigger, direction.p); 19778 markerEndOffset -= gsap3.getProperty(markerEndTrigger, direction.p); 19779 _shiftMarker(markerStartTrigger, direction, markerStartOffset); 19780 _shiftMarker(markerStart, direction, markerStartOffset - (pinOffset || 0)); 19781 _shiftMarker(markerEndTrigger, direction, markerEndOffset); 19782 _shiftMarker(markerEnd, direction, markerEndOffset - (pinOffset || 0)); 19783 } 19784 isFirstRefresh && !_refreshingAll && self2.update(); 19785 if (onRefresh && !_refreshingAll && !executingOnRefresh) { 19786 executingOnRefresh = true; 19787 onRefresh(self2); 19788 executingOnRefresh = false; 19789 } 19790 }; 19791 self2.getVelocity = function() { 19792 return (scrollFunc() - scroll2) / (_getTime2() - _time2) * 1e3 || 0; 19793 }; 19794 self2.endAnimation = function() { 19795 _endAnimation(self2.callbackAnimation); 19796 if (animation) { 19797 scrubTween ? scrubTween.progress(1) : !animation.paused() ? _endAnimation(animation, animation.reversed()) : isToggle || _endAnimation(animation, self2.direction < 0, 1); 19798 } 19799 }; 19800 self2.labelToScroll = function(label) { 19801 return animation && animation.labels && (start || self2.refresh() || start) + animation.labels[label] / animation.duration() * change || 0; 19802 }; 19803 self2.getTrailing = function(name) { 19804 var i10 = _triggers.indexOf(self2), a8 = self2.direction > 0 ? _triggers.slice(0, i10).reverse() : _triggers.slice(i10 + 1); 19805 return (_isString3(name) ? a8.filter(function(t11) { 19806 return t11.vars.preventOverlaps === name; 19807 }) : a8).filter(function(t11) { 19808 return self2.direction > 0 ? t11.end <= start : t11.start >= end; 19809 }); 19810 }; 19811 self2.update = function(reset, recordVelocity, forceFake) { 19812 if (containerAnimation && !forceFake && !reset) { 19813 return; 19814 } 19815 var scroll = _refreshingAll === true ? prevScroll : self2.scroll(), p2 = reset ? 0 : (scroll - start) / change, clipped = p2 < 0 ? 0 : p2 > 1 ? 1 : p2 || 0, prevProgress2 = self2.progress, isActive, wasActive, toggleState, action, stateChanged, toggled, isAtMax, isTakingAction; 19816 if (recordVelocity) { 19817 scroll2 = scroll1; 19818 scroll1 = containerAnimation ? scrollFunc() : scroll; 19819 if (snap3) { 19820 snap22 = snap1; 19821 snap1 = animation && !isToggle ? animation.totalProgress() : clipped; 19822 } 19823 } 19824 if (anticipatePin && pin && !_refreshing && !_startup2 && _lastScrollTime) { 19825 if (!clipped && start < scroll + (scroll - scroll2) / (_getTime2() - _time2) * anticipatePin) { 19826 clipped = 1e-4; 19827 } else if (clipped === 1 && end > scroll + (scroll - scroll2) / (_getTime2() - _time2) * anticipatePin) { 19828 clipped = 0.9999; 19829 } 19830 } 19831 if (clipped !== prevProgress2 && self2.enabled) { 19832 isActive = self2.isActive = !!clipped && clipped < 1; 19833 wasActive = !!prevProgress2 && prevProgress2 < 1; 19834 toggled = isActive !== wasActive; 19835 stateChanged = toggled || !!clipped !== !!prevProgress2; 19836 self2.direction = clipped > prevProgress2 ? 1 : -1; 19837 self2.progress = clipped; 19838 if (stateChanged && !_refreshing) { 19839 toggleState = clipped && !prevProgress2 ? 0 : clipped === 1 ? 1 : prevProgress2 === 1 ? 2 : 3; 19840 if (isToggle) { 19841 action = !toggled && toggleActions[toggleState + 1] !== "none" && toggleActions[toggleState + 1] || toggleActions[toggleState]; 19842 isTakingAction = animation && (action === "complete" || action === "reset" || action in animation); 19843 } 19844 } 19845 preventOverlaps && (toggled || isTakingAction) && (isTakingAction || scrub || !animation) && (_isFunction3(preventOverlaps) ? preventOverlaps(self2) : self2.getTrailing(preventOverlaps).forEach(function(t11) { 19846 return t11.endAnimation(); 19847 })); 19848 if (!isToggle) { 19849 if (scrubTween && !_refreshing && !_startup2) { 19850 scrubTween._dp._time - scrubTween._start !== scrubTween._time && scrubTween.render(scrubTween._dp._time - scrubTween._start); 19851 if (scrubTween.resetTo) { 19852 scrubTween.resetTo("totalProgress", clipped, animation._tTime / animation._tDur); 19853 } else { 19854 scrubTween.vars.totalProgress = clipped; 19855 scrubTween.invalidate().restart(); 19856 } 19857 } else if (animation) { 19858 animation.totalProgress(clipped, !!(_refreshing && (lastRefresh || reset))); 19859 } 19860 } 19861 if (pin) { 19862 reset && pinSpacing && (spacer.style[pinSpacing + direction.os2] = spacingStart); 19863 if (!useFixedPosition) { 19864 pinSetter(_round3(pinStart + pinChange * clipped)); 19865 } else if (stateChanged) { 19866 isAtMax = !reset && clipped > prevProgress2 && end + 1 > scroll && scroll + 1 >= _maxScroll(scroller, direction); 19867 if (pinReparent) { 19868 if (!reset && (isActive || isAtMax)) { 19869 var bounds = _getBounds(pin, true), _offset = scroll - start; 19870 _reparent(pin, _body2, bounds.top + (direction === _vertical ? _offset : 0) + _px, bounds.left + (direction === _vertical ? 0 : _offset) + _px); 19871 } else { 19872 _reparent(pin, spacer); 19873 } 19874 } 19875 _setState(isActive || isAtMax ? pinActiveState : pinState); 19876 pinMoves && clipped < 1 && isActive || pinSetter(pinStart + (clipped === 1 && !isAtMax ? pinChange : 0)); 19877 } 19878 } 19879 snap3 && !tweenTo.tween && !_refreshing && !_startup2 && snapDelayedCall.restart(true); 19880 toggleClass && (toggled || once && clipped && (clipped < 1 || !_limitCallbacks)) && _toArray(toggleClass.targets).forEach(function(el) { 19881 return el.classList[isActive || once ? "add" : "remove"](toggleClass.className); 19882 }); 19883 onUpdate && !isToggle && !reset && onUpdate(self2); 19884 if (stateChanged && !_refreshing) { 19885 if (isToggle) { 19886 if (isTakingAction) { 19887 if (action === "complete") { 19888 animation.pause().totalProgress(1); 19889 } else if (action === "reset") { 19890 animation.restart(true).pause(); 19891 } else if (action === "restart") { 19892 animation.restart(true); 19893 } else { 19894 animation[action](); 19895 } 19896 } 19897 onUpdate && onUpdate(self2); 19898 } 19899 if (toggled || !_limitCallbacks) { 19900 onToggle && toggled && _callback3(self2, onToggle); 19901 callbacks[toggleState] && _callback3(self2, callbacks[toggleState]); 19902 once && (clipped === 1 ? self2.kill(false, 1) : callbacks[toggleState] = 0); 19903 if (!toggled) { 19904 toggleState = clipped === 1 ? 1 : 3; 19905 callbacks[toggleState] && _callback3(self2, callbacks[toggleState]); 19906 } 19907 } 19908 if (fastScrollEnd && !isActive && Math.abs(self2.getVelocity()) > (_isNumber3(fastScrollEnd) ? fastScrollEnd : 2500)) { 19909 _endAnimation(self2.callbackAnimation); 19910 scrubTween ? scrubTween.progress(1) : _endAnimation(animation, action === "reverse" ? 1 : !clipped, 1); 19911 } 19912 } else if (isToggle && onUpdate && !_refreshing) { 19913 onUpdate(self2); 19914 } 19915 } 19916 if (markerEndSetter) { 19917 var n10 = containerAnimation ? scroll / containerAnimation.duration() * (containerAnimation._caScrollDist || 0) : scroll; 19918 markerStartSetter(n10 + (markerStartTrigger._isFlipped ? 1 : 0)); 19919 markerEndSetter(n10); 19920 } 19921 caMarkerSetter && caMarkerSetter(-scroll / containerAnimation.duration() * (containerAnimation._caScrollDist || 0)); 19922 }; 19923 self2.enable = function(reset, refresh) { 19924 if (!self2.enabled) { 19925 self2.enabled = true; 19926 _addListener3(scroller, "resize", _onResize); 19927 isViewport || _addListener3(scroller, "scroll", _onScroll3); 19928 onRefreshInit && _addListener3(ScrollTrigger4, "refreshInit", onRefreshInit); 19929 if (reset !== false) { 19930 self2.progress = prevProgress = 0; 19931 scroll1 = scroll2 = lastSnap = scrollFunc(); 19932 } 19933 refresh !== false && self2.refresh(); 19934 } 19935 }; 19936 self2.getTween = function(snap4) { 19937 return snap4 && tweenTo ? tweenTo.tween : scrubTween; 19938 }; 19939 self2.setPositions = function(newStart, newEnd, keepClamp, pinOffset) { 19940 if (containerAnimation) { 19941 var st = containerAnimation.scrollTrigger, duration = containerAnimation.duration(), _change = st.end - st.start; 19942 newStart = st.start + _change * newStart / duration; 19943 newEnd = st.start + _change * newEnd / duration; 19944 } 19945 self2.refresh(false, false, { 19946 start: _keepClamp(newStart, keepClamp && !!self2._startClamp), 19947 end: _keepClamp(newEnd, keepClamp && !!self2._endClamp) 19948 }, pinOffset); 19949 self2.update(); 19950 }; 19951 self2.adjustPinSpacing = function(amount) { 19952 if (spacerState && amount) { 19953 var i10 = spacerState.indexOf(direction.d) + 1; 19954 spacerState[i10] = parseFloat(spacerState[i10]) + amount + _px; 19955 spacerState[1] = parseFloat(spacerState[1]) + amount + _px; 19956 _setState(spacerState); 19957 } 19958 }; 19959 self2.disable = function(reset, allowAnimation) { 19960 reset !== false && self2.revert(true, true); 19961 if (self2.enabled) { 19962 self2.enabled = self2.isActive = false; 19963 allowAnimation || scrubTween && scrubTween.pause(); 19964 prevScroll = 0; 19965 pinCache && (pinCache.uncache = 1); 19966 onRefreshInit && _removeListener3(ScrollTrigger4, "refreshInit", onRefreshInit); 19967 if (snapDelayedCall) { 19968 snapDelayedCall.pause(); 19969 tweenTo.tween && tweenTo.tween.kill() && (tweenTo.tween = 0); 19970 } 19971 if (!isViewport) { 19972 var i10 = _triggers.length; 19973 while (i10--) { 19974 if (_triggers[i10].scroller === scroller && _triggers[i10] !== self2) { 19975 return; 19976 } 19977 } 19978 _removeListener3(scroller, "resize", _onResize); 19979 isViewport || _removeListener3(scroller, "scroll", _onScroll3); 19980 } 19981 } 19982 }; 19983 self2.kill = function(revert, allowAnimation) { 19984 self2.disable(revert, allowAnimation); 19985 scrubTween && !allowAnimation && scrubTween.kill(); 19986 id && delete _ids[id]; 19987 var i10 = _triggers.indexOf(self2); 19988 i10 >= 0 && _triggers.splice(i10, 1); 19989 i10 === _i && _direction > 0 && _i--; 19990 i10 = 0; 19991 _triggers.forEach(function(t11) { 19992 return t11.scroller === self2.scroller && (i10 = 1); 19993 }); 19994 i10 || _refreshingAll || (self2.scroll.rec = 0); 19995 if (animation) { 19996 animation.scrollTrigger = null; 19997 revert && animation.revert({ 19998 kill: false 19999 }); 20000 allowAnimation || animation.kill(); 20001 } 20002 markerStart && [markerStart, markerEnd, markerStartTrigger, markerEndTrigger].forEach(function(m3) { 20003 return m3.parentNode && m3.parentNode.removeChild(m3); 20004 }); 20005 _primary === self2 && (_primary = 0); 20006 if (pin) { 20007 pinCache && (pinCache.uncache = 1); 20008 i10 = 0; 20009 _triggers.forEach(function(t11) { 20010 return t11.pin === pin && i10++; 20011 }); 20012 i10 || (pinCache.spacer = 0); 20013 } 20014 vars.onKill && vars.onKill(self2); 20015 }; 20016 _triggers.push(self2); 20017 self2.enable(false, false); 20018 customRevertReturn && customRevertReturn(self2); 20019 if (animation && animation.add && !change) { 20020 var updateFunc = self2.update; 20021 self2.update = function() { 20022 self2.update = updateFunc; 20023 _scrollers.cache++; 20024 start || end || self2.refresh(); 20025 }; 20026 gsap3.delayedCall(0.01, self2.update); 20027 change = 0.01; 20028 start = end = 0; 20029 } else { 20030 self2.refresh(); 20031 } 20032 pin && _queueRefreshAll(); 20033 }; 20034 ScrollTrigger4.register = function register(core) { 20035 if (!_coreInitted3) { 20036 gsap3 = core || _getGSAP3(); 20037 _windowExists5() && window.document && ScrollTrigger4.enable(); 20038 _coreInitted3 = _enabled; 20039 } 20040 return _coreInitted3; 20041 }; 20042 ScrollTrigger4.defaults = function defaults2(config3) { 20043 if (config3) { 20044 for (var p2 in config3) { 20045 _defaults2[p2] = config3[p2]; 20046 } 20047 } 20048 return _defaults2; 20049 }; 20050 ScrollTrigger4.disable = function disable(reset, kill) { 20051 _enabled = 0; 20052 _triggers.forEach(function(trigger) { 20053 return trigger[kill ? "kill" : "disable"](reset); 20054 }); 20055 _removeListener3(_win4, "wheel", _onScroll3); 20056 _removeListener3(_doc4, "scroll", _onScroll3); 20057 clearInterval(_syncInterval); 20058 _removeListener3(_doc4, "touchcancel", _passThrough3); 20059 _removeListener3(_body2, "touchstart", _passThrough3); 20060 _multiListener(_removeListener3, _doc4, "pointerdown,touchstart,mousedown", _pointerDownHandler); 20061 _multiListener(_removeListener3, _doc4, "pointerup,touchend,mouseup", _pointerUpHandler); 20062 _resizeDelay.kill(); 20063 _iterateAutoRefresh(_removeListener3); 20064 for (var i10 = 0; i10 < _scrollers.length; i10 += 3) { 20065 _wheelListener(_removeListener3, _scrollers[i10], _scrollers[i10 + 1]); 20066 _wheelListener(_removeListener3, _scrollers[i10], _scrollers[i10 + 2]); 20067 } 20068 }; 20069 ScrollTrigger4.enable = function enable() { 20070 _win4 = window; 20071 _doc4 = document; 20072 _docEl2 = _doc4.documentElement; 20073 _body2 = _doc4.body; 20074 if (gsap3) { 20075 _toArray = gsap3.utils.toArray; 20076 _clamp4 = gsap3.utils.clamp; 20077 _context3 = gsap3.core.context || _passThrough3; 20078 _suppressOverwrites2 = gsap3.core.suppressOverwrites || _passThrough3; 20079 _scrollRestoration = _win4.history.scrollRestoration || "auto"; 20080 _lastScroll = _win4.pageYOffset || 0; 20081 gsap3.core.globals("ScrollTrigger", ScrollTrigger4); 20082 if (_body2) { 20083 _enabled = 1; 20084 _div100vh = document.createElement("div"); 20085 _div100vh.style.height = "100vh"; 20086 _div100vh.style.position = "absolute"; 20087 _refresh100vh(); 20088 _rafBugFix(); 20089 Observer.register(gsap3); 20090 ScrollTrigger4.isTouch = Observer.isTouch; 20091 _fixIOSBug = Observer.isTouch && /(iPad|iPhone|iPod|Mac)/g.test(navigator.userAgent); 20092 _ignoreMobileResize = Observer.isTouch === 1; 20093 _addListener3(_win4, "wheel", _onScroll3); 20094 _root2 = [_win4, _doc4, _docEl2, _body2]; 20095 if (gsap3.matchMedia) { 20096 ScrollTrigger4.matchMedia = function(vars) { 20097 var mm = gsap3.matchMedia(), p2; 20098 for (p2 in vars) { 20099 mm.add(p2, vars[p2]); 20100 } 20101 return mm; 20102 }; 20103 gsap3.addEventListener("matchMediaInit", function() { 20104 _recordScrollPositions(); 20105 _revertAll(); 20106 }); 20107 gsap3.addEventListener("matchMediaRevert", function() { 20108 return _revertRecorded(); 20109 }); 20110 gsap3.addEventListener("matchMedia", function() { 20111 _refreshAll(0, 1); 20112 _dispatch3("matchMedia"); 20113 }); 20114 gsap3.matchMedia().add("(orientation: portrait)", function() { 20115 _setBaseDimensions(); 20116 return _setBaseDimensions; 20117 }); 20118 } else { 20119 console.warn("Requires GSAP 3.11.0 or later"); 20120 } 20121 _setBaseDimensions(); 20122 _addListener3(_doc4, "scroll", _onScroll3); 20123 var bodyHasStyle = _body2.hasAttribute("style"), bodyStyle = _body2.style, border = bodyStyle.borderTopStyle, AnimationProto = gsap3.core.Animation.prototype, bounds, i10; 20124 AnimationProto.revert || Object.defineProperty(AnimationProto, "revert", { 20125 value: function value() { 20126 return this.time(-0.01, true); 20127 } 20128 }); 20129 bodyStyle.borderTopStyle = "solid"; 20130 bounds = _getBounds(_body2); 20131 _vertical.m = Math.round(bounds.top + _vertical.sc()) || 0; 20132 _horizontal.m = Math.round(bounds.left + _horizontal.sc()) || 0; 20133 border ? bodyStyle.borderTopStyle = border : bodyStyle.removeProperty("border-top-style"); 20134 if (!bodyHasStyle) { 20135 _body2.setAttribute("style", ""); 20136 _body2.removeAttribute("style"); 20137 } 20138 _syncInterval = setInterval(_sync, 250); 20139 gsap3.delayedCall(0.5, function() { 20140 return _startup2 = 0; 20141 }); 20142 _addListener3(_doc4, "touchcancel", _passThrough3); 20143 _addListener3(_body2, "touchstart", _passThrough3); 20144 _multiListener(_addListener3, _doc4, "pointerdown,touchstart,mousedown", _pointerDownHandler); 20145 _multiListener(_addListener3, _doc4, "pointerup,touchend,mouseup", _pointerUpHandler); 20146 _transformProp2 = gsap3.utils.checkPrefix("transform"); 20147 _stateProps.push(_transformProp2); 20148 _coreInitted3 = _getTime2(); 20149 _resizeDelay = gsap3.delayedCall(0.2, _refreshAll).pause(); 20150 _autoRefresh = [_doc4, "visibilitychange", function() { 20151 var w3 = _win4.innerWidth, h4 = _win4.innerHeight; 20152 if (_doc4.hidden) { 20153 _prevWidth = w3; 20154 _prevHeight = h4; 20155 } else if (_prevWidth !== w3 || _prevHeight !== h4) { 20156 _onResize(); 20157 } 20158 }, _doc4, "DOMContentLoaded", _refreshAll, _win4, "load", _refreshAll, _win4, "resize", _onResize]; 20159 _iterateAutoRefresh(_addListener3); 20160 _triggers.forEach(function(trigger) { 20161 return trigger.enable(0, 1); 20162 }); 20163 for (i10 = 0; i10 < _scrollers.length; i10 += 3) { 20164 _wheelListener(_removeListener3, _scrollers[i10], _scrollers[i10 + 1]); 20165 _wheelListener(_removeListener3, _scrollers[i10], _scrollers[i10 + 2]); 20166 } 20167 } 20168 } 20169 }; 20170 ScrollTrigger4.config = function config3(vars) { 20171 "limitCallbacks" in vars && (_limitCallbacks = !!vars.limitCallbacks); 20172 var ms = vars.syncInterval; 20173 ms && clearInterval(_syncInterval) || (_syncInterval = ms) && setInterval(_sync, ms); 20174 "ignoreMobileResize" in vars && (_ignoreMobileResize = ScrollTrigger4.isTouch === 1 && vars.ignoreMobileResize); 20175 if ("autoRefreshEvents" in vars) { 20176 _iterateAutoRefresh(_removeListener3) || _iterateAutoRefresh(_addListener3, vars.autoRefreshEvents || "none"); 20177 _ignoreResize = (vars.autoRefreshEvents + "").indexOf("resize") === -1; 20178 } 20179 }; 20180 ScrollTrigger4.scrollerProxy = function scrollerProxy(target, vars) { 20181 var t11 = _getTarget(target), i10 = _scrollers.indexOf(t11), isViewport = _isViewport3(t11); 20182 if (~i10) { 20183 _scrollers.splice(i10, isViewport ? 6 : 2); 20184 } 20185 if (vars) { 20186 isViewport ? _proxies.unshift(_win4, vars, _body2, vars, _docEl2, vars) : _proxies.unshift(t11, vars); 20187 } 20188 }; 20189 ScrollTrigger4.clearMatchMedia = function clearMatchMedia(query) { 20190 _triggers.forEach(function(t11) { 20191 return t11._ctx && t11._ctx.query === query && t11._ctx.kill(true, true); 20192 }); 20193 }; 20194 ScrollTrigger4.isInViewport = function isInViewport(element, ratio, horizontal) { 20195 var bounds = (_isString3(element) ? _getTarget(element) : element).getBoundingClientRect(), offset = bounds[horizontal ? _width : _height] * ratio || 0; 20196 return horizontal ? bounds.right - offset > 0 && bounds.left + offset < _win4.innerWidth : bounds.bottom - offset > 0 && bounds.top + offset < _win4.innerHeight; 20197 }; 20198 ScrollTrigger4.positionInViewport = function positionInViewport(element, referencePoint, horizontal) { 20199 _isString3(element) && (element = _getTarget(element)); 20200 var bounds = element.getBoundingClientRect(), size = bounds[horizontal ? _width : _height], offset = referencePoint == null ? size / 2 : referencePoint in _keywords ? _keywords[referencePoint] * size : ~referencePoint.indexOf("%") ? parseFloat(referencePoint) * size / 100 : parseFloat(referencePoint) || 0; 20201 return horizontal ? (bounds.left + offset) / _win4.innerWidth : (bounds.top + offset) / _win4.innerHeight; 20202 }; 20203 ScrollTrigger4.killAll = function killAll(allowListeners) { 20204 _triggers.slice(0).forEach(function(t11) { 20205 return t11.vars.id !== "ScrollSmoother" && t11.kill(); 20206 }); 20207 if (allowListeners !== true) { 20208 var listeners = _listeners2.killAll || []; 20209 _listeners2 = {}; 20210 listeners.forEach(function(f3) { 20211 return f3(); 20212 }); 20213 } 20214 }; 20215 return ScrollTrigger4; 20216 })(); 20217 ScrollTrigger2.version = "3.14.2"; 20218 ScrollTrigger2.saveStyles = function(targets) { 20219 return targets ? _toArray(targets).forEach(function(target) { 20220 if (target && target.style) { 20221 var i10 = _savedStyles.indexOf(target); 20222 i10 >= 0 && _savedStyles.splice(i10, 5); 20223 _savedStyles.push(target, target.style.cssText, target.getBBox && target.getAttribute("transform"), gsap3.core.getCache(target), _context3()); 20224 } 20225 }) : _savedStyles; 20226 }; 20227 ScrollTrigger2.revert = function(soft, media) { 20228 return _revertAll(!soft, media); 20229 }; 20230 ScrollTrigger2.create = function(vars, animation) { 20231 return new ScrollTrigger2(vars, animation); 20232 }; 20233 ScrollTrigger2.refresh = function(safe) { 20234 return safe ? _onResize(true) : (_coreInitted3 || ScrollTrigger2.register()) && _refreshAll(true); 20235 }; 20236 ScrollTrigger2.update = function(force) { 20237 return ++_scrollers.cache && _updateAll(force === true ? 2 : 0); 20238 }; 20239 ScrollTrigger2.clearScrollMemory = _clearScrollMemory; 20240 ScrollTrigger2.maxScroll = function(element, horizontal) { 20241 return _maxScroll(element, horizontal ? _horizontal : _vertical); 20242 }; 20243 ScrollTrigger2.getScrollFunc = function(element, horizontal) { 20244 return _getScrollFunc(_getTarget(element), horizontal ? _horizontal : _vertical); 20245 }; 20246 ScrollTrigger2.getById = function(id) { 20247 return _ids[id]; 20248 }; 20249 ScrollTrigger2.getAll = function() { 20250 return _triggers.filter(function(t11) { 20251 return t11.vars.id !== "ScrollSmoother"; 20252 }); 20253 }; 20254 ScrollTrigger2.isScrolling = function() { 20255 return !!_lastScrollTime; 20256 }; 20257 ScrollTrigger2.snapDirectional = _snapDirectional; 20258 ScrollTrigger2.addEventListener = function(type, callback) { 20259 var a8 = _listeners2[type] || (_listeners2[type] = []); 20260 ~a8.indexOf(callback) || a8.push(callback); 20261 }; 20262 ScrollTrigger2.removeEventListener = function(type, callback) { 20263 var a8 = _listeners2[type], i10 = a8 && a8.indexOf(callback); 20264 i10 >= 0 && a8.splice(i10, 1); 20265 }; 20266 ScrollTrigger2.batch = function(targets, vars) { 20267 var result = [], varsCopy = {}, interval = vars.interval || 0.016, batchMax = vars.batchMax || 1e9, proxyCallback = function proxyCallback2(type, callback) { 20268 var elements = [], triggers = [], delay = gsap3.delayedCall(interval, function() { 20269 callback(elements, triggers); 20270 elements = []; 20271 triggers = []; 20272 }).pause(); 20273 return function(self2) { 20274 elements.length || delay.restart(true); 20275 elements.push(self2.trigger); 20276 triggers.push(self2); 20277 batchMax <= elements.length && delay.progress(1); 20278 }; 20279 }, p2; 20280 for (p2 in vars) { 20281 varsCopy[p2] = p2.substr(0, 2) === "on" && _isFunction3(vars[p2]) && p2 !== "onRefreshInit" ? proxyCallback(p2, vars[p2]) : vars[p2]; 20282 } 20283 if (_isFunction3(batchMax)) { 20284 batchMax = batchMax(); 20285 _addListener3(ScrollTrigger2, "refresh", function() { 20286 return batchMax = vars.batchMax(); 20287 }); 20288 } 20289 _toArray(targets).forEach(function(target) { 20290 var config3 = {}; 20291 for (p2 in varsCopy) { 20292 config3[p2] = varsCopy[p2]; 20293 } 20294 config3.trigger = target; 20295 result.push(ScrollTrigger2.create(config3)); 20296 }); 20297 return result; 20298 }; 20299 _clampScrollAndGetDurationMultiplier = function _clampScrollAndGetDurationMultiplier2(scrollFunc, current, end, max) { 20300 current > max ? scrollFunc(max) : current < 0 && scrollFunc(0); 20301 return end > max ? (max - current) / (end - current) : end < 0 ? current / (current - end) : 1; 20302 }; 20303 _allowNativePanning = function _allowNativePanning2(target, direction) { 20304 if (direction === true) { 20305 target.style.removeProperty("touch-action"); 20306 } else { 20307 target.style.touchAction = direction === true ? "auto" : direction ? "pan-" + direction + (Observer.isTouch ? " pinch-zoom" : "") : "none"; 20308 } 20309 target === _docEl2 && _allowNativePanning2(_body2, direction); 20310 }; 20311 _overflow = { 20312 auto: 1, 20313 scroll: 1 20314 }; 20315 _nestedScroll = function _nestedScroll2(_ref5) { 20316 var event = _ref5.event, target = _ref5.target, axis = _ref5.axis; 20317 var node = (event.changedTouches ? event.changedTouches[0] : event).target, cache = node._gsap || gsap3.core.getCache(node), time = _getTime2(), cs; 20318 if (!cache._isScrollT || time - cache._isScrollT > 2e3) { 20319 while (node && node !== _body2 && (node.scrollHeight <= node.clientHeight && node.scrollWidth <= node.clientWidth || !(_overflow[(cs = _getComputedStyle(node)).overflowY] || _overflow[cs.overflowX]))) { 20320 node = node.parentNode; 20321 } 20322 cache._isScroll = node && node !== target && !_isViewport3(node) && (_overflow[(cs = _getComputedStyle(node)).overflowY] || _overflow[cs.overflowX]); 20323 cache._isScrollT = time; 20324 } 20325 if (cache._isScroll || axis === "x") { 20326 event.stopPropagation(); 20327 event._gsapAllow = true; 20328 } 20329 }; 20330 _inputObserver = function _inputObserver2(target, type, inputs, nested) { 20331 return Observer.create({ 20332 target, 20333 capture: true, 20334 debounce: false, 20335 lockAxis: true, 20336 type, 20337 onWheel: nested = nested && _nestedScroll, 20338 onPress: nested, 20339 onDrag: nested, 20340 onScroll: nested, 20341 onEnable: function onEnable() { 20342 return inputs && _addListener3(_doc4, Observer.eventTypes[0], _captureInputs, false, true); 20343 }, 20344 onDisable: function onDisable() { 20345 return _removeListener3(_doc4, Observer.eventTypes[0], _captureInputs, true); 20346 } 20347 }); 20348 }; 20349 _inputExp = /(input|label|select|textarea)/i; 20350 _captureInputs = function _captureInputs2(e11) { 20351 var isInput2 = _inputExp.test(e11.target.tagName); 20352 if (isInput2 || _inputIsFocused) { 20353 e11._gsapAllow = true; 20354 _inputIsFocused = isInput2; 20355 } 20356 }; 20357 _getScrollNormalizer = function _getScrollNormalizer2(vars) { 20358 _isObject3(vars) || (vars = {}); 20359 vars.preventDefault = vars.isNormalizer = vars.allowClicks = true; 20360 vars.type || (vars.type = "wheel,touch"); 20361 vars.debounce = !!vars.debounce; 20362 vars.id = vars.id || "normalizer"; 20363 var _vars2 = vars, normalizeScrollX = _vars2.normalizeScrollX, momentum = _vars2.momentum, allowNestedScroll = _vars2.allowNestedScroll, onRelease = _vars2.onRelease, self2, maxY, target = _getTarget(vars.target) || _docEl2, smoother = gsap3.core.globals().ScrollSmoother, smootherInstance = smoother && smoother.get(), content = _fixIOSBug && (vars.content && _getTarget(vars.content) || smootherInstance && vars.content !== false && !smootherInstance.smooth() && smootherInstance.content()), scrollFuncY = _getScrollFunc(target, _vertical), scrollFuncX = _getScrollFunc(target, _horizontal), scale = 1, initialScale = (Observer.isTouch && _win4.visualViewport ? _win4.visualViewport.scale * _win4.visualViewport.width : _win4.outerWidth) / _win4.innerWidth, wheelRefresh = 0, resolveMomentumDuration = _isFunction3(momentum) ? function() { 20364 return momentum(self2); 20365 } : function() { 20366 return momentum || 2.8; 20367 }, lastRefreshID, skipTouchMove, inputObserver = _inputObserver(target, vars.type, true, allowNestedScroll), resumeTouchMove = function resumeTouchMove2() { 20368 return skipTouchMove = false; 20369 }, scrollClampX = _passThrough3, scrollClampY = _passThrough3, updateClamps = function updateClamps2() { 20370 maxY = _maxScroll(target, _vertical); 20371 scrollClampY = _clamp4(_fixIOSBug ? 1 : 0, maxY); 20372 normalizeScrollX && (scrollClampX = _clamp4(0, _maxScroll(target, _horizontal))); 20373 lastRefreshID = _refreshID; 20374 }, removeContentOffset = function removeContentOffset2() { 20375 content._gsap.y = _round3(parseFloat(content._gsap.y) + scrollFuncY.offset) + "px"; 20376 content.style.transform = "matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, " + parseFloat(content._gsap.y) + ", 0, 1)"; 20377 scrollFuncY.offset = scrollFuncY.cacheID = 0; 20378 }, ignoreDrag = function ignoreDrag2() { 20379 if (skipTouchMove) { 20380 requestAnimationFrame(resumeTouchMove); 20381 var offset = _round3(self2.deltaY / 2), scroll = scrollClampY(scrollFuncY.v - offset); 20382 if (content && scroll !== scrollFuncY.v + scrollFuncY.offset) { 20383 scrollFuncY.offset = scroll - scrollFuncY.v; 20384 var y3 = _round3((parseFloat(content && content._gsap.y) || 0) - scrollFuncY.offset); 20385 content.style.transform = "matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, " + y3 + ", 0, 1)"; 20386 content._gsap.y = y3 + "px"; 20387 scrollFuncY.cacheID = _scrollers.cache; 20388 _updateAll(); 20389 } 20390 return true; 20391 } 20392 scrollFuncY.offset && removeContentOffset(); 20393 skipTouchMove = true; 20394 }, tween, startScrollX, startScrollY, onStopDelayedCall, onResize = function onResize2() { 20395 updateClamps(); 20396 if (tween.isActive() && tween.vars.scrollY > maxY) { 20397 scrollFuncY() > maxY ? tween.progress(1) && scrollFuncY(maxY) : tween.resetTo("scrollY", maxY); 20398 } 20399 }; 20400 content && gsap3.set(content, { 20401 y: "+=0" 20402 }); 20403 vars.ignoreCheck = function(e11) { 20404 return _fixIOSBug && e11.type === "touchmove" && ignoreDrag(e11) || scale > 1.05 && e11.type !== "touchstart" || self2.isGesturing || e11.touches && e11.touches.length > 1; 20405 }; 20406 vars.onPress = function() { 20407 skipTouchMove = false; 20408 var prevScale = scale; 20409 scale = _round3((_win4.visualViewport && _win4.visualViewport.scale || 1) / initialScale); 20410 tween.pause(); 20411 prevScale !== scale && _allowNativePanning(target, scale > 1.01 ? true : normalizeScrollX ? false : "x"); 20412 startScrollX = scrollFuncX(); 20413 startScrollY = scrollFuncY(); 20414 updateClamps(); 20415 lastRefreshID = _refreshID; 20416 }; 20417 vars.onRelease = vars.onGestureStart = function(self3, wasDragging) { 20418 scrollFuncY.offset && removeContentOffset(); 20419 if (!wasDragging) { 20420 onStopDelayedCall.restart(true); 20421 } else { 20422 _scrollers.cache++; 20423 var dur = resolveMomentumDuration(), currentScroll, endScroll; 20424 if (normalizeScrollX) { 20425 currentScroll = scrollFuncX(); 20426 endScroll = currentScroll + dur * 0.05 * -self3.velocityX / 0.227; 20427 dur *= _clampScrollAndGetDurationMultiplier(scrollFuncX, currentScroll, endScroll, _maxScroll(target, _horizontal)); 20428 tween.vars.scrollX = scrollClampX(endScroll); 20429 } 20430 currentScroll = scrollFuncY(); 20431 endScroll = currentScroll + dur * 0.05 * -self3.velocityY / 0.227; 20432 dur *= _clampScrollAndGetDurationMultiplier(scrollFuncY, currentScroll, endScroll, _maxScroll(target, _vertical)); 20433 tween.vars.scrollY = scrollClampY(endScroll); 20434 tween.invalidate().duration(dur).play(0.01); 20435 if (_fixIOSBug && tween.vars.scrollY >= maxY || currentScroll >= maxY - 1) { 20436 gsap3.to({}, { 20437 onUpdate: onResize, 20438 duration: dur 20439 }); 20440 } 20441 } 20442 onRelease && onRelease(self3); 20443 }; 20444 vars.onWheel = function() { 20445 tween._ts && tween.pause(); 20446 if (_getTime2() - wheelRefresh > 1e3) { 20447 lastRefreshID = 0; 20448 wheelRefresh = _getTime2(); 20449 } 20450 }; 20451 vars.onChange = function(self3, dx, dy, xArray, yArray) { 20452 _refreshID !== lastRefreshID && updateClamps(); 20453 dx && normalizeScrollX && scrollFuncX(scrollClampX(xArray[2] === dx ? startScrollX + (self3.startX - self3.x) : scrollFuncX() + dx - xArray[1])); 20454 if (dy) { 20455 scrollFuncY.offset && removeContentOffset(); 20456 var isTouch = yArray[2] === dy, y3 = isTouch ? startScrollY + self3.startY - self3.y : scrollFuncY() + dy - yArray[1], yClamped = scrollClampY(y3); 20457 isTouch && y3 !== yClamped && (startScrollY += yClamped - y3); 20458 scrollFuncY(yClamped); 20459 } 20460 (dy || dx) && _updateAll(); 20461 }; 20462 vars.onEnable = function() { 20463 _allowNativePanning(target, normalizeScrollX ? false : "x"); 20464 ScrollTrigger2.addEventListener("refresh", onResize); 20465 _addListener3(_win4, "resize", onResize); 20466 if (scrollFuncY.smooth) { 20467 scrollFuncY.target.style.scrollBehavior = "auto"; 20468 scrollFuncY.smooth = scrollFuncX.smooth = false; 20469 } 20470 inputObserver.enable(); 20471 }; 20472 vars.onDisable = function() { 20473 _allowNativePanning(target, true); 20474 _removeListener3(_win4, "resize", onResize); 20475 ScrollTrigger2.removeEventListener("refresh", onResize); 20476 inputObserver.kill(); 20477 }; 20478 vars.lockAxis = vars.lockAxis !== false; 20479 self2 = new Observer(vars); 20480 self2.iOS = _fixIOSBug; 20481 _fixIOSBug && !scrollFuncY() && scrollFuncY(1); 20482 _fixIOSBug && gsap3.ticker.add(_passThrough3); 20483 onStopDelayedCall = self2._dc; 20484 tween = gsap3.to(self2, { 20485 ease: "power4", 20486 paused: true, 20487 inherit: false, 20488 scrollX: normalizeScrollX ? "+=0.1" : "+=0", 20489 scrollY: "+=0.1", 20490 modifiers: { 20491 scrollY: _interruptionTracker(scrollFuncY, scrollFuncY(), function() { 20492 return tween.pause(); 20493 }) 20494 }, 20495 onUpdate: _updateAll, 20496 onComplete: onStopDelayedCall.vars.onComplete 20497 }); 20498 return self2; 20499 }; 20500 ScrollTrigger2.sort = function(func) { 20501 if (_isFunction3(func)) { 20502 return _triggers.sort(func); 20503 } 20504 var scroll = _win4.pageYOffset || 0; 20505 ScrollTrigger2.getAll().forEach(function(t11) { 20506 return t11._sortY = t11.trigger ? scroll + t11.trigger.getBoundingClientRect().top : t11.start + _win4.innerHeight; 20507 }); 20508 return _triggers.sort(func || function(a8, b3) { 20509 return (a8.vars.refreshPriority || 0) * -1e6 + (a8.vars.containerAnimation ? 1e6 : a8._sortY) - ((b3.vars.containerAnimation ? 1e6 : b3._sortY) + (b3.vars.refreshPriority || 0) * -1e6); 20510 }); 20511 }; 20512 ScrollTrigger2.observe = function(vars) { 20513 return new Observer(vars); 20514 }; 20515 ScrollTrigger2.normalizeScroll = function(vars) { 20516 if (typeof vars === "undefined") { 20517 return _normalizer2; 20518 } 20519 if (vars === true && _normalizer2) { 20520 return _normalizer2.enable(); 20521 } 20522 if (vars === false) { 20523 _normalizer2 && _normalizer2.kill(); 20524 _normalizer2 = vars; 20525 return; 20526 } 20527 var normalizer = vars instanceof Observer ? vars : _getScrollNormalizer(vars); 20528 _normalizer2 && _normalizer2.target === normalizer.target && _normalizer2.kill(); 20529 _isViewport3(normalizer.target) && (_normalizer2 = normalizer); 20530 return normalizer; 20531 }; 20532 ScrollTrigger2.core = { 20533 // smaller file size way to leverage in ScrollSmoother and Observer 20534 _getVelocityProp, 20535 _inputObserver, 20536 _scrollers, 20537 _proxies, 20538 bridge: { 20539 // when normalizeScroll sets the scroll position (ss = setScroll) 20540 ss: function ss() { 20541 _lastScrollTime || _dispatch3("scrollStart"); 20542 _lastScrollTime = _getTime2(); 20543 }, 20544 // a way to get the _refreshing value in Observer 20545 ref: function ref() { 20546 return _refreshing; 20547 } 20548 } 20549 }; 20550 _getGSAP3() && gsap3.registerPlugin(ScrollTrigger2); 20551 } 20552 }); 20553 20554
vendor: 34,154 bytes, lines 20554-21284
20554// node_modules/gsap/ScrollSmoother.js 20555 function _defineProperties2(target, props) { 20556 for (var i10 = 0; i10 < props.length; i10++) { 20557 var descriptor = props[i10]; 20558 descriptor.enumerable = descriptor.enumerable || false; 20559 descriptor.configurable = true; 20560 if ("value" in descriptor) descriptor.writable = true; 20561 Object.defineProperty(target, descriptor.key, descriptor); 20562 } 20563 } 20564 function _createClass2(Constructor, protoProps, staticProps) { 20565 if (protoProps) _defineProperties2(Constructor.prototype, protoProps); 20566 if (staticProps) _defineProperties2(Constructor, staticProps); 20567 return Constructor; 20568 } 20569 var gsap4, _coreInitted4, _win5, _doc5, _docEl3, _body3, _root3, _toArray2, _clamp5, ScrollTrigger3, _mainInstance, _expo, _getVelocityProp3, _inputObserver3, _context4, _onResizeDelayedCall, _windowExists7, _getGSAP5, _round5, _maxScroll3, _autoDistance, _wrap, ScrollSmoother; 20570 var init_ScrollSmoother = __esm({ 20571 "node_modules/gsap/ScrollSmoother.js"() { 20572 _windowExists7 = function _windowExists8() { 20573 return typeof window !== "undefined"; 20574 }; 20575 _getGSAP5 = function _getGSAP6() { 20576 return gsap4 || _windowExists7() && (gsap4 = window.gsap) && gsap4.registerPlugin && gsap4; 20577 }; 20578 _round5 = function _round6(value) { 20579 return Math.round(value * 1e5) / 1e5 || 0; 20580 }; 20581 _maxScroll3 = function _maxScroll4(scroller) { 20582 return ScrollTrigger3.maxScroll(scroller || _win5); 20583 }; 20584 _autoDistance = function _autoDistance2(el, progress) { 20585 var parent = el.parentNode || _docEl3, b1 = el.getBoundingClientRect(), b22 = parent.getBoundingClientRect(), gapTop = b22.top - b1.top, gapBottom = b22.bottom - b1.bottom, change = (Math.abs(gapTop) > Math.abs(gapBottom) ? gapTop : gapBottom) / (1 - progress), offset = -change * progress, ratio, extraChange; 20586 if (change > 0) { 20587 ratio = b22.height / (_win5.innerHeight + b22.height); 20588 extraChange = ratio === 0.5 ? b22.height * 2 : Math.min(b22.height, Math.abs(-change * ratio / (2 * ratio - 1))) * 2 * (progress || 1); 20589 offset += progress ? -extraChange * progress : -extraChange / 2; 20590 change += extraChange; 20591 } 20592 return { 20593 change, 20594 offset 20595 }; 20596 }; 20597 _wrap = function _wrap2(el) { 20598 var wrapper = _doc5.querySelector(".ScrollSmoother-wrapper"); 20599 if (!wrapper) { 20600 wrapper = _doc5.createElement("div"); 20601 wrapper.classList.add("ScrollSmoother-wrapper"); 20602 el.parentNode.insertBefore(wrapper, el); 20603 wrapper.appendChild(el); 20604 } 20605 return wrapper; 20606 }; 20607 ScrollSmoother = /* @__PURE__ */ (function() { 20608 function ScrollSmoother2(vars) { 20609 var _this = this; 20610 _coreInitted4 || ScrollSmoother2.register(gsap4) || console.warn("Please gsap.registerPlugin(ScrollSmoother)"); 20611 vars = this.vars = vars || {}; 20612 _mainInstance && _mainInstance.kill(); 20613 _mainInstance = this; 20614 _context4(this); 20615 var _vars = vars, smoothTouch = _vars.smoothTouch, _onUpdate = _vars.onUpdate, onStop = _vars.onStop, smooth = _vars.smooth, onFocusIn = _vars.onFocusIn, normalizeScroll = _vars.normalizeScroll, wholePixels = _vars.wholePixels, content, wrapper, height, mainST, effects, sections, intervalID, wrapperCSS, contentCSS, paused, pausedNormalizer, recordedRefreshScroll, recordedRefreshScrub, allowUpdates, self2 = this, effectsPrefix = vars.effectsPrefix || "", scrollFunc = ScrollTrigger3.getScrollFunc(_win5), smoothDuration = ScrollTrigger3.isTouch === 1 ? smoothTouch === true ? 0.8 : parseFloat(smoothTouch) || 0 : smooth === 0 || smooth === false ? 0 : parseFloat(smooth) || 0.8, speed = smoothDuration && +vars.speed || 1, currentY = 0, delta = 0, startupPhase = 1, tracker = _getVelocityProp3(0), updateVelocity = function updateVelocity2() { 20616 return tracker.update(-currentY); 20617 }, scroll = { 20618 y: 0 20619 }, removeScroll = function removeScroll2() { 20620 return content.style.overflow = "visible"; 20621 }, isProxyScrolling, killScrub = function killScrub2(trigger) { 20622 trigger.update(); 20623 var scrub = trigger.getTween(); 20624 if (scrub) { 20625 scrub.pause(); 20626 scrub._time = scrub._dur; 20627 scrub._tTime = scrub._tDur; 20628 } 20629 isProxyScrolling = false; 20630 trigger.animation.progress(trigger.progress, true); 20631 }, render3 = function render4(y3, force) { 20632 if (y3 !== currentY && !paused || force) { 20633 wholePixels && (y3 = Math.round(y3)); 20634 if (smoothDuration) { 20635 content.style.transform = "matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, " + y3 + ", 0, 1)"; 20636 content._gsap.y = y3 + "px"; 20637 } 20638 delta = y3 - currentY; 20639 currentY = y3; 20640 ScrollTrigger3.isUpdating || ScrollSmoother2.isRefreshing || ScrollTrigger3.update(); 20641 } 20642 }, scrollTop = function scrollTop2(value) { 20643 if (arguments.length) { 20644 value < 0 && (value = 0); 20645 scroll.y = -value; 20646 isProxyScrolling = true; 20647 paused ? currentY = -value : render3(-value); 20648 ScrollTrigger3.isRefreshing ? mainST.update() : scrollFunc(value / speed); 20649 return this; 20650 } 20651 return -currentY; 20652 }, resizeObserver = typeof ResizeObserver !== "undefined" && vars.autoResize !== false && new ResizeObserver(function() { 20653 if (!ScrollTrigger3.isRefreshing) { 20654 var max = _maxScroll3(wrapper) * speed; 20655 max < -currentY && scrollTop(max); 20656 _onResizeDelayedCall.restart(true); 20657 } 20658 }), lastFocusElement, _onFocusIn = function _onFocusIn2(e11) { 20659 wrapper.scrollTop = 0; 20660 if (e11.target.contains && e11.target.contains(wrapper) || onFocusIn && onFocusIn(_this, e11) === false) { 20661 return; 20662 } 20663 ScrollTrigger3.isInViewport(e11.target) || e11.target === lastFocusElement || _this.scrollTo(e11.target, false, "center center"); 20664 lastFocusElement = e11.target; 20665 }, _transformPosition = function _transformPosition2(position, st) { 20666 if (position < st.start) { 20667 return position; 20668 } 20669 var ratio = isNaN(st.ratio) ? 1 : st.ratio, change = st.end - st.start, distance = position - st.start, offset = st.offset || 0, pins = st.pins || [], pinOffset = pins.offset || 0, progressOffset = st._startClamp && st.start <= 0 || st.pins && st.pins.offset ? 0 : st._endClamp && st.end === _maxScroll3() ? 1 : 0.5; 20670 pins.forEach(function(p2) { 20671 change -= p2.distance; 20672 if (p2.nativeStart <= position) { 20673 distance -= p2.distance; 20674 } 20675 }); 20676 if (pinOffset) { 20677 distance *= (change - pinOffset / ratio) / change; 20678 } 20679 return position + (distance - offset * progressOffset) / ratio - distance; 20680 }, adjustEffectRelatedTriggers = function adjustEffectRelatedTriggers2(st, triggers, partial) { 20681 partial || (st.pins.length = st.pins.offset = 0); 20682 var pins = st.pins, markers = st.markers, dif, isClamped, start, end, nativeStart, nativeEnd, i10, trig; 20683 for (i10 = 0; i10 < triggers.length; i10++) { 20684 trig = triggers[i10]; 20685 if (st.trigger && trig.trigger && st !== trig && (trig.trigger === st.trigger || trig.pinnedContainer === st.trigger || st.trigger.contains(trig.trigger))) { 20686 nativeStart = trig._startNative || trig._startClamp || trig.start; 20687 nativeEnd = trig._endNative || trig._endClamp || trig.end; 20688 start = _transformPosition(nativeStart, st); 20689 end = trig.pin && nativeEnd > 0 ? start + (nativeEnd - nativeStart) : _transformPosition(nativeEnd, st); 20690 trig.setPositions(start, end, true, (trig._startClamp ? Math.max(0, start) : start) - nativeStart); 20691 trig.markerStart && markers.push(gsap4.quickSetter([trig.markerStart, trig.markerEnd], "y", "px")); 20692 if (trig.pin && trig.end > 0 && !partial) { 20693 dif = trig.end - trig.start; 20694 isClamped = st._startClamp && trig.start < 0; 20695 if (isClamped) { 20696 if (st.start > 0) { 20697 st.setPositions(0, st.end + (st._startNative - st.start), true); 20698 adjustEffectRelatedTriggers2(st, triggers); 20699 return; 20700 } 20701 dif += trig.start; 20702 pins.offset = -trig.start; 20703 } 20704 pins.push({ 20705 start: trig.start, 20706 nativeStart, 20707 end: trig.end, 20708 distance: dif, 20709 trig 20710 }); 20711 st.setPositions(st.start, st.end + (isClamped ? -trig.start : dif), true); 20712 } 20713 } 20714 } 20715 }, adjustParallaxPosition = function adjustParallaxPosition2(triggers, createdAfterEffectWasApplied) { 20716 effects.forEach(function(st) { 20717 return adjustEffectRelatedTriggers(st, triggers, createdAfterEffectWasApplied); 20718 }); 20719 }, onRefresh = function onRefresh2() { 20720 _docEl3 = _doc5.documentElement; 20721 _body3 = _doc5.body; 20722 removeScroll(); 20723 requestAnimationFrame(removeScroll); 20724 if (effects) { 20725 ScrollTrigger3.getAll().forEach(function(st) { 20726 st._startNative = st.start; 20727 st._endNative = st.end; 20728 }); 20729 effects.forEach(function(st) { 20730 var start = st._startClamp || st.start, end = st.autoSpeed ? Math.min(_maxScroll3(), st.end) : start + Math.abs((st.end - start) / st.ratio), offset = end - st.end; 20731 start -= offset / 2; 20732 end -= offset / 2; 20733 if (start > end) { 20734 var s13 = start; 20735 start = end; 20736 end = s13; 20737 } 20738 if (st._startClamp && start < 0) { 20739 end = st.ratio < 0 ? _maxScroll3() : st.end / st.ratio; 20740 offset = end - st.end; 20741 start = 0; 20742 } else if (st.ratio < 0 || st._endClamp && end >= _maxScroll3()) { 20743 end = _maxScroll3(); 20744 start = st.ratio < 0 ? 0 : st.ratio > 1 ? 0 : end - (end - st.start) / st.ratio; 20745 offset = (end - start) * st.ratio - (st.end - st.start); 20746 } 20747 st.offset = offset || 1e-4; 20748 st.pins.length = st.pins.offset = 0; 20749 st.setPositions(start, end, true); 20750 }); 20751 adjustParallaxPosition(ScrollTrigger3.sort()); 20752 } 20753 tracker.reset(); 20754 }, addOnRefresh = function addOnRefresh2() { 20755 return ScrollTrigger3.addEventListener("refresh", onRefresh); 20756 }, restoreEffects = function restoreEffects2() { 20757 return effects && effects.forEach(function(st) { 20758 return st.vars.onRefresh(st); 20759 }); 20760 }, revertEffects = function revertEffects2() { 20761 effects && effects.forEach(function(st) { 20762 return st.vars.onRefreshInit(st); 20763 }); 20764 return restoreEffects; 20765 }, effectValueGetter = function effectValueGetter2(name, value, index, el) { 20766 return function() { 20767 var v3 = typeof value === "function" ? value(index, el) : value; 20768 v3 || v3 === 0 || (v3 = el.getAttribute("data-" + effectsPrefix + name) || (name === "speed" ? 1 : 0)); 20769 el.setAttribute("data-" + effectsPrefix + name, v3); 20770 var clamp3 = (v3 + "").substr(0, 6) === "clamp("; 20771 return { 20772 clamp: clamp3, 20773 value: clamp3 ? v3.substr(6, v3.length - 7) : v3 20774 }; 20775 }; 20776 }, createEffect = function createEffect2(el, speed2, lag, index, effectsPadding) { 20777 effectsPadding = (typeof effectsPadding === "function" ? effectsPadding(index, el) : effectsPadding) || 0; 20778 var getSpeed = effectValueGetter("speed", speed2, index, el), getLag = effectValueGetter("lag", lag, index, el), startY = gsap4.getProperty(el, "y"), cache = el._gsap, ratio, st, autoSpeed, scrub, progressOffset, yOffset, pins = [], initDynamicValues = function initDynamicValues2() { 20779 speed2 = getSpeed(); 20780 lag = parseFloat(getLag().value); 20781 ratio = parseFloat(speed2.value) || 1; 20782 autoSpeed = speed2.value === "auto"; 20783 progressOffset = autoSpeed || st && st._startClamp && st.start <= 0 || pins.offset ? 0 : st && st._endClamp && st.end === _maxScroll3() ? 1 : 0.5; 20784 scrub && scrub.kill(); 20785 scrub = lag && gsap4.to(el, { 20786 ease: _expo, 20787 overwrite: false, 20788 y: "+=0", 20789 duration: lag 20790 }); 20791 if (st) { 20792 st.ratio = ratio; 20793 st.autoSpeed = autoSpeed; 20794 } 20795 }, revert = function revert2() { 20796 cache.y = startY + "px"; 20797 cache.renderTransform(1); 20798 initDynamicValues(); 20799 }, markers = [], change = 0, updateChange = function updateChange2(self3) { 20800 if (autoSpeed) { 20801 revert(); 20802 var auto = _autoDistance(el, _clamp5(0, 1, -self3.start / (self3.end - self3.start))); 20803 change = auto.change; 20804 yOffset = auto.offset; 20805 } else { 20806 yOffset = pins.offset || 0; 20807 change = (self3.end - self3.start - yOffset) * (1 - ratio); 20808 } 20809 pins.forEach(function(p2) { 20810 return change -= p2.distance * (1 - ratio); 20811 }); 20812 self3.offset = change || 1e-3; 20813 self3.vars.onUpdate(self3); 20814 scrub && scrub.progress(1); 20815 }; 20816 initDynamicValues(); 20817 if (ratio !== 1 || autoSpeed || scrub) { 20818 st = ScrollTrigger3.create({ 20819 trigger: autoSpeed ? el.parentNode : el, 20820 start: function start() { 20821 return speed2.clamp ? "clamp(top bottom+=" + effectsPadding + ")" : "top bottom+=" + effectsPadding; 20822 }, 20823 end: function end() { 20824 return speed2.value < 0 ? "max" : speed2.clamp ? "clamp(bottom top-=" + effectsPadding + ")" : "bottom top-=" + effectsPadding; 20825 }, 20826 scroller: wrapper, 20827 scrub: true, 20828 refreshPriority: -999, 20829 // must update AFTER any other ScrollTrigger pins 20830 onRefreshInit: revert, 20831 onRefresh: updateChange, 20832 onKill: function onKill(self3) { 20833 var i10 = effects.indexOf(self3); 20834 i10 >= 0 && effects.splice(i10, 1); 20835 revert(); 20836 }, 20837 onUpdate: function onUpdate(self3) { 20838 var y3 = startY + change * (self3.progress - progressOffset), i10 = pins.length, extraY = 0, pin, scrollY, end; 20839 if (self3.offset) { 20840 if (i10) { 20841 scrollY = -currentY; 20842 end = self3.end; 20843 while (i10--) { 20844 pin = pins[i10]; 20845 if (pin.trig.isActive || scrollY >= pin.start && scrollY <= pin.end) { 20846 if (scrub) { 20847 pin.trig.progress += pin.trig.direction < 0 ? 1e-3 : -1e-3; 20848 pin.trig.update(0, 0, 1); 20849 scrub.resetTo("y", parseFloat(cache.y), -delta, true); 20850 startupPhase && scrub.progress(1); 20851 } 20852 return; 20853 } 20854 scrollY > pin.end && (extraY += pin.distance); 20855 end -= pin.distance; 20856 } 20857 y3 = startY + extraY + change * ((gsap4.utils.clamp(self3.start, self3.end, scrollY) - self3.start - extraY) / (end - self3.start) - progressOffset); 20858 } 20859 markers.length && !autoSpeed && markers.forEach(function(setter) { 20860 return setter(y3 - extraY); 20861 }); 20862 y3 = _round5(y3 + yOffset); 20863 if (scrub) { 20864 scrub.resetTo("y", y3, -delta, true); 20865 startupPhase && scrub.progress(1); 20866 } else { 20867 cache.y = y3 + "px"; 20868 cache.renderTransform(1); 20869 } 20870 } 20871 } 20872 }); 20873 updateChange(st); 20874 gsap4.core.getCache(st.trigger).stRevert = revertEffects; 20875 st.startY = startY; 20876 st.pins = pins; 20877 st.markers = markers; 20878 st.ratio = ratio; 20879 st.autoSpeed = autoSpeed; 20880 el.style.willChange = "transform"; 20881 } 20882 return st; 20883 }; 20884 addOnRefresh(); 20885 ScrollTrigger3.addEventListener("killAll", addOnRefresh); 20886 gsap4.delayedCall(0.5, function() { 20887 return startupPhase = 0; 20888 }); 20889 this.scrollTop = scrollTop; 20890 this.scrollTo = function(target, smooth2, position) { 20891 var p2 = gsap4.utils.clamp(0, _maxScroll3(), isNaN(target) ? _this.offset(target, position, !!smooth2 && !paused) : +target); 20892 !smooth2 ? scrollTop(p2) : paused ? gsap4.to(_this, { 20893 duration: smoothDuration, 20894 scrollTop: p2, 20895 overwrite: "auto", 20896 ease: _expo 20897 }) : scrollFunc(p2); 20898 }; 20899 this.offset = function(target, position, ignoreSpeed) { 20900 target = _toArray2(target)[0]; 20901 var cssText = target.style.cssText, st = ScrollTrigger3.create({ 20902 trigger: target, 20903 start: position || "top top" 20904 }), y3; 20905 if (effects) { 20906 startupPhase ? ScrollTrigger3.refresh() : adjustParallaxPosition([st], true); 20907 } 20908 y3 = st.start / (ignoreSpeed ? speed : 1); 20909 st.kill(false); 20910 target.style.cssText = cssText; 20911 gsap4.core.getCache(target).uncache = 1; 20912 return y3; 20913 }; 20914 function refreshHeight() { 20915 height = content.clientHeight; 20916 content.style.overflow = "visible"; 20917 _body3.style.height = _win5.innerHeight + (height - _win5.innerHeight) / speed + "px"; 20918 return height - _win5.innerHeight; 20919 } 20920 this.content = function(element) { 20921 if (arguments.length) { 20922 var newContent = _toArray2(element || "#smooth-content")[0] || console.warn("ScrollSmoother needs a valid content element.") || _body3.children[0]; 20923 if (newContent !== content) { 20924 content = newContent; 20925 contentCSS = content.getAttribute("style") || ""; 20926 resizeObserver && resizeObserver.observe(content); 20927 gsap4.set(content, { 20928 overflow: "visible", 20929 width: "100%", 20930 boxSizing: "border-box", 20931 y: "+=0" 20932 }); 20933 smoothDuration || gsap4.set(content, { 20934 clearProps: "transform" 20935 }); 20936 } 20937 return this; 20938 } 20939 return content; 20940 }; 20941 this.wrapper = function(element) { 20942 if (arguments.length) { 20943 wrapper = _toArray2(element || "#smooth-wrapper")[0] || _wrap(content); 20944 wrapperCSS = wrapper.getAttribute("style") || ""; 20945 refreshHeight(); 20946 gsap4.set(wrapper, smoothDuration ? { 20947 overflow: "hidden", 20948 position: "fixed", 20949 height: "100%", 20950 width: "100%", 20951 top: 0, 20952 left: 0, 20953 right: 0, 20954 bottom: 0 20955 } : { 20956 overflow: "visible", 20957 position: "relative", 20958 width: "100%", 20959 height: "auto", 20960 top: "auto", 20961 bottom: "auto", 20962 left: "auto", 20963 right: "auto" 20964 }); 20965 return this; 20966 } 20967 return wrapper; 20968 }; 20969 this.effects = function(targets, config3) { 20970 var _effects2; 20971 effects || (effects = []); 20972 if (!targets) { 20973 return effects.slice(0); 20974 } 20975 targets = _toArray2(targets); 20976 targets.forEach(function(target) { 20977 var i11 = effects.length; 20978 while (i11--) { 20979 effects[i11].trigger === target && effects[i11].kill(); 20980 } 20981 }); 20982 config3 = config3 || {}; 20983 var _config2 = config3, speed2 = _config2.speed, lag = _config2.lag, effectsPadding = _config2.effectsPadding, effectsToAdd = [], i10, st; 20984 for (i10 = 0; i10 < targets.length; i10++) { 20985 st = createEffect(targets[i10], speed2, lag, i10, effectsPadding); 20986 st && effectsToAdd.push(st); 20987 } 20988 (_effects2 = effects).push.apply(_effects2, effectsToAdd); 20989 config3.refresh !== false && ScrollTrigger3.refresh(); 20990 return effectsToAdd; 20991 }; 20992 this.sections = function(targets, config3) { 20993 var _sections; 20994 sections || (sections = []); 20995 if (!targets) { 20996 return sections.slice(0); 20997 } 20998 var newSections = _toArray2(targets).map(function(el) { 20999 return ScrollTrigger3.create({ 21000 trigger: el, 21001 start: "top 120%", 21002 end: "bottom -20%", 21003 onToggle: function onToggle(self3) { 21004 el.style.opacity = self3.isActive ? "1" : "0"; 21005 el.style.pointerEvents = self3.isActive ? "all" : "none"; 21006 } 21007 }); 21008 }); 21009 config3 && config3.add ? (_sections = sections).push.apply(_sections, newSections) : sections = newSections.slice(0); 21010 return newSections; 21011 }; 21012 this.content(vars.content); 21013 this.wrapper(vars.wrapper); 21014 this.render = function(y3) { 21015 return render3(y3 || y3 === 0 ? y3 : currentY); 21016 }; 21017 this.getVelocity = function() { 21018 return tracker.getVelocity(-currentY); 21019 }; 21020 ScrollTrigger3.scrollerProxy(wrapper, { 21021 scrollTop, 21022 scrollHeight: function scrollHeight() { 21023 return refreshHeight() && _body3.scrollHeight; 21024 }, 21025 fixedMarkers: vars.fixedMarkers !== false && !!smoothDuration, 21026 content, 21027 getBoundingClientRect: function getBoundingClientRect() { 21028 return { 21029 top: 0, 21030 left: 0, 21031 width: _win5.innerWidth, 21032 height: _win5.innerHeight 21033 }; 21034 } 21035 }); 21036 ScrollTrigger3.defaults({ 21037 scroller: wrapper 21038 }); 21039 var existingScrollTriggers = ScrollTrigger3.getAll().filter(function(st) { 21040 return st.scroller === _win5 || st.scroller === wrapper; 21041 }); 21042 existingScrollTriggers.forEach(function(st) { 21043 return st.revert(true, true); 21044 }); 21045 mainST = ScrollTrigger3.create({ 21046 animation: gsap4.fromTo(scroll, { 21047 y: function y3() { 21048 allowUpdates = 0; 21049 return 0; 21050 } 21051 }, { 21052 y: function y3() { 21053 allowUpdates = 1; 21054 return -refreshHeight(); 21055 }, 21056 immediateRender: false, 21057 ease: "none", 21058 data: "ScrollSmoother", 21059 duration: 100, 21060 // for added precision 21061 onUpdate: function onUpdate() { 21062 if (allowUpdates) { 21063 var force = isProxyScrolling; 21064 if (force) { 21065 killScrub(mainST); 21066 scroll.y = currentY; 21067 } 21068 render3(scroll.y, force); 21069 updateVelocity(); 21070 _onUpdate && !paused && _onUpdate(self2); 21071 } 21072 } 21073 }), 21074 onRefreshInit: function onRefreshInit(self3) { 21075 if (ScrollSmoother2.isRefreshing) { 21076 return; 21077 } 21078 ScrollSmoother2.isRefreshing = true; 21079 if (effects) { 21080 var _pins = ScrollTrigger3.getAll().filter(function(st) { 21081 return !!st.pin; 21082 }); 21083 effects.forEach(function(st) { 21084 if (!st.vars.pinnedContainer) { 21085 _pins.forEach(function(pinST) { 21086 if (pinST.pin.contains(st.trigger)) { 21087 var v3 = st.vars; 21088 v3.pinnedContainer = pinST.pin; 21089 st.vars = null; 21090 st.init(v3, st.animation); 21091 } 21092 }); 21093 } 21094 }); 21095 } 21096 var scrub = self3.getTween(); 21097 recordedRefreshScrub = scrub && scrub._end > scrub._dp._time; 21098 recordedRefreshScroll = currentY; 21099 scroll.y = 0; 21100 if (smoothDuration) { 21101 ScrollTrigger3.isTouch === 1 && (wrapper.style.position = "absolute"); 21102 wrapper.scrollTop = 0; 21103 ScrollTrigger3.isTouch === 1 && (wrapper.style.position = "fixed"); 21104 } 21105 }, 21106 onRefresh: function onRefresh2(self3) { 21107 self3.animation.invalidate(); 21108 scroll.y = 0; 21109 self3.setPositions(self3.start, refreshHeight() / speed); 21110 recordedRefreshScrub || killScrub(self3); 21111 scroll.y = -scrollFunc() * speed; 21112 render3(scroll.y); 21113 if (!startupPhase) { 21114 recordedRefreshScrub && (isProxyScrolling = false); 21115 self3.animation.progress(gsap4.utils.clamp(0, 1, recordedRefreshScroll / speed / -self3.end)); 21116 } 21117 if (recordedRefreshScrub) { 21118 self3.progress -= 1e-3; 21119 self3.update(); 21120 } 21121 ScrollSmoother2.isRefreshing = false; 21122 }, 21123 id: "ScrollSmoother", 21124 scroller: _win5, 21125 invalidateOnRefresh: true, 21126 start: 0, 21127 refreshPriority: -9999, 21128 // because all other pins, etc. should be calculated first before this figures out the height of the body. BUT this should also update FIRST so that the scroll position on the proxy is up-to-date when all the ScrollTriggers calculate their progress! -9999 is a special number that ScrollTrigger looks for to handle in this way. 21129 end: function end() { 21130 return refreshHeight() / speed; 21131 }, 21132 onScrubComplete: function onScrubComplete() { 21133 tracker.reset(); 21134 onStop && onStop(_this); 21135 }, 21136 scrub: smoothDuration || true 21137 }); 21138 this.smooth = function(value) { 21139 if (arguments.length) { 21140 smoothDuration = value || 0; 21141 speed = smoothDuration && +vars.speed || 1; 21142 mainST.scrubDuration(value); 21143 } 21144 return mainST.getTween() ? mainST.getTween().duration() : 0; 21145 }; 21146 mainST.getTween() && (mainST.getTween().vars.ease = vars.ease || _expo); 21147 this.scrollTrigger = mainST; 21148 vars.effects && this.effects(vars.effects === true ? "[data-" + effectsPrefix + "speed], [data-" + effectsPrefix + "lag]" : vars.effects, { 21149 effectsPadding: vars.effectsPadding, 21150 refresh: false 21151 }); 21152 vars.sections && this.sections(vars.sections === true ? "[data-section]" : vars.sections); 21153 existingScrollTriggers.forEach(function(st) { 21154 st.vars.scroller = wrapper; 21155 st.revert(false, true); 21156 st.init(st.vars, st.animation); 21157 }); 21158 this.paused = function(value, allowNestedScroll) { 21159 if (arguments.length) { 21160 if (!!paused !== value) { 21161 if (value) { 21162 mainST.getTween() && mainST.getTween().pause(); 21163 scrollFunc(-currentY / speed); 21164 tracker.reset(); 21165 pausedNormalizer = ScrollTrigger3.normalizeScroll(); 21166 pausedNormalizer && pausedNormalizer.disable(); 21167 paused = ScrollTrigger3.observe({ 21168 preventDefault: true, 21169 type: "wheel,touch,scroll", 21170 debounce: false, 21171 allowClicks: true, 21172 onChangeY: function onChangeY() { 21173 return scrollTop(-currentY); 21174 } 21175 // refuse to scroll 21176 }); 21177 paused.nested = _inputObserver3(_docEl3, "wheel,touch,scroll", true, allowNestedScroll !== false); 21178 } else { 21179 paused.nested.kill(); 21180 paused.kill(); 21181 paused = 0; 21182 pausedNormalizer && pausedNormalizer.enable(); 21183 mainST.progress = (-currentY / speed - mainST.start) / (mainST.end - mainST.start); 21184 killScrub(mainST); 21185 } 21186 } 21187 return this; 21188 } 21189 return !!paused; 21190 }; 21191 this.kill = this.revert = function() { 21192 _this.paused(false); 21193 killScrub(mainST); 21194 mainST.kill(); 21195 var triggers = (effects || []).concat(sections || []), i10 = triggers.length; 21196 while (i10--) { 21197 triggers[i10].kill(); 21198 } 21199 ScrollTrigger3.scrollerProxy(wrapper); 21200 ScrollTrigger3.removeEventListener("killAll", addOnRefresh); 21201 ScrollTrigger3.removeEventListener("refresh", onRefresh); 21202 wrapper.style.cssText = wrapperCSS; 21203 content.style.cssText = contentCSS; 21204 var defaults2 = ScrollTrigger3.defaults({}); 21205 defaults2 && defaults2.scroller === wrapper && ScrollTrigger3.defaults({ 21206 scroller: _win5 21207 }); 21208 _this.normalizer && ScrollTrigger3.normalizeScroll(false); 21209 clearInterval(intervalID); 21210 _mainInstance = null; 21211 resizeObserver && resizeObserver.disconnect(); 21212 _body3.style.removeProperty("height"); 21213 _win5.removeEventListener("focusin", _onFocusIn); 21214 }; 21215 this.refresh = function(soft, force) { 21216 return mainST.refresh(soft, force); 21217 }; 21218 if (normalizeScroll) { 21219 this.normalizer = ScrollTrigger3.normalizeScroll(normalizeScroll === true ? { 21220 debounce: true, 21221 content: !smoothDuration && content 21222 } : normalizeScroll); 21223 } 21224 ScrollTrigger3.config(vars); 21225 "scrollBehavior" in _win5.getComputedStyle(_body3) && gsap4.set([_body3, _docEl3], { 21226 scrollBehavior: "auto" 21227 }); 21228 _win5.addEventListener("focusin", _onFocusIn); 21229 intervalID = setInterval(updateVelocity, 250); 21230 _doc5.readyState === "loading" || requestAnimationFrame(function() { 21231 return ScrollTrigger3.refresh(); 21232 }); 21233 } 21234 ScrollSmoother2.register = function register(core) { 21235 if (!_coreInitted4) { 21236 gsap4 = core || _getGSAP5(); 21237 if (_windowExists7() && window.document) { 21238 _win5 = window; 21239 _doc5 = document; 21240 _docEl3 = _doc5.documentElement; 21241 _body3 = _doc5.body; 21242 } 21243 if (gsap4) { 21244 _toArray2 = gsap4.utils.toArray; 21245 _clamp5 = gsap4.utils.clamp; 21246 _expo = gsap4.parseEase("expo"); 21247 _context4 = gsap4.core.context || function() { 21248 }; 21249 ScrollTrigger3 = gsap4.core.globals().ScrollTrigger; 21250 gsap4.core.globals("ScrollSmoother", ScrollSmoother2); 21251 if (_body3 && ScrollTrigger3) { 21252 _onResizeDelayedCall = gsap4.delayedCall(0.2, function() { 21253 return ScrollTrigger3.isRefreshing || _mainInstance && _mainInstance.refresh(); 21254 }).pause(); 21255 _root3 = [_win5, _doc5, _docEl3, _body3]; 21256 _getVelocityProp3 = ScrollTrigger3.core._getVelocityProp; 21257 _inputObserver3 = ScrollTrigger3.core._inputObserver; 21258 ScrollSmoother2.refresh = ScrollTrigger3.refresh; 21259 _coreInitted4 = 1; 21260 } 21261 } 21262 } 21263 return _coreInitted4; 21264 }; 21265 _createClass2(ScrollSmoother2, [{ 21266 key: "progress", 21267 get: function get() { 21268 return this.scrollTrigger ? this.scrollTrigger.animation._time / 100 : 0; 21269 } 21270 }]); 21271 return ScrollSmoother2; 21272 })(); 21273 ScrollSmoother.version = "3.14.2"; 21274 ScrollSmoother.create = function(vars) { 21275 return _mainInstance && vars && _mainInstance.content() === _toArray2(vars.content)[0] ? _mainInstance : new ScrollSmoother(vars); 21276 }; 21277 ScrollSmoother.get = function() { 21278 return _mainInstance; 21279 }; 21280 _getGSAP5() && gsap4.registerPlugin(ScrollSmoother); 21281 } 21282 }); 21283 21284
21284// js/gsap.js 21285 var gsap_exports = {}; 21286 var init_gsap2 = __esm({ 21287 "js/gsap.js"() { 21288 init_gsap(); 21289 init_ScrollTrigger(); 21290 init_ScrollSmoother(); 21291 gsapWithCSS.registerPlugin(ScrollTrigger2, ScrollSmoother); 21292 } 21293 }); 21294 21295
vendor: 2,707 bytes, lines 21295-21371
21295// node_modules/outlayer/node_modules/ev-emitter/ev-emitter.js 21296 var require_ev_emitter2 = __commonJS({ 21297 "node_modules/outlayer/node_modules/ev-emitter/ev-emitter.js"(exports, module) { 21298 (function(global, factory) { 21299 if (typeof define == "function" && define.amd) { 21300 define(factory); 21301 } else if (typeof module == "object" && module.exports) { 21302 module.exports = factory(); 21303 } else { 21304 global.EvEmitter = factory(); 21305 } 21306 })(typeof window != "undefined" ? window : exports, function() { 21307 "use strict"; 21308 function EvEmitter() { 21309 } 21310 var proto = EvEmitter.prototype; 21311 proto.on = function(eventName, listener) { 21312 if (!eventName || !listener) { 21313 return; 21314 } 21315 var events = this._events = this._events || {}; 21316 var listeners = events[eventName] = events[eventName] || []; 21317 if (listeners.indexOf(listener) == -1) { 21318 listeners.push(listener); 21319 } 21320 return this; 21321 }; 21322 proto.once = function(eventName, listener) { 21323 if (!eventName || !listener) { 21324 return; 21325 } 21326 this.on(eventName, listener); 21327 var onceEvents = this._onceEvents = this._onceEvents || {}; 21328 var onceListeners = onceEvents[eventName] = onceEvents[eventName] || {}; 21329 onceListeners[listener] = true; 21330 return this; 21331 }; 21332 proto.off = function(eventName, listener) { 21333 var listeners = this._events && this._events[eventName]; 21334 if (!listeners || !listeners.length) { 21335 return; 21336 } 21337 var index = listeners.indexOf(listener); 21338 if (index != -1) { 21339 listeners.splice(index, 1); 21340 } 21341 return this; 21342 }; 21343 proto.emitEvent = function(eventName, args) { 21344 var listeners = this._events && this._events[eventName]; 21345 if (!listeners || !listeners.length) { 21346 return; 21347 } 21348 listeners = listeners.slice(0); 21349 args = args || []; 21350 var onceListeners = this._onceEvents && this._onceEvents[eventName]; 21351 for (var i10 = 0; i10 < listeners.length; i10++) { 21352 var listener = listeners[i10]; 21353 var isOnce = onceListeners && onceListeners[listener]; 21354 if (isOnce) { 21355 this.off(eventName, listener); 21356 delete onceListeners[listener]; 21357 } 21358 listener.apply(this, args); 21359 } 21360 return this; 21361 }; 21362 proto.allOff = function() { 21363 delete this._events; 21364 delete this._onceEvents; 21365 }; 21366 return EvEmitter; 21367 }); 21368 } 21369 }); 21370 21371
vendor: 4,899 bytes, lines 21371-21501
21371// node_modules/get-size/get-size.js 21372 var require_get_size2 = __commonJS({ 21373 "node_modules/get-size/get-size.js"(exports, module) { 21374 (function(window2, factory) { 21375 if (typeof define == "function" && define.amd) { 21376 define(factory); 21377 } else if (typeof module == "object" && module.exports) { 21378 module.exports = factory(); 21379 } else { 21380 window2.getSize = factory(); 21381 } 21382 })(window, function factory() { 21383 "use strict"; 21384 function getStyleSize(value) { 21385 var num = parseFloat(value); 21386 var isValid = value.indexOf("%") == -1 && !isNaN(num); 21387 return isValid && num; 21388 } 21389 function noop() { 21390 } 21391 var logError = typeof console == "undefined" ? noop : function(message) { 21392 console.error(message); 21393 }; 21394 var measurements = [ 21395 "paddingLeft", 21396 "paddingRight", 21397 "paddingTop", 21398 "paddingBottom", 21399 "marginLeft", 21400 "marginRight", 21401 "marginTop", 21402 "marginBottom", 21403 "borderLeftWidth", 21404 "borderRightWidth", 21405 "borderTopWidth", 21406 "borderBottomWidth" 21407 ]; 21408 var measurementsLength = measurements.length; 21409 function getZeroSize() { 21410 var size = { 21411 width: 0, 21412 height: 0, 21413 innerWidth: 0, 21414 innerHeight: 0, 21415 outerWidth: 0, 21416 outerHeight: 0 21417 }; 21418 for (var i10 = 0; i10 < measurementsLength; i10++) { 21419 var measurement = measurements[i10]; 21420 size[measurement] = 0; 21421 } 21422 return size; 21423 } 21424 function getStyle(elem) { 21425 var style = getComputedStyle(elem); 21426 if (!style) { 21427 logError("Style returned " + style + ". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"); 21428 } 21429 return style; 21430 } 21431 var isSetup = false; 21432 var isBoxSizeOuter; 21433 function setup() { 21434 if (isSetup) { 21435 return; 21436 } 21437 isSetup = true; 21438 var div = document.createElement("div"); 21439 div.style.width = "200px"; 21440 div.style.padding = "1px 2px 3px 4px"; 21441 div.style.borderStyle = "solid"; 21442 div.style.borderWidth = "1px 2px 3px 4px"; 21443 div.style.boxSizing = "border-box"; 21444 var body = document.body || document.documentElement; 21445 body.appendChild(div); 21446 var style = getStyle(div); 21447 isBoxSizeOuter = Math.round(getStyleSize(style.width)) == 200; 21448 getSize.isBoxSizeOuter = isBoxSizeOuter; 21449 body.removeChild(div); 21450 } 21451 function getSize(elem) { 21452 setup(); 21453 if (typeof elem == "string") { 21454 elem = document.querySelector(elem); 21455 } 21456 if (!elem || typeof elem != "object" || !elem.nodeType) { 21457 return; 21458 } 21459 var style = getStyle(elem); 21460 if (style.display == "none") { 21461 return getZeroSize(); 21462 } 21463 var size = {}; 21464 size.width = elem.offsetWidth; 21465 size.height = elem.offsetHeight; 21466 var isBorderBox = size.isBorderBox = style.boxSizing == "border-box"; 21467 for (var i10 = 0; i10 < measurementsLength; i10++) { 21468 var measurement = measurements[i10]; 21469 var value = style[measurement]; 21470 var num = parseFloat(value); 21471 size[measurement] = !isNaN(num) ? num : 0; 21472 } 21473 var paddingWidth = size.paddingLeft + size.paddingRight; 21474 var paddingHeight = size.paddingTop + size.paddingBottom; 21475 var marginWidth = size.marginLeft + size.marginRight; 21476 var marginHeight = size.marginTop + size.marginBottom; 21477 var borderWidth = size.borderLeftWidth + size.borderRightWidth; 21478 var borderHeight = size.borderTopWidth + size.borderBottomWidth; 21479 var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter; 21480 var styleWidth = getStyleSize(style.width); 21481 if (styleWidth !== false) { 21482 size.width = styleWidth + // add padding and border unless it's already including it 21483 (isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth); 21484 } 21485 var styleHeight = getStyleSize(style.height); 21486 if (styleHeight !== false) { 21487 size.height = styleHeight + // add padding and border unless it's already including it 21488 (isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight); 21489 } 21490 size.innerWidth = size.width - (paddingWidth + borderWidth); 21491 size.innerHeight = size.height - (paddingHeight + borderHeight); 21492 size.outerWidth = size.width + marginWidth; 21493 size.outerHeight = size.height + marginHeight; 21494 return size; 21495 } 21496 return getSize; 21497 }); 21498 } 21499 }); 21500 21501
vendor: 1,294 bytes, lines 21501-21539
21501// node_modules/desandro-matches-selector/matches-selector.js 21502 var require_matches_selector = __commonJS({ 21503 "node_modules/desandro-matches-selector/matches-selector.js"(exports, module) { 21504 (function(window2, factory) { 21505 "use strict"; 21506 if (typeof define == "function" && define.amd) { 21507 define(factory); 21508 } else if (typeof module == "object" && module.exports) { 21509 module.exports = factory(); 21510 } else { 21511 window2.matchesSelector = factory(); 21512 } 21513 })(window, function factory() { 21514 "use strict"; 21515 var matchesMethod = (function() { 21516 var ElemProto = window.Element.prototype; 21517 if (ElemProto.matches) { 21518 return "matches"; 21519 } 21520 if (ElemProto.matchesSelector) { 21521 return "matchesSelector"; 21522 } 21523 var prefixes = ["webkit", "moz", "ms", "o"]; 21524 for (var i10 = 0; i10 < prefixes.length; i10++) { 21525 var prefix = prefixes[i10]; 21526 var method = prefix + "MatchesSelector"; 21527 if (ElemProto[method]) { 21528 return method; 21529 } 21530 } 21531 })(); 21532 return function matchesSelector(elem, selector3) { 21533 return elem[matchesMethod](selector3); 21534 }; 21535 }); 21536 } 21537 }); 21538 21539
vendor: 5,455 bytes, lines 21539-21694
21539// node_modules/fizzy-ui-utils/utils.js 21540 var require_utils2 = __commonJS({ 21541 "node_modules/fizzy-ui-utils/utils.js"(exports, module) { 21542 (function(window2, factory) { 21543 if (typeof define == "function" && define.amd) { 21544 define([ 21545 "desandro-matches-selector/matches-selector" 21546 ], function(matchesSelector) { 21547 return factory(window2, matchesSelector); 21548 }); 21549 } else if (typeof module == "object" && module.exports) { 21550 module.exports = factory( 21551 window2, 21552 require_matches_selector() 21553 ); 21554 } else { 21555 window2.fizzyUIUtils = factory( 21556 window2, 21557 window2.matchesSelector 21558 ); 21559 } 21560 })(window, function factory(window2, matchesSelector) { 21561 "use strict"; 21562 var utils = {}; 21563 utils.extend = function(a8, b3) { 21564 for (var prop in b3) { 21565 a8[prop] = b3[prop]; 21566 } 21567 return a8; 21568 }; 21569 utils.modulo = function(num, div) { 21570 return (num % div + div) % div; 21571 }; 21572 var arraySlice = Array.prototype.slice; 21573 utils.makeArray = function(obj) { 21574 if (Array.isArray(obj)) { 21575 return obj; 21576 } 21577 if (obj === null || obj === void 0) { 21578 return []; 21579 } 21580 var isArrayLike = typeof obj == "object" && typeof obj.length == "number"; 21581 if (isArrayLike) { 21582 return arraySlice.call(obj); 21583 } 21584 return [obj]; 21585 }; 21586 utils.removeFrom = function(ary, obj) { 21587 var index = ary.indexOf(obj); 21588 if (index != -1) { 21589 ary.splice(index, 1); 21590 } 21591 }; 21592 utils.getParent = function(elem, selector3) { 21593 while (elem.parentNode && elem != document.body) { 21594 elem = elem.parentNode; 21595 if (matchesSelector(elem, selector3)) { 21596 return elem; 21597 } 21598 } 21599 }; 21600 utils.getQueryElement = function(elem) { 21601 if (typeof elem == "string") { 21602 return document.querySelector(elem); 21603 } 21604 return elem; 21605 }; 21606 utils.handleEvent = function(event) { 21607 var method = "on" + event.type; 21608 if (this[method]) { 21609 this[method](event); 21610 } 21611 }; 21612 utils.filterFindElements = function(elems, selector3) { 21613 elems = utils.makeArray(elems); 21614 var ffElems = []; 21615 elems.forEach(function(elem) { 21616 if (!(elem instanceof HTMLElement)) { 21617 return; 21618 } 21619 if (!selector3) { 21620 ffElems.push(elem); 21621 return; 21622 } 21623 if (matchesSelector(elem, selector3)) { 21624 ffElems.push(elem); 21625 } 21626 var childElems = elem.querySelectorAll(selector3); 21627 for (var i10 = 0; i10 < childElems.length; i10++) { 21628 ffElems.push(childElems[i10]); 21629 } 21630 }); 21631 return ffElems; 21632 }; 21633 utils.debounceMethod = function(_class, methodName, threshold) { 21634 threshold = threshold || 100; 21635 var method = _class.prototype[methodName]; 21636 var timeoutName = methodName + "Timeout"; 21637 _class.prototype[methodName] = function() { 21638 var timeout = this[timeoutName]; 21639 clearTimeout(timeout); 21640 var args = arguments; 21641 var _this = this; 21642 this[timeoutName] = setTimeout(function() { 21643 method.apply(_this, args); 21644 delete _this[timeoutName]; 21645 }, threshold); 21646 }; 21647 }; 21648 utils.docReady = function(callback) { 21649 var readyState = document.readyState; 21650 if (readyState == "complete" || readyState == "interactive") { 21651 setTimeout(callback); 21652 } else { 21653 document.addEventListener("DOMContentLoaded", callback); 21654 } 21655 }; 21656 utils.toDashed = function(str) { 21657 return str.replace(/(.)([A-Z])/g, function(match, $1, $22) { 21658 return $1 + "-" + $22; 21659 }).toLowerCase(); 21660 }; 21661 var console2 = window2.console; 21662 utils.htmlInit = function(WidgetClass, namespace) { 21663 utils.docReady(function() { 21664 var dashedNamespace = utils.toDashed(namespace); 21665 var dataAttr = "data-" + dashedNamespace; 21666 var dataAttrElems = document.querySelectorAll("[" + dataAttr + "]"); 21667 var jsDashElems = document.querySelectorAll(".js-" + dashedNamespace); 21668 var elems = utils.makeArray(dataAttrElems).concat(utils.makeArray(jsDashElems)); 21669 var dataOptionsAttr = dataAttr + "-options"; 21670 var jQuery2 = window2.jQuery; 21671 elems.forEach(function(elem) { 21672 var attr = elem.getAttribute(dataAttr) || elem.getAttribute(dataOptionsAttr); 21673 var options; 21674 try { 21675 options = attr && JSON.parse(attr); 21676 } catch (error) { 21677 if (console2) { 21678 console2.error("Error parsing " + dataAttr + " on " + elem.className + ": " + error); 21679 } 21680 return; 21681 } 21682 var instance = new WidgetClass(elem, options); 21683 if (jQuery2) { 21684 jQuery2.data(elem, namespace, instance); 21685 } 21686 }); 21687 }); 21688 }; 21689 return utils; 21690 }); 21691 } 21692 }); 21693 21694
vendor: 13,178 bytes, lines 21694-22055
21694// node_modules/outlayer/item.js 21695 var require_item = __commonJS({ 21696 "node_modules/outlayer/item.js"(exports, module) { 21697 (function(window2, factory) { 21698 if (typeof define == "function" && define.amd) { 21699 define( 21700 [ 21701 "ev-emitter/ev-emitter", 21702 "get-size/get-size" 21703 ], 21704 factory 21705 ); 21706 } else if (typeof module == "object" && module.exports) { 21707 module.exports = factory( 21708 require_ev_emitter2(), 21709 require_get_size2() 21710 ); 21711 } else { 21712 window2.Outlayer = {}; 21713 window2.Outlayer.Item = factory( 21714 window2.EvEmitter, 21715 window2.getSize 21716 ); 21717 } 21718 })(window, function factory(EvEmitter, getSize) { 21719 "use strict"; 21720 function isEmptyObj(obj) { 21721 for (var prop in obj) { 21722 return false; 21723 } 21724 prop = null; 21725 return true; 21726 } 21727 var docElemStyle = document.documentElement.style; 21728 var transitionProperty = typeof docElemStyle.transition == "string" ? "transition" : "WebkitTransition"; 21729 var transformProperty = typeof docElemStyle.transform == "string" ? "transform" : "WebkitTransform"; 21730 var transitionEndEvent = { 21731 WebkitTransition: "webkitTransitionEnd", 21732 transition: "transitionend" 21733 }[transitionProperty]; 21734 var vendorProperties = { 21735 transform: transformProperty, 21736 transition: transitionProperty, 21737 transitionDuration: transitionProperty + "Duration", 21738 transitionProperty: transitionProperty + "Property", 21739 transitionDelay: transitionProperty + "Delay" 21740 }; 21741 function Item(element, layout) { 21742 if (!element) { 21743 return; 21744 } 21745 this.element = element; 21746 this.layout = layout; 21747 this.position = { 21748 x: 0, 21749 y: 0 21750 }; 21751 this._create(); 21752 } 21753 var proto = Item.prototype = Object.create(EvEmitter.prototype); 21754 proto.constructor = Item; 21755 proto._create = function() { 21756 this._transn = { 21757 ingProperties: {}, 21758 clean: {}, 21759 onEnd: {} 21760 }; 21761 this.css({ 21762 position: "absolute" 21763 }); 21764 }; 21765 proto.handleEvent = function(event) { 21766 var method = "on" + event.type; 21767 if (this[method]) { 21768 this[method](event); 21769 } 21770 }; 21771 proto.getSize = function() { 21772 this.size = getSize(this.element); 21773 }; 21774 proto.css = function(style) { 21775 var elemStyle = this.element.style; 21776 for (var prop in style) { 21777 var supportedProp = vendorProperties[prop] || prop; 21778 elemStyle[supportedProp] = style[prop]; 21779 } 21780 }; 21781 proto.getPosition = function() { 21782 var style = getComputedStyle(this.element); 21783 var isOriginLeft = this.layout._getOption("originLeft"); 21784 var isOriginTop = this.layout._getOption("originTop"); 21785 var xValue = style[isOriginLeft ? "left" : "right"]; 21786 var yValue = style[isOriginTop ? "top" : "bottom"]; 21787 var x2 = parseFloat(xValue); 21788 var y3 = parseFloat(yValue); 21789 var layoutSize = this.layout.size; 21790 if (xValue.indexOf("%") != -1) { 21791 x2 = x2 / 100 * layoutSize.width; 21792 } 21793 if (yValue.indexOf("%") != -1) { 21794 y3 = y3 / 100 * layoutSize.height; 21795 } 21796 x2 = isNaN(x2) ? 0 : x2; 21797 y3 = isNaN(y3) ? 0 : y3; 21798 x2 -= isOriginLeft ? layoutSize.paddingLeft : layoutSize.paddingRight; 21799 y3 -= isOriginTop ? layoutSize.paddingTop : layoutSize.paddingBottom; 21800 this.position.x = x2; 21801 this.position.y = y3; 21802 }; 21803 proto.layoutPosition = function() { 21804 var layoutSize = this.layout.size; 21805 var style = {}; 21806 var isOriginLeft = this.layout._getOption("originLeft"); 21807 var isOriginTop = this.layout._getOption("originTop"); 21808 var xPadding = isOriginLeft ? "paddingLeft" : "paddingRight"; 21809 var xProperty = isOriginLeft ? "left" : "right"; 21810 var xResetProperty = isOriginLeft ? "right" : "left"; 21811 var x2 = this.position.x + layoutSize[xPadding]; 21812 style[xProperty] = this.getXValue(x2); 21813 style[xResetProperty] = ""; 21814 var yPadding = isOriginTop ? "paddingTop" : "paddingBottom"; 21815 var yProperty = isOriginTop ? "top" : "bottom"; 21816 var yResetProperty = isOriginTop ? "bottom" : "top"; 21817 var y3 = this.position.y + layoutSize[yPadding]; 21818 style[yProperty] = this.getYValue(y3); 21819 style[yResetProperty] = ""; 21820 this.css(style); 21821 this.emitEvent("layout", [this]); 21822 }; 21823 proto.getXValue = function(x2) { 21824 var isHorizontal = this.layout._getOption("horizontal"); 21825 return this.layout.options.percentPosition && !isHorizontal ? x2 / this.layout.size.width * 100 + "%" : x2 + "px"; 21826 }; 21827 proto.getYValue = function(y3) { 21828 var isHorizontal = this.layout._getOption("horizontal"); 21829 return this.layout.options.percentPosition && isHorizontal ? y3 / this.layout.size.height * 100 + "%" : y3 + "px"; 21830 }; 21831 proto._transitionTo = function(x2, y3) { 21832 this.getPosition(); 21833 var curX = this.position.x; 21834 var curY = this.position.y; 21835 var didNotMove = x2 == this.position.x && y3 == this.position.y; 21836 this.setPosition(x2, y3); 21837 if (didNotMove && !this.isTransitioning) { 21838 this.layoutPosition(); 21839 return; 21840 } 21841 var transX = x2 - curX; 21842 var transY = y3 - curY; 21843 var transitionStyle = {}; 21844 transitionStyle.transform = this.getTranslate(transX, transY); 21845 this.transition({ 21846 to: transitionStyle, 21847 onTransitionEnd: { 21848 transform: this.layoutPosition 21849 }, 21850 isCleaning: true 21851 }); 21852 }; 21853 proto.getTranslate = function(x2, y3) { 21854 var isOriginLeft = this.layout._getOption("originLeft"); 21855 var isOriginTop = this.layout._getOption("originTop"); 21856 x2 = isOriginLeft ? x2 : -x2; 21857 y3 = isOriginTop ? y3 : -y3; 21858 return "translate3d(" + x2 + "px, " + y3 + "px, 0)"; 21859 }; 21860 proto.goTo = function(x2, y3) { 21861 this.setPosition(x2, y3); 21862 this.layoutPosition(); 21863 }; 21864 proto.moveTo = proto._transitionTo; 21865 proto.setPosition = function(x2, y3) { 21866 this.position.x = parseFloat(x2); 21867 this.position.y = parseFloat(y3); 21868 }; 21869 proto._nonTransition = function(args) { 21870 this.css(args.to); 21871 if (args.isCleaning) { 21872 this._removeStyles(args.to); 21873 } 21874 for (var prop in args.onTransitionEnd) { 21875 args.onTransitionEnd[prop].call(this); 21876 } 21877 }; 21878 proto.transition = function(args) { 21879 if (!parseFloat(this.layout.options.transitionDuration)) { 21880 this._nonTransition(args); 21881 return; 21882 } 21883 var _transition = this._transn; 21884 for (var prop in args.onTransitionEnd) { 21885 _transition.onEnd[prop] = args.onTransitionEnd[prop]; 21886 } 21887 for (prop in args.to) { 21888 _transition.ingProperties[prop] = true; 21889 if (args.isCleaning) { 21890 _transition.clean[prop] = true; 21891 } 21892 } 21893 if (args.from) { 21894 this.css(args.from); 21895 var h4 = this.element.offsetHeight; 21896 h4 = null; 21897 } 21898 this.enableTransition(args.to); 21899 this.css(args.to); 21900 this.isTransitioning = true; 21901 }; 21902 function toDashedAll(str) { 21903 return str.replace(/([A-Z])/g, function($1) { 21904 return "-" + $1.toLowerCase(); 21905 }); 21906 } 21907 var transitionProps = "opacity," + toDashedAll(transformProperty); 21908 proto.enableTransition = function() { 21909 if (this.isTransitioning) { 21910 return; 21911 } 21912 var duration = this.layout.options.transitionDuration; 21913 duration = typeof duration == "number" ? duration + "ms" : duration; 21914 this.css({ 21915 transitionProperty: transitionProps, 21916 transitionDuration: duration, 21917 transitionDelay: this.staggerDelay || 0 21918 }); 21919 this.element.addEventListener(transitionEndEvent, this, false); 21920 }; 21921 proto.onwebkitTransitionEnd = function(event) { 21922 this.ontransitionend(event); 21923 }; 21924 proto.onotransitionend = function(event) { 21925 this.ontransitionend(event); 21926 }; 21927 var dashedVendorProperties = { 21928 "-webkit-transform": "transform" 21929 }; 21930 proto.ontransitionend = function(event) { 21931 if (event.target !== this.element) { 21932 return; 21933 } 21934 var _transition = this._transn; 21935 var propertyName = dashedVendorProperties[event.propertyName] || event.propertyName; 21936 delete _transition.ingProperties[propertyName]; 21937 if (isEmptyObj(_transition.ingProperties)) { 21938 this.disableTransition(); 21939 } 21940 if (propertyName in _transition.clean) { 21941 this.element.style[event.propertyName] = ""; 21942 delete _transition.clean[propertyName]; 21943 } 21944 if (propertyName in _transition.onEnd) { 21945 var onTransitionEnd = _transition.onEnd[propertyName]; 21946 onTransitionEnd.call(this); 21947 delete _transition.onEnd[propertyName]; 21948 } 21949 this.emitEvent("transitionEnd", [this]); 21950 }; 21951 proto.disableTransition = function() { 21952 this.removeTransitionStyles(); 21953 this.element.removeEventListener(transitionEndEvent, this, false); 21954 this.isTransitioning = false; 21955 }; 21956 proto._removeStyles = function(style) { 21957 var cleanStyle = {}; 21958 for (var prop in style) { 21959 cleanStyle[prop] = ""; 21960 } 21961 this.css(cleanStyle); 21962 }; 21963 var cleanTransitionStyle = { 21964 transitionProperty: "", 21965 transitionDuration: "", 21966 transitionDelay: "" 21967 }; 21968 proto.removeTransitionStyles = function() { 21969 this.css(cleanTransitionStyle); 21970 }; 21971 proto.stagger = function(delay) { 21972 delay = isNaN(delay) ? 0 : delay; 21973 this.staggerDelay = delay + "ms"; 21974 }; 21975 proto.removeElem = function() { 21976 this.element.parentNode.removeChild(this.element); 21977 this.css({ display: "" }); 21978 this.emitEvent("remove", [this]); 21979 }; 21980 proto.remove = function() { 21981 if (!transitionProperty || !parseFloat(this.layout.options.transitionDuration)) { 21982 this.removeElem(); 21983 return; 21984 } 21985 this.once("transitionEnd", function() { 21986 this.removeElem(); 21987 }); 21988 this.hide(); 21989 }; 21990 proto.reveal = function() { 21991 delete this.isHidden; 21992 this.css({ display: "" }); 21993 var options = this.layout.options; 21994 var onTransitionEnd = {}; 21995 var transitionEndProperty = this.getHideRevealTransitionEndProperty("visibleStyle"); 21996 onTransitionEnd[transitionEndProperty] = this.onRevealTransitionEnd; 21997 this.transition({ 21998 from: options.hiddenStyle, 21999 to: options.visibleStyle, 22000 isCleaning: true, 22001 onTransitionEnd 22002 }); 22003 }; 22004 proto.onRevealTransitionEnd = function() { 22005 if (!this.isHidden) { 22006 this.emitEvent("reveal"); 22007 } 22008 }; 22009 proto.getHideRevealTransitionEndProperty = function(styleProperty) { 22010 var optionStyle = this.layout.options[styleProperty]; 22011 if (optionStyle.opacity) { 22012 return "opacity"; 22013 } 22014 for (var prop in optionStyle) { 22015 return prop; 22016 } 22017 }; 22018 proto.hide = function() { 22019 this.isHidden = true; 22020 this.css({ display: "" }); 22021 var options = this.layout.options; 22022 var onTransitionEnd = {}; 22023 var transitionEndProperty = this.getHideRevealTransitionEndProperty("hiddenStyle"); 22024 onTransitionEnd[transitionEndProperty] = this.onHideTransitionEnd; 22025 this.transition({ 22026 from: options.visibleStyle, 22027 to: options.hiddenStyle, 22028 // keep hidden stuff hidden 22029 isCleaning: true, 22030 onTransitionEnd 22031 }); 22032 }; 22033 proto.onHideTransitionEnd = function() { 22034 if (this.isHidden) { 22035 this.css({ display: "none" }); 22036 this.emitEvent("hide"); 22037 } 22038 }; 22039 proto.destroy = function() { 22040 this.css({ 22041 position: "", 22042 left: "", 22043 right: "", 22044 top: "", 22045 bottom: "", 22046 transition: "", 22047 transform: "" 22048 }); 22049 }; 22050 return Item; 22051 }); 22052 } 22053 }); 22054 22055
vendor: 18,138 bytes, lines 22055-22585
22055// node_modules/outlayer/outlayer.js 22056 var require_outlayer = __commonJS({ 22057 "node_modules/outlayer/outlayer.js"(exports, module) { 22058 (function(window2, factory) { 22059 "use strict"; 22060 if (typeof define == "function" && define.amd) { 22061 define( 22062 [ 22063 "ev-emitter/ev-emitter", 22064 "get-size/get-size", 22065 "fizzy-ui-utils/utils", 22066 "./item" 22067 ], 22068 function(EvEmitter, getSize, utils, Item) { 22069 return factory(window2, EvEmitter, getSize, utils, Item); 22070 } 22071 ); 22072 } else if (typeof module == "object" && module.exports) { 22073 module.exports = factory( 22074 window2, 22075 require_ev_emitter2(), 22076 require_get_size2(), 22077 require_utils2(), 22078 require_item() 22079 ); 22080 } else { 22081 window2.Outlayer = factory( 22082 window2, 22083 window2.EvEmitter, 22084 window2.getSize, 22085 window2.fizzyUIUtils, 22086 window2.Outlayer.Item 22087 ); 22088 } 22089 })(window, function factory(window2, EvEmitter, getSize, utils, Item) { 22090 "use strict"; 22091 var console2 = window2.console; 22092 var jQuery2 = window2.jQuery; 22093 var noop = function() { 22094 }; 22095 var GUID = 0; 22096 var instances = {}; 22097 function Outlayer(element, options) { 22098 var queryElement = utils.getQueryElement(element); 22099 if (!queryElement) { 22100 if (console2) { 22101 console2.error("Bad element for " + this.constructor.namespace + ": " + (queryElement || element)); 22102 } 22103 return; 22104 } 22105 this.element = queryElement; 22106 if (jQuery2) { 22107 this.$element = jQuery2(this.element); 22108 } 22109 this.options = utils.extend({}, this.constructor.defaults); 22110 this.option(options); 22111 var id = ++GUID; 22112 this.element.outlayerGUID = id; 22113 instances[id] = this; 22114 this._create(); 22115 var isInitLayout = this._getOption("initLayout"); 22116 if (isInitLayout) { 22117 this.layout(); 22118 } 22119 } 22120 Outlayer.namespace = "outlayer"; 22121 Outlayer.Item = Item; 22122 Outlayer.defaults = { 22123 containerStyle: { 22124 position: "relative" 22125 }, 22126 initLayout: true, 22127 originLeft: true, 22128 originTop: true, 22129 resize: true, 22130 resizeContainer: true, 22131 // item options 22132 transitionDuration: "0.4s", 22133 hiddenStyle: { 22134 opacity: 0, 22135 transform: "scale(0.001)" 22136 }, 22137 visibleStyle: { 22138 opacity: 1, 22139 transform: "scale(1)" 22140 } 22141 }; 22142 var proto = Outlayer.prototype; 22143 utils.extend(proto, EvEmitter.prototype); 22144 proto.option = function(opts) { 22145 utils.extend(this.options, opts); 22146 }; 22147 proto._getOption = function(option) { 22148 var oldOption = this.constructor.compatOptions[option]; 22149 return oldOption && this.options[oldOption] !== void 0 ? this.options[oldOption] : this.options[option]; 22150 }; 22151 Outlayer.compatOptions = { 22152 // currentName: oldName 22153 initLayout: "isInitLayout", 22154 horizontal: "isHorizontal", 22155 layoutInstant: "isLayoutInstant", 22156 originLeft: "isOriginLeft", 22157 originTop: "isOriginTop", 22158 resize: "isResizeBound", 22159 resizeContainer: "isResizingContainer" 22160 }; 22161 proto._create = function() { 22162 this.reloadItems(); 22163 this.stamps = []; 22164 this.stamp(this.options.stamp); 22165 utils.extend(this.element.style, this.options.containerStyle); 22166 var canBindResize = this._getOption("resize"); 22167 if (canBindResize) { 22168 this.bindResize(); 22169 } 22170 }; 22171 proto.reloadItems = function() { 22172 this.items = this._itemize(this.element.children); 22173 }; 22174 proto._itemize = function(elems) { 22175 var itemElems = this._filterFindItemElements(elems); 22176 var Item2 = this.constructor.Item; 22177 var items = []; 22178 for (var i10 = 0; i10 < itemElems.length; i10++) { 22179 var elem = itemElems[i10]; 22180 var item = new Item2(elem, this); 22181 items.push(item); 22182 } 22183 return items; 22184 }; 22185 proto._filterFindItemElements = function(elems) { 22186 return utils.filterFindElements(elems, this.options.itemSelector); 22187 }; 22188 proto.getItemElements = function() { 22189 return this.items.map(function(item) { 22190 return item.element; 22191 }); 22192 }; 22193 proto.layout = function() { 22194 this._resetLayout(); 22195 this._manageStamps(); 22196 var layoutInstant = this._getOption("layoutInstant"); 22197 var isInstant = layoutInstant !== void 0 ? layoutInstant : !this._isLayoutInited; 22198 this.layoutItems(this.items, isInstant); 22199 this._isLayoutInited = true; 22200 }; 22201 proto._init = proto.layout; 22202 proto._resetLayout = function() { 22203 this.getSize(); 22204 }; 22205 proto.getSize = function() { 22206 this.size = getSize(this.element); 22207 }; 22208 proto._getMeasurement = function(measurement, size) { 22209 var option = this.options[measurement]; 22210 var elem; 22211 if (!option) { 22212 this[measurement] = 0; 22213 } else { 22214 if (typeof option == "string") { 22215 elem = this.element.querySelector(option); 22216 } else if (option instanceof HTMLElement) { 22217 elem = option; 22218 } 22219 this[measurement] = elem ? getSize(elem)[size] : option; 22220 } 22221 }; 22222 proto.layoutItems = function(items, isInstant) { 22223 items = this._getItemsForLayout(items); 22224 this._layoutItems(items, isInstant); 22225 this._postLayout(); 22226 }; 22227 proto._getItemsForLayout = function(items) { 22228 return items.filter(function(item) { 22229 return !item.isIgnored; 22230 }); 22231 }; 22232 proto._layoutItems = function(items, isInstant) { 22233 this._emitCompleteOnItems("layout", items); 22234 if (!items || !items.length) { 22235 return; 22236 } 22237 var queue = []; 22238 items.forEach(function(item) { 22239 var position = this._getItemLayoutPosition(item); 22240 position.item = item; 22241 position.isInstant = isInstant || item.isLayoutInstant; 22242 queue.push(position); 22243 }, this); 22244 this._processLayoutQueue(queue); 22245 }; 22246 proto._getItemLayoutPosition = function() { 22247 return { 22248 x: 0, 22249 y: 0 22250 }; 22251 }; 22252 proto._processLayoutQueue = function(queue) { 22253 this.updateStagger(); 22254 queue.forEach(function(obj, i10) { 22255 this._positionItem(obj.item, obj.x, obj.y, obj.isInstant, i10); 22256 }, this); 22257 }; 22258 proto.updateStagger = function() { 22259 var stagger = this.options.stagger; 22260 if (stagger === null || stagger === void 0) { 22261 this.stagger = 0; 22262 return; 22263 } 22264 this.stagger = getMilliseconds(stagger); 22265 return this.stagger; 22266 }; 22267 proto._positionItem = function(item, x2, y3, isInstant, i10) { 22268 if (isInstant) { 22269 item.goTo(x2, y3); 22270 } else { 22271 item.stagger(i10 * this.stagger); 22272 item.moveTo(x2, y3); 22273 } 22274 }; 22275 proto._postLayout = function() { 22276 this.resizeContainer(); 22277 }; 22278 proto.resizeContainer = function() { 22279 var isResizingContainer = this._getOption("resizeContainer"); 22280 if (!isResizingContainer) { 22281 return; 22282 } 22283 var size = this._getContainerSize(); 22284 if (size) { 22285 this._setContainerMeasure(size.width, true); 22286 this._setContainerMeasure(size.height, false); 22287 } 22288 }; 22289 proto._getContainerSize = noop; 22290 proto._setContainerMeasure = function(measure, isWidth) { 22291 if (measure === void 0) { 22292 return; 22293 } 22294 var elemSize = this.size; 22295 if (elemSize.isBorderBox) { 22296 measure += isWidth ? elemSize.paddingLeft + elemSize.paddingRight + elemSize.borderLeftWidth + elemSize.borderRightWidth : elemSize.paddingBottom + elemSize.paddingTop + elemSize.borderTopWidth + elemSize.borderBottomWidth; 22297 } 22298 measure = Math.max(measure, 0); 22299 this.element.style[isWidth ? "width" : "height"] = measure + "px"; 22300 }; 22301 proto._emitCompleteOnItems = function(eventName, items) { 22302 var _this = this; 22303 function onComplete() { 22304 _this.dispatchEvent(eventName + "Complete", null, [items]); 22305 } 22306 var count = items.length; 22307 if (!items || !count) { 22308 onComplete(); 22309 return; 22310 } 22311 var doneCount = 0; 22312 function tick() { 22313 doneCount++; 22314 if (doneCount == count) { 22315 onComplete(); 22316 } 22317 } 22318 items.forEach(function(item) { 22319 item.once(eventName, tick); 22320 }); 22321 }; 22322 proto.dispatchEvent = function(type, event, args) { 22323 var emitArgs = event ? [event].concat(args) : args; 22324 this.emitEvent(type, emitArgs); 22325 if (jQuery2) { 22326 this.$element = this.$element || jQuery2(this.element); 22327 if (event) { 22328 var $event = jQuery2.Event(event); 22329 $event.type = type; 22330 this.$element.trigger($event, args); 22331 } else { 22332 this.$element.trigger(type, args); 22333 } 22334 } 22335 }; 22336 proto.ignore = function(elem) { 22337 var item = this.getItem(elem); 22338 if (item) { 22339 item.isIgnored = true; 22340 } 22341 }; 22342 proto.unignore = function(elem) { 22343 var item = this.getItem(elem); 22344 if (item) { 22345 delete item.isIgnored; 22346 } 22347 }; 22348 proto.stamp = function(elems) { 22349 elems = this._find(elems); 22350 if (!elems) { 22351 return; 22352 } 22353 this.stamps = this.stamps.concat(elems); 22354 elems.forEach(this.ignore, this); 22355 }; 22356 proto.unstamp = function(elems) { 22357 elems = this._find(elems); 22358 if (!elems) { 22359 return; 22360 } 22361 elems.forEach(function(elem) { 22362 utils.removeFrom(this.stamps, elem); 22363 this.unignore(elem); 22364 }, this); 22365 }; 22366 proto._find = function(elems) { 22367 if (!elems) { 22368 return; 22369 } 22370 if (typeof elems == "string") { 22371 elems = this.element.querySelectorAll(elems); 22372 } 22373 elems = utils.makeArray(elems); 22374 return elems; 22375 }; 22376 proto._manageStamps = function() { 22377 if (!this.stamps || !this.stamps.length) { 22378 return; 22379 } 22380 this._getBoundingRect(); 22381 this.stamps.forEach(this._manageStamp, this); 22382 }; 22383 proto._getBoundingRect = function() { 22384 var boundingRect = this.element.getBoundingClientRect(); 22385 var size = this.size; 22386 this._boundingRect = { 22387 left: boundingRect.left + size.paddingLeft + size.borderLeftWidth, 22388 top: boundingRect.top + size.paddingTop + size.borderTopWidth, 22389 right: boundingRect.right - (size.paddingRight + size.borderRightWidth), 22390 bottom: boundingRect.bottom - (size.paddingBottom + size.borderBottomWidth) 22391 }; 22392 }; 22393 proto._manageStamp = noop; 22394 proto._getElementOffset = function(elem) { 22395 var boundingRect = elem.getBoundingClientRect(); 22396 var thisRect = this._boundingRect; 22397 var size = getSize(elem); 22398 var offset = { 22399 left: boundingRect.left - thisRect.left - size.marginLeft, 22400 top: boundingRect.top - thisRect.top - size.marginTop, 22401 right: thisRect.right - boundingRect.right - size.marginRight, 22402 bottom: thisRect.bottom - boundingRect.bottom - size.marginBottom 22403 }; 22404 return offset; 22405 }; 22406 proto.handleEvent = utils.handleEvent; 22407 proto.bindResize = function() { 22408 window2.addEventListener("resize", this); 22409 this.isResizeBound = true; 22410 }; 22411 proto.unbindResize = function() { 22412 window2.removeEventListener("resize", this); 22413 this.isResizeBound = false; 22414 }; 22415 proto.onresize = function() { 22416 this.resize(); 22417 }; 22418 utils.debounceMethod(Outlayer, "onresize", 100); 22419 proto.resize = function() { 22420 if (!this.isResizeBound || !this.needsResizeLayout()) { 22421 return; 22422 } 22423 this.layout(); 22424 }; 22425 proto.needsResizeLayout = function() { 22426 var size = getSize(this.element); 22427 var hasSizes = this.size && size; 22428 return hasSizes && size.innerWidth !== this.size.innerWidth; 22429 }; 22430 proto.addItems = function(elems) { 22431 var items = this._itemize(elems); 22432 if (items.length) { 22433 this.items = this.items.concat(items); 22434 } 22435 return items; 22436 }; 22437 proto.appended = function(elems) { 22438 var items = this.addItems(elems); 22439 if (!items.length) { 22440 return; 22441 } 22442 this.layoutItems(items, true); 22443 this.reveal(items); 22444 }; 22445 proto.prepended = function(elems) { 22446 var items = this._itemize(elems); 22447 if (!items.length) { 22448 return; 22449 } 22450 var previousItems = this.items.slice(0); 22451 this.items = items.concat(previousItems); 22452 this._resetLayout(); 22453 this._manageStamps(); 22454 this.layoutItems(items, true); 22455 this.reveal(items); 22456 this.layoutItems(previousItems); 22457 }; 22458 proto.reveal = function(items) { 22459 this._emitCompleteOnItems("reveal", items); 22460 if (!items || !items.length) { 22461 return; 22462 } 22463 var stagger = this.updateStagger(); 22464 items.forEach(function(item, i10) { 22465 item.stagger(i10 * stagger); 22466 item.reveal(); 22467 }); 22468 }; 22469 proto.hide = function(items) { 22470 this._emitCompleteOnItems("hide", items); 22471 if (!items || !items.length) { 22472 return; 22473 } 22474 var stagger = this.updateStagger(); 22475 items.forEach(function(item, i10) { 22476 item.stagger(i10 * stagger); 22477 item.hide(); 22478 }); 22479 }; 22480 proto.revealItemElements = function(elems) { 22481 var items = this.getItems(elems); 22482 this.reveal(items); 22483 }; 22484 proto.hideItemElements = function(elems) { 22485 var items = this.getItems(elems); 22486 this.hide(items); 22487 }; 22488 proto.getItem = function(elem) { 22489 for (var i10 = 0; i10 < this.items.length; i10++) { 22490 var item = this.items[i10]; 22491 if (item.element == elem) { 22492 return item; 22493 } 22494 } 22495 }; 22496 proto.getItems = function(elems) { 22497 elems = utils.makeArray(elems); 22498 var items = []; 22499 elems.forEach(function(elem) { 22500 var item = this.getItem(elem); 22501 if (item) { 22502 items.push(item); 22503 } 22504 }, this); 22505 return items; 22506 }; 22507 proto.remove = function(elems) { 22508 var removeItems = this.getItems(elems); 22509 this._emitCompleteOnItems("remove", removeItems); 22510 if (!removeItems || !removeItems.length) { 22511 return; 22512 } 22513 removeItems.forEach(function(item) { 22514 item.remove(); 22515 utils.removeFrom(this.items, item); 22516 }, this); 22517 }; 22518 proto.destroy = function() { 22519 var style = this.element.style; 22520 style.height = ""; 22521 style.position = ""; 22522 style.width = ""; 22523 this.items.forEach(function(item) { 22524 item.destroy(); 22525 }); 22526 this.unbindResize(); 22527 var id = this.element.outlayerGUID; 22528 delete instances[id]; 22529 delete this.element.outlayerGUID; 22530 if (jQuery2) { 22531 jQuery2.removeData(this.element, this.constructor.namespace); 22532 } 22533 }; 22534 Outlayer.data = function(elem) { 22535 elem = utils.getQueryElement(elem); 22536 var id = elem && elem.outlayerGUID; 22537 return id && instances[id]; 22538 }; 22539 Outlayer.create = function(namespace, options) { 22540 var Layout = subclass(Outlayer); 22541 Layout.defaults = utils.extend({}, Outlayer.defaults); 22542 utils.extend(Layout.defaults, options); 22543 Layout.compatOptions = utils.extend({}, Outlayer.compatOptions); 22544 Layout.namespace = namespace; 22545 Layout.data = Outlayer.data; 22546 Layout.Item = subclass(Item); 22547 utils.htmlInit(Layout, namespace); 22548 if (jQuery2 && jQuery2.bridget) { 22549 jQuery2.bridget(namespace, Layout); 22550 } 22551 return Layout; 22552 }; 22553 function subclass(Parent) { 22554 function SubClass() { 22555 Parent.apply(this, arguments); 22556 } 22557 SubClass.prototype = Object.create(Parent.prototype); 22558 SubClass.prototype.constructor = SubClass; 22559 return SubClass; 22560 } 22561 var msUnits = { 22562 ms: 1, 22563 s: 1e3 22564 }; 22565 function getMilliseconds(time) { 22566 if (typeof time == "number") { 22567 return time; 22568 } 22569 var matches = time.match(/(^\d*\.?\d*)(\w*)/); 22570 var num = matches && matches[1]; 22571 var unit = matches && matches[2]; 22572 if (!num.length) { 22573 return 0; 22574 } 22575 num = parseFloat(num); 22576 var mult = msUnits[unit] || 1; 22577 return num * mult; 22578 } 22579 Outlayer.Item = Item; 22580 return Outlayer; 22581 }); 22582 } 22583 }); 22584 22585
vendor: 1,826 bytes, lines 22585-22644
22585// node_modules/isotope-layout/js/item.js 22586 var require_item2 = __commonJS({ 22587 "node_modules/isotope-layout/js/item.js"(exports, module) { 22588 (function(window2, factory) { 22589 if (typeof define == "function" && define.amd) { 22590 define( 22591 [ 22592 "outlayer/outlayer" 22593 ], 22594 factory 22595 ); 22596 } else if (typeof module == "object" && module.exports) { 22597 module.exports = factory( 22598 require_outlayer() 22599 ); 22600 } else { 22601 window2.Isotope = window2.Isotope || {}; 22602 window2.Isotope.Item = factory( 22603 window2.Outlayer 22604 ); 22605 } 22606 })(window, function factory(Outlayer) { 22607 "use strict"; 22608 function Item() { 22609 Outlayer.Item.apply(this, arguments); 22610 } 22611 var proto = Item.prototype = Object.create(Outlayer.Item.prototype); 22612 var _create = proto._create; 22613 proto._create = function() { 22614 this.id = this.layout.itemGUID++; 22615 _create.call(this); 22616 this.sortData = {}; 22617 }; 22618 proto.updateSortData = function() { 22619 if (this.isIgnored) { 22620 return; 22621 } 22622 this.sortData.id = this.id; 22623 this.sortData["original-order"] = this.id; 22624 this.sortData.random = Math.random(); 22625 var getSortData = this.layout.options.getSortData; 22626 var sorters = this.layout._sorters; 22627 for (var key in getSortData) { 22628 var sorter = sorters[key]; 22629 this.sortData[key] = sorter(this.element, this); 22630 } 22631 }; 22632 var _destroy = proto.destroy; 22633 proto.destroy = function() { 22634 _destroy.apply(this, arguments); 22635 this.css({ 22636 display: "" 22637 }); 22638 }; 22639 return Item; 22640 }); 22641 } 22642 }); 22643 22644
vendor: 3,663 bytes, lines 22644-22749
22644// node_modules/isotope-layout/js/layout-mode.js 22645 var require_layout_mode = __commonJS({ 22646 "node_modules/isotope-layout/js/layout-mode.js"(exports, module) { 22647 (function(window2, factory) { 22648 if (typeof define == "function" && define.amd) { 22649 define( 22650 [ 22651 "get-size/get-size", 22652 "outlayer/outlayer" 22653 ], 22654 factory 22655 ); 22656 } else if (typeof module == "object" && module.exports) { 22657 module.exports = factory( 22658 require_get_size2(), 22659 require_outlayer() 22660 ); 22661 } else { 22662 window2.Isotope = window2.Isotope || {}; 22663 window2.Isotope.LayoutMode = factory( 22664 window2.getSize, 22665 window2.Outlayer 22666 ); 22667 } 22668 })(window, function factory(getSize, Outlayer) { 22669 "use strict"; 22670 function LayoutMode(isotope2) { 22671 this.isotope = isotope2; 22672 if (isotope2) { 22673 this.options = isotope2.options[this.namespace]; 22674 this.element = isotope2.element; 22675 this.items = isotope2.filteredItems; 22676 this.size = isotope2.size; 22677 } 22678 } 22679 var proto = LayoutMode.prototype; 22680 var facadeMethods = [ 22681 "_resetLayout", 22682 "_getItemLayoutPosition", 22683 "_manageStamp", 22684 "_getContainerSize", 22685 "_getElementOffset", 22686 "needsResizeLayout", 22687 "_getOption" 22688 ]; 22689 facadeMethods.forEach(function(methodName) { 22690 proto[methodName] = function() { 22691 return Outlayer.prototype[methodName].apply(this.isotope, arguments); 22692 }; 22693 }); 22694 proto.needsVerticalResizeLayout = function() { 22695 var size = getSize(this.isotope.element); 22696 var hasSizes = this.isotope.size && size; 22697 return hasSizes && size.innerHeight != this.isotope.size.innerHeight; 22698 }; 22699 proto._getMeasurement = function() { 22700 this.isotope._getMeasurement.apply(this, arguments); 22701 }; 22702 proto.getColumnWidth = function() { 22703 this.getSegmentSize("column", "Width"); 22704 }; 22705 proto.getRowHeight = function() { 22706 this.getSegmentSize("row", "Height"); 22707 }; 22708 proto.getSegmentSize = function(segment, size) { 22709 var segmentName = segment + size; 22710 var outerSize = "outer" + size; 22711 this._getMeasurement(segmentName, outerSize); 22712 if (this[segmentName]) { 22713 return; 22714 } 22715 var firstItemSize = this.getFirstItemSize(); 22716 this[segmentName] = firstItemSize && firstItemSize[outerSize] || // or size of container 22717 this.isotope.size["inner" + size]; 22718 }; 22719 proto.getFirstItemSize = function() { 22720 var firstItem = this.isotope.filteredItems[0]; 22721 return firstItem && firstItem.element && getSize(firstItem.element); 22722 }; 22723 proto.layout = function() { 22724 this.isotope.layout.apply(this.isotope, arguments); 22725 }; 22726 proto.getSize = function() { 22727 this.isotope.getSize(); 22728 this.size = this.isotope.size; 22729 }; 22730 LayoutMode.modes = {}; 22731 LayoutMode.create = function(namespace, options) { 22732 function Mode() { 22733 LayoutMode.apply(this, arguments); 22734 } 22735 Mode.prototype = Object.create(proto); 22736 Mode.prototype.constructor = Mode; 22737 if (options) { 22738 Mode.options = options; 22739 } 22740 Mode.prototype.namespace = namespace; 22741 LayoutMode.modes[namespace] = Mode; 22742 return Mode; 22743 }; 22744 return LayoutMode; 22745 }); 22746 } 22747 }); 22748 22749
vendor: 6,578 bytes, lines 22749-22915
22749// node_modules/masonry-layout/masonry.js 22750 var require_masonry = __commonJS({ 22751 "node_modules/masonry-layout/masonry.js"(exports, module) { 22752 (function(window2, factory) { 22753 if (typeof define == "function" && define.amd) { 22754 define( 22755 [ 22756 "outlayer/outlayer", 22757 "get-size/get-size" 22758 ], 22759 factory 22760 ); 22761 } else if (typeof module == "object" && module.exports) { 22762 module.exports = factory( 22763 require_outlayer(), 22764 require_get_size2() 22765 ); 22766 } else { 22767 window2.Masonry = factory( 22768 window2.Outlayer, 22769 window2.getSize 22770 ); 22771 } 22772 })(window, function factory(Outlayer, getSize) { 22773 "use strict"; 22774 var Masonry = Outlayer.create("masonry"); 22775 Masonry.compatOptions.fitWidth = "isFitWidth"; 22776 var proto = Masonry.prototype; 22777 proto._resetLayout = function() { 22778 this.getSize(); 22779 this._getMeasurement("columnWidth", "outerWidth"); 22780 this._getMeasurement("gutter", "outerWidth"); 22781 this.measureColumns(); 22782 this.colYs = []; 22783 for (var i10 = 0; i10 < this.cols; i10++) { 22784 this.colYs.push(0); 22785 } 22786 this.maxY = 0; 22787 this.horizontalColIndex = 0; 22788 }; 22789 proto.measureColumns = function() { 22790 this.getContainerWidth(); 22791 if (!this.columnWidth) { 22792 var firstItem = this.items[0]; 22793 var firstItemElem = firstItem && firstItem.element; 22794 this.columnWidth = firstItemElem && getSize(firstItemElem).outerWidth || // if first elem has no width, default to size of container 22795 this.containerWidth; 22796 } 22797 var columnWidth = this.columnWidth += this.gutter; 22798 var containerWidth = this.containerWidth + this.gutter; 22799 var cols = containerWidth / columnWidth; 22800 var excess = columnWidth - containerWidth % columnWidth; 22801 var mathMethod = excess && excess < 1 ? "round" : "floor"; 22802 cols = Math[mathMethod](cols); 22803 this.cols = Math.max(cols, 1); 22804 }; 22805 proto.getContainerWidth = function() { 22806 var isFitWidth = this._getOption("fitWidth"); 22807 var container = isFitWidth ? this.element.parentNode : this.element; 22808 var size = getSize(container); 22809 this.containerWidth = size && size.innerWidth; 22810 }; 22811 proto._getItemLayoutPosition = function(item) { 22812 item.getSize(); 22813 var remainder = item.size.outerWidth % this.columnWidth; 22814 var mathMethod = remainder && remainder < 1 ? "round" : "ceil"; 22815 var colSpan = Math[mathMethod](item.size.outerWidth / this.columnWidth); 22816 colSpan = Math.min(colSpan, this.cols); 22817 var colPosMethod = this.options.horizontalOrder ? "_getHorizontalColPosition" : "_getTopColPosition"; 22818 var colPosition = this[colPosMethod](colSpan, item); 22819 var position = { 22820 x: this.columnWidth * colPosition.col, 22821 y: colPosition.y 22822 }; 22823 var setHeight = colPosition.y + item.size.outerHeight; 22824 var setMax = colSpan + colPosition.col; 22825 for (var i10 = colPosition.col; i10 < setMax; i10++) { 22826 this.colYs[i10] = setHeight; 22827 } 22828 return position; 22829 }; 22830 proto._getTopColPosition = function(colSpan) { 22831 var colGroup = this._getTopColGroup(colSpan); 22832 var minimumY = Math.min.apply(Math, colGroup); 22833 return { 22834 col: colGroup.indexOf(minimumY), 22835 y: minimumY 22836 }; 22837 }; 22838 proto._getTopColGroup = function(colSpan) { 22839 if (colSpan < 2) { 22840 return this.colYs; 22841 } 22842 var colGroup = []; 22843 var groupCount = this.cols + 1 - colSpan; 22844 for (var i10 = 0; i10 < groupCount; i10++) { 22845 colGroup[i10] = this._getColGroupY(i10, colSpan); 22846 } 22847 return colGroup; 22848 }; 22849 proto._getColGroupY = function(col, colSpan) { 22850 if (colSpan < 2) { 22851 return this.colYs[col]; 22852 } 22853 var groupColYs = this.colYs.slice(col, col + colSpan); 22854 return Math.max.apply(Math, groupColYs); 22855 }; 22856 proto._getHorizontalColPosition = function(colSpan, item) { 22857 var col = this.horizontalColIndex % this.cols; 22858 var isOver = colSpan > 1 && col + colSpan > this.cols; 22859 col = isOver ? 0 : col; 22860 var hasSize = item.size.outerWidth && item.size.outerHeight; 22861 this.horizontalColIndex = hasSize ? col + colSpan : this.horizontalColIndex; 22862 return { 22863 col, 22864 y: this._getColGroupY(col, colSpan) 22865 }; 22866 }; 22867 proto._manageStamp = function(stamp) { 22868 var stampSize = getSize(stamp); 22869 var offset = this._getElementOffset(stamp); 22870 var isOriginLeft = this._getOption("originLeft"); 22871 var firstX = isOriginLeft ? offset.left : offset.right; 22872 var lastX = firstX + stampSize.outerWidth; 22873 var firstCol = Math.floor(firstX / this.columnWidth); 22874 firstCol = Math.max(0, firstCol); 22875 var lastCol = Math.floor(lastX / this.columnWidth); 22876 lastCol -= lastX % this.columnWidth ? 0 : 1; 22877 lastCol = Math.min(this.cols - 1, lastCol); 22878 var isOriginTop = this._getOption("originTop"); 22879 var stampMaxY = (isOriginTop ? offset.top : offset.bottom) + stampSize.outerHeight; 22880 for (var i10 = firstCol; i10 <= lastCol; i10++) { 22881 this.colYs[i10] = Math.max(stampMaxY, this.colYs[i10]); 22882 } 22883 }; 22884 proto._getContainerSize = function() { 22885 this.maxY = Math.max.apply(Math, this.colYs); 22886 var size = { 22887 height: this.maxY 22888 }; 22889 if (this._getOption("fitWidth")) { 22890 size.width = this._getContainerFitWidth(); 22891 } 22892 return size; 22893 }; 22894 proto._getContainerFitWidth = function() { 22895 var unusedCols = 0; 22896 var i10 = this.cols; 22897 while (--i10) { 22898 if (this.colYs[i10] !== 0) { 22899 break; 22900 } 22901 unusedCols++; 22902 } 22903 return (this.cols - unusedCols) * this.columnWidth - this.gutter; 22904 }; 22905 proto.needsResizeLayout = function() { 22906 var previousWidth = this.containerWidth; 22907 this.getContainerWidth(); 22908 return previousWidth != this.containerWidth; 22909 }; 22910 return Masonry; 22911 }); 22912 } 22913 }); 22914 22915
vendor: 1,768 bytes, lines 22915-22969
22915// node_modules/isotope-layout/js/layout-modes/masonry.js 22916 var require_masonry2 = __commonJS({ 22917 "node_modules/isotope-layout/js/layout-modes/masonry.js"(exports, module) { 22918 (function(window2, factory) { 22919 if (typeof define == "function" && define.amd) { 22920 define( 22921 [ 22922 "../layout-mode", 22923 "masonry-layout/masonry" 22924 ], 22925 factory 22926 ); 22927 } else if (typeof module == "object" && module.exports) { 22928 module.exports = factory( 22929 require_layout_mode(), 22930 require_masonry() 22931 ); 22932 } else { 22933 factory( 22934 window2.Isotope.LayoutMode, 22935 window2.Masonry 22936 ); 22937 } 22938 })(window, function factory(LayoutMode, Masonry) { 22939 "use strict"; 22940 var MasonryMode = LayoutMode.create("masonry"); 22941 var proto = MasonryMode.prototype; 22942 var keepModeMethods = { 22943 _getElementOffset: true, 22944 layout: true, 22945 _getMeasurement: true 22946 }; 22947 for (var method in Masonry.prototype) { 22948 if (!keepModeMethods[method]) { 22949 proto[method] = Masonry.prototype[method]; 22950 } 22951 } 22952 var measureColumns = proto.measureColumns; 22953 proto.measureColumns = function() { 22954 this.items = this.isotope.filteredItems; 22955 measureColumns.call(this); 22956 }; 22957 var _getOption = proto._getOption; 22958 proto._getOption = function(option) { 22959 if (option == "fitWidth") { 22960 return this.options.isFitWidth !== void 0 ? this.options.isFitWidth : this.options.fitWidth; 22961 } 22962 return _getOption.apply(this.isotope, arguments); 22963 }; 22964 return MasonryMode; 22965 }); 22966 } 22967 }); 22968 22969
vendor: 1,683 bytes, lines 22969-23023
22969// node_modules/isotope-layout/js/layout-modes/fit-rows.js 22970 var require_fit_rows = __commonJS({ 22971 "node_modules/isotope-layout/js/layout-modes/fit-rows.js"(exports, module) { 22972 (function(window2, factory) { 22973 if (typeof define == "function" && define.amd) { 22974 define( 22975 [ 22976 "../layout-mode" 22977 ], 22978 factory 22979 ); 22980 } else if (typeof exports == "object") { 22981 module.exports = factory( 22982 require_layout_mode() 22983 ); 22984 } else { 22985 factory( 22986 window2.Isotope.LayoutMode 22987 ); 22988 } 22989 })(window, function factory(LayoutMode) { 22990 "use strict"; 22991 var FitRows = LayoutMode.create("fitRows"); 22992 var proto = FitRows.prototype; 22993 proto._resetLayout = function() { 22994 this.x = 0; 22995 this.y = 0; 22996 this.maxY = 0; 22997 this._getMeasurement("gutter", "outerWidth"); 22998 }; 22999 proto._getItemLayoutPosition = function(item) { 23000 item.getSize(); 23001 var itemWidth = item.size.outerWidth + this.gutter; 23002 var containerWidth = this.isotope.size.innerWidth + this.gutter; 23003 if (this.x !== 0 && itemWidth + this.x > containerWidth) { 23004 this.x = 0; 23005 this.y = this.maxY; 23006 } 23007 var position = { 23008 x: this.x, 23009 y: this.y 23010 }; 23011 this.maxY = Math.max(this.maxY, this.y + item.size.outerHeight); 23012 this.x += itemWidth; 23013 return position; 23014 }; 23015 proto._getContainerSize = function() { 23016 return { height: this.maxY }; 23017 }; 23018 return FitRows; 23019 }); 23020 } 23021 }); 23022 23023
vendor: 1,366 bytes, lines 23023-23067
23023// node_modules/isotope-layout/js/layout-modes/vertical.js 23024 var require_vertical = __commonJS({ 23025 "node_modules/isotope-layout/js/layout-modes/vertical.js"(exports, module) { 23026 (function(window2, factory) { 23027 if (typeof define == "function" && define.amd) { 23028 define( 23029 [ 23030 "../layout-mode" 23031 ], 23032 factory 23033 ); 23034 } else if (typeof module == "object" && module.exports) { 23035 module.exports = factory( 23036 require_layout_mode() 23037 ); 23038 } else { 23039 factory( 23040 window2.Isotope.LayoutMode 23041 ); 23042 } 23043 })(window, function factory(LayoutMode) { 23044 "use strict"; 23045 var Vertical = LayoutMode.create("vertical", { 23046 horizontalAlignment: 0 23047 }); 23048 var proto = Vertical.prototype; 23049 proto._resetLayout = function() { 23050 this.y = 0; 23051 }; 23052 proto._getItemLayoutPosition = function(item) { 23053 item.getSize(); 23054 var x2 = (this.isotope.size.innerWidth - item.size.outerWidth) * this.options.horizontalAlignment; 23055 var y3 = this.y; 23056 this.y += item.size.outerHeight; 23057 return { x: x2, y: y3 }; 23058 }; 23059 proto._getContainerSize = function() { 23060 return { height: this.y }; 23061 }; 23062 return Vertical; 23063 }); 23064 } 23065 }); 23066 23067
vendor: 14,551 bytes, lines 23067-23475
23067// node_modules/isotope-layout/js/isotope.js 23068 var require_isotope = __commonJS({ 23069 "node_modules/isotope-layout/js/isotope.js"(exports, module) { 23070 (function(window2, factory) { 23071 if (typeof define == "function" && define.amd) { 23072 define( 23073 [ 23074 "outlayer/outlayer", 23075 "get-size/get-size", 23076 "desandro-matches-selector/matches-selector", 23077 "fizzy-ui-utils/utils", 23078 "./item", 23079 "./layout-mode", 23080 // include default layout modes 23081 "./layout-modes/masonry", 23082 "./layout-modes/fit-rows", 23083 "./layout-modes/vertical" 23084 ], 23085 function(Outlayer, getSize, matchesSelector, utils, Item, LayoutMode) { 23086 return factory(window2, Outlayer, getSize, matchesSelector, utils, Item, LayoutMode); 23087 } 23088 ); 23089 } else if (typeof module == "object" && module.exports) { 23090 module.exports = factory( 23091 window2, 23092 require_outlayer(), 23093 require_get_size2(), 23094 require_matches_selector(), 23095 require_utils2(), 23096 require_item2(), 23097 require_layout_mode(), 23098 // include default layout modes 23099 require_masonry2(), 23100 require_fit_rows(), 23101 require_vertical() 23102 ); 23103 } else { 23104 window2.Isotope = factory( 23105 window2, 23106 window2.Outlayer, 23107 window2.getSize, 23108 window2.matchesSelector, 23109 window2.fizzyUIUtils, 23110 window2.Isotope.Item, 23111 window2.Isotope.LayoutMode 23112 ); 23113 } 23114 })(window, function factory(window2, Outlayer, getSize, matchesSelector, utils, Item, LayoutMode) { 23115 "use strict"; 23116 var jQuery2 = window2.jQuery; 23117 var trim = String.prototype.trim ? function(str) { 23118 return str.trim(); 23119 } : function(str) { 23120 return str.replace(/^\s+|\s+$/g, ""); 23121 }; 23122 var Isotope2 = Outlayer.create("isotope", { 23123 layoutMode: "masonry", 23124 isJQueryFiltering: true, 23125 sortAscending: true 23126 }); 23127 Isotope2.Item = Item; 23128 Isotope2.LayoutMode = LayoutMode; 23129 var proto = Isotope2.prototype; 23130 proto._create = function() { 23131 this.itemGUID = 0; 23132 this._sorters = {}; 23133 this._getSorters(); 23134 Outlayer.prototype._create.call(this); 23135 this.modes = {}; 23136 this.filteredItems = this.items; 23137 this.sortHistory = ["original-order"]; 23138 for (var name in LayoutMode.modes) { 23139 this._initLayoutMode(name); 23140 } 23141 }; 23142 proto.reloadItems = function() { 23143 this.itemGUID = 0; 23144 Outlayer.prototype.reloadItems.call(this); 23145 }; 23146 proto._itemize = function() { 23147 var items = Outlayer.prototype._itemize.apply(this, arguments); 23148 for (var i10 = 0; i10 < items.length; i10++) { 23149 var item = items[i10]; 23150 item.id = this.itemGUID++; 23151 } 23152 this._updateItemsSortData(items); 23153 return items; 23154 }; 23155 proto._initLayoutMode = function(name) { 23156 var Mode = LayoutMode.modes[name]; 23157 var initialOpts = this.options[name] || {}; 23158 this.options[name] = Mode.options ? utils.extend(Mode.options, initialOpts) : initialOpts; 23159 this.modes[name] = new Mode(this); 23160 }; 23161 proto.layout = function() { 23162 if (!this._isLayoutInited && this._getOption("initLayout")) { 23163 this.arrange(); 23164 return; 23165 } 23166 this._layout(); 23167 }; 23168 proto._layout = function() { 23169 var isInstant = this._getIsInstant(); 23170 this._resetLayout(); 23171 this._manageStamps(); 23172 this.layoutItems(this.filteredItems, isInstant); 23173 this._isLayoutInited = true; 23174 }; 23175 proto.arrange = function(opts) { 23176 this.option(opts); 23177 this._getIsInstant(); 23178 var filtered = this._filter(this.items); 23179 this.filteredItems = filtered.matches; 23180 this._bindArrangeComplete(); 23181 if (this._isInstant) { 23182 this._noTransition(this._hideReveal, [filtered]); 23183 } else { 23184 this._hideReveal(filtered); 23185 } 23186 this._sort(); 23187 this._layout(); 23188 }; 23189 proto._init = proto.arrange; 23190 proto._hideReveal = function(filtered) { 23191 this.reveal(filtered.needReveal); 23192 this.hide(filtered.needHide); 23193 }; 23194 proto._getIsInstant = function() { 23195 var isLayoutInstant = this._getOption("layoutInstant"); 23196 var isInstant = isLayoutInstant !== void 0 ? isLayoutInstant : !this._isLayoutInited; 23197 this._isInstant = isInstant; 23198 return isInstant; 23199 }; 23200 proto._bindArrangeComplete = function() { 23201 var isLayoutComplete, isHideComplete, isRevealComplete; 23202 var _this = this; 23203 function arrangeParallelCallback() { 23204 if (isLayoutComplete && isHideComplete && isRevealComplete) { 23205 _this.dispatchEvent("arrangeComplete", null, [_this.filteredItems]); 23206 } 23207 } 23208 this.once("layoutComplete", function() { 23209 isLayoutComplete = true; 23210 arrangeParallelCallback(); 23211 }); 23212 this.once("hideComplete", function() { 23213 isHideComplete = true; 23214 arrangeParallelCallback(); 23215 }); 23216 this.once("revealComplete", function() { 23217 isRevealComplete = true; 23218 arrangeParallelCallback(); 23219 }); 23220 }; 23221 proto._filter = function(items) { 23222 var filter = this.options.filter; 23223 filter = filter || "*"; 23224 var matches = []; 23225 var hiddenMatched = []; 23226 var visibleUnmatched = []; 23227 var test = this._getFilterTest(filter); 23228 for (var i10 = 0; i10 < items.length; i10++) { 23229 var item = items[i10]; 23230 if (item.isIgnored) { 23231 continue; 23232 } 23233 var isMatched = test(item); 23234 if (isMatched) { 23235 matches.push(item); 23236 } 23237 if (isMatched && item.isHidden) { 23238 hiddenMatched.push(item); 23239 } else if (!isMatched && !item.isHidden) { 23240 visibleUnmatched.push(item); 23241 } 23242 } 23243 return { 23244 matches, 23245 needReveal: hiddenMatched, 23246 needHide: visibleUnmatched 23247 }; 23248 }; 23249 proto._getFilterTest = function(filter) { 23250 if (jQuery2 && this.options.isJQueryFiltering) { 23251 return function(item) { 23252 return jQuery2(item.element).is(filter); 23253 }; 23254 } 23255 if (typeof filter == "function") { 23256 return function(item) { 23257 return filter(item.element); 23258 }; 23259 } 23260 return function(item) { 23261 return matchesSelector(item.element, filter); 23262 }; 23263 }; 23264 proto.updateSortData = function(elems) { 23265 var items; 23266 if (elems) { 23267 elems = utils.makeArray(elems); 23268 items = this.getItems(elems); 23269 } else { 23270 items = this.items; 23271 } 23272 this._getSorters(); 23273 this._updateItemsSortData(items); 23274 }; 23275 proto._getSorters = function() { 23276 var getSortData = this.options.getSortData; 23277 for (var key in getSortData) { 23278 var sorter = getSortData[key]; 23279 this._sorters[key] = mungeSorter(sorter); 23280 } 23281 }; 23282 proto._updateItemsSortData = function(items) { 23283 var len = items && items.length; 23284 for (var i10 = 0; len && i10 < len; i10++) { 23285 var item = items[i10]; 23286 item.updateSortData(); 23287 } 23288 }; 23289 var mungeSorter = /* @__PURE__ */ (function() { 23290 function mungeSorter2(sorter) { 23291 if (typeof sorter != "string") { 23292 return sorter; 23293 } 23294 var args = trim(sorter).split(" "); 23295 var query = args[0]; 23296 var attrMatch = query.match(/^\[(.+)\]$/); 23297 var attr = attrMatch && attrMatch[1]; 23298 var getValue = getValueGetter(attr, query); 23299 var parser = Isotope2.sortDataParsers[args[1]]; 23300 sorter = parser ? function(elem) { 23301 return elem && parser(getValue(elem)); 23302 } : ( 23303 // otherwise just return value 23304 function(elem) { 23305 return elem && getValue(elem); 23306 } 23307 ); 23308 return sorter; 23309 } 23310 function getValueGetter(attr, query) { 23311 if (attr) { 23312 return function getAttribute(elem) { 23313 return elem.getAttribute(attr); 23314 }; 23315 } 23316 return function getChildText(elem) { 23317 var child = elem.querySelector(query); 23318 return child && child.textContent; 23319 }; 23320 } 23321 return mungeSorter2; 23322 })(); 23323 Isotope2.sortDataParsers = { 23324 "parseInt": function(val) { 23325 return parseInt(val, 10); 23326 }, 23327 "parseFloat": function(val) { 23328 return parseFloat(val); 23329 } 23330 }; 23331 proto._sort = function() { 23332 if (!this.options.sortBy) { 23333 return; 23334 } 23335 var sortBys = utils.makeArray(this.options.sortBy); 23336 if (!this._getIsSameSortBy(sortBys)) { 23337 this.sortHistory = sortBys.concat(this.sortHistory); 23338 } 23339 var itemSorter = getItemSorter(this.sortHistory, this.options.sortAscending); 23340 this.filteredItems.sort(itemSorter); 23341 }; 23342 proto._getIsSameSortBy = function(sortBys) { 23343 for (var i10 = 0; i10 < sortBys.length; i10++) { 23344 if (sortBys[i10] != this.sortHistory[i10]) { 23345 return false; 23346 } 23347 } 23348 return true; 23349 }; 23350 function getItemSorter(sortBys, sortAsc) { 23351 return function sorter(itemA, itemB) { 23352 for (var i10 = 0; i10 < sortBys.length; i10++) { 23353 var sortBy = sortBys[i10]; 23354 var a8 = itemA.sortData[sortBy]; 23355 var b3 = itemB.sortData[sortBy]; 23356 if (a8 > b3 || a8 < b3) { 23357 var isAscending = sortAsc[sortBy] !== void 0 ? sortAsc[sortBy] : sortAsc; 23358 var direction = isAscending ? 1 : -1; 23359 return (a8 > b3 ? 1 : -1) * direction; 23360 } 23361 } 23362 return 0; 23363 }; 23364 } 23365 proto._mode = function() { 23366 var layoutMode = this.options.layoutMode; 23367 var mode = this.modes[layoutMode]; 23368 if (!mode) { 23369 throw new Error("No layout mode: " + layoutMode); 23370 } 23371 mode.options = this.options[layoutMode]; 23372 return mode; 23373 }; 23374 proto._resetLayout = function() { 23375 Outlayer.prototype._resetLayout.call(this); 23376 this._mode()._resetLayout(); 23377 }; 23378 proto._getItemLayoutPosition = function(item) { 23379 return this._mode()._getItemLayoutPosition(item); 23380 }; 23381 proto._manageStamp = function(stamp) { 23382 this._mode()._manageStamp(stamp); 23383 }; 23384 proto._getContainerSize = function() { 23385 return this._mode()._getContainerSize(); 23386 }; 23387 proto.needsResizeLayout = function() { 23388 return this._mode().needsResizeLayout(); 23389 }; 23390 proto.appended = function(elems) { 23391 var items = this.addItems(elems); 23392 if (!items.length) { 23393 return; 23394 } 23395 var filteredItems = this._filterRevealAdded(items); 23396 this.filteredItems = this.filteredItems.concat(filteredItems); 23397 }; 23398 proto.prepended = function(elems) { 23399 var items = this._itemize(elems); 23400 if (!items.length) { 23401 return; 23402 } 23403 this._resetLayout(); 23404 this._manageStamps(); 23405 var filteredItems = this._filterRevealAdded(items); 23406 this.layoutItems(this.filteredItems); 23407 this.filteredItems = filteredItems.concat(this.filteredItems); 23408 this.items = items.concat(this.items); 23409 }; 23410 proto._filterRevealAdded = function(items) { 23411 var filtered = this._filter(items); 23412 this.hide(filtered.needHide); 23413 this.reveal(filtered.matches); 23414 this.layoutItems(filtered.matches, true); 23415 return filtered.matches; 23416 }; 23417 proto.insert = function(elems) { 23418 var items = this.addItems(elems); 23419 if (!items.length) { 23420 return; 23421 } 23422 var i10, item; 23423 var len = items.length; 23424 for (i10 = 0; i10 < len; i10++) { 23425 item = items[i10]; 23426 this.element.appendChild(item.element); 23427 } 23428 var filteredInsertItems = this._filter(items).matches; 23429 for (i10 = 0; i10 < len; i10++) { 23430 items[i10].isLayoutInstant = true; 23431 } 23432 this.arrange(); 23433 for (i10 = 0; i10 < len; i10++) { 23434 delete items[i10].isLayoutInstant; 23435 } 23436 this.reveal(filteredInsertItems); 23437 }; 23438 var _remove = proto.remove; 23439 proto.remove = function(elems) { 23440 elems = utils.makeArray(elems); 23441 var removeItems = this.getItems(elems); 23442 _remove.call(this, elems); 23443 var len = removeItems && removeItems.length; 23444 for (var i10 = 0; len && i10 < len; i10++) { 23445 var item = removeItems[i10]; 23446 utils.removeFrom(this.filteredItems, item); 23447 } 23448 }; 23449 proto.shuffle = function() { 23450 for (var i10 = 0; i10 < this.items.length; i10++) { 23451 var item = this.items[i10]; 23452 item.sortData.random = Math.random(); 23453 } 23454 this.options.sortBy = "random"; 23455 this._sort(); 23456 this._layout(); 23457 }; 23458 proto._noTransition = function(fn, args) { 23459 var transitionDuration = this.options.transitionDuration; 23460 this.options.transitionDuration = 0; 23461 var returnValue = fn.apply(this, args); 23462 this.options.transitionDuration = transitionDuration; 23463 return returnValue; 23464 }; 23465 proto.getFilteredItemElements = function() { 23466 return this.filteredItems.map(function(item) { 23467 return item.element; 23468 }); 23469 }; 23470 return Isotope2; 23471 }); 23472 } 23473 }); 23474 23475
vendor: 259,290 bytes, lines 23475-29825
23475// node_modules/jquery/dist/jquery.js 23476 var require_jquery = __commonJS({ 23477 "node_modules/jquery/dist/jquery.js"(exports, module) { 23478 (function(global, factory) { 23479 "use strict"; 23480 if (typeof module === "object" && typeof module.exports === "object") { 23481 module.exports = global.document ? factory(global, true) : function(w3) { 23482 if (!w3.document) { 23483 throw new Error("jQuery requires a window with a document"); 23484 } 23485 return factory(w3); 23486 }; 23487 } else { 23488 factory(global); 23489 } 23490 })(typeof window !== "undefined" ? window : exports, function(window2, noGlobal) { 23491 "use strict"; 23492 var arr = []; 23493 var getProto = Object.getPrototypeOf; 23494 var slice = arr.slice; 23495 var flat = arr.flat ? function(array) { 23496 return arr.flat.call(array); 23497 } : function(array) { 23498 return arr.concat.apply([], array); 23499 }; 23500 var push = arr.push; 23501 var indexOf = arr.indexOf; 23502 var class2type = {}; 23503 var toString = class2type.toString; 23504 var hasOwn = class2type.hasOwnProperty; 23505 var fnToString = hasOwn.toString; 23506 var ObjectFunctionString = fnToString.call(Object); 23507 var support = {}; 23508 var isFunction = function isFunction2(obj) { 23509 return typeof obj === "function" && typeof obj.nodeType !== "number" && typeof obj.item !== "function"; 23510 }; 23511 var isWindow = function isWindow2(obj) { 23512 return obj != null && obj === obj.window; 23513 }; 23514 var document2 = window2.document; 23515 var preservedScriptAttributes = { 23516 type: true, 23517 src: true, 23518 nonce: true, 23519 noModule: true 23520 }; 23521 function DOMEval(code, node, doc) { 23522 doc = doc || document2; 23523 var i10, val, script = doc.createElement("script"); 23524 script.text = code; 23525 if (node) { 23526 for (i10 in preservedScriptAttributes) { 23527 val = node[i10] || node.getAttribute && node.getAttribute(i10); 23528 if (val) { 23529 script.setAttribute(i10, val); 23530 } 23531 } 23532 } 23533 doc.head.appendChild(script).parentNode.removeChild(script); 23534 } 23535 function toType(obj) { 23536 if (obj == null) { 23537 return obj + ""; 23538 } 23539 return typeof obj === "object" || typeof obj === "function" ? class2type[toString.call(obj)] || "object" : typeof obj; 23540 } 23541 var version = "3.7.1", rhtmlSuffix = /HTML$/i, jQuery2 = function(selector3, context3) { 23542 return new jQuery2.fn.init(selector3, context3); 23543 }; 23544 jQuery2.fn = jQuery2.prototype = { 23545 // The current version of jQuery being used 23546 jquery: version, 23547 constructor: jQuery2, 23548 // The default length of a jQuery object is 0 23549 length: 0, 23550 toArray: function() { 23551 return slice.call(this); 23552 }, 23553 // Get the Nth element in the matched element set OR 23554 // Get the whole matched element set as a clean array 23555 get: function(num) { 23556 if (num == null) { 23557 return slice.call(this); 23558 } 23559 return num < 0 ? this[num + this.length] : this[num]; 23560 }, 23561 // Take an array of elements and push it onto the stack 23562 // (returning the new matched element set) 23563 pushStack: function(elems) { 23564 var ret = jQuery2.merge(this.constructor(), elems); 23565 ret.prevObject = this; 23566 return ret; 23567 }, 23568 // Execute a callback for every element in the matched set. 23569 each: function(callback) { 23570 return jQuery2.each(this, callback); 23571 }, 23572 map: function(callback) { 23573 return this.pushStack(jQuery2.map(this, function(elem, i10) { 23574 return callback.call(elem, i10, elem); 23575 })); 23576 }, 23577 slice: function() { 23578 return this.pushStack(slice.apply(this, arguments)); 23579 }, 23580 first: function() { 23581 return this.eq(0); 23582 }, 23583 last: function() { 23584 return this.eq(-1); 23585 }, 23586 even: function() { 23587 return this.pushStack(jQuery2.grep(this, function(_elem, i10) { 23588 return (i10 + 1) % 2; 23589 })); 23590 }, 23591 odd: function() { 23592 return this.pushStack(jQuery2.grep(this, function(_elem, i10) { 23593 return i10 % 2; 23594 })); 23595 }, 23596 eq: function(i10) { 23597 var len = this.length, j2 = +i10 + (i10 < 0 ? len : 0); 23598 return this.pushStack(j2 >= 0 && j2 < len ? [this[j2]] : []); 23599 }, 23600 end: function() { 23601 return this.prevObject || this.constructor(); 23602 }, 23603 // For internal use only. 23604 // Behaves like an Array's method, not like a jQuery method. 23605 push, 23606 sort: arr.sort, 23607 splice: arr.splice 23608 }; 23609 jQuery2.extend = jQuery2.fn.extend = function() { 23610 var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i10 = 1, length = arguments.length, deep = false; 23611 if (typeof target === "boolean") { 23612 deep = target; 23613 target = arguments[i10] || {}; 23614 i10++; 23615 } 23616 if (typeof target !== "object" && !isFunction(target)) { 23617 target = {}; 23618 } 23619 if (i10 === length) { 23620 target = this; 23621 i10--; 23622 } 23623 for (; i10 < length; i10++) { 23624 if ((options = arguments[i10]) != null) { 23625 for (name in options) { 23626 copy = options[name]; 23627 if (name === "__proto__" || target === copy) { 23628 continue; 23629 } 23630 if (deep && copy && (jQuery2.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) { 23631 src = target[name]; 23632 if (copyIsArray && !Array.isArray(src)) { 23633 clone = []; 23634 } else if (!copyIsArray && !jQuery2.isPlainObject(src)) { 23635 clone = {}; 23636 } else { 23637 clone = src; 23638 } 23639 copyIsArray = false; 23640 target[name] = jQuery2.extend(deep, clone, copy); 23641 } else if (copy !== void 0) { 23642 target[name] = copy; 23643 } 23644 } 23645 } 23646 } 23647 return target; 23648 }; 23649 jQuery2.extend({ 23650 // Unique for each copy of jQuery on the page 23651 expando: "jQuery" + (version + Math.random()).replace(/\D/g, ""), 23652 // Assume jQuery is ready without the ready module 23653 isReady: true, 23654 error: function(msg) { 23655 throw new Error(msg); 23656 }, 23657 noop: function() { 23658 }, 23659 isPlainObject: function(obj) { 23660 var proto, Ctor; 23661 if (!obj || toString.call(obj) !== "[object Object]") { 23662 return false; 23663 } 23664 proto = getProto(obj); 23665 if (!proto) { 23666 return true; 23667 } 23668 Ctor = hasOwn.call(proto, "constructor") && proto.constructor; 23669 return typeof Ctor === "function" && fnToString.call(Ctor) === ObjectFunctionString; 23670 }, 23671 isEmptyObject: function(obj) { 23672 var name; 23673 for (name in obj) { 23674 return false; 23675 } 23676 return true; 23677 }, 23678 // Evaluates a script in a provided context; falls back to the global one 23679 // if not specified. 23680 globalEval: function(code, options, doc) { 23681 DOMEval(code, { nonce: options && options.nonce }, doc); 23682 }, 23683 each: function(obj, callback) { 23684 var length, i10 = 0; 23685 if (isArrayLike(obj)) { 23686 length = obj.length; 23687 for (; i10 < length; i10++) { 23688 if (callback.call(obj[i10], i10, obj[i10]) === false) { 23689 break; 23690 } 23691 } 23692 } else { 23693 for (i10 in obj) { 23694 if (callback.call(obj[i10], i10, obj[i10]) === false) { 23695 break; 23696 } 23697 } 23698 } 23699 return obj; 23700 }, 23701 // Retrieve the text value of an array of DOM nodes 23702 text: function(elem) { 23703 var node, ret = "", i10 = 0, nodeType = elem.nodeType; 23704 if (!nodeType) { 23705 while (node = elem[i10++]) { 23706 ret += jQuery2.text(node); 23707 } 23708 } 23709 if (nodeType === 1 || nodeType === 11) { 23710 return elem.textContent; 23711 } 23712 if (nodeType === 9) { 23713 return elem.documentElement.textContent; 23714 } 23715 if (nodeType === 3 || nodeType === 4) { 23716 return elem.nodeValue; 23717 } 23718 return ret; 23719 }, 23720 // results is for internal usage only 23721 makeArray: function(arr2, results) { 23722 var ret = results || []; 23723 if (arr2 != null) { 23724 if (isArrayLike(Object(arr2))) { 23725 jQuery2.merge( 23726 ret, 23727 typeof arr2 === "string" ? [arr2] : arr2 23728 ); 23729 } else { 23730 push.call(ret, arr2); 23731 } 23732 } 23733 return ret; 23734 }, 23735 inArray: function(elem, arr2, i10) { 23736 return arr2 == null ? -1 : indexOf.call(arr2, elem, i10); 23737 }, 23738 isXMLDoc: function(elem) { 23739 var namespace = elem && elem.namespaceURI, docElem = elem && (elem.ownerDocument || elem).documentElement; 23740 return !rhtmlSuffix.test(namespace || docElem && docElem.nodeName || "HTML"); 23741 }, 23742 // Support: Android <=4.0 only, PhantomJS 1 only 23743 // push.apply(_, arraylike) throws on ancient WebKit 23744 merge: function(first, second) { 23745 var len = +second.length, j2 = 0, i10 = first.length; 23746 for (; j2 < len; j2++) { 23747 first[i10++] = second[j2]; 23748 } 23749 first.length = i10; 23750 return first; 23751 }, 23752 grep: function(elems, callback, invert) { 23753 var callbackInverse, matches = [], i10 = 0, length = elems.length, callbackExpect = !invert; 23754 for (; i10 < length; i10++) { 23755 callbackInverse = !callback(elems[i10], i10); 23756 if (callbackInverse !== callbackExpect) { 23757 matches.push(elems[i10]); 23758 } 23759 } 23760 return matches; 23761 }, 23762 // arg is for internal usage only 23763 map: function(elems, callback, arg) { 23764 var length, value, i10 = 0, ret = []; 23765 if (isArrayLike(elems)) { 23766 length = elems.length; 23767 for (; i10 < length; i10++) { 23768 value = callback(elems[i10], i10, arg); 23769 if (value != null) { 23770 ret.push(value); 23771 } 23772 } 23773 } else { 23774 for (i10 in elems) { 23775 value = callback(elems[i10], i10, arg); 23776 if (value != null) { 23777 ret.push(value); 23778 } 23779 } 23780 } 23781 return flat(ret); 23782 }, 23783 // A global GUID counter for objects 23784 guid: 1, 23785 // jQuery.support is not used in Core but other projects attach their 23786 // properties to it so it needs to exist. 23787 support 23788 }); 23789 if (typeof Symbol === "function") { 23790 jQuery2.fn[Symbol.iterator] = arr[Symbol.iterator]; 23791 } 23792 jQuery2.each( 23793 "Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), 23794 function(_i2, name) { 23795 class2type["[object " + name + "]"] = name.toLowerCase(); 23796 } 23797 ); 23798 function isArrayLike(obj) { 23799 var length = !!obj && "length" in obj && obj.length, type = toType(obj); 23800 if (isFunction(obj) || isWindow(obj)) { 23801 return false; 23802 } 23803 return type === "array" || length === 0 || typeof length === "number" && length > 0 && length - 1 in obj; 23804 } 23805 function nodeName(elem, name) { 23806 return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); 23807 } 23808 var pop = arr.pop; 23809 var sort = arr.sort; 23810 var splice = arr.splice; 23811 var whitespace = "[\\x20\\t\\r\\n\\f]"; 23812 var rtrimCSS = new RegExp( 23813 "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", 23814 "g" 23815 ); 23816 jQuery2.contains = function(a8, b3) { 23817 var bup = b3 && b3.parentNode; 23818 return a8 === bup || !!(bup && bup.nodeType === 1 && // Support: IE 9 - 11+ 23819 // IE doesn't have `contains` on SVG. 23820 (a8.contains ? a8.contains(bup) : a8.compareDocumentPosition && a8.compareDocumentPosition(bup) & 16)); 23821 }; 23822 var rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g; 23823 function fcssescape(ch, asCodePoint) { 23824 if (asCodePoint) { 23825 if (ch === "\0") { 23826 return "\uFFFD"; 23827 } 23828 return ch.slice(0, -1) + "\\" + ch.charCodeAt(ch.length - 1).toString(16) + " "; 23829 } 23830 return "\\" + ch; 23831 } 23832 jQuery2.escapeSelector = function(sel) { 23833 return (sel + "").replace(rcssescape, fcssescape); 23834 }; 23835 var preferredDoc = document2, pushNative = push; 23836 (function() { 23837 var i10, Expr, outermostContext, sortInput, hasDuplicate, push2 = pushNative, document3, documentElement2, documentIsHTML, rbuggyQSA, matches, expando = jQuery2.expando, dirruns = 0, done = 0, classCache = createCache(), tokenCache = createCache(), compilerCache = createCache(), nonnativeSelectorCache = createCache(), sortOrder = function(a8, b3) { 23838 if (a8 === b3) { 23839 hasDuplicate = true; 23840 } 23841 return 0; 23842 }, booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + // Operator (capture 2) 23843 "*([*^$|!~]?=)" + whitespace + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" 23844 `*(?:'((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)"|(` + identifier + "))|)" + whitespace + "*\\]", pseudos = ":(" + identifier + `)(?:\\((('((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)")|((?:\\\\.|[^\\\\()[\\]]|` + attributes + ")*)|.*)\\)|)", rwhitespace = new RegExp(whitespace + "+", "g"), rcomma = new RegExp("^" + whitespace + "*," + whitespace + "*"), rleadingCombinator = new RegExp("^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*"), rdescend = new RegExp(whitespace + "|>"), rpseudo = new RegExp(pseudos), ridentifier = new RegExp("^" + identifier + "$"), matchExpr = { 23845 ID: new RegExp("^#(" + identifier + ")"), 23846 CLASS: new RegExp("^\\.(" + identifier + ")"), 23847 TAG: new RegExp("^(" + identifier + "|[*])"), 23848 ATTR: new RegExp("^" + attributes), 23849 PSEUDO: new RegExp("^" + pseudos), 23850 CHILD: new RegExp( 23851 "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", 23852 "i" 23853 ), 23854 bool: new RegExp("^(?:" + booleans + ")$", "i"), 23855 // For use in libraries implementing .is() 23856 // We use this for POS matching in `select` 23857 needsContext: new RegExp("^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i") 23858 }, rinputs = /^(?:input|select|textarea|button)$/i, rheader = /^h\d$/i, rquickExpr2 = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, rsibling = /[+~]/, runescape = new RegExp("\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g"), funescape = function(escape2, nonHex) { 23859 var high = "0x" + escape2.slice(1) - 65536; 23860 if (nonHex) { 23861 return nonHex; 23862 } 23863 return high < 0 ? String.fromCharCode(high + 65536) : String.fromCharCode(high >> 10 | 55296, high & 1023 | 56320); 23864 }, unloadHandler = function() { 23865 setDocument(); 23866 }, inDisabledFieldset = addCombinator( 23867 function(elem) { 23868 return elem.disabled === true && nodeName(elem, "fieldset"); 23869 }, 23870 { dir: "parentNode", next: "legend" } 23871 ); 23872 function safeActiveElement() { 23873 try { 23874 return document3.activeElement; 23875 } catch (err) { 23876 } 23877 } 23878 try { 23879 push2.apply( 23880 arr = slice.call(preferredDoc.childNodes), 23881 preferredDoc.childNodes 23882 ); 23883 arr[preferredDoc.childNodes.length].nodeType; 23884 } catch (e11) { 23885 push2 = { 23886 apply: function(target, els) { 23887 pushNative.apply(target, slice.call(els)); 23888 }, 23889 call: function(target) { 23890 pushNative.apply(target, slice.call(arguments, 1)); 23891 } 23892 }; 23893 } 23894 function find(selector3, context3, results, seed) { 23895 var m3, i11, elem, nid, match, groups, newSelector, newContext = context3 && context3.ownerDocument, nodeType = context3 ? context3.nodeType : 9; 23896 results = results || []; 23897 if (typeof selector3 !== "string" || !selector3 || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) { 23898 return results; 23899 } 23900 if (!seed) { 23901 setDocument(context3); 23902 context3 = context3 || document3; 23903 if (documentIsHTML) { 23904 if (nodeType !== 11 && (match = rquickExpr2.exec(selector3))) { 23905 if (m3 = match[1]) { 23906 if (nodeType === 9) { 23907 if (elem = context3.getElementById(m3)) { 23908 if (elem.id === m3) { 23909 push2.call(results, elem); 23910 return results; 23911 } 23912 } else { 23913 return results; 23914 } 23915 } else { 23916 if (newContext && (elem = newContext.getElementById(m3)) && find.contains(context3, elem) && elem.id === m3) { 23917 push2.call(results, elem); 23918 return results; 23919 } 23920 } 23921 } else if (match[2]) { 23922 push2.apply(results, context3.getElementsByTagName(selector3)); 23923 return results; 23924 } else if ((m3 = match[3]) && context3.getElementsByClassName) { 23925 push2.apply(results, context3.getElementsByClassName(m3)); 23926 return results; 23927 } 23928 } 23929 if (!nonnativeSelectorCache[selector3 + " "] && (!rbuggyQSA || !rbuggyQSA.test(selector3))) { 23930 newSelector = selector3; 23931 newContext = context3; 23932 if (nodeType === 1 && (rdescend.test(selector3) || rleadingCombinator.test(selector3))) { 23933 newContext = rsibling.test(selector3) && testContext(context3.parentNode) || context3; 23934 if (newContext != context3 || !support.scope) { 23935 if (nid = context3.getAttribute("id")) { 23936 nid = jQuery2.escapeSelector(nid); 23937 } else { 23938 context3.setAttribute("id", nid = expando); 23939 } 23940 } 23941 groups = tokenize(selector3); 23942 i11 = groups.length; 23943 while (i11--) { 23944 groups[i11] = (nid ? "#" + nid : ":scope") + " " + toSelector(groups[i11]); 23945 } 23946 newSelector = groups.join(","); 23947 } 23948 try { 23949 push2.apply( 23950 results, 23951 newContext.querySelectorAll(newSelector) 23952 ); 23953 return results; 23954 } catch (qsaError) { 23955 nonnativeSelectorCache(selector3, true); 23956 } finally { 23957 if (nid === expando) { 23958 context3.removeAttribute("id"); 23959 } 23960 } 23961 } 23962 } 23963 } 23964 return select2(selector3.replace(rtrimCSS, "$1"), context3, results, seed); 23965 } 23966 function createCache() { 23967 var keys = []; 23968 function cache(key, value) { 23969 if (keys.push(key + " ") > Expr.cacheLength) { 23970 delete cache[keys.shift()]; 23971 } 23972 return cache[key + " "] = value; 23973 } 23974 return cache; 23975 } 23976 function markFunction(fn) { 23977 fn[expando] = true; 23978 return fn; 23979 } 23980 function assert(fn) { 23981 var el = document3.createElement("fieldset"); 23982 try { 23983 return !!fn(el); 23984 } catch (e11) { 23985 return false; 23986 } finally { 23987 if (el.parentNode) { 23988 el.parentNode.removeChild(el); 23989 } 23990 el = null; 23991 } 23992 } 23993 function createInputPseudo(type) { 23994 return function(elem) { 23995 return nodeName(elem, "input") && elem.type === type; 23996 }; 23997 } 23998 function createButtonPseudo(type) { 23999 return function(elem) { 24000 return (nodeName(elem, "input") || nodeName(elem, "button")) && elem.type === type; 24001 }; 24002 } 24003 function createDisabledPseudo(disabled) { 24004 return function(elem) { 24005 if ("form" in elem) { 24006 if (elem.parentNode && elem.disabled === false) { 24007 if ("label" in elem) { 24008 if ("label" in elem.parentNode) { 24009 return elem.parentNode.disabled === disabled; 24010 } else { 24011 return elem.disabled === disabled; 24012 } 24013 } 24014 return elem.isDisabled === disabled || // Where there is no isDisabled, check manually 24015 elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled; 24016 } 24017 return elem.disabled === disabled; 24018 } else if ("label" in elem) { 24019 return elem.disabled === disabled; 24020 } 24021 return false; 24022 }; 24023 } 24024 function createPositionalPseudo(fn) { 24025 return markFunction(function(argument) { 24026 argument = +argument; 24027 return markFunction(function(seed, matches2) { 24028 var j2, matchIndexes = fn([], seed.length, argument), i11 = matchIndexes.length; 24029 while (i11--) { 24030 if (seed[j2 = matchIndexes[i11]]) { 24031 seed[j2] = !(matches2[j2] = seed[j2]); 24032 } 24033 } 24034 }); 24035 }); 24036 } 24037 function testContext(context3) { 24038 return context3 && typeof context3.getElementsByTagName !== "undefined" && context3; 24039 } 24040 function setDocument(node) { 24041 var subWindow, doc = node ? node.ownerDocument || node : preferredDoc; 24042 if (doc == document3 || doc.nodeType !== 9 || !doc.documentElement) { 24043 return document3; 24044 } 24045 document3 = doc; 24046 documentElement2 = document3.documentElement; 24047 documentIsHTML = !jQuery2.isXMLDoc(document3); 24048 matches = documentElement2.matches || documentElement2.webkitMatchesSelector || documentElement2.msMatchesSelector; 24049 if (documentElement2.msMatchesSelector && // Support: IE 11+, Edge 17 - 18+ 24050 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 24051 // two documents; shallow comparisons work. 24052 // eslint-disable-next-line eqeqeq 24053 preferredDoc != document3 && (subWindow = document3.defaultView) && subWindow.top !== subWindow) { 24054 subWindow.addEventListener("unload", unloadHandler); 24055 } 24056 support.getById = assert(function(el) { 24057 documentElement2.appendChild(el).id = jQuery2.expando; 24058 return !document3.getElementsByName || !document3.getElementsByName(jQuery2.expando).length; 24059 }); 24060 support.disconnectedMatch = assert(function(el) { 24061 return matches.call(el, "*"); 24062 }); 24063 support.scope = assert(function() { 24064 return document3.querySelectorAll(":scope"); 24065 }); 24066 support.cssHas = assert(function() { 24067 try { 24068 document3.querySelector(":has(*,:jqfake)"); 24069 return false; 24070 } catch (e11) { 24071 return true; 24072 } 24073 }); 24074 if (support.getById) { 24075 Expr.filter.ID = function(id) { 24076 var attrId = id.replace(runescape, funescape); 24077 return function(elem) { 24078 return elem.getAttribute("id") === attrId; 24079 }; 24080 }; 24081 Expr.find.ID = function(id, context3) { 24082 if (typeof context3.getElementById !== "undefined" && documentIsHTML) { 24083 var elem = context3.getElementById(id); 24084 return elem ? [elem] : []; 24085 } 24086 }; 24087 } else { 24088 Expr.filter.ID = function(id) { 24089 var attrId = id.replace(runescape, funescape); 24090 return function(elem) { 24091 var node2 = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); 24092 return node2 && node2.value === attrId; 24093 }; 24094 }; 24095 Expr.find.ID = function(id, context3) { 24096 if (typeof context3.getElementById !== "undefined" && documentIsHTML) { 24097 var node2, i11, elems, elem = context3.getElementById(id); 24098 if (elem) { 24099 node2 = elem.getAttributeNode("id"); 24100 if (node2 && node2.value === id) { 24101 return [elem]; 24102 } 24103 elems = context3.getElementsByName(id); 24104 i11 = 0; 24105 while (elem = elems[i11++]) { 24106 node2 = elem.getAttributeNode("id"); 24107 if (node2 && node2.value === id) { 24108 return [elem]; 24109 } 24110 } 24111 } 24112 return []; 24113 } 24114 }; 24115 } 24116 Expr.find.TAG = function(tag, context3) { 24117 if (typeof context3.getElementsByTagName !== "undefined") { 24118 return context3.getElementsByTagName(tag); 24119 } else { 24120 return context3.querySelectorAll(tag); 24121 } 24122 }; 24123 Expr.find.CLASS = function(className, context3) { 24124 if (typeof context3.getElementsByClassName !== "undefined" && documentIsHTML) { 24125 return context3.getElementsByClassName(className); 24126 } 24127 }; 24128 rbuggyQSA = []; 24129 assert(function(el) { 24130 var input; 24131 documentElement2.appendChild(el).innerHTML = "<a id='" + expando + "' href='' disabled='disabled'></a><select id='" + expando + "-\r\\' disabled='disabled'><option selected=''></option></select>"; 24132 if (!el.querySelectorAll("[selected]").length) { 24133 rbuggyQSA.push("\\[" + whitespace + "*(?:value|" + booleans + ")"); 24134 } 24135 if (!el.querySelectorAll("[id~=" + expando + "-]").length) { 24136 rbuggyQSA.push("~="); 24137 } 24138 if (!el.querySelectorAll("a#" + expando + "+*").length) { 24139 rbuggyQSA.push(".#.+[+~]"); 24140 } 24141 if (!el.querySelectorAll(":checked").length) { 24142 rbuggyQSA.push(":checked"); 24143 } 24144 input = document3.createElement("input"); 24145 input.setAttribute("type", "hidden"); 24146 el.appendChild(input).setAttribute("name", "D"); 24147 documentElement2.appendChild(el).disabled = true; 24148 if (el.querySelectorAll(":disabled").length !== 2) { 24149 rbuggyQSA.push(":enabled", ":disabled"); 24150 } 24151 input = document3.createElement("input"); 24152 input.setAttribute("name", ""); 24153 el.appendChild(input); 24154 if (!el.querySelectorAll("[name='']").length) { 24155 rbuggyQSA.push("\\[" + whitespace + "*name" + whitespace + "*=" + whitespace + `*(?:''|"")`); 24156 } 24157 }); 24158 if (!support.cssHas) { 24159 rbuggyQSA.push(":has"); 24160 } 24161 rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join("|")); 24162 sortOrder = function(a8, b3) { 24163 if (a8 === b3) { 24164 hasDuplicate = true; 24165 return 0; 24166 } 24167 var compare = !a8.compareDocumentPosition - !b3.compareDocumentPosition; 24168 if (compare) { 24169 return compare; 24170 } 24171 compare = (a8.ownerDocument || a8) == (b3.ownerDocument || b3) ? a8.compareDocumentPosition(b3) : ( 24172 // Otherwise we know they are disconnected 24173 1 24174 ); 24175 if (compare & 1 || !support.sortDetached && b3.compareDocumentPosition(a8) === compare) { 24176 if (a8 === document3 || a8.ownerDocument == preferredDoc && find.contains(preferredDoc, a8)) { 24177 return -1; 24178 } 24179 if (b3 === document3 || b3.ownerDocument == preferredDoc && find.contains(preferredDoc, b3)) { 24180 return 1; 24181 } 24182 return sortInput ? indexOf.call(sortInput, a8) - indexOf.call(sortInput, b3) : 0; 24183 } 24184 return compare & 4 ? -1 : 1; 24185 }; 24186 return document3; 24187 } 24188 find.matches = function(expr, elements) { 24189 return find(expr, null, null, elements); 24190 }; 24191 find.matchesSelector = function(elem, expr) { 24192 setDocument(elem); 24193 if (documentIsHTML && !nonnativeSelectorCache[expr + " "] && (!rbuggyQSA || !rbuggyQSA.test(expr))) { 24194 try { 24195 var ret = matches.call(elem, expr); 24196 if (ret || support.disconnectedMatch || // As well, disconnected nodes are said to be in a document 24197 // fragment in IE 9 24198 elem.document && elem.document.nodeType !== 11) { 24199 return ret; 24200 } 24201 } catch (e11) { 24202 nonnativeSelectorCache(expr, true); 24203 } 24204 } 24205 return find(expr, document3, null, [elem]).length > 0; 24206 }; 24207 find.contains = function(context3, elem) { 24208 if ((context3.ownerDocument || context3) != document3) { 24209 setDocument(context3); 24210 } 24211 return jQuery2.contains(context3, elem); 24212 }; 24213 find.attr = function(elem, name) { 24214 if ((elem.ownerDocument || elem) != document3) { 24215 setDocument(elem); 24216 } 24217 var fn = Expr.attrHandle[name.toLowerCase()], val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : void 0; 24218 if (val !== void 0) { 24219 return val; 24220 } 24221 return elem.getAttribute(name); 24222 }; 24223 find.error = function(msg) { 24224 throw new Error("Syntax error, unrecognized expression: " + msg); 24225 }; 24226 jQuery2.uniqueSort = function(results) { 24227 var elem, duplicates = [], j2 = 0, i11 = 0; 24228 hasDuplicate = !support.sortStable; 24229 sortInput = !support.sortStable && slice.call(results, 0); 24230 sort.call(results, sortOrder); 24231 if (hasDuplicate) { 24232 while (elem = results[i11++]) { 24233 if (elem === results[i11]) { 24234 j2 = duplicates.push(i11); 24235 } 24236 } 24237 while (j2--) { 24238 splice.call(results, duplicates[j2], 1); 24239 } 24240 } 24241 sortInput = null; 24242 return results; 24243 }; 24244 jQuery2.fn.uniqueSort = function() { 24245 return this.pushStack(jQuery2.uniqueSort(slice.apply(this))); 24246 }; 24247 Expr = jQuery2.expr = { 24248 // Can be adjusted by the user 24249 cacheLength: 50, 24250 createPseudo: markFunction, 24251 match: matchExpr, 24252 attrHandle: {}, 24253 find: {}, 24254 relative: { 24255 ">": { dir: "parentNode", first: true }, 24256 " ": { dir: "parentNode" }, 24257 "+": { dir: "previousSibling", first: true }, 24258 "~": { dir: "previousSibling" } 24259 }, 24260 preFilter: { 24261 ATTR: function(match) { 24262 match[1] = match[1].replace(runescape, funescape); 24263 match[3] = (match[3] || match[4] || match[5] || "").replace(runescape, funescape); 24264 if (match[2] === "~=") { 24265 match[3] = " " + match[3] + " "; 24266 } 24267 return match.slice(0, 4); 24268 }, 24269 CHILD: function(match) { 24270 match[1] = match[1].toLowerCase(); 24271 if (match[1].slice(0, 3) === "nth") { 24272 if (!match[3]) { 24273 find.error(match[0]); 24274 } 24275 match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === "even" || match[3] === "odd")); 24276 match[5] = +(match[7] + match[8] || match[3] === "odd"); 24277 } else if (match[3]) { 24278 find.error(match[0]); 24279 } 24280 return match; 24281 }, 24282 PSEUDO: function(match) { 24283 var excess, unquoted = !match[6] && match[2]; 24284 if (matchExpr.CHILD.test(match[0])) { 24285 return null; 24286 } 24287 if (match[3]) { 24288 match[2] = match[4] || match[5] || ""; 24289 } else if (unquoted && rpseudo.test(unquoted) && // Get excess from tokenize (recursively) 24290 (excess = tokenize(unquoted, true)) && // advance to the next closing parenthesis 24291 (excess = unquoted.indexOf(")", unquoted.length - excess) - unquoted.length)) { 24292 match[0] = match[0].slice(0, excess); 24293 match[2] = unquoted.slice(0, excess); 24294 } 24295 return match.slice(0, 3); 24296 } 24297 }, 24298 filter: { 24299 TAG: function(nodeNameSelector) { 24300 var expectedNodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase(); 24301 return nodeNameSelector === "*" ? function() { 24302 return true; 24303 } : function(elem) { 24304 return nodeName(elem, expectedNodeName); 24305 }; 24306 }, 24307 CLASS: function(className) { 24308 var pattern = classCache[className + " "]; 24309 return pattern || (pattern = new RegExp("(^|" + whitespace + ")" + className + "(" + whitespace + "|$)")) && classCache(className, function(elem) { 24310 return pattern.test( 24311 typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" 24312 ); 24313 }); 24314 }, 24315 ATTR: function(name, operator, check) { 24316 return function(elem) { 24317 var result = find.attr(elem, name); 24318 if (result == null) { 24319 return operator === "!="; 24320 } 24321 if (!operator) { 24322 return true; 24323 } 24324 result += ""; 24325 if (operator === "=") { 24326 return result === check; 24327 } 24328 if (operator === "!=") { 24329 return result !== check; 24330 } 24331 if (operator === "^=") { 24332 return check && result.indexOf(check) === 0; 24333 } 24334 if (operator === "*=") { 24335 return check && result.indexOf(check) > -1; 24336 } 24337 if (operator === "$=") { 24338 return check && result.slice(-check.length) === check; 24339 } 24340 if (operator === "~=") { 24341 return (" " + result.replace(rwhitespace, " ") + " ").indexOf(check) > -1; 24342 } 24343 if (operator === "|=") { 24344 return result === check || result.slice(0, check.length + 1) === check + "-"; 24345 } 24346 return false; 24347 }; 24348 }, 24349 CHILD: function(type, what, _argument, first, last) { 24350 var simple = type.slice(0, 3) !== "nth", forward = type.slice(-4) !== "last", ofType = what === "of-type"; 24351 return first === 1 && last === 0 ? ( 24352 // Shortcut for :nth-*(n) 24353 function(elem) { 24354 return !!elem.parentNode; 24355 } 24356 ) : function(elem, _context5, xml) { 24357 var cache, outerCache, node, nodeIndex, start, dir2 = simple !== forward ? "nextSibling" : "previousSibling", parent = elem.parentNode, name = ofType && elem.nodeName.toLowerCase(), useCache = !xml && !ofType, diff = false; 24358 if (parent) { 24359 if (simple) { 24360 while (dir2) { 24361 node = elem; 24362 while (node = node[dir2]) { 24363 if (ofType ? nodeName(node, name) : node.nodeType === 1) { 24364 return false; 24365 } 24366 } 24367 start = dir2 = type === "only" && !start && "nextSibling"; 24368 } 24369 return true; 24370 } 24371 start = [forward ? parent.firstChild : parent.lastChild]; 24372 if (forward && useCache) { 24373 outerCache = parent[expando] || (parent[expando] = {}); 24374 cache = outerCache[type] || []; 24375 nodeIndex = cache[0] === dirruns && cache[1]; 24376 diff = nodeIndex && cache[2]; 24377 node = nodeIndex && parent.childNodes[nodeIndex]; 24378 while (node = ++nodeIndex && node && node[dir2] || // Fallback to seeking `elem` from the start 24379 (diff = nodeIndex = 0) || start.pop()) { 24380 if (node.nodeType === 1 && ++diff && node === elem) { 24381 outerCache[type] = [dirruns, nodeIndex, diff]; 24382 break; 24383 } 24384 } 24385 } else { 24386 if (useCache) { 24387 outerCache = elem[expando] || (elem[expando] = {}); 24388 cache = outerCache[type] || []; 24389 nodeIndex = cache[0] === dirruns && cache[1]; 24390 diff = nodeIndex; 24391 } 24392 if (diff === false) { 24393 while (node = ++nodeIndex && node && node[dir2] || (diff = nodeIndex = 0) || start.pop()) { 24394 if ((ofType ? nodeName(node, name) : node.nodeType === 1) && ++diff) { 24395 if (useCache) { 24396 outerCache = node[expando] || (node[expando] = {}); 24397 outerCache[type] = [dirruns, diff]; 24398 } 24399 if (node === elem) { 24400 break; 24401 } 24402 } 24403 } 24404 } 24405 } 24406 diff -= last; 24407 return diff === first || diff % first === 0 && diff / first >= 0; 24408 } 24409 }; 24410 }, 24411 PSEUDO: function(pseudo, argument) { 24412 var args, fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || find.error("unsupported pseudo: " + pseudo); 24413 if (fn[expando]) { 24414 return fn(argument); 24415 } 24416 if (fn.length > 1) { 24417 args = [pseudo, pseudo, "", argument]; 24418 return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function(seed, matches2) { 24419 var idx, matched = fn(seed, argument), i11 = matched.length; 24420 while (i11--) { 24421 idx = indexOf.call(seed, matched[i11]); 24422 seed[idx] = !(matches2[idx] = matched[i11]); 24423 } 24424 }) : function(elem) { 24425 return fn(elem, 0, args); 24426 }; 24427 } 24428 return fn; 24429 } 24430 }, 24431 pseudos: { 24432 // Potentially complex pseudos 24433 not: markFunction(function(selector3) { 24434 var input = [], results = [], matcher = compile(selector3.replace(rtrimCSS, "$1")); 24435 return matcher[expando] ? markFunction(function(seed, matches2, _context5, xml) { 24436 var elem, unmatched = matcher(seed, null, xml, []), i11 = seed.length; 24437 while (i11--) { 24438 if (elem = unmatched[i11]) { 24439 seed[i11] = !(matches2[i11] = elem); 24440 } 24441 } 24442 }) : function(elem, _context5, xml) { 24443 input[0] = elem; 24444 matcher(input, null, xml, results); 24445 input[0] = null; 24446 return !results.pop(); 24447 }; 24448 }), 24449 has: markFunction(function(selector3) { 24450 return function(elem) { 24451 return find(selector3, elem).length > 0; 24452 }; 24453 }), 24454 contains: markFunction(function(text) { 24455 text = text.replace(runescape, funescape); 24456 return function(elem) { 24457 return (elem.textContent || jQuery2.text(elem)).indexOf(text) > -1; 24458 }; 24459 }), 24460 // "Whether an element is represented by a :lang() selector 24461 // is based solely on the element's language value 24462 // being equal to the identifier C, 24463 // or beginning with the identifier C immediately followed by "-". 24464 // The matching of C against the element's language value is performed case-insensitively. 24465 // The identifier C does not have to be a valid language name." 24466 // https://www.w3.org/TR/selectors/#lang-pseudo 24467 lang: markFunction(function(lang) { 24468 if (!ridentifier.test(lang || "")) { 24469 find.error("unsupported lang: " + lang); 24470 } 24471 lang = lang.replace(runescape, funescape).toLowerCase(); 24472 return function(elem) { 24473 var elemLang; 24474 do { 24475 if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute("xml:lang") || elem.getAttribute("lang")) { 24476 elemLang = elemLang.toLowerCase(); 24477 return elemLang === lang || elemLang.indexOf(lang + "-") === 0; 24478 } 24479 } while ((elem = elem.parentNode) && elem.nodeType === 1); 24480 return false; 24481 }; 24482 }), 24483 // Miscellaneous 24484 target: function(elem) { 24485 var hash = window2.location && window2.location.hash; 24486 return hash && hash.slice(1) === elem.id; 24487 }, 24488 root: function(elem) { 24489 return elem === documentElement2; 24490 }, 24491 focus: function(elem) { 24492 return elem === safeActiveElement() && document3.hasFocus() && !!(elem.type || elem.href || ~elem.tabIndex); 24493 }, 24494 // Boolean properties 24495 enabled: createDisabledPseudo(false), 24496 disabled: createDisabledPseudo(true), 24497 checked: function(elem) { 24498 return nodeName(elem, "input") && !!elem.checked || nodeName(elem, "option") && !!elem.selected; 24499 }, 24500 selected: function(elem) { 24501 if (elem.parentNode) { 24502 elem.parentNode.selectedIndex; 24503 } 24504 return elem.selected === true; 24505 }, 24506 // Contents 24507 empty: function(elem) { 24508 for (elem = elem.firstChild; elem; elem = elem.nextSibling) { 24509 if (elem.nodeType < 6) { 24510 return false; 24511 } 24512 } 24513 return true; 24514 }, 24515 parent: function(elem) { 24516 return !Expr.pseudos.empty(elem); 24517 }, 24518 // Element/input types 24519 header: function(elem) { 24520 return rheader.test(elem.nodeName); 24521 }, 24522 input: function(elem) { 24523 return rinputs.test(elem.nodeName); 24524 }, 24525 button: function(elem) { 24526 return nodeName(elem, "input") && elem.type === "button" || nodeName(elem, "button"); 24527 }, 24528 text: function(elem) { 24529 var attr; 24530 return nodeName(elem, "input") && elem.type === "text" && // Support: IE <10 only 24531 // New HTML5 attribute values (e.g., "search") appear 24532 // with elem.type === "text" 24533 ((attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text"); 24534 }, 24535 // Position-in-collection 24536 first: createPositionalPseudo(function() { 24537 return [0]; 24538 }), 24539 last: createPositionalPseudo(function(_matchIndexes, length) { 24540 return [length - 1]; 24541 }), 24542 eq: createPositionalPseudo(function(_matchIndexes, length, argument) { 24543 return [argument < 0 ? argument + length : argument]; 24544 }), 24545 even: createPositionalPseudo(function(matchIndexes, length) { 24546 var i11 = 0; 24547 for (; i11 < length; i11 += 2) { 24548 matchIndexes.push(i11); 24549 } 24550 return matchIndexes; 24551 }), 24552 odd: createPositionalPseudo(function(matchIndexes, length) { 24553 var i11 = 1; 24554 for (; i11 < length; i11 += 2) { 24555 matchIndexes.push(i11); 24556 } 24557 return matchIndexes; 24558 }), 24559 lt: createPositionalPseudo(function(matchIndexes, length, argument) { 24560 var i11; 24561 if (argument < 0) { 24562 i11 = argument + length; 24563 } else if (argument > length) { 24564 i11 = length; 24565 } else { 24566 i11 = argument; 24567 } 24568 for (; --i11 >= 0; ) { 24569 matchIndexes.push(i11); 24570 } 24571 return matchIndexes; 24572 }), 24573 gt: createPositionalPseudo(function(matchIndexes, length, argument) { 24574 var i11 = argument < 0 ? argument + length : argument; 24575 for (; ++i11 < length; ) { 24576 matchIndexes.push(i11); 24577 } 24578 return matchIndexes; 24579 }) 24580 } 24581 }; 24582 Expr.pseudos.nth = Expr.pseudos.eq; 24583 for (i10 in { radio: true, checkbox: true, file: true, password: true, image: true }) { 24584 Expr.pseudos[i10] = createInputPseudo(i10); 24585 } 24586 for (i10 in { submit: true, reset: true }) { 24587 Expr.pseudos[i10] = createButtonPseudo(i10); 24588 } 24589 function setFilters() { 24590 } 24591 setFilters.prototype = Expr.filters = Expr.pseudos; 24592 Expr.setFilters = new setFilters(); 24593 function tokenize(selector3, parseOnly) { 24594 var matched, match, tokens, type, soFar, groups, preFilters, cached = tokenCache[selector3 + " "]; 24595 if (cached) { 24596 return parseOnly ? 0 : cached.slice(0); 24597 } 24598 soFar = selector3; 24599 groups = []; 24600 preFilters = Expr.preFilter; 24601 while (soFar) { 24602 if (!matched || (match = rcomma.exec(soFar))) { 24603 if (match) { 24604 soFar = soFar.slice(match[0].length) || soFar; 24605 } 24606 groups.push(tokens = []); 24607 } 24608 matched = false; 24609 if (match = rleadingCombinator.exec(soFar)) { 24610 matched = match.shift(); 24611 tokens.push({ 24612 value: matched, 24613 // Cast descendant combinators to space 24614 type: match[0].replace(rtrimCSS, " ") 24615 }); 24616 soFar = soFar.slice(matched.length); 24617 } 24618 for (type in Expr.filter) { 24619 if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) { 24620 matched = match.shift(); 24621 tokens.push({ 24622 value: matched, 24623 type, 24624 matches: match 24625 }); 24626 soFar = soFar.slice(matched.length); 24627 } 24628 } 24629 if (!matched) { 24630 break; 24631 } 24632 } 24633 if (parseOnly) { 24634 return soFar.length; 24635 } 24636 return soFar ? find.error(selector3) : ( 24637 // Cache the tokens 24638 tokenCache(selector3, groups).slice(0) 24639 ); 24640 } 24641 function toSelector(tokens) { 24642 var i11 = 0, len = tokens.length, selector3 = ""; 24643 for (; i11 < len; i11++) { 24644 selector3 += tokens[i11].value; 24645 } 24646 return selector3; 24647 } 24648 function addCombinator(matcher, combinator, base) { 24649 var dir2 = combinator.dir, skip = combinator.next, key = skip || dir2, checkNonElements = base && key === "parentNode", doneName = done++; 24650 return combinator.first ? ( 24651 // Check against closest ancestor/preceding element 24652 function(elem, context3, xml) { 24653 while (elem = elem[dir2]) { 24654 if (elem.nodeType === 1 || checkNonElements) { 24655 return matcher(elem, context3, xml); 24656 } 24657 } 24658 return false; 24659 } 24660 ) : ( 24661 // Check against all ancestor/preceding elements 24662 function(elem, context3, xml) { 24663 var oldCache, outerCache, newCache = [dirruns, doneName]; 24664 if (xml) { 24665 while (elem = elem[dir2]) { 24666 if (elem.nodeType === 1 || checkNonElements) { 24667 if (matcher(elem, context3, xml)) { 24668 return true; 24669 } 24670 } 24671 } 24672 } else { 24673 while (elem = elem[dir2]) { 24674 if (elem.nodeType === 1 || checkNonElements) { 24675 outerCache = elem[expando] || (elem[expando] = {}); 24676 if (skip && nodeName(elem, skip)) { 24677 elem = elem[dir2] || elem; 24678 } else if ((oldCache = outerCache[key]) && oldCache[0] === dirruns && oldCache[1] === doneName) { 24679 return newCache[2] = oldCache[2]; 24680 } else { 24681 outerCache[key] = newCache; 24682 if (newCache[2] = matcher(elem, context3, xml)) { 24683 return true; 24684 } 24685 } 24686 } 24687 } 24688 } 24689 return false; 24690 } 24691 ); 24692 } 24693 function elementMatcher(matchers) { 24694 return matchers.length > 1 ? function(elem, context3, xml) { 24695 var i11 = matchers.length; 24696 while (i11--) { 24697 if (!matchers[i11](elem, context3, xml)) { 24698 return false; 24699 } 24700 } 24701 return true; 24702 } : matchers[0]; 24703 } 24704 function multipleContexts(selector3, contexts, results) { 24705 var i11 = 0, len = contexts.length; 24706 for (; i11 < len; i11++) { 24707 find(selector3, contexts[i11], results); 24708 } 24709 return results; 24710 } 24711 function condense(unmatched, map, filter, context3, xml) { 24712 var elem, newUnmatched = [], i11 = 0, len = unmatched.length, mapped = map != null; 24713 for (; i11 < len; i11++) { 24714 if (elem = unmatched[i11]) { 24715 if (!filter || filter(elem, context3, xml)) { 24716 newUnmatched.push(elem); 24717 if (mapped) { 24718 map.push(i11); 24719 } 24720 } 24721 } 24722 } 24723 return newUnmatched; 24724 } 24725 function setMatcher(preFilter, selector3, matcher, postFilter, postFinder, postSelector) { 24726 if (postFilter && !postFilter[expando]) { 24727 postFilter = setMatcher(postFilter); 24728 } 24729 if (postFinder && !postFinder[expando]) { 24730 postFinder = setMatcher(postFinder, postSelector); 24731 } 24732 return markFunction(function(seed, results, context3, xml) { 24733 var temp, i11, elem, matcherOut, preMap = [], postMap = [], preexisting = results.length, elems = seed || multipleContexts( 24734 selector3 || "*", 24735 context3.nodeType ? [context3] : context3, 24736 [] 24737 ), matcherIn = preFilter && (seed || !selector3) ? condense(elems, preMap, preFilter, context3, xml) : elems; 24738 if (matcher) { 24739 matcherOut = postFinder || (seed ? preFilter : preexisting || postFilter) ? ( 24740 // ...intermediate processing is necessary 24741 [] 24742 ) : ( 24743 // ...otherwise use results directly 24744 results 24745 ); 24746 matcher(matcherIn, matcherOut, context3, xml); 24747 } else { 24748 matcherOut = matcherIn; 24749 } 24750 if (postFilter) { 24751 temp = condense(matcherOut, postMap); 24752 postFilter(temp, [], context3, xml); 24753 i11 = temp.length; 24754 while (i11--) { 24755 if (elem = temp[i11]) { 24756 matcherOut[postMap[i11]] = !(matcherIn[postMap[i11]] = elem); 24757 } 24758 } 24759 } 24760 if (seed) { 24761 if (postFinder || preFilter) { 24762 if (postFinder) { 24763 temp = []; 24764 i11 = matcherOut.length; 24765 while (i11--) { 24766 if (elem = matcherOut[i11]) { 24767 temp.push(matcherIn[i11] = elem); 24768 } 24769 } 24770 postFinder(null, matcherOut = [], temp, xml); 24771 } 24772 i11 = matcherOut.length; 24773 while (i11--) { 24774 if ((elem = matcherOut[i11]) && (temp = postFinder ? indexOf.call(seed, elem) : preMap[i11]) > -1) { 24775 seed[temp] = !(results[temp] = elem); 24776 } 24777 } 24778 } 24779 } else { 24780 matcherOut = condense( 24781 matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut 24782 ); 24783 if (postFinder) { 24784 postFinder(null, results, matcherOut, xml); 24785 } else { 24786 push2.apply(results, matcherOut); 24787 } 24788 } 24789 }); 24790 } 24791 function matcherFromTokens(tokens) { 24792 var checkContext, matcher, j2, len = tokens.length, leadingRelative = Expr.relative[tokens[0].type], implicitRelative = leadingRelative || Expr.relative[" "], i11 = leadingRelative ? 1 : 0, matchContext = addCombinator(function(elem) { 24793 return elem === checkContext; 24794 }, implicitRelative, true), matchAnyContext = addCombinator(function(elem) { 24795 return indexOf.call(checkContext, elem) > -1; 24796 }, implicitRelative, true), matchers = [function(elem, context3, xml) { 24797 var ret = !leadingRelative && (xml || context3 != outermostContext) || ((checkContext = context3).nodeType ? matchContext(elem, context3, xml) : matchAnyContext(elem, context3, xml)); 24798 checkContext = null; 24799 return ret; 24800 }]; 24801 for (; i11 < len; i11++) { 24802 if (matcher = Expr.relative[tokens[i11].type]) { 24803 matchers = [addCombinator(elementMatcher(matchers), matcher)]; 24804 } else { 24805 matcher = Expr.filter[tokens[i11].type].apply(null, tokens[i11].matches); 24806 if (matcher[expando]) { 24807 j2 = ++i11; 24808 for (; j2 < len; j2++) { 24809 if (Expr.relative[tokens[j2].type]) { 24810 break; 24811 } 24812 } 24813 return setMatcher( 24814 i11 > 1 && elementMatcher(matchers), 24815 i11 > 1 && toSelector( 24816 // If the preceding token was a descendant combinator, insert an implicit any-element `*` 24817 tokens.slice(0, i11 - 1).concat({ value: tokens[i11 - 2].type === " " ? "*" : "" }) 24818 ).replace(rtrimCSS, "$1"), 24819 matcher, 24820 i11 < j2 && matcherFromTokens(tokens.slice(i11, j2)), 24821 j2 < len && matcherFromTokens(tokens = tokens.slice(j2)), 24822 j2 < len && toSelector(tokens) 24823 ); 24824 } 24825 matchers.push(matcher); 24826 } 24827 } 24828 return elementMatcher(matchers); 24829 } 24830 function matcherFromGroupMatchers(elementMatchers, setMatchers) { 24831 var bySet = setMatchers.length > 0, byElement = elementMatchers.length > 0, superMatcher = function(seed, context3, xml, results, outermost) { 24832 var elem, j2, matcher, matchedCount = 0, i11 = "0", unmatched = seed && [], setMatched = [], contextBackup = outermostContext, elems = seed || byElement && Expr.find.TAG("*", outermost), dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1, len = elems.length; 24833 if (outermost) { 24834 outermostContext = context3 == document3 || context3 || outermost; 24835 } 24836 for (; i11 !== len && (elem = elems[i11]) != null; i11++) { 24837 if (byElement && elem) { 24838 j2 = 0; 24839 if (!context3 && elem.ownerDocument != document3) { 24840 setDocument(elem); 24841 xml = !documentIsHTML; 24842 } 24843 while (matcher = elementMatchers[j2++]) { 24844 if (matcher(elem, context3 || document3, xml)) { 24845 push2.call(results, elem); 24846 break; 24847 } 24848 } 24849 if (outermost) { 24850 dirruns = dirrunsUnique; 24851 } 24852 } 24853 if (bySet) { 24854 if (elem = !matcher && elem) { 24855 matchedCount--; 24856 } 24857 if (seed) { 24858 unmatched.push(elem); 24859 } 24860 } 24861 } 24862 matchedCount += i11; 24863 if (bySet && i11 !== matchedCount) { 24864 j2 = 0; 24865 while (matcher = setMatchers[j2++]) { 24866 matcher(unmatched, setMatched, context3, xml); 24867 } 24868 if (seed) { 24869 if (matchedCount > 0) { 24870 while (i11--) { 24871 if (!(unmatched[i11] || setMatched[i11])) { 24872 setMatched[i11] = pop.call(results); 24873 } 24874 } 24875 } 24876 setMatched = condense(setMatched); 24877 } 24878 push2.apply(results, setMatched); 24879 if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) { 24880 jQuery2.uniqueSort(results); 24881 } 24882 } 24883 if (outermost) { 24884 dirruns = dirrunsUnique; 24885 outermostContext = contextBackup; 24886 } 24887 return unmatched; 24888 }; 24889 return bySet ? markFunction(superMatcher) : superMatcher; 24890 } 24891 function compile(selector3, match) { 24892 var i11, setMatchers = [], elementMatchers = [], cached = compilerCache[selector3 + " "]; 24893 if (!cached) { 24894 if (!match) { 24895 match = tokenize(selector3); 24896 } 24897 i11 = match.length; 24898 while (i11--) { 24899 cached = matcherFromTokens(match[i11]); 24900 if (cached[expando]) { 24901 setMatchers.push(cached); 24902 } else { 24903 elementMatchers.push(cached); 24904 } 24905 } 24906 cached = compilerCache( 24907 selector3, 24908 matcherFromGroupMatchers(elementMatchers, setMatchers) 24909 ); 24910 cached.selector = selector3; 24911 } 24912 return cached; 24913 } 24914 function select2(selector3, context3, results, seed) { 24915 var i11, tokens, token, type, find2, compiled = typeof selector3 === "function" && selector3, match = !seed && tokenize(selector3 = compiled.selector || selector3); 24916 results = results || []; 24917 if (match.length === 1) { 24918 tokens = match[0] = match[0].slice(0); 24919 if (tokens.length > 2 && (token = tokens[0]).type === "ID" && context3.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) { 24920 context3 = (Expr.find.ID( 24921 token.matches[0].replace(runescape, funescape), 24922 context3 24923 ) || [])[0]; 24924 if (!context3) { 24925 return results; 24926 } else if (compiled) { 24927 context3 = context3.parentNode; 24928 } 24929 selector3 = selector3.slice(tokens.shift().value.length); 24930 } 24931 i11 = matchExpr.needsContext.test(selector3) ? 0 : tokens.length; 24932 while (i11--) { 24933 token = tokens[i11]; 24934 if (Expr.relative[type = token.type]) { 24935 break; 24936 } 24937 if (find2 = Expr.find[type]) { 24938 if (seed = find2( 24939 token.matches[0].replace(runescape, funescape), 24940 rsibling.test(tokens[0].type) && testContext(context3.parentNode) || context3 24941 )) { 24942 tokens.splice(i11, 1); 24943 selector3 = seed.length && toSelector(tokens); 24944 if (!selector3) { 24945 push2.apply(results, seed); 24946 return results; 24947 } 24948 break; 24949 } 24950 } 24951 } 24952 } 24953 (compiled || compile(selector3, match))( 24954 seed, 24955 context3, 24956 !documentIsHTML, 24957 results, 24958 !context3 || rsibling.test(selector3) && testContext(context3.parentNode) || context3 24959 ); 24960 return results; 24961 } 24962 support.sortStable = expando.split("").sort(sortOrder).join("") === expando; 24963 setDocument(); 24964 support.sortDetached = assert(function(el) { 24965 return el.compareDocumentPosition(document3.createElement("fieldset")) & 1; 24966 }); 24967 jQuery2.find = find; 24968 jQuery2.expr[":"] = jQuery2.expr.pseudos; 24969 jQuery2.unique = jQuery2.uniqueSort; 24970 find.compile = compile; 24971 find.select = select2; 24972 find.setDocument = setDocument; 24973 find.tokenize = tokenize; 24974 find.escape = jQuery2.escapeSelector; 24975 find.getText = jQuery2.text; 24976 find.isXML = jQuery2.isXMLDoc; 24977 find.selectors = jQuery2.expr; 24978 find.support = jQuery2.support; 24979 find.uniqueSort = jQuery2.uniqueSort; 24980 })(); 24981 var dir = function(elem, dir2, until) { 24982 var matched = [], truncate = until !== void 0; 24983 while ((elem = elem[dir2]) && elem.nodeType !== 9) { 24984 if (elem.nodeType === 1) { 24985 if (truncate && jQuery2(elem).is(until)) { 24986 break; 24987 } 24988 matched.push(elem); 24989 } 24990 } 24991 return matched; 24992 }; 24993 var siblings = function(n10, elem) { 24994 var matched = []; 24995 for (; n10; n10 = n10.nextSibling) { 24996 if (n10.nodeType === 1 && n10 !== elem) { 24997 matched.push(n10); 24998 } 24999 } 25000 return matched; 25001 }; 25002 var rneedsContext = jQuery2.expr.match.needsContext; 25003 var rsingleTag = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; 25004 function winnow(elements, qualifier, not) { 25005 if (isFunction(qualifier)) { 25006 return jQuery2.grep(elements, function(elem, i10) { 25007 return !!qualifier.call(elem, i10, elem) !== not; 25008 }); 25009 } 25010 if (qualifier.nodeType) { 25011 return jQuery2.grep(elements, function(elem) { 25012 return elem === qualifier !== not; 25013 }); 25014 } 25015 if (typeof qualifier !== "string") { 25016 return jQuery2.grep(elements, function(elem) { 25017 return indexOf.call(qualifier, elem) > -1 !== not; 25018 }); 25019 } 25020 return jQuery2.filter(qualifier, elements, not); 25021 } 25022 jQuery2.filter = function(expr, elems, not) { 25023 var elem = elems[0]; 25024 if (not) { 25025 expr = ":not(" + expr + ")"; 25026 } 25027 if (elems.length === 1 && elem.nodeType === 1) { 25028 return jQuery2.find.matchesSelector(elem, expr) ? [elem] : []; 25029 } 25030 return jQuery2.find.matches(expr, jQuery2.grep(elems, function(elem2) { 25031 return elem2.nodeType === 1; 25032 })); 25033 }; 25034 jQuery2.fn.extend({ 25035 find: function(selector3) { 25036 var i10, ret, len = this.length, self2 = this; 25037 if (typeof selector3 !== "string") { 25038 return this.pushStack(jQuery2(selector3).filter(function() { 25039 for (i10 = 0; i10 < len; i10++) { 25040 if (jQuery2.contains(self2[i10], this)) { 25041 return true; 25042 } 25043 } 25044 })); 25045 } 25046 ret = this.pushStack([]); 25047 for (i10 = 0; i10 < len; i10++) { 25048 jQuery2.find(selector3, self2[i10], ret); 25049 } 25050 return len > 1 ? jQuery2.uniqueSort(ret) : ret; 25051 }, 25052 filter: function(selector3) { 25053 return this.pushStack(winnow(this, selector3 || [], false)); 25054 }, 25055 not: function(selector3) { 25056 return this.pushStack(winnow(this, selector3 || [], true)); 25057 }, 25058 is: function(selector3) { 25059 return !!winnow( 25060 this, 25061 // If this is a positional/relative selector, check membership in the returned set 25062 // so $("p:first").is("p:last") won't return true for a doc with two "p". 25063 typeof selector3 === "string" && rneedsContext.test(selector3) ? jQuery2(selector3) : selector3 || [], 25064 false 25065 ).length; 25066 } 25067 }); 25068 var rootjQuery, rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, init5 = jQuery2.fn.init = function(selector3, context3, root) { 25069 var match, elem; 25070 if (!selector3) { 25071 return this; 25072 } 25073 root = root || rootjQuery; 25074 if (typeof selector3 === "string") { 25075 if (selector3[0] === "<" && selector3[selector3.length - 1] === ">" && selector3.length >= 3) { 25076 match = [null, selector3, null]; 25077 } else { 25078 match = rquickExpr.exec(selector3); 25079 } 25080 if (match && (match[1] || !context3)) { 25081 if (match[1]) { 25082 context3 = context3 instanceof jQuery2 ? context3[0] : context3; 25083 jQuery2.merge(this, jQuery2.parseHTML( 25084 match[1], 25085 context3 && context3.nodeType ? context3.ownerDocument || context3 : document2, 25086 true 25087 )); 25088 if (rsingleTag.test(match[1]) && jQuery2.isPlainObject(context3)) { 25089 for (match in context3) { 25090 if (isFunction(this[match])) { 25091 this[match](context3[match]); 25092 } else { 25093 this.attr(match, context3[match]); 25094 } 25095 } 25096 } 25097 return this; 25098 } else { 25099 elem = document2.getElementById(match[2]); 25100 if (elem) { 25101 this[0] = elem; 25102 this.length = 1; 25103 } 25104 return this; 25105 } 25106 } else if (!context3 || context3.jquery) { 25107 return (context3 || root).find(selector3); 25108 } else { 25109 return this.constructor(context3).find(selector3); 25110 } 25111 } else if (selector3.nodeType) { 25112 this[0] = selector3; 25113 this.length = 1; 25114 return this; 25115 } else if (isFunction(selector3)) { 25116 return root.ready !== void 0 ? root.ready(selector3) : ( 25117 // Execute immediately if ready is not present 25118 selector3(jQuery2) 25119 ); 25120 } 25121 return jQuery2.makeArray(selector3, this); 25122 }; 25123 init5.prototype = jQuery2.fn; 25124 rootjQuery = jQuery2(document2); 25125 var rparentsprev = /^(?:parents|prev(?:Until|All))/, guaranteedUnique = { 25126 children: true, 25127 contents: true, 25128 next: true, 25129 prev: true 25130 }; 25131 jQuery2.fn.extend({ 25132 has: function(target) { 25133 var targets = jQuery2(target, this), l10 = targets.length; 25134 return this.filter(function() { 25135 var i10 = 0; 25136 for (; i10 < l10; i10++) { 25137 if (jQuery2.contains(this, targets[i10])) { 25138 return true; 25139 } 25140 } 25141 }); 25142 }, 25143 closest: function(selectors, context3) { 25144 var cur, i10 = 0, l10 = this.length, matched = [], targets = typeof selectors !== "string" && jQuery2(selectors); 25145 if (!rneedsContext.test(selectors)) { 25146 for (; i10 < l10; i10++) { 25147 for (cur = this[i10]; cur && cur !== context3; cur = cur.parentNode) { 25148 if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 : ( 25149 // Don't pass non-elements to jQuery#find 25150 cur.nodeType === 1 && jQuery2.find.matchesSelector(cur, selectors) 25151 ))) { 25152 matched.push(cur); 25153 break; 25154 } 25155 } 25156 } 25157 } 25158 return this.pushStack(matched.length > 1 ? jQuery2.uniqueSort(matched) : matched); 25159 }, 25160 // Determine the position of an element within the set 25161 index: function(elem) { 25162 if (!elem) { 25163 return this[0] && this[0].parentNode ? this.first().prevAll().length : -1; 25164 } 25165 if (typeof elem === "string") { 25166 return indexOf.call(jQuery2(elem), this[0]); 25167 } 25168 return indexOf.call( 25169 this, 25170 // If it receives a jQuery object, the first element is used 25171 elem.jquery ? elem[0] : elem 25172 ); 25173 }, 25174 add: function(selector3, context3) { 25175 return this.pushStack( 25176 jQuery2.uniqueSort( 25177 jQuery2.merge(this.get(), jQuery2(selector3, context3)) 25178 ) 25179 ); 25180 }, 25181 addBack: function(selector3) { 25182 return this.add( 25183 selector3 == null ? this.prevObject : this.prevObject.filter(selector3) 25184 ); 25185 } 25186 }); 25187 function sibling(cur, dir2) { 25188 while ((cur = cur[dir2]) && cur.nodeType !== 1) { 25189 } 25190 return cur; 25191 } 25192 jQuery2.each({ 25193 parent: function(elem) { 25194 var parent = elem.parentNode; 25195 return parent && parent.nodeType !== 11 ? parent : null; 25196 }, 25197 parents: function(elem) { 25198 return dir(elem, "parentNode"); 25199 }, 25200 parentsUntil: function(elem, _i2, until) { 25201 return dir(elem, "parentNode", until); 25202 }, 25203 next: function(elem) { 25204 return sibling(elem, "nextSibling"); 25205 }, 25206 prev: function(elem) { 25207 return sibling(elem, "previousSibling"); 25208 }, 25209 nextAll: function(elem) { 25210 return dir(elem, "nextSibling"); 25211 }, 25212 prevAll: function(elem) { 25213 return dir(elem, "previousSibling"); 25214 }, 25215 nextUntil: function(elem, _i2, until) { 25216 return dir(elem, "nextSibling", until); 25217 }, 25218 prevUntil: function(elem, _i2, until) { 25219 return dir(elem, "previousSibling", until); 25220 }, 25221 siblings: function(elem) { 25222 return siblings((elem.parentNode || {}).firstChild, elem); 25223 }, 25224 children: function(elem) { 25225 return siblings(elem.firstChild); 25226 }, 25227 contents: function(elem) { 25228 if (elem.contentDocument != null && // Support: IE 11+ 25229 // <object> elements with no `data` attribute has an object 25230 // `contentDocument` with a `null` prototype. 25231 getProto(elem.contentDocument)) { 25232 return elem.contentDocument; 25233 } 25234 if (nodeName(elem, "template")) { 25235 elem = elem.content || elem; 25236 } 25237 return jQuery2.merge([], elem.childNodes); 25238 } 25239 }, function(name, fn) { 25240 jQuery2.fn[name] = function(until, selector3) { 25241 var matched = jQuery2.map(this, fn, until); 25242 if (name.slice(-5) !== "Until") { 25243 selector3 = until; 25244 } 25245 if (selector3 && typeof selector3 === "string") { 25246 matched = jQuery2.filter(selector3, matched); 25247 } 25248 if (this.length > 1) { 25249 if (!guaranteedUnique[name]) { 25250 jQuery2.uniqueSort(matched); 25251 } 25252 if (rparentsprev.test(name)) { 25253 matched.reverse(); 25254 } 25255 } 25256 return this.pushStack(matched); 25257 }; 25258 }); 25259 var rnothtmlwhite = /[^\x20\t\r\n\f]+/g; 25260 function createOptions(options) { 25261 var object = {}; 25262 jQuery2.each(options.match(rnothtmlwhite) || [], function(_2, flag) { 25263 object[flag] = true; 25264 }); 25265 return object; 25266 } 25267 jQuery2.Callbacks = function(options) { 25268 options = typeof options === "string" ? createOptions(options) : jQuery2.extend({}, options); 25269 var firing, memory, fired, locked, list = [], queue = [], firingIndex = -1, fire = function() { 25270 locked = locked || options.once; 25271 fired = firing = true; 25272 for (; queue.length; firingIndex = -1) { 25273 memory = queue.shift(); 25274 while (++firingIndex < list.length) { 25275 if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) { 25276 firingIndex = list.length; 25277 memory = false; 25278 } 25279 } 25280 } 25281 if (!options.memory) { 25282 memory = false; 25283 } 25284 firing = false; 25285 if (locked) { 25286 if (memory) { 25287 list = []; 25288 } else { 25289 list = ""; 25290 } 25291 } 25292 }, self2 = { 25293 // Add a callback or a collection of callbacks to the list 25294 add: function() { 25295 if (list) { 25296 if (memory && !firing) { 25297 firingIndex = list.length - 1; 25298 queue.push(memory); 25299 } 25300 (function add(args) { 25301 jQuery2.each(args, function(_2, arg) { 25302 if (isFunction(arg)) { 25303 if (!options.unique || !self2.has(arg)) { 25304 list.push(arg); 25305 } 25306 } else if (arg && arg.length && toType(arg) !== "string") { 25307 add(arg); 25308 } 25309 }); 25310 })(arguments); 25311 if (memory && !firing) { 25312 fire(); 25313 } 25314 } 25315 return this; 25316 }, 25317 // Remove a callback from the list 25318 remove: function() { 25319 jQuery2.each(arguments, function(_2, arg) { 25320 var index; 25321 while ((index = jQuery2.inArray(arg, list, index)) > -1) { 25322 list.splice(index, 1); 25323 if (index <= firingIndex) { 25324 firingIndex--; 25325 } 25326 } 25327 }); 25328 return this; 25329 }, 25330 // Check if a given callback is in the list. 25331 // If no argument is given, return whether or not list has callbacks attached. 25332 has: function(fn) { 25333 return fn ? jQuery2.inArray(fn, list) > -1 : list.length > 0; 25334 }, 25335 // Remove all callbacks from the list 25336 empty: function() { 25337 if (list) { 25338 list = []; 25339 } 25340 return this; 25341 }, 25342 // Disable .fire and .add 25343 // Abort any current/pending executions 25344 // Clear all callbacks and values 25345 disable: function() { 25346 locked = queue = []; 25347 list = memory = ""; 25348 return this; 25349 }, 25350 disabled: function() { 25351 return !list; 25352 }, 25353 // Disable .fire 25354 // Also disable .add unless we have memory (since it would have no effect) 25355 // Abort any pending executions 25356 lock: function() { 25357 locked = queue = []; 25358 if (!memory && !firing) { 25359 list = memory = ""; 25360 } 25361 return this; 25362 }, 25363 locked: function() { 25364 return !!locked; 25365 }, 25366 // Call all callbacks with the given context and arguments 25367 fireWith: function(context3, args) { 25368 if (!locked) { 25369 args = args || []; 25370 args = [context3, args.slice ? args.slice() : args]; 25371 queue.push(args); 25372 if (!firing) { 25373 fire(); 25374 } 25375 } 25376 return this; 25377 }, 25378 // Call all the callbacks with the given arguments 25379 fire: function() { 25380 self2.fireWith(this, arguments); 25381 return this; 25382 }, 25383 // To know if the callbacks have already been called at least once 25384 fired: function() { 25385 return !!fired; 25386 } 25387 }; 25388 return self2; 25389 }; 25390 function Identity(v3) { 25391 return v3; 25392 } 25393 function Thrower(ex) { 25394 throw ex; 25395 } 25396 function adoptValue(value, resolve, reject, noValue) { 25397 var method; 25398 try { 25399 if (value && isFunction(method = value.promise)) { 25400 method.call(value).done(resolve).fail(reject); 25401 } else if (value && isFunction(method = value.then)) { 25402 method.call(value, resolve, reject); 25403 } else { 25404 resolve.apply(void 0, [value].slice(noValue)); 25405 } 25406 } catch (value2) { 25407 reject.apply(void 0, [value2]); 25408 } 25409 } 25410 jQuery2.extend({ 25411 Deferred: function(func) { 25412 var tuples = [ 25413 // action, add listener, callbacks, 25414 // ... .then handlers, argument index, [final state] 25415 [ 25416 "notify", 25417 "progress", 25418 jQuery2.Callbacks("memory"), 25419 jQuery2.Callbacks("memory"), 25420 2 25421 ], 25422 [ 25423 "resolve", 25424 "done", 25425 jQuery2.Callbacks("once memory"), 25426 jQuery2.Callbacks("once memory"), 25427 0, 25428 "resolved" 25429 ], 25430 [ 25431 "reject", 25432 "fail", 25433 jQuery2.Callbacks("once memory"), 25434 jQuery2.Callbacks("once memory"), 25435 1, 25436 "rejected" 25437 ] 25438 ], state = "pending", promise = { 25439 state: function() { 25440 return state; 25441 }, 25442 always: function() { 25443 deferred.done(arguments).fail(arguments); 25444 return this; 25445 }, 25446 "catch": function(fn) { 25447 return promise.then(null, fn); 25448 }, 25449 // Keep pipe for back-compat 25450 pipe: function() { 25451 var fns = arguments; 25452 return jQuery2.Deferred(function(newDefer) { 25453 jQuery2.each(tuples, function(_i2, tuple) { 25454 var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]]; 25455 deferred[tuple[1]](function() { 25456 var returned = fn && fn.apply(this, arguments); 25457 if (returned && isFunction(returned.promise)) { 25458 returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject); 25459 } else { 25460 newDefer[tuple[0] + "With"]( 25461 this, 25462 fn ? [returned] : arguments 25463 ); 25464 } 25465 }); 25466 }); 25467 fns = null; 25468 }).promise(); 25469 }, 25470 then: function(onFulfilled, onRejected, onProgress) { 25471 var maxDepth = 0; 25472 function resolve(depth, deferred2, handler, special) { 25473 return function() { 25474 var that = this, args = arguments, mightThrow = function() { 25475 var returned, then; 25476 if (depth < maxDepth) { 25477 return; 25478 } 25479 returned = handler.apply(that, args); 25480 if (returned === deferred2.promise()) { 25481 throw new TypeError("Thenable self-resolution"); 25482 } 25483 then = returned && // Support: Promises/A+ section 2.3.4 25484 // https://promisesaplus.com/#point-64 25485 // Only check objects and functions for thenability 25486 (typeof returned === "object" || typeof returned === "function") && returned.then; 25487 if (isFunction(then)) { 25488 if (special) { 25489 then.call( 25490 returned, 25491 resolve(maxDepth, deferred2, Identity, special), 25492 resolve(maxDepth, deferred2, Thrower, special) 25493 ); 25494 } else { 25495 maxDepth++; 25496 then.call( 25497 returned, 25498 resolve(maxDepth, deferred2, Identity, special), 25499 resolve(maxDepth, deferred2, Thrower, special), 25500 resolve( 25501 maxDepth, 25502 deferred2, 25503 Identity, 25504 deferred2.notifyWith 25505 ) 25506 ); 25507 } 25508 } else { 25509 if (handler !== Identity) { 25510 that = void 0; 25511 args = [returned]; 25512 } 25513 (special || deferred2.resolveWith)(that, args); 25514 } 25515 }, process = special ? mightThrow : function() { 25516 try { 25517 mightThrow(); 25518 } catch (e11) { 25519 if (jQuery2.Deferred.exceptionHook) { 25520 jQuery2.Deferred.exceptionHook( 25521 e11, 25522 process.error 25523 ); 25524 } 25525 if (depth + 1 >= maxDepth) { 25526 if (handler !== Thrower) { 25527 that = void 0; 25528 args = [e11]; 25529 } 25530 deferred2.rejectWith(that, args); 25531 } 25532 } 25533 }; 25534 if (depth) { 25535 process(); 25536 } else { 25537 if (jQuery2.Deferred.getErrorHook) { 25538 process.error = jQuery2.Deferred.getErrorHook(); 25539 } else if (jQuery2.Deferred.getStackHook) { 25540 process.error = jQuery2.Deferred.getStackHook(); 25541 } 25542 window2.setTimeout(process); 25543 } 25544 }; 25545 } 25546 return jQuery2.Deferred(function(newDefer) { 25547 tuples[0][3].add( 25548 resolve( 25549 0, 25550 newDefer, 25551 isFunction(onProgress) ? onProgress : Identity, 25552 newDefer.notifyWith 25553 ) 25554 ); 25555 tuples[1][3].add( 25556 resolve( 25557 0, 25558 newDefer, 25559 isFunction(onFulfilled) ? onFulfilled : Identity 25560 ) 25561 ); 25562 tuples[2][3].add( 25563 resolve( 25564 0, 25565 newDefer, 25566 isFunction(onRejected) ? onRejected : Thrower 25567 ) 25568 ); 25569 }).promise(); 25570 }, 25571 // Get a promise for this deferred 25572 // If obj is provided, the promise aspect is added to the object 25573 promise: function(obj) { 25574 return obj != null ? jQuery2.extend(obj, promise) : promise; 25575 } 25576 }, deferred = {}; 25577 jQuery2.each(tuples, function(i10, tuple) { 25578 var list = tuple[2], stateString = tuple[5]; 25579 promise[tuple[1]] = list.add; 25580 if (stateString) { 25581 list.add( 25582 function() { 25583 state = stateString; 25584 }, 25585 // rejected_callbacks.disable 25586 // fulfilled_callbacks.disable 25587 tuples[3 - i10][2].disable, 25588 // rejected_handlers.disable 25589 // fulfilled_handlers.disable 25590 tuples[3 - i10][3].disable, 25591 // progress_callbacks.lock 25592 tuples[0][2].lock, 25593 // progress_handlers.lock 25594 tuples[0][3].lock 25595 ); 25596 } 25597 list.add(tuple[3].fire); 25598 deferred[tuple[0]] = function() { 25599 deferred[tuple[0] + "With"](this === deferred ? void 0 : this, arguments); 25600 return this; 25601 }; 25602 deferred[tuple[0] + "With"] = list.fireWith; 25603 }); 25604 promise.promise(deferred); 25605 if (func) { 25606 func.call(deferred, deferred); 25607 } 25608 return deferred; 25609 }, 25610 // Deferred helper 25611 when: function(singleValue) { 25612 var remaining = arguments.length, i10 = remaining, resolveContexts = Array(i10), resolveValues = slice.call(arguments), primary = jQuery2.Deferred(), updateFunc = function(i11) { 25613 return function(value) { 25614 resolveContexts[i11] = this; 25615 resolveValues[i11] = arguments.length > 1 ? slice.call(arguments) : value; 25616 if (!--remaining) { 25617 primary.resolveWith(resolveContexts, resolveValues); 25618 } 25619 }; 25620 }; 25621 if (remaining <= 1) { 25622 adoptValue( 25623 singleValue, 25624 primary.done(updateFunc(i10)).resolve, 25625 primary.reject, 25626 !remaining 25627 ); 25628 if (primary.state() === "pending" || isFunction(resolveValues[i10] && resolveValues[i10].then)) { 25629 return primary.then(); 25630 } 25631 } 25632 while (i10--) { 25633 adoptValue(resolveValues[i10], updateFunc(i10), primary.reject); 25634 } 25635 return primary.promise(); 25636 } 25637 }); 25638 var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; 25639 jQuery2.Deferred.exceptionHook = function(error, asyncError) { 25640 if (window2.console && window2.console.warn && error && rerrorNames.test(error.name)) { 25641 window2.console.warn( 25642 "jQuery.Deferred exception: " + error.message, 25643 error.stack, 25644 asyncError 25645 ); 25646 } 25647 }; 25648 jQuery2.readyException = function(error) { 25649 window2.setTimeout(function() { 25650 throw error; 25651 }); 25652 }; 25653 var readyList = jQuery2.Deferred(); 25654 jQuery2.fn.ready = function(fn) { 25655 readyList.then(fn).catch(function(error) { 25656 jQuery2.readyException(error); 25657 }); 25658 return this; 25659 }; 25660 jQuery2.extend({ 25661 // Is the DOM ready to be used? Set to true once it occurs. 25662 isReady: false, 25663 // A counter to track how many items to wait for before 25664 // the ready event fires. See trac-6781 25665 readyWait: 1, 25666 // Handle when the DOM is ready 25667 ready: function(wait2) { 25668 if (wait2 === true ? --jQuery2.readyWait : jQuery2.isReady) { 25669 return; 25670 } 25671 jQuery2.isReady = true; 25672 if (wait2 !== true && --jQuery2.readyWait > 0) { 25673 return; 25674 } 25675 readyList.resolveWith(document2, [jQuery2]); 25676 } 25677 }); 25678 jQuery2.ready.then = readyList.then; 25679 function completed() { 25680 document2.removeEventListener("DOMContentLoaded", completed); 25681 window2.removeEventListener("load", completed); 25682 jQuery2.ready(); 25683 } 25684 if (document2.readyState === "complete" || document2.readyState !== "loading" && !document2.documentElement.doScroll) { 25685 window2.setTimeout(jQuery2.ready); 25686 } else { 25687 document2.addEventListener("DOMContentLoaded", completed); 25688 window2.addEventListener("load", completed); 25689 } 25690 var access = function(elems, fn, key, value, chainable, emptyGet, raw) { 25691 var i10 = 0, len = elems.length, bulk = key == null; 25692 if (toType(key) === "object") { 25693 chainable = true; 25694 for (i10 in key) { 25695 access(elems, fn, i10, key[i10], true, emptyGet, raw); 25696 } 25697 } else if (value !== void 0) { 25698 chainable = true; 25699 if (!isFunction(value)) { 25700 raw = true; 25701 } 25702 if (bulk) { 25703 if (raw) { 25704 fn.call(elems, value); 25705 fn = null; 25706 } else { 25707 bulk = fn; 25708 fn = function(elem, _key, value2) { 25709 return bulk.call(jQuery2(elem), value2); 25710 }; 25711 } 25712 } 25713 if (fn) { 25714 for (; i10 < len; i10++) { 25715 fn( 25716 elems[i10], 25717 key, 25718 raw ? value : value.call(elems[i10], i10, fn(elems[i10], key)) 25719 ); 25720 } 25721 } 25722 } 25723 if (chainable) { 25724 return elems; 25725 } 25726 if (bulk) { 25727 return fn.call(elems); 25728 } 25729 return len ? fn(elems[0], key) : emptyGet; 25730 }; 25731 var rmsPrefix = /^-ms-/, rdashAlpha = /-([a-z])/g; 25732 function fcamelCase(_all, letter) { 25733 return letter.toUpperCase(); 25734 } 25735 function camelCase(string) { 25736 return string.replace(rmsPrefix, "ms-").replace(rdashAlpha, fcamelCase); 25737 } 25738 var acceptData = function(owner) { 25739 return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType; 25740 }; 25741 function Data() { 25742 this.expando = jQuery2.expando + Data.uid++; 25743 } 25744 Data.uid = 1; 25745 Data.prototype = { 25746 cache: function(owner) { 25747 var value = owner[this.expando]; 25748 if (!value) { 25749 value = {}; 25750 if (acceptData(owner)) { 25751 if (owner.nodeType) { 25752 owner[this.expando] = value; 25753 } else { 25754 Object.defineProperty(owner, this.expando, { 25755 value, 25756 configurable: true 25757 }); 25758 } 25759 } 25760 } 25761 return value; 25762 }, 25763 set: function(owner, data, value) { 25764 var prop, cache = this.cache(owner); 25765 if (typeof data === "string") { 25766 cache[camelCase(data)] = value; 25767 } else { 25768 for (prop in data) { 25769 cache[camelCase(prop)] = data[prop]; 25770 } 25771 } 25772 return cache; 25773 }, 25774 get: function(owner, key) { 25775 return key === void 0 ? this.cache(owner) : ( 25776 // Always use camelCase key (gh-2257) 25777 owner[this.expando] && owner[this.expando][camelCase(key)] 25778 ); 25779 }, 25780 access: function(owner, key, value) { 25781 if (key === void 0 || key && typeof key === "string" && value === void 0) { 25782 return this.get(owner, key); 25783 } 25784 this.set(owner, key, value); 25785 return value !== void 0 ? value : key; 25786 }, 25787 remove: function(owner, key) { 25788 var i10, cache = owner[this.expando]; 25789 if (cache === void 0) { 25790 return; 25791 } 25792 if (key !== void 0) { 25793 if (Array.isArray(key)) { 25794 key = key.map(camelCase); 25795 } else { 25796 key = camelCase(key); 25797 key = key in cache ? [key] : key.match(rnothtmlwhite) || []; 25798 } 25799 i10 = key.length; 25800 while (i10--) { 25801 delete cache[key[i10]]; 25802 } 25803 } 25804 if (key === void 0 || jQuery2.isEmptyObject(cache)) { 25805 if (owner.nodeType) { 25806 owner[this.expando] = void 0; 25807 } else { 25808 delete owner[this.expando]; 25809 } 25810 } 25811 }, 25812 hasData: function(owner) { 25813 var cache = owner[this.expando]; 25814 return cache !== void 0 && !jQuery2.isEmptyObject(cache); 25815 } 25816 }; 25817 var dataPriv = new Data(); 25818 var dataUser = new Data(); 25819 var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, rmultiDash = /[A-Z]/g; 25820 function getData(data) { 25821 if (data === "true") { 25822 return true; 25823 } 25824 if (data === "false") { 25825 return false; 25826 } 25827 if (data === "null") { 25828 return null; 25829 } 25830 if (data === +data + "") { 25831 return +data; 25832 } 25833 if (rbrace.test(data)) { 25834 return JSON.parse(data); 25835 } 25836 return data; 25837 } 25838 function dataAttr(elem, key, data) { 25839 var name; 25840 if (data === void 0 && elem.nodeType === 1) { 25841 name = "data-" + key.replace(rmultiDash, "-$&").toLowerCase(); 25842 data = elem.getAttribute(name); 25843 if (typeof data === "string") { 25844 try { 25845 data = getData(data); 25846 } catch (e11) { 25847 } 25848 dataUser.set(elem, key, data); 25849 } else { 25850 data = void 0; 25851 } 25852 } 25853 return data; 25854 } 25855 jQuery2.extend({ 25856 hasData: function(elem) { 25857 return dataUser.hasData(elem) || dataPriv.hasData(elem); 25858 }, 25859 data: function(elem, name, data) { 25860 return dataUser.access(elem, name, data); 25861 }, 25862 removeData: function(elem, name) { 25863 dataUser.remove(elem, name); 25864 }, 25865 // TODO: Now that all calls to _data and _removeData have been replaced 25866 // with direct calls to dataPriv methods, these can be deprecated. 25867 _data: function(elem, name, data) { 25868 return dataPriv.access(elem, name, data); 25869 }, 25870 _removeData: function(elem, name) { 25871 dataPriv.remove(elem, name); 25872 } 25873 }); 25874 jQuery2.fn.extend({ 25875 data: function(key, value) { 25876 var i10, name, data, elem = this[0], attrs = elem && elem.attributes; 25877 if (key === void 0) { 25878 if (this.length) { 25879 data = dataUser.get(elem); 25880 if (elem.nodeType === 1 && !dataPriv.get(elem, "hasDataAttrs")) { 25881 i10 = attrs.length; 25882 while (i10--) { 25883 if (attrs[i10]) { 25884 name = attrs[i10].name; 25885 if (name.indexOf("data-") === 0) { 25886 name = camelCase(name.slice(5)); 25887 dataAttr(elem, name, data[name]); 25888 } 25889 } 25890 } 25891 dataPriv.set(elem, "hasDataAttrs", true); 25892 } 25893 } 25894 return data; 25895 } 25896 if (typeof key === "object") { 25897 return this.each(function() { 25898 dataUser.set(this, key); 25899 }); 25900 } 25901 return access(this, function(value2) { 25902 var data2; 25903 if (elem && value2 === void 0) { 25904 data2 = dataUser.get(elem, key); 25905 if (data2 !== void 0) { 25906 return data2; 25907 } 25908 data2 = dataAttr(elem, key); 25909 if (data2 !== void 0) { 25910 return data2; 25911 } 25912 return; 25913 } 25914 this.each(function() { 25915 dataUser.set(this, key, value2); 25916 }); 25917 }, null, value, arguments.length > 1, null, true); 25918 }, 25919 removeData: function(key) { 25920 return this.each(function() { 25921 dataUser.remove(this, key); 25922 }); 25923 } 25924 }); 25925 jQuery2.extend({ 25926 queue: function(elem, type, data) { 25927 var queue; 25928 if (elem) { 25929 type = (type || "fx") + "queue"; 25930 queue = dataPriv.get(elem, type); 25931 if (data) { 25932 if (!queue || Array.isArray(data)) { 25933 queue = dataPriv.access(elem, type, jQuery2.makeArray(data)); 25934 } else { 25935 queue.push(data); 25936 } 25937 } 25938 return queue || []; 25939 } 25940 }, 25941 dequeue: function(elem, type) { 25942 type = type || "fx"; 25943 var queue = jQuery2.queue(elem, type), startLength = queue.length, fn = queue.shift(), hooks = jQuery2._queueHooks(elem, type), next = function() { 25944 jQuery2.dequeue(elem, type); 25945 }; 25946 if (fn === "inprogress") { 25947 fn = queue.shift(); 25948 startLength--; 25949 } 25950 if (fn) { 25951 if (type === "fx") { 25952 queue.unshift("inprogress"); 25953 } 25954 delete hooks.stop; 25955 fn.call(elem, next, hooks); 25956 } 25957 if (!startLength && hooks) { 25958 hooks.empty.fire(); 25959 } 25960 }, 25961 // Not public - generate a queueHooks object, or return the current one 25962 _queueHooks: function(elem, type) { 25963 var key = type + "queueHooks"; 25964 return dataPriv.get(elem, key) || dataPriv.access(elem, key, { 25965 empty: jQuery2.Callbacks("once memory").add(function() { 25966 dataPriv.remove(elem, [type + "queue", key]); 25967 }) 25968 }); 25969 } 25970 }); 25971 jQuery2.fn.extend({ 25972 queue: function(type, data) { 25973 var setter = 2; 25974 if (typeof type !== "string") { 25975 data = type; 25976 type = "fx"; 25977 setter--; 25978 } 25979 if (arguments.length < setter) { 25980 return jQuery2.queue(this[0], type); 25981 } 25982 return data === void 0 ? this : this.each(function() { 25983 var queue = jQuery2.queue(this, type, data); 25984 jQuery2._queueHooks(this, type); 25985 if (type === "fx" && queue[0] !== "inprogress") { 25986 jQuery2.dequeue(this, type); 25987 } 25988 }); 25989 }, 25990 dequeue: function(type) { 25991 return this.each(function() { 25992 jQuery2.dequeue(this, type); 25993 }); 25994 }, 25995 clearQueue: function(type) { 25996 return this.queue(type || "fx", []); 25997 }, 25998 // Get a promise resolved when queues of a certain type 25999 // are emptied (fx is the type by default) 26000 promise: function(type, obj) { 26001 var tmp, count = 1, defer = jQuery2.Deferred(), elements = this, i10 = this.length, resolve = function() { 26002 if (!--count) { 26003 defer.resolveWith(elements, [elements]); 26004 } 26005 }; 26006 if (typeof type !== "string") { 26007 obj = type; 26008 type = void 0; 26009 } 26010 type = type || "fx"; 26011 while (i10--) { 26012 tmp = dataPriv.get(elements[i10], type + "queueHooks"); 26013 if (tmp && tmp.empty) { 26014 count++; 26015 tmp.empty.add(resolve); 26016 } 26017 } 26018 resolve(); 26019 return defer.promise(obj); 26020 } 26021 }); 26022 var pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source; 26023 var rcssNum = new RegExp("^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i"); 26024 var cssExpand = ["Top", "Right", "Bottom", "Left"]; 26025 var documentElement = document2.documentElement; 26026 var isAttached = function(elem) { 26027 return jQuery2.contains(elem.ownerDocument, elem); 26028 }, composed = { composed: true }; 26029 if (documentElement.getRootNode) { 26030 isAttached = function(elem) { 26031 return jQuery2.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument; 26032 }; 26033 } 26034 var isHiddenWithinTree = function(elem, el) { 26035 elem = el || elem; 26036 return elem.style.display === "none" || elem.style.display === "" && // Otherwise, check computed style 26037 // Support: Firefox <=43 - 45 26038 // Disconnected elements can have computed display: none, so first confirm that elem is 26039 // in the document. 26040 isAttached(elem) && jQuery2.css(elem, "display") === "none"; 26041 }; 26042 function adjustCSS(elem, prop, valueParts, tween) { 26043 var adjusted, scale, maxIterations = 20, currentValue = tween ? function() { 26044 return tween.cur(); 26045 } : function() { 26046 return jQuery2.css(elem, prop, ""); 26047 }, initial = currentValue(), unit = valueParts && valueParts[3] || (jQuery2.cssNumber[prop] ? "" : "px"), initialInUnit = elem.nodeType && (jQuery2.cssNumber[prop] || unit !== "px" && +initial) && rcssNum.exec(jQuery2.css(elem, prop)); 26048 if (initialInUnit && initialInUnit[3] !== unit) { 26049 initial = initial / 2; 26050 unit = unit || initialInUnit[3]; 26051 initialInUnit = +initial || 1; 26052 while (maxIterations--) { 26053 jQuery2.style(elem, prop, initialInUnit + unit); 26054 if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) { 26055 maxIterations = 0; 26056 } 26057 initialInUnit = initialInUnit / scale; 26058 } 26059 initialInUnit = initialInUnit * 2; 26060 jQuery2.style(elem, prop, initialInUnit + unit); 26061 valueParts = valueParts || []; 26062 } 26063 if (valueParts) { 26064 initialInUnit = +initialInUnit || +initial || 0; 26065 adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2]; 26066 if (tween) { 26067 tween.unit = unit; 26068 tween.start = initialInUnit; 26069 tween.end = adjusted; 26070 } 26071 } 26072 return adjusted; 26073 } 26074 var defaultDisplayMap = {}; 26075 function getDefaultDisplay(elem) { 26076 var temp, doc = elem.ownerDocument, nodeName2 = elem.nodeName, display = defaultDisplayMap[nodeName2]; 26077 if (display) { 26078 return display; 26079 } 26080 temp = doc.body.appendChild(doc.createElement(nodeName2)); 26081 display = jQuery2.css(temp, "display"); 26082 temp.parentNode.removeChild(temp); 26083 if (display === "none") { 26084 display = "block"; 26085 } 26086 defaultDisplayMap[nodeName2] = display; 26087 return display; 26088 } 26089 function showHide(elements, show) { 26090 var display, elem, values = [], index = 0, length = elements.length; 26091 for (; index < length; index++) { 26092 elem = elements[index]; 26093 if (!elem.style) { 26094 continue; 26095 } 26096 display = elem.style.display; 26097 if (show) { 26098 if (display === "none") { 26099 values[index] = dataPriv.get(elem, "display") || null; 26100 if (!values[index]) { 26101 elem.style.display = ""; 26102 } 26103 } 26104 if (elem.style.display === "" && isHiddenWithinTree(elem)) { 26105 values[index] = getDefaultDisplay(elem); 26106 } 26107 } else { 26108 if (display !== "none") { 26109 values[index] = "none"; 26110 dataPriv.set(elem, "display", display); 26111 } 26112 } 26113 } 26114 for (index = 0; index < length; index++) { 26115 if (values[index] != null) { 26116 elements[index].style.display = values[index]; 26117 } 26118 } 26119 return elements; 26120 } 26121 jQuery2.fn.extend({ 26122 show: function() { 26123 return showHide(this, true); 26124 }, 26125 hide: function() { 26126 return showHide(this); 26127 }, 26128 toggle: function(state) { 26129 if (typeof state === "boolean") { 26130 return state ? this.show() : this.hide(); 26131 } 26132 return this.each(function() { 26133 if (isHiddenWithinTree(this)) { 26134 jQuery2(this).show(); 26135 } else { 26136 jQuery2(this).hide(); 26137 } 26138 }); 26139 } 26140 }); 26141 var rcheckableType = /^(?:checkbox|radio)$/i; 26142 var rtagName = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i; 26143 var rscriptType = /^$|^module$|\/(?:java|ecma)script/i; 26144 (function() { 26145 var fragment = document2.createDocumentFragment(), div = fragment.appendChild(document2.createElement("div")), input = document2.createElement("input"); 26146 input.setAttribute("type", "radio"); 26147 input.setAttribute("checked", "checked"); 26148 input.setAttribute("name", "t"); 26149 div.appendChild(input); 26150 support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked; 26151 div.innerHTML = "<textarea>x</textarea>"; 26152 support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue; 26153 div.innerHTML = "<option></option>"; 26154 support.option = !!div.lastChild; 26155 })(); 26156 var wrapMap = { 26157 // XHTML parsers do not magically insert elements in the 26158 // same way that tag soup parsers do. So we cannot shorten 26159 // this by omitting <tbody> or other required elements. 26160 thead: [1, "<table>", "</table>"], 26161 col: [2, "<table><colgroup>", "</colgroup></table>"], 26162 tr: [2, "<table><tbody>", "</tbody></table>"], 26163 td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], 26164 _default: [0, "", ""] 26165 }; 26166 wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; 26167 wrapMap.th = wrapMap.td; 26168 if (!support.option) { 26169 wrapMap.optgroup = wrapMap.option = [1, "<select multiple='multiple'>", "</select>"]; 26170 } 26171 function getAll(context3, tag) { 26172 var ret; 26173 if (typeof context3.getElementsByTagName !== "undefined") { 26174 ret = context3.getElementsByTagName(tag || "*"); 26175 } else if (typeof context3.querySelectorAll !== "undefined") { 26176 ret = context3.querySelectorAll(tag || "*"); 26177 } else { 26178 ret = []; 26179 } 26180 if (tag === void 0 || tag && nodeName(context3, tag)) { 26181 return jQuery2.merge([context3], ret); 26182 } 26183 return ret; 26184 } 26185 function setGlobalEval(elems, refElements) { 26186 var i10 = 0, l10 = elems.length; 26187 for (; i10 < l10; i10++) { 26188 dataPriv.set( 26189 elems[i10], 26190 "globalEval", 26191 !refElements || dataPriv.get(refElements[i10], "globalEval") 26192 ); 26193 } 26194 } 26195 var rhtml = /<|&#?\w+;/; 26196 function buildFragment(elems, context3, scripts, selection, ignored) { 26197 var elem, tmp, tag, wrap3, attached, j2, fragment = context3.createDocumentFragment(), nodes = [], i10 = 0, l10 = elems.length; 26198 for (; i10 < l10; i10++) { 26199 elem = elems[i10]; 26200 if (elem || elem === 0) { 26201 if (toType(elem) === "object") { 26202 jQuery2.merge(nodes, elem.nodeType ? [elem] : elem); 26203 } else if (!rhtml.test(elem)) { 26204 nodes.push(context3.createTextNode(elem)); 26205 } else { 26206 tmp = tmp || fragment.appendChild(context3.createElement("div")); 26207 tag = (rtagName.exec(elem) || ["", ""])[1].toLowerCase(); 26208 wrap3 = wrapMap[tag] || wrapMap._default; 26209 tmp.innerHTML = wrap3[1] + jQuery2.htmlPrefilter(elem) + wrap3[2]; 26210 j2 = wrap3[0]; 26211 while (j2--) { 26212 tmp = tmp.lastChild; 26213 } 26214 jQuery2.merge(nodes, tmp.childNodes); 26215 tmp = fragment.firstChild; 26216 tmp.textContent = ""; 26217 } 26218 } 26219 } 26220 fragment.textContent = ""; 26221 i10 = 0; 26222 while (elem = nodes[i10++]) { 26223 if (selection && jQuery2.inArray(elem, selection) > -1) { 26224 if (ignored) { 26225 ignored.push(elem); 26226 } 26227 continue; 26228 } 26229 attached = isAttached(elem); 26230 tmp = getAll(fragment.appendChild(elem), "script"); 26231 if (attached) { 26232 setGlobalEval(tmp); 26233 } 26234 if (scripts) { 26235 j2 = 0; 26236 while (elem = tmp[j2++]) { 26237 if (rscriptType.test(elem.type || "")) { 26238 scripts.push(elem); 26239 } 26240 } 26241 } 26242 } 26243 return fragment; 26244 } 26245 var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; 26246 function returnTrue() { 26247 return true; 26248 } 26249 function returnFalse() { 26250 return false; 26251 } 26252 function on(elem, types, selector3, data, fn, one) { 26253 var origFn, type; 26254 if (typeof types === "object") { 26255 if (typeof selector3 !== "string") { 26256 data = data || selector3; 26257 selector3 = void 0; 26258 } 26259 for (type in types) { 26260 on(elem, type, selector3, data, types[type], one); 26261 } 26262 return elem; 26263 } 26264 if (data == null && fn == null) { 26265 fn = selector3; 26266 data = selector3 = void 0; 26267 } else if (fn == null) { 26268 if (typeof selector3 === "string") { 26269 fn = data; 26270 data = void 0; 26271 } else { 26272 fn = data; 26273 data = selector3; 26274 selector3 = void 0; 26275 } 26276 } 26277 if (fn === false) { 26278 fn = returnFalse; 26279 } else if (!fn) { 26280 return elem; 26281 } 26282 if (one === 1) { 26283 origFn = fn; 26284 fn = function(event) { 26285 jQuery2().off(event); 26286 return origFn.apply(this, arguments); 26287 }; 26288 fn.guid = origFn.guid || (origFn.guid = jQuery2.guid++); 26289 } 26290 return elem.each(function() { 26291 jQuery2.event.add(this, types, fn, data, selector3); 26292 }); 26293 } 26294 jQuery2.event = { 26295 global: {}, 26296 add: function(elem, types, handler, data, selector3) { 26297 var handleObjIn, eventHandle, tmp, events, t11, handleObj, special, handlers, type, namespaces, origType, elemData = dataPriv.get(elem); 26298 if (!acceptData(elem)) { 26299 return; 26300 } 26301 if (handler.handler) { 26302 handleObjIn = handler; 26303 handler = handleObjIn.handler; 26304 selector3 = handleObjIn.selector; 26305 } 26306 if (selector3) { 26307 jQuery2.find.matchesSelector(documentElement, selector3); 26308 } 26309 if (!handler.guid) { 26310 handler.guid = jQuery2.guid++; 26311 } 26312 if (!(events = elemData.events)) { 26313 events = elemData.events = /* @__PURE__ */ Object.create(null); 26314 } 26315 if (!(eventHandle = elemData.handle)) { 26316 eventHandle = elemData.handle = function(e11) { 26317 return typeof jQuery2 !== "undefined" && jQuery2.event.triggered !== e11.type ? jQuery2.event.dispatch.apply(elem, arguments) : void 0; 26318 }; 26319 } 26320 types = (types || "").match(rnothtmlwhite) || [""]; 26321 t11 = types.length; 26322 while (t11--) { 26323 tmp = rtypenamespace.exec(types[t11]) || []; 26324 type = origType = tmp[1]; 26325 namespaces = (tmp[2] || "").split(".").sort(); 26326 if (!type) { 26327 continue; 26328 } 26329 special = jQuery2.event.special[type] || {}; 26330 type = (selector3 ? special.delegateType : special.bindType) || type; 26331 special = jQuery2.event.special[type] || {}; 26332 handleObj = jQuery2.extend({ 26333 type, 26334 origType, 26335 data, 26336 handler, 26337 guid: handler.guid, 26338 selector: selector3, 26339 needsContext: selector3 && jQuery2.expr.match.needsContext.test(selector3), 26340 namespace: namespaces.join(".") 26341 }, handleObjIn); 26342 if (!(handlers = events[type])) { 26343 handlers = events[type] = []; 26344 handlers.delegateCount = 0; 26345 if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) { 26346 if (elem.addEventListener) { 26347 elem.addEventListener(type, eventHandle); 26348 } 26349 } 26350 } 26351 if (special.add) { 26352 special.add.call(elem, handleObj); 26353 if (!handleObj.handler.guid) { 26354 handleObj.handler.guid = handler.guid; 26355 } 26356 } 26357 if (selector3) { 26358 handlers.splice(handlers.delegateCount++, 0, handleObj); 26359 } else { 26360 handlers.push(handleObj); 26361 } 26362 jQuery2.event.global[type] = true; 26363 } 26364 }, 26365 // Detach an event or set of events from an element 26366 remove: function(elem, types, handler, selector3, mappedTypes) { 26367 var j2, origCount, tmp, events, t11, handleObj, special, handlers, type, namespaces, origType, elemData = dataPriv.hasData(elem) && dataPriv.get(elem); 26368 if (!elemData || !(events = elemData.events)) { 26369 return; 26370 } 26371 types = (types || "").match(rnothtmlwhite) || [""]; 26372 t11 = types.length; 26373 while (t11--) { 26374 tmp = rtypenamespace.exec(types[t11]) || []; 26375 type = origType = tmp[1]; 26376 namespaces = (tmp[2] || "").split(".").sort(); 26377 if (!type) { 26378 for (type in events) { 26379 jQuery2.event.remove(elem, type + types[t11], handler, selector3, true); 26380 } 26381 continue; 26382 } 26383 special = jQuery2.event.special[type] || {}; 26384 type = (selector3 ? special.delegateType : special.bindType) || type; 26385 handlers = events[type] || []; 26386 tmp = tmp[2] && new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)"); 26387 origCount = j2 = handlers.length; 26388 while (j2--) { 26389 handleObj = handlers[j2]; 26390 if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector3 || selector3 === handleObj.selector || selector3 === "**" && handleObj.selector)) { 26391 handlers.splice(j2, 1); 26392 if (handleObj.selector) { 26393 handlers.delegateCount--; 26394 } 26395 if (special.remove) { 26396 special.remove.call(elem, handleObj); 26397 } 26398 } 26399 } 26400 if (origCount && !handlers.length) { 26401 if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) { 26402 jQuery2.removeEvent(elem, type, elemData.handle); 26403 } 26404 delete events[type]; 26405 } 26406 } 26407 if (jQuery2.isEmptyObject(events)) { 26408 dataPriv.remove(elem, "handle events"); 26409 } 26410 }, 26411 dispatch: function(nativeEvent) { 26412 var i10, j2, ret, matched, handleObj, handlerQueue, args = new Array(arguments.length), event = jQuery2.event.fix(nativeEvent), handlers = (dataPriv.get(this, "events") || /* @__PURE__ */ Object.create(null))[event.type] || [], special = jQuery2.event.special[event.type] || {}; 26413 args[0] = event; 26414 for (i10 = 1; i10 < arguments.length; i10++) { 26415 args[i10] = arguments[i10]; 26416 } 26417 event.delegateTarget = this; 26418 if (special.preDispatch && special.preDispatch.call(this, event) === false) { 26419 return; 26420 } 26421 handlerQueue = jQuery2.event.handlers.call(this, event, handlers); 26422 i10 = 0; 26423 while ((matched = handlerQueue[i10++]) && !event.isPropagationStopped()) { 26424 event.currentTarget = matched.elem; 26425 j2 = 0; 26426 while ((handleObj = matched.handlers[j2++]) && !event.isImmediatePropagationStopped()) { 26427 if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) { 26428 event.handleObj = handleObj; 26429 event.data = handleObj.data; 26430 ret = ((jQuery2.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args); 26431 if (ret !== void 0) { 26432 if ((event.result = ret) === false) { 26433 event.preventDefault(); 26434 event.stopPropagation(); 26435 } 26436 } 26437 } 26438 } 26439 } 26440 if (special.postDispatch) { 26441 special.postDispatch.call(this, event); 26442 } 26443 return event.result; 26444 }, 26445 handlers: function(event, handlers) { 26446 var i10, handleObj, sel, matchedHandlers, matchedSelectors, handlerQueue = [], delegateCount = handlers.delegateCount, cur = event.target; 26447 if (delegateCount && // Support: IE <=9 26448 // Black-hole SVG <use> instance trees (trac-13180) 26449 cur.nodeType && // Support: Firefox <=42 26450 // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) 26451 // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click 26452 // Support: IE 11 only 26453 // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) 26454 !(event.type === "click" && event.button >= 1)) { 26455 for (; cur !== this; cur = cur.parentNode || this) { 26456 if (cur.nodeType === 1 && !(event.type === "click" && cur.disabled === true)) { 26457 matchedHandlers = []; 26458 matchedSelectors = {}; 26459 for (i10 = 0; i10 < delegateCount; i10++) { 26460 handleObj = handlers[i10]; 26461 sel = handleObj.selector + " "; 26462 if (matchedSelectors[sel] === void 0) { 26463 matchedSelectors[sel] = handleObj.needsContext ? jQuery2(sel, this).index(cur) > -1 : jQuery2.find(sel, this, null, [cur]).length; 26464 } 26465 if (matchedSelectors[sel]) { 26466 matchedHandlers.push(handleObj); 26467 } 26468 } 26469 if (matchedHandlers.length) { 26470 handlerQueue.push({ elem: cur, handlers: matchedHandlers }); 26471 } 26472 } 26473 } 26474 } 26475 cur = this; 26476 if (delegateCount < handlers.length) { 26477 handlerQueue.push({ elem: cur, handlers: handlers.slice(delegateCount) }); 26478 } 26479 return handlerQueue; 26480 }, 26481 addProp: function(name, hook) { 26482 Object.defineProperty(jQuery2.Event.prototype, name, { 26483 enumerable: true, 26484 configurable: true, 26485 get: isFunction(hook) ? function() { 26486 if (this.originalEvent) { 26487 return hook(this.originalEvent); 26488 } 26489 } : function() { 26490 if (this.originalEvent) { 26491 return this.originalEvent[name]; 26492 } 26493 }, 26494 set: function(value) { 26495 Object.defineProperty(this, name, { 26496 enumerable: true, 26497 configurable: true, 26498 writable: true, 26499 value 26500 }); 26501 } 26502 }); 26503 }, 26504 fix: function(originalEvent) { 26505 return originalEvent[jQuery2.expando] ? originalEvent : new jQuery2.Event(originalEvent); 26506 }, 26507 special: { 26508 load: { 26509 // Prevent triggered image.load events from bubbling to window.load 26510 noBubble: true 26511 }, 26512 click: { 26513 // Utilize native event to ensure correct state for checkable inputs 26514 setup: function(data) { 26515 var el = this || data; 26516 if (rcheckableType.test(el.type) && el.click && nodeName(el, "input")) { 26517 leverageNative(el, "click", true); 26518 } 26519 return false; 26520 }, 26521 trigger: function(data) { 26522 var el = this || data; 26523 if (rcheckableType.test(el.type) && el.click && nodeName(el, "input")) { 26524 leverageNative(el, "click"); 26525 } 26526 return true; 26527 }, 26528 // For cross-browser consistency, suppress native .click() on links 26529 // Also prevent it if we're currently inside a leveraged native-event stack 26530 _default: function(event) { 26531 var target = event.target; 26532 return rcheckableType.test(target.type) && target.click && nodeName(target, "input") && dataPriv.get(target, "click") || nodeName(target, "a"); 26533 } 26534 }, 26535 beforeunload: { 26536 postDispatch: function(event) { 26537 if (event.result !== void 0 && event.originalEvent) { 26538 event.originalEvent.returnValue = event.result; 26539 } 26540 } 26541 } 26542 } 26543 }; 26544 function leverageNative(el, type, isSetup) { 26545 if (!isSetup) { 26546 if (dataPriv.get(el, type) === void 0) { 26547 jQuery2.event.add(el, type, returnTrue); 26548 } 26549 return; 26550 } 26551 dataPriv.set(el, type, false); 26552 jQuery2.event.add(el, type, { 26553 namespace: false, 26554 handler: function(event) { 26555 var result, saved = dataPriv.get(this, type); 26556 if (event.isTrigger & 1 && this[type]) { 26557 if (!saved) { 26558 saved = slice.call(arguments); 26559 dataPriv.set(this, type, saved); 26560 this[type](); 26561 result = dataPriv.get(this, type); 26562 dataPriv.set(this, type, false); 26563 if (saved !== result) { 26564 event.stopImmediatePropagation(); 26565 event.preventDefault(); 26566 return result; 26567 } 26568 } else if ((jQuery2.event.special[type] || {}).delegateType) { 26569 event.stopPropagation(); 26570 } 26571 } else if (saved) { 26572 dataPriv.set(this, type, jQuery2.event.trigger( 26573 saved[0], 26574 saved.slice(1), 26575 this 26576 )); 26577 event.stopPropagation(); 26578 event.isImmediatePropagationStopped = returnTrue; 26579 } 26580 } 26581 }); 26582 } 26583 jQuery2.removeEvent = function(elem, type, handle) { 26584 if (elem.removeEventListener) { 26585 elem.removeEventListener(type, handle); 26586 } 26587 }; 26588 jQuery2.Event = function(src, props) { 26589 if (!(this instanceof jQuery2.Event)) { 26590 return new jQuery2.Event(src, props); 26591 } 26592 if (src && src.type) { 26593 this.originalEvent = src; 26594 this.type = src.type; 26595 this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === void 0 && // Support: Android <=2.3 only 26596 src.returnValue === false ? returnTrue : returnFalse; 26597 this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target; 26598 this.currentTarget = src.currentTarget; 26599 this.relatedTarget = src.relatedTarget; 26600 } else { 26601 this.type = src; 26602 } 26603 if (props) { 26604 jQuery2.extend(this, props); 26605 } 26606 this.timeStamp = src && src.timeStamp || Date.now(); 26607 this[jQuery2.expando] = true; 26608 }; 26609 jQuery2.Event.prototype = { 26610 constructor: jQuery2.Event, 26611 isDefaultPrevented: returnFalse, 26612 isPropagationStopped: returnFalse, 26613 isImmediatePropagationStopped: returnFalse, 26614 isSimulated: false, 26615 preventDefault: function() { 26616 var e11 = this.originalEvent; 26617 this.isDefaultPrevented = returnTrue; 26618 if (e11 && !this.isSimulated) { 26619 e11.preventDefault(); 26620 } 26621 }, 26622 stopPropagation: function() { 26623 var e11 = this.originalEvent; 26624 this.isPropagationStopped = returnTrue; 26625 if (e11 && !this.isSimulated) { 26626 e11.stopPropagation(); 26627 } 26628 }, 26629 stopImmediatePropagation: function() { 26630 var e11 = this.originalEvent; 26631 this.isImmediatePropagationStopped = returnTrue; 26632 if (e11 && !this.isSimulated) { 26633 e11.stopImmediatePropagation(); 26634 } 26635 this.stopPropagation(); 26636 } 26637 }; 26638 jQuery2.each({ 26639 altKey: true, 26640 bubbles: true, 26641 cancelable: true, 26642 changedTouches: true, 26643 ctrlKey: true, 26644 detail: true, 26645 eventPhase: true, 26646 metaKey: true, 26647 pageX: true, 26648 pageY: true, 26649 shiftKey: true, 26650 view: true, 26651 "char": true, 26652 code: true, 26653 charCode: true, 26654 key: true, 26655 keyCode: true, 26656 button: true, 26657 buttons: true, 26658 clientX: true, 26659 clientY: true, 26660 offsetX: true, 26661 offsetY: true, 26662 pointerId: true, 26663 pointerType: true, 26664 screenX: true, 26665 screenY: true, 26666 targetTouches: true, 26667 toElement: true, 26668 touches: true, 26669 which: true 26670 }, jQuery2.event.addProp); 26671 jQuery2.each({ focus: "focusin", blur: "focusout" }, function(type, delegateType) { 26672 function focusMappedHandler(nativeEvent) { 26673 if (document2.documentMode) { 26674 var handle = dataPriv.get(this, "handle"), event = jQuery2.event.fix(nativeEvent); 26675 event.type = nativeEvent.type === "focusin" ? "focus" : "blur"; 26676 event.isSimulated = true; 26677 handle(nativeEvent); 26678 if (event.target === event.currentTarget) { 26679 handle(event); 26680 } 26681 } else { 26682 jQuery2.event.simulate( 26683 delegateType, 26684 nativeEvent.target, 26685 jQuery2.event.fix(nativeEvent) 26686 ); 26687 } 26688 } 26689 jQuery2.event.special[type] = { 26690 // Utilize native event if possible so blur/focus sequence is correct 26691 setup: function() { 26692 var attaches; 26693 leverageNative(this, type, true); 26694 if (document2.documentMode) { 26695 attaches = dataPriv.get(this, delegateType); 26696 if (!attaches) { 26697 this.addEventListener(delegateType, focusMappedHandler); 26698 } 26699 dataPriv.set(this, delegateType, (attaches || 0) + 1); 26700 } else { 26701 return false; 26702 } 26703 }, 26704 trigger: function() { 26705 leverageNative(this, type); 26706 return true; 26707 }, 26708 teardown: function() { 26709 var attaches; 26710 if (document2.documentMode) { 26711 attaches = dataPriv.get(this, delegateType) - 1; 26712 if (!attaches) { 26713 this.removeEventListener(delegateType, focusMappedHandler); 26714 dataPriv.remove(this, delegateType); 26715 } else { 26716 dataPriv.set(this, delegateType, attaches); 26717 } 26718 } else { 26719 return false; 26720 } 26721 }, 26722 // Suppress native focus or blur if we're currently inside 26723 // a leveraged native-event stack 26724 _default: function(event) { 26725 return dataPriv.get(event.target, type); 26726 }, 26727 delegateType 26728 }; 26729 jQuery2.event.special[delegateType] = { 26730 setup: function() { 26731 var doc = this.ownerDocument || this.document || this, dataHolder = document2.documentMode ? this : doc, attaches = dataPriv.get(dataHolder, delegateType); 26732 if (!attaches) { 26733 if (document2.documentMode) { 26734 this.addEventListener(delegateType, focusMappedHandler); 26735 } else { 26736 doc.addEventListener(type, focusMappedHandler, true); 26737 } 26738 } 26739 dataPriv.set(dataHolder, delegateType, (attaches || 0) + 1); 26740 }, 26741 teardown: function() { 26742 var doc = this.ownerDocument || this.document || this, dataHolder = document2.documentMode ? this : doc, attaches = dataPriv.get(dataHolder, delegateType) - 1; 26743 if (!attaches) { 26744 if (document2.documentMode) { 26745 this.removeEventListener(delegateType, focusMappedHandler); 26746 } else { 26747 doc.removeEventListener(type, focusMappedHandler, true); 26748 } 26749 dataPriv.remove(dataHolder, delegateType); 26750 } else { 26751 dataPriv.set(dataHolder, delegateType, attaches); 26752 } 26753 } 26754 }; 26755 }); 26756 jQuery2.each({ 26757 mouseenter: "mouseover", 26758 mouseleave: "mouseout", 26759 pointerenter: "pointerover", 26760 pointerleave: "pointerout" 26761 }, function(orig, fix) { 26762 jQuery2.event.special[orig] = { 26763 delegateType: fix, 26764 bindType: fix, 26765 handle: function(event) { 26766 var ret, target = this, related = event.relatedTarget, handleObj = event.handleObj; 26767 if (!related || related !== target && !jQuery2.contains(target, related)) { 26768 event.type = handleObj.origType; 26769 ret = handleObj.handler.apply(this, arguments); 26770 event.type = fix; 26771 } 26772 return ret; 26773 } 26774 }; 26775 }); 26776 jQuery2.fn.extend({ 26777 on: function(types, selector3, data, fn) { 26778 return on(this, types, selector3, data, fn); 26779 }, 26780 one: function(types, selector3, data, fn) { 26781 return on(this, types, selector3, data, fn, 1); 26782 }, 26783 off: function(types, selector3, fn) { 26784 var handleObj, type; 26785 if (types && types.preventDefault && types.handleObj) { 26786 handleObj = types.handleObj; 26787 jQuery2(types.delegateTarget).off( 26788 handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, 26789 handleObj.selector, 26790 handleObj.handler 26791 ); 26792 return this; 26793 } 26794 if (typeof types === "object") { 26795 for (type in types) { 26796 this.off(type, selector3, types[type]); 26797 } 26798 return this; 26799 } 26800 if (selector3 === false || typeof selector3 === "function") { 26801 fn = selector3; 26802 selector3 = void 0; 26803 } 26804 if (fn === false) { 26805 fn = returnFalse; 26806 } 26807 return this.each(function() { 26808 jQuery2.event.remove(this, types, fn, selector3); 26809 }); 26810 } 26811 }); 26812 var rnoInnerhtml = /<script|<style|<link/i, rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, rcleanScript = /^\s*<!\[CDATA\[|\]\]>\s*$/g; 26813 function manipulationTarget(elem, content) { 26814 if (nodeName(elem, "table") && nodeName(content.nodeType !== 11 ? content : content.firstChild, "tr")) { 26815 return jQuery2(elem).children("tbody")[0] || elem; 26816 } 26817 return elem; 26818 } 26819 function disableScript(elem) { 26820 elem.type = (elem.getAttribute("type") !== null) + "/" + elem.type; 26821 return elem; 26822 } 26823 function restoreScript(elem) { 26824 if ((elem.type || "").slice(0, 5) === "true/") { 26825 elem.type = elem.type.slice(5); 26826 } else { 26827 elem.removeAttribute("type"); 26828 } 26829 return elem; 26830 } 26831 function cloneCopyEvent(src, dest) { 26832 var i10, l10, type, pdataOld, udataOld, udataCur, events; 26833 if (dest.nodeType !== 1) { 26834 return; 26835 } 26836 if (dataPriv.hasData(src)) { 26837 pdataOld = dataPriv.get(src); 26838 events = pdataOld.events; 26839 if (events) { 26840 dataPriv.remove(dest, "handle events"); 26841 for (type in events) { 26842 for (i10 = 0, l10 = events[type].length; i10 < l10; i10++) { 26843 jQuery2.event.add(dest, type, events[type][i10]); 26844 } 26845 } 26846 } 26847 } 26848 if (dataUser.hasData(src)) { 26849 udataOld = dataUser.access(src); 26850 udataCur = jQuery2.extend({}, udataOld); 26851 dataUser.set(dest, udataCur); 26852 } 26853 } 26854 function fixInput(src, dest) { 26855 var nodeName2 = dest.nodeName.toLowerCase(); 26856 if (nodeName2 === "input" && rcheckableType.test(src.type)) { 26857 dest.checked = src.checked; 26858 } else if (nodeName2 === "input" || nodeName2 === "textarea") { 26859 dest.defaultValue = src.defaultValue; 26860 } 26861 } 26862 function domManip(collection, args, callback, ignored) { 26863 args = flat(args); 26864 var fragment, first, scripts, hasScripts, node, doc, i10 = 0, l10 = collection.length, iNoClone = l10 - 1, value = args[0], valueIsFunction = isFunction(value); 26865 if (valueIsFunction || l10 > 1 && typeof value === "string" && !support.checkClone && rchecked.test(value)) { 26866 return collection.each(function(index) { 26867 var self2 = collection.eq(index); 26868 if (valueIsFunction) { 26869 args[0] = value.call(this, index, self2.html()); 26870 } 26871 domManip(self2, args, callback, ignored); 26872 }); 26873 } 26874 if (l10) { 26875 fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored); 26876 first = fragment.firstChild; 26877 if (fragment.childNodes.length === 1) { 26878 fragment = first; 26879 } 26880 if (first || ignored) { 26881 scripts = jQuery2.map(getAll(fragment, "script"), disableScript); 26882 hasScripts = scripts.length; 26883 for (; i10 < l10; i10++) { 26884 node = fragment; 26885 if (i10 !== iNoClone) { 26886 node = jQuery2.clone(node, true, true); 26887 if (hasScripts) { 26888 jQuery2.merge(scripts, getAll(node, "script")); 26889 } 26890 } 26891 callback.call(collection[i10], node, i10); 26892 } 26893 if (hasScripts) { 26894 doc = scripts[scripts.length - 1].ownerDocument; 26895 jQuery2.map(scripts, restoreScript); 26896 for (i10 = 0; i10 < hasScripts; i10++) { 26897 node = scripts[i10]; 26898 if (rscriptType.test(node.type || "") && !dataPriv.access(node, "globalEval") && jQuery2.contains(doc, node)) { 26899 if (node.src && (node.type || "").toLowerCase() !== "module") { 26900 if (jQuery2._evalUrl && !node.noModule) { 26901 jQuery2._evalUrl(node.src, { 26902 nonce: node.nonce || node.getAttribute("nonce") 26903 }, doc); 26904 } 26905 } else { 26906 DOMEval(node.textContent.replace(rcleanScript, ""), node, doc); 26907 } 26908 } 26909 } 26910 } 26911 } 26912 } 26913 return collection; 26914 } 26915 function remove(elem, selector3, keepData) { 26916 var node, nodes = selector3 ? jQuery2.filter(selector3, elem) : elem, i10 = 0; 26917 for (; (node = nodes[i10]) != null; i10++) { 26918 if (!keepData && node.nodeType === 1) { 26919 jQuery2.cleanData(getAll(node)); 26920 } 26921 if (node.parentNode) { 26922 if (keepData && isAttached(node)) { 26923 setGlobalEval(getAll(node, "script")); 26924 } 26925 node.parentNode.removeChild(node); 26926 } 26927 } 26928 return elem; 26929 } 26930 jQuery2.extend({ 26931 htmlPrefilter: function(html) { 26932 return html; 26933 }, 26934 clone: function(elem, dataAndEvents, deepDataAndEvents) { 26935 var i10, l10, srcElements, destElements, clone = elem.cloneNode(true), inPage = isAttached(elem); 26936 if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery2.isXMLDoc(elem)) { 26937 destElements = getAll(clone); 26938 srcElements = getAll(elem); 26939 for (i10 = 0, l10 = srcElements.length; i10 < l10; i10++) { 26940 fixInput(srcElements[i10], destElements[i10]); 26941 } 26942 } 26943 if (dataAndEvents) { 26944 if (deepDataAndEvents) { 26945 srcElements = srcElements || getAll(elem); 26946 destElements = destElements || getAll(clone); 26947 for (i10 = 0, l10 = srcElements.length; i10 < l10; i10++) { 26948 cloneCopyEvent(srcElements[i10], destElements[i10]); 26949 } 26950 } else { 26951 cloneCopyEvent(elem, clone); 26952 } 26953 } 26954 destElements = getAll(clone, "script"); 26955 if (destElements.length > 0) { 26956 setGlobalEval(destElements, !inPage && getAll(elem, "script")); 26957 } 26958 return clone; 26959 }, 26960 cleanData: function(elems) { 26961 var data, elem, type, special = jQuery2.event.special, i10 = 0; 26962 for (; (elem = elems[i10]) !== void 0; i10++) { 26963 if (acceptData(elem)) { 26964 if (data = elem[dataPriv.expando]) { 26965 if (data.events) { 26966 for (type in data.events) { 26967 if (special[type]) { 26968 jQuery2.event.remove(elem, type); 26969 } else { 26970 jQuery2.removeEvent(elem, type, data.handle); 26971 } 26972 } 26973 } 26974 elem[dataPriv.expando] = void 0; 26975 } 26976 if (elem[dataUser.expando]) { 26977 elem[dataUser.expando] = void 0; 26978 } 26979 } 26980 } 26981 } 26982 }); 26983 jQuery2.fn.extend({ 26984 detach: function(selector3) { 26985 return remove(this, selector3, true); 26986 }, 26987 remove: function(selector3) { 26988 return remove(this, selector3); 26989 }, 26990 text: function(value) { 26991 return access(this, function(value2) { 26992 return value2 === void 0 ? jQuery2.text(this) : this.empty().each(function() { 26993 if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { 26994 this.textContent = value2; 26995 } 26996 }); 26997 }, null, value, arguments.length); 26998 }, 26999 append: function() { 27000 return domManip(this, arguments, function(elem) { 27001 if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { 27002 var target = manipulationTarget(this, elem); 27003 target.appendChild(elem); 27004 } 27005 }); 27006 }, 27007 prepend: function() { 27008 return domManip(this, arguments, function(elem) { 27009 if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { 27010 var target = manipulationTarget(this, elem); 27011 target.insertBefore(elem, target.firstChild); 27012 } 27013 }); 27014 }, 27015 before: function() { 27016 return domManip(this, arguments, function(elem) { 27017 if (this.parentNode) { 27018 this.parentNode.insertBefore(elem, this); 27019 } 27020 }); 27021 }, 27022 after: function() { 27023 return domManip(this, arguments, function(elem) { 27024 if (this.parentNode) { 27025 this.parentNode.insertBefore(elem, this.nextSibling); 27026 } 27027 }); 27028 }, 27029 empty: function() { 27030 var elem, i10 = 0; 27031 for (; (elem = this[i10]) != null; i10++) { 27032 if (elem.nodeType === 1) { 27033 jQuery2.cleanData(getAll(elem, false)); 27034 elem.textContent = ""; 27035 } 27036 } 27037 return this; 27038 }, 27039 clone: function(dataAndEvents, deepDataAndEvents) { 27040 dataAndEvents = dataAndEvents == null ? false : dataAndEvents; 27041 deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; 27042 return this.map(function() { 27043 return jQuery2.clone(this, dataAndEvents, deepDataAndEvents); 27044 }); 27045 }, 27046 html: function(value) { 27047 return access(this, function(value2) { 27048 var elem = this[0] || {}, i10 = 0, l10 = this.length; 27049 if (value2 === void 0 && elem.nodeType === 1) { 27050 return elem.innerHTML; 27051 } 27052 if (typeof value2 === "string" && !rnoInnerhtml.test(value2) && !wrapMap[(rtagName.exec(value2) || ["", ""])[1].toLowerCase()]) { 27053 value2 = jQuery2.htmlPrefilter(value2); 27054 try { 27055 for (; i10 < l10; i10++) { 27056 elem = this[i10] || {}; 27057 if (elem.nodeType === 1) { 27058 jQuery2.cleanData(getAll(elem, false)); 27059 elem.innerHTML = value2; 27060 } 27061 } 27062 elem = 0; 27063 } catch (e11) { 27064 } 27065 } 27066 if (elem) { 27067 this.empty().append(value2); 27068 } 27069 }, null, value, arguments.length); 27070 }, 27071 replaceWith: function() { 27072 var ignored = []; 27073 return domManip(this, arguments, function(elem) { 27074 var parent = this.parentNode; 27075 if (jQuery2.inArray(this, ignored) < 0) { 27076 jQuery2.cleanData(getAll(this)); 27077 if (parent) { 27078 parent.replaceChild(elem, this); 27079 } 27080 } 27081 }, ignored); 27082 } 27083 }); 27084 jQuery2.each({ 27085 appendTo: "append", 27086 prependTo: "prepend", 27087 insertBefore: "before", 27088 insertAfter: "after", 27089 replaceAll: "replaceWith" 27090 }, function(name, original) { 27091 jQuery2.fn[name] = function(selector3) { 27092 var elems, ret = [], insert = jQuery2(selector3), last = insert.length - 1, i10 = 0; 27093 for (; i10 <= last; i10++) { 27094 elems = i10 === last ? this : this.clone(true); 27095 jQuery2(insert[i10])[original](elems); 27096 push.apply(ret, elems.get()); 27097 } 27098 return this.pushStack(ret); 27099 }; 27100 }); 27101 var rnumnonpx = new RegExp("^(" + pnum + ")(?!px)[a-z%]+$", "i"); 27102 var rcustomProp = /^--/; 27103 var getStyles = function(elem) { 27104 var view = elem.ownerDocument.defaultView; 27105 if (!view || !view.opener) { 27106 view = window2; 27107 } 27108 return view.getComputedStyle(elem); 27109 }; 27110 var swap = function(elem, options, callback) { 27111 var ret, name, old = {}; 27112 for (name in options) { 27113 old[name] = elem.style[name]; 27114 elem.style[name] = options[name]; 27115 } 27116 ret = callback.call(elem); 27117 for (name in options) { 27118 elem.style[name] = old[name]; 27119 } 27120 return ret; 27121 }; 27122 var rboxStyle = new RegExp(cssExpand.join("|"), "i"); 27123 (function() { 27124 function computeStyleTests() { 27125 if (!div) { 27126 return; 27127 } 27128 container.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0"; 27129 div.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%"; 27130 documentElement.appendChild(container).appendChild(div); 27131 var divStyle = window2.getComputedStyle(div); 27132 pixelPositionVal = divStyle.top !== "1%"; 27133 reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12; 27134 div.style.right = "60%"; 27135 pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36; 27136 boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36; 27137 div.style.position = "absolute"; 27138 scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12; 27139 documentElement.removeChild(container); 27140 div = null; 27141 } 27142 function roundPixelMeasures(measure) { 27143 return Math.round(parseFloat(measure)); 27144 } 27145 var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, reliableTrDimensionsVal, reliableMarginLeftVal, container = document2.createElement("div"), div = document2.createElement("div"); 27146 if (!div.style) { 27147 return; 27148 } 27149 div.style.backgroundClip = "content-box"; 27150 div.cloneNode(true).style.backgroundClip = ""; 27151 support.clearCloneStyle = div.style.backgroundClip === "content-box"; 27152 jQuery2.extend(support, { 27153 boxSizingReliable: function() { 27154 computeStyleTests(); 27155 return boxSizingReliableVal; 27156 }, 27157 pixelBoxStyles: function() { 27158 computeStyleTests(); 27159 return pixelBoxStylesVal; 27160 }, 27161 pixelPosition: function() { 27162 computeStyleTests(); 27163 return pixelPositionVal; 27164 }, 27165 reliableMarginLeft: function() { 27166 computeStyleTests(); 27167 return reliableMarginLeftVal; 27168 }, 27169 scrollboxSize: function() { 27170 computeStyleTests(); 27171 return scrollboxSizeVal; 27172 }, 27173 // Support: IE 9 - 11+, Edge 15 - 18+ 27174 // IE/Edge misreport `getComputedStyle` of table rows with width/height 27175 // set in CSS while `offset*` properties report correct values. 27176 // Behavior in IE 9 is more subtle than in newer versions & it passes 27177 // some versions of this test; make sure not to make it pass there! 27178 // 27179 // Support: Firefox 70+ 27180 // Only Firefox includes border widths 27181 // in computed dimensions. (gh-4529) 27182 reliableTrDimensions: function() { 27183 var table, tr, trChild, trStyle; 27184 if (reliableTrDimensionsVal == null) { 27185 table = document2.createElement("table"); 27186 tr = document2.createElement("tr"); 27187 trChild = document2.createElement("div"); 27188 table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; 27189 tr.style.cssText = "box-sizing:content-box;border:1px solid"; 27190 tr.style.height = "1px"; 27191 trChild.style.height = "9px"; 27192 trChild.style.display = "block"; 27193 documentElement.appendChild(table).appendChild(tr).appendChild(trChild); 27194 trStyle = window2.getComputedStyle(tr); 27195 reliableTrDimensionsVal = parseInt(trStyle.height, 10) + parseInt(trStyle.borderTopWidth, 10) + parseInt(trStyle.borderBottomWidth, 10) === tr.offsetHeight; 27196 documentElement.removeChild(table); 27197 } 27198 return reliableTrDimensionsVal; 27199 } 27200 }); 27201 })(); 27202 function curCSS(elem, name, computed) { 27203 var width, minWidth, maxWidth, ret, isCustomProp = rcustomProp.test(name), style = elem.style; 27204 computed = computed || getStyles(elem); 27205 if (computed) { 27206 ret = computed.getPropertyValue(name) || computed[name]; 27207 if (isCustomProp && ret) { 27208 ret = ret.replace(rtrimCSS, "$1") || void 0; 27209 } 27210 if (ret === "" && !isAttached(elem)) { 27211 ret = jQuery2.style(elem, name); 27212 } 27213 if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) { 27214 width = style.width; 27215 minWidth = style.minWidth; 27216 maxWidth = style.maxWidth; 27217 style.minWidth = style.maxWidth = style.width = ret; 27218 ret = computed.width; 27219 style.width = width; 27220 style.minWidth = minWidth; 27221 style.maxWidth = maxWidth; 27222 } 27223 } 27224 return ret !== void 0 ? ( 27225 // Support: IE <=9 - 11 only 27226 // IE returns zIndex value as an integer. 27227 ret + "" 27228 ) : ret; 27229 } 27230 function addGetHookIf(conditionFn, hookFn) { 27231 return { 27232 get: function() { 27233 if (conditionFn()) { 27234 delete this.get; 27235 return; 27236 } 27237 return (this.get = hookFn).apply(this, arguments); 27238 } 27239 }; 27240 } 27241 var cssPrefixes = ["Webkit", "Moz", "ms"], emptyStyle = document2.createElement("div").style, vendorProps = {}; 27242 function vendorPropName(name) { 27243 var capName = name[0].toUpperCase() + name.slice(1), i10 = cssPrefixes.length; 27244 while (i10--) { 27245 name = cssPrefixes[i10] + capName; 27246 if (name in emptyStyle) { 27247 return name; 27248 } 27249 } 27250 } 27251 function finalPropName(name) { 27252 var final = jQuery2.cssProps[name] || vendorProps[name]; 27253 if (final) { 27254 return final; 27255 } 27256 if (name in emptyStyle) { 27257 return name; 27258 } 27259 return vendorProps[name] = vendorPropName(name) || name; 27260 } 27261 var rdisplayswap = /^(none|table(?!-c[ea]).+)/, cssShow = { position: "absolute", visibility: "hidden", display: "block" }, cssNormalTransform = { 27262 letterSpacing: "0", 27263 fontWeight: "400" 27264 }; 27265 function setPositiveNumber(_elem, value, subtract) { 27266 var matches = rcssNum.exec(value); 27267 return matches ? ( 27268 // Guard against undefined "subtract", e.g., when used as in cssHooks 27269 Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || "px") 27270 ) : value; 27271 } 27272 function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) { 27273 var i10 = dimension === "width" ? 1 : 0, extra = 0, delta = 0, marginDelta = 0; 27274 if (box === (isBorderBox ? "border" : "content")) { 27275 return 0; 27276 } 27277 for (; i10 < 4; i10 += 2) { 27278 if (box === "margin") { 27279 marginDelta += jQuery2.css(elem, box + cssExpand[i10], true, styles); 27280 } 27281 if (!isBorderBox) { 27282 delta += jQuery2.css(elem, "padding" + cssExpand[i10], true, styles); 27283 if (box !== "padding") { 27284 delta += jQuery2.css(elem, "border" + cssExpand[i10] + "Width", true, styles); 27285 } else { 27286 extra += jQuery2.css(elem, "border" + cssExpand[i10] + "Width", true, styles); 27287 } 27288 } else { 27289 if (box === "content") { 27290 delta -= jQuery2.css(elem, "padding" + cssExpand[i10], true, styles); 27291 } 27292 if (box !== "margin") { 27293 delta -= jQuery2.css(elem, "border" + cssExpand[i10] + "Width", true, styles); 27294 } 27295 } 27296 } 27297 if (!isBorderBox && computedVal >= 0) { 27298 delta += Math.max(0, Math.ceil( 27299 elem["offset" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5 27300 // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter 27301 // Use an explicit zero to avoid NaN (gh-3964) 27302 )) || 0; 27303 } 27304 return delta + marginDelta; 27305 } 27306 function getWidthOrHeight(elem, dimension, extra) { 27307 var styles = getStyles(elem), boxSizingNeeded = !support.boxSizingReliable() || extra, isBorderBox = boxSizingNeeded && jQuery2.css(elem, "boxSizing", false, styles) === "border-box", valueIsBorderBox = isBorderBox, val = curCSS(elem, dimension, styles), offsetProp = "offset" + dimension[0].toUpperCase() + dimension.slice(1); 27308 if (rnumnonpx.test(val)) { 27309 if (!extra) { 27310 return val; 27311 } 27312 val = "auto"; 27313 } 27314 if ((!support.boxSizingReliable() && isBorderBox || // Support: IE 10 - 11+, Edge 15 - 18+ 27315 // IE/Edge misreport `getComputedStyle` of table rows with width/height 27316 // set in CSS while `offset*` properties report correct values. 27317 // Interestingly, in some cases IE 9 doesn't suffer from this issue. 27318 !support.reliableTrDimensions() && nodeName(elem, "tr") || // Fall back to offsetWidth/offsetHeight when value is "auto" 27319 // This happens for inline elements with no explicit setting (gh-3571) 27320 val === "auto" || // Support: Android <=4.1 - 4.3 only 27321 // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) 27322 !parseFloat(val) && jQuery2.css(elem, "display", false, styles) === "inline") && // Make sure the element is visible & connected 27323 elem.getClientRects().length) { 27324 isBorderBox = jQuery2.css(elem, "boxSizing", false, styles) === "border-box"; 27325 valueIsBorderBox = offsetProp in elem; 27326 if (valueIsBorderBox) { 27327 val = elem[offsetProp]; 27328 } 27329 } 27330 val = parseFloat(val) || 0; 27331 return val + boxModelAdjustment( 27332 elem, 27333 dimension, 27334 extra || (isBorderBox ? "border" : "content"), 27335 valueIsBorderBox, 27336 styles, 27337 // Provide the current computed size to request scroll gutter calculation (gh-3589) 27338 val 27339 ) + "px"; 27340 } 27341 jQuery2.extend({ 27342 // Add in style property hooks for overriding the default 27343 // behavior of getting and setting a style property 27344 cssHooks: { 27345 opacity: { 27346 get: function(elem, computed) { 27347 if (computed) { 27348 var ret = curCSS(elem, "opacity"); 27349 return ret === "" ? "1" : ret; 27350 } 27351 } 27352 } 27353 }, 27354 // Don't automatically add "px" to these possibly-unitless properties 27355 cssNumber: { 27356 animationIterationCount: true, 27357 aspectRatio: true, 27358 borderImageSlice: true, 27359 columnCount: true, 27360 flexGrow: true, 27361 flexShrink: true, 27362 fontWeight: true, 27363 gridArea: true, 27364 gridColumn: true, 27365 gridColumnEnd: true, 27366 gridColumnStart: true, 27367 gridRow: true, 27368 gridRowEnd: true, 27369 gridRowStart: true, 27370 lineHeight: true, 27371 opacity: true, 27372 order: true, 27373 orphans: true, 27374 scale: true, 27375 widows: true, 27376 zIndex: true, 27377 zoom: true, 27378 // SVG-related 27379 fillOpacity: true, 27380 floodOpacity: true, 27381 stopOpacity: true, 27382 strokeMiterlimit: true, 27383 strokeOpacity: true 27384 }, 27385 // Add in properties whose names you wish to fix before 27386 // setting or getting the value 27387 cssProps: {}, 27388 // Get and set the style property on a DOM Node 27389 style: function(elem, name, value, extra) { 27390 if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) { 27391 return; 27392 } 27393 var ret, type, hooks, origName = camelCase(name), isCustomProp = rcustomProp.test(name), style = elem.style; 27394 if (!isCustomProp) { 27395 name = finalPropName(origName); 27396 } 27397 hooks = jQuery2.cssHooks[name] || jQuery2.cssHooks[origName]; 27398 if (value !== void 0) { 27399 type = typeof value; 27400 if (type === "string" && (ret = rcssNum.exec(value)) && ret[1]) { 27401 value = adjustCSS(elem, name, ret); 27402 type = "number"; 27403 } 27404 if (value == null || value !== value) { 27405 return; 27406 } 27407 if (type === "number" && !isCustomProp) { 27408 value += ret && ret[3] || (jQuery2.cssNumber[origName] ? "" : "px"); 27409 } 27410 if (!support.clearCloneStyle && value === "" && name.indexOf("background") === 0) { 27411 style[name] = "inherit"; 27412 } 27413 if (!hooks || !("set" in hooks) || (value = hooks.set(elem, value, extra)) !== void 0) { 27414 if (isCustomProp) { 27415 style.setProperty(name, value); 27416 } else { 27417 style[name] = value; 27418 } 27419 } 27420 } else { 27421 if (hooks && "get" in hooks && (ret = hooks.get(elem, false, extra)) !== void 0) { 27422 return ret; 27423 } 27424 return style[name]; 27425 } 27426 }, 27427 css: function(elem, name, extra, styles) { 27428 var val, num, hooks, origName = camelCase(name), isCustomProp = rcustomProp.test(name); 27429 if (!isCustomProp) { 27430 name = finalPropName(origName); 27431 } 27432 hooks = jQuery2.cssHooks[name] || jQuery2.cssHooks[origName]; 27433 if (hooks && "get" in hooks) { 27434 val = hooks.get(elem, true, extra); 27435 } 27436 if (val === void 0) { 27437 val = curCSS(elem, name, styles); 27438 } 27439 if (val === "normal" && name in cssNormalTransform) { 27440 val = cssNormalTransform[name]; 27441 } 27442 if (extra === "" || extra) { 27443 num = parseFloat(val); 27444 return extra === true || isFinite(num) ? num || 0 : val; 27445 } 27446 return val; 27447 } 27448 }); 27449 jQuery2.each(["height", "width"], function(_i2, dimension) { 27450 jQuery2.cssHooks[dimension] = { 27451 get: function(elem, computed, extra) { 27452 if (computed) { 27453 return rdisplayswap.test(jQuery2.css(elem, "display")) && // Support: Safari 8+ 27454 // Table columns in Safari have non-zero offsetWidth & zero 27455 // getBoundingClientRect().width unless display is changed. 27456 // Support: IE <=11 only 27457 // Running getBoundingClientRect on a disconnected node 27458 // in IE throws an error. 27459 (!elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function() { 27460 return getWidthOrHeight(elem, dimension, extra); 27461 }) : getWidthOrHeight(elem, dimension, extra); 27462 } 27463 }, 27464 set: function(elem, value, extra) { 27465 var matches, styles = getStyles(elem), scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === "absolute", boxSizingNeeded = scrollboxSizeBuggy || extra, isBorderBox = boxSizingNeeded && jQuery2.css(elem, "boxSizing", false, styles) === "border-box", subtract = extra ? boxModelAdjustment( 27466 elem, 27467 dimension, 27468 extra, 27469 isBorderBox, 27470 styles 27471 ) : 0; 27472 if (isBorderBox && scrollboxSizeBuggy) { 27473 subtract -= Math.ceil( 27474 elem["offset" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, "border", false, styles) - 0.5 27475 ); 27476 } 27477 if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || "px") !== "px") { 27478 elem.style[dimension] = value; 27479 value = jQuery2.css(elem, dimension); 27480 } 27481 return setPositiveNumber(elem, value, subtract); 27482 } 27483 }; 27484 }); 27485 jQuery2.cssHooks.marginLeft = addGetHookIf( 27486 support.reliableMarginLeft, 27487 function(elem, computed) { 27488 if (computed) { 27489 return (parseFloat(curCSS(elem, "marginLeft")) || elem.getBoundingClientRect().left - swap(elem, { marginLeft: 0 }, function() { 27490 return elem.getBoundingClientRect().left; 27491 })) + "px"; 27492 } 27493 } 27494 ); 27495 jQuery2.each({ 27496 margin: "", 27497 padding: "", 27498 border: "Width" 27499 }, function(prefix, suffix) { 27500 jQuery2.cssHooks[prefix + suffix] = { 27501 expand: function(value) { 27502 var i10 = 0, expanded = {}, parts = typeof value === "string" ? value.split(" ") : [value]; 27503 for (; i10 < 4; i10++) { 27504 expanded[prefix + cssExpand[i10] + suffix] = parts[i10] || parts[i10 - 2] || parts[0]; 27505 } 27506 return expanded; 27507 } 27508 }; 27509 if (prefix !== "margin") { 27510 jQuery2.cssHooks[prefix + suffix].set = setPositiveNumber; 27511 } 27512 }); 27513 jQuery2.fn.extend({ 27514 css: function(name, value) { 27515 return access(this, function(elem, name2, value2) { 27516 var styles, len, map = {}, i10 = 0; 27517 if (Array.isArray(name2)) { 27518 styles = getStyles(elem); 27519 len = name2.length; 27520 for (; i10 < len; i10++) { 27521 map[name2[i10]] = jQuery2.css(elem, name2[i10], false, styles); 27522 } 27523 return map; 27524 } 27525 return value2 !== void 0 ? jQuery2.style(elem, name2, value2) : jQuery2.css(elem, name2); 27526 }, name, value, arguments.length > 1); 27527 } 27528 }); 27529 function Tween2(elem, options, prop, end, easing) { 27530 return new Tween2.prototype.init(elem, options, prop, end, easing); 27531 } 27532 jQuery2.Tween = Tween2; 27533 Tween2.prototype = { 27534 constructor: Tween2, 27535 init: function(elem, options, prop, end, easing, unit) { 27536 this.elem = elem; 27537 this.prop = prop; 27538 this.easing = easing || jQuery2.easing._default; 27539 this.options = options; 27540 this.start = this.now = this.cur(); 27541 this.end = end; 27542 this.unit = unit || (jQuery2.cssNumber[prop] ? "" : "px"); 27543 }, 27544 cur: function() { 27545 var hooks = Tween2.propHooks[this.prop]; 27546 return hooks && hooks.get ? hooks.get(this) : Tween2.propHooks._default.get(this); 27547 }, 27548 run: function(percent) { 27549 var eased, hooks = Tween2.propHooks[this.prop]; 27550 if (this.options.duration) { 27551 this.pos = eased = jQuery2.easing[this.easing]( 27552 percent, 27553 this.options.duration * percent, 27554 0, 27555 1, 27556 this.options.duration 27557 ); 27558 } else { 27559 this.pos = eased = percent; 27560 } 27561 this.now = (this.end - this.start) * eased + this.start; 27562 if (this.options.step) { 27563 this.options.step.call(this.elem, this.now, this); 27564 } 27565 if (hooks && hooks.set) { 27566 hooks.set(this); 27567 } else { 27568 Tween2.propHooks._default.set(this); 27569 } 27570 return this; 27571 } 27572 }; 27573 Tween2.prototype.init.prototype = Tween2.prototype; 27574 Tween2.propHooks = { 27575 _default: { 27576 get: function(tween) { 27577 var result; 27578 if (tween.elem.nodeType !== 1 || tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) { 27579 return tween.elem[tween.prop]; 27580 } 27581 result = jQuery2.css(tween.elem, tween.prop, ""); 27582 return !result || result === "auto" ? 0 : result; 27583 }, 27584 set: function(tween) { 27585 if (jQuery2.fx.step[tween.prop]) { 27586 jQuery2.fx.step[tween.prop](tween); 27587 } else if (tween.elem.nodeType === 1 && (jQuery2.cssHooks[tween.prop] || tween.elem.style[finalPropName(tween.prop)] != null)) { 27588 jQuery2.style(tween.elem, tween.prop, tween.now + tween.unit); 27589 } else { 27590 tween.elem[tween.prop] = tween.now; 27591 } 27592 } 27593 } 27594 }; 27595 Tween2.propHooks.scrollTop = Tween2.propHooks.scrollLeft = { 27596 set: function(tween) { 27597 if (tween.elem.nodeType && tween.elem.parentNode) { 27598 tween.elem[tween.prop] = tween.now; 27599 } 27600 } 27601 }; 27602 jQuery2.easing = { 27603 linear: function(p2) { 27604 return p2; 27605 }, 27606 swing: function(p2) { 27607 return 0.5 - Math.cos(p2 * Math.PI) / 2; 27608 }, 27609 _default: "swing" 27610 }; 27611 jQuery2.fx = Tween2.prototype.init; 27612 jQuery2.fx.step = {}; 27613 var fxNow, inProgress, rfxtypes = /^(?:toggle|show|hide)$/, rrun = /queueHooks$/; 27614 function schedule() { 27615 if (inProgress) { 27616 if (document2.hidden === false && window2.requestAnimationFrame) { 27617 window2.requestAnimationFrame(schedule); 27618 } else { 27619 window2.setTimeout(schedule, jQuery2.fx.interval); 27620 } 27621 jQuery2.fx.tick(); 27622 } 27623 } 27624 function createFxNow() { 27625 window2.setTimeout(function() { 27626 fxNow = void 0; 27627 }); 27628 return fxNow = Date.now(); 27629 } 27630 function genFx(type, includeWidth) { 27631 var which, i10 = 0, attrs = { height: type }; 27632 includeWidth = includeWidth ? 1 : 0; 27633 for (; i10 < 4; i10 += 2 - includeWidth) { 27634 which = cssExpand[i10]; 27635 attrs["margin" + which] = attrs["padding" + which] = type; 27636 } 27637 if (includeWidth) { 27638 attrs.opacity = attrs.width = type; 27639 } 27640 return attrs; 27641 } 27642 function createTween(value, prop, animation) { 27643 var tween, collection = (Animation2.tweeners[prop] || []).concat(Animation2.tweeners["*"]), index = 0, length = collection.length; 27644 for (; index < length; index++) { 27645 if (tween = collection[index].call(animation, prop, value)) { 27646 return tween; 27647 } 27648 } 27649 } 27650 function defaultPrefilter(elem, props, opts) { 27651 var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, isBox = "width" in props || "height" in props, anim = this, orig = {}, style = elem.style, hidden = elem.nodeType && isHiddenWithinTree(elem), dataShow = dataPriv.get(elem, "fxshow"); 27652 if (!opts.queue) { 27653 hooks = jQuery2._queueHooks(elem, "fx"); 27654 if (hooks.unqueued == null) { 27655 hooks.unqueued = 0; 27656 oldfire = hooks.empty.fire; 27657 hooks.empty.fire = function() { 27658 if (!hooks.unqueued) { 27659 oldfire(); 27660 } 27661 }; 27662 } 27663 hooks.unqueued++; 27664 anim.always(function() { 27665 anim.always(function() { 27666 hooks.unqueued--; 27667 if (!jQuery2.queue(elem, "fx").length) { 27668 hooks.empty.fire(); 27669 } 27670 }); 27671 }); 27672 } 27673 for (prop in props) { 27674 value = props[prop]; 27675 if (rfxtypes.test(value)) { 27676 delete props[prop]; 27677 toggle = toggle || value === "toggle"; 27678 if (value === (hidden ? "hide" : "show")) { 27679 if (value === "show" && dataShow && dataShow[prop] !== void 0) { 27680 hidden = true; 27681 } else { 27682 continue; 27683 } 27684 } 27685 orig[prop] = dataShow && dataShow[prop] || jQuery2.style(elem, prop); 27686 } 27687 } 27688 propTween = !jQuery2.isEmptyObject(props); 27689 if (!propTween && jQuery2.isEmptyObject(orig)) { 27690 return; 27691 } 27692 if (isBox && elem.nodeType === 1) { 27693 opts.overflow = [style.overflow, style.overflowX, style.overflowY]; 27694 restoreDisplay = dataShow && dataShow.display; 27695 if (restoreDisplay == null) { 27696 restoreDisplay = dataPriv.get(elem, "display"); 27697 } 27698 display = jQuery2.css(elem, "display"); 27699 if (display === "none") { 27700 if (restoreDisplay) { 27701 display = restoreDisplay; 27702 } else { 27703 showHide([elem], true); 27704 restoreDisplay = elem.style.display || restoreDisplay; 27705 display = jQuery2.css(elem, "display"); 27706 showHide([elem]); 27707 } 27708 } 27709 if (display === "inline" || display === "inline-block" && restoreDisplay != null) { 27710 if (jQuery2.css(elem, "float") === "none") { 27711 if (!propTween) { 27712 anim.done(function() { 27713 style.display = restoreDisplay; 27714 }); 27715 if (restoreDisplay == null) { 27716 display = style.display; 27717 restoreDisplay = display === "none" ? "" : display; 27718 } 27719 } 27720 style.display = "inline-block"; 27721 } 27722 } 27723 } 27724 if (opts.overflow) { 27725 style.overflow = "hidden"; 27726 anim.always(function() { 27727 style.overflow = opts.overflow[0]; 27728 style.overflowX = opts.overflow[1]; 27729 style.overflowY = opts.overflow[2]; 27730 }); 27731 } 27732 propTween = false; 27733 for (prop in orig) { 27734 if (!propTween) { 27735 if (dataShow) { 27736 if ("hidden" in dataShow) { 27737 hidden = dataShow.hidden; 27738 } 27739 } else { 27740 dataShow = dataPriv.access(elem, "fxshow", { display: restoreDisplay }); 27741 } 27742 if (toggle) { 27743 dataShow.hidden = !hidden; 27744 } 27745 if (hidden) { 27746 showHide([elem], true); 27747 } 27748 anim.done(function() { 27749 if (!hidden) { 27750 showHide([elem]); 27751 } 27752 dataPriv.remove(elem, "fxshow"); 27753 for (prop in orig) { 27754 jQuery2.style(elem, prop, orig[prop]); 27755 } 27756 }); 27757 } 27758 propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim); 27759 if (!(prop in dataShow)) { 27760 dataShow[prop] = propTween.start; 27761 if (hidden) { 27762 propTween.end = propTween.start; 27763 propTween.start = 0; 27764 } 27765 } 27766 } 27767 } 27768 function propFilter(props, specialEasing) { 27769 var index, name, easing, value, hooks; 27770 for (index in props) { 27771 name = camelCase(index); 27772 easing = specialEasing[name]; 27773 value = props[index]; 27774 if (Array.isArray(value)) { 27775 easing = value[1]; 27776 value = props[index] = value[0]; 27777 } 27778 if (index !== name) { 27779 props[name] = value; 27780 delete props[index]; 27781 } 27782 hooks = jQuery2.cssHooks[name]; 27783 if (hooks && "expand" in hooks) { 27784 value = hooks.expand(value); 27785 delete props[name]; 27786 for (index in value) { 27787 if (!(index in props)) { 27788 props[index] = value[index]; 27789 specialEasing[index] = easing; 27790 } 27791 } 27792 } else { 27793 specialEasing[name] = easing; 27794 } 27795 } 27796 } 27797 function Animation2(elem, properties, options) { 27798 var result, stopped, index = 0, length = Animation2.prefilters.length, deferred = jQuery2.Deferred().always(function() { 27799 delete tick.elem; 27800 }), tick = function() { 27801 if (stopped) { 27802 return false; 27803 } 27804 var currentTime = fxNow || createFxNow(), remaining = Math.max(0, animation.startTime + animation.duration - currentTime), temp = remaining / animation.duration || 0, percent = 1 - temp, index2 = 0, length2 = animation.tweens.length; 27805 for (; index2 < length2; index2++) { 27806 animation.tweens[index2].run(percent); 27807 } 27808 deferred.notifyWith(elem, [animation, percent, remaining]); 27809 if (percent < 1 && length2) { 27810 return remaining; 27811 } 27812 if (!length2) { 27813 deferred.notifyWith(elem, [animation, 1, 0]); 27814 } 27815 deferred.resolveWith(elem, [animation]); 27816 return false; 27817 }, animation = deferred.promise({ 27818 elem, 27819 props: jQuery2.extend({}, properties), 27820 opts: jQuery2.extend(true, { 27821 specialEasing: {}, 27822 easing: jQuery2.easing._default 27823 }, options), 27824 originalProperties: properties, 27825 originalOptions: options, 27826 startTime: fxNow || createFxNow(), 27827 duration: options.duration, 27828 tweens: [], 27829 createTween: function(prop, end) { 27830 var tween = jQuery2.Tween( 27831 elem, 27832 animation.opts, 27833 prop, 27834 end, 27835 animation.opts.specialEasing[prop] || animation.opts.easing 27836 ); 27837 animation.tweens.push(tween); 27838 return tween; 27839 }, 27840 stop: function(gotoEnd) { 27841 var index2 = 0, length2 = gotoEnd ? animation.tweens.length : 0; 27842 if (stopped) { 27843 return this; 27844 } 27845 stopped = true; 27846 for (; index2 < length2; index2++) { 27847 animation.tweens[index2].run(1); 27848 } 27849 if (gotoEnd) { 27850 deferred.notifyWith(elem, [animation, 1, 0]); 27851 deferred.resolveWith(elem, [animation, gotoEnd]); 27852 } else { 27853 deferred.rejectWith(elem, [animation, gotoEnd]); 27854 } 27855 return this; 27856 } 27857 }), props = animation.props; 27858 propFilter(props, animation.opts.specialEasing); 27859 for (; index < length; index++) { 27860 result = Animation2.prefilters[index].call(animation, elem, props, animation.opts); 27861 if (result) { 27862 if (isFunction(result.stop)) { 27863 jQuery2._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result); 27864 } 27865 return result; 27866 } 27867 } 27868 jQuery2.map(props, createTween, animation); 27869 if (isFunction(animation.opts.start)) { 27870 animation.opts.start.call(elem, animation); 27871 } 27872 animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always); 27873 jQuery2.fx.timer( 27874 jQuery2.extend(tick, { 27875 elem, 27876 anim: animation, 27877 queue: animation.opts.queue 27878 }) 27879 ); 27880 return animation; 27881 } 27882 jQuery2.Animation = jQuery2.extend(Animation2, { 27883 tweeners: { 27884 "*": [function(prop, value) { 27885 var tween = this.createTween(prop, value); 27886 adjustCSS(tween.elem, prop, rcssNum.exec(value), tween); 27887 return tween; 27888 }] 27889 }, 27890 tweener: function(props, callback) { 27891 if (isFunction(props)) { 27892 callback = props; 27893 props = ["*"]; 27894 } else { 27895 props = props.match(rnothtmlwhite); 27896 } 27897 var prop, index = 0, length = props.length; 27898 for (; index < length; index++) { 27899 prop = props[index]; 27900 Animation2.tweeners[prop] = Animation2.tweeners[prop] || []; 27901 Animation2.tweeners[prop].unshift(callback); 27902 } 27903 }, 27904 prefilters: [defaultPrefilter], 27905 prefilter: function(callback, prepend) { 27906 if (prepend) { 27907 Animation2.prefilters.unshift(callback); 27908 } else { 27909 Animation2.prefilters.push(callback); 27910 } 27911 } 27912 }); 27913 jQuery2.speed = function(speed, easing, fn) { 27914 var opt = speed && typeof speed === "object" ? jQuery2.extend({}, speed) : { 27915 complete: fn || !fn && easing || isFunction(speed) && speed, 27916 duration: speed, 27917 easing: fn && easing || easing && !isFunction(easing) && easing 27918 }; 27919 if (jQuery2.fx.off) { 27920 opt.duration = 0; 27921 } else { 27922 if (typeof opt.duration !== "number") { 27923 if (opt.duration in jQuery2.fx.speeds) { 27924 opt.duration = jQuery2.fx.speeds[opt.duration]; 27925 } else { 27926 opt.duration = jQuery2.fx.speeds._default; 27927 } 27928 } 27929 } 27930 if (opt.queue == null || opt.queue === true) { 27931 opt.queue = "fx"; 27932 } 27933 opt.old = opt.complete; 27934 opt.complete = function() { 27935 if (isFunction(opt.old)) { 27936 opt.old.call(this); 27937 } 27938 if (opt.queue) { 27939 jQuery2.dequeue(this, opt.queue); 27940 } 27941 }; 27942 return opt; 27943 }; 27944 jQuery2.fn.extend({ 27945 fadeTo: function(speed, to, easing, callback) { 27946 return this.filter(isHiddenWithinTree).css("opacity", 0).show().end().animate({ opacity: to }, speed, easing, callback); 27947 }, 27948 animate: function(prop, speed, easing, callback) { 27949 var empty = jQuery2.isEmptyObject(prop), optall = jQuery2.speed(speed, easing, callback), doAnimation = function() { 27950 var anim = Animation2(this, jQuery2.extend({}, prop), optall); 27951 if (empty || dataPriv.get(this, "finish")) { 27952 anim.stop(true); 27953 } 27954 }; 27955 doAnimation.finish = doAnimation; 27956 return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation); 27957 }, 27958 stop: function(type, clearQueue, gotoEnd) { 27959 var stopQueue = function(hooks) { 27960 var stop = hooks.stop; 27961 delete hooks.stop; 27962 stop(gotoEnd); 27963 }; 27964 if (typeof type !== "string") { 27965 gotoEnd = clearQueue; 27966 clearQueue = type; 27967 type = void 0; 27968 } 27969 if (clearQueue) { 27970 this.queue(type || "fx", []); 27971 } 27972 return this.each(function() { 27973 var dequeue = true, index = type != null && type + "queueHooks", timers = jQuery2.timers, data = dataPriv.get(this); 27974 if (index) { 27975 if (data[index] && data[index].stop) { 27976 stopQueue(data[index]); 27977 } 27978 } else { 27979 for (index in data) { 27980 if (data[index] && data[index].stop && rrun.test(index)) { 27981 stopQueue(data[index]); 27982 } 27983 } 27984 } 27985 for (index = timers.length; index--; ) { 27986 if (timers[index].elem === this && (type == null || timers[index].queue === type)) { 27987 timers[index].anim.stop(gotoEnd); 27988 dequeue = false; 27989 timers.splice(index, 1); 27990 } 27991 } 27992 if (dequeue || !gotoEnd) { 27993 jQuery2.dequeue(this, type); 27994 } 27995 }); 27996 }, 27997 finish: function(type) { 27998 if (type !== false) { 27999 type = type || "fx"; 28000 } 28001 return this.each(function() { 28002 var index, data = dataPriv.get(this), queue = data[type + "queue"], hooks = data[type + "queueHooks"], timers = jQuery2.timers, length = queue ? queue.length : 0; 28003 data.finish = true; 28004 jQuery2.queue(this, type, []); 28005 if (hooks && hooks.stop) { 28006 hooks.stop.call(this, true); 28007 } 28008 for (index = timers.length; index--; ) { 28009 if (timers[index].elem === this && timers[index].queue === type) { 28010 timers[index].anim.stop(true); 28011 timers.splice(index, 1); 28012 } 28013 } 28014 for (index = 0; index < length; index++) { 28015 if (queue[index] && queue[index].finish) { 28016 queue[index].finish.call(this); 28017 } 28018 } 28019 delete data.finish; 28020 }); 28021 } 28022 }); 28023 jQuery2.each(["toggle", "show", "hide"], function(_i2, name) { 28024 var cssFn = jQuery2.fn[name]; 28025 jQuery2.fn[name] = function(speed, easing, callback) { 28026 return speed == null || typeof speed === "boolean" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback); 28027 }; 28028 }); 28029 jQuery2.each({ 28030 slideDown: genFx("show"), 28031 slideUp: genFx("hide"), 28032 slideToggle: genFx("toggle"), 28033 fadeIn: { opacity: "show" }, 28034 fadeOut: { opacity: "hide" }, 28035 fadeToggle: { opacity: "toggle" } 28036 }, function(name, props) { 28037 jQuery2.fn[name] = function(speed, easing, callback) { 28038 return this.animate(props, speed, easing, callback); 28039 }; 28040 }); 28041 jQuery2.timers = []; 28042 jQuery2.fx.tick = function() { 28043 var timer, i10 = 0, timers = jQuery2.timers; 28044 fxNow = Date.now(); 28045 for (; i10 < timers.length; i10++) { 28046 timer = timers[i10]; 28047 if (!timer() && timers[i10] === timer) { 28048 timers.splice(i10--, 1); 28049 } 28050 } 28051 if (!timers.length) { 28052 jQuery2.fx.stop(); 28053 } 28054 fxNow = void 0; 28055 }; 28056 jQuery2.fx.timer = function(timer) { 28057 jQuery2.timers.push(timer); 28058 jQuery2.fx.start(); 28059 }; 28060 jQuery2.fx.interval = 13; 28061 jQuery2.fx.start = function() { 28062 if (inProgress) { 28063 return; 28064 } 28065 inProgress = true; 28066 schedule(); 28067 }; 28068 jQuery2.fx.stop = function() { 28069 inProgress = null; 28070 }; 28071 jQuery2.fx.speeds = { 28072 slow: 600, 28073 fast: 200, 28074 // Default speed 28075 _default: 400 28076 }; 28077 jQuery2.fn.delay = function(time, type) { 28078 time = jQuery2.fx ? jQuery2.fx.speeds[time] || time : time; 28079 type = type || "fx"; 28080 return this.queue(type, function(next, hooks) { 28081 var timeout = window2.setTimeout(next, time); 28082 hooks.stop = function() { 28083 window2.clearTimeout(timeout); 28084 }; 28085 }); 28086 }; 28087 (function() { 28088 var input = document2.createElement("input"), select2 = document2.createElement("select"), opt = select2.appendChild(document2.createElement("option")); 28089 input.type = "checkbox"; 28090 support.checkOn = input.value !== ""; 28091 support.optSelected = opt.selected; 28092 input = document2.createElement("input"); 28093 input.value = "t"; 28094 input.type = "radio"; 28095 support.radioValue = input.value === "t"; 28096 })(); 28097 var boolHook, attrHandle = jQuery2.expr.attrHandle; 28098 jQuery2.fn.extend({ 28099 attr: function(name, value) { 28100 return access(this, jQuery2.attr, name, value, arguments.length > 1); 28101 }, 28102 removeAttr: function(name) { 28103 return this.each(function() { 28104 jQuery2.removeAttr(this, name); 28105 }); 28106 } 28107 }); 28108 jQuery2.extend({ 28109 attr: function(elem, name, value) { 28110 var ret, hooks, nType = elem.nodeType; 28111 if (nType === 3 || nType === 8 || nType === 2) { 28112 return; 28113 } 28114 if (typeof elem.getAttribute === "undefined") { 28115 return jQuery2.prop(elem, name, value); 28116 } 28117 if (nType !== 1 || !jQuery2.isXMLDoc(elem)) { 28118 hooks = jQuery2.attrHooks[name.toLowerCase()] || (jQuery2.expr.match.bool.test(name) ? boolHook : void 0); 28119 } 28120 if (value !== void 0) { 28121 if (value === null) { 28122 jQuery2.removeAttr(elem, name); 28123 return; 28124 } 28125 if (hooks && "set" in hooks && (ret = hooks.set(elem, value, name)) !== void 0) { 28126 return ret; 28127 } 28128 elem.setAttribute(name, value + ""); 28129 return value; 28130 } 28131 if (hooks && "get" in hooks && (ret = hooks.get(elem, name)) !== null) { 28132 return ret; 28133 } 28134 ret = jQuery2.find.attr(elem, name); 28135 return ret == null ? void 0 : ret; 28136 }, 28137 attrHooks: { 28138 type: { 28139 set: function(elem, value) { 28140 if (!support.radioValue && value === "radio" && nodeName(elem, "input")) { 28141 var val = elem.value; 28142 elem.setAttribute("type", value); 28143 if (val) { 28144 elem.value = val; 28145 } 28146 return value; 28147 } 28148 } 28149 } 28150 }, 28151 removeAttr: function(elem, value) { 28152 var name, i10 = 0, attrNames = value && value.match(rnothtmlwhite); 28153 if (attrNames && elem.nodeType === 1) { 28154 while (name = attrNames[i10++]) { 28155 elem.removeAttribute(name); 28156 } 28157 } 28158 } 28159 }); 28160 boolHook = { 28161 set: function(elem, value, name) { 28162 if (value === false) { 28163 jQuery2.removeAttr(elem, name); 28164 } else { 28165 elem.setAttribute(name, name); 28166 } 28167 return name; 28168 } 28169 }; 28170 jQuery2.each(jQuery2.expr.match.bool.source.match(/\w+/g), function(_i2, name) { 28171 var getter = attrHandle[name] || jQuery2.find.attr; 28172 attrHandle[name] = function(elem, name2, isXML) { 28173 var ret, handle, lowercaseName = name2.toLowerCase(); 28174 if (!isXML) { 28175 handle = attrHandle[lowercaseName]; 28176 attrHandle[lowercaseName] = ret; 28177 ret = getter(elem, name2, isXML) != null ? lowercaseName : null; 28178 attrHandle[lowercaseName] = handle; 28179 } 28180 return ret; 28181 }; 28182 }); 28183 var rfocusable = /^(?:input|select|textarea|button)$/i, rclickable = /^(?:a|area)$/i; 28184 jQuery2.fn.extend({ 28185 prop: function(name, value) { 28186 return access(this, jQuery2.prop, name, value, arguments.length > 1); 28187 }, 28188 removeProp: function(name) { 28189 return this.each(function() { 28190 delete this[jQuery2.propFix[name] || name]; 28191 }); 28192 } 28193 }); 28194 jQuery2.extend({ 28195 prop: function(elem, name, value) { 28196 var ret, hooks, nType = elem.nodeType; 28197 if (nType === 3 || nType === 8 || nType === 2) { 28198 return; 28199 } 28200 if (nType !== 1 || !jQuery2.isXMLDoc(elem)) { 28201 name = jQuery2.propFix[name] || name; 28202 hooks = jQuery2.propHooks[name]; 28203 } 28204 if (value !== void 0) { 28205 if (hooks && "set" in hooks && (ret = hooks.set(elem, value, name)) !== void 0) { 28206 return ret; 28207 } 28208 return elem[name] = value; 28209 } 28210 if (hooks && "get" in hooks && (ret = hooks.get(elem, name)) !== null) { 28211 return ret; 28212 } 28213 return elem[name]; 28214 }, 28215 propHooks: { 28216 tabIndex: { 28217 get: function(elem) { 28218 var tabindex = jQuery2.find.attr(elem, "tabindex"); 28219 if (tabindex) { 28220 return parseInt(tabindex, 10); 28221 } 28222 if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) { 28223 return 0; 28224 } 28225 return -1; 28226 } 28227 } 28228 }, 28229 propFix: { 28230 "for": "htmlFor", 28231 "class": "className" 28232 } 28233 }); 28234 if (!support.optSelected) { 28235 jQuery2.propHooks.selected = { 28236 get: function(elem) { 28237 var parent = elem.parentNode; 28238 if (parent && parent.parentNode) { 28239 parent.parentNode.selectedIndex; 28240 } 28241 return null; 28242 }, 28243 set: function(elem) { 28244 var parent = elem.parentNode; 28245 if (parent) { 28246 parent.selectedIndex; 28247 if (parent.parentNode) { 28248 parent.parentNode.selectedIndex; 28249 } 28250 } 28251 } 28252 }; 28253 } 28254 jQuery2.each([ 28255 "tabIndex", 28256 "readOnly", 28257 "maxLength", 28258 "cellSpacing", 28259 "cellPadding", 28260 "rowSpan", 28261 "colSpan", 28262 "useMap", 28263 "frameBorder", 28264 "contentEditable" 28265 ], function() { 28266 jQuery2.propFix[this.toLowerCase()] = this; 28267 }); 28268 function stripAndCollapse(value) { 28269 var tokens = value.match(rnothtmlwhite) || []; 28270 return tokens.join(" "); 28271 } 28272 function getClass(elem) { 28273 return elem.getAttribute && elem.getAttribute("class") || ""; 28274 } 28275 function classesToArray(value) { 28276 if (Array.isArray(value)) { 28277 return value; 28278 } 28279 if (typeof value === "string") { 28280 return value.match(rnothtmlwhite) || []; 28281 } 28282 return []; 28283 } 28284 jQuery2.fn.extend({ 28285 addClass: function(value) { 28286 var classNames, cur, curValue, className, i10, finalValue; 28287 if (isFunction(value)) { 28288 return this.each(function(j2) { 28289 jQuery2(this).addClass(value.call(this, j2, getClass(this))); 28290 }); 28291 } 28292 classNames = classesToArray(value); 28293 if (classNames.length) { 28294 return this.each(function() { 28295 curValue = getClass(this); 28296 cur = this.nodeType === 1 && " " + stripAndCollapse(curValue) + " "; 28297 if (cur) { 28298 for (i10 = 0; i10 < classNames.length; i10++) { 28299 className = classNames[i10]; 28300 if (cur.indexOf(" " + className + " ") < 0) { 28301 cur += className + " "; 28302 } 28303 } 28304 finalValue = stripAndCollapse(cur); 28305 if (curValue !== finalValue) { 28306 this.setAttribute("class", finalValue); 28307 } 28308 } 28309 }); 28310 } 28311 return this; 28312 }, 28313 removeClass: function(value) { 28314 var classNames, cur, curValue, className, i10, finalValue; 28315 if (isFunction(value)) { 28316 return this.each(function(j2) { 28317 jQuery2(this).removeClass(value.call(this, j2, getClass(this))); 28318 }); 28319 } 28320 if (!arguments.length) { 28321 return this.attr("class", ""); 28322 } 28323 classNames = classesToArray(value); 28324 if (classNames.length) { 28325 return this.each(function() { 28326 curValue = getClass(this); 28327 cur = this.nodeType === 1 && " " + stripAndCollapse(curValue) + " "; 28328 if (cur) { 28329 for (i10 = 0; i10 < classNames.length; i10++) { 28330 className = classNames[i10]; 28331 while (cur.indexOf(" " + className + " ") > -1) { 28332 cur = cur.replace(" " + className + " ", " "); 28333 } 28334 } 28335 finalValue = stripAndCollapse(cur); 28336 if (curValue !== finalValue) { 28337 this.setAttribute("class", finalValue); 28338 } 28339 } 28340 }); 28341 } 28342 return this; 28343 }, 28344 toggleClass: function(value, stateVal) { 28345 var classNames, className, i10, self2, type = typeof value, isValidValue = type === "string" || Array.isArray(value); 28346 if (isFunction(value)) { 28347 return this.each(function(i11) { 28348 jQuery2(this).toggleClass( 28349 value.call(this, i11, getClass(this), stateVal), 28350 stateVal 28351 ); 28352 }); 28353 } 28354 if (typeof stateVal === "boolean" && isValidValue) { 28355 return stateVal ? this.addClass(value) : this.removeClass(value); 28356 } 28357 classNames = classesToArray(value); 28358 return this.each(function() { 28359 if (isValidValue) { 28360 self2 = jQuery2(this); 28361 for (i10 = 0; i10 < classNames.length; i10++) { 28362 className = classNames[i10]; 28363 if (self2.hasClass(className)) { 28364 self2.removeClass(className); 28365 } else { 28366 self2.addClass(className); 28367 } 28368 } 28369 } else if (value === void 0 || type === "boolean") { 28370 className = getClass(this); 28371 if (className) { 28372 dataPriv.set(this, "__className__", className); 28373 } 28374 if (this.setAttribute) { 28375 this.setAttribute( 28376 "class", 28377 className || value === false ? "" : dataPriv.get(this, "__className__") || "" 28378 ); 28379 } 28380 } 28381 }); 28382 }, 28383 hasClass: function(selector3) { 28384 var className, elem, i10 = 0; 28385 className = " " + selector3 + " "; 28386 while (elem = this[i10++]) { 28387 if (elem.nodeType === 1 && (" " + stripAndCollapse(getClass(elem)) + " ").indexOf(className) > -1) { 28388 return true; 28389 } 28390 } 28391 return false; 28392 } 28393 }); 28394 var rreturn = /\r/g; 28395 jQuery2.fn.extend({ 28396 val: function(value) { 28397 var hooks, ret, valueIsFunction, elem = this[0]; 28398 if (!arguments.length) { 28399 if (elem) { 28400 hooks = jQuery2.valHooks[elem.type] || jQuery2.valHooks[elem.nodeName.toLowerCase()]; 28401 if (hooks && "get" in hooks && (ret = hooks.get(elem, "value")) !== void 0) { 28402 return ret; 28403 } 28404 ret = elem.value; 28405 if (typeof ret === "string") { 28406 return ret.replace(rreturn, ""); 28407 } 28408 return ret == null ? "" : ret; 28409 } 28410 return; 28411 } 28412 valueIsFunction = isFunction(value); 28413 return this.each(function(i10) { 28414 var val; 28415 if (this.nodeType !== 1) { 28416 return; 28417 } 28418 if (valueIsFunction) { 28419 val = value.call(this, i10, jQuery2(this).val()); 28420 } else { 28421 val = value; 28422 } 28423 if (val == null) { 28424 val = ""; 28425 } else if (typeof val === "number") { 28426 val += ""; 28427 } else if (Array.isArray(val)) { 28428 val = jQuery2.map(val, function(value2) { 28429 return value2 == null ? "" : value2 + ""; 28430 }); 28431 } 28432 hooks = jQuery2.valHooks[this.type] || jQuery2.valHooks[this.nodeName.toLowerCase()]; 28433 if (!hooks || !("set" in hooks) || hooks.set(this, val, "value") === void 0) { 28434 this.value = val; 28435 } 28436 }); 28437 } 28438 }); 28439 jQuery2.extend({ 28440 valHooks: { 28441 option: { 28442 get: function(elem) { 28443 var val = jQuery2.find.attr(elem, "value"); 28444 return val != null ? val : ( 28445 // Support: IE <=10 - 11 only 28446 // option.text throws exceptions (trac-14686, trac-14858) 28447 // Strip and collapse whitespace 28448 // https://html.spec.whatwg.org/#strip-and-collapse-whitespace 28449 stripAndCollapse(jQuery2.text(elem)) 28450 ); 28451 } 28452 }, 28453 select: { 28454 get: function(elem) { 28455 var value, option, i10, options = elem.options, index = elem.selectedIndex, one = elem.type === "select-one", values = one ? null : [], max = one ? index + 1 : options.length; 28456 if (index < 0) { 28457 i10 = max; 28458 } else { 28459 i10 = one ? index : 0; 28460 } 28461 for (; i10 < max; i10++) { 28462 option = options[i10]; 28463 if ((option.selected || i10 === index) && // Don't return options that are disabled or in a disabled optgroup 28464 !option.disabled && (!option.parentNode.disabled || !nodeName(option.parentNode, "optgroup"))) { 28465 value = jQuery2(option).val(); 28466 if (one) { 28467 return value; 28468 } 28469 values.push(value); 28470 } 28471 } 28472 return values; 28473 }, 28474 set: function(elem, value) { 28475 var optionSet, option, options = elem.options, values = jQuery2.makeArray(value), i10 = options.length; 28476 while (i10--) { 28477 option = options[i10]; 28478 if (option.selected = jQuery2.inArray(jQuery2.valHooks.option.get(option), values) > -1) { 28479 optionSet = true; 28480 } 28481 } 28482 if (!optionSet) { 28483 elem.selectedIndex = -1; 28484 } 28485 return values; 28486 } 28487 } 28488 } 28489 }); 28490 jQuery2.each(["radio", "checkbox"], function() { 28491 jQuery2.valHooks[this] = { 28492 set: function(elem, value) { 28493 if (Array.isArray(value)) { 28494 return elem.checked = jQuery2.inArray(jQuery2(elem).val(), value) > -1; 28495 } 28496 } 28497 }; 28498 if (!support.checkOn) { 28499 jQuery2.valHooks[this].get = function(elem) { 28500 return elem.getAttribute("value") === null ? "on" : elem.value; 28501 }; 28502 } 28503 }); 28504 var location2 = window2.location; 28505 var nonce = { guid: Date.now() }; 28506 var rquery = /\?/; 28507 jQuery2.parseXML = function(data) { 28508 var xml, parserErrorElem; 28509 if (!data || typeof data !== "string") { 28510 return null; 28511 } 28512 try { 28513 xml = new window2.DOMParser().parseFromString(data, "text/xml"); 28514 } catch (e11) { 28515 } 28516 parserErrorElem = xml && xml.getElementsByTagName("parsererror")[0]; 28517 if (!xml || parserErrorElem) { 28518 jQuery2.error("Invalid XML: " + (parserErrorElem ? jQuery2.map(parserErrorElem.childNodes, function(el) { 28519 return el.textContent; 28520 }).join("\n") : data)); 28521 } 28522 return xml; 28523 }; 28524 var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, stopPropagationCallback = function(e11) { 28525 e11.stopPropagation(); 28526 }; 28527 jQuery2.extend(jQuery2.event, { 28528 trigger: function(event, data, elem, onlyHandlers) { 28529 var i10, cur, tmp, bubbleType, ontype, handle, special, lastElement, eventPath = [elem || document2], type = hasOwn.call(event, "type") ? event.type : event, namespaces = hasOwn.call(event, "namespace") ? event.namespace.split(".") : []; 28530 cur = lastElement = tmp = elem = elem || document2; 28531 if (elem.nodeType === 3 || elem.nodeType === 8) { 28532 return; 28533 } 28534 if (rfocusMorph.test(type + jQuery2.event.triggered)) { 28535 return; 28536 } 28537 if (type.indexOf(".") > -1) { 28538 namespaces = type.split("."); 28539 type = namespaces.shift(); 28540 namespaces.sort(); 28541 } 28542 ontype = type.indexOf(":") < 0 && "on" + type; 28543 event = event[jQuery2.expando] ? event : new jQuery2.Event(type, typeof event === "object" && event); 28544 event.isTrigger = onlyHandlers ? 2 : 3; 28545 event.namespace = namespaces.join("."); 28546 event.rnamespace = event.namespace ? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)") : null; 28547 event.result = void 0; 28548 if (!event.target) { 28549 event.target = elem; 28550 } 28551 data = data == null ? [event] : jQuery2.makeArray(data, [event]); 28552 special = jQuery2.event.special[type] || {}; 28553 if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) { 28554 return; 28555 } 28556 if (!onlyHandlers && !special.noBubble && !isWindow(elem)) { 28557 bubbleType = special.delegateType || type; 28558 if (!rfocusMorph.test(bubbleType + type)) { 28559 cur = cur.parentNode; 28560 } 28561 for (; cur; cur = cur.parentNode) { 28562 eventPath.push(cur); 28563 tmp = cur; 28564 } 28565 if (tmp === (elem.ownerDocument || document2)) { 28566 eventPath.push(tmp.defaultView || tmp.parentWindow || window2); 28567 } 28568 } 28569 i10 = 0; 28570 while ((cur = eventPath[i10++]) && !event.isPropagationStopped()) { 28571 lastElement = cur; 28572 event.type = i10 > 1 ? bubbleType : special.bindType || type; 28573 handle = (dataPriv.get(cur, "events") || /* @__PURE__ */ Object.create(null))[event.type] && dataPriv.get(cur, "handle"); 28574 if (handle) { 28575 handle.apply(cur, data); 28576 } 28577 handle = ontype && cur[ontype]; 28578 if (handle && handle.apply && acceptData(cur)) { 28579 event.result = handle.apply(cur, data); 28580 if (event.result === false) { 28581 event.preventDefault(); 28582 } 28583 } 28584 } 28585 event.type = type; 28586 if (!onlyHandlers && !event.isDefaultPrevented()) { 28587 if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) { 28588 if (ontype && isFunction(elem[type]) && !isWindow(elem)) { 28589 tmp = elem[ontype]; 28590 if (tmp) { 28591 elem[ontype] = null; 28592 } 28593 jQuery2.event.triggered = type; 28594 if (event.isPropagationStopped()) { 28595 lastElement.addEventListener(type, stopPropagationCallback); 28596 } 28597 elem[type](); 28598 if (event.isPropagationStopped()) { 28599 lastElement.removeEventListener(type, stopPropagationCallback); 28600 } 28601 jQuery2.event.triggered = void 0; 28602 if (tmp) { 28603 elem[ontype] = tmp; 28604 } 28605 } 28606 } 28607 } 28608 return event.result; 28609 }, 28610 // Piggyback on a donor event to simulate a different one 28611 // Used only for `focus(in | out)` events 28612 simulate: function(type, elem, event) { 28613 var e11 = jQuery2.extend( 28614 new jQuery2.Event(), 28615 event, 28616 { 28617 type, 28618 isSimulated: true 28619 } 28620 ); 28621 jQuery2.event.trigger(e11, null, elem); 28622 } 28623 }); 28624 jQuery2.fn.extend({ 28625 trigger: function(type, data) { 28626 return this.each(function() { 28627 jQuery2.event.trigger(type, data, this); 28628 }); 28629 }, 28630 triggerHandler: function(type, data) { 28631 var elem = this[0]; 28632 if (elem) { 28633 return jQuery2.event.trigger(type, data, elem, true); 28634 } 28635 } 28636 }); 28637 var rbracket = /\[\]$/, rCRLF = /\r?\n/g, rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, rsubmittable = /^(?:input|select|textarea|keygen)/i; 28638 function buildParams(prefix, obj, traditional, add) { 28639 var name; 28640 if (Array.isArray(obj)) { 28641 jQuery2.each(obj, function(i10, v3) { 28642 if (traditional || rbracket.test(prefix)) { 28643 add(prefix, v3); 28644 } else { 28645 buildParams( 28646 prefix + "[" + (typeof v3 === "object" && v3 != null ? i10 : "") + "]", 28647 v3, 28648 traditional, 28649 add 28650 ); 28651 } 28652 }); 28653 } else if (!traditional && toType(obj) === "object") { 28654 for (name in obj) { 28655 buildParams(prefix + "[" + name + "]", obj[name], traditional, add); 28656 } 28657 } else { 28658 add(prefix, obj); 28659 } 28660 } 28661 jQuery2.param = function(a8, traditional) { 28662 var prefix, s13 = [], add = function(key, valueOrFunction) { 28663 var value = isFunction(valueOrFunction) ? valueOrFunction() : valueOrFunction; 28664 s13[s13.length] = encodeURIComponent(key) + "=" + encodeURIComponent(value == null ? "" : value); 28665 }; 28666 if (a8 == null) { 28667 return ""; 28668 } 28669 if (Array.isArray(a8) || a8.jquery && !jQuery2.isPlainObject(a8)) { 28670 jQuery2.each(a8, function() { 28671 add(this.name, this.value); 28672 }); 28673 } else { 28674 for (prefix in a8) { 28675 buildParams(prefix, a8[prefix], traditional, add); 28676 } 28677 } 28678 return s13.join("&"); 28679 }; 28680 jQuery2.fn.extend({ 28681 serialize: function() { 28682 return jQuery2.param(this.serializeArray()); 28683 }, 28684 serializeArray: function() { 28685 return this.map(function() { 28686 var elements = jQuery2.prop(this, "elements"); 28687 return elements ? jQuery2.makeArray(elements) : this; 28688 }).filter(function() { 28689 var type = this.type; 28690 return this.name && !jQuery2(this).is(":disabled") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type)); 28691 }).map(function(_i2, elem) { 28692 var val = jQuery2(this).val(); 28693 if (val == null) { 28694 return null; 28695 } 28696 if (Array.isArray(val)) { 28697 return jQuery2.map(val, function(val2) { 28698 return { name: elem.name, value: val2.replace(rCRLF, "\r\n") }; 28699 }); 28700 } 28701 return { name: elem.name, value: val.replace(rCRLF, "\r\n") }; 28702 }).get(); 28703 } 28704 }); 28705 var r20 = /%20/g, rhash = /#.*$/, rantiCache = /([?&])_=[^&]*/, rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, rnoContent = /^(?:GET|HEAD)$/, rprotocol = /^\/\//, prefilters = {}, transports = {}, allTypes = "*/".concat("*"), originAnchor = document2.createElement("a"); 28706 originAnchor.href = location2.href; 28707 function addToPrefiltersOrTransports(structure) { 28708 return function(dataTypeExpression, func) { 28709 if (typeof dataTypeExpression !== "string") { 28710 func = dataTypeExpression; 28711 dataTypeExpression = "*"; 28712 } 28713 var dataType, i10 = 0, dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || []; 28714 if (isFunction(func)) { 28715 while (dataType = dataTypes[i10++]) { 28716 if (dataType[0] === "+") { 28717 dataType = dataType.slice(1) || "*"; 28718 (structure[dataType] = structure[dataType] || []).unshift(func); 28719 } else { 28720 (structure[dataType] = structure[dataType] || []).push(func); 28721 } 28722 } 28723 } 28724 }; 28725 } 28726 function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) { 28727 var inspected = {}, seekingTransport = structure === transports; 28728 function inspect(dataType) { 28729 var selected; 28730 inspected[dataType] = true; 28731 jQuery2.each(structure[dataType] || [], function(_2, prefilterOrFactory) { 28732 var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR); 28733 if (typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[dataTypeOrTransport]) { 28734 options.dataTypes.unshift(dataTypeOrTransport); 28735 inspect(dataTypeOrTransport); 28736 return false; 28737 } else if (seekingTransport) { 28738 return !(selected = dataTypeOrTransport); 28739 } 28740 }); 28741 return selected; 28742 } 28743 return inspect(options.dataTypes[0]) || !inspected["*"] && inspect("*"); 28744 } 28745 function ajaxExtend(target, src) { 28746 var key, deep, flatOptions = jQuery2.ajaxSettings.flatOptions || {}; 28747 for (key in src) { 28748 if (src[key] !== void 0) { 28749 (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key]; 28750 } 28751 } 28752 if (deep) { 28753 jQuery2.extend(true, target, deep); 28754 } 28755 return target; 28756 } 28757 function ajaxHandleResponses(s13, jqXHR, responses) { 28758 var ct, type, finalDataType, firstDataType, contents = s13.contents, dataTypes = s13.dataTypes; 28759 while (dataTypes[0] === "*") { 28760 dataTypes.shift(); 28761 if (ct === void 0) { 28762 ct = s13.mimeType || jqXHR.getResponseHeader("Content-Type"); 28763 } 28764 } 28765 if (ct) { 28766 for (type in contents) { 28767 if (contents[type] && contents[type].test(ct)) { 28768 dataTypes.unshift(type); 28769 break; 28770 } 28771 } 28772 } 28773 if (dataTypes[0] in responses) { 28774 finalDataType = dataTypes[0]; 28775 } else { 28776 for (type in responses) { 28777 if (!dataTypes[0] || s13.converters[type + " " + dataTypes[0]]) { 28778 finalDataType = type; 28779 break; 28780 } 28781 if (!firstDataType) { 28782 firstDataType = type; 28783 } 28784 } 28785 finalDataType = finalDataType || firstDataType; 28786 } 28787 if (finalDataType) { 28788 if (finalDataType !== dataTypes[0]) { 28789 dataTypes.unshift(finalDataType); 28790 } 28791 return responses[finalDataType]; 28792 } 28793 } 28794 function ajaxConvert(s13, response, jqXHR, isSuccess) { 28795 var conv2, current, conv, tmp, prev, converters = {}, dataTypes = s13.dataTypes.slice(); 28796 if (dataTypes[1]) { 28797 for (conv in s13.converters) { 28798 converters[conv.toLowerCase()] = s13.converters[conv]; 28799 } 28800 } 28801 current = dataTypes.shift(); 28802 while (current) { 28803 if (s13.responseFields[current]) { 28804 jqXHR[s13.responseFields[current]] = response; 28805 } 28806 if (!prev && isSuccess && s13.dataFilter) { 28807 response = s13.dataFilter(response, s13.dataType); 28808 } 28809 prev = current; 28810 current = dataTypes.shift(); 28811 if (current) { 28812 if (current === "*") { 28813 current = prev; 28814 } else if (prev !== "*" && prev !== current) { 28815 conv = converters[prev + " " + current] || converters["* " + current]; 28816 if (!conv) { 28817 for (conv2 in converters) { 28818 tmp = conv2.split(" "); 28819 if (tmp[1] === current) { 28820 conv = converters[prev + " " + tmp[0]] || converters["* " + tmp[0]]; 28821 if (conv) { 28822 if (conv === true) { 28823 conv = converters[conv2]; 28824 } else if (converters[conv2] !== true) { 28825 current = tmp[0]; 28826 dataTypes.unshift(tmp[1]); 28827 } 28828 break; 28829 } 28830 } 28831 } 28832 } 28833 if (conv !== true) { 28834 if (conv && s13.throws) { 28835 response = conv(response); 28836 } else { 28837 try { 28838 response = conv(response); 28839 } catch (e11) { 28840 return { 28841 state: "parsererror", 28842 error: conv ? e11 : "No conversion from " + prev + " to " + current 28843 }; 28844 } 28845 } 28846 } 28847 } 28848 } 28849 } 28850 return { state: "success", data: response }; 28851 } 28852 jQuery2.extend({ 28853 // Counter for holding the number of active queries 28854 active: 0, 28855 // Last-Modified header cache for next request 28856 lastModified: {}, 28857 etag: {}, 28858 ajaxSettings: { 28859 url: location2.href, 28860 type: "GET", 28861 isLocal: rlocalProtocol.test(location2.protocol), 28862 global: true, 28863 processData: true, 28864 async: true, 28865 contentType: "application/x-www-form-urlencoded; charset=UTF-8", 28866 /* 28867 timeout: 0, 28868 data: null, 28869 dataType: null, 28870 username: null, 28871 password: null, 28872 cache: null, 28873 throws: false, 28874 traditional: false, 28875 headers: {}, 28876 */ 28877 accepts: { 28878 "*": allTypes, 28879 text: "text/plain", 28880 html: "text/html", 28881 xml: "application/xml, text/xml", 28882 json: "application/json, text/javascript" 28883 }, 28884 contents: { 28885 xml: /\bxml\b/, 28886 html: /\bhtml/, 28887 json: /\bjson\b/ 28888 }, 28889 responseFields: { 28890 xml: "responseXML", 28891 text: "responseText", 28892 json: "responseJSON" 28893 }, 28894 // Data converters 28895 // Keys separate source (or catchall "*") and destination types with a single space 28896 converters: { 28897 // Convert anything to text 28898 "* text": String, 28899 // Text to html (true = no transformation) 28900 "text html": true, 28901 // Evaluate text as a json expression 28902 "text json": JSON.parse, 28903 // Parse text as xml 28904 "text xml": jQuery2.parseXML 28905 }, 28906 // For options that shouldn't be deep extended: 28907 // you can add your own custom options here if 28908 // and when you create one that shouldn't be 28909 // deep extended (see ajaxExtend) 28910 flatOptions: { 28911 url: true, 28912 context: true 28913 } 28914 }, 28915 // Creates a full fledged settings object into target 28916 // with both ajaxSettings and settings fields. 28917 // If target is omitted, writes into ajaxSettings. 28918 ajaxSetup: function(target, settings) { 28919 return settings ? ( 28920 // Building a settings object 28921 ajaxExtend(ajaxExtend(target, jQuery2.ajaxSettings), settings) 28922 ) : ( 28923 // Extending ajaxSettings 28924 ajaxExtend(jQuery2.ajaxSettings, target) 28925 ); 28926 }, 28927 ajaxPrefilter: addToPrefiltersOrTransports(prefilters), 28928 ajaxTransport: addToPrefiltersOrTransports(transports), 28929 // Main method 28930 ajax: function(url, options) { 28931 if (typeof url === "object") { 28932 options = url; 28933 url = void 0; 28934 } 28935 options = options || {}; 28936 var transport, cacheURL, responseHeadersString, responseHeaders, timeoutTimer, urlAnchor, completed2, fireGlobals, i10, uncached, s13 = jQuery2.ajaxSetup({}, options), callbackContext = s13.context || s13, globalEventContext = s13.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery2(callbackContext) : jQuery2.event, deferred = jQuery2.Deferred(), completeDeferred = jQuery2.Callbacks("once memory"), statusCode = s13.statusCode || {}, requestHeaders = {}, requestHeadersNames = {}, strAbort = "canceled", jqXHR = { 28937 readyState: 0, 28938 // Builds headers hashtable if needed 28939 getResponseHeader: function(key) { 28940 var match; 28941 if (completed2) { 28942 if (!responseHeaders) { 28943 responseHeaders = {}; 28944 while (match = rheaders.exec(responseHeadersString)) { 28945 responseHeaders[match[1].toLowerCase() + " "] = (responseHeaders[match[1].toLowerCase() + " "] || []).concat(match[2]); 28946 } 28947 } 28948 match = responseHeaders[key.toLowerCase() + " "]; 28949 } 28950 return match == null ? null : match.join(", "); 28951 }, 28952 // Raw string 28953 getAllResponseHeaders: function() { 28954 return completed2 ? responseHeadersString : null; 28955 }, 28956 // Caches the header 28957 setRequestHeader: function(name, value) { 28958 if (completed2 == null) { 28959 name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name; 28960 requestHeaders[name] = value; 28961 } 28962 return this; 28963 }, 28964 // Overrides response content-type header 28965 overrideMimeType: function(type) { 28966 if (completed2 == null) { 28967 s13.mimeType = type; 28968 } 28969 return this; 28970 }, 28971 // Status-dependent callbacks 28972 statusCode: function(map) { 28973 var code; 28974 if (map) { 28975 if (completed2) { 28976 jqXHR.always(map[jqXHR.status]); 28977 } else { 28978 for (code in map) { 28979 statusCode[code] = [statusCode[code], map[code]]; 28980 } 28981 } 28982 } 28983 return this; 28984 }, 28985 // Cancel the request 28986 abort: function(statusText) { 28987 var finalText = statusText || strAbort; 28988 if (transport) { 28989 transport.abort(finalText); 28990 } 28991 done(0, finalText); 28992 return this; 28993 } 28994 }; 28995 deferred.promise(jqXHR); 28996 s13.url = ((url || s13.url || location2.href) + "").replace(rprotocol, location2.protocol + "//"); 28997 s13.type = options.method || options.type || s13.method || s13.type; 28998 s13.dataTypes = (s13.dataType || "*").toLowerCase().match(rnothtmlwhite) || [""]; 28999 if (s13.crossDomain == null) { 29000 urlAnchor = document2.createElement("a"); 29001 try { 29002 urlAnchor.href = s13.url; 29003 urlAnchor.href = urlAnchor.href; 29004 s13.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== urlAnchor.protocol + "//" + urlAnchor.host; 29005 } catch (e11) { 29006 s13.crossDomain = true; 29007 } 29008 } 29009 if (s13.data && s13.processData && typeof s13.data !== "string") { 29010 s13.data = jQuery2.param(s13.data, s13.traditional); 29011 } 29012 inspectPrefiltersOrTransports(prefilters, s13, options, jqXHR); 29013 if (completed2) { 29014 return jqXHR; 29015 } 29016 fireGlobals = jQuery2.event && s13.global; 29017 if (fireGlobals && jQuery2.active++ === 0) { 29018 jQuery2.event.trigger("ajaxStart"); 29019 } 29020 s13.type = s13.type.toUpperCase(); 29021 s13.hasContent = !rnoContent.test(s13.type); 29022 cacheURL = s13.url.replace(rhash, ""); 29023 if (!s13.hasContent) { 29024 uncached = s13.url.slice(cacheURL.length); 29025 if (s13.data && (s13.processData || typeof s13.data === "string")) { 29026 cacheURL += (rquery.test(cacheURL) ? "&" : "?") + s13.data; 29027 delete s13.data; 29028 } 29029 if (s13.cache === false) { 29030 cacheURL = cacheURL.replace(rantiCache, "$1"); 29031 uncached = (rquery.test(cacheURL) ? "&" : "?") + "_=" + nonce.guid++ + uncached; 29032 } 29033 s13.url = cacheURL + uncached; 29034 } else if (s13.data && s13.processData && (s13.contentType || "").indexOf("application/x-www-form-urlencoded") === 0) { 29035 s13.data = s13.data.replace(r20, "+"); 29036 } 29037 if (s13.ifModified) { 29038 if (jQuery2.lastModified[cacheURL]) { 29039 jqXHR.setRequestHeader("If-Modified-Since", jQuery2.lastModified[cacheURL]); 29040 } 29041 if (jQuery2.etag[cacheURL]) { 29042 jqXHR.setRequestHeader("If-None-Match", jQuery2.etag[cacheURL]); 29043 } 29044 } 29045 if (s13.data && s13.hasContent && s13.contentType !== false || options.contentType) { 29046 jqXHR.setRequestHeader("Content-Type", s13.contentType); 29047 } 29048 jqXHR.setRequestHeader( 29049 "Accept", 29050 s13.dataTypes[0] && s13.accepts[s13.dataTypes[0]] ? s13.accepts[s13.dataTypes[0]] + (s13.dataTypes[0] !== "*" ? ", " + allTypes + "; q=0.01" : "") : s13.accepts["*"] 29051 ); 29052 for (i10 in s13.headers) { 29053 jqXHR.setRequestHeader(i10, s13.headers[i10]); 29054 } 29055 if (s13.beforeSend && (s13.beforeSend.call(callbackContext, jqXHR, s13) === false || completed2)) { 29056 return jqXHR.abort(); 29057 } 29058 strAbort = "abort"; 29059 completeDeferred.add(s13.complete); 29060 jqXHR.done(s13.success); 29061 jqXHR.fail(s13.error); 29062 transport = inspectPrefiltersOrTransports(transports, s13, options, jqXHR); 29063 if (!transport) { 29064 done(-1, "No Transport"); 29065 } else { 29066 jqXHR.readyState = 1; 29067 if (fireGlobals) { 29068 globalEventContext.trigger("ajaxSend", [jqXHR, s13]); 29069 } 29070 if (completed2) { 29071 return jqXHR; 29072 } 29073 if (s13.async && s13.timeout > 0) { 29074 timeoutTimer = window2.setTimeout(function() { 29075 jqXHR.abort("timeout"); 29076 }, s13.timeout); 29077 } 29078 try { 29079 completed2 = false; 29080 transport.send(requestHeaders, done); 29081 } catch (e11) { 29082 if (completed2) { 29083 throw e11; 29084 } 29085 done(-1, e11); 29086 } 29087 } 29088 function done(status, nativeStatusText, responses, headers) { 29089 var isSuccess, success, error, response, modified, statusText = nativeStatusText; 29090 if (completed2) { 29091 return; 29092 } 29093 completed2 = true; 29094 if (timeoutTimer) { 29095 window2.clearTimeout(timeoutTimer); 29096 } 29097 transport = void 0; 29098 responseHeadersString = headers || ""; 29099 jqXHR.readyState = status > 0 ? 4 : 0; 29100 isSuccess = status >= 200 && status < 300 || status === 304; 29101 if (responses) { 29102 response = ajaxHandleResponses(s13, jqXHR, responses); 29103 } 29104 if (!isSuccess && jQuery2.inArray("script", s13.dataTypes) > -1 && jQuery2.inArray("json", s13.dataTypes) < 0) { 29105 s13.converters["text script"] = function() { 29106 }; 29107 } 29108 response = ajaxConvert(s13, response, jqXHR, isSuccess); 29109 if (isSuccess) { 29110 if (s13.ifModified) { 29111 modified = jqXHR.getResponseHeader("Last-Modified"); 29112 if (modified) { 29113 jQuery2.lastModified[cacheURL] = modified; 29114 } 29115 modified = jqXHR.getResponseHeader("etag"); 29116 if (modified) { 29117 jQuery2.etag[cacheURL] = modified; 29118 } 29119 } 29120 if (status === 204 || s13.type === "HEAD") { 29121 statusText = "nocontent"; 29122 } else if (status === 304) { 29123 statusText = "notmodified"; 29124 } else { 29125 statusText = response.state; 29126 success = response.data; 29127 error = response.error; 29128 isSuccess = !error; 29129 } 29130 } else { 29131 error = statusText; 29132 if (status || !statusText) { 29133 statusText = "error"; 29134 if (status < 0) { 29135 status = 0; 29136 } 29137 } 29138 } 29139 jqXHR.status = status; 29140 jqXHR.statusText = (nativeStatusText || statusText) + ""; 29141 if (isSuccess) { 29142 deferred.resolveWith(callbackContext, [success, statusText, jqXHR]); 29143 } else { 29144 deferred.rejectWith(callbackContext, [jqXHR, statusText, error]); 29145 } 29146 jqXHR.statusCode(statusCode); 29147 statusCode = void 0; 29148 if (fireGlobals) { 29149 globalEventContext.trigger( 29150 isSuccess ? "ajaxSuccess" : "ajaxError", 29151 [jqXHR, s13, isSuccess ? success : error] 29152 ); 29153 } 29154 completeDeferred.fireWith(callbackContext, [jqXHR, statusText]); 29155 if (fireGlobals) { 29156 globalEventContext.trigger("ajaxComplete", [jqXHR, s13]); 29157 if (!--jQuery2.active) { 29158 jQuery2.event.trigger("ajaxStop"); 29159 } 29160 } 29161 } 29162 return jqXHR; 29163 }, 29164 getJSON: function(url, data, callback) { 29165 return jQuery2.get(url, data, callback, "json"); 29166 }, 29167 getScript: function(url, callback) { 29168 return jQuery2.get(url, void 0, callback, "script"); 29169 } 29170 }); 29171 jQuery2.each(["get", "post"], function(_i2, method) { 29172 jQuery2[method] = function(url, data, callback, type) { 29173 if (isFunction(data)) { 29174 type = type || callback; 29175 callback = data; 29176 data = void 0; 29177 } 29178 return jQuery2.ajax(jQuery2.extend({ 29179 url, 29180 type: method, 29181 dataType: type, 29182 data, 29183 success: callback 29184 }, jQuery2.isPlainObject(url) && url)); 29185 }; 29186 }); 29187 jQuery2.ajaxPrefilter(function(s13) { 29188 var i10; 29189 for (i10 in s13.headers) { 29190 if (i10.toLowerCase() === "content-type") { 29191 s13.contentType = s13.headers[i10] || ""; 29192 } 29193 } 29194 }); 29195 jQuery2._evalUrl = function(url, options, doc) { 29196 return jQuery2.ajax({ 29197 url, 29198 // Make this explicit, since user can override this through ajaxSetup (trac-11264) 29199 type: "GET", 29200 dataType: "script", 29201 cache: true, 29202 async: false, 29203 global: false, 29204 // Only evaluate the response if it is successful (gh-4126) 29205 // dataFilter is not invoked for failure responses, so using it instead 29206 // of the default converter is kludgy but it works. 29207 converters: { 29208 "text script": function() { 29209 } 29210 }, 29211 dataFilter: function(response) { 29212 jQuery2.globalEval(response, options, doc); 29213 } 29214 }); 29215 }; 29216 jQuery2.fn.extend({ 29217 wrapAll: function(html) { 29218 var wrap3; 29219 if (this[0]) { 29220 if (isFunction(html)) { 29221 html = html.call(this[0]); 29222 } 29223 wrap3 = jQuery2(html, this[0].ownerDocument).eq(0).clone(true); 29224 if (this[0].parentNode) { 29225 wrap3.insertBefore(this[0]); 29226 } 29227 wrap3.map(function() { 29228 var elem = this; 29229 while (elem.firstElementChild) { 29230 elem = elem.firstElementChild; 29231 } 29232 return elem; 29233 }).append(this); 29234 } 29235 return this; 29236 }, 29237 wrapInner: function(html) { 29238 if (isFunction(html)) { 29239 return this.each(function(i10) { 29240 jQuery2(this).wrapInner(html.call(this, i10)); 29241 }); 29242 } 29243 return this.each(function() { 29244 var self2 = jQuery2(this), contents = self2.contents(); 29245 if (contents.length) { 29246 contents.wrapAll(html); 29247 } else { 29248 self2.append(html); 29249 } 29250 }); 29251 }, 29252 wrap: function(html) { 29253 var htmlIsFunction = isFunction(html); 29254 return this.each(function(i10) { 29255 jQuery2(this).wrapAll(htmlIsFunction ? html.call(this, i10) : html); 29256 }); 29257 }, 29258 unwrap: function(selector3) { 29259 this.parent(selector3).not("body").each(function() { 29260 jQuery2(this).replaceWith(this.childNodes); 29261 }); 29262 return this; 29263 } 29264 }); 29265 jQuery2.expr.pseudos.hidden = function(elem) { 29266 return !jQuery2.expr.pseudos.visible(elem); 29267 }; 29268 jQuery2.expr.pseudos.visible = function(elem) { 29269 return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length); 29270 }; 29271 jQuery2.ajaxSettings.xhr = function() { 29272 try { 29273 return new window2.XMLHttpRequest(); 29274 } catch (e11) { 29275 } 29276 }; 29277 var xhrSuccessStatus = { 29278 // File protocol always yields status code 0, assume 200 29279 0: 200, 29280 // Support: IE <=9 only 29281 // trac-1450: sometimes IE returns 1223 when it should be 204 29282 1223: 204 29283 }, xhrSupported = jQuery2.ajaxSettings.xhr(); 29284 support.cors = !!xhrSupported && "withCredentials" in xhrSupported; 29285 support.ajax = xhrSupported = !!xhrSupported; 29286 jQuery2.ajaxTransport(function(options) { 29287 var callback, errorCallback; 29288 if (support.cors || xhrSupported && !options.crossDomain) { 29289 return { 29290 send: function(headers, complete) { 29291 var i10, xhr = options.xhr(); 29292 xhr.open( 29293 options.type, 29294 options.url, 29295 options.async, 29296 options.username, 29297 options.password 29298 ); 29299 if (options.xhrFields) { 29300 for (i10 in options.xhrFields) { 29301 xhr[i10] = options.xhrFields[i10]; 29302 } 29303 } 29304 if (options.mimeType && xhr.overrideMimeType) { 29305 xhr.overrideMimeType(options.mimeType); 29306 } 29307 if (!options.crossDomain && !headers["X-Requested-With"]) { 29308 headers["X-Requested-With"] = "XMLHttpRequest"; 29309 } 29310 for (i10 in headers) { 29311 xhr.setRequestHeader(i10, headers[i10]); 29312 } 29313 callback = function(type) { 29314 return function() { 29315 if (callback) { 29316 callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null; 29317 if (type === "abort") { 29318 xhr.abort(); 29319 } else if (type === "error") { 29320 if (typeof xhr.status !== "number") { 29321 complete(0, "error"); 29322 } else { 29323 complete( 29324 // File: protocol always yields status 0; see trac-8605, trac-14207 29325 xhr.status, 29326 xhr.statusText 29327 ); 29328 } 29329 } else { 29330 complete( 29331 xhrSuccessStatus[xhr.status] || xhr.status, 29332 xhr.statusText, 29333 // Support: IE <=9 only 29334 // IE9 has no XHR2 but throws on binary (trac-11426) 29335 // For XHR2 non-text, let the caller handle it (gh-2498) 29336 (xhr.responseType || "text") !== "text" || typeof xhr.responseText !== "string" ? { binary: xhr.response } : { text: xhr.responseText }, 29337 xhr.getAllResponseHeaders() 29338 ); 29339 } 29340 } 29341 }; 29342 }; 29343 xhr.onload = callback(); 29344 errorCallback = xhr.onerror = xhr.ontimeout = callback("error"); 29345 if (xhr.onabort !== void 0) { 29346 xhr.onabort = errorCallback; 29347 } else { 29348 xhr.onreadystatechange = function() { 29349 if (xhr.readyState === 4) { 29350 window2.setTimeout(function() { 29351 if (callback) { 29352 errorCallback(); 29353 } 29354 }); 29355 } 29356 }; 29357 } 29358 callback = callback("abort"); 29359 try { 29360 xhr.send(options.hasContent && options.data || null); 29361 } catch (e11) { 29362 if (callback) { 29363 throw e11; 29364 } 29365 } 29366 }, 29367 abort: function() { 29368 if (callback) { 29369 callback(); 29370 } 29371 } 29372 }; 29373 } 29374 }); 29375 jQuery2.ajaxPrefilter(function(s13) { 29376 if (s13.crossDomain) { 29377 s13.contents.script = false; 29378 } 29379 }); 29380 jQuery2.ajaxSetup({ 29381 accepts: { 29382 script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" 29383 }, 29384 contents: { 29385 script: /\b(?:java|ecma)script\b/ 29386 }, 29387 converters: { 29388 "text script": function(text) { 29389 jQuery2.globalEval(text); 29390 return text; 29391 } 29392 } 29393 }); 29394 jQuery2.ajaxPrefilter("script", function(s13) { 29395 if (s13.cache === void 0) { 29396 s13.cache = false; 29397 } 29398 if (s13.crossDomain) { 29399 s13.type = "GET"; 29400 } 29401 }); 29402 jQuery2.ajaxTransport("script", function(s13) { 29403 if (s13.crossDomain || s13.scriptAttrs) { 29404 var script, callback; 29405 return { 29406 send: function(_2, complete) { 29407 script = jQuery2("<script>").attr(s13.scriptAttrs || {}).prop({ charset: s13.scriptCharset, src: s13.url }).on("load error", callback = function(evt) { 29408 script.remove(); 29409 callback = null; 29410 if (evt) { 29411 complete(evt.type === "error" ? 404 : 200, evt.type); 29412 } 29413 }); 29414 document2.head.appendChild(script[0]); 29415 }, 29416 abort: function() { 29417 if (callback) { 29418 callback(); 29419 } 29420 } 29421 }; 29422 } 29423 }); 29424 var oldCallbacks = [], rjsonp = /(=)\?(?=&|$)|\?\?/; 29425 jQuery2.ajaxSetup({ 29426 jsonp: "callback", 29427 jsonpCallback: function() { 29428 var callback = oldCallbacks.pop() || jQuery2.expando + "_" + nonce.guid++; 29429 this[callback] = true; 29430 return callback; 29431 } 29432 }); 29433 jQuery2.ajaxPrefilter("json jsonp", function(s13, originalSettings, jqXHR) { 29434 var callbackName, overwritten, responseContainer, jsonProp = s13.jsonp !== false && (rjsonp.test(s13.url) ? "url" : typeof s13.data === "string" && (s13.contentType || "").indexOf("application/x-www-form-urlencoded") === 0 && rjsonp.test(s13.data) && "data"); 29435 if (jsonProp || s13.dataTypes[0] === "jsonp") { 29436 callbackName = s13.jsonpCallback = isFunction(s13.jsonpCallback) ? s13.jsonpCallback() : s13.jsonpCallback; 29437 if (jsonProp) { 29438 s13[jsonProp] = s13[jsonProp].replace(rjsonp, "$1" + callbackName); 29439 } else if (s13.jsonp !== false) { 29440 s13.url += (rquery.test(s13.url) ? "&" : "?") + s13.jsonp + "=" + callbackName; 29441 } 29442 s13.converters["script json"] = function() { 29443 if (!responseContainer) { 29444 jQuery2.error(callbackName + " was not called"); 29445 } 29446 return responseContainer[0]; 29447 }; 29448 s13.dataTypes[0] = "json"; 29449 overwritten = window2[callbackName]; 29450 window2[callbackName] = function() { 29451 responseContainer = arguments; 29452 }; 29453 jqXHR.always(function() { 29454 if (overwritten === void 0) { 29455 jQuery2(window2).removeProp(callbackName); 29456 } else { 29457 window2[callbackName] = overwritten; 29458 } 29459 if (s13[callbackName]) { 29460 s13.jsonpCallback = originalSettings.jsonpCallback; 29461 oldCallbacks.push(callbackName); 29462 } 29463 if (responseContainer && isFunction(overwritten)) { 29464 overwritten(responseContainer[0]); 29465 } 29466 responseContainer = overwritten = void 0; 29467 }); 29468 return "script"; 29469 } 29470 }); 29471 support.createHTMLDocument = (function() { 29472 var body = document2.implementation.createHTMLDocument("").body; 29473 body.innerHTML = "<form></form><form></form>"; 29474 return body.childNodes.length === 2; 29475 })(); 29476 jQuery2.parseHTML = function(data, context3, keepScripts) { 29477 if (typeof data !== "string") { 29478 return []; 29479 } 29480 if (typeof context3 === "boolean") { 29481 keepScripts = context3; 29482 context3 = false; 29483 } 29484 var base, parsed, scripts; 29485 if (!context3) { 29486 if (support.createHTMLDocument) { 29487 context3 = document2.implementation.createHTMLDocument(""); 29488 base = context3.createElement("base"); 29489 base.href = document2.location.href; 29490 context3.head.appendChild(base); 29491 } else { 29492 context3 = document2; 29493 } 29494 } 29495 parsed = rsingleTag.exec(data); 29496 scripts = !keepScripts && []; 29497 if (parsed) { 29498 return [context3.createElement(parsed[1])]; 29499 } 29500 parsed = buildFragment([data], context3, scripts); 29501 if (scripts && scripts.length) { 29502 jQuery2(scripts).remove(); 29503 } 29504 return jQuery2.merge([], parsed.childNodes); 29505 }; 29506 jQuery2.fn.load = function(url, params, callback) { 29507 var selector3, type, response, self2 = this, off = url.indexOf(" "); 29508 if (off > -1) { 29509 selector3 = stripAndCollapse(url.slice(off)); 29510 url = url.slice(0, off); 29511 } 29512 if (isFunction(params)) { 29513 callback = params; 29514 params = void 0; 29515 } else if (params && typeof params === "object") { 29516 type = "POST"; 29517 } 29518 if (self2.length > 0) { 29519 jQuery2.ajax({ 29520 url, 29521 // If "type" variable is undefined, then "GET" method will be used. 29522 // Make value of this field explicit since 29523 // user can override it through ajaxSetup method 29524 type: type || "GET", 29525 dataType: "html", 29526 data: params 29527 }).done(function(responseText) { 29528 response = arguments; 29529 self2.html(selector3 ? ( 29530 // If a selector was specified, locate the right elements in a dummy div 29531 // Exclude scripts to avoid IE 'Permission Denied' errors 29532 jQuery2("<div>").append(jQuery2.parseHTML(responseText)).find(selector3) 29533 ) : ( 29534 // Otherwise use the full result 29535 responseText 29536 )); 29537 }).always(callback && function(jqXHR, status) { 29538 self2.each(function() { 29539 callback.apply(this, response || [jqXHR.responseText, status, jqXHR]); 29540 }); 29541 }); 29542 } 29543 return this; 29544 }; 29545 jQuery2.expr.pseudos.animated = function(elem) { 29546 return jQuery2.grep(jQuery2.timers, function(fn) { 29547 return elem === fn.elem; 29548 }).length; 29549 }; 29550 jQuery2.offset = { 29551 setOffset: function(elem, options, i10) { 29552 var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition, position = jQuery2.css(elem, "position"), curElem = jQuery2(elem), props = {}; 29553 if (position === "static") { 29554 elem.style.position = "relative"; 29555 } 29556 curOffset = curElem.offset(); 29557 curCSSTop = jQuery2.css(elem, "top"); 29558 curCSSLeft = jQuery2.css(elem, "left"); 29559 calculatePosition = (position === "absolute" || position === "fixed") && (curCSSTop + curCSSLeft).indexOf("auto") > -1; 29560 if (calculatePosition) { 29561 curPosition = curElem.position(); 29562 curTop = curPosition.top; 29563 curLeft = curPosition.left; 29564 } else { 29565 curTop = parseFloat(curCSSTop) || 0; 29566 curLeft = parseFloat(curCSSLeft) || 0; 29567 } 29568 if (isFunction(options)) { 29569 options = options.call(elem, i10, jQuery2.extend({}, curOffset)); 29570 } 29571 if (options.top != null) { 29572 props.top = options.top - curOffset.top + curTop; 29573 } 29574 if (options.left != null) { 29575 props.left = options.left - curOffset.left + curLeft; 29576 } 29577 if ("using" in options) { 29578 options.using.call(elem, props); 29579 } else { 29580 curElem.css(props); 29581 } 29582 } 29583 }; 29584 jQuery2.fn.extend({ 29585 // offset() relates an element's border box to the document origin 29586 offset: function(options) { 29587 if (arguments.length) { 29588 return options === void 0 ? this : this.each(function(i10) { 29589 jQuery2.offset.setOffset(this, options, i10); 29590 }); 29591 } 29592 var rect, win, elem = this[0]; 29593 if (!elem) { 29594 return; 29595 } 29596 if (!elem.getClientRects().length) { 29597 return { top: 0, left: 0 }; 29598 } 29599 rect = elem.getBoundingClientRect(); 29600 win = elem.ownerDocument.defaultView; 29601 return { 29602 top: rect.top + win.pageYOffset, 29603 left: rect.left + win.pageXOffset 29604 }; 29605 }, 29606 // position() relates an element's margin box to its offset parent's padding box 29607 // This corresponds to the behavior of CSS absolute positioning 29608 position: function() { 29609 if (!this[0]) { 29610 return; 29611 } 29612 var offsetParent, offset, doc, elem = this[0], parentOffset = { top: 0, left: 0 }; 29613 if (jQuery2.css(elem, "position") === "fixed") { 29614 offset = elem.getBoundingClientRect(); 29615 } else { 29616 offset = this.offset(); 29617 doc = elem.ownerDocument; 29618 offsetParent = elem.offsetParent || doc.documentElement; 29619 while (offsetParent && (offsetParent === doc.body || offsetParent === doc.documentElement) && jQuery2.css(offsetParent, "position") === "static") { 29620 offsetParent = offsetParent.parentNode; 29621 } 29622 if (offsetParent && offsetParent !== elem && offsetParent.nodeType === 1) { 29623 parentOffset = jQuery2(offsetParent).offset(); 29624 parentOffset.top += jQuery2.css(offsetParent, "borderTopWidth", true); 29625 parentOffset.left += jQuery2.css(offsetParent, "borderLeftWidth", true); 29626 } 29627 } 29628 return { 29629 top: offset.top - parentOffset.top - jQuery2.css(elem, "marginTop", true), 29630 left: offset.left - parentOffset.left - jQuery2.css(elem, "marginLeft", true) 29631 }; 29632 }, 29633 // This method will return documentElement in the following cases: 29634 // 1) For the element inside the iframe without offsetParent, this method will return 29635 // documentElement of the parent window 29636 // 2) For the hidden or detached element 29637 // 3) For body or html element, i.e. in case of the html node - it will return itself 29638 // 29639 // but those exceptions were never presented as a real life use-cases 29640 // and might be considered as more preferable results. 29641 // 29642 // This logic, however, is not guaranteed and can change at any point in the future 29643 offsetParent: function() { 29644 return this.map(function() { 29645 var offsetParent = this.offsetParent; 29646 while (offsetParent && jQuery2.css(offsetParent, "position") === "static") { 29647 offsetParent = offsetParent.offsetParent; 29648 } 29649 return offsetParent || documentElement; 29650 }); 29651 } 29652 }); 29653 jQuery2.each({ scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function(method, prop) { 29654 var top = "pageYOffset" === prop; 29655 jQuery2.fn[method] = function(val) { 29656 return access(this, function(elem, method2, val2) { 29657 var win; 29658 if (isWindow(elem)) { 29659 win = elem; 29660 } else if (elem.nodeType === 9) { 29661 win = elem.defaultView; 29662 } 29663 if (val2 === void 0) { 29664 return win ? win[prop] : elem[method2]; 29665 } 29666 if (win) { 29667 win.scrollTo( 29668 !top ? val2 : win.pageXOffset, 29669 top ? val2 : win.pageYOffset 29670 ); 29671 } else { 29672 elem[method2] = val2; 29673 } 29674 }, method, val, arguments.length); 29675 }; 29676 }); 29677 jQuery2.each(["top", "left"], function(_i2, prop) { 29678 jQuery2.cssHooks[prop] = addGetHookIf( 29679 support.pixelPosition, 29680 function(elem, computed) { 29681 if (computed) { 29682 computed = curCSS(elem, prop); 29683 return rnumnonpx.test(computed) ? jQuery2(elem).position()[prop] + "px" : computed; 29684 } 29685 } 29686 ); 29687 }); 29688 jQuery2.each({ Height: "height", Width: "width" }, function(name, type) { 29689 jQuery2.each({ 29690 padding: "inner" + name, 29691 content: type, 29692 "": "outer" + name 29693 }, function(defaultExtra, funcName) { 29694 jQuery2.fn[funcName] = function(margin, value) { 29695 var chainable = arguments.length && (defaultExtra || typeof margin !== "boolean"), extra = defaultExtra || (margin === true || value === true ? "margin" : "border"); 29696 return access(this, function(elem, type2, value2) { 29697 var doc; 29698 if (isWindow(elem)) { 29699 return funcName.indexOf("outer") === 0 ? elem["inner" + name] : elem.document.documentElement["client" + name]; 29700 } 29701 if (elem.nodeType === 9) { 29702 doc = elem.documentElement; 29703 return Math.max( 29704 elem.body["scroll" + name], 29705 doc["scroll" + name], 29706 elem.body["offset" + name], 29707 doc["offset" + name], 29708 doc["client" + name] 29709 ); 29710 } 29711 return value2 === void 0 ? ( 29712 // Get width or height on the element, requesting but not forcing parseFloat 29713 jQuery2.css(elem, type2, extra) 29714 ) : ( 29715 // Set width or height on the element 29716 jQuery2.style(elem, type2, value2, extra) 29717 ); 29718 }, type, chainable ? margin : void 0, chainable); 29719 }; 29720 }); 29721 }); 29722 jQuery2.each([ 29723 "ajaxStart", 29724 "ajaxStop", 29725 "ajaxComplete", 29726 "ajaxError", 29727 "ajaxSuccess", 29728 "ajaxSend" 29729 ], function(_i2, type) { 29730 jQuery2.fn[type] = function(fn) { 29731 return this.on(type, fn); 29732 }; 29733 }); 29734 jQuery2.fn.extend({ 29735 bind: function(types, data, fn) { 29736 return this.on(types, null, data, fn); 29737 }, 29738 unbind: function(types, fn) { 29739 return this.off(types, null, fn); 29740 }, 29741 delegate: function(selector3, types, data, fn) { 29742 return this.on(types, selector3, data, fn); 29743 }, 29744 undelegate: function(selector3, types, fn) { 29745 return arguments.length === 1 ? this.off(selector3, "**") : this.off(types, selector3 || "**", fn); 29746 }, 29747 hover: function(fnOver, fnOut) { 29748 return this.on("mouseenter", fnOver).on("mouseleave", fnOut || fnOver); 29749 } 29750 }); 29751 jQuery2.each( 29752 "blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), 29753 function(_i2, name) { 29754 jQuery2.fn[name] = function(data, fn) { 29755 return arguments.length > 0 ? this.on(name, null, data, fn) : this.trigger(name); 29756 }; 29757 } 29758 ); 29759 var rtrim = /^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g; 29760 jQuery2.proxy = function(fn, context3) { 29761 var tmp, args, proxy; 29762 if (typeof context3 === "string") { 29763 tmp = fn[context3]; 29764 context3 = fn; 29765 fn = tmp; 29766 } 29767 if (!isFunction(fn)) { 29768 return void 0; 29769 } 29770 args = slice.call(arguments, 2); 29771 proxy = function() { 29772 return fn.apply(context3 || this, args.concat(slice.call(arguments))); 29773 }; 29774 proxy.guid = fn.guid = fn.guid || jQuery2.guid++; 29775 return proxy; 29776 }; 29777 jQuery2.holdReady = function(hold) { 29778 if (hold) { 29779 jQuery2.readyWait++; 29780 } else { 29781 jQuery2.ready(true); 29782 } 29783 }; 29784 jQuery2.isArray = Array.isArray; 29785 jQuery2.parseJSON = JSON.parse; 29786 jQuery2.nodeName = nodeName; 29787 jQuery2.isFunction = isFunction; 29788 jQuery2.isWindow = isWindow; 29789 jQuery2.camelCase = camelCase; 29790 jQuery2.type = toType; 29791 jQuery2.now = Date.now; 29792 jQuery2.isNumeric = function(obj) { 29793 var type = jQuery2.type(obj); 29794 return (type === "number" || type === "string") && // parseFloat NaNs numeric-cast false positives ("") 29795 // ...but misinterprets leading-number strings, particularly hex literals ("0x...") 29796 // subtraction forces infinities to NaN 29797 !isNaN(obj - parseFloat(obj)); 29798 }; 29799 jQuery2.trim = function(text) { 29800 return text == null ? "" : (text + "").replace(rtrim, "$1"); 29801 }; 29802 if (typeof define === "function" && define.amd) { 29803 define("jquery", [], function() { 29804 return jQuery2; 29805 }); 29806 } 29807 var _jQuery = window2.jQuery, _$ = window2.$; 29808 jQuery2.noConflict = function(deep) { 29809 if (window2.$ === jQuery2) { 29810 window2.$ = _$; 29811 } 29812 if (deep && window2.jQuery === jQuery2) { 29813 window2.jQuery = _jQuery; 29814 } 29815 return jQuery2; 29816 }; 29817 if (typeof noGlobal === "undefined") { 29818 window2.jQuery = window2.$ = jQuery2; 29819 } 29820 return jQuery2; 29821 }); 29822 } 29823 }); 29824 29825
vendor: 2,735 bytes, lines 29825-29901
29825// node_modules/jquery-bridget/jquery-bridget.js 29826 var require_jquery_bridget = __commonJS({ 29827 "node_modules/jquery-bridget/jquery-bridget.js"(exports, module) { 29828 (function(window2, factory) { 29829 if (typeof module == "object" && module.exports) { 29830 module.exports = factory( 29831 window2, 29832 require_jquery() 29833 ); 29834 } else { 29835 window2.jQueryBridget = factory( 29836 window2, 29837 window2.jQuery 29838 ); 29839 } 29840 })(window, function factory(window2, jQuery2) { 29841 let console2 = window2.console; 29842 let logError = typeof console2 == "undefined" ? function() { 29843 } : function(message) { 29844 console2.error(message); 29845 }; 29846 function jQueryBridget2(namespace, PluginClass, $4) { 29847 $4 = $4 || jQuery2 || window2.jQuery; 29848 if (!$4) { 29849 return; 29850 } 29851 if (!PluginClass.prototype.option) { 29852 PluginClass.prototype.option = function(opts) { 29853 if (!opts) return; 29854 this.options = Object.assign(this.options || {}, opts); 29855 }; 29856 } 29857 $4.fn[namespace] = function(arg0, ...args) { 29858 if (typeof arg0 == "string") { 29859 return methodCall(this, arg0, args); 29860 } 29861 plainCall(this, arg0); 29862 return this; 29863 }; 29864 function methodCall($elems, methodName, args) { 29865 let returnValue; 29866 let pluginMethodStr = `$().${namespace}("${methodName}")`; 29867 $elems.each(function(i10, elem) { 29868 let instance = $4.data(elem, namespace); 29869 if (!instance) { 29870 logError(`${namespace} not initialized. Cannot call method ${pluginMethodStr}`); 29871 return; 29872 } 29873 let method = instance[methodName]; 29874 if (!method || methodName.charAt(0) == "_") { 29875 logError(`${pluginMethodStr} is not a valid method`); 29876 return; 29877 } 29878 let value = method.apply(instance, args); 29879 returnValue = returnValue === void 0 ? value : returnValue; 29880 }); 29881 return returnValue !== void 0 ? returnValue : $elems; 29882 } 29883 function plainCall($elems, options) { 29884 $elems.each(function(i10, elem) { 29885 let instance = $4.data(elem, namespace); 29886 if (instance) { 29887 instance.option(options); 29888 instance._init(); 29889 } else { 29890 instance = new PluginClass(elem, options); 29891 $4.data(elem, namespace, instance); 29892 } 29893 }); 29894 } 29895 } 29896 return jQueryBridget2; 29897 }); 29898 } 29899 }); 29900 29901
29901// js/isotope.js 29902 var isotope_exports = {}; 29903 var import_isotope_layout, import_imagesloaded, import_jquery_bridget, import_jquery; 29904 var init_isotope = __esm({ 29905 "js/isotope.js"() { 29906 import_isotope_layout = __toESM(require_isotope()); 29907 import_imagesloaded = __toESM(require_imagesloaded()); 29908 import_jquery_bridget = __toESM(require_jquery_bridget()); 29909 import_jquery = __toESM(require_jquery()); 29910 window.$ = window.jQuery = import_jquery.default; 29911 (0, import_jquery_bridget.default)("isotope", import_isotope_layout.default, import_jquery.default); 29912 jQuery(document).ready(function() { 29913 var $grid = (0, import_jquery.default)(".grid-resources"); 29914 var $resultsCount = (0, import_jquery.default)("#results"); 29915 var searchQuery = ""; 29916 var filterGroups = {}; 29917 (0, import_jquery.default)(".resource-filter-select").each(function() { 29918 var group = (0, import_jquery.default)(this).data("filter-group"); 29919 if (group && !filterGroups[group]) { 29920 filterGroups[group] = []; 29921 } 29922 }); 29923 function updateFilterResultsCount() { 29924 if (!$resultsCount.length || !$grid.length) { 29925 return; 29926 } 29927 var iso = $grid.data("isotope"); 29928 var visibleCount = iso && iso.filteredItems ? iso.filteredItems.length : $grid.find(".resource-list").length; 29929 $resultsCount.text(" (" + visibleCount + ")"); 29930 } 29931 function getActiveFilterFn() { 29932 var hasFilters = Object.keys(filterGroups).some(function(group) { 29933 return filterGroups[group].length > 0; 29934 }); 29935 if (!hasFilters && !searchQuery) { 29936 return "*"; 29937 } 29938 return function(element) { 29939 var $el = (0, import_jquery.default)(element); 29940 var matchesSearch = !searchQuery || $el.find(".card-body").text().toLowerCase().indexOf(searchQuery) !== -1; 29941 return matchesSearch && Object.keys(filterGroups).every(function(group) { 29942 var filters = filterGroups[group]; 29943 if (!filters.length) { 29944 return true; 29945 } 29946 return filters.some(function(f3) { 29947 return $el.is(f3); 29948 }); 29949 }); 29950 }; 29951 } 29952 function applyFilter() { 29953 if (!$grid.length) { 29954 return; 29955 } 29956 $grid.isotope({ 29957 itemSelector: ".resource-list", 29958 // layoutMode: 'fitRows', 29959 filter: getActiveFilterFn() 29960 }); 29961 updateFilterResultsCount(); 29962 (0, import_imagesloaded.default)($grid.get(), function() { 29963 $grid.isotope("layout"); 29964 updateFilterResultsCount(); 29965 }); 29966 } 29967 function getFilterLabel($select, filterValue) { 29968 var $option = $select.find('option[value="' + filterValue + '"]'); 29969 return $option.length ? import_jquery.default.trim($option.text()) : filterValue; 29970 } 29971 function renderChips($select, $chips, group) { 29972 $chips.empty(); 29973 filterGroups[group].forEach(function(filterValue) { 29974 var label = getFilterLabel($select, filterValue); 29975 var $chip = (0, import_jquery.default)('<button type="button" class="resource-filter-chip"></button>'); 29976 $chip.attr("data-filter", filterValue); 29977 $chip.text(label + " \xD7"); 29978 $chips.append($chip); 29979 }); 29980 } 29981 (0, import_jquery.default)(".resource-filter-select").each(function() { 29982 var $select = (0, import_jquery.default)(this); 29983 var group = $select.data("filter-group"); 29984 if (!group) { 29985 return; 29986 } 29987 var $chips = (0, import_jquery.default)('[data-filter-group-chips="' + group + '"]'); 29988 $select.on("change", function() { 29989 var selectedValue = (0, import_jquery.default)(this).val(); 29990 if (!selectedValue) { 29991 return; 29992 } 29993 if (selectedValue === "*") { 29994 filterGroups[group] = []; 29995 } else if (filterGroups[group].indexOf(selectedValue) === -1) { 29996 filterGroups[group].push(selectedValue); 29997 } 29998 (0, import_jquery.default)(this).val(""); 29999 renderChips($select, $chips, group); 30000 applyFilter(); 30001 }); 30002 $chips.on("click", ".resource-filter-chip", function() { 30003 var filterToRemove = (0, import_jquery.default)(this).attr("data-filter"); 30004 filterGroups[group] = filterGroups[group].filter(function(v3) { 30005 return v3 !== filterToRemove; 30006 }); 30007 renderChips($select, $chips, group); 30008 applyFilter(); 30009 }); 30010 }); 30011 (0, import_jquery.default)(".device-filter-select").each(function() { 30012 var $select = (0, import_jquery.default)(this); 30013 var group = $select.data("filter-group"); 30014 if (!group) { 30015 return; 30016 } 30017 var $chips = (0, import_jquery.default)('[data-filter-group-chips="' + group + '"]'); 30018 $select.on("change", function() { 30019 var selectedValue = (0, import_jquery.default)(this).val(); 30020 if (!selectedValue) { 30021 return; 30022 } 30023 if (selectedValue === "*") { 30024 filterGroups[group] = []; 30025 } else if (filterGroups[group].indexOf(selectedValue) === -1) { 30026 filterGroups[group].push(selectedValue); 30027 } 30028 (0, import_jquery.default)(this).val(""); 30029 renderChips($select, $chips, group); 30030 applyFilter(); 30031 }); 30032 $chips.on("click", ".resource-filter-chip", function() { 30033 var filterToRemove = (0, import_jquery.default)(this).attr("data-filter"); 30034 filterGroups[group] = filterGroups[group].filter(function(v3) { 30035 return v3 !== filterToRemove; 30036 }); 30037 renderChips($select, $chips, group); 30038 applyFilter(); 30039 }); 30040 }); 30041 (0, import_jquery.default)("#quicksearch").on("input", function() { 30042 searchQuery = import_jquery.default.trim((0, import_jquery.default)(this).val()).toLowerCase(); 30043 applyFilter(); 30044 }); 30045 applyFilter(); 30046 }); 30047 } 30048 }); 30049 30050
30050// js/bootstrap.js 30051 var bootstrap_exports = {}; 30052 var bootstrap, tooltipTriggerList, tooltipList; 30053 var init_bootstrap = __esm({ 30054 "js/bootstrap.js"() { 30055 bootstrap = __toESM(require_bootstrap()); 30056 tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]'); 30057 tooltipList = [...tooltipTriggerList].map((tooltipTriggerEl) => new bootstrap.Tooltip(tooltipTriggerEl)); 30058 } 30059 }); 30060 30061
vendor: 33,109 bytes, lines 30061-31018
30061// node_modules/typeit/dist/index.es.js 30062 function calculatePace(options) { 30063 let { speed, deleteSpeed, lifeLike } = options; 30064 deleteSpeed = deleteSpeed !== null ? deleteSpeed : speed / 3; 30065 return lifeLike ? [ 30066 randomInRange(speed, range(speed)), 30067 randomInRange(deleteSpeed, range(deleteSpeed)) 30068 ] : [speed, deleteSpeed]; 30069 } 30070 function walkElementNodes(element, shouldReverse = false, shouldIncludeCursor = false) { 30071 let cursor = element.querySelector(`.${CURSOR_CLASS}`); 30072 let walker = document.createTreeWalker(element, NodeFilter.SHOW_ALL, { 30073 acceptNode: (node) => { 30074 if (cursor && shouldIncludeCursor) { 30075 if (node.classList?.contains(CURSOR_CLASS)) { 30076 return NodeFilter.FILTER_ACCEPT; 30077 } 30078 if (cursor.contains(node)) { 30079 return NodeFilter.FILTER_REJECT; 30080 } 30081 } 30082 return node.classList?.contains(CURSOR_CLASS) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT; 30083 } 30084 }); 30085 let nextNode; 30086 let nodes = []; 30087 while (nextNode = walker.nextNode()) { 30088 if (!nextNode.originalParent) { 30089 nextNode.originalParent = nextNode.parentNode; 30090 } 30091 nodes.push(nextNode); 30092 } 30093 return shouldReverse ? nodes.reverse() : nodes; 30094 } 30095 function chunkStringAsHtml(string) { 30096 return walkElementNodes(getParsedBody(string)); 30097 } 30098 function maybeChunkStringAsHtml(str, asHtml = true) { 30099 return asHtml ? chunkStringAsHtml(str) : toArray3(str).map(createTextNode); 30100 } 30101 function selectorToElement(thing) { 30102 return typeof thing === "string" ? select(thing) : thing; 30103 } 30104 function splitOnBreak(str) { 30105 return str.replace(/<!--(.+?)-->/g, "").trim().split(/<br(?:\s*?)(?:\/)?>/); 30106 } 30107 var isArray, asArray, Queue, DATA_ATTRIBUTE, CURSOR_CLASS, END, DEFAULT_STATUSES, DEFAULT_OPTIONS, PLACEHOLDER_CSS, createElement, createTextNode, appendStyleBlock, calculateDelay, randomInRange, range, toArray3, expandTextNodes, getParsedBody, cleanUpSkipped, isNumber, countStepsToSelector, destroyTimeouts, duplicate, beforePaint, getAnimationFromElement, setCursorAnimation, rebuildCursorAnimation, execute, fireItem, fireWhenVisible, generateHash, isInput, getAllChars, handleFunctionalArg, select, isBodyElement, insertIntoElement, isNonVoidElement, merge, processCursorOptions, removeNode, repositionCursor, cursorFontStyles, setCursorStyles, updateCursorPosition, wait, TypeIt; 30108 var init_index_es = __esm({ 30109 "node_modules/typeit/dist/index.es.js"() { 30110 isArray = (thing) => Array.isArray(thing); 30111 asArray = (value) => isArray(value) ? value : [value]; 30112 Queue = function(initialItems) { 30113 let add = function(steps) { 30114 asArray(steps).forEach((step) => { 30115 return _q.set(Symbol(step.char?.innerText), buildQueueItem({ ...step })); 30116 }); 30117 return this; 30118 }; 30119 let getTypeable = () => rawValues().filter((value) => value.typeable); 30120 let set = function(index, item) { 30121 let keys = [..._q.keys()]; 30122 _q.set(keys[index], buildQueueItem(item)); 30123 }; 30124 let buildQueueItem = (queueItem) => { 30125 queueItem.shouldPauseCursor = function() { 30126 return Boolean(this.typeable || this.cursorable || this.deletable); 30127 }; 30128 return queueItem; 30129 }; 30130 let reset = function() { 30131 _q.forEach((item) => delete item.done); 30132 }; 30133 let wipe = function() { 30134 _q = /* @__PURE__ */ new Map(); 30135 add(initialItems); 30136 }; 30137 let getQueue = () => _q; 30138 let rawValues = () => Array.from(_q.values()); 30139 let destroy = (key) => _q.delete(key); 30140 let getPendingQueueItems = () => { 30141 const pending = []; 30142 for (let [, value] of getQueue()) { 30143 if (!value.done) { 30144 pending.push(value); 30145 } 30146 } 30147 return pending; 30148 }; 30149 let getItems = (all = false) => all ? rawValues() : rawValues().filter((i10) => !i10.done); 30150 let done = (key, shouldDestroy = false) => shouldDestroy ? _q.delete(key) : _q.get(key).done = true; 30151 let _q = /* @__PURE__ */ new Map(); 30152 add(initialItems); 30153 return { 30154 add, 30155 set, 30156 wipe, 30157 done, 30158 reset, 30159 destroy, 30160 getItems, 30161 getQueue, 30162 getTypeable, 30163 getPendingQueueItems 30164 }; 30165 }; 30166 DATA_ATTRIBUTE = "data-typeit-id"; 30167 CURSOR_CLASS = "ti-cursor"; 30168 END = "END"; 30169 DEFAULT_STATUSES = { 30170 started: false, 30171 completed: false, 30172 frozen: false, 30173 destroyed: false 30174 }; 30175 DEFAULT_OPTIONS = { 30176 breakLines: true, 30177 cursor: { 30178 autoPause: true, 30179 autoPauseDelay: 500, 30180 animation: { 30181 frames: [0, 0, 1].map((n10) => { 30182 return { opacity: n10 }; 30183 }), 30184 options: { 30185 iterations: Infinity, 30186 easing: "steps(2, start)", 30187 fill: "forwards" 30188 } 30189 } 30190 }, 30191 cursorChar: "|", 30192 cursorSpeed: 1e3, 30193 deleteSpeed: null, 30194 html: true, 30195 lifeLike: true, 30196 loop: false, 30197 loopDelay: 750, 30198 nextStringDelay: 750, 30199 speed: 100, 30200 startDelay: 250, 30201 startDelete: false, 30202 strings: [], 30203 waitUntilVisible: false, 30204 beforeString: () => { 30205 }, 30206 afterString: () => { 30207 }, 30208 beforeStep: () => { 30209 }, 30210 afterStep: () => { 30211 }, 30212 afterComplete: () => { 30213 } 30214 }; 30215 PLACEHOLDER_CSS = `[${DATA_ATTRIBUTE}]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}`; 30216 createElement = (el) => document.createElement(el); 30217 createTextNode = (content) => document.createTextNode(content); 30218 appendStyleBlock = (styles, id = "") => { 30219 let styleBlock = createElement("style"); 30220 styleBlock.id = id; 30221 styleBlock.appendChild(createTextNode(styles)); 30222 document.head.appendChild(styleBlock); 30223 }; 30224 calculateDelay = (delayArg) => { 30225 if (!isArray(delayArg)) { 30226 delayArg = [delayArg / 2, delayArg / 2]; 30227 } 30228 return delayArg; 30229 }; 30230 randomInRange = (value, range2) => { 30231 return Math.abs( 30232 Math.random() * (value + range2 - (value - range2)) + (value - range2) 30233 ); 30234 }; 30235 range = (val) => val / 2; 30236 toArray3 = (val) => Array.from(val); 30237 expandTextNodes = (element) => { 30238 [...element.childNodes].forEach((child) => { 30239 if (child.nodeValue) { 30240 [...child.nodeValue].forEach((c5) => { 30241 child.parentNode.insertBefore(createTextNode(c5), child); 30242 }); 30243 child.remove(); 30244 return; 30245 } 30246 expandTextNodes(child); 30247 }); 30248 return element; 30249 }; 30250 getParsedBody = (content) => { 30251 let doc = document.implementation.createHTMLDocument(); 30252 doc.body.innerHTML = content; 30253 return expandTextNodes(doc.body); 30254 }; 30255 cleanUpSkipped = ({ 30256 index, 30257 newIndex, 30258 queueItems, 30259 cleanUp 30260 }) => { 30261 for (let i10 = index + 1; i10 < newIndex + 1; i10++) { 30262 cleanUp(queueItems[i10][0]); 30263 } 30264 }; 30265 isNumber = (value) => Number.isInteger(value); 30266 countStepsToSelector = ({ 30267 queueItems, 30268 selector: selector3, 30269 cursorPosition, 30270 to 30271 }) => { 30272 if (isNumber(selector3)) { 30273 return selector3 * -1; 30274 } 30275 let isMovingToEnd = new RegExp(END, "i").test(to); 30276 let selectorIndex = selector3 ? [...queueItems].reverse().findIndex(({ char }) => { 30277 let parentElement = char.parentElement; 30278 let parentMatches = parentElement.matches(selector3); 30279 if (isMovingToEnd && parentMatches) { 30280 return true; 30281 } 30282 return parentMatches && parentElement.firstChild.isSameNode(char); 30283 }) : -1; 30284 if (selectorIndex < 0) { 30285 selectorIndex = isMovingToEnd ? 0 : queueItems.length - 1; 30286 } 30287 let offset = isMovingToEnd ? 0 : 1; 30288 return selectorIndex - cursorPosition + offset; 30289 }; 30290 destroyTimeouts = (timeouts) => { 30291 timeouts.forEach(clearTimeout); 30292 return []; 30293 }; 30294 duplicate = (value, times) => new Array(times).fill(value); 30295 beforePaint = (cb) => { 30296 return new Promise((resolve) => { 30297 requestAnimationFrame(async () => { 30298 resolve(await cb()); 30299 }); 30300 }); 30301 }; 30302 getAnimationFromElement = (element) => { 30303 return element?.getAnimations().find((animation) => { 30304 return animation.id === element.dataset.tiAnimationId; 30305 }); 30306 }; 30307 setCursorAnimation = ({ 30308 cursor, 30309 frames, 30310 options 30311 }) => { 30312 let animation = cursor.animate(frames, options); 30313 animation.pause(); 30314 animation.id = cursor.dataset.tiAnimationId; 30315 beforePaint(() => { 30316 beforePaint(() => { 30317 animation.play(); 30318 }); 30319 }); 30320 return animation; 30321 }; 30322 rebuildCursorAnimation = ({ 30323 cursor, 30324 options, 30325 cursorOptions 30326 }) => { 30327 if (!cursor || !cursorOptions) return; 30328 let animation = getAnimationFromElement(cursor); 30329 let oldCurrentTime; 30330 if (animation) { 30331 options.delay = animation.effect.getComputedTiming().delay; 30332 oldCurrentTime = animation.currentTime; 30333 animation.cancel(); 30334 } 30335 let newAnimation = setCursorAnimation({ 30336 cursor, 30337 frames: cursorOptions.animation.frames, 30338 options 30339 }); 30340 if (oldCurrentTime) { 30341 newAnimation.currentTime = oldCurrentTime; 30342 } 30343 return newAnimation; 30344 }; 30345 execute = (queueItem) => queueItem.func?.call(null); 30346 fireItem = async ({ 30347 index, 30348 queueItems, 30349 wait: wait2, 30350 cursor, 30351 cursorOptions 30352 }) => { 30353 let queueItem = queueItems[index][1]; 30354 let instantQueue = []; 30355 let tempIndex = index; 30356 let futureItem = queueItem; 30357 let shouldBeGrouped = () => futureItem && !futureItem.delay; 30358 let shouldPauseCursor = queueItem.shouldPauseCursor() && cursorOptions.autoPause; 30359 while (shouldBeGrouped()) { 30360 instantQueue.push(futureItem); 30361 shouldBeGrouped() && tempIndex++; 30362 futureItem = queueItems[tempIndex] ? queueItems[tempIndex][1] : null; 30363 } 30364 if (instantQueue.length) { 30365 await beforePaint(async () => { 30366 for (let q2 of instantQueue) { 30367 await execute(q2); 30368 } 30369 }); 30370 return tempIndex - 1; 30371 } 30372 let animation = getAnimationFromElement(cursor); 30373 let options; 30374 if (animation) { 30375 options = { 30376 ...animation.effect.getComputedTiming(), 30377 delay: shouldPauseCursor ? cursorOptions.autoPauseDelay : 0 30378 }; 30379 } 30380 await wait2(async () => { 30381 if (animation && shouldPauseCursor) { 30382 animation.cancel(); 30383 } 30384 await beforePaint(() => { 30385 execute(queueItem); 30386 }); 30387 }, queueItem.delay); 30388 await rebuildCursorAnimation({ 30389 cursor, 30390 options, 30391 cursorOptions 30392 }); 30393 return index; 30394 }; 30395 fireWhenVisible = (element, func) => { 30396 let observer = new IntersectionObserver( 30397 (entries, observer2) => { 30398 entries.forEach((entry) => { 30399 if (entry.isIntersecting) { 30400 func(); 30401 observer2.unobserve(element); 30402 } 30403 }); 30404 }, 30405 { threshold: 1 } 30406 ); 30407 observer.observe(element); 30408 }; 30409 generateHash = () => Math.random().toString().substring(2, 9); 30410 isInput = (el) => { 30411 return "value" in el; 30412 }; 30413 getAllChars = (element) => { 30414 if (isInput(element)) { 30415 return toArray3(element.value); 30416 } 30417 return walkElementNodes(element, true).filter( 30418 (c5) => !(c5.childNodes.length > 0) 30419 ); 30420 }; 30421 handleFunctionalArg = (arg) => { 30422 return typeof arg === "function" ? arg() : arg; 30423 }; 30424 select = (selector3, element = document, all = false) => { 30425 return element[`querySelector${all ? "All" : ""}`](selector3); 30426 }; 30427 isBodyElement = (node) => /body/i.test(node?.tagName); 30428 insertIntoElement = (originalTarget, character) => { 30429 if (isInput(originalTarget)) { 30430 originalTarget.value = `${originalTarget.value}${character.textContent}`; 30431 return; 30432 } 30433 character.innerHTML = ""; 30434 let target = isBodyElement(character.originalParent) ? originalTarget : ( 30435 // If we add one-off fresh elements, there will be no 30436 // "originalParent", so always fall back to the default target. 30437 character.originalParent || originalTarget 30438 ); 30439 let cursorNode = select("." + CURSOR_CLASS, target) || null; 30440 if (cursorNode && cursorNode.parentElement !== target) { 30441 target = cursorNode.parentElement; 30442 } 30443 target.insertBefore(character, cursorNode); 30444 }; 30445 isNonVoidElement = (el) => /<(.+)>(.*?)<\/(.+)>/.test(el.outerHTML); 30446 merge = (originalObj, newObj) => Object.assign({}, originalObj, newObj); 30447 processCursorOptions = (cursorOptions) => { 30448 if (typeof cursorOptions === "object") { 30449 let newOptions = {}; 30450 let { frames: defaultFrames, options: defaultOptions } = DEFAULT_OPTIONS.cursor.animation; 30451 newOptions.animation = cursorOptions.animation || {}; 30452 newOptions.animation.frames = cursorOptions.animation?.frames || defaultFrames; 30453 newOptions.animation.options = merge( 30454 defaultOptions, 30455 cursorOptions.animation?.options || {} 30456 ); 30457 newOptions.autoPause = cursorOptions.autoPause ?? DEFAULT_OPTIONS.cursor.autoPause; 30458 newOptions.autoPauseDelay = cursorOptions.autoPauseDelay || DEFAULT_OPTIONS.cursor.autoPauseDelay; 30459 return newOptions; 30460 } 30461 if (cursorOptions === true) { 30462 return DEFAULT_OPTIONS.cursor; 30463 } 30464 return cursorOptions; 30465 }; 30466 removeNode = (node, rootElement) => { 30467 if (!node) return; 30468 let nodeParent = node.parentNode; 30469 let nodeToRemove = nodeParent.childNodes.length > 1 || nodeParent.isSameNode(rootElement) ? ( 30470 // This parent still needs to exist. 30471 node 30472 ) : ( 30473 // There's nothing else in there, so just delete the entire thing. 30474 // By doing this, we clean up markup as we go along. 30475 nodeParent 30476 ); 30477 nodeToRemove.remove(); 30478 }; 30479 repositionCursor = (element, allChars, newCursorPosition) => { 30480 let nodeToInsertBefore = allChars[newCursorPosition - 1]; 30481 let cursor = select(`.${CURSOR_CLASS}`, element); 30482 element = nodeToInsertBefore?.parentNode || element; 30483 element.insertBefore(cursor, nodeToInsertBefore || null); 30484 }; 30485 cursorFontStyles = { 30486 "font-family": "", 30487 "font-weight": "", 30488 "font-size": "", 30489 "font-style": "", 30490 "line-height": "", 30491 color: "", 30492 transform: "translateX(-.125em)" 30493 }; 30494 setCursorStyles = (id, element) => { 30495 let rootSelector = `[${DATA_ATTRIBUTE}='${id}']`; 30496 let cursorSelector = `${rootSelector} .${CURSOR_CLASS}`; 30497 let computedStyles = getComputedStyle(element); 30498 let customProperties = Object.entries(cursorFontStyles).reduce( 30499 (accumulator, [item, value]) => { 30500 return `${accumulator} ${item}: var(--ti-cursor-${item}, ${value || computedStyles[item]});`; 30501 }, 30502 "" 30503 ); 30504 appendStyleBlock( 30505 `${cursorSelector} { display: inline-block; width: 0; ${customProperties} }`, 30506 id 30507 ); 30508 }; 30509 updateCursorPosition = (steps, cursorPosition, printedCharacters) => { 30510 return Math.min( 30511 Math.max(cursorPosition + steps, 0), 30512 printedCharacters.length 30513 ); 30514 }; 30515 wait = (callback, delay, timeouts) => { 30516 return new Promise((resolve) => { 30517 let cb = async () => { 30518 await callback(); 30519 resolve(); 30520 }; 30521 timeouts.push(setTimeout(cb, delay || 0)); 30522 }); 30523 }; 30524 TypeIt = class { 30525 element; 30526 timeouts; 30527 cursorPosition; 30528 predictedCursorPosition; 30529 statuses = { 30530 started: false, 30531 completed: false, 30532 frozen: false, 30533 destroyed: false, 30534 firing: false 30535 }; 30536 opts; 30537 id; 30538 queue; 30539 cursor; 30540 flushCallback = null; 30541 unfreeze = () => { 30542 }; 30543 constructor(element, options = {}) { 30544 this.opts = merge(DEFAULT_OPTIONS, options); 30545 this.element = selectorToElement(element); 30546 this.timeouts = []; 30547 this.cursorPosition = 0; 30548 this.unfreeze = () => { 30549 }; 30550 this.predictedCursorPosition = null; 30551 this.statuses = merge({}, DEFAULT_STATUSES); 30552 this.id = generateHash(); 30553 this.queue = Queue([{ delay: this.opts.startDelay }]); 30554 this.#buildOptions(options); 30555 this.cursor = this.#setUpCursor(); 30556 this.element.dataset.typeitId = this.id; 30557 appendStyleBlock(PLACEHOLDER_CSS); 30558 if (this.opts.strings.length) { 30559 this.#generateQueue(); 30560 } 30561 } 30562 /** 30563 * Can only be called once. 30564 */ 30565 go() { 30566 if (this.statuses.started) { 30567 return this; 30568 } 30569 this.#attachCursor(); 30570 if (!this.opts.waitUntilVisible) { 30571 this.#fire(); 30572 return this; 30573 } 30574 fireWhenVisible(this.element, this.#fire.bind(this)); 30575 return this; 30576 } 30577 destroy(shouldRemoveCursor = true) { 30578 this.timeouts = destroyTimeouts(this.timeouts); 30579 handleFunctionalArg(shouldRemoveCursor) && this.cursor && this.#removeNode(this.cursor); 30580 this.statuses.destroyed = true; 30581 } 30582 reset(rebuild) { 30583 !this.is("destroyed") && this.destroy(); 30584 if (rebuild) { 30585 this.queue.wipe(); 30586 rebuild(this); 30587 } else { 30588 this.queue.reset(); 30589 } 30590 this.cursorPosition = 0; 30591 for (let property in this.statuses) { 30592 this.statuses[property] = false; 30593 } 30594 this.element[this.#elementIsInput() ? "value" : "innerHTML"] = ""; 30595 return this; 30596 } 30597 is = function(key) { 30598 return this.statuses[key]; 30599 }; 30600 type(string, actionOpts = {}) { 30601 string = handleFunctionalArg(string); 30602 let { instant } = actionOpts; 30603 let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts); 30604 let chars = maybeChunkStringAsHtml(string, this.opts.html); 30605 let charsAsQueueItems = chars.map((char) => { 30606 return { 30607 func: () => this.#type(char), 30608 char, 30609 delay: instant || isNonVoidElement(char) ? 0 : this.#getPace(), 30610 typeable: char.nodeType === Node.TEXT_NODE 30611 }; 30612 }); 30613 let itemsToQueue = [ 30614 bookEndQueueItems[0], 30615 { func: async () => await this.opts.beforeString(string, this) }, 30616 ...charsAsQueueItems, 30617 { func: async () => await this.opts.afterString(string, this) }, 30618 bookEndQueueItems[1] 30619 ]; 30620 return this.#queueAndReturn(itemsToQueue, actionOpts); 30621 } 30622 break(actionOpts = {}) { 30623 return this.#queueAndReturn( 30624 { 30625 func: () => this.#type(createElement("BR")), 30626 typeable: true 30627 }, 30628 actionOpts 30629 ); 30630 } 30631 move(movementArg, actionOpts = {}) { 30632 movementArg = handleFunctionalArg(movementArg); 30633 let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts); 30634 let { instant, to } = actionOpts; 30635 let numberOfSteps = countStepsToSelector({ 30636 queueItems: this.queue.getTypeable(), 30637 selector: movementArg === null ? "" : movementArg, 30638 to, 30639 cursorPosition: this.#derivedCursorPosition 30640 }); 30641 let directionalStep = numberOfSteps < 0 ? -1 : 1; 30642 this.predictedCursorPosition = this.#derivedCursorPosition + numberOfSteps; 30643 return this.#queueAndReturn( 30644 [ 30645 bookEndQueueItems[0], 30646 ...duplicate( 30647 { 30648 func: () => this.#move(directionalStep), 30649 delay: instant ? 0 : this.#getPace(), 30650 cursorable: true 30651 }, 30652 Math.abs(numberOfSteps) 30653 ), 30654 bookEndQueueItems[1] 30655 ], 30656 actionOpts 30657 ); 30658 } 30659 exec(func, actionOpts = {}) { 30660 let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts); 30661 return this.#queueAndReturn( 30662 [bookEndQueueItems[0], { func: () => func(this) }, bookEndQueueItems[1]], 30663 actionOpts 30664 ); 30665 } 30666 options(opts, actionOpts = {}) { 30667 opts = handleFunctionalArg(opts); 30668 this.#updateOptions(opts); 30669 return this.#queueAndReturn({}, actionOpts); 30670 } 30671 pause(milliseconds, actionOpts = {}) { 30672 return this.#queueAndReturn( 30673 { delay: handleFunctionalArg(milliseconds) }, 30674 actionOpts 30675 ); 30676 } 30677 delete(numCharacters = null, actionOpts = {}) { 30678 numCharacters = handleFunctionalArg(numCharacters); 30679 let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts); 30680 let num = numCharacters; 30681 let { instant, to } = actionOpts; 30682 let typeableQueueItems = this.queue.getTypeable(); 30683 let rounds = (() => { 30684 if (num === null) { 30685 return typeableQueueItems.length; 30686 } 30687 if (isNumber(num)) { 30688 return num; 30689 } 30690 return countStepsToSelector({ 30691 queueItems: typeableQueueItems, 30692 selector: num, 30693 cursorPosition: this.#derivedCursorPosition, 30694 to 30695 }); 30696 })(); 30697 return this.#queueAndReturn( 30698 [ 30699 bookEndQueueItems[0], 30700 ...duplicate( 30701 { 30702 func: this.#delete.bind(this), 30703 delay: instant ? 0 : this.#getPace(1), 30704 deletable: true 30705 }, 30706 rounds 30707 ), 30708 bookEndQueueItems[1] 30709 ], 30710 actionOpts 30711 ); 30712 } 30713 freeze() { 30714 this.statuses.frozen = true; 30715 } 30716 /** 30717 * Like `.go()`, but more... "off the grid." 30718 * 30719 * - won't trigger `afterComplete` callback 30720 * - items won't be replayed after `.reset()` 30721 * 30722 * When called, all non-done items will be "flushed" -- 30723 * that is, executed, but not remembered. 30724 */ 30725 flush(cb = null) { 30726 this.flushCallback = cb || this.flushCallback; 30727 if (this.statuses.firing) { 30728 return this; 30729 } 30730 this.#attachCursor(); 30731 this.#fire(false).then(() => { 30732 if (this.queue.getPendingQueueItems().length > 0) { 30733 return this.flush(); 30734 } 30735 this.flushCallback(); 30736 this.flushCallback = null; 30737 }); 30738 return this; 30739 } 30740 getQueue() { 30741 return this.queue; 30742 } 30743 getOptions() { 30744 return this.opts; 30745 } 30746 updateOptions(options) { 30747 return this.#updateOptions(options); 30748 } 30749 getElement() { 30750 return this.element; 30751 } 30752 empty(actionOpts = {}) { 30753 return this.#queueAndReturn({ func: this.#empty.bind(this) }, actionOpts); 30754 } 30755 async #empty() { 30756 if (this.#elementIsInput()) { 30757 this.element.value = ""; 30758 return; 30759 } 30760 this.#allChars.forEach(this.#removeNode.bind(this)); 30761 return; 30762 } 30763 /** 30764 * Execute items in the queue. 30765 * 30766 * @param remember If false, each queue item will be destroyed once executed. 30767 * @returns 30768 */ 30769 async #fire(remember = true) { 30770 this.statuses.started = true; 30771 this.statuses.firing = true; 30772 let cleanUp = (qKey) => { 30773 this.queue.done(qKey, !remember); 30774 }; 30775 try { 30776 let queueItems = [...this.queue.getQueue()]; 30777 for (let index = 0; index < queueItems.length; index++) { 30778 let [queueKey, queueItem] = queueItems[index]; 30779 if (queueItem.done) continue; 30780 if (!queueItem.deletable || queueItem.deletable && this.#allChars.length) { 30781 let newIndex = await this.#fireItemWithContext(index, queueItems); 30782 cleanUpSkipped({ 30783 index, 30784 newIndex, 30785 queueItems, 30786 cleanUp 30787 }); 30788 index = newIndex; 30789 } 30790 cleanUp(queueKey); 30791 } 30792 if (!remember) { 30793 this.statuses.firing = false; 30794 return this; 30795 } 30796 this.statuses.completed = true; 30797 this.statuses.firing = false; 30798 await this.opts.afterComplete(this); 30799 if (!this.opts.loop) { 30800 throw ""; 30801 } 30802 let delay = this.opts.loopDelay; 30803 this.#wait(async () => { 30804 await this.#prepLoop(delay[0]); 30805 this.#fire(); 30806 }, delay[1]); 30807 } catch (e11) { 30808 } 30809 this.statuses.firing = false; 30810 return this; 30811 } 30812 async #move(step) { 30813 this.cursorPosition = updateCursorPosition( 30814 step, 30815 this.cursorPosition, 30816 this.#allChars 30817 ); 30818 repositionCursor(this.element, this.#allChars, this.cursorPosition); 30819 } 30820 /** 30821 * 1. Reset queue. 30822 * 2. Reset initial pause. 30823 */ 30824 async #prepLoop(delay) { 30825 let derivedCursorPosition = this.#derivedCursorPosition; 30826 derivedCursorPosition && await this.#move({ value: derivedCursorPosition }); 30827 let queueItems = this.#allChars.map((c5) => { 30828 return [ 30829 Symbol(), 30830 { 30831 func: this.#delete.bind(this), 30832 delay: this.#getPace(1), 30833 deletable: true, 30834 shouldPauseCursor: () => true 30835 } 30836 ]; 30837 }); 30838 for (let index = 0; index < queueItems.length; index++) { 30839 await this.#fireItemWithContext(index, queueItems); 30840 } 30841 this.queue.reset(); 30842 this.queue.set(0, { delay }); 30843 } 30844 #fireItemWithContext(index, queueItems) { 30845 return fireItem({ 30846 index, 30847 queueItems, 30848 wait: this.#wait.bind(this), 30849 cursor: this.cursor, 30850 cursorOptions: this.opts.cursor 30851 }); 30852 } 30853 async #wait(callback, delay, silent = false) { 30854 if (this.statuses.frozen) { 30855 await new Promise((resolve) => { 30856 this.unfreeze = () => { 30857 this.statuses.frozen = false; 30858 resolve(); 30859 }; 30860 }); 30861 } 30862 silent || await this.opts.beforeStep(this); 30863 await wait(callback, delay, this.timeouts); 30864 silent || await this.opts.afterStep(this); 30865 } 30866 /** 30867 * Attach it to the DOM so, along with the required CSS transition. 30868 */ 30869 async #attachCursor() { 30870 !this.#elementIsInput() && this.cursor && this.element.appendChild(this.cursor); 30871 if (this.#shouldRenderCursor) { 30872 setCursorStyles(this.id, this.element); 30873 this.cursor.dataset.tiAnimationId = this.id; 30874 let { animation } = this.opts.cursor; 30875 let { frames, options } = animation; 30876 setCursorAnimation({ 30877 frames, 30878 cursor: this.cursor, 30879 options: { 30880 duration: this.opts.cursorSpeed, 30881 ...options 30882 } 30883 }); 30884 } 30885 } 30886 #elementIsInput() { 30887 return isInput(this.element); 30888 } 30889 #queueAndReturn(steps, opts) { 30890 this.queue.add(steps); 30891 this.#maybeAppendPause(opts); 30892 return this; 30893 } 30894 #maybeAppendPause(opts = {}) { 30895 let delay = opts.delay; 30896 delay && this.queue.add({ delay }); 30897 } 30898 #generateTemporaryOptionQueueItems(newOptions = {}) { 30899 return [ 30900 { func: () => this.#updateOptions(newOptions) }, 30901 { func: () => this.#updateOptions(this.opts) } 30902 ]; 30903 } 30904 async #updateOptions(opts) { 30905 this.opts = merge(this.opts, opts); 30906 } 30907 /** 30908 * Based on provided strings, generate a TypeIt queue 30909 * to be fired for each character in the string. 30910 */ 30911 #generateQueue() { 30912 let strings = this.opts.strings.filter((string) => !!string); 30913 strings.forEach((string, index) => { 30914 this.type(string); 30915 if (index + 1 === strings.length) { 30916 return; 30917 } 30918 let splitItems = this.opts.breakLines ? [{ func: () => this.#type(createElement("BR")), typeable: true }] : duplicate( 30919 { 30920 func: this.#delete.bind(this), 30921 delay: this.#getPace(1) 30922 }, 30923 this.queue.getTypeable().length 30924 ); 30925 this.#addSplitPause(splitItems); 30926 }); 30927 } 30928 #buildOptions = (options) => { 30929 this.opts.cursor = processCursorOptions( 30930 options.cursor ?? DEFAULT_OPTIONS.cursor 30931 ); 30932 this.opts.strings = this.#prependHardcodedStrings( 30933 asArray(this.opts.strings) 30934 ); 30935 this.opts = merge(this.opts, { 30936 html: !this.#isInput && this.opts.html, 30937 nextStringDelay: calculateDelay(this.opts.nextStringDelay), 30938 loopDelay: calculateDelay(this.opts.loopDelay) 30939 }); 30940 }; 30941 #prependHardcodedStrings(strings) { 30942 let existingMarkup = this.element.innerHTML; 30943 if (!existingMarkup) { 30944 return strings; 30945 } 30946 this.element.innerHTML = ""; 30947 if (this.opts.startDelete) { 30948 this.element.innerHTML = existingMarkup; 30949 expandTextNodes(this.element); 30950 this.#addSplitPause( 30951 duplicate( 30952 { 30953 func: this.#delete.bind(this), 30954 delay: this.#getPace(1), 30955 deletable: true 30956 }, 30957 this.#allChars.length 30958 ) 30959 ); 30960 return strings; 30961 } 30962 return splitOnBreak(existingMarkup).concat(strings); 30963 } 30964 /** 30965 * Provided it's a non-form element and the options is provided, 30966 * set up the cursor element for the animation. 30967 */ 30968 #setUpCursor() { 30969 if (this.#isInput) { 30970 return null; 30971 } 30972 let cursor = createElement("span"); 30973 cursor.className = CURSOR_CLASS; 30974 if (!this.#shouldRenderCursor) { 30975 cursor.style.visibility = "hidden"; 30976 return cursor; 30977 } 30978 cursor.innerHTML = getParsedBody(this.opts.cursorChar).innerHTML; 30979 return cursor; 30980 } 30981 #addSplitPause(items) { 30982 let delay = this.opts.nextStringDelay; 30983 this.queue.add([{ delay: delay[0] }, ...items, { delay: delay[1] }]); 30984 } 30985 #type(char) { 30986 insertIntoElement(this.element, char); 30987 } 30988 #delete() { 30989 if (!this.#allChars.length) return; 30990 if (this.#isInput) { 30991 this.element.value = this.element.value.slice(0, -1); 30992 } else { 30993 this.#removeNode(this.#allChars[this.cursorPosition]); 30994 } 30995 } 30996 #removeNode(node) { 30997 removeNode(node, this.element); 30998 } 30999 #getPace(index = 0) { 31000 return calculatePace(this.opts)[index]; 31001 } 31002 get #derivedCursorPosition() { 31003 return this.predictedCursorPosition ?? this.cursorPosition; 31004 } 31005 get #isInput() { 31006 return isInput(this.element); 31007 } 31008 get #shouldRenderCursor() { 31009 return !!this.opts.cursor && !this.#isInput; 31010 } 31011 get #allChars() { 31012 return getAllChars(this.element); 31013 } 31014 }; 31015 } 31016 }); 31017 31018
31018// js/typeit.js 31019 var typeit_exports = {}; 31020 var initTypeIt; 31021 var init_typeit = __esm({ 31022 "js/typeit.js"() { 31023 init_index_es(); 31024 initTypeIt = () => { 31025 document.querySelectorAll(".typeIt").forEach((element) => { 31026 new TypeIt(element).go(); 31027 }); 31028 }; 31029 if (document.readyState === "loading") { 31030 document.addEventListener("DOMContentLoaded", initTypeIt); 31031 } else { 31032 initTypeIt(); 31033 } 31034 } 31035 }); 31036 31037
31037// js/template.js 31038 var template_exports = {}; 31039 var import_jquery_min2; 31040 var init_template = __esm({ 31041 "js/template.js"() { 31042 import_jquery_min2 = __toESM(require_jquery_min()); 31043 if (!window.jQuery) { 31044 window.jQuery = window.$ = import_jquery_min2.default; 31045 } 31046 Number.prototype.numberFormat = function(n10, x2) { 31047 var re = "\\d(?=(\\d{" + (x2 || 3) + "})+" + (n10 > 0 ? "\\." : "$") + ")"; 31048 return this.toFixed(Math.max(0, ~~n10)).replace(new RegExp(re, "g"), "$&,"); 31049 }; 31050 (function(window2, document2) { 31051 var iframes = document2.getElementsByTagName("iframe"); 31052 for (var i10 = 0; i10 < iframes.length; i10++) { 31053 var iframe = iframes[i10], players = /www.youtube.com|player.vimeo.com/; 31054 if (iframe.src.search(players) > 0) { 31055 if (!iframe.parentNode.classList.contains("ratio-16x9")) { 31056 iframe.width = "100%"; 31057 iframe.height = "100%"; 31058 var wrap3 = document2.createElement("div"); 31059 wrap3.className = "ratio ratio-16x9"; 31060 var iframeParent = iframe.parentNode; 31061 iframeParent.insertBefore(wrap3, iframe); 31062 wrap3.appendChild(iframe); 31063 } 31064 } 31065 } 31066 })(window, document); 31067 window.addEventListener("load", function() { 31068 const hash = window.location.hash; 31069 if (hash) { 31070 const tabTriggerEl = document.querySelector(`button[data-bs-target="${hash}-content"]`); 31071 if (tabTriggerEl) { 31072 tabTriggerEl.click(); 31073 } 31074 } 31075 }); 31076 jQuery(document).ready(function() { 31077 "use strict"; 31078 (0, import_jquery_min2.default)(".js-alert").each(function(index) { 31079 (0, import_jquery_min2.default)(".js-alert" + index + "-close").click(function() { 31080 Cookies.set("siteAlert" + index, (0, import_jquery_min2.default)("#alertText" + index).html()); 31081 (0, import_jquery_min2.default)(".js-alert-" + index).slideUp(); 31082 }); 31083 var alertVal = Cookies.get("siteAlert" + index); 31084 if (alertVal == (0, import_jquery_min2.default)("#alertText" + index).html()) { 31085 } else { 31086 (0, import_jquery_min2.default)(".js-alert-" + index).show(); 31087 } 31088 }); 31089 var previousScroll = 0; 31090 var threshold = false; 31091 var hidezone = 0; 31092 var navHidden = true; 31093 (0, import_jquery_min2.default)(window).scroll(function() { 31094 var currentScroll = (0, import_jquery_min2.default)(this).scrollTop(); 31095 if (currentScroll <= 0) { 31096 window.setTimeout(resetNav, 0); 31097 threshold = false; 31098 previousScroll = 0; 31099 navHidden = true; 31100 hidezone = 0; 31101 } else if (currentScroll > 300) { 31102 (0, import_jquery_min2.default)("header").addClass("is-primed"); 31103 threshold = true; 31104 if (currentScroll < previousScroll) { 31105 window.setTimeout(showNav, 0); 31106 navHidden = false; 31107 hidezone = currentScroll; 31108 } else if (navHidden == false && currentScroll > previousScroll && currentScroll - hidezone > 100) { 31109 window.setTimeout(hideNav, 0); 31110 navHidden = true; 31111 hidezone = 0; 31112 console.log("hide"); 31113 } else if (currentScroll < previousScroll) { 31114 hidezone = currentScroll; 31115 } 31116 previousScroll = currentScroll; 31117 } 31118 }); 31119 function hideNav() { 31120 (0, import_jquery_min2.default)("header").removeClass("is-visible").addClass("is-hidden"); 31121 } 31122 function showNav() { 31123 (0, import_jquery_min2.default)("header").removeClass("is-hidden").addClass("is-visible"); 31124 } 31125 function resetNav() { 31126 (0, import_jquery_min2.default)("header").removeClass("is-hidden").removeClass("is-visible").removeClass("is-primed"); 31127 } 31128 var parallaxImages = []; 31129 var parallaxObjects = []; 31130 var scrolledY = (0, import_jquery_min2.default)(window).scrollTop(); 31131 var menuOffcanvas = document.getElementById("menuOffcanvas"); 31132 menuOffcanvas.addEventListener("hide.bs.offcanvas", function(event) { 31133 (0, import_jquery_min2.default)("#nav-icon2").toggleClass("open"); 31134 }); 31135 menuOffcanvas.addEventListener("show.bs.offcanvas", function(event) { 31136 (0, import_jquery_min2.default)("#nav-icon2").toggleClass("open"); 31137 }); 31138 (0, import_jquery_min2.default)(".camallax").each(function(index) { 31139 var parallaxImage = {}; 31140 parallaxImage.element = (0, import_jquery_min2.default)(this); 31141 parallaxImage.height = parallaxImage.element.outerHeight(); 31142 parallaxImages.push(parallaxImage); 31143 }); 31144 (0, import_jquery_min2.default)(".camallax-object").each(function(index) { 31145 var parallaxObject = {}; 31146 parallaxObject.element = (0, import_jquery_min2.default)(this); 31147 parallaxObject.height = parallaxObject.element.height(); 31148 parallaxObjects.push(parallaxObject); 31149 }); 31150 (0, import_jquery_min2.default)(window).bind("scroll", function(e11) { 31151 parallaxScrollBanner(); 31152 parallaxScrollObjects(); 31153 }); 31154 function parallaxScrollBanner() { 31155 import_jquery_min2.default.each(parallaxImages, function(index, parallaxImage) { 31156 var scrolledY2 = (0, import_jquery_min2.default)(window).scrollTop(); 31157 var overallScrolledRatio = 100 * (0, import_jquery_min2.default)(window).scrollTop() / ((0, import_jquery_min2.default)(document).height() - (0, import_jquery_min2.default)(window).height()); 31158 var background_parallax = parallaxImage.element; 31159 var zeroPos = (0, import_jquery_min2.default)(window).scrollTop() + (0, import_jquery_min2.default)(window).height() - background_parallax.offset().top; 31160 var hundredPos = background_parallax.outerHeight() + (0, import_jquery_min2.default)(window).height(); 31161 var scrollSpeed = 1; 31162 var scrolledRatio = 100 * zeroPos / hundredPos * scrollSpeed; 31163 var scrolled = (0, import_jquery_min2.default)(window).scrollTop() + (0, import_jquery_min2.default)(window).height(); 31164 var zeroNeg = (0, import_jquery_min2.default)(window).scrollTop() + (0, import_jquery_min2.default)(window).height() - background_parallax.offset().top; 31165 var hundredNeg = background_parallax.outerHeight() + (0, import_jquery_min2.default)(window).height(); 31166 var scrolledNegRatio = 100 * ((hundredNeg - zeroNeg) / hundredNeg) * scrollSpeed; 31167 if (scrolledY2 >= parallaxImage.element.offset().top - (0, import_jquery_min2.default)(window).height() && scrolledY2 <= parallaxImage.element.offset().top + parallaxImage.element.outerHeight()) { 31168 if (background_parallax.hasClass("camallaxUp")) { 31169 parallaxImage.element.css({ "background-position-y": scrolledRatio + "%" });
31170 parallaxImage.element.find(".img").css({ "object-position": "50%" + scrolledRatio + "%" }); 31171 } else { 31172 parallaxImage.element.css({ "background-position-y": scrolledNegRatio + "%" }); 31173 parallaxImage.element.find(".img").css({ "object-position": "50%" + scrolledNegRatio + "%" }); 31174 } 31175 } 31176 }); 31177 } 31178 function parallaxScrollObjects() { 31179 import_jquery_min2.default.each(parallaxObjects, function(index, parallaxObject) { 31180 var scrolledY2 = (0, import_jquery_min2.default)(window).scrollTop(); 31181 var overallScrolledRatio = 100 * (0, import_jquery_min2.default)(window).scrollTop() / ((0, import_jquery_min2.default)(document).height() - (0, import_jquery_min2.default)(window).height()); 31182 var background_parallax = parallaxObject.element; 31183 var zeroPos = (0, import_jquery_min2.default)(window).scrollTop() + (0, import_jquery_min2.default)(window).height() - background_parallax.offset().top; 31184 var hundredPos = background_parallax.height() + (0, import_jquery_min2.default)(window).height(); 31185 var scrollSpeed = 3; 31186 var scrolledRatio = 100 * zeroPos / hundredPos * scrollSpeed; 31187 var scrolled = (0, import_jquery_min2.default)(window).scrollTop() + (0, import_jquery_min2.default)(window).height(); 31188 var zeroNeg = (0, import_jquery_min2.default)(window).scrollTop() + (0, import_jquery_min2.default)(window).height() - background_parallax.offset().top; 31189 var hundredNeg = background_parallax.height() + (0, import_jquery_min2.default)(window).height(); 31190 var scrolledNegRatio = 100 * ((hundredNeg - zeroNeg) / hundredNeg) * scrollSpeed; 31191 if (scrolledY2 >= parallaxObject.element.offset().top - (0, import_jquery_min2.default)(window).height() && scrolledY2 <= parallaxObject.element.offset().top + parallaxObject.element.height()) { 31192 parallaxObject.element.css({ "margin-top": scrolledNegRatio + "px" }); 31193 } 31194 }); 31195 } 31196 parallaxScrollBanner(); 31197 parallaxScrollObjects(); 31198 function resizeSets() { 31199 var spacer = (0, import_jquery_min2.default)("header").outerHeight(); 31200 } 31201 (0, import_jquery_min2.default)(window).resize(function(e11) { 31202 resizeSets(); 31203 }); 31204 resizeSets(); 31205 (0, import_jquery_min2.default)("#search-btn").on("click", function(event) { 31206 (0, import_jquery_min2.default)("#search").focus(); 31207 }); 31208 (0, import_jquery_min2.default)("a").not(".collapse-toggle").on("click", function(event) { 31209 if (this.hash !== "") { 31210 var hash = this.hash; 31211 if (hash) { 31212 const tabTriggerEl = document.querySelector(`button[data-bs-target="${hash}-content"]`); 31213 if (tabTriggerEl) { 31214 tabTriggerEl.click(); 31215 } 31216 } 31217 } 31218 }); 31219 var touch = false; 31220 if ((0, import_jquery_min2.default)("html").hasClass("touch")) { 31221 touch = true; 31222 } 31223 if (touch) { 31224 (0, import_jquery_min2.default)(".nav-main > ul > li").hover(function() { 31225 (0, import_jquery_min2.default)(this).addClass("hover"); 31226 }, function() { 31227 (0, import_jquery_min2.default)(this).removeClass("hover"); 31228 }); 31229 (0, import_jquery_min2.default)(".nav-main > ul > .has-children > a").click(function(e11) { 31230 if ((0, import_jquery_min2.default)(this).hasClass("hover") === false) { 31231 (0, import_jquery_min2.default)(".nav-main > ul > li").removeClass("hover"); 31232 (0, import_jquery_min2.default)(this).addClass("hover"); 31233 e11.preventDefault(); 31234 } 31235 }); 31236 } 31237 }); 31238 (function() { 31239 var hb = document.getElementById("hb"), body = document.body; 31240 hb.addEventListener("click", function() { 31241 body.classList.toggle("menu-open"); 31242 }); 31243 document.querySelectorAll(".macc>button").forEach(function(b3) { 31244 b3.addEventListener("click", function() { 31245 b3.parentElement.classList.toggle("open"); 31246 }); 31247 }); 31248 document.querySelectorAll("#mm a").forEach(function(a8) { 31249 a8.addEventListener("click", function() { 31250 body.classList.remove("menu-open"); 31251 }); 31252 }); 31253 document.querySelectorAll(".nav-item > a.trigger").forEach(function(t11) { 31254 t11.addEventListener("click", function(e11) { 31255 e11.preventDefault(); 31256 this.blur(); 31257 }); 31258 }); 31259 function closeModals() { 31260 document.querySelectorAll(".pmodal.open").forEach(function(m3) { 31261 m3.classList.remove("open"); 31262 }); 31263 body.classList.remove("noscroll"); 31264 } 31265 document.querySelectorAll(".pmore").forEach(function(btn
31265) { 31266 btn.addEventListener("click", function() { 31267 var m3 = document.getElementById(btn.dataset.modal); 31268 if (m3) { 31269 m3.classList.add("open"); 31270 body.classList.add("noscroll"); 31271 } 31272 }); 31273 }); 31274 document.querySelectorAll(".pmodal").forEach(function(m3) { 31275 m3.addEventListener("click", function(e11) { 31276 if (e11.target === m3 || e11.target.classList.contains("pmodal-x")) closeModals(); 31277 }); 31278 }); 31279 document.addEventListener("keydown", function(e11) { 31280 if (e11.key === "Escape") { 31281 body.classList.remove("menu-open"); 31282 closeModals(); 31283 } 31284 }); 31285 })(); 31286 } 31287 }); 31288 31289
31289// js/main.js 31290 var import_bootstrap = __toESM(require_bootstrap()); 31291 31292
vendor: 3,080 bytes, lines 31292-31390
31292// node_modules/js-cookie/dist/js.cookie.mjs 31293 function assign(target) { 31294 for (var i10 = 1; i10 < arguments.length; i10++) { 31295 var source = arguments[i10]; 31296 for (var key in source) { 31297 target[key] = source[key]; 31298 } 31299 } 31300 return target; 31301 } 31302 var defaultConverter = { 31303 read: function(value) { 31304 if (value[0] === '"') { 31305 value = value.slice(1, -1); 31306 } 31307 return value.replace(/(%[\dA-F]{2})+/gi, decodeURIComponent); 31308 }, 31309 write: function(value) { 31310 return encodeURIComponent(value).replace( 31311 /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g, 31312 decodeURIComponent 31313 ); 31314 } 31315 }; 31316 function init(converter, defaultAttributes) { 31317 function set(name, value, attributes) { 31318 if (typeof document === "undefined") { 31319 return; 31320 } 31321 attributes = assign({}, defaultAttributes, attributes); 31322 if (typeof attributes.expires === "number") { 31323 attributes.expires = new Date(Date.now() + attributes.expires * 864e5); 31324 } 31325 if (attributes.expires) { 31326 attributes.expires = attributes.expires.toUTCString(); 31327 } 31328 name = encodeURIComponent(name).replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent).replace(/[()]/g, escape); 31329 var stringifiedAttributes = ""; 31330 for (var attributeName in attributes) { 31331 if (!attributes[attributeName]) { 31332 continue; 31333 } 31334 stringifiedAttributes += "; " + attributeName; 31335 if (attributes[attributeName] === true) { 31336 continue; 31337 } 31338 stringifiedAttributes += "=" + attributes[attributeName].split(";")[0]; 31339 } 31340 return document.cookie = name + "=" + converter.write(value, name) + stringifiedAttributes; 31341 } 31342 function get(name) { 31343 if (typeof document === "undefined" || arguments.length && !name) { 31344 return; 31345 } 31346 var cookies = document.cookie ? document.cookie.split("; ") : []; 31347 var jar = {}; 31348 for (var i10 = 0; i10 < cookies.length; i10++) { 31349 var parts = cookies[i10].split("="); 31350 var value = parts.slice(1).join("="); 31351 try { 31352 var found = decodeURIComponent(parts[0]); 31353 jar[found] = converter.read(value, found); 31354 if (name === found) { 31355 break; 31356 } 31357 } catch (e11) { 31358 } 31359 } 31360 return name ? jar[name] : jar; 31361 } 31362 return Object.create( 31363 { 31364 set, 31365 get, 31366 remove: function(name, attributes) { 31367 set( 31368 name, 31369 "", 31370 assign({}, attributes, { 31371 expires: -1 31372 }) 31373 ); 31374 }, 31375 withAttributes: function(attributes) { 31376 return init(this.converter, assign({}, this.attributes, attributes)); 31377 }, 31378 withConverter: function(converter2) { 31379 return init(assign({}, this.converter, converter2), this.attributes); 31380 } 31381 }, 31382 { 31383 attributes: { value: Object.freeze(defaultAttributes) }, 31384 converter: { value: Object.freeze(converter) } 31385 } 31386 ); 31387 } 31388 var api = init(defaultConverter, { path: "/" }); 31389 31390
31390// js/main.js 31391 var flickity = (init_flickity2(), __toCommonJS(flickity_exports)); 31392 var fancybox = (init_fancybox3(), __toCommonJS(fancybox_exports)); 31393 var countUp = (init_countup(), __toCommonJS(countup_exports)); 31394 var AOS2 = (init_aos2(), __toCommonJS(aos_exports)); 31395 var gsap5 = (init_gsap2(), __toCommonJS(gsap_exports)); 31396 window.Cookies = api; 31397 var isotope = (init_isotope(), __toCommonJS(isotope_exports)); 31398 var bootstrap2 = (init_bootstrap(), __toCommonJS(bootstrap_exports)); 31399 var typeIt = (init_typeit(), __toCommonJS(typeit_exports)); 31400 init_template(); 31401})(); 31402/*! Bundled license information: 31403 31404bootstrap/dist/js/bootstrap.js: 31405 (*! 31406 * Bootstrap v5.3.8 (https://getbootstrap.com/) 31407 * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 31408 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 31409 *) 31410 31411get-size/get-size.js: 31412 (*! 31413 * Infinite Scroll v2.0.4 31414 * measure size of elements 31415 * MIT license 31416 *) 31417 31418unidragger/unidragger.js: 31419 (*! 31420 * Unidragger v3.0.1 31421 * Draggable base class 31422 * MIT license 31423 *) 31424 31425imagesloaded/imagesloaded.js: 31426 (*! 31427 * imagesLoaded v5.0.0 31428 * JavaScript is all like "You images are done yet or what?" 31429 * MIT License 31430 *) 31431 31432flickity/js/index.js: 31433 (*! 31434 * Flickity v3.0.0 31435 * Touch, responsive, flickable carousels 31436 * 31437 * Licensed GPLv3 for open source use 31438 * or Flickity Commercial License for commercial use 31439 * 31440 * https://flickity.metafizzy.co 31441 * Copyright 2015-2022 Metafizzy 31442 *) 31443 31444jquery/dist/jquery.min.js: 31445 (*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license *) 31446 31447@fancyapps/ui/dist/utils/isString.js: 31448@fancyapps/ui/dist/utils/isNode.js: 31449@fancyapps/ui/dist/utils/getScrollableParent.js: 31450@fancyapps/ui/dist/utils/strToHtml.js: 31451@fancyapps/ui/dist/utils/clamp.js: 31452@fancyapps/ui/dist/utils/isPlainObject.js: 31453@fancyapps/ui/dist/utils/isEqual.js: 31454@fancyapps/ui/dist/libs/tween.js: 31455@fancyapps/ui/dist/libs/gestures.js: 31456@fancyapps/ui/dist/panzoom/l10n/en_EN.js: 31457@fancyapps/ui/dist/utils/addClass.js: 31458@fancyapps/ui/dist/utils/removeClass.js: 31459@fancyapps/ui/dist/utils/toggleClass.js: 31460@fancyapps/ui/dist/panzoom/panzoom.js: 31461@fancyapps/ui/dist/utils/getDirectChildren.js: 31462@fancyapps/ui/dist/utils/extend.js: 31463@fancyapps/ui/dist/utils/map.js: 31464@fancyapps/ui/dist/carousel/l10n/en_EN.js: 31465@fancyapps/ui/dist/carousel/carousel.js: 31466@fancyapps/ui/dist/utils/scrollLock.js: 31467@fancyapps/ui/dist/utils/canUseDOM.js: 31468@fancyapps/ui/dist/utils/replaceAll.js: 31469@fancyapps/ui/dist/carousel/carousel.zoomable.js: 31470@fancyapps/ui/dist/carousel/carousel.sync.js: 31471@fancyapps/ui/dist/carousel/carousel.lazyload.js: 31472@fancyapps/ui/dist/carousel/carousel.arrows.js: 31473@fancyapps/ui/dist/shared/buttons.js: 31474@fancyapps/ui/dist/carousel/carousel.toolbar.js: 31475@fancyapps/ui/dist/carousel/carousel.autoplay.js: 31476@fancyapps/ui/dist/carousel/carousel.thumbs.js: 31477@fancyapps/ui/dist/carousel/carousel.html.js: 31478@fancyapps/ui/dist/carousel/carousel.video.js: 31479@fancyapps/ui/dist/carousel/carousel.fullscreen.js: 31480@fancyapps/ui/dist/fancybox/fancybox.hash.js: 31481@fancyapps/ui/dist/fancybox/l10n/en_EN.js: 31482@fancyapps/ui/dist/fancybox/fancybox.js: 31483@fancyapps/ui/dist/index.js: 31484@fancyapps/ui/dist/carousel/carousel.dots.js: 31485@fancyapps/ui/dist/carousel/carousel.autoscroll.js: 31486 (*! License details at fancyapps.com/license *) 31487 31488gsap/gsap-core.js: 31489 (*! 31490 * GSAP 3.14.2 31491 * https://gsap.com 31492 * 31493 * @license Copyright 2008-2025, GreenSock. All rights reserved. 31494 * Subject to the terms at https://gsap.com/standard-license 31495 * @author: Jack Doyle, [email protected] 31496 *) 31497 31498gsap/CSSPlugin.js: 31499 (*! 31500 * CSSPlugin 3.14.2 31501 * https://gsap.com 31502 * 31503 * Copyright 2008-2025, GreenSock. All rights reserved. 31504 * Subject to the terms at https://gsap.com/standard-license 31505 * @author: Jack Doyle, [email protected] 31506 *) 31507 31508gsap/Observer.js: 31509 (*! 31510 * Observer 3.14.2 31511 * https://gsap.com 31512 * 31513 * @license Copyright 2008-2025, GreenSock. All rights reserved. 31514 * Subject to the terms at https://gsap.com/standard-license 31515 * @author: Jack Doyle, [email protected] 31516 *) 31517 31518gsap/ScrollTrigger.js: 31519 (*! 31520 * ScrollTrigger 3.14.2 31521 * https://gsap.com 31522 * 31523 * @license Copyright 2008-2025, GreenSock. All rights reserved. 31524 * Subject to the terms at https://gsap.com/standard-license 31525 * @author: Jack Doyle, [email protected] 31526 *) 31527 31528gsap/ScrollSmoother.js: 31529 (*! 31530 * ScrollSmoother 3.14.2 31531 * https://gsap.com 31532 * 31533 * @license Copyright 2008-2025, GreenSock. All rights reserved. 31534 * Subject to the terms at https://gsap.com/standard-license 31535 * @author: Jack Doyle, [email protected] 31536 *) 31537 31538get-size/get-size.js: 31539 (*! 31540 * getSize v2.0.3 31541 * measure size of elements 31542 * MIT license 31543 *) 31544 31545outlayer/outlayer.js: 31546 (*! 31547 * Outlayer v2.1.1 31548 * the brains and guts of a layout library 31549 * MIT license 31550 *) 31551 31552masonry-layout/masonry.js: 31553 (*! 31554 * Masonry v4.2.2 31555 * Cascading grid layout library 31556 * https://masonry.desandro.com 31557 * MIT License 31558 * by David DeSandro 31559 *) 31560 31561isotope-layout/js/layout-modes/masonry.js: 31562 (*! 31563 * Masonry layout mode 31564 * sub-classes Masonry 31565 * https://masonry.desandro.com 31566 *) 31567 31568isotope-layout/js/isotope.js: 31569 (*! 31570 * Isotope v3.0.6 31571 * 31572 * Licensed GPLv3 for open source use 31573 * or Isotope Commercial License for commercial use 31574 * 31575 * https://isotope.metafizzy.co 31576 * Copyright 2010-2018 Metafizzy 31577 *) 31578 31579jquery/dist/jquery.js: 31580 (*! 31581 * jQuery JavaScript Library v3.7.1 31582 * https://jquery.com/ 31583 * 31584 * Copyright OpenJS Foundation and other contributors 31585 * Released under the MIT license 31586 * https://jquery.org/license 31587 * 31588 * Date: 2023-08-28T13:37Z 31589 *) 31590 31591js-cookie/dist/js.cookie.mjs: 31592 (*! js-cookie v3.0.5 | MIT *) 31593*/
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.