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 __markAsModule = (target) => __defProp(target, "__esModule", { value: true }); 9 var __commonJS = (cb, mod) => function __require() { 10 return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; 11 }; 12 var __reExport = (target, module, desc) => { 13 if (module && typeof module === "object" || typeof module === "function") { 14 for (let key of __getOwnPropNames(module)) 15 if (!__hasOwnProp.call(target, key) && key !== "default") 16 __defProp(target, key, { get: () => module[key], enumerable: !(desc = __getOwnPropDesc(module, key)) || desc.enumerable }); 17 } 18 return target; 19 }; 20 var __toModule = (module) => { 21 return __reExport(__markAsModule(__defProp(module != null ? __create(__getProtoOf(module)) : {}, "default", module && module.__esModule && "default" in module ? { get: () => module.default, enumerable: true } : { value: module, enumerable: true })), module); 22 }; 23 24
vendor: 242,788 bytes, lines 24-5909
24// node_modules/jquery/dist/jquery.js 25 var require_jquery = __commonJS({ 26 "node_modules/jquery/dist/jquery.js"(exports, module) { 27 (function(global2, factory) { 28 "use strict"; 29 if (typeof module === "object" && typeof module.exports === "object") { 30 module.exports = global2.document ? factory(global2, true) : function(w) { 31 if (!w.document) { 32 throw new Error("jQuery requires a window with a document"); 33 } 34 return factory(w); 35 }; 36 } else { 37 factory(global2); 38 } 39 })(typeof window !== "undefined" ? window : exports, function(window2, noGlobal) { 40 "use strict"; 41 var arr = []; 42 var getProto = Object.getPrototypeOf; 43 var slice = arr.slice; 44 var flat = arr.flat ? function(array) { 45 return arr.flat.call(array); 46 } : function(array) { 47 return arr.concat.apply([], array); 48 }; 49 var push = arr.push; 50 var indexOf = arr.indexOf; 51 var class2type = {}; 52 var toString = class2type.toString; 53 var hasOwn = class2type.hasOwnProperty; 54 var fnToString = hasOwn.toString; 55 var ObjectFunctionString = fnToString.call(Object); 56 var support = {}; 57 var isFunction2 = function isFunction3(obj) { 58 return typeof obj === "function" && typeof obj.nodeType !== "number" && typeof obj.item !== "function"; 59 }; 60 var isWindow = function isWindow2(obj) { 61 return obj != null && obj === obj.window; 62 }; 63 var document2 = window2.document; 64 var preservedScriptAttributes = { 65 type: true, 66 src: true, 67 nonce: true, 68 noModule: true 69 }; 70 function DOMEval(code, node, doc) { 71 doc = doc || document2; 72 var i, val, script = doc.createElement("script"); 73 script.text = code; 74 if (node) { 75 for (i in preservedScriptAttributes) { 76 val = node[i] || node.getAttribute && node.getAttribute(i); 77 if (val) { 78 script.setAttribute(i, val); 79 } 80 } 81 } 82 doc.head.appendChild(script).parentNode.removeChild(script); 83 } 84 function toType(obj) { 85 if (obj == null) { 86 return obj + ""; 87 } 88 return typeof obj === "object" || typeof obj === "function" ? class2type[toString.call(obj)] || "object" : typeof obj; 89 } 90 var version = "3.6.0", jQuery2 = function(selector3, context) { 91 return new jQuery2.fn.init(selector3, context); 92 }; 93 jQuery2.fn = jQuery2.prototype = { 94 jquery: version, 95 constructor: jQuery2, 96 length: 0, 97 toArray: function() { 98 return slice.call(this); 99 }, 100 get: function(num) { 101 if (num == null) { 102 return slice.call(this); 103 } 104 return num < 0 ? this[num + this.length] : this[num]; 105 }, 106 pushStack: function(elems) { 107 var ret = jQuery2.merge(this.constructor(), elems); 108 ret.prevObject = this; 109 return ret; 110 }, 111 each: function(callback) { 112 return jQuery2.each(this, callback); 113 }, 114 map: function(callback) { 115 return this.pushStack(jQuery2.map(this, function(elem, i) { 116 return callback.call(elem, i, elem); 117 })); 118 }, 119 slice: function() { 120 return this.pushStack(slice.apply(this, arguments)); 121 }, 122 first: function() { 123 return this.eq(0); 124 }, 125 last: function() { 126 return this.eq(-1); 127 }, 128 even: function() { 129 return this.pushStack(jQuery2.grep(this, function(_elem, i) { 130 return (i + 1) % 2; 131 })); 132 }, 133 odd: function() { 134 return this.pushStack(jQuery2.grep(this, function(_elem, i) { 135 return i % 2; 136 })); 137 }, 138 eq: function(i) { 139 var len = this.length, j = +i + (i < 0 ? len : 0); 140 return this.pushStack(j >= 0 && j < len ? [this[j]] : []); 141 }, 142 end: function() { 143 return this.prevObject || this.constructor(); 144 }, 145 push, 146 sort: arr.sort, 147 splice: arr.splice 148 }; 149 jQuery2.extend = jQuery2.fn.extend = function() { 150 var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = false; 151 if (typeof target === "boolean") { 152 deep = target; 153 target = arguments[i] || {}; 154 i++; 155 } 156 if (typeof target !== "object" && !isFunction2(target)) { 157 target = {}; 158 } 159 if (i === length) { 160 target = this; 161 i--; 162 } 163 for (; i < length; i++) { 164 if ((options = arguments[i]) != null) { 165 for (name in options) { 166 copy = options[name]; 167 if (name === "__proto__" || target === copy) { 168 continue; 169 } 170 if (deep && copy && (jQuery2.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) { 171 src = target[name]; 172 if (copyIsArray && !Array.isArray(src)) { 173 clone = []; 174 } else if (!copyIsArray && !jQuery2.isPlainObject(src)) { 175 clone = {}; 176 } else { 177 clone = src; 178 } 179 copyIsArray = false; 180 target[name] = jQuery2.extend(deep, clone, copy); 181 } else if (copy !== void 0) { 182 target[name] = copy; 183 } 184 } 185 } 186 } 187 return target; 188 }; 189 jQuery2.extend({ 190 expando: "jQuery" + (version + Math.random()).replace(/\D/g, ""), 191 isReady: true, 192 error: function(msg) { 193 throw new Error(msg); 194 }, 195 noop: function() { 196 }, 197 isPlainObject: function(obj) { 198 var proto, Ctor; 199 if (!obj || toString.call(obj) !== "[object Object]") { 200 return false; 201 } 202 proto = getProto(obj); 203 if (!proto) { 204 return true; 205 } 206 Ctor = hasOwn.call(proto, "constructor") && proto.constructor; 207 return typeof Ctor === "function" && fnToString.call(Ctor) === ObjectFunctionString; 208 }, 209 isEmptyObject: function(obj) { 210 var name; 211 for (name in obj) { 212 return false; 213 } 214 return true; 215 }, 216 globalEval: function(code, options, doc) { 217 DOMEval(code, { nonce: options && options.nonce }, doc); 218 }, 219 each: function(obj, callback) { 220 var length, i = 0; 221 if (isArrayLike(obj)) { 222 length = obj.length; 223 for (; i < length; i++) { 224 if (callback.call(obj[i], i, obj[i]) === false) { 225 break; 226 } 227 } 228 } else { 229 for (i in obj) { 230 if (callback.call(obj[i], i, obj[i]) === false) { 231 break; 232 } 233 } 234 } 235 return obj; 236 }, 237 makeArray: function(arr2, results) { 238 var ret = results || []; 239 if (arr2 != null) { 240 if (isArrayLike(Object(arr2))) { 241 jQuery2.merge(ret, typeof arr2 === "string" ? [arr2] : arr2); 242 } else { 243 push.call(ret, arr2); 244 } 245 } 246 return ret; 247 }, 248 inArray: function(elem, arr2, i) { 249 return arr2 == null ? -1 : indexOf.call(arr2, elem, i); 250 }, 251 merge: function(first, second) { 252 var len = +second.length, j = 0, i = first.length; 253 for (; j < len; j++) { 254 first[i++] = second[j]; 255 } 256 first.length = i; 257 return first; 258 }, 259 grep: function(elems, callback, invert) { 260 var callbackInverse, matches = [], i = 0, length = elems.length, callbackExpect = !invert; 261 for (; i < length; i++) { 262 callbackInverse = !callback(elems[i], i); 263 if (callbackInverse !== callbackExpect) { 264 matches.push(elems[i]); 265 } 266 } 267 return matches; 268 }, 269 map: function(elems, callback, arg) { 270 var length, value, i = 0, ret = []; 271 if (isArrayLike(elems)) { 272 length = elems.length; 273 for (; i < length; i++) { 274 value = callback(elems[i], i, arg); 275 if (value != null) { 276 ret.push(value); 277 } 278 } 279 } else { 280 for (i in elems) { 281 value = callback(elems[i], i, arg); 282 if (value != null) { 283 ret.push(value); 284 } 285 } 286 } 287 return flat(ret); 288 }, 289 guid: 1, 290 support 291 }); 292 if (typeof Symbol === "function") { 293 jQuery2.fn[Symbol.iterator] = arr[Symbol.iterator]; 294 } 295 jQuery2.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(_i2, name) { 296 class2type["[object " + name + "]"] = name.toLowerCase(); 297 }); 298 function isArrayLike(obj) { 299 var length = !!obj && "length" in obj && obj.length, type = toType(obj); 300 if (isFunction2(obj) || isWindow(obj)) { 301 return false; 302 } 303 return type === "array" || length === 0 || typeof length === "number" && length > 0 && length - 1 in obj; 304 } 305 var Sizzle = function(window3) { 306 var i, support2, Expr, getText2, isXML, tokenize, compile, select, outermostContext, sortInput, hasDuplicate, setDocument, document3, docElem, documentIsHTML, rbuggyQSA, rbuggyMatches, matches, contains2, expando = "sizzle" + 1 * new Date(), preferredDoc = window3.document, dirruns = 0, done = 0, classCache = createCache(), tokenCache = createCache(), compilerCache = createCache(), nonnativeSelectorCache = createCache(), sortOrder = function(a, b) { 307 if (a === b) { 308 hasDuplicate = true; 309 } 310 return 0; 311 }, hasOwn2 = {}.hasOwnProperty, arr2 = [], pop = arr2.pop, pushNative = arr2.push, push2 = arr2.push, slice2 = arr2.slice, indexOf2 = function(list, elem) { 312 var i2 = 0, len = list.length; 313 for (; i2 < len; i2++) { 314 if (list[i2] === elem) { 315 return i2; 316 } 317 } 318 return -1; 319 }, booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", whitespace = "[\\x20\\t\\r\\n\\f]", identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + "*([*^$|!~]?=)" + whitespace + `*(?:'((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)"|(` + identifier + "))|)" + whitespace + "*\\]", pseudos = ":(" + identifier + `)(?:\\((('((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)")|((?:\\\\.|[^\\\\()[\\]]|` + attributes + ")*)|.*)\\)|)", rwhitespace = new RegExp(whitespace + "+", "g"), rtrim2 = new RegExp("^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g"), rcomma = new RegExp("^" + whitespace + "*," + whitespace + "*"), rcombinators = new RegExp("^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*"), rdescend = new RegExp(whitespace + "|>"), rpseudo = new RegExp(pseudos), ridentifier = new RegExp("^" + identifier + "$"), matchExpr = { 320 "ID": new RegExp("^#(" + identifier + ")"), 321 "CLASS": new RegExp("^\\.(" + identifier + ")"), 322 "TAG": new RegExp("^(" + identifier + "|[*])"), 323 "ATTR": new RegExp("^" + attributes), 324 "PSEUDO": new RegExp("^" + pseudos), 325 "CHILD": new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i"), 326 "bool": new RegExp("^(?:" + booleans + ")$", "i"), 327 "needsContext": new RegExp("^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i") 328 }, rhtml2 = /HTML$/i, rinputs = /^(?:input|select|textarea|button)$/i, rheader = /^h\d$/i, rnative = /^[^{]+\{\s*\[native \w/, rquickExpr2 = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, rsibling = /[+~]/, runescape = new RegExp("\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g"), funescape = function(escape, nonHex) { 329 var high = "0x" + escape.slice(1) - 65536; 330 return nonHex ? nonHex : high < 0 ? String.fromCharCode(high + 65536) : String.fromCharCode(high >> 10 | 55296, high & 1023 | 56320); 331 }, rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, fcssescape = function(ch, asCodePoint) { 332 if (asCodePoint) { 333 if (ch === "\0") { 334 return "\uFFFD"; 335 } 336 return ch.slice(0, -1) + "\\" + ch.charCodeAt(ch.length - 1).toString(16) + " "; 337 } 338 return "\\" + ch; 339 }, unloadHandler = function() { 340 setDocument(); 341 }, inDisabledFieldset = addCombinator(function(elem) { 342 return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; 343 }, { dir: "parentNode", next: "legend" }); 344 try { 345 push2.apply(arr2 = slice2.call(preferredDoc.childNodes), preferredDoc.childNodes); 346 arr2[preferredDoc.childNodes.length].nodeType; 347 } catch (e) { 348 push2 = { 349 apply: arr2.length ? function(target, els) { 350 pushNative.apply(target, slice2.call(els)); 351 } : function(target, els) { 352 var j = target.length, i2 = 0; 353 while (target[j++] = els[i2++]) { 354 } 355 target.length = j - 1; 356 } 357 }; 358 } 359 function Sizzle2(selector3, context, results, seed) { 360 var m, i2, elem, nid, match, groups, newSelector, newContext = context && context.ownerDocument, nodeType = context ? context.nodeType : 9; 361 results = results || []; 362 if (typeof selector3 !== "string" || !selector3 || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) { 363 return results; 364 } 365 if (!seed) { 366 setDocument(context); 367 context = context || document3; 368 if (documentIsHTML) { 369 if (nodeType !== 11 && (match = rquickExpr2.exec(selector3))) { 370 if (m = match[1]) { 371 if (nodeType === 9) { 372 if (elem = context.getElementById(m)) { 373 if (elem.id === m) { 374 results.push(elem); 375 return results; 376 } 377 } else { 378 return results; 379 } 380 } else { 381 if (newContext && (elem = newContext.getElementById(m)) && contains2(context, elem) && elem.id === m) { 382 results.push(elem); 383 return results; 384 } 385 } 386 } else if (match[2]) { 387 push2.apply(results, context.getElementsByTagName(selector3)); 388 return results; 389 } else if ((m = match[3]) && support2.getElementsByClassName && context.getElementsByClassName) { 390 push2.apply(results, context.getElementsByClassName(m)); 391 return results; 392 } 393 } 394 if (support2.qsa && !nonnativeSelectorCache[selector3 + " "] && (!rbuggyQSA || !rbuggyQSA.test(selector3)) && (nodeType !== 1 || context.nodeName.toLowerCase() !== "object")) { 395 newSelector = selector3; 396 newContext = context; 397 if (nodeType === 1 && (rdescend.test(selector3) || rcombinators.test(selector3))) { 398 newContext = rsibling.test(selector3) && testContext(context.parentNode) || context; 399 if (newContext !== context || !support2.scope) { 400 if (nid = context.getAttribute("id")) { 401 nid = nid.replace(rcssescape, fcssescape); 402 } else { 403 context.setAttribute("id", nid = expando); 404 } 405 } 406 groups = tokenize(selector3); 407 i2 = groups.length; 408 while (i2--) { 409 groups[i2] = (nid ? "#" + nid : ":scope") + " " + toSelector(groups[i2]); 410 } 411 newSelector = groups.join(","); 412 } 413 try { 414 push2.apply(results, newContext.querySelectorAll(newSelector)); 415 return results; 416 } catch (qsaError) { 417 nonnativeSelectorCache(selector3, true); 418 } finally { 419 if (nid === expando) { 420 context.removeAttribute("id"); 421 } 422 } 423 } 424 } 425 } 426 return select(selector3.replace(rtrim2, "$1"), context, results, seed); 427 } 428 function createCache() { 429 var keys = []; 430 function cache(key, value) { 431 if (keys.push(key + " ") > Expr.cacheLength) { 432 delete cache[keys.shift()]; 433 } 434 return cache[key + " "] = value; 435 } 436 return cache; 437 } 438 function markFunction(fn2) { 439 fn2[expando] = true; 440 return fn2; 441 } 442 function assert(fn2) { 443 var el = document3.createElement("fieldset"); 444 try { 445 return !!fn2(el); 446 } catch (e) { 447 return false; 448 } finally { 449 if (el.parentNode) { 450 el.parentNode.removeChild(el); 451 } 452 el = null; 453 } 454 } 455 function addHandle(attrs, handler) { 456 var arr3 = attrs.split("|"), i2 = arr3.length; 457 while (i2--) { 458 Expr.attrHandle[arr3[i2]] = handler; 459 } 460 } 461 function siblingCheck(a, b) { 462 var cur = b && a, diff = cur && a.nodeType === 1 && b.nodeType === 1 && a.sourceIndex - b.sourceIndex; 463 if (diff) { 464 return diff; 465 } 466 if (cur) { 467 while (cur = cur.nextSibling) { 468 if (cur === b) { 469 return -1; 470 } 471 } 472 } 473 return a ? 1 : -1; 474 } 475 function createInputPseudo(type) { 476 return function(elem) { 477 var name = elem.nodeName.toLowerCase(); 478 return name === "input" && elem.type === type; 479 }; 480 } 481 function createButtonPseudo(type) { 482 return function(elem) { 483 var name = elem.nodeName.toLowerCase(); 484 return (name === "input" || name === "button") && elem.type === type; 485 }; 486 } 487 function createDisabledPseudo(disabled) { 488 return function(elem) { 489 if ("form" in elem) { 490 if (elem.parentNode && elem.disabled === false) { 491 if ("label" in elem) { 492 if ("label" in elem.parentNode) { 493 return elem.parentNode.disabled === disabled; 494 } else { 495 return elem.disabled === disabled; 496 } 497 } 498 return elem.isDisabled === disabled || elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled; 499 } 500 return elem.disabled === disabled; 501 } else if ("label" in elem) { 502 return elem.disabled === disabled; 503 } 504 return false; 505 }; 506 } 507 function createPositionalPseudo(fn2) { 508 return markFunction(function(argument) { 509 argument = +argument; 510 return markFunction(function(seed, matches2) { 511 var j, matchIndexes = fn2([], seed.length, argument), i2 = matchIndexes.length; 512 while (i2--) { 513 if (seed[j = matchIndexes[i2]]) { 514 seed[j] = !(matches2[j] = seed[j]); 515 } 516 } 517 }); 518 }); 519 } 520 function testContext(context) { 521 return context && typeof context.getElementsByTagName !== "undefined" && context; 522 } 523 support2 = Sizzle2.support = {}; 524 isXML = Sizzle2.isXML = function(elem) { 525 var namespace = elem && elem.namespaceURI, docElem2 = elem && (elem.ownerDocument || elem).documentElement; 526 return !rhtml2.test(namespace || docElem2 && docElem2.nodeName || "HTML"); 527 }; 528 setDocument = Sizzle2.setDocument = function(node) { 529 var hasCompare, subWindow, doc = node ? node.ownerDocument || node : preferredDoc; 530 if (doc == document3 || doc.nodeType !== 9 || !doc.documentElement) { 531 return document3; 532 } 533 document3 = doc; 534 docElem = document3.documentElement; 535 documentIsHTML = !isXML(document3); 536 if (preferredDoc != document3 && (subWindow = document3.defaultView) && subWindow.top !== subWindow) { 537 if (subWindow.addEventListener) { 538 subWindow.addEventListener("unload", unloadHandler, false); 539 } else if (subWindow.attachEvent) { 540 subWindow.attachEvent("onunload", unloadHandler); 541 } 542 } 543 support2.scope = assert(function(el) { 544 docElem.appendChild(el).appendChild(document3.createElement("div")); 545 return typeof el.querySelectorAll !== "undefined" && !el.querySelectorAll(":scope fieldset div").length; 546 }); 547 support2.attributes = assert(function(el) { 548 el.className = "i"; 549 return !el.getAttribute("className"); 550 }); 551 support2.getElementsByTagName = assert(function(el) { 552 el.appendChild(document3.createComment("")); 553 return !el.getElementsByTagName("*").length; 554 }); 555 support2.getElementsByClassName = rnative.test(document3.getElementsByClassName); 556 support2.getById = assert(function(el) { 557 docElem.appendChild(el).id = expando; 558 return !document3.getElementsByName || !document3.getElementsByName(expando).length; 559 }); 560 if (support2.getById) { 561 Expr.filter["ID"] = function(id) { 562 var attrId = id.replace(runescape, funescape); 563 return function(elem) { 564 return elem.getAttribute("id") === attrId; 565 }; 566 }; 567 Expr.find["ID"] = function(id, context) { 568 if (typeof context.getElementById !== "undefined" && documentIsHTML) { 569 var elem = context.getElementById(id); 570 return elem ? [elem] : []; 571 } 572 }; 573 } else { 574 Expr.filter["ID"] = function(id) { 575 var attrId = id.replace(runescape, funescape); 576 return function(elem) { 577 var node2 = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); 578 return node2 && node2.value === attrId; 579 }; 580 }; 581 Expr.find["ID"] = function(id, context) { 582 if (typeof context.getElementById !== "undefined" && documentIsHTML) { 583 var node2, i2, elems, elem = context.getElementById(id); 584 if (elem) { 585 node2 = elem.getAttributeNode("id"); 586 if (node2 && node2.value === id) { 587 return [elem]; 588 } 589 elems = context.getElementsByName(id); 590 i2 = 0; 591 while (elem = elems[i2++]) { 592 node2 = elem.getAttributeNode("id"); 593 if (node2 && node2.value === id) { 594 return [elem]; 595 } 596 } 597 } 598 return []; 599 } 600 }; 601 } 602 Expr.find["TAG"] = support2.getElementsByTagName ? function(tag, context) { 603 if (typeof context.getElementsByTagName !== "undefined") { 604 return context.getElementsByTagName(tag); 605 } else if (support2.qsa) { 606 return context.querySelectorAll(tag); 607 } 608 } : function(tag, context) { 609 var elem, tmp = [], i2 = 0, results = context.getElementsByTagName(tag); 610 if (tag === "*") { 611 while (elem = results[i2++]) { 612 if (elem.nodeType === 1) { 613 tmp.push(elem); 614 } 615 } 616 return tmp; 617 } 618 return results; 619 }; 620 Expr.find["CLASS"] = support2.getElementsByClassName && function(className, context) { 621 if (typeof context.getElementsByClassName !== "undefined" && documentIsHTML) { 622 return context.getElementsByClassName(className); 623 } 624 }; 625 rbuggyMatches = []; 626 rbuggyQSA = []; 627 if (support2.qsa = rnative.test(document3.querySelectorAll)) { 628 assert(function(el) { 629 var input; 630 docElem.appendChild(el).innerHTML = "<a id='" + expando + "'></a><select id='" + expando + "-\r\\' msallowcapture=''><option selected=''></option></select>"; 631 if (el.querySelectorAll("[msallowcapture^='']").length) { 632 rbuggyQSA.push("[*^$]=" + whitespace + `*(?:''|"")`); 633 } 634 if (!el.querySelectorAll("[selected]").length) { 635 rbuggyQSA.push("\\[" + whitespace + "*(?:value|" + booleans + ")"); 636 } 637 if (!el.querySelectorAll("[id~=" + expando + "-]").length) { 638 rbuggyQSA.push("~="); 639 } 640 input = document3.createElement("input"); 641 input.setAttribute("name", ""); 642 el.appendChild(input); 643 if (!el.querySelectorAll("[name='']").length) { 644 rbuggyQSA.push("\\[" + whitespace + "*name" + whitespace + "*=" + whitespace + `*(?:''|"")`); 645 } 646 if (!el.querySelectorAll(":checked").length) { 647 rbuggyQSA.push(":checked"); 648 } 649 if (!el.querySelectorAll("a#" + expando + "+*").length) { 650 rbuggyQSA.push(".#.+[+~]"); 651 } 652 el.querySelectorAll("\\\f"); 653 rbuggyQSA.push("[\\r\\n\\f]"); 654 }); 655 assert(function(el) { 656 el.innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>"; 657 var input = document3.createElement("input"); 658 input.setAttribute("type", "hidden"); 659 el.appendChild(input).setAttribute("name", "D"); 660 if (el.querySelectorAll("[name=d]").length) { 661 rbuggyQSA.push("name" + whitespace + "*[*^$|!~]?="); 662 } 663 if (el.querySelectorAll(":enabled").length !== 2) { 664 rbuggyQSA.push(":enabled", ":disabled"); 665 } 666 docElem.appendChild(el).disabled = true; 667 if (el.querySelectorAll(":disabled").length !== 2) { 668 rbuggyQSA.push(":enabled", ":disabled"); 669 } 670 el.querySelectorAll("*,:x"); 671 rbuggyQSA.push(",.*:"); 672 }); 673 } 674 if (support2.matchesSelector = rnative.test(matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector)) { 675 assert(function(el) { 676 support2.disconnectedMatch = matches.call(el, "*"); 677 matches.call(el, "[s!='']:x"); 678 rbuggyMatches.push("!=", pseudos); 679 }); 680 } 681 rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join("|")); 682 rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join("|")); 683 hasCompare = rnative.test(docElem.compareDocumentPosition); 684 contains2 = hasCompare || rnative.test(docElem.contains) ? function(a, b) { 685 var adown = a.nodeType === 9 ? a.documentElement : a, bup = b && b.parentNode; 686 return a === bup || !!(bup && bup.nodeType === 1 && (adown.contains ? adown.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16)); 687 } : function(a, b) { 688 if (b) { 689 while (b = b.parentNode) { 690 if (b === a) { 691 return true; 692 } 693 } 694 } 695 return false; 696 }; 697 sortOrder = hasCompare ? function(a, b) { 698 if (a === b) { 699 hasDuplicate = true; 700 return 0; 701 } 702 var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; 703 if (compare) { 704 return compare; 705 } 706 compare = (a.ownerDocument || a) == (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1; 707 if (compare & 1 || !support2.sortDetached && b.compareDocumentPosition(a) === compare) { 708 if (a == document3 || a.ownerDocument == preferredDoc && contains2(preferredDoc, a)) { 709 return -1; 710 } 711 if (b == document3 || b.ownerDocument == preferredDoc && contains2(preferredDoc, b)) { 712 return 1; 713 } 714 return sortInput ? indexOf2(sortInput, a) - indexOf2(sortInput, b) : 0; 715 } 716 return compare & 4 ? -1 : 1; 717 } : function(a, b) { 718 if (a === b) { 719 hasDuplicate = true; 720 return 0; 721 } 722 var cur, i2 = 0, aup = a.parentNode, bup = b.parentNode, ap = [a], bp = [b]; 723 if (!aup || !bup) { 724 return a == document3 ? -1 : b == document3 ? 1 : aup ? -1 : bup ? 1 : sortInput ? indexOf2(sortInput, a) - indexOf2(sortInput, b) : 0; 725 } else if (aup === bup) { 726 return siblingCheck(a, b); 727 } 728 cur = a; 729 while (cur = cur.parentNode) { 730 ap.unshift(cur); 731 } 732 cur = b; 733 while (cur = cur.parentNode) { 734 bp.unshift(cur); 735 } 736 while (ap[i2] === bp[i2]) { 737 i2++; 738 } 739 return i2 ? siblingCheck(ap[i2], bp[i2]) : ap[i2] == preferredDoc ? -1 : bp[i2] == preferredDoc ? 1 : 0; 740 }; 741 return document3; 742 }; 743 Sizzle2.matches = function(expr, elements) { 744 return Sizzle2(expr, null, null, elements); 745 }; 746 Sizzle2.matchesSelector = function(elem, expr) { 747 setDocument(elem); 748 if (support2.matchesSelector && documentIsHTML && !nonnativeSelectorCache[expr + " "] && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) { 749 try { 750 var ret = matches.call(elem, expr); 751 if (ret || support2.disconnectedMatch || elem.document && elem.document.nodeType !== 11) { 752 return ret; 753 } 754 } catch (e) { 755 nonnativeSelectorCache(expr, true); 756 } 757 } 758 return Sizzle2(expr, document3, null, [elem]).length > 0; 759 }; 760 Sizzle2.contains = function(context, elem) { 761 if ((context.ownerDocument || context) != document3) { 762 setDocument(context); 763 } 764 return contains2(context, elem); 765 }; 766 Sizzle2.attr = function(elem, name) { 767 if ((elem.ownerDocument || elem) != document3) { 768 setDocument(elem); 769 } 770 var fn2 = Expr.attrHandle[name.toLowerCase()], val = fn2 && hasOwn2.call(Expr.attrHandle, name.toLowerCase()) ? fn2(elem, name, !documentIsHTML) : void 0; 771 return val !== void 0 ? val : support2.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null; 772 }; 773 Sizzle2.escape = function(sel) { 774 return (sel + "").replace(rcssescape, fcssescape); 775 }; 776 Sizzle2.error = function(msg) { 777 throw new Error("Syntax error, unrecognized expression: " + msg); 778 }; 779 Sizzle2.uniqueSort = function(results) { 780 var elem, duplicates = [], j = 0, i2 = 0; 781 hasDuplicate = !support2.detectDuplicates; 782 sortInput = !support2.sortStable && results.slice(0); 783 results.sort(sortOrder); 784 if (hasDuplicate) { 785 while (elem = results[i2++]) { 786 if (elem === results[i2]) { 787 j = duplicates.push(i2); 788 } 789 } 790 while (j--) { 791 results.splice(duplicates[j], 1); 792 } 793 } 794 sortInput = null; 795 return results; 796 }; 797 getText2 = Sizzle2.getText = function(elem) { 798 var node, ret = "", i2 = 0, nodeType = elem.nodeType; 799 if (!nodeType) { 800 while (node = elem[i2++]) { 801 ret += getText2(node); 802 } 803 } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) { 804 if (typeof elem.textContent === "string") { 805 return elem.textContent; 806 } else { 807 for (elem = elem.firstChild; elem; elem = elem.nextSibling) { 808 ret += getText2(elem); 809 } 810 } 811 } else if (nodeType === 3 || nodeType === 4) { 812 return elem.nodeValue; 813 } 814 return ret; 815 }; 816 Expr = Sizzle2.selectors = { 817 cacheLength: 50, 818 createPseudo: markFunction, 819 match: matchExpr, 820 attrHandle: {}, 821 find: {}, 822 relative: { 823 ">": { dir: "parentNode", first: true }, 824 " ": { dir: "parentNode" }, 825 "+": { dir: "previousSibling", first: true }, 826 "~": { dir: "previousSibling" } 827 }, 828 preFilter: { 829 "ATTR": function(match) { 830 match[1] = match[1].replace(runescape, funescape); 831 match[3] = (match[3] || match[4] || match[5] || "").replace(runescape, funescape); 832 if (match[2] === "~=") { 833 match[3] = " " + match[3] + " "; 834 } 835 return match.slice(0, 4); 836 }, 837 "CHILD": function(match) { 838 match[1] = match[1].toLowerCase(); 839 if (match[1].slice(0, 3) === "nth") { 840 if (!match[3]) { 841 Sizzle2.error(match[0]); 842 } 843 match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === "even" || match[3] === "odd")); 844 match[5] = +(match[7] + match[8] || match[3] === "odd"); 845 } else if (match[3]) { 846 Sizzle2.error(match[0]); 847 } 848 return match; 849 }, 850 "PSEUDO": function(match) { 851 var excess, unquoted = !match[6] && match[2]; 852 if (matchExpr["CHILD"].test(match[0])) { 853 return null; 854 } 855 if (match[3]) { 856 match[2] = match[4] || match[5] || ""; 857 } else if (unquoted && rpseudo.test(unquoted) && (excess = tokenize(unquoted, true)) && (excess = unquoted.indexOf(")", unquoted.length - excess) - unquoted.length)) { 858 match[0] = match[0].slice(0, excess); 859 match[2] = unquoted.slice(0, excess); 860 } 861 return match.slice(0, 3); 862 } 863 }, 864 filter: { 865 "TAG": function(nodeNameSelector) { 866 var nodeName2 = nodeNameSelector.replace(runescape, funescape).toLowerCase(); 867 return nodeNameSelector === "*" ? function() { 868 return true; 869 } : function(elem) { 870 return elem.nodeName && elem.nodeName.toLowerCase() === nodeName2; 871 }; 872 }, 873 "CLASS": function(className) { 874 var pattern = classCache[className + " "]; 875 return pattern || (pattern = new RegExp("(^|" + whitespace + ")" + className + "(" + whitespace + "|$)")) && classCache(className, function(elem) { 876 return pattern.test(typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || ""); 877 }); 878 }, 879 "ATTR": function(name, operator, check) { 880 return function(elem) { 881 var result = Sizzle2.attr(elem, name); 882 if (result == null) { 883 return operator === "!="; 884 } 885 if (!operator) { 886 return true; 887 } 888 result += ""; 889 return operator === "=" ? result === check : operator === "!=" ? result !== check : operator === "^=" ? check && result.indexOf(check) === 0 : operator === "*=" ? check && result.indexOf(check) > -1 : operator === "$=" ? check && result.slice(-check.length) === check : operator === "~=" ? (" " + result.replace(rwhitespace, " ") + " ").indexOf(check) > -1 : operator === "|=" ? result === check || result.slice(0, check.length + 1) === check + "-" : false; 890 }; 891 }, 892 "CHILD": function(type, what, _argument, first, last) { 893 var simple = type.slice(0, 3) !== "nth", forward = type.slice(-4) !== "last", ofType = what === "of-type"; 894 return first === 1 && last === 0 ? function(elem) { 895 return !!elem.parentNode; 896 } : function(elem, _context, xml) { 897 var cache, uniqueCache, outerCache, node, nodeIndex, start2, dir2 = simple !== forward ? "nextSibling" : "previousSibling", parent = elem.parentNode, name = ofType && elem.nodeName.toLowerCase(), useCache = !xml && !ofType, diff = false; 898 if (parent) { 899 if (simple) { 900 while (dir2) { 901 node = elem; 902 while (node = node[dir2]) { 903 if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) { 904 return false; 905 } 906 } 907 start2 = dir2 = type === "only" && !start2 && "nextSibling"; 908 } 909 return true; 910 } 911 start2 = [forward ? parent.firstChild : parent.lastChild]; 912 if (forward && useCache) { 913 node = parent; 914 outerCache = node[expando] || (node[expando] = {}); 915 uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {}); 916 cache = uniqueCache[type] || []; 917 nodeIndex = cache[0] === dirruns && cache[1]; 918 diff = nodeIndex && cache[2]; 919 node = nodeIndex && parent.childNodes[nodeIndex]; 920 while (node = ++nodeIndex && node && node[dir2] || (diff = nodeIndex = 0) || start2.pop()) { 921 if (node.nodeType === 1 && ++diff && node === elem) { 922 uniqueCache[type] = [dirruns, nodeIndex, diff]; 923 break; 924 } 925 } 926 } else { 927 if (useCache) { 928 node = elem; 929 outerCache = node[expando] || (node[expando] = {}); 930 uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {}); 931 cache = uniqueCache[type] || []; 932 nodeIndex = cache[0] === dirruns && cache[1]; 933 diff = nodeIndex; 934 } 935 if (diff === false) { 936 while (node = ++nodeIndex && node && node[dir2] || (diff = nodeIndex = 0) || start2.pop()) { 937 if ((ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) && ++diff) { 938 if (useCache) { 939 outerCache = node[expando] || (node[expando] = {}); 940 uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {}); 941 uniqueCache[type] = [dirruns, diff]; 942 } 943 if (node === elem) { 944 break; 945 } 946 } 947 } 948 } 949 } 950 diff -= last; 951 return diff === first || diff % first === 0 && diff / first >= 0; 952 } 953 }; 954 }, 955 "PSEUDO": function(pseudo, argument) { 956 var args, fn2 = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || Sizzle2.error("unsupported pseudo: " + pseudo); 957 if (fn2[expando]) { 958 return fn2(argument); 959 } 960 if (fn2.length > 1) { 961 args = [pseudo, pseudo, "", argument]; 962 return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function(seed, matches2) { 963 var idx, matched = fn2(seed, argument), i2 = matched.length; 964 while (i2--) { 965 idx = indexOf2(seed, matched[i2]); 966 seed[idx] = !(matches2[idx] = matched[i2]); 967 } 968 }) : function(elem) { 969 return fn2(elem, 0, args); 970 }; 971 } 972 return fn2; 973 } 974 }, 975 pseudos: { 976 "not": markFunction(function(selector3) { 977 var input = [], results = [], matcher = compile(selector3.replace(rtrim2, "$1")); 978 return matcher[expando] ? markFunction(function(seed, matches2, _context, xml) { 979 var elem, unmatched = matcher(seed, null, xml, []), i2 = seed.length; 980 while (i2--) { 981 if (elem = unmatched[i2]) { 982 seed[i2] = !(matches2[i2] = elem); 983 } 984 } 985 }) : function(elem, _context, xml) { 986 input[0] = elem; 987 matcher(input, null, xml, results); 988 input[0] = null; 989 return !results.pop(); 990 }; 991 }), 992 "has": markFunction(function(selector3) { 993 return function(elem) { 994 return Sizzle2(selector3, elem).length > 0; 995 }; 996 }), 997 "contains": markFunction(function(text) { 998 text = text.replace(runescape, funescape); 999 return function(elem) { 1000 return (elem.textContent || getText2(elem)).indexOf(text) > -1; 1001 }; 1002 }), 1003 "lang": markFunction(function(lang) { 1004 if (!ridentifier.test(lang || "")) { 1005 Sizzle2.error("unsupported lang: " + lang); 1006 } 1007 lang = lang.replace(runescape, funescape).toLowerCase(); 1008 return function(elem) { 1009 var elemLang; 1010 do { 1011 if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute("xml:lang") || elem.getAttribute("lang")) { 1012 elemLang = elemLang.toLowerCase(); 1013 return elemLang === lang || elemLang.indexOf(lang + "-") === 0; 1014 } 1015 } while ((elem = elem.parentNode) && elem.nodeType === 1); 1016 return false; 1017 }; 1018 }), 1019 "target": function(elem) { 1020 var hash3 = window3.location && window3.location.hash; 1021 return hash3 && hash3.slice(1) === elem.id; 1022 }, 1023 "root": function(elem) { 1024 return elem === docElem; 1025 }, 1026 "focus": function(elem) { 1027 return elem === document3.activeElement && (!document3.hasFocus || document3.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); 1028 }, 1029 "enabled": createDisabledPseudo(false), 1030 "disabled": createDisabledPseudo(true), 1031 "checked": function(elem) { 1032 var nodeName2 = elem.nodeName.toLowerCase(); 1033 return nodeName2 === "input" && !!elem.checked || nodeName2 === "option" && !!elem.selected; 1034 }, 1035 "selected": function(elem) { 1036 if (elem.parentNode) { 1037 elem.parentNode.selectedIndex; 1038 } 1039 return elem.selected === true; 1040 }, 1041 "empty": function(elem) { 1042 for (elem = elem.firstChild; elem; elem = elem.nextSibling) { 1043 if (elem.nodeType < 6) { 1044 return false; 1045 } 1046 } 1047 return true; 1048 }, 1049 "parent": function(elem) { 1050 return !Expr.pseudos["empty"](elem); 1051 }, 1052 "header": function(elem) { 1053 return rheader.test(elem.nodeName); 1054 }, 1055 "input": function(elem) { 1056 return rinputs.test(elem.nodeName); 1057 }, 1058 "button": function(elem) { 1059 var name = elem.nodeName.toLowerCase(); 1060 return name === "input" && elem.type === "button" || name === "button"; 1061 }, 1062 "text": function(elem) { 1063 var attr; 1064 return elem.nodeName.toLowerCase() === "input" && elem.type === "text" && ((attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text"); 1065 }, 1066 "first": createPositionalPseudo(function() { 1067 return [0]; 1068 }), 1069 "last": createPositionalPseudo(function(_matchIndexes, length) { 1070 return [length - 1]; 1071 }), 1072 "eq": createPositionalPseudo(function(_matchIndexes, length, argument) { 1073 return [argument < 0 ? argument + length : argument]; 1074 }), 1075 "even": createPositionalPseudo(function(matchIndexes, length) { 1076 var i2 = 0; 1077 for (; i2 < length; i2 += 2) { 1078 matchIndexes.push(i2); 1079 } 1080 return matchIndexes; 1081 }), 1082 "odd": createPositionalPseudo(function(matchIndexes, length) { 1083 var i2 = 1; 1084 for (; i2 < length; i2 += 2) { 1085 matchIndexes.push(i2); 1086 } 1087 return matchIndexes; 1088 }), 1089 "lt": createPositionalPseudo(function(matchIndexes, length, argument) { 1090 var i2 = argument < 0 ? argument + length : argument > length ? length : argument; 1091 for (; --i2 >= 0; ) { 1092 matchIndexes.push(i2); 1093 } 1094 return matchIndexes; 1095 }), 1096 "gt": createPositionalPseudo(function(matchIndexes, length, argument) { 1097 var i2 = argument < 0 ? argument + length : argument; 1098 for (; ++i2 < length; ) { 1099 matchIndexes.push(i2); 1100 } 1101 return matchIndexes; 1102 }) 1103 } 1104 }; 1105 Expr.pseudos["nth"] = Expr.pseudos["eq"]; 1106 for (i in { radio: true, checkbox: true, file: true, password: true, image: true }) { 1107 Expr.pseudos[i] = createInputPseudo(i); 1108 } 1109 for (i in { submit: true, reset: true }) { 1110 Expr.pseudos[i] = createButtonPseudo(i); 1111 } 1112 function setFilters() { 1113 } 1114 setFilters.prototype = Expr.filters = Expr.pseudos; 1115 Expr.setFilters = new setFilters(); 1116 tokenize = Sizzle2.tokenize = function(selector3, parseOnly) { 1117 var matched, match, tokens, type, soFar, groups, preFilters, cached = tokenCache[selector3 + " "]; 1118 if (cached) { 1119 return parseOnly ? 0 : cached.slice(0); 1120 } 1121 soFar = selector3; 1122 groups = []; 1123 preFilters = Expr.preFilter; 1124 while (soFar) { 1125 if (!matched || (match = rcomma.exec(soFar))) { 1126 if (match) { 1127 soFar = soFar.slice(match[0].length) || soFar; 1128 } 1129 groups.push(tokens = []); 1130 } 1131 matched = false; 1132 if (match = rcombinators.exec(soFar)) { 1133 matched = match.shift(); 1134 tokens.push({ 1135 value: matched, 1136 type: match[0].replace(rtrim2, " ") 1137 }); 1138 soFar = soFar.slice(matched.length); 1139 } 1140 for (type in Expr.filter) { 1141 if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) { 1142 matched = match.shift(); 1143 tokens.push({ 1144 value: matched, 1145 type, 1146 matches: match 1147 }); 1148 soFar = soFar.slice(matched.length); 1149 } 1150 } 1151 if (!matched) { 1152 break; 1153 } 1154 } 1155 return parseOnly ? soFar.length : soFar ? Sizzle2.error(selector3) : tokenCache(selector3, groups).slice(0); 1156 }; 1157 function toSelector(tokens) { 1158 var i2 = 0, len = tokens.length, selector3 = ""; 1159 for (; i2 < len; i2++) { 1160 selector3 += tokens[i2].value; 1161 } 1162 return selector3; 1163 } 1164 function addCombinator(matcher, combinator, base) { 1165 var dir2 = combinator.dir, skip = combinator.next, key = skip || dir2, checkNonElements = base && key === "parentNode", doneName = done++; 1166 return combinator.first ? function(elem, context, xml) { 1167 while (elem = elem[dir2]) { 1168 if (elem.nodeType === 1 || checkNonElements) { 1169 return matcher(elem, context, xml); 1170 } 1171 } 1172 return false; 1173 } : function(elem, context, xml) { 1174 var oldCache, uniqueCache, outerCache, newCache = [dirruns, doneName]; 1175 if (xml) { 1176 while (elem = elem[dir2]) { 1177 if (elem.nodeType === 1 || checkNonElements) { 1178 if (matcher(elem, context, xml)) { 1179 return true; 1180 } 1181 } 1182 } 1183 } else { 1184 while (elem = elem[dir2]) { 1185 if (elem.nodeType === 1 || checkNonElements) { 1186 outerCache = elem[expando] || (elem[expando] = {}); 1187 uniqueCache = outerCache[elem.uniqueID] || (outerCache[elem.uniqueID] = {}); 1188 if (skip && skip === elem.nodeName.toLowerCase()) { 1189 elem = elem[dir2] || elem; 1190 } else if ((oldCache = uniqueCache[key]) && oldCache[0] === dirruns && oldCache[1] === doneName) { 1191 return newCache[2] = oldCache[2]; 1192 } else { 1193 uniqueCache[key] = newCache; 1194 if (newCache[2] = matcher(elem, context, xml)) { 1195 return true; 1196 } 1197 } 1198 } 1199 } 1200 } 1201 return false; 1202 }; 1203 } 1204 function elementMatcher(matchers) { 1205 return matchers.length > 1 ? function(elem, context, xml) { 1206 var i2 = matchers.length; 1207 while (i2--) { 1208 if (!matchers[i2](elem, context, xml)) { 1209 return false; 1210 } 1211 } 1212 return true; 1213 } : matchers[0]; 1214 } 1215 function multipleContexts(selector3, contexts, results) { 1216 var i2 = 0, len = contexts.length; 1217 for (; i2 < len; i2++) { 1218 Sizzle2(selector3, contexts[i2], results); 1219 } 1220 return results; 1221 } 1222 function condense(unmatched, map, filter, context, xml) { 1223 var elem, newUnmatched = [], i2 = 0, len = unmatched.length, mapped = map != null; 1224 for (; i2 < len; i2++) { 1225 if (elem = unmatched[i2]) { 1226 if (!filter || filter(elem, context, xml)) { 1227 newUnmatched.push(elem); 1228 if (mapped) { 1229 map.push(i2); 1230 } 1231 } 1232 } 1233 } 1234 return newUnmatched; 1235 } 1236 function setMatcher(preFilter, selector3, matcher, postFilter, postFinder, postSelector) { 1237 if (postFilter && !postFilter[expando]) { 1238 postFilter = setMatcher(postFilter); 1239 } 1240 if (postFinder && !postFinder[expando]) { 1241 postFinder = setMatcher(postFinder, postSelector); 1242 } 1243 return markFunction(function(seed, results, context, xml) { 1244 var temp, i2, elem, preMap = [], postMap = [], preexisting = results.length, elems = seed || multipleContexts(selector3 || "*", context.nodeType ? [context] : context, []), matcherIn = preFilter && (seed || !selector3) ? condense(elems, preMap, preFilter, context, xml) : elems, matcherOut = matcher ? postFinder || (seed ? preFilter : preexisting || postFilter) ? [] : results : matcherIn; 1245 if (matcher) { 1246 matcher(matcherIn, matcherOut, context, xml); 1247 } 1248 if (postFilter) { 1249 temp = condense(matcherOut, postMap); 1250 postFilter(temp, [], context, xml); 1251 i2 = temp.length; 1252 while (i2--) { 1253 if (elem = temp[i2]) { 1254 matcherOut[postMap[i2]] = !(matcherIn[postMap[i2]] = elem); 1255 } 1256 } 1257 } 1258 if (seed) { 1259 if (postFinder || preFilter) { 1260 if (postFinder) { 1261 temp = []; 1262 i2 = matcherOut.length; 1263 while (i2--) { 1264 if (elem = matcherOut[i2]) { 1265 temp.push(matcherIn[i2] = elem); 1266 } 1267 } 1268 postFinder(null, matcherOut = [], temp, xml); 1269 } 1270 i2 = matcherOut.length; 1271 while (i2--) { 1272 if ((elem = matcherOut[i2]) && (temp = postFinder ? indexOf2(seed, elem) : preMap[i2]) > -1) { 1273 seed[temp] = !(results[temp] = elem); 1274 } 1275 } 1276 } 1277 } else { 1278 matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut); 1279 if (postFinder) { 1280 postFinder(null, results, matcherOut, xml); 1281 } else { 1282 push2.apply(results, matcherOut); 1283 } 1284 } 1285 }); 1286 } 1287 function matcherFromTokens(tokens) { 1288 var checkContext, matcher, j, len = tokens.length, leadingRelative = Expr.relative[tokens[0].type], implicitRelative = leadingRelative || Expr.relative[" "], i2 = leadingRelative ? 1 : 0, matchContext = addCombinator(function(elem) { 1289 return elem === checkContext; 1290 }, implicitRelative, true), matchAnyContext = addCombinator(function(elem) { 1291 return indexOf2(checkContext, elem) > -1; 1292 }, implicitRelative, true), matchers = [function(elem, context, xml) { 1293 var ret = !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml)); 1294 checkContext = null; 1295 return ret; 1296 }]; 1297 for (; i2 < len; i2++) { 1298 if (matcher = Expr.relative[tokens[i2].type]) { 1299 matchers = [addCombinator(elementMatcher(matchers), matcher)]; 1300 } else { 1301 matcher = Expr.filter[tokens[i2].type].apply(null, tokens[i2].matches); 1302 if (matcher[expando]) { 1303 j = ++i2; 1304 for (; j < len; j++) { 1305 if (Expr.relative[tokens[j].type]) { 1306 break; 1307 } 1308 } 1309 return setMatcher(i2 > 1 && elementMatcher(matchers), i2 > 1 && toSelector(tokens.slice(0, i2 - 1).concat({ value: tokens[i2 - 2].type === " " ? "*" : "" })).replace(rtrim2, "$1"), matcher, i2 < j && matcherFromTokens(tokens.slice(i2, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens)); 1310 } 1311 matchers.push(matcher); 1312 } 1313 } 1314 return elementMatcher(matchers); 1315 } 1316 function matcherFromGroupMatchers(elementMatchers, setMatchers) { 1317 var bySet = setMatchers.length > 0, byElement = elementMatchers.length > 0, superMatcher = function(seed, context, xml, results, outermost) { 1318 var elem, j, matcher, matchedCount = 0, i2 = "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; 1319 if (outermost) { 1320 outermostContext = context == document3 || context || outermost; 1321 } 1322 for (; i2 !== len && (elem = elems[i2]) != null; i2++) { 1323 if (byElement && elem) { 1324 j = 0; 1325 if (!context && elem.ownerDocument != document3) { 1326 setDocument(elem); 1327 xml = !documentIsHTML; 1328 } 1329 while (matcher = elementMatchers[j++]) { 1330 if (matcher(elem, context || document3, xml)) { 1331 results.push(elem); 1332 break; 1333 } 1334 } 1335 if (outermost) { 1336 dirruns = dirrunsUnique; 1337 } 1338 } 1339 if (bySet) { 1340 if (elem = !matcher && elem) { 1341 matchedCount--; 1342 } 1343 if (seed) { 1344 unmatched.push(elem); 1345 } 1346 } 1347 } 1348 matchedCount += i2; 1349 if (bySet && i2 !== matchedCount) { 1350 j = 0; 1351 while (matcher = setMatchers[j++]) { 1352 matcher(unmatched, setMatched, context, xml); 1353 } 1354 if (seed) { 1355 if (matchedCount > 0) { 1356 while (i2--) { 1357 if (!(unmatched[i2] || setMatched[i2])) { 1358 setMatched[i2] = pop.call(results); 1359 } 1360 } 1361 } 1362 setMatched = condense(setMatched); 1363 } 1364 push2.apply(results, setMatched); 1365 if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) { 1366 Sizzle2.uniqueSort(results); 1367 } 1368 } 1369 if (outermost) { 1370 dirruns = dirrunsUnique; 1371 outermostContext = contextBackup; 1372 } 1373 return unmatched; 1374 }; 1375 return bySet ? markFunction(superMatcher) : superMatcher; 1376 } 1377 compile = Sizzle2.compile = function(selector3, match) { 1378 var i2, setMatchers = [], elementMatchers = [], cached = compilerCache[selector3 + " "]; 1379 if (!cached) { 1380 if (!match) { 1381 match = tokenize(selector3); 1382 } 1383 i2 = match.length; 1384 while (i2--) { 1385 cached = matcherFromTokens(match[i2]); 1386 if (cached[expando]) { 1387 setMatchers.push(cached); 1388 } else { 1389 elementMatchers.push(cached); 1390 } 1391 } 1392 cached = compilerCache(selector3, matcherFromGroupMatchers(elementMatchers, setMatchers)); 1393 cached.selector = selector3; 1394 } 1395 return cached; 1396 }; 1397 select = Sizzle2.select = function(selector3, context, results, seed) { 1398 var i2, tokens, token, type, find, compiled = typeof selector3 === "function" && selector3, match = !seed && tokenize(selector3 = compiled.selector || selector3); 1399 results = results || []; 1400 if (match.length === 1) { 1401 tokens = match[0] = match[0].slice(0); 1402 if (tokens.length > 2 && (token = tokens[0]).type === "ID" && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) { 1403 context = (Expr.find["ID"](token.matches[0].replace(runescape, funescape), context) || [])[0]; 1404 if (!context) { 1405 return results; 1406 } else if (compiled) { 1407 context = context.parentNode; 1408 } 1409 selector3 = selector3.slice(tokens.shift().value.length); 1410 } 1411 i2 = matchExpr["needsContext"].test(selector3) ? 0 : tokens.length; 1412 while (i2--) { 1413 token = tokens[i2]; 1414 if (Expr.relative[type = token.type]) { 1415 break; 1416 } 1417 if (find = Expr.find[type]) { 1418 if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) { 1419 tokens.splice(i2, 1); 1420 selector3 = seed.length && toSelector(tokens); 1421 if (!selector3) { 1422 push2.apply(results, seed); 1423 return results; 1424 } 1425 break; 1426 } 1427 } 1428 } 1429 } 1430 (compiled || compile(selector3, match))(seed, context, !documentIsHTML, results, !context || rsibling.test(selector3) && testContext(context.parentNode) || context); 1431 return results; 1432 }; 1433 support2.sortStable = expando.split("").sort(sortOrder).join("") === expando; 1434 support2.detectDuplicates = !!hasDuplicate; 1435 setDocument(); 1436 support2.sortDetached = assert(function(el) { 1437 return el.compareDocumentPosition(document3.createElement("fieldset")) & 1; 1438 }); 1439 if (!assert(function(el) { 1440 el.innerHTML = "<a href='#'></a>"; 1441 return el.firstChild.getAttribute("href") === "#"; 1442 })) { 1443 addHandle("type|href|height|width", function(elem, name, isXML2) { 1444 if (!isXML2) { 1445 return elem.getAttribute(name, name.toLowerCase() === "type" ? 1 : 2); 1446 } 1447 }); 1448 } 1449 if (!support2.attributes || !assert(function(el) { 1450 el.innerHTML = "<input/>"; 1451 el.firstChild.setAttribute("value", ""); 1452 return el.firstChild.getAttribute("value") === ""; 1453 })) { 1454 addHandle("value", function(elem, _name, isXML2) { 1455 if (!isXML2 && elem.nodeName.toLowerCase() === "input") { 1456 return elem.defaultValue; 1457 } 1458 }); 1459 } 1460 if (!assert(function(el) { 1461 return el.getAttribute("disabled") == null; 1462 })) { 1463 addHandle(booleans, function(elem, name, isXML2) { 1464 var val; 1465 if (!isXML2) { 1466 return elem[name] === true ? name.toLowerCase() : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null; 1467 } 1468 }); 1469 } 1470 return Sizzle2; 1471 }(window2); 1472 jQuery2.find = Sizzle; 1473 jQuery2.expr = Sizzle.selectors; 1474 jQuery2.expr[":"] = jQuery2.expr.pseudos; 1475 jQuery2.uniqueSort = jQuery2.unique = Sizzle.uniqueSort; 1476 jQuery2.text = Sizzle.getText; 1477 jQuery2.isXMLDoc = Sizzle.isXML; 1478 jQuery2.contains = Sizzle.contains; 1479 jQuery2.escapeSelector = Sizzle.escape; 1480 var dir = function(elem, dir2, until) { 1481 var matched = [], truncate = until !== void 0; 1482 while ((elem = elem[dir2]) && elem.nodeType !== 9) { 1483 if (elem.nodeType === 1) { 1484 if (truncate && jQuery2(elem).is(until)) { 1485 break; 1486 } 1487 matched.push(elem); 1488 } 1489 } 1490 return matched; 1491 }; 1492 var siblings2 = function(n, elem) { 1493 var matched = []; 1494 for (; n; n = n.nextSibling) { 1495 if (n.nodeType === 1 && n !== elem) { 1496 matched.push(n); 1497 } 1498 } 1499 return matched; 1500 }; 1501 var rneedsContext = jQuery2.expr.match.needsContext; 1502 function nodeName(elem, name) { 1503 return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); 1504 } 1505 var rsingleTag = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; 1506 function winnow(elements, qualifier, not) { 1507 if (isFunction2(qualifier)) { 1508 return jQuery2.grep(elements, function(elem, i) { 1509 return !!qualifier.call(elem, i, elem) !== not; 1510 }); 1511 } 1512 if (qualifier.nodeType) { 1513 return jQuery2.grep(elements, function(elem) { 1514 return elem === qualifier !== not; 1515 }); 1516 } 1517 if (typeof qualifier !== "string") { 1518 return jQuery2.grep(elements, function(elem) { 1519 return indexOf.call(qualifier, elem) > -1 !== not; 1520 }); 1521 } 1522 return jQuery2.filter(qualifier, elements, not); 1523 } 1524 jQuery2.filter = function(expr, elems, not) { 1525 var elem = elems[0]; 1526 if (not) { 1527 expr = ":not(" + expr + ")"; 1528 } 1529 if (elems.length === 1 && elem.nodeType === 1) { 1530 return jQuery2.find.matchesSelector(elem, expr) ? [elem] : []; 1531 } 1532 return jQuery2.find.matches(expr, jQuery2.grep(elems, function(elem2) { 1533 return elem2.nodeType === 1; 1534 })); 1535 }; 1536 jQuery2.fn.extend({ 1537 find: function(selector3) { 1538 var i, ret, len = this.length, self2 = this; 1539 if (typeof selector3 !== "string") { 1540 return this.pushStack(jQuery2(selector3).filter(function() { 1541 for (i = 0; i < len; i++) { 1542 if (jQuery2.contains(self2[i], this)) { 1543 return true; 1544 } 1545 } 1546 })); 1547 } 1548 ret = this.pushStack([]); 1549 for (i = 0; i < len; i++) { 1550 jQuery2.find(selector3, self2[i], ret); 1551 } 1552 return len > 1 ? jQuery2.uniqueSort(ret) : ret; 1553 }, 1554 filter: function(selector3) { 1555 return this.pushStack(winnow(this, selector3 || [], false)); 1556 }, 1557 not: function(selector3) { 1558 return this.pushStack(winnow(this, selector3 || [], true)); 1559 }, 1560 is: function(selector3) { 1561 return !!winnow(this, typeof selector3 === "string" && rneedsContext.test(selector3) ? jQuery2(selector3) : selector3 || [], false).length; 1562 } 1563 }); 1564 var rootjQuery, rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, init7 = jQuery2.fn.init = function(selector3, context, root) { 1565 var match, elem; 1566 if (!selector3) { 1567 return this; 1568 } 1569 root = root || rootjQuery; 1570 if (typeof selector3 === "string") { 1571 if (selector3[0] === "<" && selector3[selector3.length - 1] === ">" && selector3.length >= 3) { 1572 match = [null, selector3, null]; 1573 } else { 1574 match = rquickExpr.exec(selector3); 1575 } 1576 if (match && (match[1] || !context)) { 1577 if (match[1]) { 1578 context = context instanceof jQuery2 ? context[0] : context; 1579 jQuery2.merge(this, jQuery2.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document2, true)); 1580 if (rsingleTag.test(match[1]) && jQuery2.isPlainObject(context)) { 1581 for (match in context) { 1582 if (isFunction2(this[match])) { 1583 this[match](context[match]); 1584 } else { 1585 this.attr(match, context[match]); 1586 } 1587 } 1588 } 1589 return this; 1590 } else { 1591 elem = document2.getElementById(match[2]); 1592 if (elem) { 1593 this[0] = elem; 1594 this.length = 1; 1595 } 1596 return this; 1597 } 1598 } else if (!context || context.jquery) { 1599 return (context || root).find(selector3); 1600 } else { 1601 return this.constructor(context).find(selector3); 1602 } 1603 } else if (selector3.nodeType) { 1604 this[0] = selector3; 1605 this.length = 1; 1606 return this; 1607 } else if (isFunction2(selector3)) { 1608 return root.ready !== void 0 ? root.ready(selector3) : selector3(jQuery2); 1609 } 1610 return jQuery2.makeArray(selector3, this); 1611 }; 1612 init7.prototype = jQuery2.fn; 1613 rootjQuery = jQuery2(document2); 1614 var rparentsprev = /^(?:parents|prev(?:Until|All))/, guaranteedUnique = { 1615 children: true, 1616 contents: true, 1617 next: true, 1618 prev: true 1619 }; 1620 jQuery2.fn.extend({ 1621 has: function(target) { 1622 var targets = jQuery2(target, this), l = targets.length; 1623 return this.filter(function() { 1624 var i = 0; 1625 for (; i < l; i++) { 1626 if (jQuery2.contains(this, targets[i])) { 1627 return true; 1628 } 1629 } 1630 }); 1631 }, 1632 closest: function(selectors, context) { 1633 var cur, i = 0, l = this.length, matched = [], targets = typeof selectors !== "string" && jQuery2(selectors); 1634 if (!rneedsContext.test(selectors)) { 1635 for (; i < l; i++) { 1636 for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) { 1637 if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 : cur.nodeType === 1 && jQuery2.find.matchesSelector(cur, selectors))) { 1638 matched.push(cur); 1639 break; 1640 } 1641 } 1642 } 1643 } 1644 return this.pushStack(matched.length > 1 ? jQuery2.uniqueSort(matched) : matched); 1645 }, 1646 index: function(elem) { 1647 if (!elem) { 1648 return this[0] && this[0].parentNode ? this.first().prevAll().length : -1; 1649 } 1650 if (typeof elem === "string") { 1651 return indexOf.call(jQuery2(elem), this[0]); 1652 } 1653 return indexOf.call(this, elem.jquery ? elem[0] : elem); 1654 }, 1655 add: function(selector3, context) { 1656 return this.pushStack(jQuery2.uniqueSort(jQuery2.merge(this.get(), jQuery2(selector3, context)))); 1657 }, 1658 addBack: function(selector3) { 1659 return this.add(selector3 == null ? this.prevObject : this.prevObject.filter(selector3)); 1660 } 1661 }); 1662 function sibling(cur, dir2) { 1663 while ((cur = cur[dir2]) && cur.nodeType !== 1) { 1664 } 1665 return cur; 1666 } 1667 jQuery2.each({ 1668 parent: function(elem) { 1669 var parent = elem.parentNode; 1670 return parent && parent.nodeType !== 11 ? parent : null; 1671 }, 1672 parents: function(elem) { 1673 return dir(elem, "parentNode"); 1674 }, 1675 parentsUntil: function(elem, _i2, until) { 1676 return dir(elem, "parentNode", until); 1677 }, 1678 next: function(elem) { 1679 return sibling(elem, "nextSibling"); 1680 }, 1681 prev: function(elem) { 1682 return sibling(elem, "previousSibling"); 1683 }, 1684 nextAll: function(elem) { 1685 return dir(elem, "nextSibling"); 1686 }, 1687 prevAll: function(elem) { 1688 return dir(elem, "previousSibling"); 1689 }, 1690 nextUntil: function(elem, _i2, until) { 1691 return dir(elem, "nextSibling", until); 1692 }, 1693 prevUntil: function(elem, _i2, until) { 1694 return dir(elem, "previousSibling", until); 1695 }, 1696 siblings: function(elem) { 1697 return siblings2((elem.parentNode || {}).firstChild, elem); 1698 }, 1699 children: function(elem) { 1700 return siblings2(elem.firstChild); 1701 }, 1702 contents: function(elem) { 1703 if (elem.contentDocument != null && getProto(elem.contentDocument)) { 1704 return elem.contentDocument; 1705 } 1706 if (nodeName(elem, "template")) { 1707 elem = elem.content || elem; 1708 } 1709 return jQuery2.merge([], elem.childNodes); 1710 } 1711 }, function(name, fn2) { 1712 jQuery2.fn[name] = function(until, selector3) { 1713 var matched = jQuery2.map(this, fn2, until); 1714 if (name.slice(-5) !== "Until") { 1715 selector3 = until; 1716 } 1717 if (selector3 && typeof selector3 === "string") { 1718 matched = jQuery2.filter(selector3, matched); 1719 } 1720 if (this.length > 1) { 1721 if (!guaranteedUnique[name]) { 1722 jQuery2.uniqueSort(matched); 1723 } 1724 if (rparentsprev.test(name)) { 1725 matched.reverse(); 1726 } 1727 } 1728 return this.pushStack(matched); 1729 }; 1730 }); 1731 var rnothtmlwhite = /[^\x20\t\r\n\f]+/g; 1732 function createOptions(options) { 1733 var object = {}; 1734 jQuery2.each(options.match(rnothtmlwhite) || [], function(_2, flag) { 1735 object[flag] = true; 1736 }); 1737 return object; 1738 } 1739 jQuery2.Callbacks = function(options) { 1740 options = typeof options === "string" ? createOptions(options) : jQuery2.extend({}, options); 1741 var firing, memory, fired, locked, list = [], queue = [], firingIndex = -1, fire = function() { 1742 locked = locked || options.once; 1743 fired = firing = true; 1744 for (; queue.length; firingIndex = -1) { 1745 memory = queue.shift(); 1746 while (++firingIndex < list.length) { 1747 if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) { 1748 firingIndex = list.length; 1749 memory = false; 1750 } 1751 } 1752 } 1753 if (!options.memory) { 1754 memory = false; 1755 } 1756 firing = false; 1757 if (locked) { 1758 if (memory) { 1759 list = []; 1760 } else { 1761 list = ""; 1762 } 1763 } 1764 }, self2 = { 1765 add: function() { 1766 if (list) { 1767 if (memory && !firing) { 1768 firingIndex = list.length - 1; 1769 queue.push(memory); 1770 } 1771 (function add(args) { 1772 jQuery2.each(args, function(_2, arg) { 1773 if (isFunction2(arg)) { 1774 if (!options.unique || !self2.has(arg)) { 1775 list.push(arg); 1776 } 1777 } else if (arg && arg.length && toType(arg) !== "string") { 1778 add(arg); 1779 } 1780 }); 1781 })(arguments); 1782 if (memory && !firing) { 1783 fire(); 1784 } 1785 } 1786 return this; 1787 }, 1788 remove: function() { 1789 jQuery2.each(arguments, function(_2, arg) { 1790 var index; 1791 while ((index = jQuery2.inArray(arg, list, index)) > -1) { 1792 list.splice(index, 1); 1793 if (index <= firingIndex) { 1794 firingIndex--; 1795 } 1796 } 1797 }); 1798 return this; 1799 }, 1800 has: function(fn2) { 1801 return fn2 ? jQuery2.inArray(fn2, list) > -1 : list.length > 0; 1802 }, 1803 empty: function() { 1804 if (list) { 1805 list = []; 1806 } 1807 return this; 1808 }, 1809 disable: function() { 1810 locked = queue = []; 1811 list = memory = ""; 1812 return this; 1813 }, 1814 disabled: function() { 1815 return !list; 1816 }, 1817 lock: function() { 1818 locked = queue = []; 1819 if (!memory && !firing) { 1820 list = memory = ""; 1821 } 1822 return this; 1823 }, 1824 locked: function() { 1825 return !!locked; 1826 }, 1827 fireWith: function(context, args) { 1828 if (!locked) { 1829 args = args || []; 1830 args = [context, args.slice ? args.slice() : args]; 1831 queue.push(args); 1832 if (!firing) { 1833 fire(); 1834 } 1835 } 1836 return this; 1837 }, 1838 fire: function() { 1839 self2.fireWith(this, arguments); 1840 return this; 1841 }, 1842 fired: function() { 1843 return !!fired; 1844 } 1845 }; 1846 return self2; 1847 }; 1848 function Identity(v) { 1849 return v; 1850 } 1851 function Thrower(ex) { 1852 throw ex; 1853 } 1854 function adoptValue(value, resolve, reject, noValue) { 1855 var method; 1856 try { 1857 if (value && isFunction2(method = value.promise)) { 1858 method.call(value).done(resolve).fail(reject); 1859 } else if (value && isFunction2(method = value.then)) { 1860 method.call(value, resolve, reject); 1861 } else { 1862 resolve.apply(void 0, [value].slice(noValue)); 1863 } 1864 } catch (value2) { 1865 reject.apply(void 0, [value2]); 1866 } 1867 } 1868 jQuery2.extend({ 1869 Deferred: function(func) { 1870 var tuples = [ 1871 [ 1872 "notify", 1873 "progress", 1874 jQuery2.Callbacks("memory"), 1875 jQuery2.Callbacks("memory"), 1876 2 1877 ], 1878 [ 1879 "resolve", 1880 "done", 1881 jQuery2.Callbacks("once memory"), 1882 jQuery2.Callbacks("once memory"), 1883 0, 1884 "resolved" 1885 ], 1886 [ 1887 "reject", 1888 "fail", 1889 jQuery2.Callbacks("once memory"), 1890 jQuery2.Callbacks("once memory"), 1891 1, 1892 "rejected" 1893 ] 1894 ], state = "pending", promise = { 1895 state: function() { 1896 return state; 1897 }, 1898 always: function() { 1899 deferred.done(arguments).fail(arguments); 1900 return this; 1901 }, 1902 "catch": function(fn2) { 1903 return promise.then(null, fn2); 1904 }, 1905 pipe: function() { 1906 var fns = arguments; 1907 return jQuery2.Deferred(function(newDefer) { 1908 jQuery2.each(tuples, function(_i2, tuple) { 1909 var fn2 = isFunction2(fns[tuple[4]]) && fns[tuple[4]]; 1910 deferred[tuple[1]](function() { 1911 var returned = fn2 && fn2.apply(this, arguments); 1912 if (returned && isFunction2(returned.promise)) { 1913 returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject); 1914 } else { 1915 newDefer[tuple[0] + "With"](this, fn2 ? [returned] : arguments); 1916 } 1917 }); 1918 }); 1919 fns = null; 1920 }).promise(); 1921 }, 1922 then: function(onFulfilled, onRejected, onProgress) { 1923 var maxDepth = 0; 1924 function resolve(depth, deferred2, handler, special) { 1925 return function() { 1926 var that = this, args = arguments, mightThrow = function() { 1927 var returned, then; 1928 if (depth < maxDepth) { 1929 return; 1930 } 1931 returned = handler.apply(that, args); 1932 if (returned === deferred2.promise()) { 1933 throw new TypeError("Thenable self-resolution"); 1934 } 1935 then = returned && (typeof returned === "object" || typeof returned === "function") && returned.then; 1936 if (isFunction2(then)) { 1937 if (special) { 1938 then.call(returned, resolve(maxDepth, deferred2, Identity, special), resolve(maxDepth, deferred2, Thrower, special)); 1939 } else { 1940 maxDepth++; 1941 then.call(returned, resolve(maxDepth, deferred2, Identity, special), resolve(maxDepth, deferred2, Thrower, special), resolve(maxDepth, deferred2, Identity, deferred2.notifyWith)); 1942 } 1943 } else { 1944 if (handler !== Identity) { 1945 that = void 0; 1946 args = [returned]; 1947 } 1948 (special || deferred2.resolveWith)(that, args); 1949 } 1950 }, process2 = special ? mightThrow : function() { 1951 try { 1952 mightThrow(); 1953 } catch (e) { 1954 if (jQuery2.Deferred.exceptionHook) { 1955 jQuery2.Deferred.exceptionHook(e, process2.stackTrace); 1956 } 1957 if (depth + 1 >= maxDepth) { 1958 if (handler !== Thrower) { 1959 that = void 0; 1960 args = [e]; 1961 } 1962 deferred2.rejectWith(that, args); 1963 } 1964 } 1965 }; 1966 if (depth) { 1967 process2(); 1968 } else { 1969 if (jQuery2.Deferred.getStackHook) { 1970 process2.stackTrace = jQuery2.Deferred.getStackHook(); 1971 } 1972 window2.setTimeout(process2); 1973 } 1974 }; 1975 } 1976 return jQuery2.Deferred(function(newDefer) { 1977 tuples[0][3].add(resolve(0, newDefer, isFunction2(onProgress) ? onProgress : Identity, newDefer.notifyWith)); 1978 tuples[1][3].add(resolve(0, newDefer, isFunction2(onFulfilled) ? onFulfilled : Identity)); 1979 tuples[2][3].add(resolve(0, newDefer, isFunction2(onRejected) ? onRejected : Thrower)); 1980 }).promise(); 1981 }, 1982 promise: function(obj) { 1983 return obj != null ? jQuery2.extend(obj, promise) : promise; 1984 } 1985 }, deferred = {}; 1986 jQuery2.each(tuples, function(i, tuple) { 1987 var list = tuple[2], stateString = tuple[5]; 1988 promise[tuple[1]] = list.add; 1989 if (stateString) { 1990 list.add(function() { 1991 state = stateString; 1992 }, tuples[3 - i][2].disable, tuples[3 - i][3].disable, tuples[0][2].lock, tuples[0][3].lock); 1993 } 1994 list.add(tuple[3].fire); 1995 deferred[tuple[0]] = function() { 1996 deferred[tuple[0] + "With"](this === deferred ? void 0 : this, arguments); 1997 return this; 1998 }; 1999 deferred[tuple[0] + "With"] = list.fireWith; 2000 }); 2001 promise.promise(deferred); 2002 if (func) { 2003 func.call(deferred, deferred); 2004 } 2005 return deferred; 2006 }, 2007 when: function(singleValue) { 2008 var remaining = arguments.length, i = remaining, resolveContexts = Array(i), resolveValues = slice.call(arguments), primary = jQuery2.Deferred(), updateFunc = function(i2) { 2009 return function(value) { 2010 resolveContexts[i2] = this; 2011 resolveValues[i2] = arguments.length > 1 ? slice.call(arguments) : value; 2012 if (!--remaining) { 2013 primary.resolveWith(resolveContexts, resolveValues); 2014 } 2015 }; 2016 }; 2017 if (remaining <= 1) { 2018 adoptValue(singleValue, primary.done(updateFunc(i)).resolve, primary.reject, !remaining); 2019 if (primary.state() === "pending" || isFunction2(resolveValues[i] && resolveValues[i].then)) { 2020 return primary.then(); 2021 } 2022 } 2023 while (i--) { 2024 adoptValue(resolveValues[i], updateFunc(i), primary.reject); 2025 } 2026 return primary.promise(); 2027 } 2028 }); 2029 var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; 2030 jQuery2.Deferred.exceptionHook = function(error, stack) { 2031 if (window2.console && window2.console.warn && error && rerrorNames.test(error.name)) { 2032 window2.console.warn("jQuery.Deferred exception: " + error.message, error.stack, stack); 2033 } 2034 }; 2035 jQuery2.readyException = function(error) { 2036 window2.setTimeout(function() { 2037 throw error; 2038 }); 2039 }; 2040 var readyList = jQuery2.Deferred(); 2041 jQuery2.fn.ready = function(fn2) { 2042 readyList.then(fn2).catch(function(error) { 2043 jQuery2.readyException(error); 2044 }); 2045 return this; 2046 }; 2047 jQuery2.extend({ 2048 isReady: false, 2049 readyWait: 1, 2050 ready: function(wait) { 2051 if (wait === true ? --jQuery2.readyWait : jQuery2.isReady) { 2052 return; 2053 } 2054 jQuery2.isReady = true; 2055 if (wait !== true && --jQuery2.readyWait > 0) { 2056 return; 2057 } 2058 readyList.resolveWith(document2, [jQuery2]); 2059 } 2060 }); 2061 jQuery2.ready.then = readyList.then; 2062 function completed() { 2063 document2.removeEventListener("DOMContentLoaded", completed); 2064 window2.removeEventListener("load", completed); 2065 jQuery2.ready(); 2066 } 2067 if (document2.readyState === "complete" || document2.readyState !== "loading" && !document2.documentElement.doScroll) { 2068 window2.setTimeout(jQuery2.ready); 2069 } else { 2070 document2.addEventListener("DOMContentLoaded", completed); 2071 window2.addEventListener("load", completed); 2072 } 2073 var access = function(elems, fn2, key, value, chainable, emptyGet, raw) { 2074 var i = 0, len = elems.length, bulk = key == null; 2075 if (toType(key) === "object") { 2076 chainable = true; 2077 for (i in key) { 2078 access(elems, fn2, i, key[i], true, emptyGet, raw); 2079 } 2080 } else if (value !== void 0) { 2081 chainable = true; 2082 if (!isFunction2(value)) { 2083 raw = true; 2084 } 2085 if (bulk) { 2086 if (raw) { 2087 fn2.call(elems, value); 2088 fn2 = null; 2089 } else { 2090 bulk = fn2; 2091 fn2 = function(elem, _key, value2) { 2092 return bulk.call(jQuery2(elem), value2); 2093 }; 2094 } 2095 } 2096 if (fn2) { 2097 for (; i < len; i++) { 2098 fn2(elems[i], key, raw ? value : value.call(elems[i], i, fn2(elems[i], key))); 2099 } 2100 } 2101 } 2102 if (chainable) { 2103 return elems; 2104 } 2105 if (bulk) { 2106 return fn2.call(elems); 2107 } 2108 return len ? fn2(elems[0], key) : emptyGet; 2109 }; 2110 var rmsPrefix = /^-ms-/, rdashAlpha = /-([a-z])/g; 2111 function fcamelCase(_all, letter) { 2112 return letter.toUpperCase(); 2113 } 2114 function camelCase(string) { 2115 return string.replace(rmsPrefix, "ms-").replace(rdashAlpha, fcamelCase); 2116 } 2117 var acceptData = function(owner) { 2118 return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType; 2119 }; 2120 function Data() { 2121 this.expando = jQuery2.expando + Data.uid++; 2122 } 2123 Data.uid = 1; 2124 Data.prototype = { 2125 cache: function(owner) { 2126 var value = owner[this.expando]; 2127 if (!value) { 2128 value = {}; 2129 if (acceptData(owner)) { 2130 if (owner.nodeType) { 2131 owner[this.expando] = value; 2132 } else { 2133 Object.defineProperty(owner, this.expando, { 2134 value, 2135 configurable: true 2136 }); 2137 } 2138 } 2139 } 2140 return value; 2141 }, 2142 set: function(owner, data, value) { 2143 var prop, cache = this.cache(owner); 2144 if (typeof data === "string") { 2145 cache[camelCase(data)] = value; 2146 } else { 2147 for (prop in data) { 2148 cache[camelCase(prop)] = data[prop]; 2149 } 2150 } 2151 return cache; 2152 }, 2153 get: function(owner, key) { 2154 return key === void 0 ? this.cache(owner) : owner[this.expando] && owner[this.expando][camelCase(key)]; 2155 }, 2156 access: function(owner, key, value) { 2157 if (key === void 0 || key && typeof key === "string" && value === void 0) { 2158 return this.get(owner, key); 2159 } 2160 this.set(owner, key, value); 2161 return value !== void 0 ? value : key; 2162 }, 2163 remove: function(owner, key) { 2164 var i, cache = owner[this.expando]; 2165 if (cache === void 0) { 2166 return; 2167 } 2168 if (key !== void 0) { 2169 if (Array.isArray(key)) { 2170 key = key.map(camelCase); 2171 } else { 2172 key = camelCase(key); 2173 key = key in cache ? [key] : key.match(rnothtmlwhite) || []; 2174 } 2175 i = key.length; 2176 while (i--) { 2177 delete cache[key[i]]; 2178 } 2179 } 2180 if (key === void 0 || jQuery2.isEmptyObject(cache)) { 2181 if (owner.nodeType) { 2182 owner[this.expando] = void 0; 2183 } else { 2184 delete owner[this.expando]; 2185 } 2186 } 2187 }, 2188 hasData: function(owner) { 2189 var cache = owner[this.expando]; 2190 return cache !== void 0 && !jQuery2.isEmptyObject(cache); 2191 } 2192 }; 2193 var dataPriv = new Data(); 2194 var dataUser = new Data(); 2195 var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, rmultiDash = /[A-Z]/g; 2196 function getData(data) { 2197 if (data === "true") { 2198 return true; 2199 } 2200 if (data === "false") { 2201 return false; 2202 } 2203 if (data === "null") { 2204 return null; 2205 } 2206 if (data === +data + "") { 2207 return +data; 2208 } 2209 if (rbrace.test(data)) { 2210 return JSON.parse(data); 2211 } 2212 return data; 2213 } 2214 function dataAttr(elem, key, data) { 2215 var name; 2216 if (data === void 0 && elem.nodeType === 1) { 2217 name = "data-" + key.replace(rmultiDash, "-$&").toLowerCase(); 2218 data = elem.getAttribute(name); 2219 if (typeof data === "string") { 2220 try { 2221 data = getData(data); 2222 } catch (e) { 2223 } 2224 dataUser.set(elem, key, data); 2225 } else { 2226 data = void 0; 2227 } 2228 } 2229 return data; 2230 } 2231 jQuery2.extend({ 2232 hasData: function(elem) { 2233 return dataUser.hasData(elem) || dataPriv.hasData(elem); 2234 }, 2235 data: function(elem, name, data) { 2236 return dataUser.access(elem, name, data); 2237 }, 2238 removeData: function(elem, name) { 2239 dataUser.remove(elem, name); 2240 }, 2241 _data: function(elem, name, data) { 2242 return dataPriv.access(elem, name, data); 2243 }, 2244 _removeData: function(elem, name) { 2245 dataPriv.remove(elem, name); 2246 } 2247 }); 2248 jQuery2.fn.extend({ 2249 data: function(key, value) { 2250 var i, name, data, elem = this[0], attrs = elem && elem.attributes; 2251 if (key === void 0) { 2252 if (this.length) { 2253 data = dataUser.get(elem); 2254 if (elem.nodeType === 1 && !dataPriv.get(elem, "hasDataAttrs")) { 2255 i = attrs.length; 2256 while (i--) { 2257 if (attrs[i]) { 2258 name = attrs[i].name; 2259 if (name.indexOf("data-") === 0) { 2260 name = camelCase(name.slice(5)); 2261 dataAttr(elem, name, data[name]); 2262 } 2263 } 2264 } 2265 dataPriv.set(elem, "hasDataAttrs", true); 2266 } 2267 } 2268 return data; 2269 } 2270 if (typeof key === "object") { 2271 return this.each(function() { 2272 dataUser.set(this, key); 2273 }); 2274 } 2275 return access(this, function(value2) { 2276 var data2; 2277 if (elem && value2 === void 0) { 2278 data2 = dataUser.get(elem, key); 2279 if (data2 !== void 0) { 2280 return data2; 2281 } 2282 data2 = dataAttr(elem, key); 2283 if (data2 !== void 0) { 2284 return data2; 2285 } 2286 return; 2287 } 2288 this.each(function() { 2289 dataUser.set(this, key, value2); 2290 }); 2291 }, null, value, arguments.length > 1, null, true); 2292 }, 2293 removeData: function(key) { 2294 return this.each(function() { 2295 dataUser.remove(this, key); 2296 }); 2297 } 2298 }); 2299 jQuery2.extend({ 2300 queue: function(elem, type, data) { 2301 var queue; 2302 if (elem) { 2303 type = (type || "fx") + "queue"; 2304 queue = dataPriv.get(elem, type); 2305 if (data) { 2306 if (!queue || Array.isArray(data)) { 2307 queue = dataPriv.access(elem, type, jQuery2.makeArray(data)); 2308 } else { 2309 queue.push(data); 2310 } 2311 } 2312 return queue || []; 2313 } 2314 }, 2315 dequeue: function(elem, type) { 2316 type = type || "fx"; 2317 var queue = jQuery2.queue(elem, type), startLength = queue.length, fn2 = queue.shift(), hooks = jQuery2._queueHooks(elem, type), next = function() { 2318 jQuery2.dequeue(elem, type); 2319 }; 2320 if (fn2 === "inprogress") { 2321 fn2 = queue.shift(); 2322 startLength--; 2323 } 2324 if (fn2) { 2325 if (type === "fx") { 2326 queue.unshift("inprogress"); 2327 } 2328 delete hooks.stop; 2329 fn2.call(elem, next, hooks); 2330 } 2331 if (!startLength && hooks) { 2332 hooks.empty.fire(); 2333 } 2334 }, 2335 _queueHooks: function(elem, type) { 2336 var key = type + "queueHooks"; 2337 return dataPriv.get(elem, key) || dataPriv.access(elem, key, { 2338 empty: jQuery2.Callbacks("once memory").add(function() { 2339 dataPriv.remove(elem, [type + "queue", key]); 2340 }) 2341 }); 2342 } 2343 }); 2344 jQuery2.fn.extend({ 2345 queue: function(type, data) { 2346 var setter = 2; 2347 if (typeof type !== "string") { 2348 data = type; 2349 type = "fx"; 2350 setter--; 2351 } 2352 if (arguments.length < setter) { 2353 return jQuery2.queue(this[0], type); 2354 } 2355 return data === void 0 ? this : this.each(function() { 2356 var queue = jQuery2.queue(this, type, data); 2357 jQuery2._queueHooks(this, type); 2358 if (type === "fx" && queue[0] !== "inprogress") { 2359 jQuery2.dequeue(this, type); 2360 } 2361 }); 2362 }, 2363 dequeue: function(type) { 2364 return this.each(function() { 2365 jQuery2.dequeue(this, type); 2366 }); 2367 }, 2368 clearQueue: function(type) { 2369 return this.queue(type || "fx", []); 2370 }, 2371 promise: function(type, obj) { 2372 var tmp, count = 1, defer = jQuery2.Deferred(), elements = this, i = this.length, resolve = function() { 2373 if (!--count) { 2374 defer.resolveWith(elements, [elements]); 2375 } 2376 }; 2377 if (typeof type !== "string") { 2378 obj = type; 2379 type = void 0; 2380 } 2381 type = type || "fx"; 2382 while (i--) { 2383 tmp = dataPriv.get(elements[i], type + "queueHooks"); 2384 if (tmp && tmp.empty) { 2385 count++; 2386 tmp.empty.add(resolve); 2387 } 2388 } 2389 resolve(); 2390 return defer.promise(obj); 2391 } 2392 }); 2393 var pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source; 2394 var rcssNum = new RegExp("^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i"); 2395 var cssExpand = ["Top", "Right", "Bottom", "Left"]; 2396 var documentElement = document2.documentElement; 2397 var isAttached = function(elem) { 2398 return jQuery2.contains(elem.ownerDocument, elem); 2399 }, composed = { composed: true }; 2400 if (documentElement.getRootNode) { 2401 isAttached = function(elem) { 2402 return jQuery2.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument; 2403 }; 2404 } 2405 var isHiddenWithinTree = function(elem, el) { 2406 elem = el || elem; 2407 return elem.style.display === "none" || elem.style.display === "" && isAttached(elem) && jQuery2.css(elem, "display") === "none"; 2408 }; 2409 function adjustCSS(elem, prop, valueParts, tween) { 2410 var adjusted, scale, maxIterations = 20, currentValue = tween ? function() { 2411 return tween.cur(); 2412 } : function() { 2413 return jQuery2.css(elem, prop, ""); 2414 }, 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)); 2415 if (initialInUnit && initialInUnit[3] !== unit) { 2416 initial = initial / 2; 2417 unit = unit || initialInUnit[3]; 2418 initialInUnit = +initial || 1; 2419 while (maxIterations--) { 2420 jQuery2.style(elem, prop, initialInUnit + unit); 2421 if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) { 2422 maxIterations = 0; 2423 } 2424 initialInUnit = initialInUnit / scale; 2425 } 2426 initialInUnit = initialInUnit * 2; 2427 jQuery2.style(elem, prop, initialInUnit + unit); 2428 valueParts = valueParts || []; 2429 } 2430 if (valueParts) { 2431 initialInUnit = +initialInUnit || +initial || 0; 2432 adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2]; 2433 if (tween) { 2434 tween.unit = unit; 2435 tween.start = initialInUnit; 2436 tween.end = adjusted; 2437 } 2438 } 2439 return adjusted; 2440 } 2441 var defaultDisplayMap = {}; 2442 function getDefaultDisplay(elem) { 2443 var temp, doc = elem.ownerDocument, nodeName2 = elem.nodeName, display = defaultDisplayMap[nodeName2]; 2444 if (display) { 2445 return display; 2446 } 2447 temp = doc.body.appendChild(doc.createElement(nodeName2)); 2448 display = jQuery2.css(temp, "display"); 2449 temp.parentNode.removeChild(temp); 2450 if (display === "none") { 2451 display = "block"; 2452 } 2453 defaultDisplayMap[nodeName2] = display; 2454 return display; 2455 } 2456 function showHide(elements, show) { 2457 var display, elem, values = [], index = 0, length = elements.length; 2458 for (; index < length; index++) { 2459 elem = elements[index]; 2460 if (!elem.style) { 2461 continue; 2462 } 2463 display = elem.style.display; 2464 if (show) { 2465 if (display === "none") { 2466 values[index] = dataPriv.get(elem, "display") || null; 2467 if (!values[index]) { 2468 elem.style.display = ""; 2469 } 2470 } 2471 if (elem.style.display === "" && isHiddenWithinTree(elem)) { 2472 values[index] = getDefaultDisplay(elem); 2473 } 2474 } else { 2475 if (display !== "none") { 2476 values[index] = "none"; 2477 dataPriv.set(elem, "display", display); 2478 } 2479 } 2480 } 2481 for (index = 0; index < length; index++) { 2482 if (values[index] != null) { 2483 elements[index].style.display = values[index]; 2484 } 2485 } 2486 return elements; 2487 } 2488 jQuery2.fn.extend({ 2489 show: function() { 2490 return showHide(this, true); 2491 }, 2492 hide: function() { 2493 return showHide(this); 2494 }, 2495 toggle: function(state) { 2496 if (typeof state === "boolean") { 2497 return state ? this.show() : this.hide(); 2498 } 2499 return this.each(function() { 2500 if (isHiddenWithinTree(this)) { 2501 jQuery2(this).show(); 2502 } else { 2503 jQuery2(this).hide(); 2504 } 2505 }); 2506 } 2507 }); 2508 var rcheckableType = /^(?:checkbox|radio)$/i; 2509 var rtagName = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i; 2510 var rscriptType = /^$|^module$|\/(?:java|ecma)script/i; 2511 (function() { 2512 var fragment = document2.createDocumentFragment(), div = fragment.appendChild(document2.createElement("div")), input = document2.createElement("input"); 2513 input.setAttribute("type", "radio"); 2514 input.setAttribute("checked", "checked"); 2515 input.setAttribute("name", "t"); 2516 div.appendChild(input); 2517 support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked; 2518 div.innerHTML = "<textarea>x</textarea>"; 2519 support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue; 2520 div.innerHTML = "<option></option>"; 2521 support.option = !!div.lastChild; 2522 })(); 2523 var wrapMap = { 2524 thead: [1, "<table>", "</table>"], 2525 col: [2, "<table><colgroup>", "</colgroup></table>"], 2526 tr: [2, "<table><tbody>", "</tbody></table>"], 2527 td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], 2528 _default: [0, "", ""] 2529 }; 2530 wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; 2531 wrapMap.th = wrapMap.td; 2532 if (!support.option) { 2533 wrapMap.optgroup = wrapMap.option = [1, "<select multiple='multiple'>", "</select>"]; 2534 } 2535 function getAll(context, tag) { 2536 var ret; 2537 if (typeof context.getElementsByTagName !== "undefined") { 2538 ret = context.getElementsByTagName(tag || "*"); 2539 } else if (typeof context.querySelectorAll !== "undefined") { 2540 ret = context.querySelectorAll(tag || "*"); 2541 } else { 2542 ret = []; 2543 } 2544 if (tag === void 0 || tag && nodeName(context, tag)) { 2545 return jQuery2.merge([context], ret); 2546 } 2547 return ret; 2548 } 2549 function setGlobalEval(elems, refElements) { 2550 var i = 0, l = elems.length; 2551 for (; i < l; i++) { 2552 dataPriv.set(elems[i], "globalEval", !refElements || dataPriv.get(refElements[i], "globalEval")); 2553 } 2554 } 2555 var rhtml = /<|&#?\w+;/; 2556 function buildFragment(elems, context, scripts, selection, ignored) { 2557 var elem, tmp, tag, wrap3, attached, j, fragment = context.createDocumentFragment(), nodes = [], i = 0, l = elems.length; 2558 for (; i < l; i++) { 2559 elem = elems[i]; 2560 if (elem || elem === 0) { 2561 if (toType(elem) === "object") { 2562 jQuery2.merge(nodes, elem.nodeType ? [elem] : elem); 2563 } else if (!rhtml.test(elem)) { 2564 nodes.push(context.createTextNode(elem)); 2565 } else { 2566 tmp = tmp || fragment.appendChild(context.createElement("div")); 2567 tag = (rtagName.exec(elem) || ["", ""])[1].toLowerCase(); 2568 wrap3 = wrapMap[tag] || wrapMap._default; 2569 tmp.innerHTML = wrap3[1] + jQuery2.htmlPrefilter(elem) + wrap3[2]; 2570 j = wrap3[0]; 2571 while (j--) { 2572 tmp = tmp.lastChild; 2573 } 2574 jQuery2.merge(nodes, tmp.childNodes); 2575 tmp = fragment.firstChild; 2576 tmp.textContent = ""; 2577 } 2578 } 2579 } 2580 fragment.textContent = ""; 2581 i = 0; 2582 while (elem = nodes[i++]) { 2583 if (selection && jQuery2.inArray(elem, selection) > -1) { 2584 if (ignored) { 2585 ignored.push(elem); 2586 } 2587 continue; 2588 } 2589 attached = isAttached(elem); 2590 tmp = getAll(fragment.appendChild(elem), "script"); 2591 if (attached) { 2592 setGlobalEval(tmp); 2593 } 2594 if (scripts) { 2595 j = 0; 2596 while (elem = tmp[j++]) { 2597 if (rscriptType.test(elem.type || "")) { 2598 scripts.push(elem); 2599 } 2600 } 2601 } 2602 } 2603 return fragment; 2604 } 2605 var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; 2606 function returnTrue() { 2607 return true; 2608 } 2609 function returnFalse() { 2610 return false; 2611 } 2612 function expectSync(elem, type) { 2613 return elem === safeActiveElement() === (type === "focus"); 2614 } 2615 function safeActiveElement() { 2616 try { 2617 return document2.activeElement; 2618 } catch (err) { 2619 } 2620 } 2621 function on(elem, types, selector3, data, fn2, one) { 2622 var origFn, type; 2623 if (typeof types === "object") { 2624 if (typeof selector3 !== "string") { 2625 data = data || selector3; 2626 selector3 = void 0; 2627 } 2628 for (type in types) { 2629 on(elem, type, selector3, data, types[type], one); 2630 } 2631 return elem; 2632 } 2633 if (data == null && fn2 == null) { 2634 fn2 = selector3; 2635 data = selector3 = void 0; 2636 } else if (fn2 == null) { 2637 if (typeof selector3 === "string") { 2638 fn2 = data; 2639 data = void 0; 2640 } else { 2641 fn2 = data; 2642 data = selector3; 2643 selector3 = void 0; 2644 } 2645 } 2646 if (fn2 === false) { 2647 fn2 = returnFalse; 2648 } else if (!fn2) { 2649 return elem; 2650 } 2651 if (one === 1) { 2652 origFn = fn2; 2653 fn2 = function(event) { 2654 jQuery2().off(event); 2655 return origFn.apply(this, arguments); 2656 }; 2657 fn2.guid = origFn.guid || (origFn.guid = jQuery2.guid++); 2658 } 2659 return elem.each(function() { 2660 jQuery2.event.add(this, types, fn2, data, selector3); 2661 }); 2662 } 2663 jQuery2.event = { 2664 global: {}, 2665 add: function(elem, types, handler, data, selector3) { 2666 var handleObjIn, eventHandle, tmp, events, t, handleObj, special, handlers, type, namespaces, origType, elemData = dataPriv.get(elem); 2667 if (!acceptData(elem)) { 2668 return; 2669 } 2670 if (handler.handler) { 2671 handleObjIn = handler; 2672 handler = handleObjIn.handler; 2673 selector3 = handleObjIn.selector; 2674 } 2675 if (selector3) { 2676 jQuery2.find.matchesSelector(documentElement, selector3); 2677 } 2678 if (!handler.guid) { 2679 handler.guid = jQuery2.guid++; 2680 } 2681 if (!(events = elemData.events)) { 2682 events = elemData.events = Object.create(null); 2683 } 2684 if (!(eventHandle = elemData.handle)) { 2685 eventHandle = elemData.handle = function(e) { 2686 return typeof jQuery2 !== "undefined" && jQuery2.event.triggered !== e.type ? jQuery2.event.dispatch.apply(elem, arguments) : void 0; 2687 }; 2688 } 2689 types = (types || "").match(rnothtmlwhite) || [""]; 2690 t = types.length; 2691 while (t--) { 2692 tmp = rtypenamespace.exec(types[t]) || []; 2693 type = origType = tmp[1]; 2694 namespaces = (tmp[2] || "").split(".").sort(); 2695 if (!type) { 2696 continue; 2697 } 2698 special = jQuery2.event.special[type] || {}; 2699 type = (selector3 ? special.delegateType : special.bindType) || type; 2700 special = jQuery2.event.special[type] || {}; 2701 handleObj = jQuery2.extend({ 2702 type, 2703 origType, 2704 data, 2705 handler, 2706 guid: handler.guid, 2707 selector: selector3, 2708 needsContext: selector3 && jQuery2.expr.match.needsContext.test(selector3), 2709 namespace: namespaces.join(".") 2710 }, handleObjIn); 2711 if (!(handlers = events[type])) { 2712 handlers = events[type] = []; 2713 handlers.delegateCount = 0; 2714 if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) { 2715 if (elem.addEventListener) { 2716 elem.addEventListener(type, eventHandle); 2717 } 2718 } 2719 } 2720 if (special.add) { 2721 special.add.call(elem, handleObj); 2722 if (!handleObj.handler.guid) { 2723 handleObj.handler.guid = handler.guid; 2724 } 2725 } 2726 if (selector3) { 2727 handlers.splice(handlers.delegateCount++, 0, handleObj); 2728 } else { 2729 handlers.push(handleObj); 2730 } 2731 jQuery2.event.global[type] = true; 2732 } 2733 }, 2734 remove: function(elem, types, handler, selector3, mappedTypes) { 2735 var j, origCount, tmp, events, t, handleObj, special, handlers, type, namespaces, origType, elemData = dataPriv.hasData(elem) && dataPriv.get(elem); 2736 if (!elemData || !(events = elemData.events)) { 2737 return; 2738 } 2739 types = (types || "").match(rnothtmlwhite) || [""]; 2740 t = types.length; 2741 while (t--) { 2742 tmp = rtypenamespace.exec(types[t]) || []; 2743 type = origType = tmp[1]; 2744 namespaces = (tmp[2] || "").split(".").sort(); 2745 if (!type) { 2746 for (type in events) { 2747 jQuery2.event.remove(elem, type + types[t], handler, selector3, true); 2748 } 2749 continue; 2750 } 2751 special = jQuery2.event.special[type] || {}; 2752 type = (selector3 ? special.delegateType : special.bindType) || type; 2753 handlers = events[type] || []; 2754 tmp = tmp[2] && new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)"); 2755 origCount = j = handlers.length; 2756 while (j--) { 2757 handleObj = handlers[j]; 2758 if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector3 || selector3 === handleObj.selector || selector3 === "**" && handleObj.selector)) { 2759 handlers.splice(j, 1); 2760 if (handleObj.selector) { 2761 handlers.delegateCount--; 2762 } 2763 if (special.remove) { 2764 special.remove.call(elem, handleObj); 2765 } 2766 } 2767 } 2768 if (origCount && !handlers.length) { 2769 if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) { 2770 jQuery2.removeEvent(elem, type, elemData.handle); 2771 } 2772 delete events[type]; 2773 } 2774 } 2775 if (jQuery2.isEmptyObject(events)) { 2776 dataPriv.remove(elem, "handle events"); 2777 } 2778 }, 2779 dispatch: function(nativeEvent) { 2780 var i, j, ret, matched, handleObj, handlerQueue, args = new Array(arguments.length), event = jQuery2.event.fix(nativeEvent), handlers = (dataPriv.get(this, "events") || Object.create(null))[event.type] || [], special = jQuery2.event.special[event.type] || {}; 2781 args[0] = event; 2782 for (i = 1; i < arguments.length; i++) { 2783 args[i] = arguments[i]; 2784 } 2785 event.delegateTarget = this; 2786 if (special.preDispatch && special.preDispatch.call(this, event) === false) { 2787 return; 2788 } 2789 handlerQueue = jQuery2.event.handlers.call(this, event, handlers); 2790 i = 0; 2791 while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) { 2792 event.currentTarget = matched.elem; 2793 j = 0; 2794 while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) { 2795 if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) { 2796 event.handleObj = handleObj; 2797 event.data = handleObj.data; 2798 ret = ((jQuery2.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args); 2799 if (ret !== void 0) { 2800 if ((event.result = ret) === false) { 2801 event.preventDefault(); 2802 event.stopPropagation(); 2803 } 2804 } 2805 } 2806 } 2807 } 2808 if (special.postDispatch) { 2809 special.postDispatch.call(this, event); 2810 } 2811 return event.result; 2812 }, 2813 handlers: function(event, handlers) { 2814 var i, handleObj, sel, matchedHandlers, matchedSelectors, handlerQueue = [], delegateCount = handlers.delegateCount, cur = event.target; 2815 if (delegateCount && cur.nodeType && !(event.type === "click" && event.button >= 1)) { 2816 for (; cur !== this; cur = cur.parentNode || this) { 2817 if (cur.nodeType === 1 && !(event.type === "click" && cur.disabled === true)) { 2818 matchedHandlers = []; 2819 matchedSelectors = {}; 2820 for (i = 0; i < delegateCount; i++) { 2821 handleObj = handlers[i]; 2822 sel = handleObj.selector + " "; 2823 if (matchedSelectors[sel] === void 0) { 2824 matchedSelectors[sel] = handleObj.needsContext ? jQuery2(sel, this).index(cur) > -1 : jQuery2.find(sel, this, null, [cur]).length; 2825 } 2826 if (matchedSelectors[sel]) { 2827 matchedHandlers.push(handleObj); 2828 } 2829 } 2830 if (matchedHandlers.length) { 2831 handlerQueue.push({ elem: cur, handlers: matchedHandlers }); 2832 } 2833 } 2834 } 2835 } 2836 cur = this; 2837 if (delegateCount < handlers.length) { 2838 handlerQueue.push({ elem: cur, handlers: handlers.slice(delegateCount) }); 2839 } 2840 return handlerQueue; 2841 }, 2842 addProp: function(name, hook) { 2843 Object.defineProperty(jQuery2.Event.prototype, name, { 2844 enumerable: true, 2845 configurable: true, 2846 get: isFunction2(hook) ? function() { 2847 if (this.originalEvent) { 2848 return hook(this.originalEvent); 2849 } 2850 } : function() { 2851 if (this.originalEvent) { 2852 return this.originalEvent[name]; 2853 } 2854 }, 2855 set: function(value) { 2856 Object.defineProperty(this, name, { 2857 enumerable: true, 2858 configurable: true, 2859 writable: true, 2860 value 2861 }); 2862 } 2863 }); 2864 }, 2865 fix: function(originalEvent) { 2866 return originalEvent[jQuery2.expando] ? originalEvent : new jQuery2.Event(originalEvent); 2867 }, 2868 special: { 2869 load: { 2870 noBubble: true 2871 }, 2872 click: { 2873 setup: function(data) { 2874 var el = this || data; 2875 if (rcheckableType.test(el.type) && el.click && nodeName(el, "input")) { 2876 leverageNative(el, "click", returnTrue); 2877 } 2878 return false; 2879 }, 2880 trigger: function(data) { 2881 var el = this || data; 2882 if (rcheckableType.test(el.type) && el.click && nodeName(el, "input")) { 2883 leverageNative(el, "click"); 2884 } 2885 return true; 2886 }, 2887 _default: function(event) { 2888 var target = event.target; 2889 return rcheckableType.test(target.type) && target.click && nodeName(target, "input") && dataPriv.get(target, "click") || nodeName(target, "a"); 2890 } 2891 }, 2892 beforeunload: { 2893 postDispatch: function(event) { 2894 if (event.result !== void 0 && event.originalEvent) { 2895 event.originalEvent.returnValue = event.result; 2896 } 2897 } 2898 } 2899 } 2900 }; 2901 function leverageNative(el, type, expectSync2) { 2902 if (!expectSync2) { 2903 if (dataPriv.get(el, type) === void 0) { 2904 jQuery2.event.add(el, type, returnTrue); 2905 } 2906 return; 2907 } 2908 dataPriv.set(el, type, false); 2909 jQuery2.event.add(el, type, { 2910 namespace: false, 2911 handler: function(event) { 2912 var notAsync, result, saved = dataPriv.get(this, type); 2913 if (event.isTrigger & 1 && this[type]) { 2914 if (!saved.length) { 2915 saved = slice.call(arguments); 2916 dataPriv.set(this, type, saved); 2917 notAsync = expectSync2(this, type); 2918 this[type](); 2919 result = dataPriv.get(this, type); 2920 if (saved !== result || notAsync) { 2921 dataPriv.set(this, type, false); 2922 } else { 2923 result = {}; 2924 } 2925 if (saved !== result) { 2926 event.stopImmediatePropagation(); 2927 event.preventDefault(); 2928 return result && result.value; 2929 } 2930 } else if ((jQuery2.event.special[type] || {}).delegateType) { 2931 event.stopPropagation(); 2932 } 2933 } else if (saved.length) { 2934 dataPriv.set(this, type, { 2935 value: jQuery2.event.trigger(jQuery2.extend(saved[0], jQuery2.Event.prototype), saved.slice(1), this) 2936 }); 2937 event.stopImmediatePropagation(); 2938 } 2939 } 2940 }); 2941 } 2942 jQuery2.removeEvent = function(elem, type, handle) { 2943 if (elem.removeEventListener) { 2944 elem.removeEventListener(type, handle); 2945 } 2946 }; 2947 jQuery2.Event = function(src, props) { 2948 if (!(this instanceof jQuery2.Event)) { 2949 return new jQuery2.Event(src, props); 2950 } 2951 if (src && src.type) { 2952 this.originalEvent = src; 2953 this.type = src.type; 2954 this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === void 0 && src.returnValue === false ? returnTrue : returnFalse; 2955 this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target; 2956 this.currentTarget = src.currentTarget; 2957 this.relatedTarget = src.relatedTarget; 2958 } else { 2959 this.type = src; 2960 } 2961 if (props) { 2962 jQuery2.extend(this, props); 2963 } 2964 this.timeStamp = src && src.timeStamp || Date.now(); 2965 this[jQuery2.expando] = true; 2966 }; 2967 jQuery2.Event.prototype = { 2968 constructor: jQuery2.Event, 2969 isDefaultPrevented: returnFalse, 2970 isPropagationStopped: returnFalse, 2971 isImmediatePropagationStopped: returnFalse, 2972 isSimulated: false, 2973 preventDefault: function() { 2974 var e = this.originalEvent; 2975 this.isDefaultPrevented = returnTrue; 2976 if (e && !this.isSimulated) { 2977 e.preventDefault(); 2978 } 2979 }, 2980 stopPropagation: function() { 2981 var e = this.originalEvent; 2982 this.isPropagationStopped = returnTrue; 2983 if (e && !this.isSimulated) { 2984 e.stopPropagation(); 2985 } 2986 }, 2987 stopImmediatePropagation: function() { 2988 var e = this.originalEvent; 2989 this.isImmediatePropagationStopped = returnTrue; 2990 if (e && !this.isSimulated) { 2991 e.stopImmediatePropagation(); 2992 } 2993 this.stopPropagation(); 2994 } 2995 }; 2996 jQuery2.each({ 2997 altKey: true, 2998 bubbles: true, 2999 cancelable: true, 3000 changedTouches: true, 3001 ctrlKey: true, 3002 detail: true, 3003 eventPhase: true, 3004 metaKey: true, 3005 pageX: true, 3006 pageY: true, 3007 shiftKey: true, 3008 view: true, 3009 "char": true, 3010 code: true, 3011 charCode: true, 3012 key: true, 3013 keyCode: true, 3014 button: true, 3015 buttons: true, 3016 clientX: true, 3017 clientY: true, 3018 offsetX: true, 3019 offsetY: true, 3020 pointerId: true, 3021 pointerType: true, 3022 screenX: true, 3023 screenY: true, 3024 targetTouches: true, 3025 toElement: true, 3026 touches: true, 3027 which: true 3028 }, jQuery2.event.addProp); 3029 jQuery2.each({ focus: "focusin", blur: "focusout" }, function(type, delegateType) { 3030 jQuery2.event.special[type] = { 3031 setup: function() { 3032 leverageNative(this, type, expectSync); 3033 return false; 3034 }, 3035 trigger: function() { 3036 leverageNative(this, type); 3037 return true; 3038 }, 3039 _default: function() { 3040 return true; 3041 }, 3042 delegateType 3043 }; 3044 }); 3045 jQuery2.each({ 3046 mouseenter: "mouseover", 3047 mouseleave: "mouseout", 3048 pointerenter: "pointerover", 3049 pointerleave: "pointerout" 3050 }, function(orig, fix) { 3051 jQuery2.event.special[orig] = { 3052 delegateType: fix, 3053 bindType: fix, 3054 handle: function(event) { 3055 var ret, target = this, related = event.relatedTarget, handleObj = event.handleObj; 3056 if (!related || related !== target && !jQuery2.contains(target, related)) { 3057 event.type = handleObj.origType; 3058 ret = handleObj.handler.apply(this, arguments); 3059 event.type = fix; 3060 } 3061 return ret; 3062 } 3063 }; 3064 }); 3065 jQuery2.fn.extend({ 3066 on: function(types, selector3, data, fn2) { 3067 return on(this, types, selector3, data, fn2); 3068 }, 3069 one: function(types, selector3, data, fn2) { 3070 return on(this, types, selector3, data, fn2, 1); 3071 }, 3072 off: function(types, selector3, fn2) { 3073 var handleObj, type; 3074 if (types && types.preventDefault && types.handleObj) { 3075 handleObj = types.handleObj; 3076 jQuery2(types.delegateTarget).off(handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler); 3077 return this; 3078 } 3079 if (typeof types === "object") { 3080 for (type in types) { 3081 this.off(type, selector3, types[type]); 3082 } 3083 return this; 3084 } 3085 if (selector3 === false || typeof selector3 === "function") { 3086 fn2 = selector3; 3087 selector3 = void 0; 3088 } 3089 if (fn2 === false) { 3090 fn2 = returnFalse; 3091 } 3092 return this.each(function() { 3093 jQuery2.event.remove(this, types, fn2, selector3); 3094 }); 3095 } 3096 }); 3097 var rnoInnerhtml = /<script|<style|<link/i, rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g; 3098 function manipulationTarget(elem, content) { 3099 if (nodeName(elem, "table") && nodeName(content.nodeType !== 11 ? content : content.firstChild, "tr")) { 3100 return jQuery2(elem).children("tbody")[0] || elem; 3101 } 3102 return elem; 3103 } 3104 function disableScript(elem) { 3105 elem.type = (elem.getAttribute("type") !== null) + "/" + elem.type; 3106 return elem; 3107 } 3108 function restoreScript(elem) { 3109 if ((elem.type || "").slice(0, 5) === "true/") { 3110 elem.type = elem.type.slice(5); 3111 } else { 3112 elem.removeAttribute("type"); 3113 } 3114 return elem; 3115 } 3116 function cloneCopyEvent(src, dest) { 3117 var i, l, type, pdataOld, udataOld, udataCur, events; 3118 if (dest.nodeType !== 1) { 3119 return; 3120 } 3121 if (dataPriv.hasData(src)) { 3122 pdataOld = dataPriv.get(src); 3123 events = pdataOld.events; 3124 if (events) { 3125 dataPriv.remove(dest, "handle events"); 3126 for (type in events) { 3127 for (i = 0, l = events[type].length; i < l; i++) { 3128 jQuery2.event.add(dest, type, events[type][i]); 3129 } 3130 } 3131 } 3132 } 3133 if (dataUser.hasData(src)) { 3134 udataOld = dataUser.access(src); 3135 udataCur = jQuery2.extend({}, udataOld); 3136 dataUser.set(dest, udataCur); 3137 } 3138 } 3139 function fixInput(src, dest) { 3140 var nodeName2 = dest.nodeName.toLowerCase(); 3141 if (nodeName2 === "input" && rcheckableType.test(src.type)) { 3142 dest.checked = src.checked; 3143 } else if (nodeName2 === "input" || nodeName2 === "textarea") { 3144 dest.defaultValue = src.defaultValue; 3145 } 3146 } 3147 function domManip(collection, args, callback, ignored) { 3148 args = flat(args); 3149 var fragment, first, scripts, hasScripts, node, doc, i = 0, l = collection.length, iNoClone = l - 1, value = args[0], valueIsFunction = isFunction2(value); 3150 if (valueIsFunction || l > 1 && typeof value === "string" && !support.checkClone && rchecked.test(value)) { 3151 return collection.each(function(index) { 3152 var self2 = collection.eq(index); 3153 if (valueIsFunction) { 3154 args[0] = value.call(this, index, self2.html()); 3155 } 3156 domManip(self2, args, callback, ignored); 3157 }); 3158 } 3159 if (l) { 3160 fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored); 3161 first = fragment.firstChild; 3162 if (fragment.childNodes.length === 1) { 3163 fragment = first; 3164 } 3165 if (first || ignored) { 3166 scripts = jQuery2.map(getAll(fragment, "script"), disableScript); 3167 hasScripts = scripts.length; 3168 for (; i < l; i++) { 3169 node = fragment; 3170 if (i !== iNoClone) { 3171 node = jQuery2.clone(node, true, true); 3172 if (hasScripts) { 3173 jQuery2.merge(scripts, getAll(node, "script")); 3174 } 3175 } 3176 callback.call(collection[i], node, i); 3177 } 3178 if (hasScripts) { 3179 doc = scripts[scripts.length - 1].ownerDocument; 3180 jQuery2.map(scripts, restoreScript); 3181 for (i = 0; i < hasScripts; i++) { 3182 node = scripts[i]; 3183 if (rscriptType.test(node.type || "") && !dataPriv.access(node, "globalEval") && jQuery2.contains(doc, node)) { 3184 if (node.src && (node.type || "").toLowerCase() !== "module") { 3185 if (jQuery2._evalUrl && !node.noModule) { 3186 jQuery2._evalUrl(node.src, { 3187 nonce: node.nonce || node.getAttribute("nonce") 3188 }, doc); 3189 } 3190 } else { 3191 DOMEval(node.textContent.replace(rcleanScript, ""), node, doc); 3192 } 3193 } 3194 } 3195 } 3196 } 3197 } 3198 return collection; 3199 } 3200 function remove(elem, selector3, keepData) { 3201 var node, nodes = selector3 ? jQuery2.filter(selector3, elem) : elem, i = 0; 3202 for (; (node = nodes[i]) != null; i++) { 3203 if (!keepData && node.nodeType === 1) { 3204 jQuery2.cleanData(getAll(node)); 3205 } 3206 if (node.parentNode) { 3207 if (keepData && isAttached(node)) { 3208 setGlobalEval(getAll(node, "script")); 3209 } 3210 node.parentNode.removeChild(node); 3211 } 3212 } 3213 return elem; 3214 } 3215 jQuery2.extend({ 3216 htmlPrefilter: function(html) { 3217 return html; 3218 }, 3219 clone: function(elem, dataAndEvents, deepDataAndEvents) { 3220 var i, l, srcElements, destElements, clone = elem.cloneNode(true), inPage = isAttached(elem); 3221 if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery2.isXMLDoc(elem)) { 3222 destElements = getAll(clone); 3223 srcElements = getAll(elem); 3224 for (i = 0, l = srcElements.length; i < l; i++) { 3225 fixInput(srcElements[i], destElements[i]); 3226 } 3227 } 3228 if (dataAndEvents) { 3229 if (deepDataAndEvents) { 3230 srcElements = srcElements || getAll(elem); 3231 destElements = destElements || getAll(clone); 3232 for (i = 0, l = srcElements.length; i < l; i++) { 3233 cloneCopyEvent(srcElements[i], destElements[i]); 3234 } 3235 } else { 3236 cloneCopyEvent(elem, clone); 3237 } 3238 } 3239 destElements = getAll(clone, "script"); 3240 if (destElements.length > 0) { 3241 setGlobalEval(destElements, !inPage && getAll(elem, "script")); 3242 } 3243 return clone; 3244 }, 3245 cleanData: function(elems) { 3246 var data, elem, type, special = jQuery2.event.special, i = 0; 3247 for (; (elem = elems[i]) !== void 0; i++) { 3248 if (acceptData(elem)) { 3249 if (data = elem[dataPriv.expando]) { 3250 if (data.events) { 3251 for (type in data.events) { 3252 if (special[type]) { 3253 jQuery2.event.remove(elem, type); 3254 } else { 3255 jQuery2.removeEvent(elem, type, data.handle); 3256 } 3257 } 3258 } 3259 elem[dataPriv.expando] = void 0; 3260 } 3261 if (elem[dataUser.expando]) { 3262 elem[dataUser.expando] = void 0; 3263 } 3264 } 3265 } 3266 } 3267 }); 3268 jQuery2.fn.extend({ 3269 detach: function(selector3) { 3270 return remove(this, selector3, true); 3271 }, 3272 remove: function(selector3) { 3273 return remove(this, selector3); 3274 }, 3275 text: function(value) { 3276 return access(this, function(value2) { 3277 return value2 === void 0 ? jQuery2.text(this) : this.empty().each(function() { 3278 if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { 3279 this.textContent = value2; 3280 } 3281 }); 3282 }, null, value, arguments.length); 3283 }, 3284 append: function() { 3285 return domManip(this, arguments, function(elem) { 3286 if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { 3287 var target = manipulationTarget(this, elem); 3288 target.appendChild(elem); 3289 } 3290 }); 3291 }, 3292 prepend: function() { 3293 return domManip(this, arguments, function(elem) { 3294 if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { 3295 var target = manipulationTarget(this, elem); 3296 target.insertBefore(elem, target.firstChild); 3297 } 3298 }); 3299 }, 3300 before: function() { 3301 return domManip(this, arguments, function(elem) { 3302 if (this.parentNode) { 3303 this.parentNode.insertBefore(elem, this); 3304 } 3305 }); 3306 }, 3307 after: function() { 3308 return domManip(this, arguments, function(elem) { 3309 if (this.parentNode) { 3310 this.parentNode.insertBefore(elem, this.nextSibling); 3311 } 3312 }); 3313 }, 3314 empty: function() { 3315 var elem, i = 0; 3316 for (; (elem = this[i]) != null; i++) { 3317 if (elem.nodeType === 1) { 3318 jQuery2.cleanData(getAll(elem, false)); 3319 elem.textContent = ""; 3320 } 3321 } 3322 return this; 3323 }, 3324 clone: function(dataAndEvents, deepDataAndEvents) { 3325 dataAndEvents = dataAndEvents == null ? false : dataAndEvents; 3326 deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; 3327 return this.map(function() { 3328 return jQuery2.clone(this, dataAndEvents, deepDataAndEvents); 3329 }); 3330 }, 3331 html: function(value) { 3332 return access(this, function(value2) { 3333 var elem = this[0] || {}, i = 0, l = this.length; 3334 if (value2 === void 0 && elem.nodeType === 1) { 3335 return elem.innerHTML; 3336 } 3337 if (typeof value2 === "string" && !rnoInnerhtml.test(value2) && !wrapMap[(rtagName.exec(value2) || ["", ""])[1].toLowerCase()]) { 3338 value2 = jQuery2.htmlPrefilter(value2); 3339 try { 3340 for (; i < l; i++) { 3341 elem = this[i] || {}; 3342 if (elem.nodeType === 1) { 3343 jQuery2.cleanData(getAll(elem, false)); 3344 elem.innerHTML = value2; 3345 } 3346 } 3347 elem = 0; 3348 } catch (e) { 3349 } 3350 } 3351 if (elem) { 3352 this.empty().append(value2); 3353 } 3354 }, null, value, arguments.length); 3355 }, 3356 replaceWith: function() { 3357 var ignored = []; 3358 return domManip(this, arguments, function(elem) { 3359 var parent = this.parentNode; 3360 if (jQuery2.inArray(this, ignored) < 0) { 3361 jQuery2.cleanData(getAll(this)); 3362 if (parent) { 3363 parent.replaceChild(elem, this); 3364 } 3365 } 3366 }, ignored); 3367 } 3368 }); 3369 jQuery2.each({ 3370 appendTo: "append", 3371 prependTo: "prepend", 3372 insertBefore: "before", 3373 insertAfter: "after", 3374 replaceAll: "replaceWith" 3375 }, function(name, original) { 3376 jQuery2.fn[name] = function(selector3) { 3377 var elems, ret = [], insert = jQuery2(selector3), last = insert.length - 1, i = 0; 3378 for (; i <= last; i++) { 3379 elems = i === last ? this : this.clone(true); 3380 jQuery2(insert[i])[original](elems); 3381 push.apply(ret, elems.get()); 3382 } 3383 return this.pushStack(ret); 3384 }; 3385 }); 3386 var rnumnonpx = new RegExp("^(" + pnum + ")(?!px)[a-z%]+$", "i"); 3387 var getStyles = function(elem) { 3388 var view = elem.ownerDocument.defaultView; 3389 if (!view || !view.opener) { 3390 view = window2; 3391 } 3392 return view.getComputedStyle(elem); 3393 }; 3394 var swap = function(elem, options, callback) { 3395 var ret, name, old = {}; 3396 for (name in options) { 3397 old[name] = elem.style[name]; 3398 elem.style[name] = options[name]; 3399 } 3400 ret = callback.call(elem); 3401 for (name in options) { 3402 elem.style[name] = old[name]; 3403 } 3404 return ret; 3405 }; 3406 var rboxStyle = new RegExp(cssExpand.join("|"), "i"); 3407 (function() { 3408 function computeStyleTests() { 3409 if (!div) { 3410 return; 3411 } 3412 container.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0"; 3413 div.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%"; 3414 documentElement.appendChild(container).appendChild(div); 3415 var divStyle = window2.getComputedStyle(div); 3416 pixelPositionVal = divStyle.top !== "1%"; 3417 reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12; 3418 div.style.right = "60%"; 3419 pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36; 3420 boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36; 3421 div.style.position = "absolute"; 3422 scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12; 3423 documentElement.removeChild(container); 3424 div = null; 3425 } 3426 function roundPixelMeasures(measure) { 3427 return Math.round(parseFloat(measure)); 3428 } 3429 var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, reliableTrDimensionsVal, reliableMarginLeftVal, container = document2.createElement("div"), div = document2.createElement("div"); 3430 if (!div.style) { 3431 return; 3432 } 3433 div.style.backgroundClip = "content-box"; 3434 div.cloneNode(true).style.backgroundClip = ""; 3435 support.clearCloneStyle = div.style.backgroundClip === "content-box"; 3436 jQuery2.extend(support, { 3437 boxSizingReliable: function() { 3438 computeStyleTests(); 3439 return boxSizingReliableVal; 3440 }, 3441 pixelBoxStyles: function() { 3442 computeStyleTests(); 3443 return pixelBoxStylesVal; 3444 }, 3445 pixelPosition: function() { 3446 computeStyleTests(); 3447 return pixelPositionVal; 3448 }, 3449 reliableMarginLeft: function() { 3450 computeStyleTests(); 3451 return reliableMarginLeftVal; 3452 }, 3453 scrollboxSize: function() { 3454 computeStyleTests(); 3455 return scrollboxSizeVal; 3456 }, 3457 reliableTrDimensions: function() { 3458 var table, tr, trChild, trStyle; 3459 if (reliableTrDimensionsVal == null) { 3460 table = document2.createElement("table"); 3461 tr = document2.createElement("tr"); 3462 trChild = document2.createElement("div"); 3463 table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; 3464 tr.style.cssText = "border:1px solid"; 3465 tr.style.height = "1px"; 3466 trChild.style.height = "9px"; 3467 trChild.style.display = "block"; 3468 documentElement.appendChild(table).appendChild(tr).appendChild(trChild); 3469 trStyle = window2.getComputedStyle(tr); 3470 reliableTrDimensionsVal = parseInt(trStyle.height, 10) + parseInt(trStyle.borderTopWidth, 10) + parseInt(trStyle.borderBottomWidth, 10) === tr.offsetHeight; 3471 documentElement.removeChild(table); 3472 } 3473 return reliableTrDimensionsVal; 3474 } 3475 }); 3476 })(); 3477 function curCSS(elem, name, computed) { 3478 var width, minWidth, maxWidth, ret, style = elem.style; 3479 computed = computed || getStyles(elem); 3480 if (computed) { 3481 ret = computed.getPropertyValue(name) || computed[name]; 3482 if (ret === "" && !isAttached(elem)) { 3483 ret = jQuery2.style(elem, name); 3484 } 3485 if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) { 3486 width = style.width; 3487 minWidth = style.minWidth; 3488 maxWidth = style.maxWidth; 3489 style.minWidth = style.maxWidth = style.width = ret; 3490 ret = computed.width; 3491 style.width = width; 3492 style.minWidth = minWidth; 3493 style.maxWidth = maxWidth; 3494 } 3495 } 3496 return ret !== void 0 ? ret + "" : ret; 3497 } 3498 function addGetHookIf(conditionFn, hookFn) { 3499 return { 3500 get: function() { 3501 if (conditionFn()) { 3502 delete this.get; 3503 return; 3504 } 3505 return (this.get = hookFn).apply(this, arguments); 3506 } 3507 }; 3508 } 3509 var cssPrefixes = ["Webkit", "Moz", "ms"], emptyStyle = document2.createElement("div").style, vendorProps = {}; 3510 function vendorPropName(name) { 3511 var capName = name[0].toUpperCase() + name.slice(1), i = cssPrefixes.length; 3512 while (i--) { 3513 name = cssPrefixes[i] + capName; 3514 if (name in emptyStyle) { 3515 return name; 3516 } 3517 } 3518 } 3519 function finalPropName(name) { 3520 var final = jQuery2.cssProps[name] || vendorProps[name]; 3521 if (final) { 3522 return final; 3523 } 3524 if (name in emptyStyle) { 3525 return name; 3526 } 3527 return vendorProps[name] = vendorPropName(name) || name; 3528 } 3529 var rdisplayswap = /^(none|table(?!-c[ea]).+)/, rcustomProp = /^--/, cssShow = { position: "absolute", visibility: "hidden", display: "block" }, cssNormalTransform = { 3530 letterSpacing: "0", 3531 fontWeight: "400" 3532 }; 3533 function setPositiveNumber(_elem, value, subtract) { 3534 var matches = rcssNum.exec(value); 3535 return matches ? Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || "px") : value; 3536 } 3537 function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) { 3538 var i = dimension === "width" ? 1 : 0, extra = 0, delta = 0; 3539 if (box === (isBorderBox ? "border" : "content")) { 3540 return 0; 3541 } 3542 for (; i < 4; i += 2) { 3543 if (box === "margin") { 3544 delta += jQuery2.css(elem, box + cssExpand[i], true, styles); 3545 } 3546 if (!isBorderBox) { 3547 delta += jQuery2.css(elem, "padding" + cssExpand[i], true, styles); 3548 if (box !== "padding") { 3549 delta += jQuery2.css(elem, "border" + cssExpand[i] + "Width", true, styles); 3550 } else { 3551 extra += jQuery2.css(elem, "border" + cssExpand[i] + "Width", true, styles); 3552 } 3553 } else { 3554 if (box === "content") { 3555 delta -= jQuery2.css(elem, "padding" + cssExpand[i], true, styles); 3556 } 3557 if (box !== "margin") { 3558 delta -= jQuery2.css(elem, "border" + cssExpand[i] + "Width", true, styles); 3559 } 3560 } 3561 } 3562 if (!isBorderBox && computedVal >= 0) { 3563 delta += Math.max(0, Math.ceil(elem["offset" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5)) || 0; 3564 } 3565 return delta; 3566 } 3567 function getWidthOrHeight(elem, dimension, extra) { 3568 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); 3569 if (rnumnonpx.test(val)) { 3570 if (!extra) { 3571 return val; 3572 } 3573 val = "auto"; 3574 } 3575 if ((!support.boxSizingReliable() && isBorderBox || !support.reliableTrDimensions() && nodeName(elem, "tr") || val === "auto" || !parseFloat(val) && jQuery2.css(elem, "display", false, styles) === "inline") && elem.getClientRects().length) { 3576 isBorderBox = jQuery2.css(elem, "boxSizing", false, styles) === "border-box"; 3577 valueIsBorderBox = offsetProp in elem; 3578 if (valueIsBorderBox) { 3579 val = elem[offsetProp]; 3580 } 3581 } 3582 val = parseFloat(val) || 0; 3583 return val + boxModelAdjustment(elem, dimension, extra || (isBorderBox ? "border" : "content"), valueIsBorderBox, styles, val) + "px"; 3584 } 3585 jQuery2.extend({ 3586 cssHooks: { 3587 opacity: { 3588 get: function(elem, computed) { 3589 if (computed) { 3590 var ret = curCSS(elem, "opacity"); 3591 return ret === "" ? "1" : ret; 3592 } 3593 } 3594 } 3595 }, 3596 cssNumber: { 3597 "animationIterationCount": true, 3598 "columnCount": true, 3599 "fillOpacity": true, 3600 "flexGrow": true, 3601 "flexShrink": true, 3602 "fontWeight": true, 3603 "gridArea": true, 3604 "gridColumn": true, 3605 "gridColumnEnd": true, 3606 "gridColumnStart": true, 3607 "gridRow": true, 3608 "gridRowEnd": true, 3609 "gridRowStart": true, 3610 "lineHeight": true, 3611 "opacity": true, 3612 "order": true, 3613 "orphans": true, 3614 "widows": true, 3615 "zIndex": true, 3616 "zoom": true 3617 }, 3618 cssProps: {}, 3619 style: function(elem, name, value, extra) { 3620 if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) { 3621 return; 3622 } 3623 var ret, type, hooks, origName = camelCase(name), isCustomProp = rcustomProp.test(name), style = elem.style; 3624 if (!isCustomProp) { 3625 name = finalPropName(origName); 3626 } 3627 hooks = jQuery2.cssHooks[name] || jQuery2.cssHooks[origName]; 3628 if (value !== void 0) { 3629 type = typeof value; 3630 if (type === "string" && (ret = rcssNum.exec(value)) && ret[1]) { 3631 value = adjustCSS(elem, name, ret); 3632 type = "number"; 3633 } 3634 if (value == null || value !== value) { 3635 return; 3636 } 3637 if (type === "number" && !isCustomProp) { 3638 value += ret && ret[3] || (jQuery2.cssNumber[origName] ? "" : "px"); 3639 } 3640 if (!support.clearCloneStyle && value === "" && name.indexOf("background") === 0) { 3641 style[name] = "inherit"; 3642 } 3643 if (!hooks || !("set" in hooks) || (value = hooks.set(elem, value, extra)) !== void 0) { 3644 if (isCustomProp) { 3645 style.setProperty(name, value); 3646 } else { 3647 style[name] = value; 3648 } 3649 } 3650 } else { 3651 if (hooks && "get" in hooks && (ret = hooks.get(elem, false, extra)) !== void 0) { 3652 return ret; 3653 } 3654 return style[name]; 3655 } 3656 }, 3657 css: function(elem, name, extra, styles) { 3658 var val, num, hooks, origName = camelCase(name), isCustomProp = rcustomProp.test(name); 3659 if (!isCustomProp) { 3660 name = finalPropName(origName); 3661 } 3662 hooks = jQuery2.cssHooks[name] || jQuery2.cssHooks[origName]; 3663 if (hooks && "get" in hooks) { 3664 val = hooks.get(elem, true, extra); 3665 } 3666 if (val === void 0) { 3667 val = curCSS(elem, name, styles); 3668 } 3669 if (val === "normal" && name in cssNormalTransform) { 3670 val = cssNormalTransform[name]; 3671 } 3672 if (extra === "" || extra) { 3673 num = parseFloat(val); 3674 return extra === true || isFinite(num) ? num || 0 : val; 3675 } 3676 return val; 3677 } 3678 }); 3679 jQuery2.each(["height", "width"], function(_i2, dimension) { 3680 jQuery2.cssHooks[dimension] = { 3681 get: function(elem, computed, extra) { 3682 if (computed) { 3683 return rdisplayswap.test(jQuery2.css(elem, "display")) && (!elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function() { 3684 return getWidthOrHeight(elem, dimension, extra); 3685 }) : getWidthOrHeight(elem, dimension, extra); 3686 } 3687 }, 3688 set: function(elem, value, extra) { 3689 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(elem, dimension, extra, isBorderBox, styles) : 0; 3690 if (isBorderBox && scrollboxSizeBuggy) { 3691 subtract -= Math.ceil(elem["offset" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, "border", false, styles) - 0.5); 3692 } 3693 if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || "px") !== "px") { 3694 elem.style[dimension] = value; 3695 value = jQuery2.css(elem, dimension); 3696 } 3697 return setPositiveNumber(elem, value, subtract); 3698 } 3699 }; 3700 }); 3701 jQuery2.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft, function(elem, computed) { 3702 if (computed) { 3703 return (parseFloat(curCSS(elem, "marginLeft")) || elem.getBoundingClientRect().left - swap(elem, { marginLeft: 0 }, function() { 3704 return elem.getBoundingClientRect().left; 3705 })) + "px"; 3706 } 3707 }); 3708 jQuery2.each({ 3709 margin: "", 3710 padding: "", 3711 border: "Width" 3712 }, function(prefix, suffix) { 3713 jQuery2.cssHooks[prefix + suffix] = { 3714 expand: function(value) { 3715 var i = 0, expanded = {}, parts = typeof value === "string" ? value.split(" ") : [value]; 3716 for (; i < 4; i++) { 3717 expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0]; 3718 } 3719 return expanded; 3720 } 3721 }; 3722 if (prefix !== "margin") { 3723 jQuery2.cssHooks[prefix + suffix].set = setPositiveNumber; 3724 } 3725 }); 3726 jQuery2.fn.extend({ 3727 css: function(name, value) { 3728 return access(this, function(elem, name2, value2) { 3729 var styles, len, map = {}, i = 0; 3730 if (Array.isArray(name2)) { 3731 styles = getStyles(elem); 3732 len = name2.length; 3733 for (; i < len; i++) { 3734 map[name2[i]] = jQuery2.css(elem, name2[i], false, styles); 3735 } 3736 return map; 3737 } 3738 return value2 !== void 0 ? jQuery2.style(elem, name2, value2) : jQuery2.css(elem, name2); 3739 }, name, value, arguments.length > 1); 3740 } 3741 }); 3742 function Tween2(elem, options, prop, end2, easing) { 3743 return new Tween2.prototype.init(elem, options, prop, end2, easing); 3744 } 3745 jQuery2.Tween = Tween2; 3746 Tween2.prototype = { 3747 constructor: Tween2, 3748 init: function(elem, options, prop, end2, easing, unit) { 3749 this.elem = elem; 3750 this.prop = prop; 3751 this.easing = easing || jQuery2.easing._default; 3752 this.options = options; 3753 this.start = this.now = this.cur(); 3754 this.end = end2; 3755 this.unit = unit || (jQuery2.cssNumber[prop] ? "" : "px"); 3756 }, 3757 cur: function() { 3758 var hooks = Tween2.propHooks[this.prop]; 3759 return hooks && hooks.get ? hooks.get(this) : Tween2.propHooks._default.get(this); 3760 }, 3761 run: function(percent) { 3762 var eased, hooks = Tween2.propHooks[this.prop]; 3763 if (this.options.duration) { 3764 this.pos = eased = jQuery2.easing[this.easing](percent, this.options.duration * percent, 0, 1, this.options.duration); 3765 } else { 3766 this.pos = eased = percent; 3767 } 3768 this.now = (this.end - this.start) * eased + this.start; 3769 if (this.options.step) { 3770 this.options.step.call(this.elem, this.now, this); 3771 } 3772 if (hooks && hooks.set) { 3773 hooks.set(this); 3774 } else { 3775 Tween2.propHooks._default.set(this); 3776 } 3777 return this; 3778 } 3779 }; 3780 Tween2.prototype.init.prototype = Tween2.prototype; 3781 Tween2.propHooks = { 3782 _default: { 3783 get: function(tween) { 3784 var result; 3785 if (tween.elem.nodeType !== 1 || tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) { 3786 return tween.elem[tween.prop]; 3787 } 3788 result = jQuery2.css(tween.elem, tween.prop, ""); 3789 return !result || result === "auto" ? 0 : result; 3790 }, 3791 set: function(tween) { 3792 if (jQuery2.fx.step[tween.prop]) { 3793 jQuery2.fx.step[tween.prop](tween); 3794 } else if (tween.elem.nodeType === 1 && (jQuery2.cssHooks[tween.prop] || tween.elem.style[finalPropName(tween.prop)] != null)) { 3795 jQuery2.style(tween.elem, tween.prop, tween.now + tween.unit); 3796 } else { 3797 tween.elem[tween.prop] = tween.now; 3798 } 3799 } 3800 } 3801 }; 3802 Tween2.propHooks.scrollTop = Tween2.propHooks.scrollLeft = { 3803 set: function(tween) { 3804 if (tween.elem.nodeType && tween.elem.parentNode) { 3805 tween.elem[tween.prop] = tween.now; 3806 } 3807 } 3808 }; 3809 jQuery2.easing = { 3810 linear: function(p) { 3811 return p; 3812 }, 3813 swing: function(p) { 3814 return 0.5 - Math.cos(p * Math.PI) / 2; 3815 }, 3816 _default: "swing" 3817 }; 3818 jQuery2.fx = Tween2.prototype.init; 3819 jQuery2.fx.step = {}; 3820 var fxNow, inProgress, rfxtypes = /^(?:toggle|show|hide)$/, rrun = /queueHooks$/; 3821 function schedule() { 3822 if (inProgress) { 3823 if (document2.hidden === false && window2.requestAnimationFrame) { 3824 window2.requestAnimationFrame(schedule); 3825 } else { 3826 window2.setTimeout(schedule, jQuery2.fx.interval); 3827 } 3828 jQuery2.fx.tick(); 3829 } 3830 } 3831 function createFxNow() { 3832 window2.setTimeout(function() { 3833 fxNow = void 0; 3834 }); 3835 return fxNow = Date.now(); 3836 } 3837 function genFx(type, includeWidth) { 3838 var which, i = 0, attrs = { height: type }; 3839 includeWidth = includeWidth ? 1 : 0; 3840 for (; i < 4; i += 2 - includeWidth) { 3841 which = cssExpand[i]; 3842 attrs["margin" + which] = attrs["padding" + which] = type; 3843 } 3844 if (includeWidth) { 3845 attrs.opacity = attrs.width = type; 3846 } 3847 return attrs; 3848 } 3849 function createTween(value, prop, animation) { 3850 var tween, collection = (Animation2.tweeners[prop] || []).concat(Animation2.tweeners["*"]), index = 0, length = collection.length; 3851 for (; index < length; index++) { 3852 if (tween = collection[index].call(animation, prop, value)) { 3853 return tween; 3854 } 3855 } 3856 } 3857 function defaultPrefilter(elem, props, opts) { 3858 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"); 3859 if (!opts.queue) { 3860 hooks = jQuery2._queueHooks(elem, "fx"); 3861 if (hooks.unqueued == null) { 3862 hooks.unqueued = 0; 3863 oldfire = hooks.empty.fire; 3864 hooks.empty.fire = function() { 3865 if (!hooks.unqueued) { 3866 oldfire(); 3867 } 3868 }; 3869 } 3870 hooks.unqueued++; 3871 anim.always(function() { 3872 anim.always(function() { 3873 hooks.unqueued--; 3874 if (!jQuery2.queue(elem, "fx").length) { 3875 hooks.empty.fire(); 3876 } 3877 }); 3878 }); 3879 } 3880 for (prop in props) { 3881 value = props[prop]; 3882 if (rfxtypes.test(value)) { 3883 delete props[prop]; 3884 toggle = toggle || value === "toggle"; 3885 if (value === (hidden ? "hide" : "show")) { 3886 if (value === "show" && dataShow && dataShow[prop] !== void 0) { 3887 hidden = true; 3888 } else { 3889 continue; 3890 } 3891 } 3892 orig[prop] = dataShow && dataShow[prop] || jQuery2.style(elem, prop); 3893 } 3894 } 3895 propTween = !jQuery2.isEmptyObject(props); 3896 if (!propTween && jQuery2.isEmptyObject(orig)) { 3897 return; 3898 } 3899 if (isBox && elem.nodeType === 1) { 3900 opts.overflow = [style.overflow, style.overflowX, style.overflowY]; 3901 restoreDisplay = dataShow && dataShow.display; 3902 if (restoreDisplay == null) { 3903 restoreDisplay = dataPriv.get(elem, "display"); 3904 } 3905 display = jQuery2.css(elem, "display"); 3906 if (display === "none") { 3907 if (restoreDisplay) { 3908 display = restoreDisplay; 3909 } else { 3910 showHide([elem], true); 3911 restoreDisplay = elem.style.display || restoreDisplay; 3912 display = jQuery2.css(elem, "display"); 3913 showHide([elem]); 3914 } 3915 } 3916 if (display === "inline" || display === "inline-block" && restoreDisplay != null) { 3917 if (jQuery2.css(elem, "float") === "none") { 3918 if (!propTween) { 3919 anim.done(function() { 3920 style.display = restoreDisplay; 3921 }); 3922 if (restoreDisplay == null) { 3923 display = style.display; 3924 restoreDisplay = display === "none" ? "" : display; 3925 } 3926 } 3927 style.display = "inline-block"; 3928 } 3929 } 3930 } 3931 if (opts.overflow) { 3932 style.overflow = "hidden"; 3933 anim.always(function() { 3934 style.overflow = opts.overflow[0]; 3935 style.overflowX = opts.overflow[1]; 3936 style.overflowY = opts.overflow[2]; 3937 }); 3938 } 3939 propTween = false; 3940 for (prop in orig) { 3941 if (!propTween) { 3942 if (dataShow) { 3943 if ("hidden" in dataShow) { 3944 hidden = dataShow.hidden; 3945 } 3946 } else { 3947 dataShow = dataPriv.access(elem, "fxshow", { display: restoreDisplay }); 3948 } 3949 if (toggle) { 3950 dataShow.hidden = !hidden; 3951 } 3952 if (hidden) { 3953 showHide([elem], true); 3954 } 3955 anim.done(function() { 3956 if (!hidden) { 3957 showHide([elem]); 3958 } 3959 dataPriv.remove(elem, "fxshow"); 3960 for (prop in orig) { 3961 jQuery2.style(elem, prop, orig[prop]); 3962 } 3963 }); 3964 } 3965 propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim); 3966 if (!(prop in dataShow)) { 3967 dataShow[prop] = propTween.start; 3968 if (hidden) { 3969 propTween.end = propTween.start; 3970 propTween.start = 0; 3971 } 3972 } 3973 } 3974 } 3975 function propFilter(props, specialEasing) { 3976 var index, name, easing, value, hooks; 3977 for (index in props) { 3978 name = camelCase(index); 3979 easing = specialEasing[name]; 3980 value = props[index]; 3981 if (Array.isArray(value)) { 3982 easing = value[1]; 3983 value = props[index] = value[0]; 3984 } 3985 if (index !== name) { 3986 props[name] = value; 3987 delete props[index]; 3988 } 3989 hooks = jQuery2.cssHooks[name]; 3990 if (hooks && "expand" in hooks) { 3991 value = hooks.expand(value); 3992 delete props[name]; 3993 for (index in value) { 3994 if (!(index in props)) { 3995 props[index] = value[index]; 3996 specialEasing[index] = easing; 3997 } 3998 } 3999 } else { 4000 specialEasing[name] = easing; 4001 } 4002 } 4003 } 4004 function Animation2(elem, properties, options) { 4005 var result, stopped, index = 0, length = Animation2.prefilters.length, deferred = jQuery2.Deferred().always(function() { 4006 delete tick.elem; 4007 }), tick = function() { 4008 if (stopped) { 4009 return false; 4010 } 4011 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; 4012 for (; index2 < length2; index2++) { 4013 animation.tweens[index2].run(percent); 4014 } 4015 deferred.notifyWith(elem, [animation, percent, remaining]); 4016 if (percent < 1 && length2) { 4017 return remaining; 4018 } 4019 if (!length2) { 4020 deferred.notifyWith(elem, [animation, 1, 0]); 4021 } 4022 deferred.resolveWith(elem, [animation]); 4023 return false; 4024 }, animation = deferred.promise({ 4025 elem, 4026 props: jQuery2.extend({}, properties), 4027 opts: jQuery2.extend(true, { 4028 specialEasing: {}, 4029 easing: jQuery2.easing._default 4030 }, options), 4031 originalProperties: properties, 4032 originalOptions: options, 4033 startTime: fxNow || createFxNow(), 4034 duration: options.duration, 4035 tweens: [], 4036 createTween: function(prop, end2) { 4037 var tween = jQuery2.Tween(elem, animation.opts, prop, end2, animation.opts.specialEasing[prop] || animation.opts.easing); 4038 animation.tweens.push(tween); 4039 return tween; 4040 }, 4041 stop: function(gotoEnd) { 4042 var index2 = 0, length2 = gotoEnd ? animation.tweens.length : 0; 4043 if (stopped) { 4044 return this; 4045 } 4046 stopped = true; 4047 for (; index2 < length2; index2++) { 4048 animation.tweens[index2].run(1); 4049 } 4050 if (gotoEnd) { 4051 deferred.notifyWith(elem, [animation, 1, 0]); 4052 deferred.resolveWith(elem, [animation, gotoEnd]); 4053 } else { 4054 deferred.rejectWith(elem, [animation, gotoEnd]); 4055 } 4056 return this; 4057 } 4058 }), props = animation.props; 4059 propFilter(props, animation.opts.specialEasing); 4060 for (; index < length; index++) { 4061 result = Animation2.prefilters[index].call(animation, elem, props, animation.opts); 4062 if (result) { 4063 if (isFunction2(result.stop)) { 4064 jQuery2._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result); 4065 } 4066 return result; 4067 } 4068 } 4069 jQuery2.map(props, createTween, animation); 4070 if (isFunction2(animation.opts.start)) { 4071 animation.opts.start.call(elem, animation); 4072 } 4073 animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always); 4074 jQuery2.fx.timer(jQuery2.extend(tick, { 4075 elem, 4076 anim: animation, 4077 queue: animation.opts.queue 4078 })); 4079 return animation; 4080 } 4081 jQuery2.Animation = jQuery2.extend(Animation2, { 4082 tweeners: { 4083 "*": [function(prop, value) { 4084 var tween = this.createTween(prop, value); 4085 adjustCSS(tween.elem, prop, rcssNum.exec(value), tween); 4086 return tween; 4087 }] 4088 }, 4089 tweener: function(props, callback) { 4090 if (isFunction2(props)) { 4091 callback = props; 4092 props = ["*"]; 4093 } else { 4094 props = props.match(rnothtmlwhite); 4095 } 4096 var prop, index = 0, length = props.length; 4097 for (; index < length; index++) { 4098 prop = props[index]; 4099 Animation2.tweeners[prop] = Animation2.tweeners[prop] || []; 4100 Animation2.tweeners[prop].unshift(callback); 4101 } 4102 }, 4103 prefilters: [defaultPrefilter], 4104 prefilter: function(callback, prepend) { 4105 if (prepend) { 4106 Animation2.prefilters.unshift(callback); 4107 } else { 4108 Animation2.prefilters.push(callback); 4109 } 4110 } 4111 }); 4112 jQuery2.speed = function(speed, easing, fn2) { 4113 var opt = speed && typeof speed === "object" ? jQuery2.extend({}, speed) : { 4114 complete: fn2 || !fn2 && easing || isFunction2(speed) && speed, 4115 duration: speed, 4116 easing: fn2 && easing || easing && !isFunction2(easing) && easing 4117 }; 4118 if (jQuery2.fx.off) { 4119 opt.duration = 0; 4120 } else { 4121 if (typeof opt.duration !== "number") { 4122 if (opt.duration in jQuery2.fx.speeds) { 4123 opt.duration = jQuery2.fx.speeds[opt.duration]; 4124 } else { 4125 opt.duration = jQuery2.fx.speeds._default; 4126 } 4127 } 4128 } 4129 if (opt.queue == null || opt.queue === true) { 4130 opt.queue = "fx"; 4131 } 4132 opt.old = opt.complete; 4133 opt.complete = function() { 4134 if (isFunction2(opt.old)) { 4135 opt.old.call(this); 4136 } 4137 if (opt.queue) { 4138 jQuery2.dequeue(this, opt.queue); 4139 } 4140 }; 4141 return opt; 4142 }; 4143 jQuery2.fn.extend({ 4144 fadeTo: function(speed, to, easing, callback) { 4145 return this.filter(isHiddenWithinTree).css("opacity", 0).show().end().animate({ opacity: to }, speed, easing, callback); 4146 }, 4147 animate: function(prop, speed, easing, callback) { 4148 var empty = jQuery2.isEmptyObject(prop), optall = jQuery2.speed(speed, easing, callback), doAnimation = function() { 4149 var anim = Animation2(this, jQuery2.extend({}, prop), optall); 4150 if (empty || dataPriv.get(this, "finish")) { 4151 anim.stop(true); 4152 } 4153 }; 4154 doAnimation.finish = doAnimation; 4155 return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation); 4156 }, 4157 stop: function(type, clearQueue, gotoEnd) { 4158 var stopQueue = function(hooks) { 4159 var stop2 = hooks.stop; 4160 delete hooks.stop; 4161 stop2(gotoEnd); 4162 }; 4163 if (typeof type !== "string") { 4164 gotoEnd = clearQueue; 4165 clearQueue = type; 4166 type = void 0; 4167 } 4168 if (clearQueue) { 4169 this.queue(type || "fx", []); 4170 } 4171 return this.each(function() { 4172 var dequeue = true, index = type != null && type + "queueHooks", timers = jQuery2.timers, data = dataPriv.get(this); 4173 if (index) { 4174 if (data[index] && data[index].stop) { 4175 stopQueue(data[index]); 4176 } 4177 } else { 4178 for (index in data) { 4179 if (data[index] && data[index].stop && rrun.test(index)) { 4180 stopQueue(data[index]); 4181 } 4182 } 4183 } 4184 for (index = timers.length; index--; ) { 4185 if (timers[index].elem === this && (type == null || timers[index].queue === type)) { 4186 timers[index].anim.stop(gotoEnd); 4187 dequeue = false; 4188 timers.splice(index, 1); 4189 } 4190 } 4191 if (dequeue || !gotoEnd) { 4192 jQuery2.dequeue(this, type); 4193 } 4194 }); 4195 }, 4196 finish: function(type) { 4197 if (type !== false) { 4198 type = type || "fx"; 4199 } 4200 return this.each(function() { 4201 var index, data = dataPriv.get(this), queue = data[type + "queue"], hooks = data[type + "queueHooks"], timers = jQuery2.timers, length = queue ? queue.length : 0; 4202 data.finish = true; 4203 jQuery2.queue(this, type, []); 4204 if (hooks && hooks.stop) { 4205 hooks.stop.call(this, true); 4206 } 4207 for (index = timers.length; index--; ) { 4208 if (timers[index].elem === this && timers[index].queue === type) { 4209 timers[index].anim.stop(true); 4210 timers.splice(index, 1); 4211 } 4212 } 4213 for (index = 0; index < length; index++) { 4214 if (queue[index] && queue[index].finish) { 4215 queue[index].finish.call(this); 4216 } 4217 } 4218 delete data.finish; 4219 }); 4220 } 4221 }); 4222 jQuery2.each(["toggle", "show", "hide"], function(_i2, name) { 4223 var cssFn = jQuery2.fn[name]; 4224 jQuery2.fn[name] = function(speed, easing, callback) { 4225 return speed == null || typeof speed === "boolean" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback); 4226 }; 4227 }); 4228 jQuery2.each({ 4229 slideDown: genFx("show"), 4230 slideUp: genFx("hide"), 4231 slideToggle: genFx("toggle"), 4232 fadeIn: { opacity: "show" }, 4233 fadeOut: { opacity: "hide" }, 4234 fadeToggle: { opacity: "toggle" } 4235 }, function(name, props) { 4236 jQuery2.fn[name] = function(speed, easing, callback) { 4237 return this.animate(props, speed, easing, callback); 4238 }; 4239 }); 4240 jQuery2.timers = []; 4241 jQuery2.fx.tick = function() { 4242 var timer, i = 0, timers = jQuery2.timers; 4243 fxNow = Date.now(); 4244 for (; i < timers.length; i++) { 4245 timer = timers[i]; 4246 if (!timer() && timers[i] === timer) { 4247 timers.splice(i--, 1); 4248 } 4249 } 4250 if (!timers.length) { 4251 jQuery2.fx.stop(); 4252 } 4253 fxNow = void 0; 4254 }; 4255 jQuery2.fx.timer = function(timer) { 4256 jQuery2.timers.push(timer); 4257 jQuery2.fx.start(); 4258 }; 4259 jQuery2.fx.interval = 13; 4260 jQuery2.fx.start = function() { 4261 if (inProgress) { 4262 return; 4263 } 4264 inProgress = true; 4265 schedule(); 4266 }; 4267 jQuery2.fx.stop = function() { 4268 inProgress = null; 4269 }; 4270 jQuery2.fx.speeds = { 4271 slow: 600, 4272 fast: 200, 4273 _default: 400 4274 }; 4275 jQuery2.fn.delay = function(time, type) { 4276 time = jQuery2.fx ? jQuery2.fx.speeds[time] || time : time; 4277 type = type || "fx"; 4278 return this.queue(type, function(next, hooks) { 4279 var timeout = window2.setTimeout(next, time); 4280 hooks.stop = function() { 4281 window2.clearTimeout(timeout); 4282 }; 4283 }); 4284 }; 4285 (function() { 4286 var input = document2.createElement("input"), select = document2.createElement("select"), opt = select.appendChild(document2.createElement("option")); 4287 input.type = "checkbox"; 4288 support.checkOn = input.value !== ""; 4289 support.optSelected = opt.selected; 4290 input = document2.createElement("input"); 4291 input.value = "t"; 4292 input.type = "radio"; 4293 support.radioValue = input.value === "t"; 4294 })(); 4295 var boolHook, attrHandle = jQuery2.expr.attrHandle; 4296 jQuery2.fn.extend({ 4297 attr: function(name, value) { 4298 return access(this, jQuery2.attr, name, value, arguments.length > 1); 4299 }, 4300 removeAttr: function(name) { 4301 return this.each(function() { 4302 jQuery2.removeAttr(this, name); 4303 }); 4304 } 4305 }); 4306 jQuery2.extend({ 4307 attr: function(elem, name, value) { 4308 var ret, hooks, nType = elem.nodeType; 4309 if (nType === 3 || nType === 8 || nType === 2) { 4310 return; 4311 } 4312 if (typeof elem.getAttribute === "undefined") { 4313 return jQuery2.prop(elem, name, value); 4314 } 4315 if (nType !== 1 || !jQuery2.isXMLDoc(elem)) { 4316 hooks = jQuery2.attrHooks[name.toLowerCase()] || (jQuery2.expr.match.bool.test(name) ? boolHook : void 0); 4317 } 4318 if (value !== void 0) { 4319 if (value === null) { 4320 jQuery2.removeAttr(elem, name); 4321 return; 4322 } 4323 if (hooks && "set" in hooks && (ret = hooks.set(elem, value, name)) !== void 0) { 4324 return ret; 4325 } 4326 elem.setAttribute(name, value + ""); 4327 return value; 4328 } 4329 if (hooks && "get" in hooks && (ret = hooks.get(elem, name)) !== null) { 4330 return ret; 4331 } 4332 ret = jQuery2.find.attr(elem, name); 4333 return ret == null ? void 0 : ret; 4334 }, 4335 attrHooks: { 4336 type: { 4337 set: function(elem, value) { 4338 if (!support.radioValue && value === "radio" && nodeName(elem, "input")) { 4339 var val = elem.value; 4340 elem.setAttribute("type", value); 4341 if (val) { 4342 elem.value = val; 4343 } 4344 return value; 4345 } 4346 } 4347 } 4348 }, 4349 removeAttr: function(elem, value) { 4350 var name, i = 0, attrNames = value && value.match(rnothtmlwhite); 4351 if (attrNames && elem.nodeType === 1) { 4352 while (name = attrNames[i++]) { 4353 elem.removeAttribute(name); 4354 } 4355 } 4356 } 4357 }); 4358 boolHook = { 4359 set: function(elem, value, name) { 4360 if (value === false) { 4361 jQuery2.removeAttr(elem, name); 4362 } else { 4363 elem.setAttribute(name, name); 4364 } 4365 return name; 4366 } 4367 }; 4368 jQuery2.each(jQuery2.expr.match.bool.source.match(/\w+/g), function(_i2, name) { 4369 var getter = attrHandle[name] || jQuery2.find.attr; 4370 attrHandle[name] = function(elem, name2, isXML) { 4371 var ret, handle, lowercaseName = name2.toLowerCase(); 4372 if (!isXML) { 4373 handle = attrHandle[lowercaseName]; 4374 attrHandle[lowercaseName] = ret; 4375 ret = getter(elem, name2, isXML) != null ? lowercaseName : null; 4376 attrHandle[lowercaseName] = handle; 4377 } 4378 return ret; 4379 }; 4380 }); 4381 var rfocusable = /^(?:input|select|textarea|button)$/i, rclickable = /^(?:a|area)$/i; 4382 jQuery2.fn.extend({ 4383 prop: function(name, value) { 4384 return access(this, jQuery2.prop, name, value, arguments.length > 1); 4385 }, 4386 removeProp: function(name) { 4387 return this.each(function() { 4388 delete this[jQuery2.propFix[name] || name]; 4389 }); 4390 } 4391 }); 4392 jQuery2.extend({ 4393 prop: function(elem, name, value) { 4394 var ret, hooks, nType = elem.nodeType; 4395 if (nType === 3 || nType === 8 || nType === 2) { 4396 return; 4397 } 4398 if (nType !== 1 || !jQuery2.isXMLDoc(elem)) { 4399 name = jQuery2.propFix[name] || name; 4400 hooks = jQuery2.propHooks[name]; 4401 } 4402 if (value !== void 0) { 4403 if (hooks && "set" in hooks && (ret = hooks.set(elem, value, name)) !== void 0) { 4404 return ret; 4405 } 4406 return elem[name] = value; 4407 } 4408 if (hooks && "get" in hooks && (ret = hooks.get(elem, name)) !== null) { 4409 return ret; 4410 } 4411 return elem[name]; 4412 }, 4413 propHooks: { 4414 tabIndex: { 4415 get: function(elem) { 4416 var tabindex = jQuery2.find.attr(elem, "tabindex"); 4417 if (tabindex) { 4418 return parseInt(tabindex, 10); 4419 } 4420 if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) { 4421 return 0; 4422 } 4423 return -1; 4424 } 4425 } 4426 }, 4427 propFix: { 4428 "for": "htmlFor", 4429 "class": "className" 4430 } 4431 }); 4432 if (!support.optSelected) { 4433 jQuery2.propHooks.selected = { 4434 get: function(elem) { 4435 var parent = elem.parentNode; 4436 if (parent && parent.parentNode) { 4437 parent.parentNode.selectedIndex; 4438 } 4439 return null; 4440 }, 4441 set: function(elem) { 4442 var parent = elem.parentNode; 4443 if (parent) { 4444 parent.selectedIndex; 4445 if (parent.parentNode) { 4446 parent.parentNode.selectedIndex; 4447 } 4448 } 4449 } 4450 }; 4451 } 4452 jQuery2.each([ 4453 "tabIndex", 4454 "readOnly", 4455 "maxLength", 4456 "cellSpacing", 4457 "cellPadding", 4458 "rowSpan", 4459 "colSpan", 4460 "useMap", 4461 "frameBorder", 4462 "contentEditable" 4463 ], function() { 4464 jQuery2.propFix[this.toLowerCase()] = this; 4465 }); 4466 function stripAndCollapse(value) { 4467 var tokens = value.match(rnothtmlwhite) || []; 4468 return tokens.join(" "); 4469 } 4470 function getClass(elem) { 4471 return elem.getAttribute && elem.getAttribute("class") || ""; 4472 } 4473 function classesToArray(value) { 4474 if (Array.isArray(value)) { 4475 return value; 4476 } 4477 if (typeof value === "string") { 4478 return value.match(rnothtmlwhite) || []; 4479 } 4480 return []; 4481 } 4482 jQuery2.fn.extend({ 4483 addClass: function(value) { 4484 var classes, elem, cur, curValue, clazz, j, finalValue, i = 0; 4485 if (isFunction2(value)) { 4486 return this.each(function(j2) { 4487 jQuery2(this).addClass(value.call(this, j2, getClass(this))); 4488 }); 4489 } 4490 classes = classesToArray(value); 4491 if (classes.length) { 4492 while (elem = this[i++]) { 4493 curValue = getClass(elem); 4494 cur = elem.nodeType === 1 && " " + stripAndCollapse(curValue) + " "; 4495 if (cur) { 4496 j = 0; 4497 while (clazz = classes[j++]) { 4498 if (cur.indexOf(" " + clazz + " ") < 0) { 4499 cur += clazz + " "; 4500 } 4501 } 4502 finalValue = stripAndCollapse(cur); 4503 if (curValue !== finalValue) { 4504 elem.setAttribute("class", finalValue); 4505 } 4506 } 4507 } 4508 } 4509 return this; 4510 }, 4511 removeClass: function(value) { 4512 var classes, elem, cur, curValue, clazz, j, finalValue, i = 0; 4513 if (isFunction2(value)) { 4514 return this.each(function(j2) { 4515 jQuery2(this).removeClass(value.call(this, j2, getClass(this))); 4516 }); 4517 } 4518 if (!arguments.length) { 4519 return this.attr("class", ""); 4520 } 4521 classes = classesToArray(value); 4522 if (classes.length) { 4523 while (elem = this[i++]) { 4524 curValue = getClass(elem); 4525 cur = elem.nodeType === 1 && " " + stripAndCollapse(curValue) + " "; 4526 if (cur) { 4527 j = 0; 4528 while (clazz = classes[j++]) { 4529 while (cur.indexOf(" " + clazz + " ") > -1) { 4530 cur = cur.replace(" " + clazz + " ", " "); 4531 } 4532 } 4533 finalValue = stripAndCollapse(cur); 4534 if (curValue !== finalValue) { 4535 elem.setAttribute("class", finalValue); 4536 } 4537 } 4538 } 4539 } 4540 return this; 4541 }, 4542 toggleClass: function(value, stateVal) { 4543 var type = typeof value, isValidValue = type === "string" || Array.isArray(value); 4544 if (typeof stateVal === "boolean" && isValidValue) { 4545 return stateVal ? this.addClass(value) : this.removeClass(value); 4546 } 4547 if (isFunction2(value)) { 4548 return this.each(function(i) { 4549 jQuery2(this).toggleClass(value.call(this, i, getClass(this), stateVal), stateVal); 4550 }); 4551 } 4552 return this.each(function() { 4553 var className, i, self2, classNames; 4554 if (isValidValue) { 4555 i = 0; 4556 self2 = jQuery2(this); 4557 classNames = classesToArray(value); 4558 while (className = classNames[i++]) { 4559 if (self2.hasClass(className)) { 4560 self2.removeClass(className); 4561 } else { 4562 self2.addClass(className); 4563 } 4564 } 4565 } else if (value === void 0 || type === "boolean") { 4566 className = getClass(this); 4567 if (className) { 4568 dataPriv.set(this, "__className__", className); 4569 } 4570 if (this.setAttribute) { 4571 this.setAttribute("class", className || value === false ? "" : dataPriv.get(this, "__className__") || ""); 4572 } 4573 } 4574 }); 4575 }, 4576 hasClass: function(selector3) { 4577 var className, elem, i = 0; 4578 className = " " + selector3 + " "; 4579 while (elem = this[i++]) { 4580 if (elem.nodeType === 1 && (" " + stripAndCollapse(getClass(elem)) + " ").indexOf(className) > -1) { 4581 return true; 4582 } 4583 } 4584 return false; 4585 } 4586 }); 4587 var rreturn = /\r/g; 4588 jQuery2.fn.extend({ 4589 val: function(value) { 4590 var hooks, ret, valueIsFunction, elem = this[0]; 4591 if (!arguments.length) { 4592 if (elem) { 4593 hooks = jQuery2.valHooks[elem.type] || jQuery2.valHooks[elem.nodeName.toLowerCase()]; 4594 if (hooks && "get" in hooks && (ret = hooks.get(elem, "value")) !== void 0) { 4595 return ret; 4596 } 4597 ret = elem.value; 4598 if (typeof ret === "string") { 4599 return ret.replace(rreturn, ""); 4600 } 4601 return ret == null ? "" : ret; 4602 } 4603 return; 4604 } 4605 valueIsFunction = isFunction2(value); 4606 return this.each(function(i) { 4607 var val; 4608 if (this.nodeType !== 1) { 4609 return; 4610 } 4611 if (valueIsFunction) { 4612 val = value.call(this, i, jQuery2(this).val()); 4613 } else { 4614 val = value; 4615 } 4616 if (val == null) { 4617 val = ""; 4618 } else if (typeof val === "number") { 4619 val += ""; 4620 } else if (Array.isArray(val)) { 4621 val = jQuery2.map(val, function(value2) { 4622 return value2 == null ? "" : value2 + ""; 4623 }); 4624 } 4625 hooks = jQuery2.valHooks[this.type] || jQuery2.valHooks[this.nodeName.toLowerCase()]; 4626 if (!hooks || !("set" in hooks) || hooks.set(this, val, "value") === void 0) { 4627 this.value = val; 4628 } 4629 }); 4630 } 4631 }); 4632 jQuery2.extend({ 4633 valHooks: { 4634 option: { 4635 get: function(elem) { 4636 var val = jQuery2.find.attr(elem, "value"); 4637 return val != null ? val : stripAndCollapse(jQuery2.text(elem)); 4638 } 4639 }, 4640 select: { 4641 get: function(elem) { 4642 var value, option, i, options = elem.options, index = elem.selectedIndex, one = elem.type === "select-one", values = one ? null : [], max2 = one ? index + 1 : options.length; 4643 if (index < 0) { 4644 i = max2; 4645 } else { 4646 i = one ? index : 0; 4647 } 4648 for (; i < max2; i++) { 4649 option = options[i]; 4650 if ((option.selected || i === index) && !option.disabled && (!option.parentNode.disabled || !nodeName(option.parentNode, "optgroup"))) { 4651 value = jQuery2(option).val(); 4652 if (one) { 4653 return value; 4654 } 4655 values.push(value); 4656 } 4657 } 4658 return values; 4659 }, 4660 set: function(elem, value) { 4661 var optionSet, option, options = elem.options, values = jQuery2.makeArray(value), i = options.length; 4662 while (i--) { 4663 option = options[i]; 4664 if (option.selected = jQuery2.inArray(jQuery2.valHooks.option.get(option), values) > -1) { 4665 optionSet = true; 4666 } 4667 } 4668 if (!optionSet) { 4669 elem.selectedIndex = -1; 4670 } 4671 return values; 4672 } 4673 } 4674 } 4675 }); 4676 jQuery2.each(["radio", "checkbox"], function() { 4677 jQuery2.valHooks[this] = { 4678 set: function(elem, value) { 4679 if (Array.isArray(value)) { 4680 return elem.checked = jQuery2.inArray(jQuery2(elem).val(), value) > -1; 4681 } 4682 } 4683 }; 4684 if (!support.checkOn) { 4685 jQuery2.valHooks[this].get = function(elem) { 4686 return elem.getAttribute("value") === null ? "on" : elem.value; 4687 }; 4688 } 4689 }); 4690 support.focusin = "onfocusin" in window2; 4691 var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, stopPropagationCallback = function(e) { 4692 e.stopPropagation(); 4693 }; 4694 jQuery2.extend(jQuery2.event, { 4695 trigger: function(event, data, elem, onlyHandlers) { 4696 var i, 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(".") : []; 4697 cur = lastElement = tmp = elem = elem || document2; 4698 if (elem.nodeType === 3 || elem.nodeType === 8) { 4699 return; 4700 } 4701 if (rfocusMorph.test(type + jQuery2.event.triggered)) { 4702 return; 4703 } 4704 if (type.indexOf(".") > -1) { 4705 namespaces = type.split("."); 4706 type = namespaces.shift(); 4707 namespaces.sort(); 4708 } 4709 ontype = type.indexOf(":") < 0 && "on" + type; 4710 event = event[jQuery2.expando] ? event : new jQuery2.Event(type, typeof event === "object" && event); 4711 event.isTrigger = onlyHandlers ? 2 : 3; 4712 event.namespace = namespaces.join("."); 4713 event.rnamespace = event.namespace ? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)") : null; 4714 event.result = void 0; 4715 if (!event.target) { 4716 event.target = elem; 4717 } 4718 data = data == null ? [event] : jQuery2.makeArray(data, [event]); 4719 special = jQuery2.event.special[type] || {}; 4720 if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) { 4721 return; 4722 } 4723 if (!onlyHandlers && !special.noBubble && !isWindow(elem)) { 4724 bubbleType = special.delegateType || type; 4725 if (!rfocusMorph.test(bubbleType + type)) { 4726 cur = cur.parentNode; 4727 } 4728 for (; cur; cur = cur.parentNode) { 4729 eventPath.push(cur); 4730 tmp = cur; 4731 } 4732 if (tmp === (elem.ownerDocument || document2)) { 4733 eventPath.push(tmp.defaultView || tmp.parentWindow || window2); 4734 } 4735 } 4736 i = 0; 4737 while ((cur = eventPath[i++]) && !event.isPropagationStopped()) { 4738 lastElement = cur; 4739 event.type = i > 1 ? bubbleType : special.bindType || type; 4740 handle = (dataPriv.get(cur, "events") || Object.create(null))[event.type] && dataPriv.get(cur, "handle"); 4741 if (handle) { 4742 handle.apply(cur, data); 4743 } 4744 handle = ontype && cur[ontype]; 4745 if (handle && handle.apply && acceptData(cur)) { 4746 event.result = handle.apply(cur, data); 4747 if (event.result === false) { 4748 event.preventDefault(); 4749 } 4750 } 4751 } 4752 event.type = type; 4753 if (!onlyHandlers && !event.isDefaultPrevented()) { 4754 if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) { 4755 if (ontype && isFunction2(elem[type]) && !isWindow(elem)) { 4756 tmp = elem[ontype]; 4757 if (tmp) { 4758 elem[ontype] = null; 4759 } 4760 jQuery2.event.triggered = type; 4761 if (event.isPropagationStopped()) { 4762 lastElement.addEventListener(type, stopPropagationCallback); 4763 } 4764 elem[type](); 4765 if (event.isPropagationStopped()) { 4766 lastElement.removeEventListener(type, stopPropagationCallback); 4767 } 4768 jQuery2.event.triggered = void 0; 4769 if (tmp) { 4770 elem[ontype] = tmp; 4771 } 4772 } 4773 } 4774 } 4775 return event.result; 4776 }, 4777 simulate: function(type, elem, event) { 4778 var e = jQuery2.extend(new jQuery2.Event(), event, { 4779 type, 4780 isSimulated: true 4781 }); 4782 jQuery2.event.trigger(e, null, elem); 4783 } 4784 }); 4785 jQuery2.fn.extend({ 4786 trigger: function(type, data) { 4787 return this.each(function() { 4788 jQuery2.event.trigger(type, data, this); 4789 }); 4790 }, 4791 triggerHandler: function(type, data) { 4792 var elem = this[0]; 4793 if (elem) { 4794 return jQuery2.event.trigger(type, data, elem, true); 4795 } 4796 } 4797 }); 4798 if (!support.focusin) { 4799 jQuery2.each({ focus: "focusin", blur: "focusout" }, function(orig, fix) { 4800 var handler = function(event) { 4801 jQuery2.event.simulate(fix, event.target, jQuery2.event.fix(event)); 4802 }; 4803 jQuery2.event.special[fix] = { 4804 setup: function() { 4805 var doc = this.ownerDocument || this.document || this, attaches = dataPriv.access(doc, fix); 4806 if (!attaches) { 4807 doc.addEventListener(orig, handler, true); 4808 } 4809 dataPriv.access(doc, fix, (attaches || 0) + 1); 4810 }, 4811 teardown: function() { 4812 var doc = this.ownerDocument || this.document || this, attaches = dataPriv.access(doc, fix) - 1; 4813 if (!attaches) { 4814 doc.removeEventListener(orig, handler, true); 4815 dataPriv.remove(doc, fix); 4816 } else { 4817 dataPriv.access(doc, fix, attaches); 4818 } 4819 } 4820 }; 4821 }); 4822 } 4823 var location = window2.location; 4824 var nonce = { guid: Date.now() }; 4825 var rquery = /\?/; 4826 jQuery2.parseXML = function(data) { 4827 var xml, parserErrorElem; 4828 if (!data || typeof data !== "string") { 4829 return null; 4830 } 4831 try { 4832 xml = new window2.DOMParser().parseFromString(data, "text/xml"); 4833 } catch (e) { 4834 } 4835 parserErrorElem = xml && xml.getElementsByTagName("parsererror")[0]; 4836 if (!xml || parserErrorElem) { 4837 jQuery2.error("Invalid XML: " + (parserErrorElem ? jQuery2.map(parserErrorElem.childNodes, function(el) { 4838 return el.textContent; 4839 }).join("\n") : data)); 4840 } 4841 return xml; 4842 }; 4843 var rbracket = /\[\]$/, rCRLF = /\r?\n/g, rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, rsubmittable = /^(?:input|select|textarea|keygen)/i; 4844 function buildParams(prefix, obj, traditional, add) { 4845 var name; 4846 if (Array.isArray(obj)) { 4847 jQuery2.each(obj, function(i, v) { 4848 if (traditional || rbracket.test(prefix)) { 4849 add(prefix, v); 4850 } else { 4851 buildParams(prefix + "[" + (typeof v === "object" && v != null ? i : "") + "]", v, traditional, add); 4852 } 4853 }); 4854 } else if (!traditional && toType(obj) === "object") { 4855 for (name in obj) { 4856 buildParams(prefix + "[" + name + "]", obj[name], traditional, add); 4857 } 4858 } else { 4859 add(prefix, obj); 4860 } 4861 } 4862 jQuery2.param = function(a, traditional) { 4863 var prefix, s = [], add = function(key, valueOrFunction) { 4864 var value = isFunction2(valueOrFunction) ? valueOrFunction() : valueOrFunction; 4865 s[s.length] = encodeURIComponent(key) + "=" + encodeURIComponent(value == null ? "" : value); 4866 }; 4867 if (a == null) { 4868 return ""; 4869 } 4870 if (Array.isArray(a) || a.jquery && !jQuery2.isPlainObject(a)) { 4871 jQuery2.each(a, function() { 4872 add(this.name, this.value); 4873 }); 4874 } else { 4875 for (prefix in a) { 4876 buildParams(prefix, a[prefix], traditional, add); 4877 } 4878 } 4879 return s.join("&"); 4880 }; 4881 jQuery2.fn.extend({ 4882 serialize: function() { 4883 return jQuery2.param(this.serializeArray()); 4884 }, 4885 serializeArray: function() { 4886 return this.map(function() { 4887 var elements = jQuery2.prop(this, "elements"); 4888 return elements ? jQuery2.makeArray(elements) : this; 4889 }).filter(function() { 4890 var type = this.type; 4891 return this.name && !jQuery2(this).is(":disabled") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type)); 4892 }).map(function(_i2, elem) { 4893 var val = jQuery2(this).val(); 4894 if (val == null) { 4895 return null; 4896 } 4897 if (Array.isArray(val)) { 4898 return jQuery2.map(val, function(val2) { 4899 return { name: elem.name, value: val2.replace(rCRLF, "\r\n") }; 4900 }); 4901 } 4902 return { name: elem.name, value: val.replace(rCRLF, "\r\n") }; 4903 }).get(); 4904 } 4905 }); 4906 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"); 4907 originAnchor.href = location.href; 4908 function addToPrefiltersOrTransports(structure) { 4909 return function(dataTypeExpression, func) { 4910 if (typeof dataTypeExpression !== "string") { 4911 func = dataTypeExpression; 4912 dataTypeExpression = "*"; 4913 } 4914 var dataType, i = 0, dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || []; 4915 if (isFunction2(func)) { 4916 while (dataType = dataTypes[i++]) { 4917 if (dataType[0] === "+") { 4918 dataType = dataType.slice(1) || "*"; 4919 (structure[dataType] = structure[dataType] || []).unshift(func); 4920 } else { 4921 (structure[dataType] = structure[dataType] || []).push(func); 4922 } 4923 } 4924 } 4925 }; 4926 } 4927 function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) { 4928 var inspected = {}, seekingTransport = structure === transports; 4929 function inspect(dataType) { 4930 var selected; 4931 inspected[dataType] = true; 4932 jQuery2.each(structure[dataType] || [], function(_2, prefilterOrFactory) { 4933 var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR); 4934 if (typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[dataTypeOrTransport]) { 4935 options.dataTypes.unshift(dataTypeOrTransport); 4936 inspect(dataTypeOrTransport); 4937 return false; 4938 } else if (seekingTransport) { 4939 return !(selected = dataTypeOrTransport); 4940 } 4941 }); 4942 return selected; 4943 } 4944 return inspect(options.dataTypes[0]) || !inspected["*"] && inspect("*"); 4945 } 4946 function ajaxExtend(target, src) { 4947 var key, deep, flatOptions = jQuery2.ajaxSettings.flatOptions || {}; 4948 for (key in src) { 4949 if (src[key] !== void 0) { 4950 (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key]; 4951 } 4952 } 4953 if (deep) { 4954 jQuery2.extend(true, target, deep); 4955 } 4956 return target; 4957 } 4958 function ajaxHandleResponses(s, jqXHR, responses) { 4959 var ct, type, finalDataType, firstDataType, contents = s.contents, dataTypes = s.dataTypes; 4960 while (dataTypes[0] === "*") { 4961 dataTypes.shift(); 4962 if (ct === void 0) { 4963 ct = s.mimeType || jqXHR.getResponseHeader("Content-Type"); 4964 } 4965 } 4966 if (ct) { 4967 for (type in contents) { 4968 if (contents[type] && contents[type].test(ct)) { 4969 dataTypes.unshift(type); 4970 break; 4971 } 4972 } 4973 } 4974 if (dataTypes[0] in responses) { 4975 finalDataType = dataTypes[0]; 4976 } else { 4977 for (type in responses) { 4978 if (!dataTypes[0] || s.converters[type + " " + dataTypes[0]]) { 4979 finalDataType = type; 4980 break; 4981 } 4982 if (!firstDataType) { 4983 firstDataType = type; 4984 } 4985 } 4986 finalDataType = finalDataType || firstDataType; 4987 } 4988 if (finalDataType) { 4989 if (finalDataType !== dataTypes[0]) { 4990 dataTypes.unshift(finalDataType); 4991 } 4992 return responses[finalDataType]; 4993 } 4994 } 4995 function ajaxConvert(s, response, jqXHR, isSuccess) { 4996 var conv2, current, conv, tmp, prev, converters = {}, dataTypes = s.dataTypes.slice(); 4997 if (dataTypes[1]) { 4998 for (conv in s.converters) { 4999 converters[conv.toLowerCase()] = s.converters[conv]; 5000 } 5001 } 5002 current = dataTypes.shift(); 5003 while (current) { 5004 if (s.responseFields[current]) { 5005 jqXHR[s.responseFields[current]] = response; 5006 } 5007 if (!prev && isSuccess && s.dataFilter) { 5008 response = s.dataFilter(response, s.dataType); 5009 } 5010 prev = current; 5011 current = dataTypes.shift(); 5012 if (current) { 5013 if (current === "*") { 5014 current = prev; 5015 } else if (prev !== "*" && prev !== current) { 5016 conv = converters[prev + " " + current] || converters["* " + current]; 5017 if (!conv) { 5018 for (conv2 in converters) { 5019 tmp = conv2.split(" "); 5020 if (tmp[1] === current) { 5021 conv = converters[prev + " " + tmp[0]] || converters["* " + tmp[0]]; 5022 if (conv) { 5023 if (conv === true) { 5024 conv = converters[conv2]; 5025 } else if (converters[conv2] !== true) { 5026 current = tmp[0]; 5027 dataTypes.unshift(tmp[1]); 5028 } 5029 break; 5030 } 5031 } 5032 } 5033 } 5034 if (conv !== true) { 5035 if (conv && s.throws) { 5036 response = conv(response); 5037 } else { 5038 try { 5039 response = conv(response); 5040 } catch (e) { 5041 return { 5042 state: "parsererror", 5043 error: conv ? e : "No conversion from " + prev + " to " + current 5044 }; 5045 } 5046 } 5047 } 5048 } 5049 } 5050 } 5051 return { state: "success", data: response }; 5052 } 5053 jQuery2.extend({ 5054 active: 0, 5055 lastModified: {}, 5056 etag: {}, 5057 ajaxSettings: { 5058 url: location.href, 5059 type: "GET", 5060 isLocal: rlocalProtocol.test(location.protocol), 5061 global: true, 5062 processData: true, 5063 async: true, 5064 contentType: "application/x-www-form-urlencoded; charset=UTF-8", 5065 accepts: { 5066 "*": allTypes, 5067 text: "text/plain", 5068 html: "text/html", 5069 xml: "application/xml, text/xml", 5070 json: "application/json, text/javascript" 5071 }, 5072 contents: { 5073 xml: /\bxml\b/, 5074 html: /\bhtml/, 5075 json: /\bjson\b/ 5076 }, 5077 responseFields: { 5078 xml: "responseXML", 5079 text: "responseText", 5080 json: "responseJSON" 5081 }, 5082 converters: { 5083 "* text": String, 5084 "text html": true, 5085 "text json": JSON.parse, 5086 "text xml": jQuery2.parseXML 5087 }, 5088 flatOptions: { 5089 url: true, 5090 context: true 5091 } 5092 }, 5093 ajaxSetup: function(target, settings) { 5094 return settings ? ajaxExtend(ajaxExtend(target, jQuery2.ajaxSettings), settings) : ajaxExtend(jQuery2.ajaxSettings, target); 5095 }, 5096 ajaxPrefilter: addToPrefiltersOrTransports(prefilters), 5097 ajaxTransport: addToPrefiltersOrTransports(transports), 5098 ajax: function(url, options) { 5099 if (typeof url === "object") { 5100 options = url; 5101 url = void 0; 5102 } 5103 options = options || {}; 5104 var transport, cacheURL, responseHeadersString, responseHeaders, timeoutTimer, urlAnchor, completed2, fireGlobals, i, uncached, s = jQuery2.ajaxSetup({}, options), callbackContext = s.context || s, globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery2(callbackContext) : jQuery2.event, deferred = jQuery2.Deferred(), completeDeferred = jQuery2.Callbacks("once memory"), statusCode = s.statusCode || {}, requestHeaders = {}, requestHeadersNames = {}, strAbort = "canceled", jqXHR = { 5105 readyState: 0, 5106 getResponseHeader: function(key) { 5107 var match; 5108 if (completed2) { 5109 if (!responseHeaders) { 5110 responseHeaders = {}; 5111 while (match = rheaders.exec(responseHeadersString)) { 5112 responseHeaders[match[1].toLowerCase() + " "] = (responseHeaders[match[1].toLowerCase() + " "] || []).concat(match[2]); 5113 } 5114 } 5115 match = responseHeaders[key.toLowerCase() + " "]; 5116 } 5117 return match == null ? null : match.join(", "); 5118 }, 5119 getAllResponseHeaders: function() { 5120 return completed2 ? responseHeadersString : null; 5121 }, 5122 setRequestHeader: function(name, value) { 5123 if (completed2 == null) { 5124 name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name; 5125 requestHeaders[name] = value; 5126 } 5127 return this; 5128 }, 5129 overrideMimeType: function(type) { 5130 if (completed2 == null) { 5131 s.mimeType = type; 5132 } 5133 return this; 5134 }, 5135 statusCode: function(map) { 5136 var code; 5137 if (map) { 5138 if (completed2) { 5139 jqXHR.always(map[jqXHR.status]); 5140 } else { 5141 for (code in map) { 5142 statusCode[code] = [statusCode[code], map[code]]; 5143 } 5144 } 5145 } 5146 return this; 5147 }, 5148 abort: function(statusText) { 5149 var finalText = statusText || strAbort; 5150 if (transport) { 5151 transport.abort(finalText); 5152 } 5153 done(0, finalText); 5154 return this; 5155 } 5156 }; 5157 deferred.promise(jqXHR); 5158 s.url = ((url || s.url || location.href) + "").replace(rprotocol, location.protocol + "//"); 5159 s.type = options.method || options.type || s.method || s.type; 5160 s.dataTypes = (s.dataType || "*").toLowerCase().match(rnothtmlwhite) || [""]; 5161 if (s.crossDomain == null) { 5162 urlAnchor = document2.createElement("a"); 5163 try { 5164 urlAnchor.href = s.url; 5165 urlAnchor.href = urlAnchor.href; 5166 s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== urlAnchor.protocol + "//" + urlAnchor.host; 5167 } catch (e) { 5168 s.crossDomain = true; 5169 } 5170 } 5171 if (s.data && s.processData && typeof s.data !== "string") { 5172 s.data = jQuery2.param(s.data, s.traditional); 5173 } 5174 inspectPrefiltersOrTransports(prefilters, s, options, jqXHR); 5175 if (completed2) { 5176 return jqXHR; 5177 } 5178 fireGlobals = jQuery2.event && s.global; 5179 if (fireGlobals && jQuery2.active++ === 0) { 5180 jQuery2.event.trigger("ajaxStart"); 5181 } 5182 s.type = s.type.toUpperCase(); 5183 s.hasContent = !rnoContent.test(s.type); 5184 cacheURL = s.url.replace(rhash, ""); 5185 if (!s.hasContent) { 5186 uncached = s.url.slice(cacheURL.length); 5187 if (s.data && (s.processData || typeof s.data === "string")) { 5188 cacheURL += (rquery.test(cacheURL) ? "&" : "?") + s.data; 5189 delete s.data; 5190 } 5191 if (s.cache === false) { 5192 cacheURL = cacheURL.replace(rantiCache, "$1"); 5193 uncached = (rquery.test(cacheURL) ? "&" : "?") + "_=" + nonce.guid++ + uncached; 5194 } 5195 s.url = cacheURL + uncached; 5196 } else if (s.data && s.processData && (s.contentType || "").indexOf("application/x-www-form-urlencoded") === 0) { 5197 s.data = s.data.replace(r20, "+"); 5198 } 5199 if (s.ifModified) { 5200 if (jQuery2.lastModified[cacheURL]) { 5201 jqXHR.setRequestHeader("If-Modified-Since", jQuery2.lastModified[cacheURL]); 5202 } 5203 if (jQuery2.etag[cacheURL]) { 5204 jqXHR.setRequestHeader("If-None-Match", jQuery2.etag[cacheURL]); 5205 } 5206 } 5207 if (s.data && s.hasContent && s.contentType !== false || options.contentType) { 5208 jqXHR.setRequestHeader("Content-Type", s.contentType); 5209 } 5210 jqXHR.setRequestHeader("Accept", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== "*" ? ", " + allTypes + "; q=0.01" : "") : s.accepts["*"]); 5211 for (i in s.headers) { 5212 jqXHR.setRequestHeader(i, s.headers[i]); 5213 } 5214 if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || completed2)) { 5215 return jqXHR.abort(); 5216 } 5217 strAbort = "abort"; 5218 completeDeferred.add(s.complete); 5219 jqXHR.done(s.success); 5220 jqXHR.fail(s.error); 5221 transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR); 5222 if (!transport) { 5223 done(-1, "No Transport"); 5224 } else { 5225 jqXHR.readyState = 1; 5226 if (fireGlobals) { 5227 globalEventContext.trigger("ajaxSend", [jqXHR, s]); 5228 } 5229 if (completed2) { 5230 return jqXHR; 5231 } 5232 if (s.async && s.timeout > 0) { 5233 timeoutTimer = window2.setTimeout(function() { 5234 jqXHR.abort("timeout"); 5235 }, s.timeout); 5236 } 5237 try { 5238 completed2 = false; 5239 transport.send(requestHeaders, done); 5240 } catch (e) { 5241 if (completed2) { 5242 throw e; 5243 } 5244 done(-1, e); 5245 } 5246 } 5247 function done(status, nativeStatusText, responses, headers) { 5248 var isSuccess, success, error, response, modified, statusText = nativeStatusText; 5249 if (completed2) { 5250 return; 5251 } 5252 completed2 = true; 5253 if (timeoutTimer) { 5254 window2.clearTimeout(timeoutTimer); 5255 } 5256 transport = void 0; 5257 responseHeadersString = headers || ""; 5258 jqXHR.readyState = status > 0 ? 4 : 0; 5259 isSuccess = status >= 200 && status < 300 || status === 304; 5260 if (responses) { 5261 response = ajaxHandleResponses(s, jqXHR, responses); 5262 } 5263 if (!isSuccess && jQuery2.inArray("script", s.dataTypes) > -1 && jQuery2.inArray("json", s.dataTypes) < 0) { 5264 s.converters["text script"] = function() { 5265 }; 5266 } 5267 response = ajaxConvert(s, response, jqXHR, isSuccess); 5268 if (isSuccess) { 5269 if (s.ifModified) { 5270 modified = jqXHR.getResponseHeader("Last-Modified"); 5271 if (modified) { 5272 jQuery2.lastModified[cacheURL] = modified; 5273 } 5274 modified = jqXHR.getResponseHeader("etag"); 5275 if (modified) { 5276 jQuery2.etag[cacheURL] = modified; 5277 } 5278 } 5279 if (status === 204 || s.type === "HEAD") { 5280 statusText = "nocontent"; 5281 } else if (status === 304) { 5282 statusText = "notmodified"; 5283 } else { 5284 statusText = response.state; 5285 success = response.data; 5286 error = response.error; 5287 isSuccess = !error; 5288 } 5289 } else { 5290 error = statusText; 5291 if (status || !statusText) { 5292 statusText = "error"; 5293 if (status < 0) { 5294 status = 0; 5295 } 5296 } 5297 } 5298 jqXHR.status = status; 5299 jqXHR.statusText = (nativeStatusText || statusText) + ""; 5300 if (isSuccess) { 5301 deferred.resolveWith(callbackContext, [success, statusText, jqXHR]); 5302 } else { 5303 deferred.rejectWith(callbackContext, [jqXHR, statusText, error]); 5304 } 5305 jqXHR.statusCode(statusCode); 5306 statusCode = void 0; 5307 if (fireGlobals) { 5308 globalEventContext.trigger(isSuccess ? "ajaxSuccess" : "ajaxError", [jqXHR, s, isSuccess ? success : error]); 5309 } 5310 completeDeferred.fireWith(callbackContext, [jqXHR, statusText]); 5311 if (fireGlobals) { 5312 globalEventContext.trigger("ajaxComplete", [jqXHR, s]); 5313 if (!--jQuery2.active) { 5314 jQuery2.event.trigger("ajaxStop"); 5315 } 5316 } 5317 } 5318 return jqXHR; 5319 }, 5320 getJSON: function(url, data, callback) { 5321 return jQuery2.get(url, data, callback, "json"); 5322 }, 5323 getScript: function(url, callback) { 5324 return jQuery2.get(url, void 0, callback, "script"); 5325 } 5326 }); 5327 jQuery2.each(["get", "post"], function(_i2, method) { 5328 jQuery2[method] = function(url, data, callback, type) { 5329 if (isFunction2(data)) { 5330 type = type || callback; 5331 callback = data; 5332 data = void 0; 5333 } 5334 return jQuery2.ajax(jQuery2.extend({ 5335 url, 5336 type: method, 5337 dataType: type, 5338 data, 5339 success: callback 5340 }, jQuery2.isPlainObject(url) && url)); 5341 }; 5342 }); 5343 jQuery2.ajaxPrefilter(function(s) { 5344 var i; 5345 for (i in s.headers) { 5346 if (i.toLowerCase() === "content-type") { 5347 s.contentType = s.headers[i] || ""; 5348 } 5349 } 5350 }); 5351 jQuery2._evalUrl = function(url, options, doc) { 5352 return jQuery2.ajax({ 5353 url, 5354 type: "GET", 5355 dataType: "script", 5356 cache: true, 5357 async: false, 5358 global: false, 5359 converters: { 5360 "text script": function() { 5361 } 5362 }, 5363 dataFilter: function(response) { 5364 jQuery2.globalEval(response, options, doc); 5365 } 5366 }); 5367 }; 5368 jQuery2.fn.extend({ 5369 wrapAll: function(html) { 5370 var wrap3; 5371 if (this[0]) { 5372 if (isFunction2(html)) { 5373 html = html.call(this[0]); 5374 } 5375 wrap3 = jQuery2(html, this[0].ownerDocument).eq(0).clone(true); 5376 if (this[0].parentNode) { 5377 wrap3.insertBefore(this[0]); 5378 } 5379 wrap3.map(function() { 5380 var elem = this; 5381 while (elem.firstElementChild) { 5382 elem = elem.firstElementChild; 5383 } 5384 return elem; 5385 }).append(this); 5386 } 5387 return this; 5388 }, 5389 wrapInner: function(html) { 5390 if (isFunction2(html)) { 5391 return this.each(function(i) { 5392 jQuery2(this).wrapInner(html.call(this, i)); 5393 }); 5394 } 5395 return this.each(function() { 5396 var self2 = jQuery2(this), contents = self2.contents(); 5397 if (contents.length) { 5398 contents.wrapAll(html); 5399 } else { 5400 self2.append(html); 5401 } 5402 }); 5403 }, 5404 wrap: function(html) { 5405 var htmlIsFunction = isFunction2(html); 5406 return this.each(function(i) { 5407 jQuery2(this).wrapAll(htmlIsFunction ? html.call(this, i) : html); 5408 }); 5409 }, 5410 unwrap: function(selector3) { 5411 this.parent(selector3).not("body").each(function() { 5412 jQuery2(this).replaceWith(this.childNodes); 5413 }); 5414 return this; 5415 } 5416 }); 5417 jQuery2.expr.pseudos.hidden = function(elem) { 5418 return !jQuery2.expr.pseudos.visible(elem); 5419 }; 5420 jQuery2.expr.pseudos.visible = function(elem) { 5421 return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length); 5422 }; 5423 jQuery2.ajaxSettings.xhr = function() { 5424 try { 5425 return new window2.XMLHttpRequest(); 5426 } catch (e) { 5427 } 5428 }; 5429 var xhrSuccessStatus = { 5430 0: 200, 5431 1223: 204 5432 }, xhrSupported = jQuery2.ajaxSettings.xhr(); 5433 support.cors = !!xhrSupported && "withCredentials" in xhrSupported; 5434 support.ajax = xhrSupported = !!xhrSupported; 5435 jQuery2.ajaxTransport(function(options) { 5436 var callback, errorCallback; 5437 if (support.cors || xhrSupported && !options.crossDomain) { 5438 return { 5439 send: function(headers, complete) { 5440 var i, xhr = options.xhr(); 5441 xhr.open(options.type, options.url, options.async, options.username, options.password); 5442 if (options.xhrFields) { 5443 for (i in options.xhrFields) { 5444 xhr[i] = options.xhrFields[i]; 5445 } 5446 } 5447 if (options.mimeType && xhr.overrideMimeType) { 5448 xhr.overrideMimeType(options.mimeType); 5449 } 5450 if (!options.crossDomain && !headers["X-Requested-With"]) { 5451 headers["X-Requested-With"] = "XMLHttpRequest"; 5452 } 5453 for (i in headers) { 5454 xhr.setRequestHeader(i, headers[i]); 5455 } 5456 callback = function(type) { 5457 return function() { 5458 if (callback) { 5459 callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null; 5460 if (type === "abort") { 5461 xhr.abort(); 5462 } else if (type === "error") { 5463 if (typeof xhr.status !== "number") { 5464 complete(0, "error"); 5465 } else { 5466 complete(xhr.status, xhr.statusText); 5467 } 5468 } else { 5469 complete(xhrSuccessStatus[xhr.status] || xhr.status, xhr.statusText, (xhr.responseType || "text") !== "text" || typeof xhr.responseText !== "string" ? { binary: xhr.response } : { text: xhr.responseText }, xhr.getAllResponseHeaders()); 5470 } 5471 } 5472 }; 5473 }; 5474 xhr.onload = callback(); 5475 errorCallback = xhr.onerror = xhr.ontimeout = callback("error"); 5476 if (xhr.onabort !== void 0) { 5477 xhr.onabort = errorCallback; 5478 } else { 5479 xhr.onreadystatechange = function() { 5480 if (xhr.readyState === 4) { 5481 window2.setTimeout(function() { 5482 if (callback) { 5483 errorCallback(); 5484 } 5485 }); 5486 } 5487 }; 5488 } 5489 callback = callback("abort"); 5490 try { 5491 xhr.send(options.hasContent && options.data || null); 5492 } catch (e) { 5493 if (callback) { 5494 throw e; 5495 } 5496 } 5497 }, 5498 abort: function() { 5499 if (callback) { 5500 callback(); 5501 } 5502 } 5503 }; 5504 } 5505 }); 5506 jQuery2.ajaxPrefilter(function(s) { 5507 if (s.crossDomain) { 5508 s.contents.script = false; 5509 } 5510 }); 5511 jQuery2.ajaxSetup({ 5512 accepts: { 5513 script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" 5514 }, 5515 contents: { 5516 script: /\b(?:java|ecma)script\b/ 5517 }, 5518 converters: { 5519 "text script": function(text) { 5520 jQuery2.globalEval(text); 5521 return text; 5522 } 5523 } 5524 }); 5525 jQuery2.ajaxPrefilter("script", function(s) { 5526 if (s.cache === void 0) { 5527 s.cache = false; 5528 } 5529 if (s.crossDomain) { 5530 s.type = "GET"; 5531 } 5532 }); 5533 jQuery2.ajaxTransport("script", function(s) { 5534 if (s.crossDomain || s.scriptAttrs) { 5535 var script, callback; 5536 return { 5537 send: function(_2, complete) { 5538 script = jQuery2("<script>").attr(s.scriptAttrs || {}).prop({ charset: s.scriptCharset, src: s.url }).on("load error", callback = function(evt) { 5539 script.remove(); 5540 callback = null; 5541 if (evt) { 5542 complete(evt.type === "error" ? 404 : 200, evt.type); 5543 } 5544 }); 5545 document2.head.appendChild(script[0]); 5546 }, 5547 abort: function() { 5548 if (callback) { 5549 callback(); 5550 } 5551 } 5552 }; 5553 } 5554 }); 5555 var oldCallbacks = [], rjsonp = /(=)\?(?=&|$)|\?\?/; 5556 jQuery2.ajaxSetup({ 5557 jsonp: "callback", 5558 jsonpCallback: function() { 5559 var callback = oldCallbacks.pop() || jQuery2.expando + "_" + nonce.guid++; 5560 this[callback] = true; 5561 return callback; 5562 } 5563 }); 5564 jQuery2.ajaxPrefilter("json jsonp", function(s, originalSettings, jqXHR) { 5565 var callbackName, overwritten, responseContainer, jsonProp = s.jsonp !== false && (rjsonp.test(s.url) ? "url" : typeof s.data === "string" && (s.contentType || "").indexOf("application/x-www-form-urlencoded") === 0 && rjsonp.test(s.data) && "data"); 5566 if (jsonProp || s.dataTypes[0] === "jsonp") { 5567 callbackName = s.jsonpCallback = isFunction2(s.jsonpCallback) ? s.jsonpCallback() : s.jsonpCallback; 5568 if (jsonProp) { 5569 s[jsonProp] = s[jsonProp].replace(rjsonp, "$1" + callbackName); 5570 } else if (s.jsonp !== false) { 5571 s.url += (rquery.test(s.url) ? "&" : "?") + s.jsonp + "=" + callbackName; 5572 } 5573 s.converters["script json"] = function() { 5574 if (!responseContainer) { 5575 jQuery2.error(callbackName + " was not called"); 5576 } 5577 return responseContainer[0]; 5578 }; 5579 s.dataTypes[0] = "json"; 5580 overwritten = window2[callbackName]; 5581 window2[callbackName] = function() { 5582 responseContainer = arguments; 5583 }; 5584 jqXHR.always(function() { 5585 if (overwritten === void 0) { 5586 jQuery2(window2).removeProp(callbackName); 5587 } else { 5588 window2[callbackName] = overwritten; 5589 } 5590 if (s[callbackName]) { 5591 s.jsonpCallback = originalSettings.jsonpCallback; 5592 oldCallbacks.push(callbackName); 5593 } 5594 if (responseContainer && isFunction2(overwritten)) { 5595 overwritten(responseContainer[0]); 5596 } 5597 responseContainer = overwritten = void 0; 5598 }); 5599 return "script"; 5600 } 5601 }); 5602 support.createHTMLDocument = function() { 5603 var body = document2.implementation.createHTMLDocument("").body; 5604 body.innerHTML = "<form></form><form></form>"; 5605 return body.childNodes.length === 2; 5606 }(); 5607 jQuery2.parseHTML = function(data, context, keepScripts) { 5608 if (typeof data !== "string") { 5609 return []; 5610 } 5611 if (typeof context === "boolean") { 5612 keepScripts = context; 5613 context = false; 5614 } 5615 var base, parsed, scripts; 5616 if (!context) { 5617 if (support.createHTMLDocument) { 5618 context = document2.implementation.createHTMLDocument(""); 5619 base = context.createElement("base"); 5620 base.href = document2.location.href; 5621 context.head.appendChild(base); 5622 } else { 5623 context = document2; 5624 } 5625 } 5626 parsed = rsingleTag.exec(data); 5627 scripts = !keepScripts && []; 5628 if (parsed) { 5629 return [context.createElement(parsed[1])]; 5630 } 5631 parsed = buildFragment([data], context, scripts); 5632 if (scripts && scripts.length) { 5633 jQuery2(scripts).remove(); 5634 } 5635 return jQuery2.merge([], parsed.childNodes); 5636 }; 5637 jQuery2.fn.load = function(url, params, callback) { 5638 var selector3, type, response, self2 = this, off = url.indexOf(" "); 5639 if (off > -1) { 5640 selector3 = stripAndCollapse(url.slice(off)); 5641 url = url.slice(0, off); 5642 } 5643 if (isFunction2(params)) { 5644 callback = params; 5645 params = void 0; 5646 } else if (params && typeof params === "object") { 5647 type = "POST"; 5648 } 5649 if (self2.length > 0) { 5650 jQuery2.ajax({ 5651 url, 5652 type: type || "GET", 5653 dataType: "html", 5654 data: params 5655 }).done(function(responseText) { 5656 response = arguments; 5657 self2.html(selector3 ? jQuery2("<div>").append(jQuery2.parseHTML(responseText)).find(selector3) : responseText); 5658 }).always(callback && function(jqXHR, status) { 5659 self2.each(function() { 5660 callback.apply(this, response || [jqXHR.responseText, status, jqXHR]); 5661 }); 5662 }); 5663 } 5664 return this; 5665 }; 5666 jQuery2.expr.pseudos.animated = function(elem) { 5667 return jQuery2.grep(jQuery2.timers, function(fn2) { 5668 return elem === fn2.elem; 5669 }).length; 5670 }; 5671 jQuery2.offset = { 5672 setOffset: function(elem, options, i) { 5673 var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition, position = jQuery2.css(elem, "position"), curElem = jQuery2(elem), props = {}; 5674 if (position === "static") { 5675 elem.style.position = "relative"; 5676 } 5677 curOffset = curElem.offset(); 5678 curCSSTop = jQuery2.css(elem, "top"); 5679 curCSSLeft = jQuery2.css(elem, "left"); 5680 calculatePosition = (position === "absolute" || position === "fixed") && (curCSSTop + curCSSLeft).indexOf("auto") > -1; 5681 if (calculatePosition) { 5682 curPosition = curElem.position(); 5683 curTop = curPosition.top; 5684 curLeft = curPosition.left; 5685 } else { 5686 curTop = parseFloat(curCSSTop) || 0; 5687 curLeft = parseFloat(curCSSLeft) || 0; 5688 } 5689 if (isFunction2(options)) { 5690 options = options.call(elem, i, jQuery2.extend({}, curOffset)); 5691 } 5692 if (options.top != null) { 5693 props.top = options.top - curOffset.top + curTop; 5694 } 5695 if (options.left != null) { 5696 props.left = options.left - curOffset.left + curLeft; 5697 } 5698 if ("using" in options) { 5699 options.using.call(elem, props); 5700 } else { 5701 curElem.css(props); 5702 } 5703 } 5704 }; 5705 jQuery2.fn.extend({ 5706 offset: function(options) { 5707 if (arguments.length) { 5708 return options === void 0 ? this : this.each(function(i) { 5709 jQuery2.offset.setOffset(this, options, i); 5710 }); 5711 } 5712 var rect, win, elem = this[0]; 5713 if (!elem) { 5714 return; 5715 } 5716 if (!elem.getClientRects().length) { 5717 return { top: 0, left: 0 }; 5718 } 5719 rect = elem.getBoundingClientRect(); 5720 win = elem.ownerDocument.defaultView; 5721 return { 5722 top: rect.top + win.pageYOffset, 5723 left: rect.left + win.pageXOffset 5724 }; 5725 }, 5726 position: function() { 5727 if (!this[0]) { 5728 return; 5729 } 5730 var offsetParent, offset2, doc, elem = this[0], parentOffset = { top: 0, left: 0 }; 5731 if (jQuery2.css(elem, "position") === "fixed") { 5732 offset2 = elem.getBoundingClientRect(); 5733 } else { 5734 offset2 = this.offset(); 5735 doc = elem.ownerDocument; 5736 offsetParent = elem.offsetParent || doc.documentElement; 5737 while (offsetParent && (offsetParent === doc.body || offsetParent === doc.documentElement) && jQuery2.css(offsetParent, "position") === "static") { 5738 offsetParent = offsetParent.parentNode; 5739 } 5740 if (offsetParent && offsetParent !== elem && offsetParent.nodeType === 1) { 5741 parentOffset = jQuery2(offsetParent).offset(); 5742 parentOffset.top += jQuery2.css(offsetParent, "borderTopWidth", true); 5743 parentOffset.left += jQuery2.css(offsetParent, "borderLeftWidth", true); 5744 } 5745 } 5746 return { 5747 top: offset2.top - parentOffset.top - jQuery2.css(elem, "marginTop", true), 5748 left: offset2.left - parentOffset.left - jQuery2.css(elem, "marginLeft", true) 5749 }; 5750 }, 5751 offsetParent: function() { 5752 return this.map(function() { 5753 var offsetParent = this.offsetParent; 5754 while (offsetParent && jQuery2.css(offsetParent, "position") === "static") { 5755 offsetParent = offsetParent.offsetParent; 5756 } 5757 return offsetParent || documentElement; 5758 }); 5759 } 5760 }); 5761 jQuery2.each({ scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function(method, prop) { 5762 var top2 = prop === "pageYOffset"; 5763 jQuery2.fn[method] = function(val) { 5764 return access(this, function(elem, method2, val2) { 5765 var win; 5766 if (isWindow(elem)) { 5767 win = elem; 5768 } else if (elem.nodeType === 9) { 5769 win = elem.defaultView; 5770 } 5771 if (val2 === void 0) { 5772 return win ? win[prop] : elem[method2]; 5773 } 5774 if (win) { 5775 win.scrollTo(!top2 ? val2 : win.pageXOffset, top2 ? val2 : win.pageYOffset); 5776 } else { 5777 elem[method2] = val2; 5778 } 5779 }, method, val, arguments.length); 5780 }; 5781 }); 5782 jQuery2.each(["top", "left"], function(_i2, prop) { 5783 jQuery2.cssHooks[prop] = addGetHookIf(support.pixelPosition, function(elem, computed) { 5784 if (computed) { 5785 computed = curCSS(elem, prop); 5786 return rnumnonpx.test(computed) ? jQuery2(elem).position()[prop] + "px" : computed; 5787 } 5788 }); 5789 }); 5790 jQuery2.each({ Height: "height", Width: "width" }, function(name, type) { 5791 jQuery2.each({ 5792 padding: "inner" + name, 5793 content: type, 5794 "": "outer" + name 5795 }, function(defaultExtra, funcName) { 5796 jQuery2.fn[funcName] = function(margin, value) { 5797 var chainable = arguments.length && (defaultExtra || typeof margin !== "boolean"), extra = defaultExtra || (margin === true || value === true ? "margin" : "border"); 5798 return access(this, function(elem, type2, value2) { 5799 var doc; 5800 if (isWindow(elem)) { 5801 return funcName.indexOf("outer") === 0 ? elem["inner" + name] : elem.document.documentElement["client" + name]; 5802 } 5803 if (elem.nodeType === 9) { 5804 doc = elem.documentElement; 5805 return Math.max(elem.body["scroll" + name], doc["scroll" + name], elem.body["offset" + name], doc["offset" + name], doc["client" + name]); 5806 } 5807 return value2 === void 0 ? jQuery2.css(elem, type2, extra) : jQuery2.style(elem, type2, value2, extra); 5808 }, type, chainable ? margin : void 0, chainable); 5809 }; 5810 }); 5811 }); 5812 jQuery2.each([ 5813 "ajaxStart", 5814 "ajaxStop", 5815 "ajaxComplete", 5816 "ajaxError", 5817 "ajaxSuccess", 5818 "ajaxSend" 5819 ], function(_i2, type) { 5820 jQuery2.fn[type] = function(fn2) { 5821 return this.on(type, fn2); 5822 }; 5823 }); 5824 jQuery2.fn.extend({ 5825 bind: function(types, data, fn2) { 5826 return this.on(types, null, data, fn2); 5827 }, 5828 unbind: function(types, fn2) { 5829 return this.off(types, null, fn2); 5830 }, 5831 delegate: function(selector3, types, data, fn2) { 5832 return this.on(types, selector3, data, fn2); 5833 }, 5834 undelegate: function(selector3, types, fn2) { 5835 return arguments.length === 1 ? this.off(selector3, "**") : this.off(types, selector3 || "**", fn2); 5836 }, 5837 hover: function(fnOver, fnOut) { 5838 return this.mouseenter(fnOver).mouseleave(fnOut || fnOver); 5839 } 5840 }); 5841 jQuery2.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(_i2, name) { 5842 jQuery2.fn[name] = function(data, fn2) { 5843 return arguments.length > 0 ? this.on(name, null, data, fn2) : this.trigger(name); 5844 }; 5845 }); 5846 var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; 5847 jQuery2.proxy = function(fn2, context) { 5848 var tmp, args, proxy; 5849 if (typeof context === "string") { 5850 tmp = fn2[context]; 5851 context = fn2; 5852 fn2 = tmp; 5853 } 5854 if (!isFunction2(fn2)) { 5855 return void 0; 5856 } 5857 args = slice.call(arguments, 2); 5858 proxy = function() { 5859 return fn2.apply(context || this, args.concat(slice.call(arguments))); 5860 }; 5861 proxy.guid = fn2.guid = fn2.guid || jQuery2.guid++; 5862 return proxy; 5863 }; 5864 jQuery2.holdReady = function(hold) { 5865 if (hold) { 5866 jQuery2.readyWait++; 5867 } else { 5868 jQuery2.ready(true); 5869 } 5870 }; 5871 jQuery2.isArray = Array.isArray; 5872 jQuery2.parseJSON = JSON.parse; 5873 jQuery2.nodeName = nodeName; 5874 jQuery2.isFunction = isFunction2; 5875 jQuery2.isWindow = isWindow; 5876 jQuery2.camelCase = camelCase; 5877 jQuery2.type = toType; 5878 jQuery2.now = Date.now; 5879 jQuery2.isNumeric = function(obj) { 5880 var type = jQuery2.type(obj); 5881 return (type === "number" || type === "string") && !isNaN(obj - parseFloat(obj)); 5882 }; 5883 jQuery2.trim = function(text) { 5884 return text == null ? "" : (text + "").replace(rtrim, ""); 5885 }; 5886 if (typeof define === "function" && define.amd) { 5887 define("jquery", [], function() { 5888 return jQuery2; 5889 }); 5890 } 5891 var _jQuery = window2.jQuery, _$ = window2.$; 5892 jQuery2.noConflict = function(deep) { 5893 if (window2.$ === jQuery2) { 5894 window2.$ = _$; 5895 } 5896 if (deep && window2.jQuery === jQuery2) { 5897 window2.jQuery = _jQuery; 5898 } 5899 return jQuery2; 5900 }; 5901 if (typeof noGlobal === "undefined") { 5902 window2.jQuery = window2.$ = jQuery2; 5903 } 5904 return jQuery2; 5905 }); 5906 } 5907 }); 5908 5909
vendor: 4,052 bytes, lines 5909-6006
5909// node_modules/Lethargy/lethargy.js 5910 var require_lethargy = __commonJS({ 5911 "node_modules/Lethargy/lethargy.js"(exports) { 5912 (function() { 5913 var root; 5914 root = typeof exports !== "undefined" && exports !== null ? exports : this; 5915 root.Lethargy = function() { 5916 function Lethargy2(stability, sensitivity, tolerance, delay) { 5917 this.stability = stability != null ? Math.abs(stability) : 8; 5918 this.sensitivity = sensitivity != null ? 1 + Math.abs(sensitivity) : 100; 5919 this.tolerance = tolerance != null ? 1 + Math.abs(tolerance) : 1.1; 5920 this.delay = delay != null ? delay : 150; 5921 this.lastUpDeltas = function() { 5922 var i, ref2, results; 5923 results = []; 5924 for (i = 1, ref2 = this.stability * 2; 1 <= ref2 ? i <= ref2 : i >= ref2; 1 <= ref2 ? i++ : i--) { 5925 results.push(null); 5926 } 5927 return results; 5928 }.call(this); 5929 this.lastDownDeltas = function() { 5930 var i, ref2, results; 5931 results = []; 5932 for (i = 1, ref2 = this.stability * 2; 1 <= ref2 ? i <= ref2 : i >= ref2; 1 <= ref2 ? i++ : i--) { 5933 results.push(null); 5934 } 5935 return results; 5936 }.call(this); 5937 this.deltasTimestamp = function() { 5938 var i, ref2, results; 5939 results = []; 5940 for (i = 1, ref2 = this.stability * 2; 1 <= ref2 ? i <= ref2 : i >= ref2; 1 <= ref2 ? i++ : i--) { 5941 results.push(null); 5942 } 5943 return results; 5944 }.call(this); 5945 } 5946 Lethargy2.prototype.check = function(e) { 5947 var lastDelta; 5948 e = e.originalEvent || e; 5949 if (e.wheelDelta != null) { 5950 lastDelta = e.wheelDelta; 5951 } else if (e.deltaY != null) { 5952 lastDelta = e.deltaY * -40; 5953 } else if (e.detail != null || e.detail === 0) { 5954 lastDelta = e.detail * -40; 5955 } 5956 this.deltasTimestamp.push(Date.now()); 5957 this.deltasTimestamp.shift(); 5958 if (lastDelta > 0) { 5959 this.lastUpDeltas.push(lastDelta); 5960 this.lastUpDeltas.shift(); 5961 return this.isInertia(1); 5962 } else { 5963 this.lastDownDeltas.push(lastDelta); 5964 this.lastDownDeltas.shift(); 5965 return this.isInertia(-1); 5966 } 5967 return false; 5968 }; 5969 Lethargy2.prototype.isInertia = function(direction) { 5970 var lastDeltas, lastDeltasNew, lastDeltasOld, newAverage, newSum, oldAverage, oldSum; 5971 lastDeltas = direction === -1 ? this.lastDownDeltas : this.lastUpDeltas; 5972 if (lastDeltas[0] === null) { 5973 return direction; 5974 } 5975 if (this.deltasTimestamp[this.stability * 2 - 2] + this.delay > Date.now() && lastDeltas[0] === lastDeltas[this.stability * 2 - 1]) { 5976 return false; 5977 } 5978 lastDeltasOld = lastDeltas.slice(0, this.stability); 5979 lastDeltasNew = lastDeltas.slice(this.stability, this.stability * 2); 5980 oldSum = lastDeltasOld.reduce(function(t, s) { 5981 return t + s; 5982 }); 5983 newSum = lastDeltasNew.reduce(function(t, s) { 5984 return t + s; 5985 }); 5986 oldAverage = oldSum / lastDeltasOld.length; 5987 newAverage = newSum / lastDeltasNew.length; 5988 if (Math.abs(oldAverage) < Math.abs(newAverage * this.tolerance) && this.sensitivity < Math.abs(newAverage)) { 5989 return direction; 5990 } else { 5991 return false; 5992 } 5993 }; 5994 Lethargy2.prototype.showLastUpDeltas = function() { 5995 return this.lastUpDeltas; 5996 }; 5997 Lethargy2.prototype.showLastDownDeltas = function() { 5998 return this.lastDownDeltas; 5999 }; 6000 return Lethargy2; 6001 }(); 6002 }).call(exports); 6003 } 6004 }); 6005 6006
vendor: 9,778 bytes, lines 6006-6274
6006// node_modules/headroom.js/dist/headroom.js 6007 var require_headroom = __commonJS({ 6008 "node_modules/headroom.js/dist/headroom.js"(exports, module) { 6009 (function(global2, factory) { 6010 typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory() : typeof define === "function" && define.amd ? define(factory) : (global2 = global2 || self, global2.Headroom = factory()); 6011 })(exports, function() { 6012 "use strict"; 6013 function isBrowser() { 6014 return typeof window !== "undefined"; 6015 } 6016 function passiveEventsSupported() { 6017 var supported = false; 6018 try { 6019 var options = { 6020 get passive() { 6021 supported = true; 6022 } 6023 }; 6024 window.addEventListener("test", options, options); 6025 window.removeEventListener("test", options, options); 6026 } catch (err) { 6027 supported = false; 6028 } 6029 return supported; 6030 } 6031 function isSupported() { 6032 return !!(isBrowser() && function() { 6033 }.bind && "classList" in document.documentElement && Object.assign && Object.keys && requestAnimationFrame); 6034 } 6035 function isDocument(obj) { 6036 return obj.nodeType === 9; 6037 } 6038 function isWindow(obj) { 6039 return obj && obj.document && isDocument(obj.document); 6040 } 6041 function windowScroller(win) { 6042 var doc = win.document; 6043 var body = doc.body; 6044 var html = doc.documentElement; 6045 return { 6046 scrollHeight: function() { 6047 return Math.max(body.scrollHeight, html.scrollHeight, body.offsetHeight, html.offsetHeight, body.clientHeight, html.clientHeight); 6048 }, 6049 height: function() { 6050 return win.innerHeight || html.clientHeight || body.clientHeight; 6051 }, 6052 scrollY: function() { 6053 if (win.pageYOffset !== void 0) { 6054 return win.pageYOffset; 6055 } 6056 return (html || body.parentNode || body).scrollTop; 6057 } 6058 }; 6059 } 6060 function elementScroller(element) { 6061 return { 6062 scrollHeight: function() { 6063 return Math.max(element.scrollHeight, element.offsetHeight, element.clientHeight); 6064 }, 6065 height: function() { 6066 return Math.max(element.offsetHeight, element.clientHeight); 6067 }, 6068 scrollY: function() { 6069 return element.scrollTop; 6070 } 6071 }; 6072 } 6073 function createScroller(element) { 6074 return isWindow(element) ? windowScroller(element) : elementScroller(element); 6075 } 6076 function trackScroll(element, options, callback) { 6077 var isPassiveSupported = passiveEventsSupported(); 6078 var rafId; 6079 var scrolled = false; 6080 var scroller = createScroller(element); 6081 var lastScrollY = scroller.scrollY(); 6082 var details = {}; 6083 function update() { 6084 var scrollY = Math.round(scroller.scrollY()); 6085 var height = scroller.height(); 6086 var scrollHeight = scroller.scrollHeight(); 6087 details.scrollY = scrollY; 6088 details.lastScrollY = lastScrollY; 6089 details.direction = scrollY > lastScrollY ? "down" : "up"; 6090 details.distance = Math.abs(scrollY - lastScrollY); 6091 details.isOutOfBounds = scrollY < 0 || scrollY + height > scrollHeight; 6092 details.top = scrollY <= options.offset[details.direction]; 6093 details.bottom = scrollY + height >= scrollHeight; 6094 details.toleranceExceeded = details.distance > options.tolerance[details.direction]; 6095 callback(details); 6096 lastScrollY = scrollY; 6097 scrolled = false; 6098 } 6099 function handleScroll() { 6100 if (!scrolled) { 6101 scrolled = true; 6102 rafId = requestAnimationFrame(update); 6103 } 6104 } 6105 var eventOptions = isPassiveSupported ? { passive: true, capture: false } : false; 6106 element.addEventListener("scroll", handleScroll, eventOptions); 6107 update(); 6108 return { 6109 destroy: function() { 6110 cancelAnimationFrame(rafId); 6111 element.removeEventListener("scroll", handleScroll, eventOptions); 6112 } 6113 }; 6114 } 6115 function normalizeUpDown(t) { 6116 return t === Object(t) ? t : { down: t, up: t }; 6117 } 6118 function Headroom2(elem, options) { 6119 options = options || {}; 6120 Object.assign(this, Headroom2.options, options); 6121 this.classes = Object.assign({}, Headroom2.options.classes, options.classes); 6122 this.elem = elem; 6123 this.tolerance = normalizeUpDown(this.tolerance); 6124 this.offset = normalizeUpDown(this.offset); 6125 this.initialised = false; 6126 this.frozen = false; 6127 } 6128 Headroom2.prototype = { 6129 constructor: Headroom2, 6130 init: function() { 6131 if (Headroom2.cutsTheMustard && !this.initialised) { 6132 this.addClass("initial"); 6133 this.initialised = true; 6134 setTimeout(function(self2) { 6135 self2.scrollTracker = trackScroll(self2.scroller, { offset: self2.offset, tolerance: self2.tolerance }, self2.update.bind(self2)); 6136 }, 100, this); 6137 } 6138 return this; 6139 }, 6140 destroy: function() { 6141 this.initialised = false; 6142 Object.keys(this.classes).forEach(this.removeClass, this); 6143 this.scrollTracker.destroy(); 6144 }, 6145 unpin: function() { 6146 if (this.hasClass("pinned") || !this.hasClass("unpinned")) { 6147 this.addClass("unpinned"); 6148 this.removeClass("pinned"); 6149 if (this.onUnpin) { 6150 this.onUnpin.call(this); 6151 } 6152 } 6153 }, 6154 pin: function() { 6155 if (this.hasClass("unpinned")) { 6156 this.addClass("pinned"); 6157 this.removeClass("unpinned"); 6158 if (this.onPin) { 6159 this.onPin.call(this); 6160 } 6161 } 6162 }, 6163 freeze: function() { 6164 this.frozen = true; 6165 this.addClass("frozen"); 6166 }, 6167 unfreeze: function() { 6168 this.frozen = false; 6169 this.removeClass("frozen"); 6170 }, 6171 top: function() { 6172 if (!this.hasClass("top")) { 6173 this.addClass("top"); 6174 this.removeClass("notTop"); 6175 if (this.onTop) { 6176 this.onTop.call(this); 6177 } 6178 } 6179 }, 6180 notTop: function() { 6181 if (!this.hasClass("notTop")) { 6182 this.addClass("notTop"); 6183 this.removeClass("top"); 6184 if (this.onNotTop) { 6185 this.onNotTop.call(this); 6186 } 6187 } 6188 }, 6189 bottom: function() { 6190 if (!this.hasClass("bottom")) { 6191 this.addClass("bottom"); 6192 this.removeClass("notBottom"); 6193 if (this.onBottom) { 6194 this.onBottom.call(this); 6195 } 6196 } 6197 }, 6198 notBottom: function() { 6199 if (!this.hasClass("notBottom")) { 6200 this.addClass("notBottom"); 6201 this.removeClass("bottom"); 6202 if (this.onNotBottom) { 6203 this.onNotBottom.call(this); 6204 } 6205 } 6206 }, 6207 shouldUnpin: function(details) { 6208 var scrollingDown = details.direction === "down"; 6209 return scrollingDown && !details.top && details.toleranceExceeded; 6210 }, 6211 shouldPin: function(details) { 6212 var scrollingUp = details.direction === "up"; 6213 return scrollingUp && details.toleranceExceeded || details.top; 6214 }, 6215 addClass: function(className) { 6216 this.elem.classList.add.apply(this.elem.classList, this.classes[className].split(" ")); 6217 }, 6218 removeClass: function(className) { 6219 this.elem.classList.remove.apply(this.elem.classList, this.classes[className].split(" ")); 6220 }, 6221 hasClass: function(className) { 6222 return this.classes[className].split(" ").every(function(cls) { 6223 return this.classList.contains(cls); 6224 }, this.elem); 6225 }, 6226 update: function(details) { 6227 if (details.isOutOfBounds) { 6228 return; 6229 } 6230 if (this.frozen === true) { 6231 return; 6232 } 6233 if (details.top) { 6234 this.top(); 6235 } else { 6236 this.notTop(); 6237 } 6238 if (details.bottom) { 6239 this.bottom(); 6240 } else { 6241 this.notBottom(); 6242 } 6243 if (this.shouldUnpin(details)) { 6244 this.unpin(); 6245 } else if (this.shouldPin(details)) { 6246 this.pin(); 6247 } 6248 } 6249 }; 6250 Headroom2.options = { 6251 tolerance: { 6252 up: 0, 6253 down: 0 6254 }, 6255 offset: 0, 6256 scroller: isBrowser() ? window : null, 6257 classes: { 6258 frozen: "headroom--frozen", 6259 pinned: "headroom--pinned", 6260 unpinned: "headroom--unpinned", 6261 top: "headroom--top", 6262 notTop: "headroom--not-top", 6263 bottom: "headroom--bottom", 6264 notBottom: "headroom--not-bottom", 6265 initial: "headroom" 6266 } 6267 }; 6268 Headroom2.cutsTheMustard = isSupported(); 6269 return Headroom2; 6270 }); 6271 } 6272 }); 6273 6274
vendor: 233,359 bytes, lines 6274-11685
6274// node_modules/lodash/lodash.js 6275 var require_lodash = __commonJS({ 6276 "node_modules/lodash/lodash.js"(exports, module) { 6277 (function() { 6278 var undefined2; 6279 var VERSION = "4.17.21"; 6280 var LARGE_ARRAY_SIZE = 200; 6281 var CORE_ERROR_TEXT = "Unsupported core-js use. Try https://npms.io/search?q=ponyfill.", FUNC_ERROR_TEXT = "Expected a function", INVALID_TEMPL_VAR_ERROR_TEXT = "Invalid `variable` option passed into `_.template`"; 6282 var HASH_UNDEFINED = "__lodash_hash_undefined__"; 6283 var MAX_MEMOIZE_SIZE = 500; 6284 var PLACEHOLDER = "__lodash_placeholder__"; 6285 var CLONE_DEEP_FLAG = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG = 4; 6286 var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2; 6287 var WRAP_BIND_FLAG = 1, WRAP_BIND_KEY_FLAG = 2, WRAP_CURRY_BOUND_FLAG = 4, WRAP_CURRY_FLAG = 8, WRAP_CURRY_RIGHT_FLAG = 16, WRAP_PARTIAL_FLAG = 32, WRAP_PARTIAL_RIGHT_FLAG = 64, WRAP_ARY_FLAG = 128, WRAP_REARG_FLAG = 256, WRAP_FLIP_FLAG = 512; 6288 var DEFAULT_TRUNC_LENGTH = 30, DEFAULT_TRUNC_OMISSION = "..."; 6289 var HOT_COUNT = 800, HOT_SPAN = 16; 6290 var LAZY_FILTER_FLAG = 1, LAZY_MAP_FLAG = 2, LAZY_WHILE_FLAG = 3; 6291 var INFINITY = 1 / 0, MAX_SAFE_INTEGER = 9007199254740991, MAX_INTEGER = 17976931348623157e292, NAN = 0 / 0; 6292 var MAX_ARRAY_LENGTH = 4294967295, MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1, HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1; 6293 var wrapFlags = [ 6294 ["ary", WRAP_ARY_FLAG], 6295 ["bind", WRAP_BIND_FLAG], 6296 ["bindKey", WRAP_BIND_KEY_FLAG], 6297 ["curry", WRAP_CURRY_FLAG], 6298 ["curryRight", WRAP_CURRY_RIGHT_FLAG], 6299 ["flip", WRAP_FLIP_FLAG], 6300 ["partial", WRAP_PARTIAL_FLAG], 6301 ["partialRight", WRAP_PARTIAL_RIGHT_FLAG], 6302 ["rearg", WRAP_REARG_FLAG] 6303 ]; 6304 var argsTag = "[object Arguments]", arrayTag = "[object Array]", asyncTag = "[object AsyncFunction]", boolTag = "[object Boolean]", dateTag = "[object Date]", domExcTag = "[object DOMException]", errorTag = "[object Error]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", mapTag = "[object Map]", numberTag = "[object Number]", nullTag = "[object Null]", objectTag = "[object Object]", promiseTag = "[object Promise]", proxyTag = "[object Proxy]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", symbolTag = "[object Symbol]", undefinedTag = "[object Undefined]", weakMapTag = "[object WeakMap]", weakSetTag = "[object WeakSet]"; 6305 var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]"; 6306 var reEmptyStringLeading = /\b__p \+= '';/g, reEmptyStringMiddle = /\b(__p \+=) '' \+/g, reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g; 6307 var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g, reUnescapedHtml = /[&<>"']/g, reHasEscapedHtml = RegExp(reEscapedHtml.source), reHasUnescapedHtml = RegExp(reUnescapedHtml.source); 6308 var reEscape = /<%-([\s\S]+?)%>/g, reEvaluate = /<%([\s\S]+?)%>/g, reInterpolate = /<%=([\s\S]+?)%>/g; 6309 var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/, rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; 6310 var reRegExpChar = /[\\^$.*+?()[\]{}|]/g, reHasRegExpChar = RegExp(reRegExpChar.source); 6311 var reTrimStart = /^\s+/; 6312 var reWhitespace = /\s/; 6313 var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/, reSplitDetails = /,? & /; 6314 var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g; 6315 var reForbiddenIdentifierChars = /[()=,{}\[\]\/\s]/; 6316 var reEscapeChar = /\\(\\)?/g; 6317 var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g; 6318 var reFlags = /\w*$/; 6319 var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; 6320 var reIsBinary = /^0b[01]+$/i; 6321 var reIsHostCtor = /^\[object .+?Constructor\]$/; 6322 var reIsOctal = /^0o[0-7]+$/i; 6323 var reIsUint = /^(?:0|[1-9]\d*)$/; 6324 var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g; 6325 var reNoMatch = /($^)/; 6326 var reUnescapedString = /['\n\r\u2028\u2029\\]/g; 6327 var rsAstralRange = "\\ud800-\\udfff", rsComboMarksRange = "\\u0300-\\u036f", reComboHalfMarksRange = "\\ufe20-\\ufe2f", rsComboSymbolsRange = "\\u20d0-\\u20ff", rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsDingbatRange = "\\u2700-\\u27bf", rsLowerRange = "a-z\\xdf-\\xf6\\xf8-\\xff", rsMathOpRange = "\\xac\\xb1\\xd7\\xf7", rsNonCharRange = "\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf", rsPunctuationRange = "\\u2000-\\u206f", rsSpaceRange = " \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000", rsUpperRange = "A-Z\\xc0-\\xd6\\xd8-\\xde", rsVarRange = "\\ufe0e\\ufe0f", rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange; 6328 var rsApos = "['\u2019]", rsAstral = "[" + rsAstralRange + "]", rsBreak = "[" + rsBreakRange + "]", rsCombo = "[" + rsComboRange + "]", rsDigits = "\\d+", rsDingbat = "[" + rsDingbatRange + "]", rsLower = "[" + rsLowerRange + "]", rsMisc = "[^" + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + "]", rsFitz = "\\ud83c[\\udffb-\\udfff]", rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")", rsNonAstral = "[^" + rsAstralRange + "]", rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}", rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]", rsUpper = "[" + rsUpperRange + "]", rsZWJ = "\\u200d"; 6329 var rsMiscLower = "(?:" + rsLower + "|" + rsMisc + ")", rsMiscUpper = "(?:" + rsUpper + "|" + rsMisc + ")", rsOptContrLower = "(?:" + rsApos + "(?:d|ll|m|re|s|t|ve))?", rsOptContrUpper = "(?:" + rsApos + "(?:D|LL|M|RE|S|T|VE))?", reOptMod = rsModifier + "?", rsOptVar = "[" + rsVarRange + "]?", rsOptJoin = "(?:" + rsZWJ + "(?:" + [rsNonAstral, rsRegional, rsSurrPair].join("|") + ")" + rsOptVar + reOptMod + ")*", rsOrdLower = "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])", rsOrdUpper = "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", rsSeq = rsOptVar + reOptMod + rsOptJoin, rsEmoji = "(?:" + [rsDingbat, rsRegional, rsSurrPair].join("|") + ")" + rsSeq, rsSymbol = "(?:" + [rsNonAstral + rsCombo + "?", rsCombo, rsRegional, rsSurrPair, rsAstral].join("|") + ")"; 6330 var reApos = RegExp(rsApos, "g"); 6331 var reComboMark = RegExp(rsCombo, "g"); 6332 var reUnicode = RegExp(rsFitz + "(?=" + rsFitz + ")|" + rsSymbol + rsSeq, "g"); 6333 var reUnicodeWord = RegExp([ 6334 rsUpper + "?" + rsLower + "+" + rsOptContrLower + "(?=" + [rsBreak, rsUpper, "$"].join("|") + ")", 6335 rsMiscUpper + "+" + rsOptContrUpper + "(?=" + [rsBreak, rsUpper + rsMiscLower, "$"].join("|") + ")", 6336 rsUpper + "?" + rsMiscLower + "+" + rsOptContrLower, 6337 rsUpper + "+" + rsOptContrUpper, 6338 rsOrdUpper, 6339 rsOrdLower, 6340 rsDigits, 6341 rsEmoji 6342 ].join("|"), "g"); 6343 var reHasUnicode = RegExp("[" + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + "]"); 6344 var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/; 6345 var contextProps = [ 6346 "Array", 6347 "Buffer", 6348 "DataView", 6349 "Date", 6350 "Error", 6351 "Float32Array", 6352 "Float64Array", 6353 "Function", 6354 "Int8Array", 6355 "Int16Array", 6356 "Int32Array", 6357 "Map", 6358 "Math", 6359 "Object", 6360 "Promise", 6361 "RegExp", 6362 "Set", 6363 "String", 6364 "Symbol", 6365 "TypeError", 6366 "Uint8Array", 6367 "Uint8ClampedArray", 6368 "Uint16Array", 6369 "Uint32Array", 6370 "WeakMap", 6371 "_", 6372 "clearTimeout", 6373 "isFinite", 6374 "parseInt", 6375 "setTimeout" 6376 ]; 6377 var templateCounter = -1; 6378 var typedArrayTags = {}; 6379 typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true; 6380 typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; 6381 var cloneableTags = {}; 6382 cloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; 6383 cloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false; 6384 var deburredLetters = { 6385 "\xC0": "A", 6386 "\xC1": "A", 6387 "\xC2": "A", 6388 "\xC3": "A", 6389 "\xC4": "A", 6390 "\xC5": "A", 6391 "\xE0": "a", 6392 "\xE1": "a", 6393 "\xE2": "a", 6394 "\xE3": "a", 6395 "\xE4": "a", 6396 "\xE5": "a", 6397 "\xC7": "C", 6398 "\xE7": "c", 6399 "\xD0": "D", 6400 "\xF0": "d", 6401 "\xC8": "E", 6402 "\xC9": "E", 6403 "\xCA": "E", 6404 "\xCB": "E", 6405 "\xE8": "e", 6406 "\xE9": "e", 6407 "\xEA": "e", 6408 "\xEB": "e", 6409 "\xCC": "I", 6410 "\xCD": "I", 6411 "\xCE": "I", 6412 "\xCF": "I", 6413 "\xEC": "i", 6414 "\xED": "i", 6415 "\xEE": "i", 6416 "\xEF": "i", 6417 "\xD1": "N", 6418 "\xF1": "n", 6419 "\xD2": "O", 6420 "\xD3": "O", 6421 "\xD4": "O", 6422 "\xD5": "O", 6423 "\xD6": "O", 6424 "\xD8": "O", 6425 "\xF2": "o", 6426 "\xF3": "o", 6427 "\xF4": "o", 6428 "\xF5": "o", 6429 "\xF6": "o", 6430 "\xF8": "o", 6431 "\xD9": "U", 6432 "\xDA": "U", 6433 "\xDB": "U", 6434 "\xDC": "U", 6435 "\xF9": "u", 6436 "\xFA": "u", 6437 "\xFB": "u", 6438 "\xFC": "u", 6439 "\xDD": "Y", 6440 "\xFD": "y", 6441 "\xFF": "y", 6442 "\xC6": "Ae", 6443 "\xE6": "ae", 6444 "\xDE": "Th", 6445 "\xFE": "th", 6446 "\xDF": "ss", 6447 "\u0100": "A", 6448 "\u0102": "A", 6449 "\u0104": "A", 6450 "\u0101": "a", 6451 "\u0103": "a", 6452 "\u0105": "a", 6453 "\u0106": "C", 6454 "\u0108": "C", 6455 "\u010A": "C", 6456 "\u010C": "C", 6457 "\u0107": "c", 6458 "\u0109": "c", 6459 "\u010B": "c", 6460 "\u010D": "c", 6461 "\u010E": "D", 6462 "\u0110": "D", 6463 "\u010F": "d", 6464 "\u0111": "d", 6465 "\u0112": "E", 6466 "\u0114": "E", 6467 "\u0116": "E", 6468 "\u0118": "E", 6469 "\u011A": "E", 6470 "\u0113": "e", 6471 "\u0115": "e", 6472 "\u0117": "e", 6473 "\u0119": "e", 6474 "\u011B": "e", 6475 "\u011C": "G", 6476 "\u011E": "G", 6477 "\u0120": "G", 6478 "\u0122": "G", 6479 "\u011D": "g", 6480 "\u011F": "g", 6481 "\u0121": "g", 6482 "\u0123": "g", 6483 "\u0124": "H", 6484 "\u0126": "H", 6485 "\u0125": "h", 6486 "\u0127": "h", 6487 "\u0128": "I", 6488 "\u012A": "I", 6489 "\u012C": "I", 6490 "\u012E": "I", 6491 "\u0130": "I", 6492 "\u0129": "i", 6493 "\u012B": "i", 6494 "\u012D": "i", 6495 "\u012F": "i", 6496 "\u0131": "i", 6497 "\u0134": "J", 6498 "\u0135": "j", 6499 "\u0136": "K", 6500 "\u0137": "k", 6501 "\u0138": "k", 6502 "\u0139": "L", 6503 "\u013B": "L", 6504 "\u013D": "L", 6505 "\u013F": "L", 6506 "\u0141": "L", 6507 "\u013A": "l", 6508 "\u013C": "l", 6509 "\u013E": "l", 6510 "\u0140": "l", 6511 "\u0142": "l", 6512 "\u0143": "N", 6513 "\u0145": "N", 6514 "\u0147": "N", 6515 "\u014A": "N", 6516 "\u0144": "n", 6517 "\u0146": "n", 6518 "\u0148": "n", 6519 "\u014B": "n", 6520 "\u014C": "O", 6521 "\u014E": "O", 6522 "\u0150": "O", 6523 "\u014D": "o", 6524 "\u014F": "o", 6525 "\u0151": "o", 6526 "\u0154": "R", 6527 "\u0156": "R", 6528 "\u0158": "R", 6529 "\u0155": "r", 6530 "\u0157": "r", 6531 "\u0159": "r", 6532 "\u015A": "S", 6533 "\u015C": "S", 6534 "\u015E": "S", 6535 "\u0160": "S", 6536 "\u015B": "s", 6537 "\u015D": "s", 6538 "\u015F": "s", 6539 "\u0161": "s", 6540 "\u0162": "T", 6541 "\u0164": "T", 6542 "\u0166": "T", 6543 "\u0163": "t", 6544 "\u0165": "t", 6545 "\u0167": "t", 6546 "\u0168": "U", 6547 "\u016A": "U", 6548 "\u016C": "U", 6549 "\u016E": "U", 6550 "\u0170": "U", 6551 "\u0172": "U", 6552 "\u0169": "u", 6553 "\u016B": "u", 6554 "\u016D": "u", 6555 "\u016F": "u", 6556 "\u0171": "u", 6557 "\u0173": "u", 6558 "\u0174": "W", 6559 "\u0175": "w", 6560 "\u0176": "Y", 6561 "\u0177": "y", 6562 "\u0178": "Y", 6563 "\u0179": "Z", 6564 "\u017B": "Z", 6565 "\u017D": "Z", 6566 "\u017A": "z", 6567 "\u017C": "z", 6568 "\u017E": "z", 6569 "\u0132": "IJ", 6570 "\u0133": "ij", 6571 "\u0152": "Oe", 6572 "\u0153": "oe", 6573 "\u0149": "'n", 6574 "\u017F": "s" 6575 }; 6576 var htmlEscapes = { 6577 "&": "&", 6578 "<": "<", 6579 ">": ">", 6580 '"': """, 6581 "'": "'" 6582 }; 6583 var htmlUnescapes = { 6584 "&": "&", 6585 "<": "<", 6586 ">": ">", 6587 """: '"', 6588 "'": "'" 6589 }; 6590 var stringEscapes = { 6591 "\\": "\\", 6592 "'": "'", 6593 "\n": "n", 6594 "\r": "r", 6595 "\u2028": "u2028", 6596 "\u2029": "u2029" 6597 }; 6598 var freeParseFloat = parseFloat, freeParseInt = parseInt; 6599 var freeGlobal = typeof global == "object" && global && global.Object === Object && global; 6600 var freeSelf = typeof self == "object" && self && self.Object === Object && self; 6601 var root = freeGlobal || freeSelf || Function("return this")(); 6602 var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports; 6603 var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module; 6604 var moduleExports = freeModule && freeModule.exports === freeExports; 6605 var freeProcess = moduleExports && freeGlobal.process; 6606 var nodeUtil = function() { 6607 try { 6608 var types = freeModule && freeModule.require && freeModule.require("util").types; 6609 if (types) { 6610 return types; 6611 } 6612 return freeProcess && freeProcess.binding && freeProcess.binding("util"); 6613 } catch (e) { 6614 } 6615 }(); 6616 var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer, nodeIsDate = nodeUtil && nodeUtil.isDate, nodeIsMap = nodeUtil && nodeUtil.isMap, nodeIsRegExp = nodeUtil && nodeUtil.isRegExp, nodeIsSet = nodeUtil && nodeUtil.isSet, nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; 6617 function apply(func, thisArg, args) { 6618 switch (args.length) { 6619 case 0: 6620 return func.call(thisArg); 6621 case 1: 6622 return func.call(thisArg, args[0]); 6623 case 2: 6624 return func.call(thisArg, args[0], args[1]); 6625 case 3: 6626 return func.call(thisArg, args[0], args[1], args[2]); 6627 } 6628 return func.apply(thisArg, args); 6629 } 6630 function arrayAggregator(array, setter, iteratee, accumulator) { 6631 var index = -1, length = array == null ? 0 : array.length; 6632 while (++index < length) { 6633 var value = array[index]; 6634 setter(accumulator, value, iteratee(value), array); 6635 } 6636 return accumulator; 6637 } 6638 function arrayEach(array, iteratee) { 6639 var index = -1, length = array == null ? 0 : array.length; 6640 while (++index < length) { 6641 if (iteratee(array[index], index, array) === false) { 6642 break; 6643 } 6644 } 6645 return array; 6646 } 6647 function arrayEachRight(array, iteratee) { 6648 var length = array == null ? 0 : array.length; 6649 while (length--) { 6650 if (iteratee(array[length], length, array) === false) { 6651 break; 6652 } 6653 } 6654 return array; 6655 } 6656 function arrayEvery(array, predicate) { 6657 var index = -1, length = array == null ? 0 : array.length; 6658 while (++index < length) { 6659 if (!predicate(array[index], index, array)) { 6660 return false; 6661 } 6662 } 6663 return true; 6664 } 6665 function arrayFilter(array, predicate) { 6666 var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = []; 6667 while (++index < length) { 6668 var value = array[index]; 6669 if (predicate(value, index, array)) { 6670 result[resIndex++] = value; 6671 } 6672 } 6673 return result; 6674 } 6675 function arrayIncludes(array, value) { 6676 var length = array == null ? 0 : array.length; 6677 return !!length && baseIndexOf(array, value, 0) > -1; 6678 } 6679 function arrayIncludesWith(array, value, comparator) { 6680 var index = -1, length = array == null ? 0 : array.length; 6681 while (++index < length) { 6682 if (comparator(value, array[index])) { 6683 return true; 6684 } 6685 } 6686 return false; 6687 } 6688 function arrayMap(array, iteratee) { 6689 var index = -1, length = array == null ? 0 : array.length, result = Array(length); 6690 while (++index < length) { 6691 result[index] = iteratee(array[index], index, array); 6692 } 6693 return result; 6694 } 6695 function arrayPush(array, values) { 6696 var index = -1, length = values.length, offset2 = array.length; 6697 while (++index < length) { 6698 array[offset2 + index] = values[index]; 6699 } 6700 return array; 6701 } 6702 function arrayReduce(array, iteratee, accumulator, initAccum) { 6703 var index = -1, length = array == null ? 0 : array.length; 6704 if (initAccum && length) { 6705 accumulator = array[++index]; 6706 } 6707 while (++index < length) { 6708 accumulator = iteratee(accumulator, array[index], index, array); 6709 } 6710 return accumulator; 6711 } 6712 function arrayReduceRight(array, iteratee, accumulator, initAccum) { 6713 var length = array == null ? 0 : array.length; 6714 if (initAccum && length) { 6715 accumulator = array[--length]; 6716 } 6717 while (length--) { 6718 accumulator = iteratee(accumulator, array[length], length, array); 6719 } 6720 return accumulator; 6721 } 6722 function arraySome(array, predicate) { 6723 var index = -1, length = array == null ? 0 : array.length; 6724 while (++index < length) { 6725 if (predicate(array[index], index, array)) { 6726 return true; 6727 } 6728 } 6729 return false; 6730 } 6731 var asciiSize = baseProperty("length"); 6732 function asciiToArray(string) { 6733 return string.split(""); 6734 } 6735 function asciiWords(string) { 6736 return string.match(reAsciiWord) || []; 6737 } 6738 function baseFindKey(collection, predicate, eachFunc) { 6739 var result; 6740 eachFunc(collection, function(value, key, collection2) { 6741 if (predicate(value, key, collection2)) { 6742 result = key; 6743 return false; 6744 } 6745 }); 6746 return result; 6747 } 6748 function baseFindIndex(array, predicate, fromIndex, fromRight) { 6749 var length = array.length, index = fromIndex + (fromRight ? 1 : -1); 6750 while (fromRight ? index-- : ++index < length) { 6751 if (predicate(array[index], index, array)) { 6752 return index; 6753 } 6754 } 6755 return -1; 6756 } 6757 function baseIndexOf(array, value, fromIndex) { 6758 return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex); 6759 } 6760 function baseIndexOfWith(array, value, fromIndex, comparator) { 6761 var index = fromIndex - 1, length = array.length; 6762 while (++index < length) { 6763 if (comparator(array[index], value)) { 6764 return index; 6765 } 6766 } 6767 return -1; 6768 } 6769 function baseIsNaN(value) { 6770 return value !== value; 6771 } 6772 function baseMean(array, iteratee) { 6773 var length = array == null ? 0 : array.length; 6774 return length ? baseSum(array, iteratee) / length : NAN; 6775 } 6776 function baseProperty(key) { 6777 return function(object) { 6778 return object == null ? undefined2 : object[key]; 6779 }; 6780 } 6781 function basePropertyOf(object) { 6782 return function(key) { 6783 return object == null ? undefined2 : object[key]; 6784 }; 6785 } 6786 function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { 6787 eachFunc(collection, function(value, index, collection2) { 6788 accumulator = initAccum ? (initAccum = false, value) : iteratee(accumulator, value, index, collection2); 6789 }); 6790 return accumulator; 6791 } 6792 function baseSortBy(array, comparer) { 6793 var length = array.length; 6794 array.sort(comparer); 6795 while (length--) { 6796 array[length] = array[length].value; 6797 } 6798 return array; 6799 } 6800 function baseSum(array, iteratee) { 6801 var result, index = -1, length = array.length; 6802 while (++index < length) { 6803 var current = iteratee(array[index]); 6804 if (current !== undefined2) { 6805 result = result === undefined2 ? current : result + current; 6806 } 6807 } 6808 return result; 6809 } 6810 function baseTimes(n, iteratee) { 6811 var index = -1, result = Array(n); 6812 while (++index < n) { 6813 result[index] = iteratee(index); 6814 } 6815 return result; 6816 } 6817 function baseToPairs(object, props) { 6818 return arrayMap(props, function(key) { 6819 return [key, object[key]]; 6820 }); 6821 } 6822 function baseTrim(string) { 6823 return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, "") : string; 6824 } 6825 function baseUnary(func) { 6826 return function(value) { 6827 return func(value); 6828 }; 6829 } 6830 function baseValues(object, props) { 6831 return arrayMap(props, function(key) { 6832 return object[key]; 6833 }); 6834 } 6835 function cacheHas(cache, key) { 6836 return cache.has(key); 6837 } 6838 function charsStartIndex(strSymbols, chrSymbols) { 6839 var index = -1, length = strSymbols.length; 6840 while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) { 6841 } 6842 return index; 6843 } 6844 function charsEndIndex(strSymbols, chrSymbols) { 6845 var index = strSymbols.length; 6846 while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) { 6847 } 6848 return index; 6849 } 6850 function countHolders(array, placeholder) { 6851 var length = array.length, result = 0; 6852 while (length--) { 6853 if (array[length] === placeholder) { 6854 ++result; 6855 } 6856 } 6857 return result; 6858 } 6859 var deburrLetter = basePropertyOf(deburredLetters); 6860 var escapeHtmlChar = basePropertyOf(htmlEscapes); 6861 function escapeStringChar(chr) { 6862 return "\\" + stringEscapes[chr]; 6863 } 6864 function getValue(object, key) { 6865 return object == null ? undefined2 : object[key]; 6866 } 6867 function hasUnicode(string) { 6868 return reHasUnicode.test(string); 6869 } 6870 function hasUnicodeWord(string) { 6871 return reHasUnicodeWord.test(string); 6872 } 6873 function iteratorToArray(iterator) { 6874 var data, result = []; 6875 while (!(data = iterator.next()).done) { 6876 result.push(data.value); 6877 } 6878 return result; 6879 } 6880 function mapToArray(map) { 6881 var index = -1, result = Array(map.size); 6882 map.forEach(function(value, key) { 6883 result[++index] = [key, value]; 6884 }); 6885 return result; 6886 } 6887 function overArg(func, transform) { 6888 return function(arg) { 6889 return func(transform(arg)); 6890 }; 6891 } 6892 function replaceHolders(array, placeholder) { 6893 var index = -1, length = array.length, resIndex = 0, result = []; 6894 while (++index < length) { 6895 var value = array[index]; 6896 if (value === placeholder || value === PLACEHOLDER) { 6897 array[index] = PLACEHOLDER; 6898 result[resIndex++] = index; 6899 } 6900 } 6901 return result; 6902 } 6903 function setToArray(set) { 6904 var index = -1, result = Array(set.size); 6905 set.forEach(function(value) { 6906 result[++index] = value; 6907 }); 6908 return result; 6909 } 6910 function setToPairs(set) { 6911 var index = -1, result = Array(set.size); 6912 set.forEach(function(value) { 6913 result[++index] = [value, value]; 6914 }); 6915 return result; 6916 } 6917 function strictIndexOf(array, value, fromIndex) { 6918 var index = fromIndex - 1, length = array.length; 6919 while (++index < length) { 6920 if (array[index] === value) { 6921 return index; 6922 } 6923 } 6924 return -1; 6925 } 6926 function strictLastIndexOf(array, value, fromIndex) { 6927 var index = fromIndex + 1; 6928 while (index--) { 6929 if (array[index] === value) { 6930 return index; 6931 } 6932 } 6933 return index; 6934 } 6935 function stringSize(string) { 6936 return hasUnicode(string) ? unicodeSize(string) : asciiSize(string); 6937 } 6938 function stringToArray(string) { 6939 return hasUnicode(string) ? unicodeToArray(string) : asciiToArray(string); 6940 } 6941 function trimmedEndIndex(string) { 6942 var index = string.length; 6943 while (index-- && reWhitespace.test(string.charAt(index))) { 6944 } 6945 return index; 6946 } 6947 var unescapeHtmlChar = basePropertyOf(htmlUnescapes); 6948 function unicodeSize(string) { 6949 var result = reUnicode.lastIndex = 0; 6950 while (reUnicode.test(string)) { 6951 ++result; 6952 } 6953 return result; 6954 } 6955 function unicodeToArray(string) { 6956 return string.match(reUnicode) || []; 6957 } 6958 function unicodeWords(string) { 6959 return string.match(reUnicodeWord) || []; 6960 } 6961 var runInContext = function runInContext2(context) { 6962 context = context == null ? root : _2.defaults(root.Object(), context, _2.pick(root, contextProps)); 6963 var Array2 = context.Array, Date2 = context.Date, Error2 = context.Error, Function2 = context.Function, Math2 = context.Math, Object2 = context.Object, RegExp2 = context.RegExp, String2 = context.String, TypeError2 = context.TypeError; 6964 var arrayProto = Array2.prototype, funcProto = Function2.prototype, objectProto = Object2.prototype; 6965 var coreJsData = context["__core-js_shared__"]; 6966 var funcToString = funcProto.toString; 6967 var hasOwnProperty = objectProto.hasOwnProperty; 6968 var idCounter = 0; 6969 var maskSrcKey = function() { 6970 var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ""); 6971 return uid ? "Symbol(src)_1." + uid : ""; 6972 }(); 6973 var nativeObjectToString = objectProto.toString; 6974 var objectCtorString = funcToString.call(Object2); 6975 var oldDash = root._; 6976 var reIsNative = RegExp2("^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"); 6977 var Buffer2 = moduleExports ? context.Buffer : undefined2, Symbol2 = context.Symbol, Uint8Array2 = context.Uint8Array, allocUnsafe = Buffer2 ? Buffer2.allocUnsafe : undefined2, getPrototype = overArg(Object2.getPrototypeOf, Object2), objectCreate = Object2.create, propertyIsEnumerable = objectProto.propertyIsEnumerable, splice = arrayProto.splice, spreadableSymbol = Symbol2 ? Symbol2.isConcatSpreadable : undefined2, symIterator = Symbol2 ? Symbol2.iterator : undefined2, symToStringTag = Symbol2 ? Symbol2.toStringTag : undefined2; 6978 var defineProperty = function() { 6979 try { 6980 var func = getNative(Object2, "defineProperty"); 6981 func({}, "", {}); 6982 return func; 6983 } catch (e) { 6984 } 6985 }(); 6986 var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout, ctxNow = Date2 && Date2.now !== root.Date.now && Date2.now, ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout; 6987 var nativeCeil = Math2.ceil, nativeFloor = Math2.floor, nativeGetSymbols = Object2.getOwnPropertySymbols, nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : undefined2, nativeIsFinite = context.isFinite, nativeJoin = arrayProto.join, nativeKeys = overArg(Object2.keys, Object2), nativeMax = Math2.max, nativeMin = Math2.min, nativeNow = Date2.now, nativeParseInt = context.parseInt, nativeRandom = Math2.random, nativeReverse = arrayProto.reverse; 6988 var DataView = getNative(context, "DataView"), Map2 = getNative(context, "Map"), Promise2 = getNative(context, "Promise"), Set2 = getNative(context, "Set"), WeakMap = getNative(context, "WeakMap"), nativeCreate = getNative(Object2, "create"); 6989 var metaMap = WeakMap && new WeakMap(); 6990 var realNames = {}; 6991 var dataViewCtorString = toSource(DataView), mapCtorString = toSource(Map2), promiseCtorString = toSource(Promise2), setCtorString = toSource(Set2), weakMapCtorString = toSource(WeakMap); 6992 var symbolProto = Symbol2 ? Symbol2.prototype : undefined2, symbolValueOf = symbolProto ? symbolProto.valueOf : undefined2, symbolToString = symbolProto ? symbolProto.toString : undefined2; 6993 function lodash(value) { 6994 if (isObjectLike(value) && !isArray2(value) && !(value instanceof LazyWrapper)) { 6995 if (value instanceof LodashWrapper) { 6996 return value; 6997 } 6998 if (hasOwnProperty.call(value, "__wrapped__")) { 6999 return wrapperClone(value); 7000 } 7001 } 7002 return new LodashWrapper(value); 7003 } 7004 var baseCreate = function() { 7005 function object() { 7006 } 7007 return function(proto) { 7008 if (!isObject2(proto)) { 7009 return {}; 7010 } 7011 if (objectCreate) { 7012 return objectCreate(proto); 7013 } 7014 object.prototype = proto; 7015 var result2 = new object(); 7016 object.prototype = undefined2; 7017 return result2; 7018 }; 7019 }(); 7020 function baseLodash() { 7021 } 7022 function LodashWrapper(value, chainAll) { 7023 this.__wrapped__ = value; 7024 this.__actions__ = []; 7025 this.__chain__ = !!chainAll; 7026 this.__index__ = 0; 7027 this.__values__ = undefined2; 7028 } 7029 lodash.templateSettings = { 7030 "escape": reEscape, 7031 "evaluate": reEvaluate, 7032 "interpolate": reInterpolate, 7033 "variable": "", 7034 "imports": { 7035 "_": lodash 7036 } 7037 }; 7038 lodash.prototype = baseLodash.prototype; 7039 lodash.prototype.constructor = lodash; 7040 LodashWrapper.prototype = baseCreate(baseLodash.prototype); 7041 LodashWrapper.prototype.constructor = LodashWrapper; 7042 function LazyWrapper(value) { 7043 this.__wrapped__ = value; 7044 this.__actions__ = []; 7045 this.__dir__ = 1; 7046 this.__filtered__ = false; 7047 this.__iteratees__ = []; 7048 this.__takeCount__ = MAX_ARRAY_LENGTH; 7049 this.__views__ = []; 7050 } 7051 function lazyClone() { 7052 var result2 = new LazyWrapper(this.__wrapped__); 7053 result2.__actions__ = copyArray(this.__actions__); 7054 result2.__dir__ = this.__dir__; 7055 result2.__filtered__ = this.__filtered__; 7056 result2.__iteratees__ = copyArray(this.__iteratees__); 7057 result2.__takeCount__ = this.__takeCount__; 7058 result2.__views__ = copyArray(this.__views__); 7059 return result2; 7060 } 7061 function lazyReverse() { 7062 if (this.__filtered__) { 7063 var result2 = new LazyWrapper(this); 7064 result2.__dir__ = -1; 7065 result2.__filtered__ = true; 7066 } else { 7067 result2 = this.clone(); 7068 result2.__dir__ *= -1; 7069 } 7070 return result2; 7071 } 7072 function lazyValue() { 7073 var array = this.__wrapped__.value(), dir = this.__dir__, isArr = isArray2(array), isRight = dir < 0, arrLength = isArr ? array.length : 0, view = getView(0, arrLength, this.__views__), start2 = view.start, end2 = view.end, length = end2 - start2, index = isRight ? end2 : start2 - 1, iteratees = this.__iteratees__, iterLength = iteratees.length, resIndex = 0, takeCount = nativeMin(length, this.__takeCount__); 7074 if (!isArr || !isRight && arrLength == length && takeCount == length) { 7075 return baseWrapperValue(array, this.__actions__); 7076 } 7077 var result2 = []; 7078 outer: 7079 while (length-- && resIndex < takeCount) { 7080 index += dir; 7081 var iterIndex = -1, value = array[index]; 7082 while (++iterIndex < iterLength) { 7083 var data = iteratees[iterIndex], iteratee2 = data.iteratee, type = data.type, computed = iteratee2(value); 7084 if (type == LAZY_MAP_FLAG) { 7085 value = computed; 7086 } else if (!computed) { 7087 if (type == LAZY_FILTER_FLAG) { 7088 continue outer; 7089 } else { 7090 break outer; 7091 } 7092 } 7093 } 7094 result2[resIndex++] = value; 7095 } 7096 return result2; 7097 } 7098 LazyWrapper.prototype = baseCreate(baseLodash.prototype); 7099 LazyWrapper.prototype.constructor = LazyWrapper; 7100 function Hash(entries) { 7101 var index = -1, length = entries == null ? 0 : entries.length; 7102 this.clear(); 7103 while (++index < length) { 7104 var entry = entries[index]; 7105 this.set(entry[0], entry[1]); 7106 } 7107 } 7108 function hashClear() { 7109 this.__data__ = nativeCreate ? nativeCreate(null) : {}; 7110 this.size = 0; 7111 } 7112 function hashDelete(key) { 7113 var result2 = this.has(key) && delete this.__data__[key]; 7114 this.size -= result2 ? 1 : 0; 7115 return result2; 7116 } 7117 function hashGet(key) { 7118 var data = this.__data__; 7119 if (nativeCreate) { 7120 var result2 = data[key]; 7121 return result2 === HASH_UNDEFINED ? undefined2 : result2; 7122 } 7123 return hasOwnProperty.call(data, key) ? data[key] : undefined2; 7124 } 7125 function hashHas(key) { 7126 var data = this.__data__; 7127 return nativeCreate ? data[key] !== undefined2 : hasOwnProperty.call(data, key); 7128 } 7129 function hashSet(key, value) { 7130 var data = this.__data__; 7131 this.size += this.has(key) ? 0 : 1; 7132 data[key] = nativeCreate && value === undefined2 ? HASH_UNDEFINED : value; 7133 return this; 7134 } 7135 Hash.prototype.clear = hashClear; 7136 Hash.prototype["delete"] = hashDelete; 7137 Hash.prototype.get = hashGet; 7138 Hash.prototype.has = hashHas; 7139 Hash.prototype.set = hashSet; 7140 function ListCache(entries) { 7141 var index = -1, length = entries == null ? 0 : entries.length; 7142 this.clear(); 7143 while (++index < length) { 7144 var entry = entries[index]; 7145 this.set(entry[0], entry[1]); 7146 } 7147 } 7148 function listCacheClear() { 7149 this.__data__ = []; 7150 this.size = 0; 7151 } 7152 function listCacheDelete(key) { 7153 var data = this.__data__, index = assocIndexOf(data, key); 7154 if (index < 0) { 7155 return false; 7156 } 7157 var lastIndex = data.length - 1; 7158 if (index == lastIndex) { 7159 data.pop(); 7160 } else { 7161 splice.call(data, index, 1); 7162 } 7163 --this.size; 7164 return true; 7165 } 7166 function listCacheGet(key) { 7167 var data = this.__data__, index = assocIndexOf(data, key); 7168 return index < 0 ? undefined2 : data[index][1]; 7169 } 7170 function listCacheHas(key) { 7171 return assocIndexOf(this.__data__, key) > -1; 7172 } 7173 function listCacheSet(key, value) { 7174 var data = this.__data__, index = assocIndexOf(data, key); 7175 if (index < 0) { 7176 ++this.size; 7177 data.push([key, value]); 7178 } else { 7179 data[index][1] = value; 7180 } 7181 return this; 7182 } 7183 ListCache.prototype.clear = listCacheClear; 7184 ListCache.prototype["delete"] = listCacheDelete; 7185 ListCache.prototype.get = listCacheGet; 7186 ListCache.prototype.has = listCacheHas; 7187 ListCache.prototype.set = listCacheSet; 7188 function MapCache(entries) { 7189 var index = -1, length = entries == null ? 0 : entries.length; 7190 this.clear(); 7191 while (++index < length) { 7192 var entry = entries[index]; 7193 this.set(entry[0], entry[1]); 7194 } 7195 } 7196 function mapCacheClear() { 7197 this.size = 0; 7198 this.__data__ = { 7199 "hash": new Hash(), 7200 "map": new (Map2 || ListCache)(), 7201 "string": new Hash() 7202 }; 7203 } 7204 function mapCacheDelete(key) { 7205 var result2 = getMapData(this, key)["delete"](key); 7206 this.size -= result2 ? 1 : 0; 7207 return result2; 7208 } 7209 function mapCacheGet(key) { 7210 return getMapData(this, key).get(key); 7211 } 7212 function mapCacheHas(key) { 7213 return getMapData(this, key).has(key); 7214 } 7215 function mapCacheSet(key, value) { 7216 var data = getMapData(this, key), size2 = data.size; 7217 data.set(key, value); 7218 this.size += data.size == size2 ? 0 : 1; 7219 return this; 7220 } 7221 MapCache.prototype.clear = mapCacheClear; 7222 MapCache.prototype["delete"] = mapCacheDelete; 7223 MapCache.prototype.get = mapCacheGet; 7224 MapCache.prototype.has = mapCacheHas; 7225 MapCache.prototype.set = mapCacheSet; 7226 function SetCache(values2) { 7227 var index = -1, length = values2 == null ? 0 : values2.length; 7228 this.__data__ = new MapCache(); 7229 while (++index < length) { 7230 this.add(values2[index]); 7231 } 7232 } 7233 function setCacheAdd(value) { 7234 this.__data__.set(value, HASH_UNDEFINED); 7235 return this; 7236 } 7237 function setCacheHas(value) { 7238 return this.__data__.has(value); 7239 } 7240 SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; 7241 SetCache.prototype.has = setCacheHas; 7242 function Stack(entries) { 7243 var data = this.__data__ = new ListCache(entries); 7244 this.size = data.size; 7245 } 7246 function stackClear() { 7247 this.__data__ = new ListCache(); 7248 this.size = 0; 7249 } 7250 function stackDelete(key) { 7251 var data = this.__data__, result2 = data["delete"](key); 7252 this.size = data.size; 7253 return result2; 7254 } 7255 function stackGet(key) { 7256 return this.__data__.get(key); 7257 } 7258 function stackHas(key) { 7259 return this.__data__.has(key); 7260 } 7261 function stackSet(key, value) { 7262 var data = this.__data__; 7263 if (data instanceof ListCache) { 7264 var pairs = data.__data__; 7265 if (!Map2 || pairs.length < LARGE_ARRAY_SIZE - 1) { 7266 pairs.push([key, value]); 7267 this.size = ++data.size; 7268 return this; 7269 } 7270 data = this.__data__ = new MapCache(pairs); 7271 } 7272 data.set(key, value); 7273 this.size = data.size; 7274 return this; 7275 } 7276 Stack.prototype.clear = stackClear; 7277 Stack.prototype["delete"] = stackDelete; 7278 Stack.prototype.get = stackGet; 7279 Stack.prototype.has = stackHas; 7280 Stack.prototype.set = stackSet; 7281 function arrayLikeKeys(value, inherited) { 7282 var isArr = isArray2(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result2 = skipIndexes ? baseTimes(value.length, String2) : [], length = result2.length; 7283 for (var key in value) { 7284 if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && (key == "length" || isBuff && (key == "offset" || key == "parent") || isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || isIndex(key, length)))) { 7285 result2.push(key); 7286 } 7287 } 7288 return result2; 7289 } 7290 function arraySample(array) { 7291 var length = array.length; 7292 return length ? array[baseRandom(0, length - 1)] : undefined2; 7293 } 7294 function arraySampleSize(array, n) { 7295 return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length)); 7296 } 7297 function arrayShuffle(array) { 7298 return shuffleSelf(copyArray(array)); 7299 } 7300 function assignMergeValue(object, key, value) { 7301 if (value !== undefined2 && !eq(object[key], value) || value === undefined2 && !(key in object)) { 7302 baseAssignValue(object, key, value); 7303 } 7304 } 7305 function assignValue(object, key, value) { 7306 var objValue = object[key]; 7307 if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === undefined2 && !(key in object)) { 7308 baseAssignValue(object, key, value); 7309 } 7310 } 7311 function assocIndexOf(array, key) { 7312 var length = array.length; 7313 while (length--) { 7314 if (eq(array[length][0], key)) { 7315 return length; 7316 } 7317 } 7318 return -1; 7319 } 7320 function baseAggregator(collection, setter, iteratee2, accumulator) { 7321 baseEach(collection, function(value, key, collection2) { 7322 setter(accumulator, value, iteratee2(value), collection2); 7323 }); 7324 return accumulator; 7325 } 7326 function baseAssign(object, source) { 7327 return object && copyObject(source, keys(source), object); 7328 } 7329 function baseAssignIn(object, source) { 7330 return object && copyObject(source, keysIn(source), object); 7331 } 7332 function baseAssignValue(object, key, value) { 7333 if (key == "__proto__" && defineProperty) { 7334 defineProperty(object, key, { 7335 "configurable": true, 7336 "enumerable": true, 7337 "value": value, 7338 "writable": true 7339 }); 7340 } else { 7341 object[key] = value; 7342 } 7343 } 7344 function baseAt(object, paths) { 7345 var index = -1, length = paths.length, result2 = Array2(length), skip = object == null; 7346 while (++index < length) { 7347 result2[index] = skip ? undefined2 : get(object, paths[index]); 7348 } 7349 return result2; 7350 } 7351 function baseClamp(number, lower, upper) { 7352 if (number === number) { 7353 if (upper !== undefined2) { 7354 number = number <= upper ? number : upper; 7355 } 7356 if (lower !== undefined2) { 7357 number = number >= lower ? number : lower; 7358 } 7359 } 7360 return number; 7361 } 7362 function baseClone(value, bitmask, customizer, key, object, stack) { 7363 var result2, isDeep = bitmask & CLONE_DEEP_FLAG, isFlat = bitmask & CLONE_FLAT_FLAG, isFull = bitmask & CLONE_SYMBOLS_FLAG; 7364 if (customizer) { 7365 result2 = object ? customizer(value, key, object, stack) : customizer(value); 7366 } 7367 if (result2 !== undefined2) { 7368 return result2; 7369 } 7370 if (!isObject2(value)) { 7371 return value; 7372 } 7373 var isArr = isArray2(value); 7374 if (isArr) { 7375 result2 = initCloneArray(value); 7376 if (!isDeep) { 7377 return copyArray(value, result2); 7378 } 7379 } else { 7380 var tag = getTag(value), isFunc = tag == funcTag || tag == genTag; 7381 if (isBuffer(value)) { 7382 return cloneBuffer(value, isDeep); 7383 } 7384 if (tag == objectTag || tag == argsTag || isFunc && !object) { 7385 result2 = isFlat || isFunc ? {} : initCloneObject(value); 7386 if (!isDeep) { 7387 return isFlat ? copySymbolsIn(value, baseAssignIn(result2, value)) : copySymbols(value, baseAssign(result2, value)); 7388 } 7389 } else { 7390 if (!cloneableTags[tag]) { 7391 return object ? value : {}; 7392 } 7393 result2 = initCloneByTag(value, tag, isDeep); 7394 } 7395 } 7396 stack || (stack = new Stack()); 7397 var stacked = stack.get(value); 7398 if (stacked) { 7399 return stacked; 7400 } 7401 stack.set(value, result2); 7402 if (isSet(value)) { 7403 value.forEach(function(subValue) { 7404 result2.add(baseClone(subValue, bitmask, customizer, subValue, value, stack)); 7405 }); 7406 } else if (isMap(value)) { 7407 value.forEach(function(subValue, key2) { 7408 result2.set(key2, baseClone(subValue, bitmask, customizer, key2, value, stack)); 7409 }); 7410 } 7411 var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys; 7412 var props = isArr ? undefined2 : keysFunc(value); 7413 arrayEach(props || value, function(subValue, key2) { 7414 if (props) { 7415 key2 = subValue; 7416 subValue = value[key2]; 7417 } 7418 assignValue(result2, key2, baseClone(subValue, bitmask, customizer, key2, value, stack)); 7419 }); 7420 return result2; 7421 } 7422 function baseConforms(source) { 7423 var props = keys(source); 7424 return function(object) { 7425 return baseConformsTo(object, source, props); 7426 }; 7427 } 7428 function baseConformsTo(object, source, props) { 7429 var length = props.length; 7430 if (object == null) { 7431 return !length; 7432 } 7433 object = Object2(object); 7434 while (length--) { 7435 var key = props[length], predicate = source[key], value = object[key]; 7436 if (value === undefined2 && !(key in object) || !predicate(value)) { 7437 return false; 7438 } 7439 } 7440 return true; 7441 } 7442 function baseDelay(func, wait, args) { 7443 if (typeof func != "function") { 7444 throw new TypeError2(FUNC_ERROR_TEXT); 7445 } 7446 return setTimeout2(function() { 7447 func.apply(undefined2, args); 7448 }, wait); 7449 } 7450 function baseDifference(array, values2, iteratee2, comparator) { 7451 var index = -1, includes2 = arrayIncludes, isCommon = true, length = array.length, result2 = [], valuesLength = values2.length; 7452 if (!length) { 7453 return result2; 7454 } 7455 if (iteratee2) { 7456 values2 = arrayMap(values2, baseUnary(iteratee2)); 7457 } 7458 if (comparator) { 7459 includes2 = arrayIncludesWith; 7460 isCommon = false; 7461 } else if (values2.length >= LARGE_ARRAY_SIZE) { 7462 includes2 = cacheHas; 7463 isCommon = false; 7464 values2 = new SetCache(values2); 7465 } 7466 outer: 7467 while (++index < length) { 7468 var value = array[index], computed = iteratee2 == null ? value : iteratee2(value); 7469 value = comparator || value !== 0 ? value : 0; 7470 if (isCommon && computed === computed) { 7471 var valuesIndex = valuesLength; 7472 while (valuesIndex--) { 7473 if (values2[valuesIndex] === computed) { 7474 continue outer; 7475 } 7476 } 7477 result2.push(value); 7478 } else if (!includes2(values2, computed, comparator)) { 7479 result2.push(value); 7480 } 7481 } 7482 return result2; 7483 } 7484 var baseEach = createBaseEach(baseForOwn); 7485 var baseEachRight = createBaseEach(baseForOwnRight, true); 7486 function baseEvery(collection, predicate) { 7487 var result2 = true; 7488 baseEach(collection, function(value, index, collection2) { 7489 result2 = !!predicate(value, index, collection2); 7490 return result2; 7491 }); 7492 return result2; 7493 } 7494 function baseExtremum(array, iteratee2, comparator) { 7495 var index = -1, length = array.length; 7496 while (++index < length) { 7497 var value = array[index], current = iteratee2(value); 7498 if (current != null && (computed === undefined2 ? current === current && !isSymbol(current) : comparator(current, computed))) { 7499 var computed = current, result2 = value; 7500 } 7501 } 7502 return result2; 7503 } 7504 function baseFill(array, value, start2, end2) { 7505 var length = array.length; 7506 start2 = toInteger(start2); 7507 if (start2 < 0) { 7508 start2 = -start2 > length ? 0 : length + start2; 7509 } 7510 end2 = end2 === undefined2 || end2 > length ? length : toInteger(end2); 7511 if (end2 < 0) { 7512 end2 += length; 7513 } 7514 end2 = start2 > end2 ? 0 : toLength(end2); 7515 while (start2 < end2) { 7516 array[start2++] = value; 7517 } 7518 return array; 7519 } 7520 function baseFilter(collection, predicate) { 7521 var result2 = []; 7522 baseEach(collection, function(value, index, collection2) { 7523 if (predicate(value, index, collection2)) { 7524 result2.push(value); 7525 } 7526 }); 7527 return result2; 7528 } 7529 function baseFlatten(array, depth, predicate, isStrict, result2) { 7530 var index = -1, length = array.length; 7531 predicate || (predicate = isFlattenable); 7532 result2 || (result2 = []); 7533 while (++index < length) { 7534 var value = array[index]; 7535 if (depth > 0 && predicate(value)) { 7536 if (depth > 1) { 7537 baseFlatten(value, depth - 1, predicate, isStrict, result2); 7538 } else { 7539 arrayPush(result2, value); 7540 } 7541 } else if (!isStrict) { 7542 result2[result2.length] = value; 7543 } 7544 } 7545 return result2; 7546 } 7547 var baseFor = createBaseFor(); 7548 var baseForRight = createBaseFor(true); 7549 function baseForOwn(object, iteratee2) { 7550 return object && baseFor(object, iteratee2, keys); 7551 } 7552 function baseForOwnRight(object, iteratee2) { 7553 return object && baseForRight(object, iteratee2, keys); 7554 } 7555 function baseFunctions(object, props) { 7556 return arrayFilter(props, function(key) { 7557 return isFunction2(object[key]); 7558 }); 7559 } 7560 function baseGet(object, path) { 7561 path = castPath(path, object); 7562 var index = 0, length = path.length; 7563 while (object != null && index < length) { 7564 object = object[toKey(path[index++])]; 7565 } 7566 return index && index == length ? object : undefined2; 7567 } 7568 function baseGetAllKeys(object, keysFunc, symbolsFunc) { 7569 var result2 = keysFunc(object); 7570 return isArray2(object) ? result2 : arrayPush(result2, symbolsFunc(object)); 7571 } 7572 function baseGetTag(value) { 7573 if (value == null) { 7574 return value === undefined2 ? undefinedTag : nullTag; 7575 } 7576 return symToStringTag && symToStringTag in Object2(value) ? getRawTag(value) : objectToString(value); 7577 } 7578 function baseGt(value, other) { 7579 return value > other; 7580 } 7581 function baseHas(object, key) { 7582 return object != null && hasOwnProperty.call(object, key); 7583 } 7584 function baseHasIn(object, key) { 7585 return object != null && key in Object2(object); 7586 } 7587 function baseInRange(number, start2, end2) { 7588 return number >= nativeMin(start2, end2) && number < nativeMax(start2, end2); 7589 } 7590 function baseIntersection(arrays, iteratee2, comparator) { 7591 var includes2 = comparator ? arrayIncludesWith : arrayIncludes, length = arrays[0].length, othLength = arrays.length, othIndex = othLength, caches = Array2(othLength), maxLength = Infinity, result2 = []; 7592 while (othIndex--) { 7593 var array = arrays[othIndex]; 7594 if (othIndex && iteratee2) { 7595 array = arrayMap(array, baseUnary(iteratee2)); 7596 } 7597 maxLength = nativeMin(array.length, maxLength); 7598 caches[othIndex] = !comparator && (iteratee2 || length >= 120 && array.length >= 120) ? new SetCache(othIndex && array) : undefined2; 7599 } 7600 array = arrays[0]; 7601 var index = -1, seen = caches[0]; 7602 outer: 7603 while (++index < length && result2.length < maxLength) { 7604 var value = array[index], computed = iteratee2 ? iteratee2(value) : value; 7605 value = comparator || value !== 0 ? value : 0; 7606 if (!(seen ? cacheHas(seen, computed) : includes2(result2, computed, comparator))) { 7607 othIndex = othLength; 7608 while (--othIndex) { 7609 var cache = caches[othIndex]; 7610 if (!(cache ? cacheHas(cache, computed) : includes2(arrays[othIndex], computed, comparator))) { 7611 continue outer; 7612 } 7613 } 7614 if (seen) { 7615 seen.push(computed); 7616 } 7617 result2.push(value); 7618 } 7619 } 7620 return result2; 7621 } 7622 function baseInverter(object, setter, iteratee2, accumulator) { 7623 baseForOwn(object, function(value, key, object2) { 7624 setter(accumulator, iteratee2(value), key, object2); 7625 }); 7626 return accumulator; 7627 } 7628 function baseInvoke(object, path, args) { 7629 path = castPath(path, object); 7630 object = parent(object, path); 7631 var func = object == null ? object : object[toKey(last(path))]; 7632 return func == null ? undefined2 : apply(func, object, args); 7633 } 7634 function baseIsArguments(value) { 7635 return isObjectLike(value) && baseGetTag(value) == argsTag; 7636 } 7637 function baseIsArrayBuffer(value) { 7638 return isObjectLike(value) && baseGetTag(value) == arrayBufferTag; 7639 } 7640 function baseIsDate(value) { 7641 return isObjectLike(value) && baseGetTag(value) == dateTag; 7642 } 7643 function baseIsEqual(value, other, bitmask, customizer, stack) { 7644 if (value === other) { 7645 return true; 7646 } 7647 if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) { 7648 return value !== value && other !== other; 7649 } 7650 return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); 7651 } 7652 function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { 7653 var objIsArr = isArray2(object), othIsArr = isArray2(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other); 7654 objTag = objTag == argsTag ? objectTag : objTag; 7655 othTag = othTag == argsTag ? objectTag : othTag; 7656 var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag; 7657 if (isSameTag && isBuffer(object)) { 7658 if (!isBuffer(other)) { 7659 return false; 7660 } 7661 objIsArr = true; 7662 objIsObj = false; 7663 } 7664 if (isSameTag && !objIsObj) { 7665 stack || (stack = new Stack()); 7666 return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); 7667 } 7668 if (!(bitmask & COMPARE_PARTIAL_FLAG)) { 7669 var objIsWrapped = objIsObj && hasOwnProperty.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty.call(other, "__wrapped__"); 7670 if (objIsWrapped || othIsWrapped) { 7671 var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other; 7672 stack || (stack = new Stack()); 7673 return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); 7674 } 7675 } 7676 if (!isSameTag) { 7677 return false; 7678 } 7679 stack || (stack = new Stack()); 7680 return equalObjects(object, other, bitmask, customizer, equalFunc, stack); 7681 } 7682 function baseIsMap(value) { 7683 return isObjectLike(value) && getTag(value) == mapTag; 7684 } 7685 function baseIsMatch(object, source, matchData, customizer) { 7686 var index = matchData.length, length = index, noCustomizer = !customizer; 7687 if (object == null) { 7688 return !length; 7689 } 7690 object = Object2(object); 7691 while (index--) { 7692 var data = matchData[index]; 7693 if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) { 7694 return false; 7695 } 7696 } 7697 while (++index < length) { 7698 data = matchData[index]; 7699 var key = data[0], objValue = object[key], srcValue = data[1]; 7700 if (noCustomizer && data[2]) { 7701 if (objValue === undefined2 && !(key in object)) { 7702 return false; 7703 } 7704 } else { 7705 var stack = new Stack(); 7706 if (customizer) { 7707 var result2 = customizer(objValue, srcValue, key, object, source, stack); 7708 } 7709 if (!(result2 === undefined2 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) : result2)) { 7710 return false; 7711 } 7712 } 7713 } 7714 return true; 7715 } 7716 function baseIsNative(value) { 7717 if (!isObject2(value) || isMasked(value)) { 7718 return false; 7719 } 7720 var pattern = isFunction2(value) ? reIsNative : reIsHostCtor; 7721 return pattern.test(toSource(value)); 7722 } 7723 function baseIsRegExp(value) { 7724 return isObjectLike(value) && baseGetTag(value) == regexpTag; 7725 } 7726 function baseIsSet(value) { 7727 return isObjectLike(value) && getTag(value) == setTag; 7728 } 7729 function baseIsTypedArray(value) { 7730 return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; 7731 } 7732 function baseIteratee(value) { 7733 if (typeof value == "function") { 7734 return value; 7735 } 7736 if (value == null) { 7737 return identity; 7738 } 7739 if (typeof value == "object") { 7740 return isArray2(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value); 7741 } 7742 return property(value); 7743 } 7744 function baseKeys(object) { 7745 if (!isPrototype(object)) { 7746 return nativeKeys(object); 7747 } 7748 var result2 = []; 7749 for (var key in Object2(object)) { 7750 if (hasOwnProperty.call(object, key) && key != "constructor") { 7751 result2.push(key); 7752 } 7753 } 7754 return result2; 7755 } 7756 function baseKeysIn(object) { 7757 if (!isObject2(object)) { 7758 return nativeKeysIn(object); 7759 } 7760 var isProto = isPrototype(object), result2 = []; 7761 for (var key in object) { 7762 if (!(key == "constructor" && (isProto || !hasOwnProperty.call(object, key)))) { 7763 result2.push(key); 7764 } 7765 } 7766 return result2; 7767 } 7768 function baseLt(value, other) { 7769 return value < other; 7770 } 7771 function baseMap(collection, iteratee2) { 7772 var index = -1, result2 = isArrayLike(collection) ? Array2(collection.length) : []; 7773 baseEach(collection, function(value, key, collection2) { 7774 result2[++index] = iteratee2(value, key, collection2); 7775 }); 7776 return result2; 7777 } 7778 function baseMatches(source) { 7779 var matchData = getMatchData(source); 7780 if (matchData.length == 1 && matchData[0][2]) { 7781 return matchesStrictComparable(matchData[0][0], matchData[0][1]); 7782 } 7783 return function(object) { 7784 return object === source || baseIsMatch(object, source, matchData); 7785 }; 7786 } 7787 function baseMatchesProperty(path, srcValue) { 7788 if (isKey(path) && isStrictComparable(srcValue)) { 7789 return matchesStrictComparable(toKey(path), srcValue); 7790 } 7791 return function(object) { 7792 var objValue = get(object, path); 7793 return objValue === undefined2 && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); 7794 }; 7795 } 7796 function baseMerge(object, source, srcIndex, customizer, stack) { 7797 if (object === source) { 7798 return; 7799 } 7800 baseFor(source, function(srcValue, key) { 7801 stack || (stack = new Stack()); 7802 if (isObject2(srcValue)) { 7803 baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); 7804 } else { 7805 var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + "", object, source, stack) : undefined2; 7806 if (newValue === undefined2) { 7807 newValue = srcValue; 7808 } 7809 assignMergeValue(object, key, newValue); 7810 } 7811 }, keysIn); 7812 } 7813 function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { 7814 var objValue = safeGet(object, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue); 7815 if (stacked) { 7816 assignMergeValue(object, key, stacked); 7817 return; 7818 } 7819 var newValue = customizer ? customizer(objValue, srcValue, key + "", object, source, stack) : undefined2; 7820 var isCommon = newValue === undefined2; 7821 if (isCommon) { 7822 var isArr = isArray2(srcValue), isBuff = !isArr && isBuffer(srcValue), isTyped = !isArr && !isBuff && isTypedArray(srcValue); 7823 newValue = srcValue; 7824 if (isArr || isBuff || isTyped) { 7825 if (isArray2(objValue)) { 7826 newValue = objValue; 7827 } else if (isArrayLikeObject(objValue)) { 7828 newValue = copyArray(objValue); 7829 } else if (isBuff) { 7830 isCommon = false; 7831 newValue = cloneBuffer(srcValue, true); 7832 } else if (isTyped) { 7833 isCommon = false; 7834 newValue = cloneTypedArray(srcValue, true); 7835 } else { 7836 newValue = []; 7837 } 7838 } else if (isPlainObject(srcValue) || isArguments(srcValue)) { 7839 newValue = objValue; 7840 if (isArguments(objValue)) { 7841 newValue = toPlainObject(objValue); 7842 } else if (!isObject2(objValue) || isFunction2(objValue)) { 7843 newValue = initCloneObject(srcValue); 7844 } 7845 } else { 7846 isCommon = false; 7847 } 7848 } 7849 if (isCommon) { 7850 stack.set(srcValue, newValue); 7851 mergeFunc(newValue, srcValue, srcIndex, customizer, stack); 7852 stack["delete"](srcValue); 7853 } 7854 assignMergeValue(object, key, newValue); 7855 } 7856 function baseNth(array, n) { 7857 var length = array.length; 7858 if (!length) { 7859 return; 7860 } 7861 n += n < 0 ? length : 0; 7862 return isIndex(n, length) ? array[n] : undefined2; 7863 } 7864 function baseOrderBy(collection, iteratees, orders) { 7865 if (iteratees.length) { 7866 iteratees = arrayMap(iteratees, function(iteratee2) { 7867 if (isArray2(iteratee2)) { 7868 return function(value) { 7869 return baseGet(value, iteratee2.length === 1 ? iteratee2[0] : iteratee2); 7870 }; 7871 } 7872 return iteratee2; 7873 }); 7874 } else { 7875 iteratees = [identity]; 7876 } 7877 var index = -1; 7878 iteratees = arrayMap(iteratees, baseUnary(getIteratee())); 7879 var result2 = baseMap(collection, function(value, key, collection2) { 7880 var criteria = arrayMap(iteratees, function(iteratee2) { 7881 return iteratee2(value); 7882 }); 7883 return { "criteria": criteria, "index": ++index, "value": value }; 7884 }); 7885 return baseSortBy(result2, function(object, other) { 7886 return compareMultiple(object, other, orders); 7887 }); 7888 } 7889 function basePick(object, paths) { 7890 return basePickBy(object, paths, function(value, path) { 7891 return hasIn(object, path); 7892 }); 7893 } 7894 function basePickBy(object, paths, predicate) { 7895 var index = -1, length = paths.length, result2 = {}; 7896 while (++index < length) { 7897 var path = paths[index], value = baseGet(object, path); 7898 if (predicate(value, path)) { 7899 baseSet(result2, castPath(path, object), value); 7900 } 7901 } 7902 return result2; 7903 } 7904 function basePropertyDeep(path) { 7905 return function(object) { 7906 return baseGet(object, path); 7907 }; 7908 } 7909 function basePullAll(array, values2, iteratee2, comparator) { 7910 var indexOf2 = comparator ? baseIndexOfWith : baseIndexOf, index = -1, length = values2.length, seen = array; 7911 if (array === values2) { 7912 values2 = copyArray(values2); 7913 } 7914 if (iteratee2) { 7915 seen = arrayMap(array, baseUnary(iteratee2)); 7916 } 7917 while (++index < length) { 7918 var fromIndex = 0, value = values2[index], computed = iteratee2 ? iteratee2(value) : value; 7919 while ((fromIndex = indexOf2(seen, computed, fromIndex, comparator)) > -1) { 7920 if (seen !== array) { 7921 splice.call(seen, fromIndex, 1); 7922 } 7923 splice.call(array, fromIndex, 1); 7924 } 7925 } 7926 return array; 7927 } 7928 function basePullAt(array, indexes) { 7929 var length = array ? indexes.length : 0, lastIndex = length - 1; 7930 while (length--) { 7931 var index = indexes[length]; 7932 if (length == lastIndex || index !== previous) { 7933 var previous = index; 7934 if (isIndex(index)) { 7935 splice.call(array, index, 1); 7936 } else { 7937 baseUnset(array, index); 7938 } 7939 } 7940 } 7941 return array; 7942 } 7943 function baseRandom(lower, upper) { 7944 return lower + nativeFloor(nativeRandom() * (upper - lower + 1)); 7945 } 7946 function baseRange(start2, end2, step, fromRight) { 7947 var index = -1, length = nativeMax(nativeCeil((end2 - start2) / (step || 1)), 0), result2 = Array2(length); 7948 while (length--) { 7949 result2[fromRight ? length : ++index] = start2; 7950 start2 += step; 7951 } 7952 return result2; 7953 } 7954 function baseRepeat(string, n) { 7955 var result2 = ""; 7956 if (!string || n < 1 || n > MAX_SAFE_INTEGER) { 7957 return result2; 7958 } 7959 do { 7960 if (n % 2) { 7961 result2 += string; 7962 } 7963 n = nativeFloor(n / 2); 7964 if (n) { 7965 string += string; 7966 } 7967 } while (n); 7968 return result2; 7969 } 7970 function baseRest(func, start2) { 7971 return setToString(overRest(func, start2, identity), func + ""); 7972 } 7973 function baseSample(collection) { 7974 return arraySample(values(collection)); 7975 } 7976 function baseSampleSize(collection, n) { 7977 var array = values(collection); 7978 return shuffleSelf(array, baseClamp(n, 0, array.length)); 7979 } 7980 function baseSet(object, path, value, customizer) { 7981 if (!isObject2(object)) { 7982 return object; 7983 } 7984 path = castPath(path, object); 7985 var index = -1, length = path.length, lastIndex = length - 1, nested = object; 7986 while (nested != null && ++index < length) { 7987 var key = toKey(path[index]), newValue = value; 7988 if (key === "__proto__" || key === "constructor" || key === "prototype") { 7989 return object; 7990 } 7991 if (index != lastIndex) { 7992 var objValue = nested[key]; 7993 newValue = customizer ? customizer(objValue, key, nested) : undefined2; 7994 if (newValue === undefined2) { 7995 newValue = isObject2(objValue) ? objValue : isIndex(path[index + 1]) ? [] : {}; 7996 } 7997 } 7998 assignValue(nested, key, newValue); 7999 nested = nested[key]; 8000 } 8001 return object; 8002 } 8003 var baseSetData = !metaMap ? identity : function(func, data) { 8004 metaMap.set(func, data); 8005 return func; 8006 }; 8007 var baseSetToString = !defineProperty ? identity : function(func, string) { 8008 return defineProperty(func, "toString", { 8009 "configurable": true, 8010 "enumerable": false, 8011 "value": constant(string), 8012 "writable": true 8013 }); 8014 }; 8015 function baseShuffle(collection) { 8016 return shuffleSelf(values(collection)); 8017 } 8018 function baseSlice(array, start2, end2) { 8019 var index = -1, length = array.length; 8020 if (start2 < 0) { 8021 start2 = -start2 > length ? 0 : length + start2; 8022 } 8023 end2 = end2 > length ? length : end2; 8024 if (end2 < 0) { 8025 end2 += length; 8026 } 8027 length = start2 > end2 ? 0 : end2 - start2 >>> 0; 8028 start2 >>>= 0; 8029 var result2 = Array2(length); 8030 while (++index < length) { 8031 result2[index] = array[index + start2]; 8032 } 8033 return result2; 8034 } 8035 function baseSome(collection, predicate) { 8036 var result2; 8037 baseEach(collection, function(value, index, collection2) { 8038 result2 = predicate(value, index, collection2); 8039 return !result2; 8040 }); 8041 return !!result2; 8042 } 8043 function baseSortedIndex(array, value, retHighest) { 8044 var low = 0, high = array == null ? low : array.length; 8045 if (typeof value == "number" && value === value && high <= HALF_MAX_ARRAY_LENGTH) { 8046 while (low < high) { 8047 var mid = low + high >>> 1, computed = array[mid]; 8048 if (computed !== null && !isSymbol(computed) && (retHighest ? computed <= value : computed < value)) { 8049 low = mid + 1; 8050 } else { 8051 high = mid; 8052 } 8053 } 8054 return high; 8055 } 8056 return baseSortedIndexBy(array, value, identity, retHighest); 8057 } 8058 function baseSortedIndexBy(array, value, iteratee2, retHighest) { 8059 var low = 0, high = array == null ? 0 : array.length; 8060 if (high === 0) { 8061 return 0; 8062 } 8063 value = iteratee2(value); 8064 var valIsNaN = value !== value, valIsNull = value === null, valIsSymbol = isSymbol(value), valIsUndefined = value === undefined2; 8065 while (low < high) { 8066 var mid = nativeFloor((low + high) / 2), computed = iteratee2(array[mid]), othIsDefined = computed !== undefined2, othIsNull = computed === null, othIsReflexive = computed === computed, othIsSymbol = isSymbol(computed); 8067 if (valIsNaN) { 8068 var setLow = retHighest || othIsReflexive; 8069 } else if (valIsUndefined) { 8070 setLow = othIsReflexive && (retHighest || othIsDefined); 8071 } else if (valIsNull) { 8072 setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull); 8073 } else if (valIsSymbol) { 8074 setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol); 8075 } else if (othIsNull || othIsSymbol) { 8076 setLow = false; 8077 } else { 8078 setLow = retHighest ? computed <= value : computed < value; 8079 } 8080 if (setLow) { 8081 low = mid + 1; 8082 } else { 8083 high = mid; 8084 } 8085 } 8086 return nativeMin(high, MAX_ARRAY_INDEX); 8087 } 8088 function baseSortedUniq(array, iteratee2) { 8089 var index = -1, length = array.length, resIndex = 0, result2 = []; 8090 while (++index < length) { 8091 var value = array[index], computed = iteratee2 ? iteratee2(value) : value; 8092 if (!index || !eq(computed, seen)) { 8093 var seen = computed; 8094 result2[resIndex++] = value === 0 ? 0 : value; 8095 } 8096 } 8097 return result2; 8098 } 8099 function baseToNumber(value) { 8100 if (typeof value == "number") { 8101 return value; 8102 } 8103 if (isSymbol(value)) { 8104 return NAN; 8105 } 8106 return +value; 8107 } 8108 function baseToString(value) { 8109 if (typeof value == "string") { 8110 return value; 8111 } 8112 if (isArray2(value)) { 8113 return arrayMap(value, baseToString) + ""; 8114 } 8115 if (isSymbol(value)) { 8116 return symbolToString ? symbolToString.call(value) : ""; 8117 } 8118 var result2 = value + ""; 8119 return result2 == "0" && 1 / value == -INFINITY ? "-0" : result2; 8120 } 8121 function baseUniq(array, iteratee2, comparator) { 8122 var index = -1, includes2 = arrayIncludes, length = array.length, isCommon = true, result2 = [], seen = result2; 8123 if (comparator) { 8124 isCommon = false; 8125 includes2 = arrayIncludesWith; 8126 } else if (length >= LARGE_ARRAY_SIZE) { 8127 var set2 = iteratee2 ? null : createSet(array); 8128 if (set2) { 8129 return setToArray(set2); 8130 } 8131 isCommon = false; 8132 includes2 = cacheHas; 8133 seen = new SetCache(); 8134 } else { 8135 seen = iteratee2 ? [] : result2; 8136 } 8137 outer: 8138 while (++index < length) { 8139 var value = array[index], computed = iteratee2 ? iteratee2(value) : value; 8140 value = comparator || value !== 0 ? value : 0; 8141 if (isCommon && computed === computed) { 8142 var seenIndex = seen.length; 8143 while (seenIndex--) { 8144 if (seen[seenIndex] === computed) { 8145 continue outer; 8146 } 8147 } 8148 if (iteratee2) { 8149 seen.push(computed); 8150 } 8151 result2.push(value); 8152 } else if (!includes2(seen, computed, comparator)) { 8153 if (seen !== result2) { 8154 seen.push(computed); 8155 } 8156 result2.push(value); 8157 } 8158 } 8159 return result2; 8160 } 8161 function baseUnset(object, path) { 8162 path = castPath(path, object); 8163 object = parent(object, path); 8164 return object == null || delete object[toKey(last(path))]; 8165 } 8166 function baseUpdate(object, path, updater, customizer) { 8167 return baseSet(object, path, updater(baseGet(object, path)), customizer); 8168 } 8169 function baseWhile(array, predicate, isDrop, fromRight) { 8170 var length = array.length, index = fromRight ? length : -1; 8171 while ((fromRight ? index-- : ++index < length) && predicate(array[index], index, array)) { 8172 } 8173 return isDrop ? baseSlice(array, fromRight ? 0 : index, fromRight ? index + 1 : length) : baseSlice(array, fromRight ? index + 1 : 0, fromRight ? length : index); 8174 } 8175 function baseWrapperValue(value, actions) { 8176 var result2 = value; 8177 if (result2 instanceof LazyWrapper) { 8178 result2 = result2.value(); 8179 } 8180 return arrayReduce(actions, function(result3, action) { 8181 return action.func.apply(action.thisArg, arrayPush([result3], action.args)); 8182 }, result2); 8183 } 8184 function baseXor(arrays, iteratee2, comparator) { 8185 var length = arrays.length; 8186 if (length < 2) { 8187 return length ? baseUniq(arrays[0]) : []; 8188 } 8189 var index = -1, result2 = Array2(length); 8190 while (++index < length) { 8191 var array = arrays[index], othIndex = -1; 8192 while (++othIndex < length) { 8193 if (othIndex != index) { 8194 result2[index] = baseDifference(result2[index] || array, arrays[othIndex], iteratee2, comparator); 8195 } 8196 } 8197 } 8198 return baseUniq(baseFlatten(result2, 1), iteratee2, comparator); 8199 } 8200 function baseZipObject(props, values2, assignFunc) { 8201 var index = -1, length = props.length, valsLength = values2.length, result2 = {}; 8202 while (++index < length) { 8203 var value = index < valsLength ? values2[index] : undefined2; 8204 assignFunc(result2, props[index], value); 8205 } 8206 return result2; 8207 } 8208 function castArrayLikeObject(value) { 8209 return isArrayLikeObject(value) ? value : []; 8210 } 8211 function castFunction(value) { 8212 return typeof value == "function" ? value : identity; 8213 } 8214 function castPath(value, object) { 8215 if (isArray2(value)) { 8216 return value; 8217 } 8218 return isKey(value, object) ? [value] : stringToPath(toString(value)); 8219 } 8220 var castRest = baseRest; 8221 function castSlice(array, start2, end2) { 8222 var length = array.length; 8223 end2 = end2 === undefined2 ? length : end2; 8224 return !start2 && end2 >= length ? array : baseSlice(array, start2, end2); 8225 } 8226 var clearTimeout2 = ctxClearTimeout || function(id) { 8227 return root.clearTimeout(id); 8228 }; 8229 function cloneBuffer(buffer, isDeep) { 8230 if (isDeep) { 8231 return buffer.slice(); 8232 } 8233 var length = buffer.length, result2 = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); 8234 buffer.copy(result2); 8235 return result2; 8236 } 8237 function cloneArrayBuffer(arrayBuffer) { 8238 var result2 = new arrayBuffer.constructor(arrayBuffer.byteLength); 8239 new Uint8Array2(result2).set(new Uint8Array2(arrayBuffer)); 8240 return result2; 8241 } 8242 function cloneDataView(dataView, isDeep) { 8243 var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; 8244 return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); 8245 } 8246 function cloneRegExp(regexp) { 8247 var result2 = new regexp.constructor(regexp.source, reFlags.exec(regexp)); 8248 result2.lastIndex = regexp.lastIndex; 8249 return result2; 8250 } 8251 function cloneSymbol(symbol) { 8252 return symbolValueOf ? Object2(symbolValueOf.call(symbol)) : {}; 8253 } 8254 function cloneTypedArray(typedArray, isDeep) { 8255 var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; 8256 return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); 8257 } 8258 function compareAscending(value, other) { 8259 if (value !== other) { 8260 var valIsDefined = value !== undefined2, valIsNull = value === null, valIsReflexive = value === value, valIsSymbol = isSymbol(value); 8261 var othIsDefined = other !== undefined2, othIsNull = other === null, othIsReflexive = other === other, othIsSymbol = isSymbol(other); 8262 if (!othIsNull && !othIsSymbol && !valIsSymbol && value > other || valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol || valIsNull && othIsDefined && othIsReflexive || !valIsDefined && othIsReflexive || !valIsReflexive) { 8263 return 1; 8264 } 8265 if (!valIsNull && !valIsSymbol && !othIsSymbol && value < other || othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol || othIsNull && valIsDefined && valIsReflexive || !othIsDefined && valIsReflexive || !othIsReflexive) { 8266 return -1; 8267 } 8268 } 8269 return 0; 8270 } 8271 function compareMultiple(object, other, orders) { 8272 var index = -1, objCriteria = object.criteria, othCriteria = other.criteria, length = objCriteria.length, ordersLength = orders.length; 8273 while (++index < length) { 8274 var result2 = compareAscending(objCriteria[index], othCriteria[index]); 8275 if (result2) { 8276 if (index >= ordersLength) { 8277 return result2; 8278 } 8279 var order2 = orders[index]; 8280 return result2 * (order2 == "desc" ? -1 : 1); 8281 } 8282 } 8283 return object.index - other.index; 8284 } 8285 function composeArgs(args, partials, holders, isCurried) { 8286 var argsIndex = -1, argsLength = args.length, holdersLength = holders.length, leftIndex = -1, leftLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result2 = Array2(leftLength + rangeLength), isUncurried = !isCurried; 8287 while (++leftIndex < leftLength) { 8288 result2[leftIndex] = partials[leftIndex]; 8289 } 8290 while (++argsIndex < holdersLength) { 8291 if (isUncurried || argsIndex < argsLength) { 8292 result2[holders[argsIndex]] = args[argsIndex]; 8293 } 8294 } 8295 while (rangeLength--) { 8296 result2[leftIndex++] = args[argsIndex++]; 8297 } 8298 return result2; 8299 } 8300 function composeArgsRight(args, partials, holders, isCurried) { 8301 var argsIndex = -1, argsLength = args.length, holdersIndex = -1, holdersLength = holders.length, rightIndex = -1, rightLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result2 = Array2(rangeLength + rightLength), isUncurried = !isCurried; 8302 while (++argsIndex < rangeLength) { 8303 result2[argsIndex] = args[argsIndex]; 8304 } 8305 var offset2 = argsIndex; 8306 while (++rightIndex < rightLength) { 8307 result2[offset2 + rightIndex] = partials[rightIndex]; 8308 } 8309 while (++holdersIndex < holdersLength) { 8310 if (isUncurried || argsIndex < argsLength) { 8311 result2[offset2 + holders[holdersIndex]] = args[argsIndex++]; 8312 } 8313 } 8314 return result2; 8315 } 8316 function copyArray(source, array) { 8317 var index = -1, length = source.length; 8318 array || (array = Array2(length)); 8319 while (++index < length) { 8320 array[index] = source[index]; 8321 } 8322 return array; 8323 } 8324 function copyObject(source, props, object, customizer) { 8325 var isNew = !object; 8326 object || (object = {}); 8327 var index = -1, length = props.length; 8328 while (++index < length) { 8329 var key = props[index]; 8330 var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined2; 8331 if (newValue === undefined2) { 8332 newValue = source[key]; 8333 } 8334 if (isNew) { 8335 baseAssignValue(object, key, newValue); 8336 } else { 8337 assignValue(object, key, newValue); 8338 } 8339 } 8340 return object; 8341 } 8342 function copySymbols(source, object) { 8343 return copyObject(source, getSymbols(source), object); 8344 } 8345 function copySymbolsIn(source, object) { 8346 return copyObject(source, getSymbolsIn(source), object); 8347 } 8348 function createAggregator(setter, initializer) { 8349 return function(collection, iteratee2) { 8350 var func = isArray2(collection) ? arrayAggregator : baseAggregator, accumulator = initializer ? initializer() : {}; 8351 return func(collection, setter, getIteratee(iteratee2, 2), accumulator); 8352 }; 8353 } 8354 function createAssigner(assigner) { 8355 return baseRest(function(object, sources) { 8356 var index = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : undefined2, guard = length > 2 ? sources[2] : undefined2; 8357 customizer = assigner.length > 3 && typeof customizer == "function" ? (length--, customizer) : undefined2; 8358 if (guard && isIterateeCall(sources[0], sources[1], guard)) { 8359 customizer = length < 3 ? undefined2 : customizer; 8360 length = 1; 8361 } 8362 object = Object2(object); 8363 while (++index < length) { 8364 var source = sources[index]; 8365 if (source) { 8366 assigner(object, source, index, customizer); 8367 } 8368 } 8369 return object; 8370 }); 8371 } 8372 function createBaseEach(eachFunc, fromRight) { 8373 return function(collection, iteratee2) { 8374 if (collection == null) { 8375 return collection; 8376 } 8377 if (!isArrayLike(collection)) { 8378 return eachFunc(collection, iteratee2); 8379 } 8380 var length = collection.length, index = fromRight ? length : -1, iterable = Object2(collection); 8381 while (fromRight ? index-- : ++index < length) { 8382 if (iteratee2(iterable[index], index, iterable) === false) { 8383 break; 8384 } 8385 } 8386 return collection; 8387 }; 8388 } 8389 function createBaseFor(fromRight) { 8390 return function(object, iteratee2, keysFunc) { 8391 var index = -1, iterable = Object2(object), props = keysFunc(object), length = props.length; 8392 while (length--) { 8393 var key = props[fromRight ? length : ++index]; 8394 if (iteratee2(iterable[key], key, iterable) === false) { 8395 break; 8396 } 8397 } 8398 return object; 8399 }; 8400 } 8401 function createBind(func, bitmask, thisArg) { 8402 var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func); 8403 function wrapper() { 8404 var fn2 = this && this !== root && this instanceof wrapper ? Ctor : func; 8405 return fn2.apply(isBind ? thisArg : this, arguments); 8406 } 8407 return wrapper; 8408 } 8409 function createCaseFirst(methodName) { 8410 return function(string) { 8411 string = toString(string); 8412 var strSymbols = hasUnicode(string) ? stringToArray(string) : undefined2; 8413 var chr = strSymbols ? strSymbols[0] : string.charAt(0); 8414 var trailing = strSymbols ? castSlice(strSymbols, 1).join("") : string.slice(1); 8415 return chr[methodName]() + trailing; 8416 }; 8417 } 8418 function createCompounder(callback) { 8419 return function(string) { 8420 return arrayReduce(words(deburr(string).replace(reApos, "")), callback, ""); 8421 }; 8422 } 8423 function createCtor(Ctor) { 8424 return function() { 8425 var args = arguments; 8426 switch (args.length) { 8427 case 0: 8428 return new Ctor(); 8429 case 1: 8430 return new Ctor(args[0]); 8431 case 2: 8432 return new Ctor(args[0], args[1]); 8433 case 3: 8434 return new Ctor(args[0], args[1], args[2]); 8435 case 4: 8436 return new Ctor(args[0], args[1], args[2], args[3]); 8437 case 5: 8438 return new Ctor(args[0], args[1], args[2], args[3], args[4]); 8439 case 6: 8440 return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]); 8441 case 7: 8442 return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]); 8443 } 8444 var thisBinding = baseCreate(Ctor.prototype), result2 = Ctor.apply(thisBinding, args); 8445 return isObject2(result2) ? result2 : thisBinding; 8446 }; 8447 } 8448 function createCurry(func, bitmask, arity) { 8449 var Ctor = createCtor(func); 8450 function wrapper() { 8451 var length = arguments.length, args = Array2(length), index = length, placeholder = getHolder(wrapper); 8452 while (index--) { 8453 args[index] = arguments[index]; 8454 } 8455 var holders = length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder ? [] : replaceHolders(args, placeholder); 8456 length -= holders.length; 8457 if (length < arity) { 8458 return createRecurry(func, bitmask, createHybrid, wrapper.placeholder, undefined2, args, holders, undefined2, undefined2, arity - length); 8459 } 8460 var fn2 = this && this !== root && this instanceof wrapper ? Ctor : func; 8461 return apply(fn2, this, args); 8462 } 8463 return wrapper; 8464 } 8465 function createFind(findIndexFunc) { 8466 return function(collection, predicate, fromIndex) { 8467 var iterable = Object2(collection); 8468 if (!isArrayLike(collection)) { 8469 var iteratee2 = getIteratee(predicate, 3); 8470 collection = keys(collection); 8471 predicate = function(key) { 8472 return iteratee2(iterable[key], key, iterable); 8473 }; 8474 } 8475 var index = findIndexFunc(collection, predicate, fromIndex); 8476 return index > -1 ? iterable[iteratee2 ? collection[index] : index] : undefined2; 8477 }; 8478 } 8479 function createFlow(fromRight) { 8480 return flatRest(function(funcs) { 8481 var length = funcs.length, index = length, prereq = LodashWrapper.prototype.thru; 8482 if (fromRight) { 8483 funcs.reverse(); 8484 } 8485 while (index--) { 8486 var func = funcs[index]; 8487 if (typeof func != "function") { 8488 throw new TypeError2(FUNC_ERROR_TEXT); 8489 } 8490 if (prereq && !wrapper && getFuncName(func) == "wrapper") { 8491 var wrapper = new LodashWrapper([], true); 8492 } 8493 } 8494 index = wrapper ? index : length; 8495 while (++index < length) { 8496 func = funcs[index]; 8497 var funcName = getFuncName(func), data = funcName == "wrapper" ? getData(func) : undefined2; 8498 if (data && isLaziable(data[0]) && data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && !data[4].length && data[9] == 1) { 8499 wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]); 8500 } else { 8501 wrapper = func.length == 1 && isLaziable(func) ? wrapper[funcName]() : wrapper.thru(func); 8502 } 8503 } 8504 return function() { 8505 var args = arguments, value = args[0]; 8506 if (wrapper && args.length == 1 && isArray2(value)) { 8507 return wrapper.plant(value).value(); 8508 } 8509 var index2 = 0, result2 = length ? funcs[index2].apply(this, args) : value; 8510 while (++index2 < length) { 8511 result2 = funcs[index2].call(this, result2); 8512 } 8513 return result2; 8514 }; 8515 }); 8516 } 8517 function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary2, arity) { 8518 var isAry = bitmask & WRAP_ARY_FLAG, isBind = bitmask & WRAP_BIND_FLAG, isBindKey = bitmask & WRAP_BIND_KEY_FLAG, isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG), isFlip = bitmask & WRAP_FLIP_FLAG, Ctor = isBindKey ? undefined2 : createCtor(func); 8519 function wrapper() { 8520 var length = arguments.length, args = Array2(length), index = length; 8521 while (index--) { 8522 args[index] = arguments[index]; 8523 } 8524 if (isCurried) { 8525 var placeholder = getHolder(wrapper), holdersCount = countHolders(args, placeholder); 8526 } 8527 if (partials) { 8528 args = composeArgs(args, partials, holders, isCurried); 8529 } 8530 if (partialsRight) { 8531 args = composeArgsRight(args, partialsRight, holdersRight, isCurried); 8532 } 8533 length -= holdersCount; 8534 if (isCurried && length < arity) { 8535 var newHolders = replaceHolders(args, placeholder); 8536 return createRecurry(func, bitmask, createHybrid, wrapper.placeholder, thisArg, args, newHolders, argPos, ary2, arity - length); 8537 } 8538 var thisBinding = isBind ? thisArg : this, fn2 = isBindKey ? thisBinding[func] : func; 8539 length = args.length; 8540 if (argPos) { 8541 args = reorder(args, argPos); 8542 } else if (isFlip && length > 1) { 8543 args.reverse(); 8544 } 8545 if (isAry && ary2 < length) { 8546 args.length = ary2; 8547 } 8548 if (this && this !== root && this instanceof wrapper) { 8549 fn2 = Ctor || createCtor(fn2); 8550 } 8551 return fn2.apply(thisBinding, args); 8552 } 8553 return wrapper; 8554 } 8555 function createInverter(setter, toIteratee) { 8556 return function(object, iteratee2) { 8557 return baseInverter(object, setter, toIteratee(iteratee2), {}); 8558 }; 8559 } 8560 function createMathOperation(operator, defaultValue) { 8561 return function(value, other) { 8562 var result2; 8563 if (value === undefined2 && other === undefined2) { 8564 return defaultValue; 8565 } 8566 if (value !== undefined2) { 8567 result2 = value; 8568 } 8569 if (other !== undefined2) { 8570 if (result2 === undefined2) { 8571 return other; 8572 } 8573 if (typeof value == "string" || typeof other == "string") { 8574 value = baseToString(value); 8575 other = baseToString(other); 8576 } else { 8577 value = baseToNumber(value); 8578 other = baseToNumber(other); 8579 } 8580 result2 = operator(value, other); 8581 } 8582 return result2; 8583 }; 8584 } 8585 function createOver(arrayFunc) { 8586 return flatRest(function(iteratees) { 8587 iteratees = arrayMap(iteratees, baseUnary(getIteratee())); 8588 return baseRest(function(args) { 8589 var thisArg = this; 8590 return arrayFunc(iteratees, function(iteratee2) { 8591 return apply(iteratee2, thisArg, args); 8592 }); 8593 }); 8594 }); 8595 } 8596 function createPadding(length, chars) { 8597 chars = chars === undefined2 ? " " : baseToString(chars); 8598 var charsLength = chars.length; 8599 if (charsLength < 2) { 8600 return charsLength ? baseRepeat(chars, length) : chars; 8601 } 8602 var result2 = baseRepeat(chars, nativeCeil(length / stringSize(chars))); 8603 return hasUnicode(chars) ? castSlice(stringToArray(result2), 0, length).join("") : result2.slice(0, length); 8604 } 8605 function createPartial(func, bitmask, thisArg, partials) { 8606 var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func); 8607 function wrapper() { 8608 var argsIndex = -1, argsLength = arguments.length, leftIndex = -1, leftLength = partials.length, args = Array2(leftLength + argsLength), fn2 = this && this !== root && this instanceof wrapper ? Ctor : func; 8609 while (++leftIndex < leftLength) { 8610 args[leftIndex] = partials[leftIndex]; 8611 } 8612 while (argsLength--) { 8613 args[leftIndex++] = arguments[++argsIndex]; 8614 } 8615 return apply(fn2, isBind ? thisArg : this, args); 8616 } 8617 return wrapper; 8618 } 8619 function createRange(fromRight) { 8620 return function(start2, end2, step) { 8621 if (step && typeof step != "number" && isIterateeCall(start2, end2, step)) { 8622 end2 = step = undefined2; 8623 } 8624 start2 = toFinite(start2); 8625 if (end2 === undefined2) { 8626 end2 = start2; 8627 start2 = 0; 8628 } else { 8629 end2 = toFinite(end2); 8630 } 8631 step = step === undefined2 ? start2 < end2 ? 1 : -1 : toFinite(step); 8632 return baseRange(start2, end2, step, fromRight); 8633 }; 8634 } 8635 function createRelationalOperation(operator) { 8636 return function(value, other) { 8637 if (!(typeof value == "string" && typeof other == "string")) { 8638 value = toNumber(value); 8639 other = toNumber(other); 8640 } 8641 return operator(value, other); 8642 }; 8643 } 8644 function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary2, arity) { 8645 var isCurry = bitmask & WRAP_CURRY_FLAG, newHolders = isCurry ? holders : undefined2, newHoldersRight = isCurry ? undefined2 : holders, newPartials = isCurry ? partials : undefined2, newPartialsRight = isCurry ? undefined2 : partials; 8646 bitmask |= isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG; 8647 bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG); 8648 if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) { 8649 bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG); 8650 } 8651 var newData = [ 8652 func, 8653 bitmask, 8654 thisArg, 8655 newPartials, 8656 newHolders, 8657 newPartialsRight, 8658 newHoldersRight, 8659 argPos, 8660 ary2, 8661 arity 8662 ]; 8663 var result2 = wrapFunc.apply(undefined2, newData); 8664 if (isLaziable(func)) { 8665 setData(result2, newData); 8666 } 8667 result2.placeholder = placeholder; 8668 return setWrapToString(result2, func, bitmask); 8669 } 8670 function createRound(methodName) { 8671 var func = Math2[methodName]; 8672 return function(number, precision) { 8673 number = toNumber(number); 8674 precision = precision == null ? 0 : nativeMin(toInteger(precision), 292); 8675 if (precision && nativeIsFinite(number)) { 8676 var pair = (toString(number) + "e").split("e"), value = func(pair[0] + "e" + (+pair[1] + precision)); 8677 pair = (toString(value) + "e").split("e"); 8678 return +(pair[0] + "e" + (+pair[1] - precision)); 8679 } 8680 return func(number); 8681 }; 8682 } 8683 var createSet = !(Set2 && 1 / setToArray(new Set2([, -0]))[1] == INFINITY) ? noop : function(values2) { 8684 return new Set2(values2); 8685 }; 8686 function createToPairs(keysFunc) { 8687 return function(object) { 8688 var tag = getTag(object); 8689 if (tag == mapTag) { 8690 return mapToArray(object); 8691 } 8692 if (tag == setTag) { 8693 return setToPairs(object); 8694 } 8695 return baseToPairs(object, keysFunc(object)); 8696 }; 8697 } 8698 function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary2, arity) { 8699 var isBindKey = bitmask & WRAP_BIND_KEY_FLAG; 8700 if (!isBindKey && typeof func != "function") { 8701 throw new TypeError2(FUNC_ERROR_TEXT); 8702 } 8703 var length = partials ? partials.length : 0; 8704 if (!length) { 8705 bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG); 8706 partials = holders = undefined2; 8707 } 8708 ary2 = ary2 === undefined2 ? ary2 : nativeMax(toInteger(ary2), 0); 8709 arity = arity === undefined2 ? arity : toInteger(arity); 8710 length -= holders ? holders.length : 0; 8711 if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) { 8712 var partialsRight = partials, holdersRight = holders; 8713 partials = holders = undefined2; 8714 } 8715 var data = isBindKey ? undefined2 : getData(func); 8716 var newData = [ 8717 func, 8718 bitmask, 8719 thisArg, 8720 partials, 8721 holders, 8722 partialsRight, 8723 holdersRight, 8724 argPos, 8725 ary2, 8726 arity 8727 ]; 8728 if (data) { 8729 mergeData(newData, data); 8730 } 8731 func = newData[0]; 8732 bitmask = newData[1]; 8733 thisArg = newData[2]; 8734 partials = newData[3]; 8735 holders = newData[4]; 8736 arity = newData[9] = newData[9] === undefined2 ? isBindKey ? 0 : func.length : nativeMax(newData[9] - length, 0); 8737 if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) { 8738 bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG); 8739 } 8740 if (!bitmask || bitmask == WRAP_BIND_FLAG) { 8741 var result2 = createBind(func, bitmask, thisArg); 8742 } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) { 8743 result2 = createCurry(func, bitmask, arity); 8744 } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) { 8745 result2 = createPartial(func, bitmask, thisArg, partials); 8746 } else { 8747 result2 = createHybrid.apply(undefined2, newData); 8748 } 8749 var setter = data ? baseSetData : setData; 8750 return setWrapToString(setter(result2, newData), func, bitmask); 8751 } 8752 function customDefaultsAssignIn(objValue, srcValue, key, object) { 8753 if (objValue === undefined2 || eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key)) { 8754 return srcValue; 8755 } 8756 return objValue; 8757 } 8758 function customDefaultsMerge(objValue, srcValue, key, object, source, stack) { 8759 if (isObject2(objValue) && isObject2(srcValue)) { 8760 stack.set(srcValue, objValue); 8761 baseMerge(objValue, srcValue, undefined2, customDefaultsMerge, stack); 8762 stack["delete"](srcValue); 8763 } 8764 return objValue; 8765 } 8766 function customOmitClone(value) { 8767 return isPlainObject(value) ? undefined2 : value; 8768 } 8769 function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { 8770 var isPartial = bitmask & COMPARE_PARTIAL_FLAG, arrLength = array.length, othLength = other.length; 8771 if (arrLength != othLength && !(isPartial && othLength > arrLength)) { 8772 return false; 8773 } 8774 var arrStacked = stack.get(array); 8775 var othStacked = stack.get(other); 8776 if (arrStacked && othStacked) { 8777 return arrStacked == other && othStacked == array; 8778 } 8779 var index = -1, result2 = true, seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : undefined2; 8780 stack.set(array, other); 8781 stack.set(other, array); 8782 while (++index < arrLength) { 8783 var arrValue = array[index], othValue = other[index]; 8784 if (customizer) { 8785 var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack); 8786 } 8787 if (compared !== undefined2) { 8788 if (compared) { 8789 continue; 8790 } 8791 result2 = false; 8792 break; 8793 } 8794 if (seen) { 8795 if (!arraySome(other, function(othValue2, othIndex) { 8796 if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) { 8797 return seen.push(othIndex); 8798 } 8799 })) { 8800 result2 = false; 8801 break; 8802 } 8803 } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { 8804 result2 = false; 8805 break; 8806 } 8807 } 8808 stack["delete"](array); 8809 stack["delete"](other); 8810 return result2; 8811 } 8812 function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { 8813 switch (tag) { 8814 case dataViewTag: 8815 if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) { 8816 return false; 8817 } 8818 object = object.buffer; 8819 other = other.buffer; 8820 case arrayBufferTag: 8821 if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array2(object), new Uint8Array2(other))) { 8822 return false; 8823 } 8824 return true; 8825 case boolTag: 8826 case dateTag: 8827 case numberTag: 8828 return eq(+object, +other); 8829 case errorTag: 8830 return object.name == other.name && object.message == other.message; 8831 case regexpTag: 8832 case stringTag: 8833 return object == other + ""; 8834 case mapTag: 8835 var convert = mapToArray; 8836 case setTag: 8837 var isPartial = bitmask & COMPARE_PARTIAL_FLAG; 8838 convert || (convert = setToArray); 8839 if (object.size != other.size && !isPartial) { 8840 return false; 8841 } 8842 var stacked = stack.get(object); 8843 if (stacked) { 8844 return stacked == other; 8845 } 8846 bitmask |= COMPARE_UNORDERED_FLAG; 8847 stack.set(object, other); 8848 var result2 = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); 8849 stack["delete"](object); 8850 return result2; 8851 case symbolTag: 8852 if (symbolValueOf) { 8853 return symbolValueOf.call(object) == symbolValueOf.call(other); 8854 } 8855 } 8856 return false; 8857 } 8858 function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { 8859 var isPartial = bitmask & COMPARE_PARTIAL_FLAG, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length; 8860 if (objLength != othLength && !isPartial) { 8861 return false; 8862 } 8863 var index = objLength; 8864 while (index--) { 8865 var key = objProps[index]; 8866 if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { 8867 return false; 8868 } 8869 } 8870 var objStacked = stack.get(object); 8871 var othStacked = stack.get(other); 8872 if (objStacked && othStacked) { 8873 return objStacked == other && othStacked == object; 8874 } 8875 var result2 = true; 8876 stack.set(object, other); 8877 stack.set(other, object); 8878 var skipCtor = isPartial; 8879 while (++index < objLength) { 8880 key = objProps[index]; 8881 var objValue = object[key], othValue = other[key]; 8882 if (customizer) { 8883 var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack); 8884 } 8885 if (!(compared === undefined2 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) { 8886 result2 = false; 8887 break; 8888 } 8889 skipCtor || (skipCtor = key == "constructor"); 8890 } 8891 if (result2 && !skipCtor) { 8892 var objCtor = object.constructor, othCtor = other.constructor; 8893 if (objCtor != othCtor && ("constructor" in object && "constructor" in other) && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) { 8894 result2 = false; 8895 } 8896 } 8897 stack["delete"](object); 8898 stack["delete"](other); 8899 return result2; 8900 } 8901 function flatRest(func) { 8902 return setToString(overRest(func, undefined2, flatten), func + ""); 8903 } 8904 function getAllKeys(object) { 8905 return baseGetAllKeys(object, keys, getSymbols); 8906 } 8907 function getAllKeysIn(object) { 8908 return baseGetAllKeys(object, keysIn, getSymbolsIn); 8909 } 8910 var getData = !metaMap ? noop : function(func) { 8911 return metaMap.get(func); 8912 }; 8913 function getFuncName(func) { 8914 var result2 = func.name + "", array = realNames[result2], length = hasOwnProperty.call(realNames, result2) ? array.length : 0; 8915 while (length--) { 8916 var data = array[length], otherFunc = data.func; 8917 if (otherFunc == null || otherFunc == func) { 8918 return data.name; 8919 } 8920 } 8921 return result2; 8922 } 8923 function getHolder(func) { 8924 var object = hasOwnProperty.call(lodash, "placeholder") ? lodash : func; 8925 return object.placeholder; 8926 } 8927 function getIteratee() { 8928 var result2 = lodash.iteratee || iteratee; 8929 result2 = result2 === iteratee ? baseIteratee : result2; 8930 return arguments.length ? result2(arguments[0], arguments[1]) : result2; 8931 } 8932 function getMapData(map2, key) { 8933 var data = map2.__data__; 8934 return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map; 8935 } 8936 function getMatchData(object) { 8937 var result2 = keys(object), length = result2.length; 8938 while (length--) { 8939 var key = result2[length], value = object[key]; 8940 result2[length] = [key, value, isStrictComparable(value)]; 8941 } 8942 return result2; 8943 } 8944 function getNative(object, key) { 8945 var value = getValue(object, key); 8946 return baseIsNative(value) ? value : undefined2; 8947 } 8948 function getRawTag(value) { 8949 var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag]; 8950 try { 8951 value[symToStringTag] = undefined2; 8952 var unmasked = true; 8953 } catch (e) { 8954 } 8955 var result2 = nativeObjectToString.call(value); 8956 if (unmasked) { 8957 if (isOwn) { 8958 value[symToStringTag] = tag; 8959 } else { 8960 delete value[symToStringTag]; 8961 } 8962 } 8963 return result2; 8964 } 8965 var getSymbols = !nativeGetSymbols ? stubArray : function(object) { 8966 if (object == null) { 8967 return []; 8968 } 8969 object = Object2(object); 8970 return arrayFilter(nativeGetSymbols(object), function(symbol) { 8971 return propertyIsEnumerable.call(object, symbol); 8972 }); 8973 }; 8974 var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { 8975 var result2 = []; 8976 while (object) { 8977 arrayPush(result2, getSymbols(object)); 8978 object = getPrototype(object); 8979 } 8980 return result2; 8981 }; 8982 var getTag = baseGetTag; 8983 if (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || Map2 && getTag(new Map2()) != mapTag || Promise2 && getTag(Promise2.resolve()) != promiseTag || Set2 && getTag(new Set2()) != setTag || WeakMap && getTag(new WeakMap()) != weakMapTag) { 8984 getTag = function(value) { 8985 var result2 = baseGetTag(value), Ctor = result2 == objectTag ? value.constructor : undefined2, ctorString = Ctor ? toSource(Ctor) : ""; 8986 if (ctorString) { 8987 switch (ctorString) { 8988 case dataViewCtorString: 8989 return dataViewTag; 8990 case mapCtorString: 8991 return mapTag; 8992 case promiseCtorString: 8993 return promiseTag; 8994 case setCtorString: 8995 return setTag; 8996 case weakMapCtorString: 8997 return weakMapTag; 8998 } 8999 } 9000 return result2; 9001 }; 9002 } 9003 function getView(start2, end2, transforms) { 9004 var index = -1, length = transforms.length; 9005 while (++index < length) { 9006 var data = transforms[index], size2 = data.size; 9007 switch (data.type) { 9008 case "drop": 9009 start2 += size2; 9010 break; 9011 case "dropRight": 9012 end2 -= size2; 9013 break; 9014 case "take": 9015 end2 = nativeMin(end2, start2 + size2); 9016 break; 9017 case "takeRight": 9018 start2 = nativeMax(start2, end2 - size2); 9019 break; 9020 } 9021 } 9022 return { "start": start2, "end": end2 }; 9023 } 9024 function getWrapDetails(source) { 9025 var match = source.match(reWrapDetails); 9026 return match ? match[1].split(reSplitDetails) : []; 9027 } 9028 function hasPath(object, path, hasFunc) { 9029 path = castPath(path, object); 9030 var index = -1, length = path.length, result2 = false; 9031 while (++index < length) { 9032 var key = toKey(path[index]); 9033 if (!(result2 = object != null && hasFunc(object, key))) { 9034 break; 9035 } 9036 object = object[key]; 9037 } 9038 if (result2 || ++index != length) { 9039 return result2; 9040 } 9041 length = object == null ? 0 : object.length; 9042 return !!length && isLength(length) && isIndex(key, length) && (isArray2(object) || isArguments(object)); 9043 } 9044 function initCloneArray(array) { 9045 var length = array.length, result2 = new array.constructor(length); 9046 if (length && typeof array[0] == "string" && hasOwnProperty.call(array, "index")) { 9047 result2.index = array.index; 9048 result2.input = array.input; 9049 } 9050 return result2; 9051 } 9052 function initCloneObject(object) { 9053 return typeof object.constructor == "function" && !isPrototype(object) ? baseCreate(getPrototype(object)) : {}; 9054 } 9055 function initCloneByTag(object, tag, isDeep) { 9056 var Ctor = object.constructor; 9057 switch (tag) { 9058 case arrayBufferTag: 9059 return cloneArrayBuffer(object); 9060 case boolTag: 9061 case dateTag: 9062 return new Ctor(+object); 9063 case dataViewTag: 9064 return cloneDataView(object, isDeep); 9065 case float32Tag: 9066 case float64Tag: 9067 case int8Tag: 9068 case int16Tag: 9069 case int32Tag: 9070 case uint8Tag: 9071 case uint8ClampedTag: 9072 case uint16Tag: 9073 case uint32Tag: 9074 return cloneTypedArray(object, isDeep); 9075 case mapTag: 9076 return new Ctor(); 9077 case numberTag: 9078 case stringTag: 9079 return new Ctor(object); 9080 case regexpTag: 9081 return cloneRegExp(object); 9082 case setTag: 9083 return new Ctor(); 9084 case symbolTag: 9085 return cloneSymbol(object); 9086 } 9087 } 9088 function insertWrapDetails(source, details) { 9089 var length = details.length; 9090 if (!length) { 9091 return source; 9092 } 9093 var lastIndex = length - 1; 9094 details[lastIndex] = (length > 1 ? "& " : "") + details[lastIndex]; 9095 details = details.join(length > 2 ? ", " : " "); 9096 return source.replace(reWrapComment, "{\n/* [wrapped with " + details + "] */\n"); 9097 } 9098 function isFlattenable(value) { 9099 return isArray2(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]); 9100 } 9101 function isIndex(value, length) { 9102 var type = typeof value; 9103 length = length == null ? MAX_SAFE_INTEGER : length; 9104 return !!length && (type == "number" || type != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length); 9105 } 9106 function isIterateeCall(value, index, object) { 9107 if (!isObject2(object)) { 9108 return false; 9109 } 9110 var type = typeof index; 9111 if (type == "number" ? isArrayLike(object) && isIndex(index, object.length) : type == "string" && index in object) { 9112 return eq(object[index], value); 9113 } 9114 return false; 9115 } 9116 function isKey(value, object) { 9117 if (isArray2(value)) { 9118 return false; 9119 } 9120 var type = typeof value; 9121 if (type == "number" || type == "symbol" || type == "boolean" || value == null || isSymbol(value)) { 9122 return true; 9123 } 9124 return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object2(object); 9125 } 9126 function isKeyable(value) { 9127 var type = typeof value; 9128 return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null; 9129 } 9130 function isLaziable(func) { 9131 var funcName = getFuncName(func), other = lodash[funcName]; 9132 if (typeof other != "function" || !(funcName in LazyWrapper.prototype)) { 9133 return false; 9134 } 9135 if (func === other) { 9136 return true; 9137 } 9138 var data = getData(other); 9139 return !!data && func === data[0]; 9140 } 9141 function isMasked(func) { 9142 return !!maskSrcKey && maskSrcKey in func; 9143 } 9144 var isMaskable = coreJsData ? isFunction2 : stubFalse; 9145 function isPrototype(value) { 9146 var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto; 9147 return value === proto; 9148 } 9149 function isStrictComparable(value) { 9150 return value === value && !isObject2(value); 9151 } 9152 function matchesStrictComparable(key, srcValue) { 9153 return function(object) { 9154 if (object == null) { 9155 return false; 9156 } 9157 return object[key] === srcValue && (srcValue !== undefined2 || key in Object2(object)); 9158 }; 9159 } 9160 function memoizeCapped(func) { 9161 var result2 = memoize(func, function(key) { 9162 if (cache.size === MAX_MEMOIZE_SIZE) { 9163 cache.clear(); 9164 } 9165 return key; 9166 }); 9167 var cache = result2.cache; 9168 return result2; 9169 } 9170 function mergeData(data, source) { 9171 var bitmask = data[1], srcBitmask = source[1], newBitmask = bitmask | srcBitmask, isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG); 9172 var isCombo = srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_CURRY_FLAG || srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_REARG_FLAG && data[7].length <= source[8] || srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG) && source[7].length <= source[8] && bitmask == WRAP_CURRY_FLAG; 9173 if (!(isCommon || isCombo)) { 9174 return data; 9175 } 9176 if (srcBitmask & WRAP_BIND_FLAG) { 9177 data[2] = source[2]; 9178 newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG; 9179 } 9180 var value = source[3]; 9181 if (value) { 9182 var partials = data[3]; 9183 data[3] = partials ? composeArgs(partials, value, source[4]) : value; 9184 data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4]; 9185 } 9186 value = source[5]; 9187 if (value) { 9188 partials = data[5]; 9189 data[5] = partials ? composeArgsRight(partials, value, source[6]) : value; 9190 data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6]; 9191 } 9192 value = source[7]; 9193 if (value) { 9194 data[7] = value; 9195 } 9196 if (srcBitmask & WRAP_ARY_FLAG) { 9197 data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]); 9198 } 9199 if (data[9] == null) { 9200 data[9] = source[9]; 9201 } 9202 data[0] = source[0]; 9203 data[1] = newBitmask; 9204 return data; 9205 } 9206 function nativeKeysIn(object) { 9207 var result2 = []; 9208 if (object != null) { 9209 for (var key in Object2(object)) { 9210 result2.push(key); 9211 } 9212 } 9213 return result2; 9214 } 9215 function objectToString(value) { 9216 return nativeObjectToString.call(value); 9217 } 9218 function overRest(func, start2, transform2) { 9219 start2 = nativeMax(start2 === undefined2 ? func.length - 1 : start2, 0); 9220 return function() { 9221 var args = arguments, index = -1, length = nativeMax(args.length - start2, 0), array = Array2(length); 9222 while (++index < length) { 9223 array[index] = args[start2 + index]; 9224 } 9225 index = -1; 9226 var otherArgs = Array2(start2 + 1); 9227 while (++index < start2) { 9228 otherArgs[index] = args[index]; 9229 } 9230 otherArgs[start2] = transform2(array); 9231 return apply(func, this, otherArgs); 9232 }; 9233 } 9234 function parent(object, path) { 9235 return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1)); 9236 } 9237 function reorder(array, indexes) { 9238 var arrLength = array.length, length = nativeMin(indexes.length, arrLength), oldArray = copyArray(array); 9239 while (length--) { 9240 var index = indexes[length]; 9241 array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined2; 9242 } 9243 return array; 9244 } 9245 function safeGet(object, key) { 9246 if (key === "constructor" && typeof object[key] === "function") { 9247 return; 9248 } 9249 if (key == "__proto__") { 9250 return; 9251 } 9252 return object[key]; 9253 } 9254 var setData = shortOut(baseSetData); 9255 var setTimeout2 = ctxSetTimeout || function(func, wait) { 9256 return root.setTimeout(func, wait); 9257 }; 9258 var setToString = shortOut(baseSetToString); 9259 function setWrapToString(wrapper, reference2, bitmask) { 9260 var source = reference2 + ""; 9261 return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask))); 9262 } 9263 function shortOut(func) { 9264 var count = 0, lastCalled = 0; 9265 return function() { 9266 var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled); 9267 lastCalled = stamp; 9268 if (remaining > 0) { 9269 if (++count >= HOT_COUNT) { 9270 return arguments[0]; 9271 } 9272 } else { 9273 count = 0; 9274 } 9275 return func.apply(undefined2, arguments); 9276 }; 9277 } 9278 function shuffleSelf(array, size2) { 9279 var index = -1, length = array.length, lastIndex = length - 1; 9280 size2 = size2 === undefined2 ? length : size2; 9281 while (++index < size2) { 9282 var rand = baseRandom(index, lastIndex), value = array[rand]; 9283 array[rand] = array[index]; 9284 array[index] = value; 9285 } 9286 array.length = size2; 9287 return array; 9288 } 9289 var stringToPath = memoizeCapped(function(string) { 9290 var result2 = []; 9291 if (string.charCodeAt(0) === 46) { 9292 result2.push(""); 9293 } 9294 string.replace(rePropName, function(match, number, quote, subString) { 9295 result2.push(quote ? subString.replace(reEscapeChar, "$1") : number || match); 9296 }); 9297 return result2; 9298 }); 9299 function toKey(value) { 9300 if (typeof value == "string" || isSymbol(value)) { 9301 return value; 9302 } 9303 var result2 = value + ""; 9304 return result2 == "0" && 1 / value == -INFINITY ? "-0" : result2; 9305 } 9306 function toSource(func) { 9307 if (func != null) { 9308 try { 9309 return funcToString.call(func); 9310 } catch (e) { 9311 } 9312 try { 9313 return func + ""; 9314 } catch (e) { 9315 } 9316 } 9317 return ""; 9318 } 9319 function updateWrapDetails(details, bitmask) { 9320 arrayEach(wrapFlags, function(pair) { 9321 var value = "_." + pair[0]; 9322 if (bitmask & pair[1] && !arrayIncludes(details, value)) { 9323 details.push(value); 9324 } 9325 }); 9326 return details.sort(); 9327 } 9328 function wrapperClone(wrapper) { 9329 if (wrapper instanceof LazyWrapper) { 9330 return wrapper.clone(); 9331 } 9332 var result2 = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__); 9333 result2.__actions__ = copyArray(wrapper.__actions__); 9334 result2.__index__ = wrapper.__index__; 9335 result2.__values__ = wrapper.__values__; 9336 return result2; 9337 } 9338 function chunk(array, size2, guard) { 9339 if (guard ? isIterateeCall(array, size2, guard) : size2 === undefined2) { 9340 size2 = 1; 9341 } else { 9342 size2 = nativeMax(toInteger(size2), 0); 9343 } 9344 var length = array == null ? 0 : array.length; 9345 if (!length || size2 < 1) { 9346 return []; 9347 } 9348 var index = 0, resIndex = 0, result2 = Array2(nativeCeil(length / size2)); 9349 while (index < length) { 9350 result2[resIndex++] = baseSlice(array, index, index += size2); 9351 } 9352 return result2; 9353 } 9354 function compact(array) { 9355 var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result2 = []; 9356 while (++index < length) { 9357 var value = array[index]; 9358 if (value) { 9359 result2[resIndex++] = value; 9360 } 9361 } 9362 return result2; 9363 } 9364 function concat() { 9365 var length = arguments.length; 9366 if (!length) { 9367 return []; 9368 } 9369 var args = Array2(length - 1), array = arguments[0], index = length; 9370 while (index--) { 9371 args[index - 1] = arguments[index]; 9372 } 9373 return arrayPush(isArray2(array) ? copyArray(array) : [array], baseFlatten(args, 1)); 9374 } 9375 var difference = baseRest(function(array, values2) { 9376 return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values2, 1, isArrayLikeObject, true)) : []; 9377 }); 9378 var differenceBy = baseRest(function(array, values2) { 9379 var iteratee2 = last(values2); 9380 if (isArrayLikeObject(iteratee2)) { 9381 iteratee2 = undefined2; 9382 } 9383 return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values2, 1, isArrayLikeObject, true), getIteratee(iteratee2, 2)) : []; 9384 }); 9385 var differenceWith = baseRest(function(array, values2) { 9386 var comparator = last(values2); 9387 if (isArrayLikeObject(comparator)) { 9388 comparator = undefined2; 9389 } 9390 return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values2, 1, isArrayLikeObject, true), undefined2, comparator) : []; 9391 }); 9392 function drop(array, n, guard) { 9393 var length = array == null ? 0 : array.length; 9394 if (!length) { 9395 return []; 9396 } 9397 n = guard || n === undefined2 ? 1 : toInteger(n); 9398 return baseSlice(array, n < 0 ? 0 : n, length); 9399 } 9400 function dropRight(array, n, guard) { 9401 var length = array == null ? 0 : array.length; 9402 if (!length) { 9403 return []; 9404 } 9405 n = guard || n === undefined2 ? 1 : toInteger(n); 9406 n = length - n; 9407 return baseSlice(array, 0, n < 0 ? 0 : n); 9408 } 9409 function dropRightWhile(array, predicate) { 9410 return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true, true) : []; 9411 } 9412 function dropWhile(array, predicate) { 9413 return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true) : []; 9414 } 9415 function fill(array, value, start2, end2) { 9416 var length = array == null ? 0 : array.length; 9417 if (!length) { 9418 return []; 9419 } 9420 if (start2 && typeof start2 != "number" && isIterateeCall(array, value, start2)) { 9421 start2 = 0; 9422 end2 = length; 9423 } 9424 return baseFill(array, value, start2, end2); 9425 } 9426 function findIndex(array, predicate, fromIndex) { 9427 var length = array == null ? 0 : array.length; 9428 if (!length) { 9429 return -1; 9430 } 9431 var index = fromIndex == null ? 0 : toInteger(fromIndex); 9432 if (index < 0) { 9433 index = nativeMax(length + index, 0); 9434 } 9435 return baseFindIndex(array, getIteratee(predicate, 3), index); 9436 } 9437 function findLastIndex(array, predicate, fromIndex) { 9438 var length = array == null ? 0 : array.length; 9439 if (!length) { 9440 return -1; 9441 } 9442 var index = length - 1; 9443 if (fromIndex !== undefined2) { 9444 index = toInteger(fromIndex); 9445 index = fromIndex < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); 9446 } 9447 return baseFindIndex(array, getIteratee(predicate, 3), index, true); 9448 } 9449 function flatten(array) { 9450 var length = array == null ? 0 : array.length; 9451 return length ? baseFlatten(array, 1) : []; 9452 } 9453 function flattenDeep(array) { 9454 var length = array == null ? 0 : array.length; 9455 return length ? baseFlatten(array, INFINITY) : []; 9456 } 9457 function flattenDepth(array, depth) { 9458 var length = array == null ? 0 : array.length; 9459 if (!length) { 9460 return []; 9461 } 9462 depth = depth === undefined2 ? 1 : toInteger(depth); 9463 return baseFlatten(array, depth); 9464 } 9465 function fromPairs(pairs) { 9466 var index = -1, length = pairs == null ? 0 : pairs.length, result2 = {}; 9467 while (++index < length) { 9468 var pair = pairs[index]; 9469 result2[pair[0]] = pair[1]; 9470 } 9471 return result2; 9472 } 9473 function head(array) { 9474 return array && array.length ? array[0] : undefined2; 9475 } 9476 function indexOf(array, value, fromIndex) { 9477 var length = array == null ? 0 : array.length; 9478 if (!length) { 9479 return -1; 9480 } 9481 var index = fromIndex == null ? 0 : toInteger(fromIndex); 9482 if (index < 0) { 9483 index = nativeMax(length + index, 0); 9484 } 9485 return baseIndexOf(array, value, index); 9486 } 9487 function initial(array) { 9488 var length = array == null ? 0 : array.length; 9489 return length ? baseSlice(array, 0, -1) : []; 9490 } 9491 var intersection = baseRest(function(arrays) { 9492 var mapped = arrayMap(arrays, castArrayLikeObject); 9493 return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped) : []; 9494 }); 9495 var intersectionBy = baseRest(function(arrays) { 9496 var iteratee2 = last(arrays), mapped = arrayMap(arrays, castArrayLikeObject); 9497 if (iteratee2 === last(mapped)) { 9498 iteratee2 = undefined2; 9499 } else { 9500 mapped.pop(); 9501 } 9502 return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, getIteratee(iteratee2, 2)) : []; 9503 }); 9504 var intersectionWith = baseRest(function(arrays) { 9505 var comparator = last(arrays), mapped = arrayMap(arrays, castArrayLikeObject); 9506 comparator = typeof comparator == "function" ? comparator : undefined2; 9507 if (comparator) { 9508 mapped.pop(); 9509 } 9510 return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, undefined2, comparator) : []; 9511 }); 9512 function join(array, separator) { 9513 return array == null ? "" : nativeJoin.call(array, separator); 9514 } 9515 function last(array) { 9516 var length = array == null ? 0 : array.length; 9517 return length ? array[length - 1] : undefined2; 9518 } 9519 function lastIndexOf(array, value, fromIndex) { 9520 var length = array == null ? 0 : array.length; 9521 if (!length) { 9522 return -1; 9523 } 9524 var index = length; 9525 if (fromIndex !== undefined2) { 9526 index = toInteger(fromIndex); 9527 index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); 9528 } 9529 return value === value ? strictLastIndexOf(array, value, index) : baseFindIndex(array, baseIsNaN, index, true); 9530 } 9531 function nth(array, n) { 9532 return array && array.length ? baseNth(array, toInteger(n)) : undefined2; 9533 } 9534 var pull = baseRest(pullAll); 9535 function pullAll(array, values2) { 9536 return array && array.length && values2 && values2.length ? basePullAll(array, values2) : array; 9537 } 9538 function pullAllBy(array, values2, iteratee2) { 9539 return array && array.length && values2 && values2.length ? basePullAll(array, values2, getIteratee(iteratee2, 2)) : array; 9540 } 9541 function pullAllWith(array, values2, comparator) { 9542 return array && array.length && values2 && values2.length ? basePullAll(array, values2, undefined2, comparator) : array; 9543 } 9544 var pullAt = flatRest(function(array, indexes) { 9545 var length = array == null ? 0 : array.length, result2 = baseAt(array, indexes); 9546 basePullAt(array, arrayMap(indexes, function(index) { 9547 return isIndex(index, length) ? +index : index; 9548 }).sort(compareAscending)); 9549 return result2; 9550 }); 9551 function remove(array, predicate) { 9552 var result2 = []; 9553 if (!(array && array.length)) { 9554 return result2; 9555 } 9556 var index = -1, indexes = [], length = array.length; 9557 predicate = getIteratee(predicate, 3); 9558 while (++index < length) { 9559 var value = array[index]; 9560 if (predicate(value, index, array)) { 9561 result2.push(value); 9562 indexes.push(index); 9563 } 9564 } 9565 basePullAt(array, indexes); 9566 return result2; 9567 } 9568 function reverse(array) { 9569 return array == null ? array : nativeReverse.call(array); 9570 } 9571 function slice(array, start2, end2) { 9572 var length = array == null ? 0 : array.length; 9573 if (!length) { 9574 return []; 9575 } 9576 if (end2 && typeof end2 != "number" && isIterateeCall(array, start2, end2)) { 9577 start2 = 0; 9578 end2 = length; 9579 } else { 9580 start2 = start2 == null ? 0 : toInteger(start2); 9581 end2 = end2 === undefined2 ? length : toInteger(end2); 9582 } 9583 return baseSlice(array, start2, end2); 9584 } 9585 function sortedIndex(array, value) { 9586 return baseSortedIndex(array, value); 9587 } 9588 function sortedIndexBy(array, value, iteratee2) { 9589 return baseSortedIndexBy(array, value, getIteratee(iteratee2, 2)); 9590 } 9591 function sortedIndexOf(array, value) { 9592 var length = array == null ? 0 : array.length; 9593 if (length) { 9594 var index = baseSortedIndex(array, value); 9595 if (index < length && eq(array[index], value)) { 9596 return index; 9597 } 9598 } 9599 return -1; 9600 } 9601 function sortedLastIndex(array, value) { 9602 return baseSortedIndex(array, value, true); 9603 } 9604 function sortedLastIndexBy(array, value, iteratee2) { 9605 return baseSortedIndexBy(array, value, getIteratee(iteratee2, 2), true); 9606 } 9607 function sortedLastIndexOf(array, value) { 9608 var length = array == null ? 0 : array.length; 9609 if (length) { 9610 var index = baseSortedIndex(array, value, true) - 1; 9611 if (eq(array[index], value)) { 9612 return index; 9613 } 9614 } 9615 return -1; 9616 } 9617 function sortedUniq(array) { 9618 return array && array.length ? baseSortedUniq(array) : []; 9619 } 9620 function sortedUniqBy(array, iteratee2) { 9621 return array && array.length ? baseSortedUniq(array, getIteratee(iteratee2, 2)) : []; 9622 } 9623 function tail(array) { 9624 var length = array == null ? 0 : array.length; 9625 return length ? baseSlice(array, 1, length) : []; 9626 } 9627 function take(array, n, guard) { 9628 if (!(array && array.length)) { 9629 return []; 9630 } 9631 n = guard || n === undefined2 ? 1 : toInteger(n); 9632 return baseSlice(array, 0, n < 0 ? 0 : n); 9633 } 9634 function takeRight(array, n, guard) { 9635 var length = array == null ? 0 : array.length; 9636 if (!length) { 9637 return []; 9638 } 9639 n = guard || n === undefined2 ? 1 : toInteger(n); 9640 n = length - n; 9641 return baseSlice(array, n < 0 ? 0 : n, length); 9642 } 9643 function takeRightWhile(array, predicate) { 9644 return array && array.length ? baseWhile(array, getIteratee(predicate, 3), false, true) : []; 9645 } 9646 function takeWhile(array, predicate) { 9647 return array && array.length ? baseWhile(array, getIteratee(predicate, 3)) : []; 9648 } 9649 var union = baseRest(function(arrays) { 9650 return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true)); 9651 }); 9652 var unionBy = baseRest(function(arrays) { 9653 var iteratee2 = last(arrays); 9654 if (isArrayLikeObject(iteratee2)) { 9655 iteratee2 = undefined2; 9656 } 9657 return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee2, 2)); 9658 }); 9659 var unionWith = baseRest(function(arrays) { 9660 var comparator = last(arrays); 9661 comparator = typeof comparator == "function" ? comparator : undefined2; 9662 return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined2, comparator); 9663 }); 9664 function uniq(array) { 9665 return array && array.length ? baseUniq(array) : []; 9666 } 9667 function uniqBy(array, iteratee2) { 9668 return array && array.length ? baseUniq(array, getIteratee(iteratee2, 2)) : []; 9669 } 9670 function uniqWith(array, comparator) { 9671 comparator = typeof comparator == "function" ? comparator : undefined2; 9672 return array && array.length ? baseUniq(array, undefined2, comparator) : []; 9673 } 9674 function unzip(array) { 9675 if (!(array && array.length)) { 9676 return []; 9677 } 9678 var length = 0; 9679 array = arrayFilter(array, function(group) { 9680 if (isArrayLikeObject(group)) { 9681 length = nativeMax(group.length, length); 9682 return true; 9683 } 9684 }); 9685 return baseTimes(length, function(index) { 9686 return arrayMap(array, baseProperty(index)); 9687 }); 9688 } 9689 function unzipWith(array, iteratee2) { 9690 if (!(array && array.length)) { 9691 return []; 9692 } 9693 var result2 = unzip(array); 9694 if (iteratee2 == null) { 9695 return result2; 9696 } 9697 return arrayMap(result2, function(group) { 9698 return apply(iteratee2, undefined2, group); 9699 }); 9700 } 9701 var without = baseRest(function(array, values2) { 9702 return isArrayLikeObject(array) ? baseDifference(array, values2) : []; 9703 }); 9704 var xor = baseRest(function(arrays) { 9705 return baseXor(arrayFilter(arrays, isArrayLikeObject)); 9706 }); 9707 var xorBy = baseRest(function(arrays) { 9708 var iteratee2 = last(arrays); 9709 if (isArrayLikeObject(iteratee2)) { 9710 iteratee2 = undefined2; 9711 } 9712 return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee2, 2)); 9713 }); 9714 var xorWith = baseRest(function(arrays) { 9715 var comparator = last(arrays); 9716 comparator = typeof comparator == "function" ? comparator : undefined2; 9717 return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined2, comparator); 9718 }); 9719 var zip = baseRest(unzip); 9720 function zipObject(props, values2) { 9721 return baseZipObject(props || [], values2 || [], assignValue); 9722 } 9723 function zipObjectDeep(props, values2) { 9724 return baseZipObject(props || [], values2 || [], baseSet); 9725 } 9726 var zipWith = baseRest(function(arrays) { 9727 var length = arrays.length, iteratee2 = length > 1 ? arrays[length - 1] : undefined2; 9728 iteratee2 = typeof iteratee2 == "function" ? (arrays.pop(), iteratee2) : undefined2; 9729 return unzipWith(arrays, iteratee2); 9730 }); 9731 function chain(value) { 9732 var result2 = lodash(value); 9733 result2.__chain__ = true; 9734 return result2; 9735 } 9736 function tap(value, interceptor) { 9737 interceptor(value); 9738 return value; 9739 } 9740 function thru(value, interceptor) { 9741 return interceptor(value); 9742 } 9743 var wrapperAt = flatRest(function(paths) { 9744 var length = paths.length, start2 = length ? paths[0] : 0, value = this.__wrapped__, interceptor = function(object) { 9745 return baseAt(object, paths); 9746 }; 9747 if (length > 1 || this.__actions__.length || !(value instanceof LazyWrapper) || !isIndex(start2)) { 9748 return this.thru(interceptor); 9749 } 9750 value = value.slice(start2, +start2 + (length ? 1 : 0)); 9751 value.__actions__.push({ 9752 "func": thru, 9753 "args": [interceptor], 9754 "thisArg": undefined2 9755 }); 9756 return new LodashWrapper(value, this.__chain__).thru(function(array) { 9757 if (length && !array.length) { 9758 array.push(undefined2); 9759 } 9760 return array; 9761 }); 9762 }); 9763 function wrapperChain() { 9764 return chain(this); 9765 } 9766 function wrapperCommit() { 9767 return new LodashWrapper(this.value(), this.__chain__); 9768 } 9769 function wrapperNext() { 9770 if (this.__values__ === undefined2) { 9771 this.__values__ = toArray3(this.value()); 9772 } 9773 var done = this.__index__ >= this.__values__.length, value = done ? undefined2 : this.__values__[this.__index__++]; 9774 return { "done": done, "value": value }; 9775 } 9776 function wrapperToIterator() { 9777 return this; 9778 } 9779 function wrapperPlant(value) { 9780 var result2, parent2 = this; 9781 while (parent2 instanceof baseLodash) { 9782 var clone2 = wrapperClone(parent2); 9783 clone2.__index__ = 0; 9784 clone2.__values__ = undefined2; 9785 if (result2) { 9786 previous.__wrapped__ = clone2; 9787 } else { 9788 result2 = clone2; 9789 } 9790 var previous = clone2; 9791 parent2 = parent2.__wrapped__; 9792 } 9793 previous.__wrapped__ = value; 9794 return result2; 9795 } 9796 function wrapperReverse() { 9797 var value = this.__wrapped__; 9798 if (value instanceof LazyWrapper) { 9799 var wrapped = value; 9800 if (this.__actions__.length) { 9801 wrapped = new LazyWrapper(this); 9802 } 9803 wrapped = wrapped.reverse(); 9804 wrapped.__actions__.push({ 9805 "func": thru, 9806 "args": [reverse], 9807 "thisArg": undefined2 9808 }); 9809 return new LodashWrapper(wrapped, this.__chain__); 9810 } 9811 return this.thru(reverse); 9812 } 9813 function wrapperValue() { 9814 return baseWrapperValue(this.__wrapped__, this.__actions__); 9815 } 9816 var countBy = createAggregator(function(result2, value, key) { 9817 if (hasOwnProperty.call(result2, key)) { 9818 ++result2[key]; 9819 } else { 9820 baseAssignValue(result2, key, 1); 9821 } 9822 }); 9823 function every(collection, predicate, guard) { 9824 var func = isArray2(collection) ? arrayEvery : baseEvery; 9825 if (guard && isIterateeCall(collection, predicate, guard)) { 9826 predicate = undefined2; 9827 } 9828 return func(collection, getIteratee(predicate, 3)); 9829 } 9830 function filter(collection, predicate) { 9831 var func = isArray2(collection) ? arrayFilter : baseFilter; 9832 return func(collection, getIteratee(predicate, 3)); 9833 } 9834 var find = createFind(findIndex); 9835 var findLast = createFind(findLastIndex); 9836 function flatMap(collection, iteratee2) { 9837 return baseFlatten(map(collection, iteratee2), 1); 9838 } 9839 function flatMapDeep(collection, iteratee2) { 9840 return baseFlatten(map(collection, iteratee2), INFINITY); 9841 } 9842 function flatMapDepth(collection, iteratee2, depth) { 9843 depth = depth === undefined2 ? 1 : toInteger(depth); 9844 return baseFlatten(map(collection, iteratee2), depth); 9845 } 9846 function forEach2(collection, iteratee2) { 9847 var func = isArray2(collection) ? arrayEach : baseEach; 9848 return func(collection, getIteratee(iteratee2, 3)); 9849 } 9850 function forEachRight(collection, iteratee2) { 9851 var func = isArray2(collection) ? arrayEachRight : baseEachRight; 9852 return func(collection, getIteratee(iteratee2, 3)); 9853 } 9854 var groupBy = createAggregator(function(result2, value, key) { 9855 if (hasOwnProperty.call(result2, key)) { 9856 result2[key].push(value); 9857 } else { 9858 baseAssignValue(result2, key, [value]); 9859 } 9860 }); 9861 function includes(collection, value, fromIndex, guard) { 9862 collection = isArrayLike(collection) ? collection : values(collection); 9863 fromIndex = fromIndex && !guard ? toInteger(fromIndex) : 0; 9864 var length = collection.length; 9865 if (fromIndex < 0) { 9866 fromIndex = nativeMax(length + fromIndex, 0); 9867 } 9868 return isString2(collection) ? fromIndex <= length && collection.indexOf(value, fromIndex) > -1 : !!length && baseIndexOf(collection, value, fromIndex) > -1; 9869 } 9870 var invokeMap = baseRest(function(collection, path, args) { 9871 var index = -1, isFunc = typeof path == "function", result2 = isArrayLike(collection) ? Array2(collection.length) : []; 9872 baseEach(collection, function(value) { 9873 result2[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args); 9874 }); 9875 return result2; 9876 }); 9877 var keyBy = createAggregator(function(result2, value, key) { 9878 baseAssignValue(result2, key, value); 9879 }); 9880 function map(collection, iteratee2) { 9881 var func = isArray2(collection) ? arrayMap : baseMap; 9882 return func(collection, getIteratee(iteratee2, 3)); 9883 } 9884 function orderBy(collection, iteratees, orders, guard) { 9885 if (collection == null) { 9886 return []; 9887 } 9888 if (!isArray2(iteratees)) { 9889 iteratees = iteratees == null ? [] : [iteratees]; 9890 } 9891 orders = guard ? undefined2 : orders; 9892 if (!isArray2(orders)) { 9893 orders = orders == null ? [] : [orders]; 9894 } 9895 return baseOrderBy(collection, iteratees, orders); 9896 } 9897 var partition = createAggregator(function(result2, value, key) { 9898 result2[key ? 0 : 1].push(value); 9899 }, function() { 9900 return [[], []]; 9901 }); 9902 function reduce(collection, iteratee2, accumulator) { 9903 var func = isArray2(collection) ? arrayReduce : baseReduce, initAccum = arguments.length < 3; 9904 return func(collection, getIteratee(iteratee2, 4), accumulator, initAccum, baseEach); 9905 } 9906 function reduceRight(collection, iteratee2, accumulator) { 9907 var func = isArray2(collection) ? arrayReduceRight : baseReduce, initAccum = arguments.length < 3; 9908 return func(collection, getIteratee(iteratee2, 4), accumulator, initAccum, baseEachRight); 9909 } 9910 function reject(collection, predicate) { 9911 var func = isArray2(collection) ? arrayFilter : baseFilter; 9912 return func(collection, negate(getIteratee(predicate, 3))); 9913 } 9914 function sample(collection) { 9915 var func = isArray2(collection) ? arraySample : baseSample; 9916 return func(collection); 9917 } 9918 function sampleSize(collection, n, guard) { 9919 if (guard ? isIterateeCall(collection, n, guard) : n === undefined2) { 9920 n = 1; 9921 } else { 9922 n = toInteger(n); 9923 } 9924 var func = isArray2(collection) ? arraySampleSize : baseSampleSize; 9925 return func(collection, n); 9926 } 9927 function shuffle3(collection) { 9928 var func = isArray2(collection) ? arrayShuffle : baseShuffle; 9929 return func(collection); 9930 } 9931 function size(collection) { 9932 if (collection == null) { 9933 return 0; 9934 } 9935 if (isArrayLike(collection)) { 9936 return isString2(collection) ? stringSize(collection) : collection.length; 9937 } 9938 var tag = getTag(collection); 9939 if (tag == mapTag || tag == setTag) { 9940 return collection.size; 9941 } 9942 return baseKeys(collection).length; 9943 } 9944 function some(collection, predicate, guard) { 9945 var func = isArray2(collection) ? arraySome : baseSome; 9946 if (guard && isIterateeCall(collection, predicate, guard)) { 9947 predicate = undefined2; 9948 } 9949 return func(collection, getIteratee(predicate, 3)); 9950 } 9951 var sortBy = baseRest(function(collection, iteratees) { 9952 if (collection == null) { 9953 return []; 9954 } 9955 var length = iteratees.length; 9956 if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) { 9957 iteratees = []; 9958 } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) { 9959 iteratees = [iteratees[0]]; 9960 } 9961 return baseOrderBy(collection, baseFlatten(iteratees, 1), []); 9962 }); 9963 var now2 = ctxNow || function() { 9964 return root.Date.now(); 9965 }; 9966 function after(n, func) { 9967 if (typeof func != "function") { 9968 throw new TypeError2(FUNC_ERROR_TEXT); 9969 } 9970 n = toInteger(n); 9971 return function() { 9972 if (--n < 1) { 9973 return func.apply(this, arguments); 9974 } 9975 }; 9976 } 9977 function ary(func, n, guard) { 9978 n = guard ? undefined2 : n; 9979 n = func && n == null ? func.length : n; 9980 return createWrap(func, WRAP_ARY_FLAG, undefined2, undefined2, undefined2, undefined2, n); 9981 } 9982 function before(n, func) { 9983 var result2; 9984 if (typeof func != "function") { 9985 throw new TypeError2(FUNC_ERROR_TEXT); 9986 } 9987 n = toInteger(n); 9988 return function() { 9989 if (--n > 0) { 9990 result2 = func.apply(this, arguments); 9991 } 9992 if (n <= 1) { 9993 func = undefined2; 9994 } 9995 return result2; 9996 }; 9997 } 9998 var bind = baseRest(function(func, thisArg, partials) { 9999 var bitmask = WRAP_BIND_FLAG; 10000 if (partials.length) { 10001 var holders = replaceHolders(partials, getHolder(bind)); 10002 bitmask |= WRAP_PARTIAL_FLAG; 10003 } 10004 return createWrap(func, bitmask, thisArg, partials, holders); 10005 }); 10006 var bindKey = baseRest(function(object, key, partials) { 10007 var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG; 10008 if (partials.length) { 10009 var holders = replaceHolders(partials, getHolder(bindKey)); 10010 bitmask |= WRAP_PARTIAL_FLAG; 10011 } 10012 return createWrap(key, bitmask, object, partials, holders); 10013 }); 10014 function curry(func, arity, guard) { 10015 arity = guard ? undefined2 : arity; 10016 var result2 = createWrap(func, WRAP_CURRY_FLAG, undefined2, undefined2, undefined2, undefined2, undefined2, arity); 10017 result2.placeholder = curry.placeholder; 10018 return result2; 10019 } 10020 function curryRight(func, arity, guard) { 10021 arity = guard ? undefined2 : arity; 10022 var result2 = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined2, undefined2, undefined2, undefined2, undefined2, arity); 10023 result2.placeholder = curryRight.placeholder; 10024 return result2; 10025 } 10026 function debounce3(func, wait, options) { 10027 var lastArgs, lastThis, maxWait, result2, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true; 10028 if (typeof func != "function") { 10029 throw new TypeError2(FUNC_ERROR_TEXT); 10030 } 10031 wait = toNumber(wait) || 0; 10032 if (isObject2(options)) { 10033 leading = !!options.leading; 10034 maxing = "maxWait" in options; 10035 maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; 10036 trailing = "trailing" in options ? !!options.trailing : trailing; 10037 } 10038 function invokeFunc(time) { 10039 var args = lastArgs, thisArg = lastThis; 10040 lastArgs = lastThis = undefined2; 10041 lastInvokeTime = time; 10042 result2 = func.apply(thisArg, args); 10043 return result2; 10044 } 10045 function leadingEdge(time) { 10046 lastInvokeTime = time; 10047 timerId = setTimeout2(timerExpired, wait); 10048 return leading ? invokeFunc(time) : result2; 10049 } 10050 function remainingWait(time) { 10051 var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall; 10052 return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting; 10053 } 10054 function shouldInvoke(time) { 10055 var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime; 10056 return lastCallTime === undefined2 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait; 10057 } 10058 function timerExpired() { 10059 var time = now2(); 10060 if (shouldInvoke(time)) { 10061 return trailingEdge(time); 10062 } 10063 timerId = setTimeout2(timerExpired, remainingWait(time)); 10064 } 10065 function trailingEdge(time) { 10066 timerId = undefined2; 10067 if (trailing && lastArgs) { 10068 return invokeFunc(time); 10069 } 10070 lastArgs = lastThis = undefined2; 10071 return result2; 10072 } 10073 function cancel() { 10074 if (timerId !== undefined2) { 10075 clearTimeout2(timerId); 10076 } 10077 lastInvokeTime = 0; 10078 lastArgs = lastCallTime = lastThis = timerId = undefined2; 10079 } 10080 function flush() { 10081 return timerId === undefined2 ? result2 : trailingEdge(now2()); 10082 } 10083 function debounced() { 10084 var time = now2(), isInvoking = shouldInvoke(time); 10085 lastArgs = arguments; 10086 lastThis = this; 10087 lastCallTime = time; 10088 if (isInvoking) { 10089 if (timerId === undefined2) { 10090 return leadingEdge(lastCallTime); 10091 } 10092 if (maxing) { 10093 clearTimeout2(timerId); 10094 timerId = setTimeout2(timerExpired, wait); 10095 return invokeFunc(lastCallTime); 10096 } 10097 } 10098 if (timerId === undefined2) { 10099 timerId = setTimeout2(timerExpired, wait); 10100 } 10101 return result2; 10102 } 10103 debounced.cancel = cancel; 10104 debounced.flush = flush; 10105 return debounced; 10106 } 10107 var defer = baseRest(function(func, args) { 10108 return baseDelay(func, 1, args); 10109 }); 10110 var delay = baseRest(function(func, wait, args) { 10111 return baseDelay(func, toNumber(wait) || 0, args); 10112 }); 10113 function flip2(func) { 10114 return createWrap(func, WRAP_FLIP_FLAG); 10115 } 10116 function memoize(func, resolver) { 10117 if (typeof func != "function" || resolver != null && typeof resolver != "function") { 10118 throw new TypeError2(FUNC_ERROR_TEXT); 10119 } 10120 var memoized = function() { 10121 var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache; 10122 if (cache.has(key)) { 10123 return cache.get(key); 10124 } 10125 var result2 = func.apply(this, args); 10126 memoized.cache = cache.set(key, result2) || cache; 10127 return result2; 10128 }; 10129 memoized.cache = new (memoize.Cache || MapCache)(); 10130 return memoized; 10131 } 10132 memoize.Cache = MapCache; 10133 function negate(predicate) { 10134 if (typeof predicate != "function") { 10135 throw new TypeError2(FUNC_ERROR_TEXT); 10136 } 10137 return function() { 10138 var args = arguments; 10139 switch (args.length) { 10140 case 0: 10141 return !predicate.call(this); 10142 case 1: 10143 return !predicate.call(this, args[0]); 10144 case 2: 10145 return !predicate.call(this, args[0], args[1]); 10146 case 3: 10147 return !predicate.call(this, args[0], args[1], args[2]); 10148 } 10149 return !predicate.apply(this, args); 10150 }; 10151 } 10152 function once(func) { 10153 return before(2, func); 10154 } 10155 var overArgs = castRest(function(func, transforms) { 10156 transforms = transforms.length == 1 && isArray2(transforms[0]) ? arrayMap(transforms[0], baseUnary(getIteratee())) : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee())); 10157 var funcsLength = transforms.length; 10158 return baseRest(function(args) { 10159 var index = -1, length = nativeMin(args.length, funcsLength); 10160 while (++index < length) { 10161 args[index] = transforms[index].call(this, args[index]); 10162 } 10163 return apply(func, this, args); 10164 }); 10165 }); 10166 var partial = baseRest(function(func, partials) { 10167 var holders = replaceHolders(partials, getHolder(partial)); 10168 return createWrap(func, WRAP_PARTIAL_FLAG, undefined2, partials, holders); 10169 }); 10170 var partialRight = baseRest(function(func, partials) { 10171 var holders = replaceHolders(partials, getHolder(partialRight)); 10172 return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined2, partials, holders); 10173 }); 10174 var rearg = flatRest(function(func, indexes) { 10175 return createWrap(func, WRAP_REARG_FLAG, undefined2, undefined2, undefined2, indexes); 10176 }); 10177 function rest(func, start2) { 10178 if (typeof func != "function") { 10179 throw new TypeError2(FUNC_ERROR_TEXT); 10180 } 10181 start2 = start2 === undefined2 ? start2 : toInteger(start2); 10182 return baseRest(func, start2); 10183 } 10184 function spread(func, start2) { 10185 if (typeof func != "function") { 10186 throw new TypeError2(FUNC_ERROR_TEXT); 10187 } 10188 start2 = start2 == null ? 0 : nativeMax(toInteger(start2), 0); 10189 return baseRest(function(args) { 10190 var array = args[start2], otherArgs = castSlice(args, 0, start2); 10191 if (array) { 10192 arrayPush(otherArgs, array); 10193 } 10194 return apply(func, this, otherArgs); 10195 }); 10196 } 10197 function throttle2(func, wait, options) { 10198 var leading = true, trailing = true; 10199 if (typeof func != "function") { 10200 throw new TypeError2(FUNC_ERROR_TEXT); 10201 } 10202 if (isObject2(options)) { 10203 leading = "leading" in options ? !!options.leading : leading; 10204 trailing = "trailing" in options ? !!options.trailing : trailing; 10205 } 10206 return debounce3(func, wait, { 10207 "leading": leading, 10208 "maxWait": wait, 10209 "trailing": trailing 10210 }); 10211 } 10212 function unary(func) { 10213 return ary(func, 1); 10214 } 10215 function wrap3(value, wrapper) { 10216 return partial(castFunction(wrapper), value); 10217 } 10218 function castArray() { 10219 if (!arguments.length) { 10220 return []; 10221 } 10222 var value = arguments[0]; 10223 return isArray2(value) ? value : [value]; 10224 } 10225 function clone(value) { 10226 return baseClone(value, CLONE_SYMBOLS_FLAG); 10227 } 10228 function cloneWith(value, customizer) { 10229 customizer = typeof customizer == "function" ? customizer : undefined2; 10230 return baseClone(value, CLONE_SYMBOLS_FLAG, customizer); 10231 } 10232 function cloneDeep(value) { 10233 return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG); 10234 } 10235 function cloneDeepWith(value, customizer) { 10236 customizer = typeof customizer == "function" ? customizer : undefined2; 10237 return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer); 10238 } 10239 function conformsTo(object, source) { 10240 return source == null || baseConformsTo(object, source, keys(source)); 10241 } 10242 function eq(value, other) { 10243 return value === other || value !== value && other !== other; 10244 } 10245 var gt = createRelationalOperation(baseGt); 10246 var gte = createRelationalOperation(function(value, other) { 10247 return value >= other; 10248 }); 10249 var isArguments = baseIsArguments(function() { 10250 return arguments; 10251 }()) ? baseIsArguments : function(value) { 10252 return isObjectLike(value) && hasOwnProperty.call(value, "callee") && !propertyIsEnumerable.call(value, "callee"); 10253 }; 10254 var isArray2 = Array2.isArray; 10255 var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer; 10256 function isArrayLike(value) { 10257 return value != null && isLength(value.length) && !isFunction2(value); 10258 } 10259 function isArrayLikeObject(value) { 10260 return isObjectLike(value) && isArrayLike(value); 10261 } 10262 function isBoolean(value) { 10263 return value === true || value === false || isObjectLike(value) && baseGetTag(value) == boolTag; 10264 } 10265 var isBuffer = nativeIsBuffer || stubFalse; 10266 var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate; 10267 function isElement2(value) { 10268 return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value); 10269 } 10270 function isEmpty(value) { 10271 if (value == null) { 10272 return true; 10273 } 10274 if (isArrayLike(value) && (isArray2(value) || typeof value == "string" || typeof value.splice == "function" || isBuffer(value) || isTypedArray(value) || isArguments(value))) { 10275 return !value.length; 10276 } 10277 var tag = getTag(value); 10278 if (tag == mapTag || tag == setTag) { 10279 return !value.size; 10280 } 10281 if (isPrototype(value)) { 10282 return !baseKeys(value).length; 10283 } 10284 for (var key in value) { 10285 if (hasOwnProperty.call(value, key)) { 10286 return false; 10287 } 10288 } 10289 return true; 10290 } 10291 function isEqual(value, other) { 10292 return baseIsEqual(value, other); 10293 } 10294 function isEqualWith(value, other, customizer) { 10295 customizer = typeof customizer == "function" ? customizer : undefined2; 10296 var result2 = customizer ? customizer(value, other) : undefined2; 10297 return result2 === undefined2 ? baseIsEqual(value, other, undefined2, customizer) : !!result2; 10298 } 10299 function isError(value) { 10300 if (!isObjectLike(value)) { 10301 return false; 10302 } 10303 var tag = baseGetTag(value); 10304 return tag == errorTag || tag == domExcTag || typeof value.message == "string" && typeof value.name == "string" && !isPlainObject(value); 10305 } 10306 function isFinite2(value) { 10307 return typeof value == "number" && nativeIsFinite(value); 10308 } 10309 function isFunction2(value) { 10310 if (!isObject2(value)) { 10311 return false; 10312 } 10313 var tag = baseGetTag(value); 10314 return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; 10315 } 10316 function isInteger(value) { 10317 return typeof value == "number" && value == toInteger(value); 10318 } 10319 function isLength(value) { 10320 return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; 10321 } 10322 function isObject2(value) { 10323 var type = typeof value; 10324 return value != null && (type == "object" || type == "function"); 10325 } 10326 function isObjectLike(value) { 10327 return value != null && typeof value == "object"; 10328 } 10329 var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap; 10330 function isMatch(object, source) { 10331 return object === source || baseIsMatch(object, source, getMatchData(source)); 10332 } 10333 function isMatchWith(object, source, customizer) { 10334 customizer = typeof customizer == "function" ? customizer : undefined2; 10335 return baseIsMatch(object, source, getMatchData(source), customizer); 10336 } 10337 function isNaN2(value) { 10338 return isNumber(value) && value != +value; 10339 } 10340 function isNative(value) { 10341 if (isMaskable(value)) { 10342 throw new Error2(CORE_ERROR_TEXT); 10343 } 10344 return baseIsNative(value); 10345 } 10346 function isNull(value) { 10347 return value === null; 10348 } 10349 function isNil(value) { 10350 return value == null; 10351 } 10352 function isNumber(value) { 10353 return typeof value == "number" || isObjectLike(value) && baseGetTag(value) == numberTag; 10354 } 10355 function isPlainObject(value) { 10356 if (!isObjectLike(value) || baseGetTag(value) != objectTag) { 10357 return false; 10358 } 10359 var proto = getPrototype(value); 10360 if (proto === null) { 10361 return true; 10362 } 10363 var Ctor = hasOwnProperty.call(proto, "constructor") && proto.constructor; 10364 return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString; 10365 } 10366 var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp; 10367 function isSafeInteger(value) { 10368 return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER; 10369 } 10370 var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet; 10371 function isString2(value) { 10372 return typeof value == "string" || !isArray2(value) && isObjectLike(value) && baseGetTag(value) == stringTag; 10373 } 10374 function isSymbol(value) { 10375 return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag; 10376 } 10377 var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; 10378 function isUndefined2(value) { 10379 return value === undefined2; 10380 } 10381 function isWeakMap(value) { 10382 return isObjectLike(value) && getTag(value) == weakMapTag; 10383 } 10384 function isWeakSet(value) { 10385 return isObjectLike(value) && baseGetTag(value) == weakSetTag; 10386 } 10387 var lt = createRelationalOperation(baseLt); 10388 var lte = createRelationalOperation(function(value, other) { 10389 return value <= other; 10390 }); 10391 function toArray3(value) { 10392 if (!value) { 10393 return []; 10394 } 10395 if (isArrayLike(value)) { 10396 return isString2(value) ? stringToArray(value) : copyArray(value); 10397 } 10398 if (symIterator && value[symIterator]) { 10399 return iteratorToArray(value[symIterator]()); 10400 } 10401 var tag = getTag(value), func = tag == mapTag ? mapToArray : tag == setTag ? setToArray : values; 10402 return func(value); 10403 } 10404 function toFinite(value) { 10405 if (!value) { 10406 return value === 0 ? value : 0; 10407 } 10408 value = toNumber(value); 10409 if (value === INFINITY || value === -INFINITY) { 10410 var sign = value < 0 ? -1 : 1; 10411 return sign * MAX_INTEGER; 10412 } 10413 return value === value ? value : 0; 10414 } 10415 function toInteger(value) { 10416 var result2 = toFinite(value), remainder = result2 % 1; 10417 return result2 === result2 ? remainder ? result2 - remainder : result2 : 0; 10418 } 10419 function toLength(value) { 10420 return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0; 10421 } 10422 function toNumber(value) { 10423 if (typeof value == "number") { 10424 return value; 10425 } 10426 if (isSymbol(value)) { 10427 return NAN; 10428 } 10429 if (isObject2(value)) { 10430 var other = typeof value.valueOf == "function" ? value.valueOf() : value; 10431 value = isObject2(other) ? other + "" : other; 10432 } 10433 if (typeof value != "string") { 10434 return value === 0 ? value : +value; 10435 } 10436 value = baseTrim(value); 10437 var isBinary = reIsBinary.test(value); 10438 return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value; 10439 } 10440 function toPlainObject(value) { 10441 return copyObject(value, keysIn(value)); 10442 } 10443 function toSafeInteger(value) { 10444 return value ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER) : value === 0 ? value : 0; 10445 } 10446 function toString(value) { 10447 return value == null ? "" : baseToString(value); 10448 } 10449 var assign = createAssigner(function(object, source) { 10450 if (isPrototype(source) || isArrayLike(source)) { 10451 copyObject(source, keys(source), object); 10452 return; 10453 } 10454 for (var key in source) { 10455 if (hasOwnProperty.call(source, key)) { 10456 assignValue(object, key, source[key]); 10457 } 10458 } 10459 }); 10460 var assignIn = createAssigner(function(object, source) { 10461 copyObject(source, keysIn(source), object); 10462 }); 10463 var assignInWith = createAssigner(function(object, source, srcIndex, customizer) { 10464 copyObject(source, keysIn(source), object, customizer); 10465 }); 10466 var assignWith = createAssigner(function(object, source, srcIndex, customizer) { 10467 copyObject(source, keys(source), object, customizer); 10468 }); 10469 var at = flatRest(baseAt); 10470 function create(prototype, properties) { 10471 var result2 = baseCreate(prototype); 10472 return properties == null ? result2 : baseAssign(result2, properties); 10473 } 10474 var defaults3 = baseRest(function(object, sources) { 10475 object = Object2(object); 10476 var index = -1; 10477 var length = sources.length; 10478 var guard = length > 2 ? sources[2] : undefined2; 10479 if (guard && isIterateeCall(sources[0], sources[1], guard)) { 10480 length = 1; 10481 } 10482 while (++index < length) { 10483 var source = sources[index]; 10484 var props = keysIn(source); 10485 var propsIndex = -1; 10486 var propsLength = props.length; 10487 while (++propsIndex < propsLength) { 10488 var key = props[propsIndex]; 10489 var value = object[key]; 10490 if (value === undefined2 || eq(value, objectProto[key]) && !hasOwnProperty.call(object, key)) { 10491 object[key] = source[key]; 10492 } 10493 } 10494 } 10495 return object; 10496 }); 10497 var defaultsDeep = baseRest(function(args) { 10498 args.push(undefined2, customDefaultsMerge); 10499 return apply(mergeWith, undefined2, args); 10500 }); 10501 function findKey(object, predicate) { 10502 return baseFindKey(object, getIteratee(predicate, 3), baseForOwn); 10503 } 10504 function findLastKey(object, predicate) { 10505 return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight); 10506 } 10507 function forIn(object, iteratee2) { 10508 return object == null ? object : baseFor(object, getIteratee(iteratee2, 3), keysIn); 10509 } 10510 function forInRight(object, iteratee2) { 10511 return object == null ? object : baseForRight(object, getIteratee(iteratee2, 3), keysIn); 10512 } 10513 function forOwn(object, iteratee2) { 10514 return object && baseForOwn(object, getIteratee(iteratee2, 3)); 10515 } 10516 function forOwnRight(object, iteratee2) { 10517 return object && baseForOwnRight(object, getIteratee(iteratee2, 3)); 10518 } 10519 function functions(object) { 10520 return object == null ? [] : baseFunctions(object, keys(object)); 10521 } 10522 function functionsIn(object) { 10523 return object == null ? [] : baseFunctions(object, keysIn(object)); 10524 } 10525 function get(object, path, defaultValue) { 10526 var result2 = object == null ? undefined2 : baseGet(object, path); 10527 return result2 === undefined2 ? defaultValue : result2; 10528 } 10529 function has(object, path) { 10530 return object != null && hasPath(object, path, baseHas); 10531 } 10532 function hasIn(object, path) { 10533 return object != null && hasPath(object, path, baseHasIn); 10534 } 10535 var invert = createInverter(function(result2, value, key) { 10536 if (value != null && typeof value.toString != "function") { 10537 value = nativeObjectToString.call(value); 10538 } 10539 result2[value] = key; 10540 }, constant(identity)); 10541 var invertBy = createInverter(function(result2, value, key) { 10542 if (value != null && typeof value.toString != "function") { 10543 value = nativeObjectToString.call(value); 10544 } 10545 if (hasOwnProperty.call(result2, value)) { 10546 result2[value].push(key); 10547 } else { 10548 result2[value] = [key]; 10549 } 10550 }, getIteratee); 10551 var invoke = baseRest(baseInvoke); 10552 function keys(object) { 10553 return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); 10554 } 10555 function keysIn(object) { 10556 return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); 10557 } 10558 function mapKeys(object, iteratee2) { 10559 var result2 = {}; 10560 iteratee2 = getIteratee(iteratee2, 3); 10561 baseForOwn(object, function(value, key, object2) { 10562 baseAssignValue(result2, iteratee2(value, key, object2), value); 10563 }); 10564 return result2; 10565 } 10566 function mapValues(object, iteratee2) { 10567 var result2 = {}; 10568 iteratee2 = getIteratee(iteratee2, 3); 10569 baseForOwn(object, function(value, key, object2) { 10570 baseAssignValue(result2, key, iteratee2(value, key, object2)); 10571 }); 10572 return result2; 10573 } 10574 var merge = createAssigner(function(object, source, srcIndex) { 10575 baseMerge(object, source, srcIndex); 10576 }); 10577 var mergeWith = createAssigner(function(object, source, srcIndex, customizer) { 10578 baseMerge(object, source, srcIndex, customizer); 10579 }); 10580 var omit = flatRest(function(object, paths) { 10581 var result2 = {}; 10582 if (object == null) { 10583 return result2; 10584 } 10585 var isDeep = false; 10586 paths = arrayMap(paths, function(path) { 10587 path = castPath(path, object); 10588 isDeep || (isDeep = path.length > 1); 10589 return path; 10590 }); 10591 copyObject(object, getAllKeysIn(object), result2); 10592 if (isDeep) { 10593 result2 = baseClone(result2, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone); 10594 } 10595 var length = paths.length; 10596 while (length--) { 10597 baseUnset(result2, paths[length]); 10598 } 10599 return result2; 10600 }); 10601 function omitBy(object, predicate) { 10602 return pickBy(object, negate(getIteratee(predicate))); 10603 } 10604 var pick = flatRest(function(object, paths) { 10605 return object == null ? {} : basePick(object, paths); 10606 }); 10607 function pickBy(object, predicate) { 10608 if (object == null) { 10609 return {}; 10610 } 10611 var props = arrayMap(getAllKeysIn(object), function(prop) { 10612 return [prop]; 10613 }); 10614 predicate = getIteratee(predicate); 10615 return basePickBy(object, props, function(value, path) { 10616 return predicate(value, path[0]); 10617 }); 10618 } 10619 function result(object, path, defaultValue) { 10620 path = castPath(path, object); 10621 var index = -1, length = path.length; 10622 if (!length) { 10623 length = 1; 10624 object = undefined2; 10625 } 10626 while (++index < length) { 10627 var value = object == null ? undefined2 : object[toKey(path[index])]; 10628 if (value === undefined2) { 10629 index = length; 10630 value = defaultValue; 10631 } 10632 object = isFunction2(value) ? value.call(object) : value; 10633 } 10634 return object; 10635 } 10636 function set(object, path, value) { 10637 return object == null ? object : baseSet(object, path, value); 10638 } 10639 function setWith(object, path, value, customizer) { 10640 customizer = typeof customizer == "function" ? customizer : undefined2; 10641 return object == null ? object : baseSet(object, path, value, customizer); 10642 } 10643 var toPairs = createToPairs(keys); 10644 var toPairsIn = createToPairs(keysIn); 10645 function transform(object, iteratee2, accumulator) { 10646 var isArr = isArray2(object), isArrLike = isArr || isBuffer(object) || isTypedArray(object); 10647 iteratee2 = getIteratee(iteratee2, 4); 10648 if (accumulator == null) { 10649 var Ctor = object && object.constructor; 10650 if (isArrLike) { 10651 accumulator = isArr ? new Ctor() : []; 10652 } else if (isObject2(object)) { 10653 accumulator = isFunction2(Ctor) ? baseCreate(getPrototype(object)) : {}; 10654 } else { 10655 accumulator = {}; 10656 } 10657 } 10658 (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object2) { 10659 return iteratee2(accumulator, value, index, object2); 10660 }); 10661 return accumulator; 10662 } 10663 function unset(object, path) { 10664 return object == null ? true : baseUnset(object, path); 10665 } 10666 function update(object, path, updater) { 10667 return object == null ? object : baseUpdate(object, path, castFunction(updater)); 10668 } 10669 function updateWith(object, path, updater, customizer) { 10670 customizer = typeof customizer == "function" ? customizer : undefined2; 10671 return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer); 10672 } 10673 function values(object) { 10674 return object == null ? [] : baseValues(object, keys(object)); 10675 } 10676 function valuesIn(object) { 10677 return object == null ? [] : baseValues(object, keysIn(object)); 10678 } 10679 function clamp3(number, lower, upper) { 10680 if (upper === undefined2) { 10681 upper = lower; 10682 lower = undefined2; 10683 } 10684 if (upper !== undefined2) { 10685 upper = toNumber(upper); 10686 upper = upper === upper ? upper : 0; 10687 } 10688 if (lower !== undefined2) { 10689 lower = toNumber(lower); 10690 lower = lower === lower ? lower : 0; 10691 } 10692 return baseClamp(toNumber(number), lower, upper); 10693 } 10694 function inRange(number, start2, end2) { 10695 start2 = toFinite(start2); 10696 if (end2 === undefined2) { 10697 end2 = start2; 10698 start2 = 0; 10699 } else { 10700 end2 = toFinite(end2); 10701 } 10702 number = toNumber(number); 10703 return baseInRange(number, start2, end2); 10704 } 10705 function random3(lower, upper, floating) { 10706 if (floating && typeof floating != "boolean" && isIterateeCall(lower, upper, floating)) { 10707 upper = floating = undefined2; 10708 } 10709 if (floating === undefined2) { 10710 if (typeof upper == "boolean") { 10711 floating = upper; 10712 upper = undefined2; 10713 } else if (typeof lower == "boolean") { 10714 floating = lower; 10715 lower = undefined2; 10716 } 10717 } 10718 if (lower === undefined2 && upper === undefined2) { 10719 lower = 0; 10720 upper = 1; 10721 } else { 10722 lower = toFinite(lower); 10723 if (upper === undefined2) { 10724 upper = lower; 10725 lower = 0; 10726 } else { 10727 upper = toFinite(upper); 10728 } 10729 } 10730 if (lower > upper) { 10731 var temp = lower; 10732 lower = upper; 10733 upper = temp; 10734 } 10735 if (floating || lower % 1 || upper % 1) { 10736 var rand = nativeRandom(); 10737 return nativeMin(lower + rand * (upper - lower + freeParseFloat("1e-" + ((rand + "").length - 1))), upper); 10738 } 10739 return baseRandom(lower, upper); 10740 } 10741 var camelCase = createCompounder(function(result2, word, index) { 10742 word = word.toLowerCase(); 10743 return result2 + (index ? capitalize(word) : word); 10744 }); 10745 function capitalize(string) { 10746 return upperFirst(toString(string).toLowerCase()); 10747 } 10748 function deburr(string) { 10749 string = toString(string); 10750 return string && string.replace(reLatin, deburrLetter).replace(reComboMark, ""); 10751 } 10752 function endsWith(string, target, position) { 10753 string = toString(string); 10754 target = baseToString(target); 10755 var length = string.length; 10756 position = position === undefined2 ? length : baseClamp(toInteger(position), 0, length); 10757 var end2 = position; 10758 position -= target.length; 10759 return position >= 0 && string.slice(position, end2) == target; 10760 } 10761 function escape(string) { 10762 string = toString(string); 10763 return string && reHasUnescapedHtml.test(string) ? string.replace(reUnescapedHtml, escapeHtmlChar) : string; 10764 } 10765 function escapeRegExp(string) { 10766 string = toString(string); 10767 return string && reHasRegExpChar.test(string) ? string.replace(reRegExpChar, "\\$&") : string; 10768 } 10769 var kebabCase = createCompounder(function(result2, word, index) { 10770 return result2 + (index ? "-" : "") + word.toLowerCase(); 10771 }); 10772 var lowerCase = createCompounder(function(result2, word, index) { 10773 return result2 + (index ? " " : "") + word.toLowerCase(); 10774 }); 10775 var lowerFirst = createCaseFirst("toLowerCase"); 10776 function pad(string, length, chars) { 10777 string = toString(string); 10778 length = toInteger(length); 10779 var strLength = length ? stringSize(string) : 0; 10780 if (!length || strLength >= length) { 10781 return string; 10782 } 10783 var mid = (length - strLength) / 2; 10784 return createPadding(nativeFloor(mid), chars) + string + createPadding(nativeCeil(mid), chars); 10785 } 10786 function padEnd(string, length, chars) { 10787 string = toString(string); 10788 length = toInteger(length); 10789 var strLength = length ? stringSize(string) : 0; 10790 return length && strLength < length ? string + createPadding(length - strLength, chars) : string; 10791 } 10792 function padStart(string, length, chars) { 10793 string = toString(string); 10794 length = toInteger(length); 10795 var strLength = length ? stringSize(string) : 0; 10796 return length && strLength < length ? createPadding(length - strLength, chars) + string : string; 10797 } 10798 function parseInt2(string, radix, guard) { 10799 if (guard || radix == null) { 10800 radix = 0; 10801 } else if (radix) { 10802 radix = +radix; 10803 } 10804 return nativeParseInt(toString(string).replace(reTrimStart, ""), radix || 0); 10805 } 10806 function repeat(string, n, guard) { 10807 if (guard ? isIterateeCall(string, n, guard) : n === undefined2) { 10808 n = 1; 10809 } else { 10810 n = toInteger(n); 10811 } 10812 return baseRepeat(toString(string), n); 10813 } 10814 function replace() { 10815 var args = arguments, string = toString(args[0]); 10816 return args.length < 3 ? string : string.replace(args[1], args[2]); 10817 } 10818 var snakeCase = createCompounder(function(result2, word, index) { 10819 return result2 + (index ? "_" : "") + word.toLowerCase(); 10820 }); 10821 function split2(string, separator, limit) { 10822 if (limit && typeof limit != "number" && isIterateeCall(string, separator, limit)) { 10823 separator = limit = undefined2; 10824 } 10825 limit = limit === undefined2 ? MAX_ARRAY_LENGTH : limit >>> 0; 10826 if (!limit) { 10827 return []; 10828 } 10829 string = toString(string); 10830 if (string && (typeof separator == "string" || separator != null && !isRegExp(separator))) { 10831 separator = baseToString(separator); 10832 if (!separator && hasUnicode(string)) { 10833 return castSlice(stringToArray(string), 0, limit); 10834 } 10835 } 10836 return string.split(separator, limit); 10837 } 10838 var startCase = createCompounder(function(result2, word, index) { 10839 return result2 + (index ? " " : "") + upperFirst(word); 10840 }); 10841 function startsWith(string, target, position) { 10842 string = toString(string); 10843 position = position == null ? 0 : baseClamp(toInteger(position), 0, string.length); 10844 target = baseToString(target); 10845 return string.slice(position, position + target.length) == target; 10846 } 10847 function template(string, options, guard) { 10848 var settings = lodash.templateSettings; 10849 if (guard && isIterateeCall(string, options, guard)) { 10850 options = undefined2; 10851 } 10852 string = toString(string); 10853 options = assignInWith({}, options, settings, customDefaultsAssignIn); 10854 var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn), importsKeys = keys(imports), importsValues = baseValues(imports, importsKeys); 10855 var isEscaping, isEvaluating, index = 0, interpolate3 = options.interpolate || reNoMatch, source = "__p += '"; 10856 var reDelimiters = RegExp2((options.escape || reNoMatch).source + "|" + interpolate3.source + "|" + (interpolate3 === reInterpolate ? reEsTemplate : reNoMatch).source + "|" + (options.evaluate || reNoMatch).source + "|$", "g"); 10857 var sourceURL = "//# sourceURL=" + (hasOwnProperty.call(options, "sourceURL") ? (options.sourceURL + "").replace(/\s/g, " ") : "lodash.templateSources[" + ++templateCounter + "]") + "\n"; 10858 string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset2) { 10859 interpolateValue || (interpolateValue = esTemplateValue); 10860 source += string.slice(index, offset2).replace(reUnescapedString, escapeStringChar); 10861 if (escapeValue) { 10862 isEscaping = true; 10863 source += "' +\n__e(" + escapeValue + ") +\n'"; 10864 } 10865 if (evaluateValue) { 10866 isEvaluating = true; 10867 source += "';\n" + evaluateValue + ";\n__p += '"; 10868 } 10869 if (interpolateValue) { 10870 source += "' +\n((__t = (" + interpolateValue + ")) == null ? '' : __t) +\n'"; 10871 } 10872 index = offset2 + match.length; 10873 return match; 10874 }); 10875 source += "';\n"; 10876 var variable = hasOwnProperty.call(options, "variable") && options.variable; 10877 if (!variable) { 10878 source = "with (obj) {\n" + source + "\n}\n"; 10879 } else if (reForbiddenIdentifierChars.test(variable)) { 10880 throw new Error2(INVALID_TEMPL_VAR_ERROR_TEXT); 10881 } 10882 source = (isEvaluating ? source.replace(reEmptyStringLeading, "") : source).replace(reEmptyStringMiddle, "$1").replace(reEmptyStringTrailing, "$1;"); 10883 source = "function(" + (variable || "obj") + ") {\n" + (variable ? "" : "obj || (obj = {});\n") + "var __t, __p = ''" + (isEscaping ? ", __e = _.escape" : "") + (isEvaluating ? ", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n" : ";\n") + source + "return __p\n}"; 10884 var result2 = attempt(function() { 10885 return Function2(importsKeys, sourceURL + "return " + source).apply(undefined2, importsValues); 10886 }); 10887 result2.source = source; 10888 if (isError(result2)) { 10889 throw result2; 10890 } 10891 return result2; 10892 } 10893 function toLower(value) { 10894 return toString(value).toLowerCase(); 10895 } 10896 function toUpper(value) { 10897 return toString(value).toUpperCase(); 10898 } 10899 function trim(string, chars, guard) { 10900 string = toString(string); 10901 if (string && (guard || chars === undefined2)) { 10902 return baseTrim(string); 10903 } 10904 if (!string || !(chars = baseToString(chars))) { 10905 return string; 10906 } 10907 var strSymbols = stringToArray(string), chrSymbols = stringToArray(chars), start2 = charsStartIndex(strSymbols, chrSymbols), end2 = charsEndIndex(strSymbols, chrSymbols) + 1; 10908 return castSlice(strSymbols, start2, end2).join(""); 10909 } 10910 function trimEnd(string, chars, guard) { 10911 string = toString(string); 10912 if (string && (guard || chars === undefined2)) { 10913 return string.slice(0, trimmedEndIndex(string) + 1); 10914 } 10915 if (!string || !(chars = baseToString(chars))) { 10916 return string; 10917 } 10918 var strSymbols = stringToArray(string), end2 = charsEndIndex(strSymbols, stringToArray(chars)) + 1; 10919 return castSlice(strSymbols, 0, end2).join(""); 10920 } 10921 function trimStart(string, chars, guard) { 10922 string = toString(string); 10923 if (string && (guard || chars === undefined2)) { 10924 return string.replace(reTrimStart, ""); 10925 } 10926 if (!string || !(chars = baseToString(chars))) { 10927 return string; 10928 } 10929 var strSymbols = stringToArray(string), start2 = charsStartIndex(strSymbols, stringToArray(chars)); 10930 return castSlice(strSymbols, start2).join(""); 10931 } 10932 function truncate(string, options) { 10933 var length = DEFAULT_TRUNC_LENGTH, omission = DEFAULT_TRUNC_OMISSION; 10934 if (isObject2(options)) { 10935 var separator = "separator" in options ? options.separator : separator; 10936 length = "length" in options ? toInteger(options.length) : length; 10937 omission = "omission" in options ? baseToString(options.omission) : omission; 10938 } 10939 string = toString(string); 10940 var strLength = string.length; 10941 if (hasUnicode(string)) { 10942 var strSymbols = stringToArray(string); 10943 strLength = strSymbols.length; 10944 } 10945 if (length >= strLength) { 10946 return string; 10947 } 10948 var end2 = length - stringSize(omission); 10949 if (end2 < 1) { 10950 return omission; 10951 } 10952 var result2 = strSymbols ? castSlice(strSymbols, 0, end2).join("") : string.slice(0, end2); 10953 if (separator === undefined2) { 10954 return result2 + omission; 10955 } 10956 if (strSymbols) { 10957 end2 += result2.length - end2; 10958 } 10959 if (isRegExp(separator)) { 10960 if (string.slice(end2).search(separator)) { 10961 var match, substring = result2; 10962 if (!separator.global) { 10963 separator = RegExp2(separator.source, toString(reFlags.exec(separator)) + "g"); 10964 } 10965 separator.lastIndex = 0; 10966 while (match = separator.exec(substring)) { 10967 var newEnd = match.index; 10968 } 10969 result2 = result2.slice(0, newEnd === undefined2 ? end2 : newEnd); 10970 } 10971 } else if (string.indexOf(baseToString(separator), end2) != end2) { 10972 var index = result2.lastIndexOf(separator); 10973 if (index > -1) { 10974 result2 = result2.slice(0, index); 10975 } 10976 } 10977 return result2 + omission; 10978 } 10979 function unescape(string) { 10980 string = toString(string); 10981 return string && reHasEscapedHtml.test(string) ? string.replace(reEscapedHtml, unescapeHtmlChar) : string; 10982 } 10983 var upperCase = createCompounder(function(result2, word, index) { 10984 return result2 + (index ? " " : "") + word.toUpperCase(); 10985 }); 10986 var upperFirst = createCaseFirst("toUpperCase"); 10987 function words(string, pattern, guard) { 10988 string = toString(string); 10989 pattern = guard ? undefined2 : pattern; 10990 if (pattern === undefined2) { 10991 return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string); 10992 } 10993 return string.match(pattern) || []; 10994 } 10995 var attempt = baseRest(function(func, args) { 10996 try { 10997 return apply(func, undefined2, args); 10998 } catch (e) { 10999 return isError(e) ? e : new Error2(e); 11000 } 11001 }); 11002 var bindAll = flatRest(function(object, methodNames) { 11003 arrayEach(methodNames, function(key) { 11004 key = toKey(key); 11005 baseAssignValue(object, key, bind(object[key], object)); 11006 }); 11007 return object; 11008 }); 11009 function cond(pairs) { 11010 var length = pairs == null ? 0 : pairs.length, toIteratee = getIteratee(); 11011 pairs = !length ? [] : arrayMap(pairs, function(pair) { 11012 if (typeof pair[1] != "function") { 11013 throw new TypeError2(FUNC_ERROR_TEXT); 11014 } 11015 return [toIteratee(pair[0]), pair[1]]; 11016 }); 11017 return baseRest(function(args) { 11018 var index = -1; 11019 while (++index < length) { 11020 var pair = pairs[index]; 11021 if (apply(pair[0], this, args)) { 11022 return apply(pair[1], this, args); 11023 } 11024 } 11025 }); 11026 } 11027 function conforms(source) { 11028 return baseConforms(baseClone(source, CLONE_DEEP_FLAG)); 11029 } 11030 function constant(value) { 11031 return function() { 11032 return value; 11033 }; 11034 } 11035 function defaultTo(value, defaultValue) { 11036 return value == null || value !== value ? defaultValue : value; 11037 } 11038 var flow = createFlow(); 11039 var flowRight = createFlow(true); 11040 function identity(value) { 11041 return value; 11042 } 11043 function iteratee(func) { 11044 return baseIteratee(typeof func == "function" ? func : baseClone(func, CLONE_DEEP_FLAG)); 11045 } 11046 function matches(source) { 11047 return baseMatches(baseClone(source, CLONE_DEEP_FLAG)); 11048 } 11049 function matchesProperty(path, srcValue) { 11050 return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG)); 11051 } 11052 var method = baseRest(function(path, args) { 11053 return function(object) { 11054 return baseInvoke(object, path, args); 11055 }; 11056 }); 11057 var methodOf = baseRest(function(object, args) { 11058 return function(path) { 11059 return baseInvoke(object, path, args); 11060 }; 11061 }); 11062 function mixin(object, source, options) { 11063 var props = keys(source), methodNames = baseFunctions(source, props); 11064 if (options == null && !(isObject2(source) && (methodNames.length || !props.length))) { 11065 options = source; 11066 source = object; 11067 object = this; 11068 methodNames = baseFunctions(source, keys(source)); 11069 } 11070 var chain2 = !(isObject2(options) && "chain" in options) || !!options.chain, isFunc = isFunction2(object); 11071 arrayEach(methodNames, function(methodName) { 11072 var func = source[methodName]; 11073 object[methodName] = func; 11074 if (isFunc) { 11075 object.prototype[methodName] = function() { 11076 var chainAll = this.__chain__; 11077 if (chain2 || chainAll) { 11078 var result2 = object(this.__wrapped__), actions = result2.__actions__ = copyArray(this.__actions__); 11079 actions.push({ "func": func, "args": arguments, "thisArg": object }); 11080 result2.__chain__ = chainAll; 11081 return result2; 11082 } 11083 return func.apply(object, arrayPush([this.value()], arguments)); 11084 }; 11085 } 11086 }); 11087 return object; 11088 } 11089 function noConflict() { 11090 if (root._ === this) { 11091 root._ = oldDash; 11092 } 11093 return this; 11094 } 11095 function noop() { 11096 } 11097 function nthArg(n) { 11098 n = toInteger(n); 11099 return baseRest(function(args) { 11100 return baseNth(args, n); 11101 }); 11102 } 11103 var over = createOver(arrayMap); 11104 var overEvery = createOver(arrayEvery); 11105 var overSome = createOver(arraySome); 11106 function property(path) { 11107 return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); 11108 } 11109 function propertyOf(object) { 11110 return function(path) { 11111 return object == null ? undefined2 : baseGet(object, path); 11112 }; 11113 } 11114 var range = createRange(); 11115 var rangeRight = createRange(true); 11116 function stubArray() { 11117 return []; 11118 } 11119 function stubFalse() { 11120 return false; 11121 } 11122 function stubObject() { 11123 return {}; 11124 } 11125 function stubString() { 11126 return ""; 11127 } 11128 function stubTrue() { 11129 return true; 11130 } 11131 function times(n, iteratee2) { 11132 n = toInteger(n); 11133 if (n < 1 || n > MAX_SAFE_INTEGER) { 11134 return []; 11135 } 11136 var index = MAX_ARRAY_LENGTH, length = nativeMin(n, MAX_ARRAY_LENGTH); 11137 iteratee2 = getIteratee(iteratee2); 11138 n -= MAX_ARRAY_LENGTH; 11139 var result2 = baseTimes(length, iteratee2); 11140 while (++index < n) { 11141 iteratee2(index); 11142 } 11143 return result2; 11144 } 11145 function toPath(value) { 11146 if (isArray2(value)) { 11147 return arrayMap(value, toKey); 11148 } 11149 return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value))); 11150 } 11151 function uniqueId(prefix) { 11152 var id = ++idCounter; 11153 return toString(prefix) + id; 11154 } 11155 var add = createMathOperation(function(augend, addend) { 11156 return augend + addend; 11157 }, 0); 11158 var ceil = createRound("ceil"); 11159 var divide = createMathOperation(function(dividend, divisor) { 11160 return dividend / divisor; 11161 }, 1); 11162 var floor = createRound("floor"); 11163 function max2(array) { 11164 return array && array.length ? baseExtremum(array, identity, baseGt) : undefined2; 11165 } 11166 function maxBy(array, iteratee2) { 11167 return array && array.length ? baseExtremum(array, getIteratee(iteratee2, 2), baseGt) : undefined2; 11168 } 11169 function mean(array) { 11170 return baseMean(array, identity); 11171 } 11172 function meanBy(array, iteratee2) { 11173 return baseMean(array, getIteratee(iteratee2, 2)); 11174 } 11175 function min2(array) { 11176 return array && array.length ? baseExtremum(array, identity, baseLt) : undefined2; 11177 } 11178 function minBy(array, iteratee2) { 11179 return array && array.length ? baseExtremum(array, getIteratee(iteratee2, 2), baseLt) : undefined2; 11180 } 11181 var multiply = createMathOperation(function(multiplier, multiplicand) { 11182 return multiplier * multiplicand; 11183 }, 1); 11184 var round2 = createRound("round"); 11185 var subtract = createMathOperation(function(minuend, subtrahend) { 11186 return minuend - subtrahend; 11187 }, 0); 11188 function sum(array) { 11189 return array && array.length ? baseSum(array, identity) : 0; 11190 } 11191 function sumBy(array, iteratee2) { 11192 return array && array.length ? baseSum(array, getIteratee(iteratee2, 2)) : 0; 11193 } 11194 lodash.after = after; 11195 lodash.ary = ary; 11196 lodash.assign = assign; 11197 lodash.assignIn = assignIn; 11198 lodash.assignInWith = assignInWith; 11199 lodash.assignWith = assignWith; 11200 lodash.at = at; 11201 lodash.before = before; 11202 lodash.bind = bind; 11203 lodash.bindAll = bindAll; 11204 lodash.bindKey = bindKey; 11205 lodash.castArray = castArray; 11206 lodash.chain = chain; 11207 lodash.chunk = chunk; 11208 lodash.compact = compact; 11209 lodash.concat = concat; 11210 lodash.cond = cond; 11211 lodash.conforms = conforms; 11212 lodash.constant = constant; 11213 lodash.countBy = countBy; 11214 lodash.create = create; 11215 lodash.curry = curry; 11216 lodash.curryRight = curryRight; 11217 lodash.debounce = debounce3; 11218 lodash.defaults = defaults3; 11219 lodash.defaultsDeep = defaultsDeep; 11220 lodash.defer = defer; 11221 lodash.delay = delay; 11222 lodash.difference = difference; 11223 lodash.differenceBy = differenceBy; 11224 lodash.differenceWith = differenceWith; 11225 lodash.drop = drop; 11226 lodash.dropRight = dropRight; 11227 lodash.dropRightWhile = dropRightWhile; 11228 lodash.dropWhile = dropWhile; 11229 lodash.fill = fill; 11230 lodash.filter = filter; 11231 lodash.flatMap = flatMap; 11232 lodash.flatMapDeep = flatMapDeep; 11233 lodash.flatMapDepth = flatMapDepth; 11234 lodash.flatten = flatten; 11235 lodash.flattenDeep = flattenDeep; 11236 lodash.flattenDepth = flattenDepth; 11237 lodash.flip = flip2; 11238 lodash.flow = flow; 11239 lodash.flowRight = flowRight; 11240 lodash.fromPairs = fromPairs; 11241 lodash.functions = functions; 11242 lodash.functionsIn = functionsIn; 11243 lodash.groupBy = groupBy; 11244 lodash.initial = initial; 11245 lodash.intersection = intersection; 11246 lodash.intersectionBy = intersectionBy; 11247 lodash.intersectionWith = intersectionWith; 11248 lodash.invert = invert; 11249 lodash.invertBy = invertBy; 11250 lodash.invokeMap = invokeMap; 11251 lodash.iteratee = iteratee; 11252 lodash.keyBy = keyBy; 11253 lodash.keys = keys; 11254 lodash.keysIn = keysIn; 11255 lodash.map = map; 11256 lodash.mapKeys = mapKeys; 11257 lodash.mapValues = mapValues; 11258 lodash.matches = matches; 11259 lodash.matchesProperty = matchesProperty; 11260 lodash.memoize = memoize; 11261 lodash.merge = merge; 11262 lodash.mergeWith = mergeWith; 11263 lodash.method = method; 11264 lodash.methodOf = methodOf; 11265 lodash.mixin = mixin; 11266 lodash.negate = negate; 11267 lodash.nthArg = nthArg; 11268 lodash.omit = omit; 11269 lodash.omitBy = omitBy; 11270 lodash.once = once; 11271 lodash.orderBy = orderBy; 11272 lodash.over = over; 11273 lodash.overArgs = overArgs; 11274 lodash.overEvery = overEvery; 11275 lodash.overSome = overSome; 11276 lodash.partial = partial; 11277 lodash.partialRight = partialRight; 11278 lodash.partition = partition; 11279 lodash.pick = pick; 11280 lodash.pickBy = pickBy; 11281 lodash.property = property; 11282 lodash.propertyOf = propertyOf; 11283 lodash.pull = pull; 11284 lodash.pullAll = pullAll; 11285 lodash.pullAllBy = pullAllBy; 11286 lodash.pullAllWith = pullAllWith; 11287 lodash.pullAt = pullAt; 11288 lodash.range = range; 11289 lodash.rangeRight = rangeRight; 11290 lodash.rearg = rearg; 11291 lodash.reject = reject; 11292 lodash.remove = remove; 11293 lodash.rest = rest; 11294 lodash.reverse = reverse; 11295 lodash.sampleSize = sampleSize; 11296 lodash.set = set; 11297 lodash.setWith = setWith; 11298 lodash.shuffle = shuffle3; 11299 lodash.slice = slice; 11300 lodash.sortBy = sortBy; 11301 lodash.sortedUniq = sortedUniq; 11302 lodash.sortedUniqBy = sortedUniqBy; 11303 lodash.split = split2; 11304 lodash.spread = spread; 11305 lodash.tail = tail; 11306 lodash.take = take; 11307 lodash.takeRight = takeRight; 11308 lodash.takeRightWhile = takeRightWhile; 11309 lodash.takeWhile = takeWhile; 11310 lodash.tap = tap; 11311 lodash.throttle = throttle2; 11312 lodash.thru = thru; 11313 lodash.toArray = toArray3; 11314 lodash.toPairs = toPairs; 11315 lodash.toPairsIn = toPairsIn; 11316 lodash.toPath = toPath; 11317 lodash.toPlainObject = toPlainObject; 11318 lodash.transform = transform; 11319 lodash.unary = unary; 11320 lodash.union = union; 11321 lodash.unionBy = unionBy; 11322 lodash.unionWith = unionWith; 11323 lodash.uniq = uniq; 11324 lodash.uniqBy = uniqBy; 11325 lodash.uniqWith = uniqWith; 11326 lodash.unset = unset; 11327 lodash.unzip = unzip; 11328 lodash.unzipWith = unzipWith; 11329 lodash.update = update; 11330 lodash.updateWith = updateWith; 11331 lodash.values = values; 11332 lodash.valuesIn = valuesIn; 11333 lodash.without = without; 11334 lodash.words = words; 11335 lodash.wrap = wrap3; 11336 lodash.xor = xor; 11337 lodash.xorBy = xorBy; 11338 lodash.xorWith = xorWith; 11339 lodash.zip = zip; 11340 lodash.zipObject = zipObject; 11341 lodash.zipObjectDeep = zipObjectDeep; 11342 lodash.zipWith = zipWith; 11343 lodash.entries = toPairs; 11344 lodash.entriesIn = toPairsIn; 11345 lodash.extend = assignIn; 11346 lodash.extendWith = assignInWith; 11347 mixin(lodash, lodash); 11348 lodash.add = add; 11349 lodash.attempt = attempt; 11350 lodash.camelCase = camelCase; 11351 lodash.capitalize = capitalize; 11352 lodash.ceil = ceil; 11353 lodash.clamp = clamp3; 11354 lodash.clone = clone; 11355 lodash.cloneDeep = cloneDeep; 11356 lodash.cloneDeepWith = cloneDeepWith; 11357 lodash.cloneWith = cloneWith; 11358 lodash.conformsTo = conformsTo; 11359 lodash.deburr = deburr; 11360 lodash.defaultTo = defaultTo; 11361 lodash.divide = divide; 11362 lodash.endsWith = endsWith; 11363 lodash.eq = eq; 11364 lodash.escape = escape; 11365 lodash.escapeRegExp = escapeRegExp; 11366 lodash.every = every; 11367 lodash.find = find; 11368 lodash.findIndex = findIndex; 11369 lodash.findKey = findKey; 11370 lodash.findLast = findLast; 11371 lodash.findLastIndex = findLastIndex; 11372 lodash.findLastKey = findLastKey; 11373 lodash.floor = floor; 11374 lodash.forEach = forEach2; 11375 lodash.forEachRight = forEachRight; 11376 lodash.forIn = forIn; 11377 lodash.forInRight = forInRight; 11378 lodash.forOwn = forOwn; 11379 lodash.forOwnRight = forOwnRight; 11380 lodash.get = get; 11381 lodash.gt = gt; 11382 lodash.gte = gte; 11383 lodash.has = has; 11384 lodash.hasIn = hasIn; 11385 lodash.head = head; 11386 lodash.identity = identity; 11387 lodash.includes = includes; 11388 lodash.indexOf = indexOf; 11389 lodash.inRange = inRange; 11390 lodash.invoke = invoke; 11391 lodash.isArguments = isArguments; 11392 lodash.isArray = isArray2; 11393 lodash.isArrayBuffer = isArrayBuffer; 11394 lodash.isArrayLike = isArrayLike; 11395 lodash.isArrayLikeObject = isArrayLikeObject; 11396 lodash.isBoolean = isBoolean; 11397 lodash.isBuffer = isBuffer; 11398 lodash.isDate = isDate; 11399 lodash.isElement = isElement2; 11400 lodash.isEmpty = isEmpty; 11401 lodash.isEqual = isEqual; 11402 lodash.isEqualWith = isEqualWith; 11403 lodash.isError = isError; 11404 lodash.isFinite = isFinite2; 11405 lodash.isFunction = isFunction2; 11406 lodash.isInteger = isInteger; 11407 lodash.isLength = isLength; 11408 lodash.isMap = isMap; 11409 lodash.isMatch = isMatch; 11410 lodash.isMatchWith = isMatchWith; 11411 lodash.isNaN = isNaN2; 11412 lodash.isNative = isNative; 11413 lodash.isNil = isNil; 11414 lodash.isNull = isNull; 11415 lodash.isNumber = isNumber; 11416 lodash.isObject = isObject2; 11417 lodash.isObjectLike = isObjectLike; 11418 lodash.isPlainObject = isPlainObject; 11419 lodash.isRegExp = isRegExp; 11420 lodash.isSafeInteger = isSafeInteger; 11421 lodash.isSet = isSet; 11422 lodash.isString = isString2; 11423 lodash.isSymbol = isSymbol; 11424 lodash.isTypedArray = isTypedArray; 11425 lodash.isUndefined = isUndefined2; 11426 lodash.isWeakMap = isWeakMap; 11427 lodash.isWeakSet = isWeakSet; 11428 lodash.join = join; 11429 lodash.kebabCase = kebabCase; 11430 lodash.last = last; 11431 lodash.lastIndexOf = lastIndexOf; 11432 lodash.lowerCase = lowerCase; 11433 lodash.lowerFirst = lowerFirst; 11434 lodash.lt = lt; 11435 lodash.lte = lte; 11436 lodash.max = max2; 11437 lodash.maxBy = maxBy; 11438 lodash.mean = mean; 11439 lodash.meanBy = meanBy; 11440 lodash.min = min2; 11441 lodash.minBy = minBy; 11442 lodash.stubArray = stubArray; 11443 lodash.stubFalse = stubFalse; 11444 lodash.stubObject = stubObject; 11445 lodash.stubString = stubString; 11446 lodash.stubTrue = stubTrue; 11447 lodash.multiply = multiply; 11448 lodash.nth = nth; 11449 lodash.noConflict = noConflict; 11450 lodash.noop = noop; 11451 lodash.now = now2; 11452 lodash.pad = pad; 11453 lodash.padEnd = padEnd; 11454 lodash.padStart = padStart; 11455 lodash.parseInt = parseInt2; 11456 lodash.random = random3; 11457 lodash.reduce = reduce; 11458 lodash.reduceRight = reduceRight; 11459 lodash.repeat = repeat; 11460 lodash.replace = replace; 11461 lodash.result = result; 11462 lodash.round = round2; 11463 lodash.runInContext = runInContext2; 11464 lodash.sample = sample; 11465 lodash.size = size; 11466 lodash.snakeCase = snakeCase; 11467 lodash.some = some; 11468 lodash.sortedIndex = sortedIndex; 11469 lodash.sortedIndexBy = sortedIndexBy; 11470 lodash.sortedIndexOf = sortedIndexOf; 11471 lodash.sortedLastIndex = sortedLastIndex; 11472 lodash.sortedLastIndexBy = sortedLastIndexBy; 11473 lodash.sortedLastIndexOf = sortedLastIndexOf; 11474 lodash.startCase = startCase; 11475 lodash.startsWith = startsWith; 11476 lodash.subtract = subtract; 11477 lodash.sum = sum; 11478 lodash.sumBy = sumBy; 11479 lodash.template = template; 11480 lodash.times = times; 11481 lodash.toFinite = toFinite; 11482 lodash.toInteger = toInteger; 11483 lodash.toLength = toLength; 11484 lodash.toLower = toLower; 11485 lodash.toNumber = toNumber; 11486 lodash.toSafeInteger = toSafeInteger; 11487 lodash.toString = toString; 11488 lodash.toUpper = toUpper; 11489 lodash.trim = trim; 11490 lodash.trimEnd = trimEnd; 11491 lodash.trimStart = trimStart; 11492 lodash.truncate = truncate; 11493 lodash.unescape = unescape; 11494 lodash.uniqueId = uniqueId; 11495 lodash.upperCase = upperCase; 11496 lodash.upperFirst = upperFirst; 11497 lodash.each = forEach2; 11498 lodash.eachRight = forEachRight; 11499 lodash.first = head; 11500 mixin(lodash, function() { 11501 var source = {}; 11502 baseForOwn(lodash, function(func, methodName) { 11503 if (!hasOwnProperty.call(lodash.prototype, methodName)) { 11504 source[methodName] = func; 11505 } 11506 }); 11507 return source; 11508 }(), { "chain": false }); 11509 lodash.VERSION = VERSION; 11510 arrayEach(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], function(methodName) { 11511 lodash[methodName].placeholder = lodash; 11512 }); 11513 arrayEach(["drop", "take"], function(methodName, index) { 11514 LazyWrapper.prototype[methodName] = function(n) { 11515 n = n === undefined2 ? 1 : nativeMax(toInteger(n), 0); 11516 var result2 = this.__filtered__ && !index ? new LazyWrapper(this) : this.clone(); 11517 if (result2.__filtered__) { 11518 result2.__takeCount__ = nativeMin(n, result2.__takeCount__); 11519 } else { 11520 result2.__views__.push({ 11521 "size": nativeMin(n, MAX_ARRAY_LENGTH), 11522 "type": methodName + (result2.__dir__ < 0 ? "Right" : "") 11523 }); 11524 } 11525 return result2; 11526 }; 11527 LazyWrapper.prototype[methodName + "Right"] = function(n) { 11528 return this.reverse()[methodName](n).reverse(); 11529 }; 11530 }); 11531 arrayEach(["filter", "map", "takeWhile"], function(methodName, index) { 11532 var type = index + 1, isFilter = type == LAZY_FILTER_FLAG || type == LAZY_WHILE_FLAG; 11533 LazyWrapper.prototype[methodName] = function(iteratee2) { 11534 var result2 = this.clone(); 11535 result2.__iteratees__.push({ 11536 "iteratee": getIteratee(iteratee2, 3), 11537 "type": type 11538 }); 11539 result2.__filtered__ = result2.__filtered__ || isFilter; 11540 return result2; 11541 }; 11542 }); 11543 arrayEach(["head", "last"], function(methodName, index) { 11544 var takeName = "take" + (index ? "Right" : ""); 11545 LazyWrapper.prototype[methodName] = function() { 11546 return this[takeName](1).value()[0]; 11547 }; 11548 }); 11549 arrayEach(["initial", "tail"], function(methodName, index) { 11550 var dropName = "drop" + (index ? "" : "Right"); 11551 LazyWrapper.prototype[methodName] = function() { 11552 return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1); 11553 }; 11554 }); 11555 LazyWrapper.prototype.compact = function() { 11556 return this.filter(identity); 11557 }; 11558 LazyWrapper.prototype.find = function(predicate) { 11559 return this.filter(predicate).head(); 11560 }; 11561 LazyWrapper.prototype.findLast = function(predicate) { 11562 return this.reverse().find(predicate); 11563 }; 11564 LazyWrapper.prototype.invokeMap = baseRest(function(path, args) { 11565 if (typeof path == "function") { 11566 return new LazyWrapper(this); 11567 } 11568 return this.map(function(value) { 11569 return baseInvoke(value, path, args); 11570 }); 11571 }); 11572 LazyWrapper.prototype.reject = function(predicate) { 11573 return this.filter(negate(getIteratee(predicate))); 11574 }; 11575 LazyWrapper.prototype.slice = function(start2, end2) { 11576 start2 = toInteger(start2); 11577 var result2 = this; 11578 if (result2.__filtered__ && (start2 > 0 || end2 < 0)) { 11579 return new LazyWrapper(result2); 11580 } 11581 if (start2 < 0) { 11582 result2 = result2.takeRight(-start2); 11583 } else if (start2) { 11584 result2 = result2.drop(start2); 11585 } 11586 if (end2 !== undefined2) { 11587 end2 = toInteger(end2); 11588 result2 = end2 < 0 ? result2.dropRight(-end2) : result2.take(end2 - start2); 11589 } 11590 return result2; 11591 }; 11592 LazyWrapper.prototype.takeRightWhile = function(predicate) { 11593 return this.reverse().takeWhile(predicate).reverse(); 11594 }; 11595 LazyWrapper.prototype.toArray = function() { 11596 return this.take(MAX_ARRAY_LENGTH); 11597 }; 11598 baseForOwn(LazyWrapper.prototype, function(func, methodName) { 11599 var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName), isTaker = /^(?:head|last)$/.test(methodName), lodashFunc = lodash[isTaker ? "take" + (methodName == "last" ? "Right" : "") : methodName], retUnwrapped = isTaker || /^find/.test(methodName); 11600 if (!lodashFunc) { 11601 return; 11602 } 11603 lodash.prototype[methodName] = function() { 11604 var value = this.__wrapped__, args = isTaker ? [1] : arguments, isLazy = value instanceof LazyWrapper, iteratee2 = args[0], useLazy = isLazy || isArray2(value); 11605 var interceptor = function(value2) { 11606 var result3 = lodashFunc.apply(lodash, arrayPush([value2], args)); 11607 return isTaker && chainAll ? result3[0] : result3; 11608 }; 11609 if (useLazy && checkIteratee && typeof iteratee2 == "function" && iteratee2.length != 1) { 11610 isLazy = useLazy = false; 11611 } 11612 var chainAll = this.__chain__, isHybrid = !!this.__actions__.length, isUnwrapped = retUnwrapped && !chainAll, onlyLazy = isLazy && !isHybrid; 11613 if (!retUnwrapped && useLazy) { 11614 value = onlyLazy ? value : new LazyWrapper(this); 11615 var result2 = func.apply(value, args); 11616 result2.__actions__.push({ "func": thru, "args": [interceptor], "thisArg": undefined2 }); 11617 return new LodashWrapper(result2, chainAll); 11618 } 11619 if (isUnwrapped && onlyLazy) { 11620 return func.apply(this, args); 11621 } 11622 result2 = this.thru(interceptor); 11623 return isUnwrapped ? isTaker ? result2.value()[0] : result2.value() : result2; 11624 }; 11625 }); 11626 arrayEach(["pop", "push", "shift", "sort", "splice", "unshift"], function(methodName) { 11627 var func = arrayProto[methodName], chainName = /^(?:push|sort|unshift)$/.test(methodName) ? "tap" : "thru", retUnwrapped = /^(?:pop|shift)$/.test(methodName); 11628 lodash.prototype[methodName] = function() { 11629 var args = arguments; 11630 if (retUnwrapped && !this.__chain__) { 11631 var value = this.value(); 11632 return func.apply(isArray2(value) ? value : [], args); 11633 } 11634 return this[chainName](function(value2) { 11635 return func.apply(isArray2(value2) ? value2 : [], args); 11636 }); 11637 }; 11638 }); 11639 baseForOwn(LazyWrapper.prototype, function(func, methodName) { 11640 var lodashFunc = lodash[methodName]; 11641 if (lodashFunc) { 11642 var key = lodashFunc.name + ""; 11643 if (!hasOwnProperty.call(realNames, key)) { 11644 realNames[key] = []; 11645 } 11646 realNames[key].push({ "name": methodName, "func": lodashFunc }); 11647 } 11648 }); 11649 realNames[createHybrid(undefined2, WRAP_BIND_KEY_FLAG).name] = [{ 11650 "name": "wrapper", 11651 "func": undefined2 11652 }]; 11653 LazyWrapper.prototype.clone = lazyClone; 11654 LazyWrapper.prototype.reverse = lazyReverse; 11655 LazyWrapper.prototype.value = lazyValue; 11656 lodash.prototype.at = wrapperAt; 11657 lodash.prototype.chain = wrapperChain; 11658 lodash.prototype.commit = wrapperCommit; 11659 lodash.prototype.next = wrapperNext; 11660 lodash.prototype.plant = wrapperPlant; 11661 lodash.prototype.reverse = wrapperReverse; 11662 lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue; 11663 lodash.prototype.first = lodash.prototype.head; 11664 if (symIterator) { 11665 lodash.prototype[symIterator] = wrapperToIterator; 11666 } 11667 return lodash; 11668 }; 11669 var _2 = runInContext(); 11670 if (typeof define == "function" && typeof define.amd == "object" && define.amd) { 11671 root._ = _2; 11672 define(function() { 11673 return _2; 11674 }); 11675 } else if (freeModule) { 11676 (freeModule.exports = _2)._ = _2; 11677 freeExports._ = _2; 11678 } else { 11679 root._ = _2; 11680 } 11681 }).call(exports); 11682 } 11683 }); 11684 11685
11685// resources/js/app.js 11686 var import_jquery3 = __toModule(require_jquery()); 11687 11688
11688// components/page-builder/accordion/index.js 11689 var import_jquery = __toModule(require_jquery()); 11690 11691
vendor: 113,940 bytes, lines 11691-14554
11691// node_modules/gsap/gsap-core.js 11692 function _assertThisInitialized(self2) { 11693 if (self2 === void 0) { 11694 throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); 11695 } 11696 return self2; 11697 } 11698 function _inheritsLoose(subClass, superClass) { 11699 subClass.prototype = Object.create(superClass.prototype); 11700 subClass.prototype.constructor = subClass; 11701 subClass.__proto__ = superClass; 11702 } 11703 var _config = { 11704 autoSleep: 120, 11705 force3D: "auto", 11706 nullTargetWarn: 1, 11707 units: { 11708 lineHeight: "" 11709 } 11710 }; 11711 var _defaults = { 11712 duration: 0.5, 11713 overwrite: false, 11714 delay: 0 11715 }; 11716 var _suppressOverwrites; 11717 var _bigNum = 1e8; 11718 var _tinyNum = 1 / _bigNum; 11719 var _2PI = Math.PI * 2; 11720 var _HALF_PI = _2PI / 4; 11721 var _gsID = 0; 11722 var _sqrt = Math.sqrt; 11723 var _cos = Math.cos; 11724 var _sin = Math.sin; 11725 var _isString = function _isString2(value) { 11726 return typeof value === "string"; 11727 }; 11728 var _isFunction = function _isFunction2(value) { 11729 return typeof value === "function"; 11730 }; 11731 var _isNumber = function _isNumber2(value) { 11732 return typeof value === "number"; 11733 }; 11734 var _isUndefined = function _isUndefined2(value) { 11735 return typeof value === "undefined"; 11736 }; 11737 var _isObject = function _isObject2(value) { 11738 return typeof value === "object"; 11739 }; 11740 var _isNotFalse = function _isNotFalse2(value) { 11741 return value !== false; 11742 }; 11743 var _windowExists = function _windowExists2() { 11744 return typeof window !== "undefined"; 11745 }; 11746 var _isFuncOrString = function _isFuncOrString2(value) { 11747 return _isFunction(value) || _isString(value); 11748 }; 11749 var _isTypedArray = typeof ArrayBuffer === "function" && ArrayBuffer.isView || function() { 11750 }; 11751 var _isArray = Array.isArray; 11752 var _strictNumExp = /(?:-?\.?\d|\.)+/gi; 11753 var _numExp = /[-+=.]*\d+[.e\-+]*\d*[e\-+]*\d*/g; 11754 var _numWithUnitExp = /[-+=.]*\d+[.e-]*\d*[a-z%]*/g; 11755 var _complexStringNumExp = /[-+=.]*\d+\.?\d*(?:e-|e\+)?\d*/gi; 11756 var _relExp = /[+-]=-?[.\d]+/; 11757 var _delimitedValueExp = /[^,'"\[\]\s]+/gi; 11758 var _unitExp = /^[+\-=e\s\d]*\d+[.\d]*([a-z]*|%)\s*$/i; 11759 var _globalTimeline; 11760 var _win; 11761 var _coreInitted; 11762 var _doc; 11763 var _globals = {}; 11764 var _installScope = {}; 11765 var _coreReady; 11766 var _install = function _install2(scope) { 11767 return (_installScope = _merge(scope, _globals)) && gsap; 11768 }; 11769 var _missingPlugin = function _missingPlugin2(property, value) { 11770 return console.warn("Invalid property", property, "set to", value, "Missing plugin? gsap.registerPlugin()"); 11771 }; 11772 var _warn = function _warn2(message, suppress) { 11773 return !suppress && console.warn(message); 11774 }; 11775 var _addGlobal = function _addGlobal2(name, obj) { 11776 return name && (_globals[name] = obj) && _installScope && (_installScope[name] = obj) || _globals; 11777 }; 11778 var _emptyFunc = function _emptyFunc2() { 11779 return 0; 11780 }; 11781 var _reservedProps = {}; 11782 var _lazyTweens = []; 11783 var _lazyLookup = {}; 11784 var _lastRenderedFrame; 11785 var _plugins = {}; 11786 var _effects = {}; 11787 var _nextGCFrame = 30; 11788 var _harnessPlugins = []; 11789 var _callbackNames = ""; 11790 var _harness = function _harness2(targets) { 11791 var target = targets[0], harnessPlugin, i; 11792 _isObject(target) || _isFunction(target) || (targets = [targets]); 11793 if (!(harnessPlugin = (target._gsap || {}).harness)) { 11794 i = _harnessPlugins.length; 11795 while (i-- && !_harnessPlugins[i].targetTest(target)) { 11796 } 11797 harnessPlugin = _harnessPlugins[i]; 11798 } 11799 i = targets.length; 11800 while (i--) { 11801 targets[i] && (targets[i]._gsap || (targets[i]._gsap = new GSCache(targets[i], harnessPlugin))) || targets.splice(i, 1); 11802 } 11803 return targets; 11804 }; 11805 var _getCache = function _getCache2(target) { 11806 return target._gsap || _harness(toArray(target))[0]._gsap; 11807 }; 11808 var _getProperty = function _getProperty2(target, property, v) { 11809 return (v = target[property]) && _isFunction(v) ? target[property]() : _isUndefined(v) && target.getAttribute && target.getAttribute(property) || v; 11810 }; 11811 var _forEachName = function _forEachName2(names, func) { 11812 return (names = names.split(",")).forEach(func) || names; 11813 }; 11814 var _round = function _round2(value) { 11815 return Math.round(value * 1e5) / 1e5 || 0; 11816 }; 11817 var _roundPrecise = function _roundPrecise2(value) { 11818 return Math.round(value * 1e7) / 1e7 || 0; 11819 }; 11820 var _parseRelative = function _parseRelative2(start2, value) { 11821 var operator = value.charAt(0), end2 = parseFloat(value.substr(2)); 11822 start2 = parseFloat(start2); 11823 return operator === "+" ? start2 + end2 : operator === "-" ? start2 - end2 : operator === "*" ? start2 * end2 : start2 / end2; 11824 }; 11825 var _arrayContainsAny = function _arrayContainsAny2(toSearch, toFind) { 11826 var l = toFind.length, i = 0; 11827 for (; toSearch.indexOf(toFind[i]) < 0 && ++i < l; ) { 11828 } 11829 return i < l; 11830 }; 11831 var _lazyRender = function _lazyRender2() { 11832 var l = _lazyTweens.length, a = _lazyTweens.slice(0), i, tween; 11833 _lazyLookup = {}; 11834 _lazyTweens.length = 0; 11835 for (i = 0; i < l; i++) { 11836 tween = a[i]; 11837 tween && tween._lazy && (tween.render(tween._lazy[0], tween._lazy[1], true)._lazy = 0); 11838 } 11839 }; 11840 var _lazySafeRender = function _lazySafeRender2(animation, time, suppressEvents, force) { 11841 _lazyTweens.length && _lazyRender(); 11842 animation.render(time, suppressEvents, force); 11843 _lazyTweens.length && _lazyRender(); 11844 }; 11845 var _numericIfPossible = function _numericIfPossible2(value) { 11846 var n = parseFloat(value); 11847 return (n || n === 0) && (value + "").match(_delimitedValueExp).length < 2 ? n : _isString(value) ? value.trim() : value; 11848 }; 11849 var _passThrough = function _passThrough2(p) { 11850 return p; 11851 }; 11852 var _setDefaults = function _setDefaults2(obj, defaults3) { 11853 for (var p in defaults3) { 11854 p in obj || (obj[p] = defaults3[p]); 11855 } 11856 return obj; 11857 }; 11858 var _setKeyframeDefaults = function _setKeyframeDefaults2(excludeDuration) { 11859 return function(obj, defaults3) { 11860 for (var p in defaults3) { 11861 p in obj || p === "duration" && excludeDuration || p === "ease" || (obj[p] = defaults3[p]); 11862 } 11863 }; 11864 }; 11865 var _merge = function _merge2(base, toMerge) { 11866 for (var p in toMerge) { 11867 base[p] = toMerge[p]; 11868 } 11869 return base; 11870 }; 11871 var _mergeDeep = function _mergeDeep2(base, toMerge) { 11872 for (var p in toMerge) { 11873 p !== "__proto__" && p !== "constructor" && p !== "prototype" && (base[p] = _isObject(toMerge[p]) ? _mergeDeep2(base[p] || (base[p] = {}), toMerge[p]) : toMerge[p]); 11874 } 11875 return base; 11876 }; 11877 var _copyExcluding = function _copyExcluding2(obj, excluding) { 11878 var copy = {}, p; 11879 for (p in obj) { 11880 p in excluding || (copy[p] = obj[p]); 11881 } 11882 return copy; 11883 }; 11884 var _inheritDefaults = function _inheritDefaults2(vars) { 11885 var parent = vars.parent || _globalTimeline, func = vars.keyframes ? _setKeyframeDefaults(_isArray(vars.keyframes)) : _setDefaults; 11886 if (_isNotFalse(vars.inherit)) { 11887 while (parent) { 11888 func(vars, parent.vars.defaults); 11889 parent = parent.parent || parent._dp; 11890 } 11891 } 11892 return vars; 11893 }; 11894 var _arraysMatch = function _arraysMatch2(a1, a2) { 11895 var i = a1.length, match = i === a2.length; 11896 while (match && i-- && a1[i] === a2[i]) { 11897 } 11898 return i < 0; 11899 }; 11900 var _addLinkedListItem = function _addLinkedListItem2(parent, child, firstProp, lastProp, sortBy) { 11901 if (firstProp === void 0) { 11902 firstProp = "_first"; 11903 } 11904 if (lastProp === void 0) { 11905 lastProp = "_last"; 11906 } 11907 var prev = parent[lastProp], t; 11908 if (sortBy) { 11909 t = child[sortBy]; 11910 while (prev && prev[sortBy] > t) { 11911 prev = prev._prev; 11912 } 11913 } 11914 if (prev) { 11915 child._next = prev._next; 11916 prev._next = child; 11917 } else { 11918 child._next = parent[firstProp]; 11919 parent[firstProp] = child; 11920 } 11921 if (child._next) { 11922 child._next._prev = child; 11923 } else { 11924 parent[lastProp] = child; 11925 } 11926 child._prev = prev; 11927 child.parent = child._dp = parent; 11928 return child; 11929 }; 11930 var _removeLinkedListItem = function _removeLinkedListItem2(parent, child, firstProp, lastProp) { 11931 if (firstProp === void 0) { 11932 firstProp = "_first"; 11933 } 11934 if (lastProp === void 0) { 11935 lastProp = "_last"; 11936 } 11937 var prev = child._prev, next = child._next; 11938 if (prev) { 11939 prev._next = next; 11940 } else if (parent[firstProp] === child) { 11941 parent[firstProp] = next; 11942 } 11943 if (next) { 11944 next._prev = prev; 11945 } else if (parent[lastProp] === child) { 11946 parent[lastProp] = prev; 11947 } 11948 child._next = child._prev = child.parent = null; 11949 }; 11950 var _removeFromParent = function _removeFromParent2(child, onlyIfParentHasAutoRemove) { 11951 child.parent && (!onlyIfParentHasAutoRemove || child.parent.autoRemoveChildren) && child.parent.remove(child); 11952 child._act = 0; 11953 }; 11954 var _uncache = function _uncache2(animation, child) { 11955 if (animation && (!child || child._end > animation._dur || child._start < 0)) { 11956 var a = animation; 11957 while (a) { 11958 a._dirty = 1; 11959 a = a.parent; 11960 } 11961 } 11962 return animation; 11963 }; 11964 var _recacheAncestors = function _recacheAncestors2(animation) { 11965 var parent = animation.parent; 11966 while (parent && parent.parent) { 11967 parent._dirty = 1; 11968 parent.totalDuration(); 11969 parent = parent.parent; 11970 } 11971 return animation; 11972 }; 11973 var _hasNoPausedAncestors = function _hasNoPausedAncestors2(animation) { 11974 return !animation || animation._ts && _hasNoPausedAncestors2(animation.parent); 11975 }; 11976 var _elapsedCycleDuration = function _elapsedCycleDuration2(animation) { 11977 return animation._repeat ? _animationCycle(animation._tTime, animation = animation.duration() + animation._rDelay) * animation : 0; 11978 }; 11979 var _animationCycle = function _animationCycle2(tTime, cycleDuration) { 11980 var whole = Math.floor(tTime /= cycleDuration); 11981 return tTime && whole === tTime ? whole - 1 : whole; 11982 }; 11983 var _parentToChildTotalTime = function _parentToChildTotalTime2(parentTime, child) { 11984 return (parentTime - child._start) * child._ts + (child._ts >= 0 ? 0 : child._dirty ? child.totalDuration() : child._tDur); 11985 }; 11986 var _setEnd = function _setEnd2(animation) { 11987 return animation._end = _roundPrecise(animation._start + (animation._tDur / Math.abs(animation._ts || animation._rts || _tinyNum) || 0)); 11988 }; 11989 var _alignPlayhead = function _alignPlayhead2(animation, totalTime) { 11990 var parent = animation._dp; 11991 if (parent && parent.smoothChildTiming && animation._ts) { 11992 animation._start = _roundPrecise(parent._time - (animation._ts > 0 ? totalTime / animation._ts : ((animation._dirty ? animation.totalDuration() : animation._tDur) - totalTime) / -animation._ts)); 11993 _setEnd(animation); 11994 parent._dirty || _uncache(parent, animation); 11995 } 11996 return animation; 11997 }; 11998 var _postAddChecks = function _postAddChecks2(timeline2, child) { 11999 var t; 12000 if (child._time || child._initted && !child._dur) { 12001 t = _parentToChildTotalTime(timeline2.rawTime(), child); 12002 if (!child._dur || _clamp(0, child.totalDuration(), t) - child._tTime > _tinyNum) { 12003 child.render(t, true); 12004 } 12005 } 12006 if (_uncache(timeline2, child)._dp && timeline2._initted && timeline2._time >= timeline2._dur && timeline2._ts) { 12007 if (timeline2._dur < timeline2.duration()) { 12008 t = timeline2; 12009 while (t._dp) { 12010 t.rawTime() >= 0 && t.totalTime(t._tTime); 12011 t = t._dp; 12012 } 12013 } 12014 timeline2._zTime = -_tinyNum; 12015 } 12016 }; 12017 var _addToTimeline = function _addToTimeline2(timeline2, child, position, skipChecks) { 12018 child.parent && _removeFromParent(child); 12019 child._start = _roundPrecise((_isNumber(position) ? position : position || timeline2 !== _globalTimeline ? _parsePosition(timeline2, position, child) : timeline2._time) + child._delay); 12020 child._end = _roundPrecise(child._start + (child.totalDuration() / Math.abs(child.timeScale()) || 0)); 12021 _addLinkedListItem(timeline2, child, "_first", "_last", timeline2._sort ? "_start" : 0); 12022 _isFromOrFromStart(child) || (timeline2._recent = child); 12023 skipChecks || _postAddChecks(timeline2, child); 12024 return timeline2; 12025 }; 12026 var _scrollTrigger = function _scrollTrigger2(animation, trigger) { 12027 return (_globals.ScrollTrigger || _missingPlugin("scrollTrigger", trigger)) && _globals.ScrollTrigger.create(trigger, animation); 12028 }; 12029 var _attemptInitTween = function _attemptInitTween2(tween, totalTime, force, suppressEvents) { 12030 _initTween(tween, totalTime); 12031 if (!tween._initted) { 12032 return 1; 12033 } 12034 if (!force && tween._pt && (tween._dur && tween.vars.lazy !== false || !tween._dur && tween.vars.lazy) && _lastRenderedFrame !== _ticker.frame) { 12035 _lazyTweens.push(tween); 12036 tween._lazy = [totalTime, suppressEvents]; 12037 return 1; 12038 } 12039 }; 12040 var _parentPlayheadIsBeforeStart = function _parentPlayheadIsBeforeStart2(_ref) { 12041 var parent = _ref.parent; 12042 return parent && parent._ts && parent._initted && !parent._lock && (parent.rawTime() < 0 || _parentPlayheadIsBeforeStart2(parent)); 12043 }; 12044 var _isFromOrFromStart = function _isFromOrFromStart2(_ref2) { 12045 var data = _ref2.data; 12046 return data === "isFromStart" || data === "isStart"; 12047 }; 12048 var _renderZeroDurationTween = function _renderZeroDurationTween2(tween, totalTime, suppressEvents, force) { 12049 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; 12050 if (repeatDelay && tween._repeat) { 12051 tTime = _clamp(0, tween._tDur, totalTime); 12052 iteration = _animationCycle(tTime, repeatDelay); 12053 tween._yoyo && iteration & 1 && (ratio = 1 - ratio); 12054 if (iteration !== _animationCycle(tween._tTime, repeatDelay)) { 12055 prevRatio = 1 - ratio; 12056 tween.vars.repeatRefresh && tween._initted && tween.invalidate(); 12057 } 12058 } 12059 if (ratio !== prevRatio || force || tween._zTime === _tinyNum || !totalTime && tween._zTime) { 12060 if (!tween._initted && _attemptInitTween(tween, totalTime, force, suppressEvents)) { 12061 return; 12062 } 12063 prevIteration = tween._zTime; 12064 tween._zTime = totalTime || (suppressEvents ? _tinyNum : 0); 12065 suppressEvents || (suppressEvents = totalTime && !prevIteration); 12066 tween.ratio = ratio; 12067 tween._from && (ratio = 1 - ratio); 12068 tween._time = 0; 12069 tween._tTime = tTime; 12070 pt = tween._pt; 12071 while (pt) { 12072 pt.r(ratio, pt.d); 12073 pt = pt._next; 12074 } 12075 tween._startAt && totalTime < 0 && tween._startAt.render(totalTime, true, true); 12076 tween._onUpdate && !suppressEvents && _callback(tween, "onUpdate"); 12077 tTime && tween._repeat && !suppressEvents && tween.parent && _callback(tween, "onRepeat"); 12078 if ((totalTime >= tween._tDur || totalTime < 0) && tween.ratio === ratio) { 12079 ratio && _removeFromParent(tween, 1); 12080 if (!suppressEvents) { 12081 _callback(tween, ratio ? "onComplete" : "onReverseComplete", true); 12082 tween._prom && tween._prom(); 12083 } 12084 } 12085 } else if (!tween._zTime) { 12086 tween._zTime = totalTime; 12087 } 12088 }; 12089 var _findNextPauseTween = function _findNextPauseTween2(animation, prevTime, time) { 12090 var child; 12091 if (time > prevTime) { 12092 child = animation._first; 12093 while (child && child._start <= time) { 12094 if (child.data === "isPause" && child._start > prevTime) { 12095 return child; 12096 } 12097 child = child._next; 12098 } 12099 } else { 12100 child = animation._last; 12101 while (child && child._start >= time) { 12102 if (child.data === "isPause" && child._start < prevTime) { 12103 return child; 12104 } 12105 child = child._prev; 12106 } 12107 } 12108 }; 12109 var _setDuration = function _setDuration2(animation, duration, skipUncache, leavePlayhead) { 12110 var repeat = animation._repeat, dur = _roundPrecise(duration) || 0, totalProgress = animation._tTime / animation._tDur; 12111 totalProgress && !leavePlayhead && (animation._time *= dur / animation._dur); 12112 animation._dur = dur; 12113 animation._tDur = !repeat ? dur : repeat < 0 ? 1e10 : _roundPrecise(dur * (repeat + 1) + animation._rDelay * repeat); 12114 totalProgress > 0 && !leavePlayhead ? _alignPlayhead(animation, animation._tTime = animation._tDur * totalProgress) : animation.parent && _setEnd(animation); 12115 skipUncache || _uncache(animation.parent, animation); 12116 return animation; 12117 }; 12118 var _onUpdateTotalDuration = function _onUpdateTotalDuration2(animation) { 12119 return animation instanceof Timeline ? _uncache(animation) : _setDuration(animation, animation._dur); 12120 }; 12121 var _zeroPosition = { 12122 _start: 0, 12123 endTime: _emptyFunc, 12124 totalDuration: _emptyFunc 12125 }; 12126 var _parsePosition = function _parsePosition2(animation, position, percentAnimation) { 12127 var labels = animation.labels, recent = animation._recent || _zeroPosition, clippedDuration = animation.duration() >= _bigNum ? recent.endTime(false) : animation._dur, i, offset2, isPercent; 12128 if (_isString(position) && (isNaN(position) || position in labels)) { 12129 offset2 = position.charAt(0); 12130 isPercent = position.substr(-1) === "%"; 12131 i = position.indexOf("="); 12132 if (offset2 === "<" || offset2 === ">") { 12133 i >= 0 && (position = position.replace(/=/, "")); 12134 return (offset2 === "<" ? recent._start : recent.endTime(recent._repeat >= 0)) + (parseFloat(position.substr(1)) || 0) * (isPercent ? (i < 0 ? recent : percentAnimation).totalDuration() / 100 : 1); 12135 } 12136 if (i < 0) { 12137 position in labels || (labels[position] = clippedDuration); 12138 return labels[position]; 12139 } 12140 offset2 = parseFloat(position.charAt(i - 1) + position.substr(i + 1)); 12141 if (isPercent && percentAnimation) { 12142 offset2 = offset2 / 100 * (_isArray(percentAnimation) ? percentAnimation[0] : percentAnimation).totalDuration(); 12143 } 12144 return i > 1 ? _parsePosition2(animation, position.substr(0, i - 1), percentAnimation) + offset2 : clippedDuration + offset2; 12145 } 12146 return position == null ? clippedDuration : +position; 12147 }; 12148 var _createTweenType = function _createTweenType2(type, params, timeline2) { 12149 var isLegacy = _isNumber(params[1]), varsIndex = (isLegacy ? 2 : 1) + (type < 2 ? 0 : 1), vars = params[varsIndex], irVars, parent; 12150 isLegacy && (vars.duration = params[1]); 12151 vars.parent = timeline2; 12152 if (type) { 12153 irVars = vars; 12154 parent = timeline2; 12155 while (parent && !("immediateRender" in irVars)) { 12156 irVars = parent.vars.defaults || {}; 12157 parent = _isNotFalse(parent.vars.inherit) && parent.parent; 12158 } 12159 vars.immediateRender = _isNotFalse(irVars.immediateRender); 12160 type < 2 ? vars.runBackwards = 1 : vars.startAt = params[varsIndex - 1]; 12161 } 12162 return new Tween(params[0], vars, params[varsIndex + 1]); 12163 }; 12164 var _conditionalReturn = function _conditionalReturn2(value, func) { 12165 return value || value === 0 ? func(value) : func; 12166 }; 12167 var _clamp = function _clamp2(min2, max2, value) { 12168 return value < min2 ? min2 : value > max2 ? max2 : value; 12169 }; 12170 var getUnit = function getUnit2(value, v) { 12171 return !_isString(value) || !(v = _unitExp.exec(value)) ? "" : v[1]; 12172 }; 12173 var clamp = function clamp2(min2, max2, value) { 12174 return _conditionalReturn(value, function(v) { 12175 return _clamp(min2, max2, v); 12176 }); 12177 }; 12178 var _slice = [].slice; 12179 var _isArrayLike = function _isArrayLike2(value, nonEmpty) { 12180 return value && _isObject(value) && "length" in value && (!nonEmpty && !value.length || value.length - 1 in value && _isObject(value[0])) && !value.nodeType && value !== _win; 12181 }; 12182 var _flatten = function _flatten2(ar, leaveStrings, accumulator) { 12183 if (accumulator === void 0) { 12184 accumulator = []; 12185 } 12186 return ar.forEach(function(value) { 12187 var _accumulator; 12188 return _isString(value) && !leaveStrings || _isArrayLike(value, 1) ? (_accumulator = accumulator).push.apply(_accumulator, toArray(value)) : accumulator.push(value); 12189 }) || accumulator; 12190 }; 12191 var toArray = function toArray2(value, scope, leaveStrings) { 12192 return _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] : []; 12193 }; 12194 var selector = function selector2(value) { 12195 value = toArray(value)[0] || _warn("Invalid scope") || {}; 12196 return function(v) { 12197 var el = value.current || value.nativeElement || value; 12198 return toArray(v, el.querySelectorAll ? el : el === value ? _warn("Invalid scope") || _doc.createElement("div") : value); 12199 }; 12200 }; 12201 var shuffle = function shuffle2(a) { 12202 return a.sort(function() { 12203 return 0.5 - Math.random(); 12204 }); 12205 }; 12206 var distribute = function distribute2(v) { 12207 if (_isFunction(v)) { 12208 return v; 12209 } 12210 var vars = _isObject(v) ? v : { 12211 each: v 12212 }, 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; 12213 if (_isString(from)) { 12214 ratioX = ratioY = { 12215 center: 0.5, 12216 edges: 0.5, 12217 end: 1 12218 }[from] || 0; 12219 } else if (!isDecimal && ratios) { 12220 ratioX = from[0]; 12221 ratioY = from[1]; 12222 } 12223 return function(i, target, a) { 12224 var l = (a || vars).length, distances = cache[l], originX, originY, x, y, d, j, max2, min2, wrapAt; 12225 if (!distances) { 12226 wrapAt = vars.grid === "auto" ? 0 : (vars.grid || [1, _bigNum])[1]; 12227 if (!wrapAt) { 12228 max2 = -_bigNum; 12229 while (max2 < (max2 = a[wrapAt++].getBoundingClientRect().left) && wrapAt < l) { 12230 } 12231 wrapAt--; 12232 } 12233 distances = cache[l] = []; 12234 originX = ratios ? Math.min(wrapAt, l) * ratioX - 0.5 : from % wrapAt; 12235 originY = wrapAt === _bigNum ? 0 : ratios ? l * ratioY / wrapAt - 0.5 : from / wrapAt | 0; 12236 max2 = 0; 12237 min2 = _bigNum; 12238 for (j = 0; j < l; j++) { 12239 x = j % wrapAt - originX; 12240 y = originY - (j / wrapAt | 0); 12241 distances[j] = d = !axis ? _sqrt(x * x + y * y) : Math.abs(axis === "y" ? y : x); 12242 d > max2 && (max2 = d); 12243 d < min2 && (min2 = d); 12244 } 12245 from === "random" && shuffle(distances); 12246 distances.max = max2 - min2; 12247 distances.min = min2; 12248 distances.v = l = (parseFloat(vars.amount) || parseFloat(vars.each) * (wrapAt > l ? l - 1 : !axis ? Math.max(wrapAt, l / wrapAt) : axis === "y" ? l / wrapAt : wrapAt) || 0) * (from === "edges" ? -1 : 1); 12249 distances.b = l < 0 ? base - l : base; 12250 distances.u = getUnit(vars.amount || vars.each) || 0; 12251 ease = ease && l < 0 ? _invertEase(ease) : ease; 12252 } 12253 l = (distances[i] - distances.min) / distances.max || 0; 12254 return _roundPrecise(distances.b + (ease ? ease(l) : l) * distances.v) + distances.u; 12255 }; 12256 }; 12257 var _roundModifier = function _roundModifier2(v) { 12258 var p = Math.pow(10, ((v + "").split(".")[1] || "").length); 12259 return function(raw) { 12260 var n = Math.round(parseFloat(raw) / v) * v * p; 12261 return (n - n % 1) / p + (_isNumber(raw) ? 0 : getUnit(raw)); 12262 }; 12263 }; 12264 var snap = function snap2(snapTo, value) { 12265 var isArray2 = _isArray(snapTo), radius, is2D; 12266 if (!isArray2 && _isObject(snapTo)) { 12267 radius = isArray2 = snapTo.radius || _bigNum; 12268 if (snapTo.values) { 12269 snapTo = toArray(snapTo.values); 12270 if (is2D = !_isNumber(snapTo[0])) { 12271 radius *= radius; 12272 } 12273 } else { 12274 snapTo = _roundModifier(snapTo.increment); 12275 } 12276 } 12277 return _conditionalReturn(value, !isArray2 ? _roundModifier(snapTo) : _isFunction(snapTo) ? function(raw) { 12278 is2D = snapTo(raw); 12279 return Math.abs(is2D - raw) <= radius ? is2D : raw; 12280 } : function(raw) { 12281 var x = parseFloat(is2D ? raw.x : raw), y = parseFloat(is2D ? raw.y : 0), min2 = _bigNum, closest = 0, i = snapTo.length, dx, dy; 12282 while (i--) { 12283 if (is2D) { 12284 dx = snapTo[i].x - x; 12285 dy = snapTo[i].y - y; 12286 dx = dx * dx + dy * dy; 12287 } else { 12288 dx = Math.abs(snapTo[i] - x); 12289 } 12290 if (dx < min2) { 12291 min2 = dx; 12292 closest = i; 12293 } 12294 } 12295 closest = !radius || min2 <= radius ? snapTo[closest] : raw; 12296 return is2D || closest === raw || _isNumber(raw) ? closest : closest + getUnit(raw); 12297 }); 12298 }; 12299 var random = function random2(min2, max2, roundingIncrement, returnFunction) { 12300 return _conditionalReturn(_isArray(min2) ? !max2 : roundingIncrement === true ? !!(roundingIncrement = 0) : !returnFunction, function() { 12301 return _isArray(min2) ? min2[~~(Math.random() * min2.length)] : (roundingIncrement = roundingIncrement || 1e-5) && (returnFunction = roundingIncrement < 1 ? Math.pow(10, (roundingIncrement + "").length - 2) : 1) && Math.floor(Math.round((min2 - roundingIncrement / 2 + Math.random() * (max2 - min2 + roundingIncrement * 0.99)) / roundingIncrement) * roundingIncrement * returnFunction) / returnFunction; 12302 }); 12303 }; 12304 var pipe = function pipe2() { 12305 for (var _len = arguments.length, functions = new Array(_len), _key = 0; _key < _len; _key++) { 12306 functions[_key] = arguments[_key]; 12307 } 12308 return function(value) { 12309 return functions.reduce(function(v, f) { 12310 return f(v); 12311 }, value); 12312 }; 12313 }; 12314 var unitize = function unitize2(func, unit) { 12315 return function(value) { 12316 return func(parseFloat(value)) + (unit || getUnit(value)); 12317 }; 12318 }; 12319 var normalize = function normalize2(min2, max2, value) { 12320 return mapRange(min2, max2, 0, 1, value); 12321 }; 12322 var _wrapArray = function _wrapArray2(a, wrapper, value) { 12323 return _conditionalReturn(value, function(index) { 12324 return a[~~wrapper(index)]; 12325 }); 12326 }; 12327 var wrap = function wrap2(min2, max2, value) { 12328 var range = max2 - min2; 12329 return _isArray(min2) ? _wrapArray(min2, wrap2(0, min2.length), max2) : _conditionalReturn(value, function(value2) { 12330 return (range + (value2 - min2) % range) % range + min2; 12331 }); 12332 }; 12333 var wrapYoyo = function wrapYoyo2(min2, max2, value) { 12334 var range = max2 - min2, total = range * 2; 12335 return _isArray(min2) ? _wrapArray(min2, wrapYoyo2(0, min2.length - 1), max2) : _conditionalReturn(value, function(value2) { 12336 value2 = (total + (value2 - min2) % total) % total || 0; 12337 return min2 + (value2 > range ? total - value2 : value2); 12338 }); 12339 }; 12340 var _replaceRandom = function _replaceRandom2(value) { 12341 var prev = 0, s = "", i, nums, end2, isArray2; 12342 while (~(i = value.indexOf("random(", prev))) { 12343 end2 = value.indexOf(")", i); 12344 isArray2 = value.charAt(i + 7) === "["; 12345 nums = value.substr(i + 7, end2 - i - 7).match(isArray2 ? _delimitedValueExp : _strictNumExp); 12346 s += value.substr(prev, i - prev) + random(isArray2 ? nums : +nums[0], isArray2 ? 0 : +nums[1], +nums[2] || 1e-5); 12347 prev = end2 + 1; 12348 } 12349 return s + value.substr(prev, value.length - prev); 12350 }; 12351 var mapRange = function mapRange2(inMin, inMax, outMin, outMax, value) { 12352 var inRange = inMax - inMin, outRange = outMax - outMin; 12353 return _conditionalReturn(value, function(value2) { 12354 return outMin + ((value2 - inMin) / inRange * outRange || 0); 12355 }); 12356 }; 12357 var interpolate = function interpolate2(start2, end2, progress, mutate) { 12358 var func = isNaN(start2 + end2) ? 0 : function(p2) { 12359 return (1 - p2) * start2 + p2 * end2; 12360 }; 12361 if (!func) { 12362 var isString2 = _isString(start2), master = {}, p, i, interpolators, l, il; 12363 progress === true && (mutate = 1) && (progress = null); 12364 if (isString2) { 12365 start2 = { 12366 p: start2 12367 }; 12368 end2 = { 12369 p: end2 12370 }; 12371 } else if (_isArray(start2) && !_isArray(end2)) { 12372 interpolators = []; 12373 l = start2.length; 12374 il = l - 2; 12375 for (i = 1; i < l; i++) { 12376 interpolators.push(interpolate2(start2[i - 1], start2[i])); 12377 } 12378 l--; 12379 func = function func2(p2) { 12380 p2 *= l; 12381 var i2 = Math.min(il, ~~p2); 12382 return interpolators[i2](p2 - i2); 12383 }; 12384 progress = end2; 12385 } else if (!mutate) { 12386 start2 = _merge(_isArray(start2) ? [] : {}, start2); 12387 } 12388 if (!interpolators) { 12389 for (p in end2) { 12390 _addPropTween.call(master, start2, p, "get", end2[p]); 12391 } 12392 func = function func2(p2) { 12393 return _renderPropTweens(p2, master) || (isString2 ? start2.p : start2); 12394 }; 12395 } 12396 } 12397 return _conditionalReturn(progress, func); 12398 }; 12399 var _getLabelInDirection = function _getLabelInDirection2(timeline2, fromTime, backward) { 12400 var labels = timeline2.labels, min2 = _bigNum, p, distance, label; 12401 for (p in labels) { 12402 distance = labels[p] - fromTime; 12403 if (distance < 0 === !!backward && distance && min2 > (distance = Math.abs(distance))) { 12404 label = p; 12405 min2 = distance; 12406 } 12407 } 12408 return label; 12409 }; 12410 var _callback = function _callback2(animation, type, executeLazyFirst) { 12411 var v = animation.vars, callback = v[type], params, scope; 12412 if (!callback) { 12413 return; 12414 } 12415 params = v[type + "Params"]; 12416 scope = v.callbackScope || animation; 12417 executeLazyFirst && _lazyTweens.length && _lazyRender(); 12418 return params ? callback.apply(scope, params) : callback.call(scope); 12419 }; 12420 var _interrupt = function _interrupt2(animation) { 12421 _removeFromParent(animation); 12422 animation.scrollTrigger && animation.scrollTrigger.kill(false); 12423 animation.progress() < 1 && _callback(animation, "onInterrupt"); 12424 return animation; 12425 }; 12426 var _quickTween; 12427 var _createPlugin = function _createPlugin2(config3) { 12428 config3 = !config3.name && config3["default"] || config3; 12429 var name = config3.name, isFunc = _isFunction(config3), Plugin = name && !isFunc && config3.init ? function() { 12430 this._props = []; 12431 } : config3, instanceDefaults = { 12432 init: _emptyFunc, 12433 render: _renderPropTweens, 12434 add: _addPropTween, 12435 kill: _killPropTweensOf, 12436 modifier: _addPluginModifier, 12437 rawVars: 0 12438 }, statics = { 12439 targetTest: 0, 12440 get: 0, 12441 getSetter: _getSetter, 12442 aliases: {}, 12443 register: 0 12444 }; 12445 _wake(); 12446 if (config3 !== Plugin) { 12447 if (_plugins[name]) { 12448 return; 12449 } 12450 _setDefaults(Plugin, _setDefaults(_copyExcluding(config3, instanceDefaults), statics)); 12451 _merge(Plugin.prototype, _merge(instanceDefaults, _copyExcluding(config3, statics))); 12452 _plugins[Plugin.prop = name] = Plugin; 12453 if (config3.targetTest) { 12454 _harnessPlugins.push(Plugin); 12455 _reservedProps[name] = 1; 12456 } 12457 name = (name === "css" ? "CSS" : name.charAt(0).toUpperCase() + name.substr(1)) + "Plugin"; 12458 } 12459 _addGlobal(name, Plugin); 12460 config3.register && config3.register(gsap, Plugin, PropTween); 12461 }; 12462 var _255 = 255; 12463 var _colorLookup = { 12464 aqua: [0, _255, _255], 12465 lime: [0, _255, 0], 12466 silver: [192, 192, 192], 12467 black: [0, 0, 0], 12468 maroon: [128, 0, 0], 12469 teal: [0, 128, 128], 12470 blue: [0, 0, _255], 12471 navy: [0, 0, 128], 12472 white: [_255, _255, _255], 12473 olive: [128, 128, 0], 12474 yellow: [_255, _255, 0], 12475 orange: [_255, 165, 0], 12476 gray: [128, 128, 128], 12477 purple: [128, 0, 128], 12478 green: [0, 128, 0], 12479 red: [_255, 0, 0], 12480 pink: [_255, 192, 203], 12481 cyan: [0, _255, _255], 12482 transparent: [_255, _255, _255, 0] 12483 }; 12484 var _hue = function _hue2(h, m1, m2) { 12485 h += h < 0 ? 1 : h > 1 ? -1 : 0; 12486 return (h * 6 < 1 ? m1 + (m2 - m1) * h * 6 : h < 0.5 ? m2 : h * 3 < 2 ? m1 + (m2 - m1) * (2 / 3 - h) * 6 : m1) * _255 + 0.5 | 0; 12487 }; 12488 var splitColor = function splitColor2(v, toHSL, forceAlpha) { 12489 var a = !v ? _colorLookup.black : _isNumber(v) ? [v >> 16, v >> 8 & _255, v & _255] : 0, r, g, b, h, s, l, max2, min2, d, wasHSL; 12490 if (!a) { 12491 if (v.substr(-1) === ",") { 12492 v = v.substr(0, v.length - 1); 12493 } 12494 if (_colorLookup[v]) { 12495 a = _colorLookup[v]; 12496 } else if (v.charAt(0) === "#") { 12497 if (v.length < 6) { 12498 r = v.charAt(1); 12499 g = v.charAt(2); 12500 b = v.charAt(3); 12501 v = "#" + r + r + g + g + b + b + (v.length === 5 ? v.charAt(4) + v.charAt(4) : ""); 12502 } 12503 if (v.length === 9) { 12504 a = parseInt(v.substr(1, 6), 16); 12505 return [a >> 16, a >> 8 & _255, a & _255, parseInt(v.substr(7), 16) / 255]; 12506 } 12507 v = parseInt(v.substr(1), 16); 12508 a = [v >> 16, v >> 8 & _255, v & _255]; 12509 } else if (v.substr(0, 3) === "hsl") { 12510 a = wasHSL = v.match(_strictNumExp); 12511 if (!toHSL) { 12512 h = +a[0] % 360 / 360; 12513 s = +a[1] / 100; 12514 l = +a[2] / 100; 12515 g = l <= 0.5 ? l * (s + 1) : l + s - l * s; 12516 r = l * 2 - g; 12517 a.length > 3 && (a[3] *= 1); 12518 a[0] = _hue(h + 1 / 3, r, g); 12519 a[1] = _hue(h, r, g); 12520 a[2] = _hue(h - 1 / 3, r, g); 12521 } else if (~v.indexOf("=")) { 12522 a = v.match(_numExp); 12523 forceAlpha && a.length < 4 && (a[3] = 1); 12524 return a; 12525 } 12526 } else { 12527 a = v.match(_strictNumExp) || _colorLookup.transparent; 12528 } 12529 a = a.map(Number); 12530 } 12531 if (toHSL && !wasHSL) { 12532 r = a[0] / _255; 12533 g = a[1] / _255; 12534 b = a[2] / _255; 12535 max2 = Math.max(r, g, b); 12536 min2 = Math.min(r, g, b); 12537 l = (max2 + min2) / 2; 12538 if (max2 === min2) { 12539 h = s = 0; 12540 } else { 12541 d = max2 - min2; 12542 s = l > 0.5 ? d / (2 - max2 - min2) : d / (max2 + min2); 12543 h = max2 === r ? (g - b) / d + (g < b ? 6 : 0) : max2 === g ? (b - r) / d + 2 : (r - g) / d + 4; 12544 h *= 60; 12545 } 12546 a[0] = ~~(h + 0.5); 12547 a[1] = ~~(s * 100 + 0.5); 12548 a[2] = ~~(l * 100 + 0.5); 12549 } 12550 forceAlpha && a.length < 4 && (a[3] = 1); 12551 return a; 12552 }; 12553 var _colorOrderData = function _colorOrderData2(v) { 12554 var values = [], c = [], i = -1; 12555 v.split(_colorExp).forEach(function(v2) { 12556 var a = v2.match(_numWithUnitExp) || []; 12557 values.push.apply(values, a); 12558 c.push(i += a.length + 1); 12559 }); 12560 values.c = c; 12561 return values; 12562 }; 12563 var _formatColors = function _formatColors2(s, toHSL, orderMatchData) { 12564 var result = "", colors = (s + result).match(_colorExp), type = toHSL ? "hsla(" : "rgba(", i = 0, c, shell, d, l; 12565 if (!colors) { 12566 return s; 12567 } 12568 colors = colors.map(function(color) { 12569 return (color = splitColor(color, toHSL, 1)) && type + (toHSL ? color[0] + "," + color[1] + "%," + color[2] + "%," + color[3] : color.join(",")) + ")"; 12570 }); 12571 if (orderMatchData) { 12572 d = _colorOrderData(s); 12573 c = orderMatchData.c; 12574 if (c.join(result) !== d.c.join(result)) { 12575 shell = s.replace(_colorExp, "1").split(_numWithUnitExp); 12576 l = shell.length - 1; 12577 for (; i < l; i++) { 12578 result += shell[i] + (~c.indexOf(i) ? colors.shift() || type + "0,0,0,0)" : (d.length ? d : colors.length ? colors : orderMatchData).shift()); 12579 } 12580 } 12581 } 12582 if (!shell) { 12583 shell = s.split(_colorExp); 12584 l = shell.length - 1; 12585 for (; i < l; i++) { 12586 result += shell[i] + colors[i]; 12587 } 12588 } 12589 return result + shell[l]; 12590 }; 12591 var _colorExp = function() { 12592 var s = "(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#(?:[0-9a-f]{3,4}){1,2}\\b", p; 12593 for (p in _colorLookup) { 12594 s += "|" + p + "\\b"; 12595 } 12596 return new RegExp(s + ")", "gi"); 12597 }(); 12598 var _hslExp = /hsl[a]?\(/; 12599 var _colorStringFilter = function _colorStringFilter2(a) { 12600 var combined = a.join(" "), toHSL; 12601 _colorExp.lastIndex = 0; 12602 if (_colorExp.test(combined)) { 12603 toHSL = _hslExp.test(combined); 12604 a[1] = _formatColors(a[1], toHSL); 12605 a[0] = _formatColors(a[0], toHSL, _colorOrderData(a[1])); 12606 return true; 12607 } 12608 }; 12609 var _tickerActive; 12610 var _ticker = function() { 12611 var _getTime3 = Date.now, _lagThreshold = 500, _adjustedLag = 33, _startTime = _getTime3(), _lastUpdate = _startTime, _gap = 1e3 / 240, _nextTime = _gap, _listeners2 = [], _id, _req, _raf, _self, _delta, _i2, _tick = function _tick2(v) { 12612 var elapsed = _getTime3() - _lastUpdate, manual = v === true, overlap, dispatch, time, frame; 12613 elapsed > _lagThreshold && (_startTime += elapsed - _adjustedLag); 12614 _lastUpdate += elapsed; 12615 time = _lastUpdate - _startTime; 12616 overlap = time - _nextTime; 12617 if (overlap > 0 || manual) { 12618 frame = ++_self.frame; 12619 _delta = time - _self.time * 1e3; 12620 _self.time = time = time / 1e3; 12621 _nextTime += overlap + (overlap >= _gap ? 4 : _gap - overlap); 12622 dispatch = 1; 12623 } 12624 manual || (_id = _req(_tick2)); 12625 if (dispatch) { 12626 for (_i2 = 0; _i2 < _listeners2.length; _i2++) { 12627 _listeners2[_i2](time, _delta, frame, v); 12628 } 12629 } 12630 }; 12631 _self = { 12632 time: 0, 12633 frame: 0, 12634 tick: function tick() { 12635 _tick(true); 12636 }, 12637 deltaRatio: function deltaRatio(fps) { 12638 return _delta / (1e3 / (fps || 60)); 12639 }, 12640 wake: function wake() { 12641 if (_coreReady) { 12642 if (!_coreInitted && _windowExists()) { 12643 _win = _coreInitted = window; 12644 _doc = _win.document || {}; 12645 _globals.gsap = gsap; 12646 (_win.gsapVersions || (_win.gsapVersions = [])).push(gsap.version); 12647 _install(_installScope || _win.GreenSockGlobals || !_win.gsap && _win || {}); 12648 _raf = _win.requestAnimationFrame; 12649 } 12650 _id && _self.sleep(); 12651 _req = _raf || function(f) { 12652 return setTimeout(f, _nextTime - _self.time * 1e3 + 1 | 0); 12653 }; 12654 _tickerActive = 1; 12655 _tick(2); 12656 } 12657 }, 12658 sleep: function sleep() { 12659 (_raf ? _win.cancelAnimationFrame : clearTimeout)(_id); 12660 _tickerActive = 0; 12661 _req = _emptyFunc; 12662 }, 12663 lagSmoothing: function lagSmoothing(threshold, adjustedLag) { 12664 _lagThreshold = threshold || 1 / _tinyNum; 12665 _adjustedLag = Math.min(adjustedLag, _lagThreshold, 0); 12666 }, 12667 fps: function fps(_fps) { 12668 _gap = 1e3 / (_fps || 240); 12669 _nextTime = _self.time * 1e3 + _gap; 12670 }, 12671 add: function add(callback, once, prioritize) { 12672 var func = once ? function(t, d, f, v) { 12673 callback(t, d, f, v); 12674 _self.remove(func); 12675 } : callback; 12676 _self.remove(callback); 12677 _listeners2[prioritize ? "unshift" : "push"](func); 12678 _wake(); 12679 return func; 12680 }, 12681 remove: function remove(callback, i) { 12682 ~(i = _listeners2.indexOf(callback)) && _listeners2.splice(i, 1) && _i2 >= i && _i2--; 12683 }, 12684 _listeners: _listeners2 12685 }; 12686 return _self; 12687 }(); 12688 var _wake = function _wake2() { 12689 return !_tickerActive && _ticker.wake(); 12690 }; 12691 var _easeMap = {}; 12692 var _customEaseExp = /^[\d.\-M][\d.\-,\s]/; 12693 var _quotesExp = /["']/g; 12694 var _parseObjectInString = function _parseObjectInString2(value) { 12695 var obj = {}, split2 = value.substr(1, value.length - 3).split(":"), key = split2[0], i = 1, l = split2.length, index, val, parsedVal; 12696 for (; i < l; i++) { 12697 val = split2[i]; 12698 index = i !== l - 1 ? val.lastIndexOf(",") : val.length; 12699 parsedVal = val.substr(0, index); 12700 obj[key] = isNaN(parsedVal) ? parsedVal.replace(_quotesExp, "").trim() : +parsedVal; 12701 key = val.substr(index + 1).trim(); 12702 } 12703 return obj; 12704 }; 12705 var _valueInParentheses = function _valueInParentheses2(value) { 12706 var open = value.indexOf("(") + 1, close = value.indexOf(")"), nested = value.indexOf("(", open); 12707 return value.substring(open, ~nested && nested < close ? value.indexOf(")", close + 1) : close); 12708 }; 12709 var _configEaseFromString = function _configEaseFromString2(name) { 12710 var split2 = (name + "").split("("), ease = _easeMap[split2[0]]; 12711 return ease && split2.length > 1 && ease.config ? ease.config.apply(null, ~name.indexOf("{") ? [_parseObjectInString(split2[1])] : _valueInParentheses(name).split(",").map(_numericIfPossible)) : _easeMap._CE && _customEaseExp.test(name) ? _easeMap._CE("", name) : ease; 12712 }; 12713 var _invertEase = function _invertEase2(ease) { 12714 return function(p) { 12715 return 1 - ease(1 - p); 12716 }; 12717 }; 12718 var _propagateYoyoEase = function _propagateYoyoEase2(timeline2, isYoyo) { 12719 var child = timeline2._first, ease; 12720 while (child) { 12721 if (child instanceof Timeline) { 12722 _propagateYoyoEase2(child, isYoyo); 12723 } else if (child.vars.yoyoEase && (!child._yoyo || !child._repeat) && child._yoyo !== isYoyo) { 12724 if (child.timeline) { 12725 _propagateYoyoEase2(child.timeline, isYoyo); 12726 } else { 12727 ease = child._ease; 12728 child._ease = child._yEase; 12729 child._yEase = ease; 12730 child._yoyo = isYoyo; 12731 } 12732 } 12733 child = child._next; 12734 } 12735 }; 12736 var _parseEase = function _parseEase2(ease, defaultEase) { 12737 return !ease ? defaultEase : (_isFunction(ease) ? ease : _easeMap[ease] || _configEaseFromString(ease)) || defaultEase; 12738 }; 12739 var _insertEase = function _insertEase2(names, easeIn, easeOut, easeInOut) { 12740 if (easeOut === void 0) { 12741 easeOut = function easeOut2(p) { 12742 return 1 - easeIn(1 - p); 12743 }; 12744 } 12745 if (easeInOut === void 0) { 12746 easeInOut = function easeInOut2(p) { 12747 return p < 0.5 ? easeIn(p * 2) / 2 : 1 - easeIn((1 - p) * 2) / 2; 12748 }; 12749 } 12750 var ease = { 12751 easeIn, 12752 easeOut, 12753 easeInOut 12754 }, lowercaseName; 12755 _forEachName(names, function(name) { 12756 _easeMap[name] = _globals[name] = ease; 12757 _easeMap[lowercaseName = name.toLowerCase()] = easeOut; 12758 for (var p in ease) { 12759 _easeMap[lowercaseName + (p === "easeIn" ? ".in" : p === "easeOut" ? ".out" : ".inOut")] = _easeMap[name + "." + p] = ease[p]; 12760 } 12761 }); 12762 return ease; 12763 }; 12764 var _easeInOutFromOut = function _easeInOutFromOut2(easeOut) { 12765 return function(p) { 12766 return p < 0.5 ? (1 - easeOut(1 - p * 2)) / 2 : 0.5 + easeOut((p - 0.5) * 2) / 2; 12767 }; 12768 }; 12769 var _configElastic = function _configElastic2(type, amplitude, period) { 12770 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(p) { 12771 return p === 1 ? 1 : p1 * Math.pow(2, -10 * p) * _sin((p - p3) * p2) + 1; 12772 }, ease = type === "out" ? easeOut : type === "in" ? function(p) { 12773 return 1 - easeOut(1 - p); 12774 } : _easeInOutFromOut(easeOut); 12775 p2 = _2PI / p2; 12776 ease.config = function(amplitude2, period2) { 12777 return _configElastic2(type, amplitude2, period2); 12778 }; 12779 return ease; 12780 }; 12781 var _configBack = function _configBack2(type, overshoot) { 12782 if (overshoot === void 0) { 12783 overshoot = 1.70158; 12784 } 12785 var easeOut = function easeOut2(p) { 12786 return p ? --p * p * ((overshoot + 1) * p + overshoot) + 1 : 0; 12787 }, ease = type === "out" ? easeOut : type === "in" ? function(p) { 12788 return 1 - easeOut(1 - p); 12789 } : _easeInOutFromOut(easeOut); 12790 ease.config = function(overshoot2) { 12791 return _configBack2(type, overshoot2); 12792 }; 12793 return ease; 12794 }; 12795 _forEachName("Linear,Quad,Cubic,Quart,Quint,Strong", function(name, i) { 12796 var power = i < 5 ? i + 1 : i; 12797 _insertEase(name + ",Power" + (power - 1), i ? function(p) { 12798 return Math.pow(p, power); 12799 } : function(p) { 12800 return p; 12801 }, function(p) { 12802 return 1 - Math.pow(1 - p, power); 12803 }, function(p) { 12804 return p < 0.5 ? Math.pow(p * 2, power) / 2 : 1 - Math.pow((1 - p) * 2, power) / 2; 12805 }); 12806 }); 12807 _easeMap.Linear.easeNone = _easeMap.none = _easeMap.Linear.easeIn; 12808 _insertEase("Elastic", _configElastic("in"), _configElastic("out"), _configElastic()); 12809 (function(n, c) { 12810 var n1 = 1 / c, n2 = 2 * n1, n3 = 2.5 * n1, easeOut = function easeOut2(p) { 12811 return p < n1 ? n * p * p : p < n2 ? n * Math.pow(p - 1.5 / c, 2) + 0.75 : p < n3 ? n * (p -= 2.25 / c) * p + 0.9375 : n * Math.pow(p - 2.625 / c, 2) + 0.984375; 12812 }; 12813 _insertEase("Bounce", function(p) { 12814 return 1 - easeOut(1 - p); 12815 }, easeOut); 12816 })(7.5625, 2.75); 12817 _insertEase("Expo", function(p) { 12818 return p ? Math.pow(2, 10 * (p - 1)) : 0; 12819 }); 12820 _insertEase("Circ", function(p) { 12821 return -(_sqrt(1 - p * p) - 1); 12822 }); 12823 _insertEase("Sine", function(p) { 12824 return p === 1 ? 1 : -_cos(p * _HALF_PI) + 1; 12825 }); 12826 _insertEase("Back", _configBack("in"), _configBack("out"), _configBack()); 12827 _easeMap.SteppedEase = _easeMap.steps = _globals.SteppedEase = { 12828 config: function config(steps, immediateStart) { 12829 if (steps === void 0) { 12830 steps = 1; 12831 } 12832 var p1 = 1 / steps, p2 = steps + (immediateStart ? 0 : 1), p3 = immediateStart ? 1 : 0, max2 = 1 - _tinyNum; 12833 return function(p) { 12834 return ((p2 * _clamp(0, max2, p) | 0) + p3) * p1; 12835 }; 12836 } 12837 }; 12838 _defaults.ease = _easeMap["quad.out"]; 12839 _forEachName("onComplete,onUpdate,onStart,onRepeat,onReverseComplete,onInterrupt", function(name) { 12840 return _callbackNames += name + "," + name + "Params,"; 12841 }); 12842 var GSCache = function GSCache2(target, harness) { 12843 this.id = _gsID++; 12844 target._gsap = this; 12845 this.target = target; 12846 this.harness = harness; 12847 this.get = harness ? harness.get : _getProperty; 12848 this.set = harness ? harness.getSetter : _getSetter; 12849 }; 12850 var Animation = /* @__PURE__ */ function() { 12851 function Animation2(vars) { 12852 this.vars = vars; 12853 this._delay = +vars.delay || 0; 12854 if (this._repeat = vars.repeat === Infinity ? -2 : vars.repeat || 0) { 12855 this._rDelay = vars.repeatDelay || 0; 12856 this._yoyo = !!vars.yoyo || !!vars.yoyoEase; 12857 } 12858 this._ts = 1; 12859 _setDuration(this, +vars.duration, 1, 1); 12860 this.data = vars.data; 12861 _tickerActive || _ticker.wake(); 12862 } 12863 var _proto = Animation2.prototype; 12864 _proto.delay = function delay(value) { 12865 if (value || value === 0) { 12866 this.parent && this.parent.smoothChildTiming && this.startTime(this._start + value - this._delay); 12867 this._delay = value; 12868 return this; 12869 } 12870 return this._delay; 12871 }; 12872 _proto.duration = function duration(value) { 12873 return arguments.length ? this.totalDuration(this._repeat > 0 ? value + (value + this._rDelay) * this._repeat : value) : this.totalDuration() && this._dur; 12874 }; 12875 _proto.totalDuration = function totalDuration(value) { 12876 if (!arguments.length) { 12877 return this._tDur; 12878 } 12879 this._dirty = 0; 12880 return _setDuration(this, this._repeat < 0 ? value : (value - this._repeat * this._rDelay) / (this._repeat + 1)); 12881 }; 12882 _proto.totalTime = function totalTime(_totalTime, suppressEvents) { 12883 _wake(); 12884 if (!arguments.length) { 12885 return this._tTime; 12886 } 12887 var parent = this._dp; 12888 if (parent && parent.smoothChildTiming && this._ts) { 12889 _alignPlayhead(this, _totalTime); 12890 !parent._dp || parent.parent || _postAddChecks(parent, this); 12891 while (parent && parent.parent) { 12892 if (parent.parent._time !== parent._start + (parent._ts >= 0 ? parent._tTime / parent._ts : (parent.totalDuration() - parent._tTime) / -parent._ts)) { 12893 parent.totalTime(parent._tTime, true); 12894 } 12895 parent = parent.parent; 12896 } 12897 if (!this.parent && this._dp.autoRemoveChildren && (this._ts > 0 && _totalTime < this._tDur || this._ts < 0 && _totalTime > 0 || !this._tDur && !_totalTime)) { 12898 _addToTimeline(this._dp, this, this._start - this._delay); 12899 } 12900 } 12901 if (this._tTime !== _totalTime || !this._dur && !suppressEvents || this._initted && Math.abs(this._zTime) === _tinyNum || !_totalTime && !this._initted && (this.add || this._ptLookup)) { 12902 this._ts || (this._pTime = _totalTime); 12903 _lazySafeRender(this, _totalTime, suppressEvents); 12904 } 12905 return this; 12906 }; 12907 _proto.time = function time(value, suppressEvents) { 12908 return arguments.length ? this.totalTime(Math.min(this.totalDuration(), value + _elapsedCycleDuration(this)) % (this._dur + this._rDelay) || (value ? this._dur : 0), suppressEvents) : this._time; 12909 }; 12910 _proto.totalProgress = function totalProgress(value, suppressEvents) { 12911 return arguments.length ? this.totalTime(this.totalDuration() * value, suppressEvents) : this.totalDuration() ? Math.min(1, this._tTime / this._tDur) : this.ratio; 12912 }; 12913 _proto.progress = function progress(value, suppressEvents) { 12914 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.ratio; 12915 }; 12916 _proto.iteration = function iteration(value, suppressEvents) { 12917 var cycleDuration = this.duration() + this._rDelay; 12918 return arguments.length ? this.totalTime(this._time + (value - 1) * cycleDuration, suppressEvents) : this._repeat ? _animationCycle(this._tTime, cycleDuration) + 1 : 1; 12919 }; 12920 _proto.timeScale = function timeScale(value) { 12921 if (!arguments.length) { 12922 return this._rts === -_tinyNum ? 0 : this._rts; 12923 } 12924 if (this._rts === value) { 12925 return this; 12926 } 12927 var tTime = this.parent && this._ts ? _parentToChildTotalTime(this.parent._time, this) : this._tTime; 12928 this._rts = +value || 0; 12929 this._ts = this._ps || value === -_tinyNum ? 0 : this._rts; 12930 this.totalTime(_clamp(-this._delay, this._tDur, tTime), true); 12931 _setEnd(this); 12932 return _recacheAncestors(this); 12933 }; 12934 _proto.paused = function paused(value) { 12935 if (!arguments.length) { 12936 return this._ps; 12937 } 12938 if (this._ps !== value) { 12939 this._ps = value; 12940 if (value) { 12941 this._pTime = this._tTime || Math.max(-this._delay, this.rawTime()); 12942 this._ts = this._act = 0; 12943 } else { 12944 _wake(); 12945 this._ts = this._rts; 12946 this.totalTime(this.parent && !this.parent.smoothChildTiming ? this.rawTime() : this._tTime || this._pTime, this.progress() === 1 && Math.abs(this._zTime) !== _tinyNum && (this._tTime -= _tinyNum)); 12947 } 12948 } 12949 return this; 12950 }; 12951 _proto.startTime = function startTime(value) { 12952 if (arguments.length) { 12953 this._start = value; 12954 var parent = this.parent || this._dp; 12955 parent && (parent._sort || !this.parent) && _addToTimeline(parent, this, value - this._delay); 12956 return this; 12957 } 12958 return this._start; 12959 }; 12960 _proto.endTime = function endTime(includeRepeats) { 12961 return this._start + (_isNotFalse(includeRepeats) ? this.totalDuration() : this.duration()) / Math.abs(this._ts || 1); 12962 }; 12963 _proto.rawTime = function rawTime(wrapRepeats) { 12964 var parent = this.parent || this._dp; 12965 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); 12966 }; 12967 _proto.globalTime = function globalTime(rawTime) { 12968 var animation = this, time = arguments.length ? rawTime : animation.rawTime(); 12969 while (animation) { 12970 time = animation._start + time / (animation._ts || 1); 12971 animation = animation._dp; 12972 } 12973 return time; 12974 }; 12975 _proto.repeat = function repeat(value) { 12976 if (arguments.length) { 12977 this._repeat = value === Infinity ? -2 : value; 12978 return _onUpdateTotalDuration(this); 12979 } 12980 return this._repeat === -2 ? Infinity : this._repeat; 12981 }; 12982 _proto.repeatDelay = function repeatDelay(value) { 12983 if (arguments.length) { 12984 var time = this._time; 12985 this._rDelay = value; 12986 _onUpdateTotalDuration(this); 12987 return time ? this.time(time) : this; 12988 } 12989 return this._rDelay; 12990 }; 12991 _proto.yoyo = function yoyo(value) { 12992 if (arguments.length) { 12993 this._yoyo = value; 12994 return this; 12995 } 12996 return this._yoyo; 12997 }; 12998 _proto.seek = function seek(position, suppressEvents) { 12999 return this.totalTime(_parsePosition(this, position), _isNotFalse(suppressEvents)); 13000 }; 13001 _proto.restart = function restart(includeDelay, suppressEvents) { 13002 return this.play().totalTime(includeDelay ? -this._delay : 0, _isNotFalse(suppressEvents)); 13003 }; 13004 _proto.play = function play(from, suppressEvents) { 13005 from != null && this.seek(from, suppressEvents); 13006 return this.reversed(false).paused(false); 13007 }; 13008 _proto.reverse = function reverse(from, suppressEvents) { 13009 from != null && this.seek(from || this.totalDuration(), suppressEvents); 13010 return this.reversed(true).paused(false); 13011 }; 13012 _proto.pause = function pause(atTime, suppressEvents) { 13013 atTime != null && this.seek(atTime, suppressEvents); 13014 return this.paused(true); 13015 }; 13016 _proto.resume = function resume() { 13017 return this.paused(false); 13018 }; 13019 _proto.reversed = function reversed(value) { 13020 if (arguments.length) { 13021 !!value !== this.reversed() && this.timeScale(-this._rts || (value ? -_tinyNum : 0)); 13022 return this; 13023 } 13024 return this._rts < 0; 13025 }; 13026 _proto.invalidate = function invalidate() { 13027 this._initted = this._act = 0; 13028 this._zTime = -_tinyNum; 13029 return this; 13030 }; 13031 _proto.isActive = function isActive() { 13032 var parent = this.parent || this._dp, start2 = this._start, rawTime; 13033 return !!(!parent || this._ts && this._initted && parent.isActive() && (rawTime = parent.rawTime(true)) >= start2 && rawTime < this.endTime(true) - _tinyNum); 13034 }; 13035 _proto.eventCallback = function eventCallback(type, callback, params) { 13036 var vars = this.vars; 13037 if (arguments.length > 1) { 13038 if (!callback) { 13039 delete vars[type]; 13040 } else { 13041 vars[type] = callback; 13042 params && (vars[type + "Params"] = params); 13043 type === "onUpdate" && (this._onUpdate = callback); 13044 } 13045 return this; 13046 } 13047 return vars[type]; 13048 }; 13049 _proto.then = function then(onFulfilled) { 13050 var self2 = this; 13051 return new Promise(function(resolve) { 13052 var f = _isFunction(onFulfilled) ? onFulfilled : _passThrough, _resolve = function _resolve2() { 13053 var _then = self2.then; 13054 self2.then = null; 13055 _isFunction(f) && (f = f(self2)) && (f.then || f === self2) && (self2.then = _then); 13056 resolve(f); 13057 self2.then = _then; 13058 }; 13059 if (self2._initted && self2.totalProgress() === 1 && self2._ts >= 0 || !self2._tTime && self2._ts < 0) { 13060 _resolve(); 13061 } else { 13062 self2._prom = _resolve; 13063 } 13064 }); 13065 }; 13066 _proto.kill = function kill3() { 13067 _interrupt(this); 13068 }; 13069 return Animation2; 13070 }(); 13071 _setDefaults(Animation.prototype, { 13072 _time: 0, 13073 _start: 0, 13074 _end: 0, 13075 _tTime: 0, 13076 _tDur: 0, 13077 _dirty: 0, 13078 _repeat: 0, 13079 _yoyo: false, 13080 parent: null, 13081 _initted: false, 13082 _rDelay: 0, 13083 _ts: 1, 13084 _dp: 0, 13085 ratio: 0, 13086 _zTime: -_tinyNum, 13087 _prom: 0, 13088 _ps: false, 13089 _rts: 1 13090 }); 13091 var Timeline = /* @__PURE__ */ function(_Animation) { 13092 _inheritsLoose(Timeline2, _Animation); 13093 function Timeline2(vars, position) { 13094 var _this; 13095 if (vars === void 0) { 13096 vars = {}; 13097 } 13098 _this = _Animation.call(this, vars) || this; 13099 _this.labels = {}; 13100 _this.smoothChildTiming = !!vars.smoothChildTiming; 13101 _this.autoRemoveChildren = !!vars.autoRemoveChildren; 13102 _this._sort = _isNotFalse(vars.sortChildren); 13103 _globalTimeline && _addToTimeline(vars.parent || _globalTimeline, _assertThisInitialized(_this), position); 13104 vars.reversed && _this.reverse(); 13105 vars.paused && _this.paused(true); 13106 vars.scrollTrigger && _scrollTrigger(_assertThisInitialized(_this), vars.scrollTrigger); 13107 return _this; 13108 } 13109 var _proto2 = Timeline2.prototype; 13110 _proto2.to = function to(targets, vars, position) { 13111 _createTweenType(0, arguments, this); 13112 return this; 13113 }; 13114 _proto2.from = function from(targets, vars, position) { 13115 _createTweenType(1, arguments, this); 13116 return this; 13117 }; 13118 _proto2.fromTo = function fromTo(targets, fromVars, toVars, position) { 13119 _createTweenType(2, arguments, this); 13120 return this; 13121 }; 13122 _proto2.set = function set(targets, vars, position) { 13123 vars.duration = 0; 13124 vars.parent = this; 13125 _inheritDefaults(vars).repeatDelay || (vars.repeat = 0); 13126 vars.immediateRender = !!vars.immediateRender; 13127 new Tween(targets, vars, _parsePosition(this, position), 1); 13128 return this; 13129 }; 13130 _proto2.call = function call(callback, params, position) { 13131 return _addToTimeline(this, Tween.delayedCall(0, callback, params), position); 13132 }; 13133 _proto2.staggerTo = function staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) { 13134 vars.duration = duration; 13135 vars.stagger = vars.stagger || stagger; 13136 vars.onComplete = onCompleteAll; 13137 vars.onCompleteParams = onCompleteAllParams; 13138 vars.parent = this; 13139 new Tween(targets, vars, _parsePosition(this, position)); 13140 return this; 13141 }; 13142 _proto2.staggerFrom = function staggerFrom(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) { 13143 vars.runBackwards = 1; 13144 _inheritDefaults(vars).immediateRender = _isNotFalse(vars.immediateRender); 13145 return this.staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams); 13146 }; 13147 _proto2.staggerFromTo = function staggerFromTo(targets, duration, fromVars, toVars, stagger, position, onCompleteAll, onCompleteAllParams) { 13148 toVars.startAt = fromVars; 13149 _inheritDefaults(toVars).immediateRender = _isNotFalse(toVars.immediateRender); 13150 return this.staggerTo(targets, duration, toVars, stagger, position, onCompleteAll, onCompleteAllParams); 13151 }; 13152 _proto2.render = function render4(totalTime, suppressEvents, force) { 13153 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; 13154 this !== _globalTimeline && tTime > tDur && totalTime >= 0 && (tTime = tDur); 13155 if (tTime !== this._tTime || force || crossingStart) { 13156 if (prevTime !== this._time && dur) { 13157 tTime += this._time - prevTime; 13158 totalTime += this._time - prevTime; 13159 } 13160 time = tTime; 13161 prevStart = this._start; 13162 timeScale = this._ts; 13163 prevPaused = !timeScale; 13164 if (crossingStart) { 13165 dur || (prevTime = this._zTime); 13166 (totalTime || !suppressEvents) && (this._zTime = totalTime); 13167 } 13168 if (this._repeat) { 13169 yoyo = this._yoyo; 13170 cycleDuration = dur + this._rDelay; 13171 if (this._repeat < -1 && totalTime < 0) { 13172 return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force); 13173 } 13174 time = _roundPrecise(tTime % cycleDuration); 13175 if (tTime === tDur) { 13176 iteration = this._repeat; 13177 time = dur; 13178 } else { 13179 iteration = ~~(tTime / cycleDuration); 13180 if (iteration && iteration === tTime / cycleDuration) { 13181 time = dur; 13182 iteration--; 13183 } 13184 time > dur && (time = dur); 13185 } 13186 prevIteration = _animationCycle(this._tTime, cycleDuration); 13187 !prevTime && this._tTime && prevIteration !== iteration && (prevIteration = iteration); 13188 if (yoyo && iteration & 1) { 13189 time = dur - time; 13190 isYoyo = 1; 13191 } 13192 if (iteration !== prevIteration && !this._lock) { 13193 var rewinding = yoyo && prevIteration & 1, doesWrap = rewinding === (yoyo && iteration & 1); 13194 iteration < prevIteration && (rewinding = !rewinding); 13195 prevTime = rewinding ? 0 : dur; 13196 this._lock = 1; 13197 this.render(prevTime || (isYoyo ? 0 : _roundPrecise(iteration * cycleDuration)), suppressEvents, !dur)._lock = 0; 13198 this._tTime = tTime; 13199 !suppressEvents && this.parent && _callback(this, "onRepeat"); 13200 this.vars.repeatRefresh && !isYoyo && (this.invalidate()._lock = 1); 13201 if (prevTime && prevTime !== this._time || prevPaused !== !this._ts || this.vars.onRepeat && !this.parent && !this._act) { 13202 return this; 13203 } 13204 dur = this._dur; 13205 tDur = this._tDur; 13206 if (doesWrap) { 13207 this._lock = 2; 13208 prevTime = rewinding ? dur : -1e-4; 13209 this.render(prevTime, true); 13210 this.vars.repeatRefresh && !isYoyo && this.invalidate(); 13211 } 13212 this._lock = 0; 13213 if (!this._ts && !prevPaused) { 13214 return this; 13215 } 13216 _propagateYoyoEase(this, isYoyo); 13217 } 13218 } 13219 if (this._hasPause && !this._forcing && this._lock < 2) { 13220 pauseTween = _findNextPauseTween(this, _roundPrecise(prevTime), _roundPrecise(time)); 13221 if (pauseTween) { 13222 tTime -= time - (time = pauseTween._start); 13223 } 13224 } 13225 this._tTime = tTime; 13226 this._time = time; 13227 this._act = !timeScale; 13228 if (!this._initted) { 13229 this._onUpdate = this.vars.onUpdate; 13230 this._initted = 1; 13231 this._zTime = totalTime; 13232 prevTime = 0; 13233 } 13234 if (!prevTime && time && !suppressEvents) { 13235 _callback(this, "onStart"); 13236 if (this._tTime !== tTime) { 13237 return this; 13238 } 13239 } 13240 if (time >= prevTime && totalTime >= 0) { 13241 child = this._first; 13242 while (child) { 13243 next = child._next; 13244 if ((child._act || time >= child._start) && child._ts && pauseTween !== child) { 13245 if (child.parent !== this) { 13246 return this.render(totalTime, suppressEvents, force); 13247 } 13248 child.render(child._ts > 0 ? (time - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (time - child._start) * child._ts, suppressEvents, force); 13249 if (time !== this._time || !this._ts && !prevPaused) { 13250 pauseTween = 0; 13251 next && (tTime += this._zTime = -_tinyNum); 13252 break; 13253 } 13254 } 13255 child = next; 13256 } 13257 } else { 13258 child = this._last; 13259 var adjustedTime = totalTime < 0 ? totalTime : time; 13260 while (child) { 13261 next = child._prev; 13262 if ((child._act || adjustedTime <= child._end) && child._ts && pauseTween !== child) { 13263 if (child.parent !== this) { 13264 return this.render(totalTime, suppressEvents, force); 13265 } 13266 child.render(child._ts > 0 ? (adjustedTime - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (adjustedTime - child._start) * child._ts, suppressEvents, force); 13267 if (time !== this._time || !this._ts && !prevPaused) { 13268 pauseTween = 0; 13269 next && (tTime += this._zTime = adjustedTime ? -_tinyNum : _tinyNum); 13270 break; 13271 } 13272 } 13273 child = next; 13274 } 13275 } 13276 if (pauseTween && !suppressEvents) { 13277 this.pause(); 13278 pauseTween.render(time >= prevTime ? 0 : -_tinyNum)._zTime = time >= prevTime ? 1 : -1; 13279 if (this._ts) { 13280 this._start = prevStart; 13281 _setEnd(this); 13282 return this.render(totalTime, suppressEvents, force); 13283 } 13284 } 13285 this._onUpdate && !suppressEvents && _callback(this, "onUpdate", true); 13286 if (tTime === tDur && this._tTime >= this.totalDuration() || !tTime && prevTime) { 13287 if (prevStart === this._start || Math.abs(timeScale) !== Math.abs(this._ts)) { 13288 if (!this._lock) { 13289 (totalTime || !dur) && (tTime === tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1); 13290 if (!suppressEvents && !(totalTime < 0 && !prevTime) && (tTime || prevTime || !tDur)) { 13291 _callback(this, tTime === tDur && totalTime >= 0 ? "onComplete" : "onReverseComplete", true); 13292 this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom(); 13293 } 13294 } 13295 } 13296 } 13297 } 13298 return this; 13299 }; 13300 _proto2.add = function add(child, position) { 13301 var _this2 = this; 13302 _isNumber(position) || (position = _parsePosition(this, position, child)); 13303 if (!(child instanceof Animation)) { 13304 if (_isArray(child)) { 13305 child.forEach(function(obj) { 13306 return _this2.add(obj, position); 13307 }); 13308 return this; 13309 } 13310 if (_isString(child)) { 13311 return this.addLabel(child, position); 13312 } 13313 if (_isFunction(child)) { 13314 child = Tween.delayedCall(0, child); 13315 } else { 13316 return this; 13317 } 13318 } 13319 return this !== child ? _addToTimeline(this, child, position) : this; 13320 }; 13321 _proto2.getChildren = function getChildren(nested, tweens, timelines, ignoreBeforeTime) { 13322 if (nested === void 0) { 13323 nested = true; 13324 } 13325 if (tweens === void 0) { 13326 tweens = true; 13327 } 13328 if (timelines === void 0) { 13329 timelines = true; 13330 } 13331 if (ignoreBeforeTime === void 0) { 13332 ignoreBeforeTime = -_bigNum; 13333 } 13334 var a = [], child = this._first; 13335 while (child) { 13336 if (child._start >= ignoreBeforeTime) { 13337 if (child instanceof Tween) { 13338 tweens && a.push(child); 13339 } else { 13340 timelines && a.push(child); 13341 nested && a.push.apply(a, child.getChildren(true, tweens, timelines)); 13342 } 13343 } 13344 child = child._next; 13345 } 13346 return a; 13347 }; 13348 _proto2.getById = function getById2(id) { 13349 var animations = this.getChildren(1, 1, 1), i = animations.length; 13350 while (i--) { 13351 if (animations[i].vars.id === id) { 13352 return animations[i]; 13353 } 13354 } 13355 }; 13356 _proto2.remove = function remove(child) { 13357 if (_isString(child)) { 13358 return this.removeLabel(child); 13359 } 13360 if (_isFunction(child)) { 13361 return this.killTweensOf(child); 13362 } 13363 _removeLinkedListItem(this, child); 13364 if (child === this._recent) { 13365 this._recent = this._last; 13366 } 13367 return _uncache(this); 13368 }; 13369 _proto2.totalTime = function totalTime(_totalTime2, suppressEvents) { 13370 if (!arguments.length) { 13371 return this._tTime; 13372 } 13373 this._forcing = 1; 13374 if (!this._dp && this._ts) { 13375 this._start = _roundPrecise(_ticker.time - (this._ts > 0 ? _totalTime2 / this._ts : (this.totalDuration() - _totalTime2) / -this._ts)); 13376 } 13377 _Animation.prototype.totalTime.call(this, _totalTime2, suppressEvents); 13378 this._forcing = 0; 13379 return this; 13380 }; 13381 _proto2.addLabel = function addLabel(label, position) { 13382 this.labels[label] = _parsePosition(this, position); 13383 return this; 13384 }; 13385 _proto2.removeLabel = function removeLabel(label) { 13386 delete this.labels[label]; 13387 return this; 13388 }; 13389 _proto2.addPause = function addPause(position, callback, params) { 13390 var t = Tween.delayedCall(0, callback || _emptyFunc, params); 13391 t.data = "isPause"; 13392 this._hasPause = 1; 13393 return _addToTimeline(this, t, _parsePosition(this, position)); 13394 }; 13395 _proto2.removePause = function removePause(position) { 13396 var child = this._first; 13397 position = _parsePosition(this, position); 13398 while (child) { 13399 if (child._start === position && child.data === "isPause") { 13400 _removeFromParent(child); 13401 } 13402 child = child._next; 13403 } 13404 }; 13405 _proto2.killTweensOf = function killTweensOf(targets, props, onlyActive) { 13406 var tweens = this.getTweensOf(targets, onlyActive), i = tweens.length; 13407 while (i--) { 13408 _overwritingTween !== tweens[i] && tweens[i].kill(targets, props); 13409 } 13410 return this; 13411 }; 13412 _proto2.getTweensOf = function getTweensOf2(targets, onlyActive) { 13413 var a = [], parsedTargets = toArray(targets), child = this._first, isGlobalTime = _isNumber(onlyActive), children; 13414 while (child) { 13415 if (child instanceof Tween) { 13416 if (_arrayContainsAny(child._targets, parsedTargets) && (isGlobalTime ? (!_overwritingTween || child._initted && child._ts) && child.globalTime(0) <= onlyActive && child.globalTime(child.totalDuration()) > onlyActive : !onlyActive || child.isActive())) { 13417 a.push(child); 13418 } 13419 } else if ((children = child.getTweensOf(parsedTargets, onlyActive)).length) { 13420 a.push.apply(a, children); 13421 } 13422 child = child._next; 13423 } 13424 return a; 13425 }; 13426 _proto2.tweenTo = function tweenTo(position, vars) { 13427 vars = vars || {}; 13428 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({ 13429 ease: vars.ease || "none", 13430 lazy: false, 13431 immediateRender: false, 13432 time: endTime, 13433 overwrite: "auto", 13434 duration: vars.duration || Math.abs((endTime - (startAt && "time" in startAt ? startAt.time : tl._time)) / tl.timeScale()) || _tinyNum, 13435 onStart: function onStart() { 13436 tl.pause(); 13437 if (!initted) { 13438 var duration = vars.duration || Math.abs((endTime - (startAt && "time" in startAt ? startAt.time : tl._time)) / tl.timeScale()); 13439 tween._dur !== duration && _setDuration(tween, duration, 0, 1).render(tween._time, true, true); 13440 initted = 1; 13441 } 13442 _onStart && _onStart.apply(tween, onStartParams || []); 13443 } 13444 }, vars)); 13445 return immediateRender ? tween.render(0) : tween; 13446 }; 13447 _proto2.tweenFromTo = function tweenFromTo(fromPosition, toPosition, vars) { 13448 return this.tweenTo(toPosition, _setDefaults({ 13449 startAt: { 13450 time: _parsePosition(this, fromPosition) 13451 } 13452 }, vars)); 13453 }; 13454 _proto2.recent = function recent() { 13455 return this._recent; 13456 }; 13457 _proto2.nextLabel = function nextLabel(afterTime) { 13458 if (afterTime === void 0) { 13459 afterTime = this._time; 13460 } 13461 return _getLabelInDirection(this, _parsePosition(this, afterTime)); 13462 }; 13463 _proto2.previousLabel = function previousLabel(beforeTime) { 13464 if (beforeTime === void 0) { 13465 beforeTime = this._time; 13466 } 13467 return _getLabelInDirection(this, _parsePosition(this, beforeTime), 1); 13468 }; 13469 _proto2.currentLabel = function currentLabel(value) { 13470 return arguments.length ? this.seek(value, true) : this.previousLabel(this._time + _tinyNum); 13471 }; 13472 _proto2.shiftChildren = function shiftChildren(amount, adjustLabels, ignoreBeforeTime) { 13473 if (ignoreBeforeTime === void 0) { 13474 ignoreBeforeTime = 0; 13475 } 13476 var child = this._first, labels = this.labels, p; 13477 while (child) { 13478 if (child._start >= ignoreBeforeTime) { 13479 child._start += amount; 13480 child._end += amount; 13481 } 13482 child = child._next; 13483 } 13484 if (adjustLabels) { 13485 for (p in labels) { 13486 if (labels[p] >= ignoreBeforeTime) { 13487 labels[p] += amount; 13488 } 13489 } 13490 } 13491 return _uncache(this); 13492 }; 13493 _proto2.invalidate = function invalidate() { 13494 var child = this._first; 13495 this._lock = 0; 13496 while (child) { 13497 child.invalidate(); 13498 child = child._next; 13499 } 13500 return _Animation.prototype.invalidate.call(this); 13501 }; 13502 _proto2.clear = function clear(includeLabels) { 13503 if (includeLabels === void 0) { 13504 includeLabels = true; 13505 } 13506 var child = this._first, next; 13507 while (child) { 13508 next = child._next; 13509 this.remove(child); 13510 child = next; 13511 } 13512 this._dp && (this._time = this._tTime = this._pTime = 0); 13513 includeLabels && (this.labels = {}); 13514 return _uncache(this); 13515 }; 13516 _proto2.totalDuration = function totalDuration(value) { 13517 var max2 = 0, self2 = this, child = self2._last, prevStart = _bigNum, prev, start2, parent; 13518 if (arguments.length) { 13519 return self2.timeScale((self2._repeat < 0 ? self2.duration() : self2.totalDuration()) / (self2.reversed() ? -value : value)); 13520 } 13521 if (self2._dirty) { 13522 parent = self2.parent; 13523 while (child) { 13524 prev = child._prev; 13525 child._dirty && child.totalDuration(); 13526 start2 = child._start; 13527 if (start2 > prevStart && self2._sort && child._ts && !self2._lock) { 13528 self2._lock = 1; 13529 _addToTimeline(self2, child, start2 - child._delay, 1)._lock = 0; 13530 } else { 13531 prevStart = start2; 13532 } 13533 if (start2 < 0 && child._ts) { 13534 max2 -= start2; 13535 if (!parent && !self2._dp || parent && parent.smoothChildTiming) { 13536 self2._start += start2 / self2._ts; 13537 self2._time -= start2; 13538 self2._tTime -= start2; 13539 } 13540 self2.shiftChildren(-start2, false, -Infinity); 13541 prevStart = 0; 13542 } 13543 child._end > max2 && child._ts && (max2 = child._end); 13544 child = prev; 13545 } 13546 _setDuration(self2, self2 === _globalTimeline && self2._time > max2 ? self2._time : max2, 1, 1); 13547 self2._dirty = 0; 13548 } 13549 return self2._tDur; 13550 }; 13551 Timeline2.updateRoot = function updateRoot(time) { 13552 if (_globalTimeline._ts) { 13553 _lazySafeRender(_globalTimeline, _parentToChildTotalTime(time, _globalTimeline)); 13554 _lastRenderedFrame = _ticker.frame; 13555 } 13556 if (_ticker.frame >= _nextGCFrame) { 13557 _nextGCFrame += _config.autoSleep || 120; 13558 var child = _globalTimeline._first; 13559 if (!child || !child._ts) { 13560 if (_config.autoSleep && _ticker._listeners.length < 2) { 13561 while (child && !child._ts) { 13562 child = child._next; 13563 } 13564 child || _ticker.sleep(); 13565 } 13566 } 13567 } 13568 }; 13569 return Timeline2; 13570 }(Animation); 13571 _setDefaults(Timeline.prototype, { 13572 _lock: 0, 13573 _hasPause: 0, 13574 _forcing: 0 13575 }); 13576 var _addComplexStringPropTween = function _addComplexStringPropTween2(target, prop, start2, end2, setter, stringFilter, funcParam) { 13577 var pt = new PropTween(this._pt, target, prop, 0, 1, _renderComplexString, null, setter), index = 0, matchIndex = 0, result, startNums, color, endNum, chunk, startNum, hasRandom, a; 13578 pt.b = start2; 13579 pt.e = end2; 13580 start2 += ""; 13581 end2 += ""; 13582 if (hasRandom = ~end2.indexOf("random(")) { 13583 end2 = _replaceRandom(end2); 13584 } 13585 if (stringFilter) { 13586 a = [start2, end2]; 13587 stringFilter(a, target, prop); 13588 start2 = a[0]; 13589 end2 = a[1]; 13590 } 13591 startNums = start2.match(_complexStringNumExp) || []; 13592 while (result = _complexStringNumExp.exec(end2)) { 13593 endNum = result[0]; 13594 chunk = end2.substring(index, result.index); 13595 if (color) { 13596 color = (color + 1) % 5; 13597 } else if (chunk.substr(-5) === "rgba(") { 13598 color = 1; 13599 } 13600 if (endNum !== startNums[matchIndex++]) { 13601 startNum = parseFloat(startNums[matchIndex - 1]) || 0; 13602 pt._pt = { 13603 _next: pt._pt, 13604 p: chunk || matchIndex === 1 ? chunk : ",", 13605 s: startNum, 13606 c: endNum.charAt(1) === "=" ? _parseRelative(startNum, endNum) - startNum : parseFloat(endNum) - startNum, 13607 m: color && color < 4 ? Math.round : 0 13608 }; 13609 index = _complexStringNumExp.lastIndex; 13610 } 13611 } 13612 pt.c = index < end2.length ? end2.substring(index, end2.length) : ""; 13613 pt.fp = funcParam; 13614 if (_relExp.test(end2) || hasRandom) { 13615 pt.e = 0; 13616 } 13617 this._pt = pt; 13618 return pt; 13619 }; 13620 var _addPropTween = function _addPropTween2(target, prop, start2, end2, index, targets, modifier, stringFilter, funcParam) { 13621 _isFunction(end2) && (end2 = end2(index || 0, target, targets)); 13622 var currentValue = target[prop], parsedStart = start2 !== "get" ? start2 : !_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; 13623 if (_isString(end2)) { 13624 if (~end2.indexOf("random(")) { 13625 end2 = _replaceRandom(end2); 13626 } 13627 if (end2.charAt(1) === "=") { 13628 pt = _parseRelative(parsedStart, end2) + (getUnit(parsedStart) || 0); 13629 if (pt || pt === 0) { 13630 end2 = pt; 13631 } 13632 } 13633 } 13634 if (parsedStart !== end2 || _forceAllPropTweens) { 13635 if (!isNaN(parsedStart * end2) && end2 !== "") { 13636 pt = new PropTween(this._pt, target, prop, +parsedStart || 0, end2 - (parsedStart || 0), typeof currentValue === "boolean" ? _renderBoolean : _renderPlain, 0, setter); 13637 funcParam && (pt.fp = funcParam); 13638 modifier && pt.modifier(modifier, this, target); 13639 return this._pt = pt; 13640 } 13641 !currentValue && !(prop in target) && _missingPlugin(prop, end2); 13642 return _addComplexStringPropTween.call(this, target, prop, parsedStart, end2, setter, stringFilter || _config.stringFilter, funcParam); 13643 } 13644 }; 13645 var _processVars = function _processVars2(vars, index, target, targets, tween) { 13646 _isFunction(vars) && (vars = _parseFuncOrString(vars, tween, index, target, targets)); 13647 if (!_isObject(vars) || vars.style && vars.nodeType || _isArray(vars) || _isTypedArray(vars)) { 13648 return _isString(vars) ? _parseFuncOrString(vars, tween, index, target, targets) : vars; 13649 } 13650 var copy = {}, p; 13651 for (p in vars) { 13652 copy[p] = _parseFuncOrString(vars[p], tween, index, target, targets); 13653 } 13654 return copy; 13655 }; 13656 var _checkPlugin = function _checkPlugin2(property, vars, tween, index, target, targets) { 13657 var plugin, pt, ptLookup, i; 13658 if (_plugins[property] && (plugin = new _plugins[property]()).init(target, plugin.rawVars ? vars[property] : _processVars(vars[property], index, target, targets, tween), tween, index, targets) !== false) { 13659 tween._pt = pt = new PropTween(tween._pt, target, property, 0, 1, plugin.render, plugin, 0, plugin.priority); 13660 if (tween !== _quickTween) { 13661 ptLookup = tween._ptLookup[tween._targets.indexOf(target)]; 13662 i = plugin._props.length; 13663 while (i--) { 13664 ptLookup[plugin._props[i]] = pt; 13665 } 13666 } 13667 } 13668 return plugin; 13669 }; 13670 var _overwritingTween; 13671 var _forceAllPropTweens; 13672 var _initTween = function _initTween2(tween, time) { 13673 var vars = tween.vars, ease = vars.ease, startAt = vars.startAt, immediateRender = vars.immediateRender, lazy = vars.lazy, onUpdate = vars.onUpdate, onUpdateParams = vars.onUpdateParams, callbackScope = vars.callbackScope, 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.parent._targets : targets, autoOverwrite = tween._overwrite === "auto" && !_suppressOverwrites, tl = tween.timeline, cleanVars, i, p, pt, target, hasPriority, gsData, harness, plugin, ptLookup, index, harnessVars, overwritten; 13674 tl && (!keyframes || !ease) && (ease = "none"); 13675 tween._ease = _parseEase(ease, _defaults.ease); 13676 tween._yEase = yoyoEase ? _invertEase(_parseEase(yoyoEase === true ? ease : yoyoEase, _defaults.ease)) : 0; 13677 if (yoyoEase && tween._yoyo && !tween._repeat) { 13678 yoyoEase = tween._yEase; 13679 tween._yEase = tween._ease; 13680 tween._ease = yoyoEase; 13681 } 13682 tween._from = !tl && !!vars.runBackwards; 13683 if (!tl || keyframes && !vars.stagger) { 13684 harness = targets[0] ? _getCache(targets[0]).harness : 0; 13685 harnessVars = harness && vars[harness.prop]; 13686 cleanVars = _copyExcluding(vars, _reservedProps); 13687 if (prevStartAt) { 13688 _removeFromParent(prevStartAt.render(-1, true)); 13689 prevStartAt._lazy = 0; 13690 } 13691 if (startAt) { 13692 _removeFromParent(tween._startAt = Tween.set(targets, _setDefaults({ 13693 data: "isStart", 13694 overwrite: false, 13695 parent, 13696 immediateRender: true, 13697 lazy: _isNotFalse(lazy), 13698 startAt: null, 13699 delay: 0, 13700 onUpdate, 13701 onUpdateParams, 13702 callbackScope, 13703 stagger: 0 13704 }, startAt))); 13705 time < 0 && !immediateRender && !autoRevert && tween._startAt.render(-1, true); 13706 if (immediateRender) { 13707 time > 0 && !autoRevert && (tween._startAt = 0); 13708 if (dur && time <= 0) { 13709 time && (tween._zTime = time); 13710 return; 13711 } 13712 } else if (autoRevert === false) { 13713 tween._startAt = 0; 13714 } 13715 } else if (runBackwards && dur) { 13716 if (prevStartAt) { 13717 !autoRevert && (tween._startAt = 0); 13718 } else { 13719 time && (immediateRender = false); 13720 p = _setDefaults({ 13721 overwrite: false, 13722 data: "isFromStart", 13723 lazy: immediateRender && _isNotFalse(lazy), 13724 immediateRender, 13725 stagger: 0, 13726 parent 13727 }, cleanVars); 13728 harnessVars && (p[harness.prop] = harnessVars); 13729 _removeFromParent(tween._startAt = Tween.set(targets, p)); 13730 time < 0 && tween._startAt.render(-1, true); 13731 tween._zTime = time; 13732 if (!immediateRender) { 13733 _initTween2(tween._startAt, _tinyNum); 13734 } else if (!time) { 13735 return; 13736 } 13737 } 13738 } 13739 tween._pt = tween._ptCache = 0; 13740 lazy = dur && _isNotFalse(lazy) || lazy && !dur; 13741 for (i = 0; i < targets.length; i++) { 13742 target = targets[i]; 13743 gsData = target._gsap || _harness(targets)[i]._gsap; 13744 tween._ptLookup[i] = ptLookup = {}; 13745 _lazyLookup[gsData.id] && _lazyTweens.length && _lazyRender(); 13746 index = fullTargets === targets ? i : fullTargets.indexOf(target); 13747 if (harness && (plugin = new harness()).init(target, harnessVars || cleanVars, tween, index, fullTargets) !== false) { 13748 tween._pt = pt = new PropTween(tween._pt, target, plugin.name, 0, 1, plugin.render, plugin, 0, plugin.priority); 13749 plugin._props.forEach(function(name) { 13750 ptLookup[name] = pt; 13751 }); 13752 plugin.priority && (hasPriority = 1); 13753 } 13754 if (!harness || harnessVars) { 13755 for (p in cleanVars) { 13756 if (_plugins[p] && (plugin = _checkPlugin(p, cleanVars, tween, index, target, fullTargets))) { 13757 plugin.priority && (hasPriority = 1); 13758 } else { 13759 ptLookup[p] = pt = _addPropTween.call(tween, target, p, "get", cleanVars[p], index, fullTargets, 0, vars.stringFilter); 13760 } 13761 } 13762 } 13763 tween._op && tween._op[i] && tween.kill(target, tween._op[i]); 13764 if (autoOverwrite && tween._pt) { 13765 _overwritingTween = tween; 13766 _globalTimeline.killTweensOf(target, ptLookup, tween.globalTime(time)); 13767 overwritten = !tween.parent; 13768 _overwritingTween = 0; 13769 } 13770 tween._pt && lazy && (_lazyLookup[gsData.id] = 1); 13771 } 13772 hasPriority && _sortPropTweensByPriority(tween); 13773 tween._onInit && tween._onInit(tween); 13774 } 13775 tween._onUpdate = onUpdate; 13776 tween._initted = (!tween._op || tween._pt) && !overwritten; 13777 keyframes && time <= 0 && tl.render(_bigNum, true, true); 13778 }; 13779 var _updatePropTweens = function _updatePropTweens2(tween, property, value, start2, startIsRelative, ratio, time) { 13780 var ptCache = (tween._pt && tween._ptCache || (tween._ptCache = {}))[property], pt, lookup, i; 13781 if (!ptCache) { 13782 ptCache = tween._ptCache[property] = []; 13783 lookup = tween._ptLookup; 13784 i = tween._targets.length; 13785 while (i--) { 13786 pt = lookup[i][property]; 13787 if (pt && pt.d && pt.d._pt) { 13788 pt = pt.d._pt; 13789 while (pt && pt.p !== property) { 13790 pt = pt._next; 13791 } 13792 } 13793 if (!pt) { 13794 _forceAllPropTweens = 1; 13795 tween.vars[property] = "+=0"; 13796 _initTween(tween, time); 13797 _forceAllPropTweens = 0; 13798 return 1; 13799 } 13800 ptCache.push(pt); 13801 } 13802 } 13803 i = ptCache.length; 13804 while (i--) { 13805 pt = ptCache[i]; 13806 pt.s = (start2 || start2 === 0) && !startIsRelative ? start2 : pt.s + (start2 || 0) + ratio * pt.c; 13807 pt.c = value - pt.s; 13808 pt.e && (pt.e = _round(value) + getUnit(pt.e)); 13809 pt.b && (pt.b = pt.s + getUnit(pt.b)); 13810 } 13811 }; 13812 var _addAliasesToVars = function _addAliasesToVars2(targets, vars) { 13813 var harness = targets[0] ? _getCache(targets[0]).harness : 0, propertyAliases = harness && harness.aliases, copy, p, i, aliases; 13814 if (!propertyAliases) { 13815 return vars; 13816 } 13817 copy = _merge({}, vars); 13818 for (p in propertyAliases) { 13819 if (p in copy) { 13820 aliases = propertyAliases[p].split(","); 13821 i = aliases.length; 13822 while (i--) { 13823 copy[aliases[i]] = copy[p]; 13824 } 13825 } 13826 } 13827 return copy; 13828 }; 13829 var _parseKeyframe = function _parseKeyframe2(prop, obj, allProps, easeEach) { 13830 var ease = obj.ease || easeEach || "power1.inOut", p, a; 13831 if (_isArray(obj)) { 13832 a = allProps[prop] || (allProps[prop] = []); 13833 obj.forEach(function(value, i) { 13834 return a.push({ 13835 t: i / (obj.length - 1) * 100, 13836 v: value, 13837 e: ease 13838 }); 13839 }); 13840 } else { 13841 for (p in obj) { 13842 a = allProps[p] || (allProps[p] = []); 13843 p === "ease" || a.push({ 13844 t: parseFloat(prop), 13845 v: obj[p], 13846 e: ease 13847 }); 13848 } 13849 } 13850 }; 13851 var _parseFuncOrString = function _parseFuncOrString2(value, tween, i, target, targets) { 13852 return _isFunction(value) ? value.call(tween, i, target, targets) : _isString(value) && ~value.indexOf("random(") ? _replaceRandom(value) : value; 13853 }; 13854 var _staggerTweenProps = _callbackNames + "repeat,repeatDelay,yoyo,repeatRefresh,yoyoEase,autoRevert"; 13855 var _staggerPropsToSkip = {}; 13856 _forEachName(_staggerTweenProps + ",id,stagger,delay,duration,paused,scrollTrigger", function(name) { 13857 return _staggerPropsToSkip[name] = 1; 13858 }); 13859 var Tween = /* @__PURE__ */ function(_Animation2) { 13860 _inheritsLoose(Tween2, _Animation2); 13861 function Tween2(targets, vars, position, skipInherit) { 13862 var _this3; 13863 if (typeof vars === "number") { 13864 position.duration = vars; 13865 vars = position; 13866 position = null; 13867 } 13868 _this3 = _Animation2.call(this, skipInherit ? vars : _inheritDefaults(vars)) || this; 13869 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, defaults3 = _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, i, copy, l, p, curTarget, staggerFunc, staggerVarsToMerge; 13870 _this3._targets = parsedTargets.length ? _harness(parsedTargets) : _warn("GSAP target " + targets + " not found. https://greensock.com", !_config.nullTargetWarn) || []; 13871 _this3._ptLookup = []; 13872 _this3._overwrite = overwrite; 13873 if (keyframes || stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) { 13874 vars = _this3.vars; 13875 tl = _this3.timeline = new Timeline({ 13876 data: "nested", 13877 defaults: defaults3 || {} 13878 }); 13879 tl.kill(); 13880 tl.parent = tl._dp = _assertThisInitialized(_this3); 13881 tl._start = 0; 13882 if (stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) { 13883 l = parsedTargets.length; 13884 staggerFunc = stagger && distribute(stagger); 13885 if (_isObject(stagger)) { 13886 for (p in stagger) { 13887 if (~_staggerTweenProps.indexOf(p)) { 13888 staggerVarsToMerge || (staggerVarsToMerge = {}); 13889 staggerVarsToMerge[p] = stagger[p]; 13890 } 13891 } 13892 } 13893 for (i = 0; i < l; i++) { 13894 copy = _copyExcluding(vars, _staggerPropsToSkip); 13895 copy.stagger = 0; 13896 yoyoEase && (copy.yoyoEase = yoyoEase); 13897 staggerVarsToMerge && _merge(copy, staggerVarsToMerge); 13898 curTarget = parsedTargets[i]; 13899 copy.duration = +_parseFuncOrString(duration, _assertThisInitialized(_this3), i, curTarget, parsedTargets); 13900 copy.delay = (+_parseFuncOrString(delay, _assertThisInitialized(_this3), i, curTarget, parsedTargets) || 0) - _this3._delay; 13901 if (!stagger && l === 1 && copy.delay) { 13902 _this3._delay = delay = copy.delay; 13903 _this3._start += delay; 13904 copy.delay = 0; 13905 } 13906 tl.to(curTarget, copy, staggerFunc ? staggerFunc(i, curTarget, parsedTargets) : 0); 13907 tl._ease = _easeMap.none; 13908 } 13909 tl.duration() ? duration = delay = 0 : _this3.timeline = 0; 13910 } else if (keyframes) { 13911 _inheritDefaults(_setDefaults(tl.vars.defaults, { 13912 ease: "none" 13913 })); 13914 tl._ease = _parseEase(keyframes.ease || vars.ease || "none"); 13915 var time = 0, a, kf, v; 13916 if (_isArray(keyframes)) { 13917 keyframes.forEach(function(frame) { 13918 return tl.to(parsedTargets, frame, ">"); 13919 }); 13920 } else { 13921 copy = {}; 13922 for (p in keyframes) { 13923 p === "ease" || p === "easeEach" || _parseKeyframe(p, keyframes[p], copy, keyframes.easeEach); 13924 } 13925 for (p in copy) { 13926 a = copy[p].sort(function(a2, b) { 13927 return a2.t - b.t; 13928 }); 13929 time = 0; 13930 for (i = 0; i < a.length; i++) { 13931 kf = a[i]; 13932 v = { 13933 ease: kf.e, 13934 duration: (kf.t - (i ? a[i - 1].t : 0)) / 100 * duration 13935 }; 13936 v[p] = kf.v; 13937 tl.to(parsedTargets, v, time); 13938 time += v.duration; 13939 } 13940 } 13941 tl.duration() < duration && tl.to({}, { 13942 duration: duration - tl.duration() 13943 }); 13944 } 13945 } 13946 duration || _this3.duration(duration = tl.duration()); 13947 } else { 13948 _this3.timeline = 0; 13949 } 13950 if (overwrite === true && !_suppressOverwrites) { 13951 _overwritingTween = _assertThisInitialized(_this3); 13952 _globalTimeline.killTweensOf(parsedTargets); 13953 _overwritingTween = 0; 13954 } 13955 _addToTimeline(parent, _assertThisInitialized(_this3), position); 13956 vars.reversed && _this3.reverse(); 13957 vars.paused && _this3.paused(true); 13958 if (immediateRender || !duration && !keyframes && _this3._start === _roundPrecise(parent._time) && _isNotFalse(immediateRender) && _hasNoPausedAncestors(_assertThisInitialized(_this3)) && parent.data !== "nested") { 13959 _this3._tTime = -_tinyNum; 13960 _this3.render(Math.max(0, -delay)); 13961 } 13962 scrollTrigger && _scrollTrigger(_assertThisInitialized(_this3), scrollTrigger); 13963 return _this3; 13964 } 13965 var _proto3 = Tween2.prototype; 13966 _proto3.render = function render4(totalTime, suppressEvents, force) { 13967 var prevTime = this._time, tDur = this._tDur, dur = this._dur, tTime = totalTime > tDur - _tinyNum && totalTime >= 0 ? tDur : totalTime < _tinyNum ? 0 : totalTime, time, pt, iteration, cycleDuration, prevIteration, isYoyo, ratio, timeline2, yoyoEase; 13968 if (!dur) { 13969 _renderZeroDurationTween(this, totalTime, suppressEvents, force); 13970 } else if (tTime !== this._tTime || !totalTime || force || !this._initted && this._tTime || this._startAt && this._zTime < 0 !== totalTime < 0) { 13971 time = tTime; 13972 timeline2 = this.timeline; 13973 if (this._repeat) { 13974 cycleDuration = dur + this._rDelay; 13975 if (this._repeat < -1 && totalTime < 0) { 13976 return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force); 13977 } 13978 time = _roundPrecise(tTime % cycleDuration); 13979 if (tTime === tDur) { 13980 iteration = this._repeat; 13981 time = dur; 13982 } else { 13983 iteration = ~~(tTime / cycleDuration); 13984 if (iteration && iteration === tTime / cycleDuration) { 13985 time = dur; 13986 iteration--; 13987 } 13988 time > dur && (time = dur); 13989 } 13990 isYoyo = this._yoyo && iteration & 1; 13991 if (isYoyo) { 13992 yoyoEase = this._yEase; 13993 time = dur - time; 13994 } 13995 prevIteration = _animationCycle(this._tTime, cycleDuration); 13996 if (time === prevTime && !force && this._initted) { 13997 this._tTime = tTime; 13998 return this; 13999 } 14000 if (iteration !== prevIteration) { 14001 timeline2 && this._yEase && _propagateYoyoEase(timeline2, isYoyo); 14002 if (this.vars.repeatRefresh && !isYoyo && !this._lock) { 14003 this._lock = force = 1; 14004 this.render(_roundPrecise(cycleDuration * iteration), true).invalidate()._lock = 0; 14005 } 14006 } 14007 } 14008 if (!this._initted) { 14009 if (_attemptInitTween(this, totalTime < 0 ? totalTime : time, force, suppressEvents)) { 14010 this._tTime = 0; 14011 return this; 14012 } 14013 if (prevTime !== this._time) { 14014 return this; 14015 } 14016 if (dur !== this._dur) { 14017 return this.render(totalTime, suppressEvents, force); 14018 } 14019 } 14020 this._tTime = tTime; 14021 this._time = time; 14022 if (!this._act && this._ts) { 14023 this._act = 1; 14024 this._lazy = 0; 14025 } 14026 this.ratio = ratio = (yoyoEase || this._ease)(time / dur); 14027 if (this._from) { 14028 this.ratio = ratio = 1 - ratio; 14029 } 14030 if (time && !prevTime && !suppressEvents) { 14031 _callback(this, "onStart"); 14032 if (this._tTime !== tTime) { 14033 return this; 14034 } 14035 } 14036 pt = this._pt; 14037 while (pt) { 14038 pt.r(ratio, pt.d); 14039 pt = pt._next; 14040 } 14041 timeline2 && timeline2.render(totalTime < 0 ? totalTime : !time && isYoyo ? -_tinyNum : timeline2._dur * timeline2._ease(time / this._dur), suppressEvents, force) || this._startAt && (this._zTime = totalTime); 14042 if (this._onUpdate && !suppressEvents) { 14043 totalTime < 0 && this._startAt && this._startAt.render(totalTime, true, force); 14044 _callback(this, "onUpdate"); 14045 } 14046 this._repeat && iteration !== prevIteration && this.vars.onRepeat && !suppressEvents && this.parent && _callback(this, "onRepeat"); 14047 if ((tTime === this._tDur || !tTime) && this._tTime === tTime) { 14048 totalTime < 0 && this._startAt && !this._onUpdate && this._startAt.render(totalTime, true, true); 14049 (totalTime || !dur) && (tTime === this._tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1); 14050 if (!suppressEvents && !(totalTime < 0 && !prevTime) && (tTime || prevTime)) { 14051 _callback(this, tTime === tDur ? "onComplete" : "onReverseComplete", true); 14052 this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom(); 14053 } 14054 } 14055 } 14056 return this; 14057 }; 14058 _proto3.targets = function targets() { 14059 return this._targets; 14060 }; 14061 _proto3.invalidate = function invalidate() { 14062 this._pt = this._op = this._startAt = this._onUpdate = this._lazy = this.ratio = 0; 14063 this._ptLookup = []; 14064 this.timeline && this.timeline.invalidate(); 14065 return _Animation2.prototype.invalidate.call(this); 14066 }; 14067 _proto3.resetTo = function resetTo(property, value, start2, startIsRelative) { 14068 _tickerActive || _ticker.wake(); 14069 this._ts || this.play(); 14070 var time = Math.min(this._dur, (this._dp._time - this._start) * this._ts), ratio; 14071 this._initted || _initTween(this, time); 14072 ratio = this._ease(time / this._dur); 14073 if (_updatePropTweens(this, property, value, start2, startIsRelative, ratio, time)) { 14074 return this.resetTo(property, value, start2, startIsRelative); 14075 } 14076 _alignPlayhead(this, 0); 14077 this.parent || _addLinkedListItem(this._dp, this, "_first", "_last", this._dp._sort ? "_start" : 0); 14078 return this.render(0); 14079 }; 14080 _proto3.kill = function kill3(targets, vars) { 14081 if (vars === void 0) { 14082 vars = "all"; 14083 } 14084 if (!targets && (!vars || vars === "all")) { 14085 this._lazy = this._pt = 0; 14086 return this.parent ? _interrupt(this) : this; 14087 } 14088 if (this.timeline) { 14089 var tDur = this.timeline.totalDuration(); 14090 this.timeline.killTweensOf(targets, vars, _overwritingTween && _overwritingTween.vars.overwrite !== true)._first || _interrupt(this); 14091 this.parent && tDur !== this.timeline.totalDuration() && _setDuration(this, this._dur * this.timeline._tDur / tDur, 0, 1); 14092 return this; 14093 } 14094 var parsedTargets = this._targets, killingTargets = targets ? toArray(targets) : parsedTargets, propTweenLookup = this._ptLookup, firstPT = this._pt, overwrittenProps, curLookup, curOverwriteProps, props, p, pt, i; 14095 if ((!vars || vars === "all") && _arraysMatch(parsedTargets, killingTargets)) { 14096 vars === "all" && (this._pt = 0); 14097 return _interrupt(this); 14098 } 14099 overwrittenProps = this._op = this._op || []; 14100 if (vars !== "all") { 14101 if (_isString(vars)) { 14102 p = {}; 14103 _forEachName(vars, function(name) { 14104 return p[name] = 1; 14105 }); 14106 vars = p; 14107 } 14108 vars = _addAliasesToVars(parsedTargets, vars); 14109 } 14110 i = parsedTargets.length; 14111 while (i--) { 14112 if (~killingTargets.indexOf(parsedTargets[i])) { 14113 curLookup = propTweenLookup[i]; 14114 if (vars === "all") { 14115 overwrittenProps[i] = vars; 14116 props = curLookup; 14117 curOverwriteProps = {}; 14118 } else { 14119 curOverwriteProps = overwrittenProps[i] = overwrittenProps[i] || {}; 14120 props = vars; 14121 } 14122 for (p in props) { 14123 pt = curLookup && curLookup[p]; 14124 if (pt) { 14125 if (!("kill" in pt.d) || pt.d.kill(p) === true) { 14126 _removeLinkedListItem(this, pt, "_pt"); 14127 } 14128 delete curLookup[p]; 14129 } 14130 if (curOverwriteProps !== "all") { 14131 curOverwriteProps[p] = 1; 14132 } 14133 } 14134 } 14135 } 14136 this._initted && !this._pt && firstPT && _interrupt(this); 14137 return this; 14138 }; 14139 Tween2.to = function to(targets, vars) { 14140 return new Tween2(targets, vars, arguments[2]); 14141 }; 14142 Tween2.from = function from(targets, vars) { 14143 return _createTweenType(1, arguments); 14144 }; 14145 Tween2.delayedCall = function delayedCall(delay, callback, params, scope) { 14146 return new Tween2(callback, 0, { 14147 immediateRender: false, 14148 lazy: false, 14149 overwrite: false, 14150 delay, 14151 onComplete: callback, 14152 onReverseComplete: callback, 14153 onCompleteParams: params, 14154 onReverseCompleteParams: params, 14155 callbackScope: scope 14156 }); 14157 }; 14158 Tween2.fromTo = function fromTo(targets, fromVars, toVars) { 14159 return _createTweenType(2, arguments); 14160 }; 14161 Tween2.set = function set(targets, vars) { 14162 vars.duration = 0; 14163 vars.repeatDelay || (vars.repeat = 0); 14164 return new Tween2(targets, vars); 14165 }; 14166 Tween2.killTweensOf = function killTweensOf(targets, props, onlyActive) { 14167 return _globalTimeline.killTweensOf(targets, props, onlyActive); 14168 }; 14169 return Tween2; 14170 }(Animation); 14171 _setDefaults(Tween.prototype, { 14172 _targets: [], 14173 _lazy: 0, 14174 _startAt: 0, 14175 _op: 0, 14176 _onInit: 0 14177 }); 14178 _forEachName("staggerTo,staggerFrom,staggerFromTo", function(name) { 14179 Tween[name] = function() { 14180 var tl = new Timeline(), params = _slice.call(arguments, 0); 14181 params.splice(name === "staggerFromTo" ? 5 : 4, 0, 0); 14182 return tl[name].apply(tl, params); 14183 }; 14184 }); 14185 var _setterPlain = function _setterPlain2(target, property, value) { 14186 return target[property] = value; 14187 }; 14188 var _setterFunc = function _setterFunc2(target, property, value) { 14189 return target[property](value); 14190 }; 14191 var _setterFuncWithParam = function _setterFuncWithParam2(target, property, value, data) { 14192 return target[property](data.fp, value); 14193 }; 14194 var _setterAttribute = function _setterAttribute2(target, property, value) { 14195 return target.setAttribute(property, value); 14196 }; 14197 var _getSetter = function _getSetter2(target, property) { 14198 return _isFunction(target[property]) ? _setterFunc : _isUndefined(target[property]) && target.setAttribute ? _setterAttribute : _setterPlain; 14199 }; 14200 var _renderPlain = function _renderPlain2(ratio, data) { 14201 return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 1e6) / 1e6, data); 14202 }; 14203 var _renderBoolean = function _renderBoolean2(ratio, data) { 14204 return data.set(data.t, data.p, !!(data.s + data.c * ratio), data); 14205 }; 14206 var _renderComplexString = function _renderComplexString2(ratio, data) { 14207 var pt = data._pt, s = ""; 14208 if (!ratio && data.b) { 14209 s = data.b; 14210 } else if (ratio === 1 && data.e) { 14211 s = data.e; 14212 } else { 14213 while (pt) { 14214 s = pt.p + (pt.m ? pt.m(pt.s + pt.c * ratio) : Math.round((pt.s + pt.c * ratio) * 1e4) / 1e4) + s; 14215 pt = pt._next; 14216 } 14217 s += data.c; 14218 } 14219 data.set(data.t, data.p, s, data); 14220 }; 14221 var _renderPropTweens = function _renderPropTweens2(ratio, data) { 14222 var pt = data._pt; 14223 while (pt) { 14224 pt.r(ratio, pt.d); 14225 pt = pt._next; 14226 } 14227 }; 14228 var _addPluginModifier = function _addPluginModifier2(modifier, tween, target, property) { 14229 var pt = this._pt, next; 14230 while (pt) { 14231 next = pt._next; 14232 pt.p === property && pt.modifier(modifier, tween, target); 14233 pt = next; 14234 } 14235 }; 14236 var _killPropTweensOf = function _killPropTweensOf2(property) { 14237 var pt = this._pt, hasNonDependentRemaining, next; 14238 while (pt) { 14239 next = pt._next; 14240 if (pt.p === property && !pt.op || pt.op === property) { 14241 _removeLinkedListItem(this, pt, "_pt"); 14242 } else if (!pt.dep) { 14243 hasNonDependentRemaining = 1; 14244 } 14245 pt = next; 14246 } 14247 return !hasNonDependentRemaining; 14248 }; 14249 var _setterWithModifier = function _setterWithModifier2(target, property, value, data) { 14250 data.mSet(target, property, data.m.call(data.tween, value, data.mt), data); 14251 }; 14252 var _sortPropTweensByPriority = function _sortPropTweensByPriority2(parent) { 14253 var pt = parent._pt, next, pt2, first, last; 14254 while (pt) { 14255 next = pt._next; 14256 pt2 = first; 14257 while (pt2 && pt2.pr > pt.pr) { 14258 pt2 = pt2._next; 14259 } 14260 if (pt._prev = pt2 ? pt2._prev : last) { 14261 pt._prev._next = pt; 14262 } else { 14263 first = pt; 14264 } 14265 if (pt._next = pt2) { 14266 pt2._prev = pt; 14267 } else { 14268 last = pt; 14269 } 14270 pt = next; 14271 } 14272 parent._pt = first; 14273 }; 14274 var PropTween = /* @__PURE__ */ function() { 14275 function PropTween2(next, target, prop, start2, change, renderer, data, setter, priority) { 14276 this.t = target; 14277 this.s = start2; 14278 this.c = change; 14279 this.p = prop; 14280 this.r = renderer || _renderPlain; 14281 this.d = data || this; 14282 this.set = setter || _setterPlain; 14283 this.pr = priority || 0; 14284 this._next = next; 14285 if (next) { 14286 next._prev = this; 14287 } 14288 } 14289 var _proto4 = PropTween2.prototype; 14290 _proto4.modifier = function modifier(func, tween, target) { 14291 this.mSet = this.mSet || this.set; 14292 this.set = _setterWithModifier; 14293 this.m = func; 14294 this.mt = target; 14295 this.tween = tween; 14296 }; 14297 return PropTween2; 14298 }(); 14299 _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) { 14300 return _reservedProps[name] = 1; 14301 }); 14302 _globals.TweenMax = _globals.TweenLite = Tween; 14303 _globals.TimelineLite = _globals.TimelineMax = Timeline; 14304 _globalTimeline = new Timeline({ 14305 sortChildren: false, 14306 defaults: _defaults, 14307 autoRemoveChildren: true, 14308 id: "root", 14309 smoothChildTiming: true 14310 }); 14311 _config.stringFilter = _colorStringFilter; 14312 var _gsap = { 14313 registerPlugin: function registerPlugin() { 14314 for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { 14315 args[_key2] = arguments[_key2]; 14316 } 14317 args.forEach(function(config3) { 14318 return _createPlugin(config3); 14319 }); 14320 }, 14321 timeline: function timeline(vars) { 14322 return new Timeline(vars); 14323 }, 14324 getTweensOf: function getTweensOf(targets, onlyActive) { 14325 return _globalTimeline.getTweensOf(targets, onlyActive); 14326 }, 14327 getProperty: function getProperty(target, property, unit, uncache) { 14328 _isString(target) && (target = toArray(target)[0]); 14329 var getter = _getCache(target || {}).get, format2 = unit ? _passThrough : _numericIfPossible; 14330 unit === "native" && (unit = ""); 14331 return !target ? target : !property ? function(property2, unit2, uncache2) { 14332 return format2((_plugins[property2] && _plugins[property2].get || getter)(target, property2, unit2, uncache2)); 14333 } : format2((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache)); 14334 }, 14335 quickSetter: function quickSetter(target, property, unit) { 14336 target = toArray(target); 14337 if (target.length > 1) { 14338 var setters = target.map(function(t) { 14339 return gsap.quickSetter(t, property, unit); 14340 }), l = setters.length; 14341 return function(value) { 14342 var i = l; 14343 while (i--) { 14344 setters[i](value); 14345 } 14346 }; 14347 } 14348 target = target[0] || {}; 14349 var Plugin = _plugins[property], cache = _getCache(target), p = cache.harness && (cache.harness.aliases || {})[property] || property, setter = Plugin ? function(value) { 14350 var p2 = new Plugin(); 14351 _quickTween._pt = 0; 14352 p2.init(target, unit ? value + unit : value, _quickTween, 0, [target]); 14353 p2.render(1, p2); 14354 _quickTween._pt && _renderPropTweens(1, _quickTween); 14355 } : cache.set(target, p); 14356 return Plugin ? setter : function(value) { 14357 return setter(target, p, unit ? value + unit : value, cache, 1); 14358 }; 14359 }, 14360 quickTo: function quickTo(target, property, vars) { 14361 var _merge22; 14362 var tween = gsap.to(target, _merge((_merge22 = {}, _merge22[property] = "+=0.1", _merge22.paused = true, _merge22), vars || {})), func = function func2(value, start2, startIsRelative) { 14363 return tween.resetTo(property, value, start2, startIsRelative); 14364 }; 14365 func.tween = tween; 14366 return func; 14367 }, 14368 isTweening: function isTweening(targets) { 14369 return _globalTimeline.getTweensOf(targets, true).length > 0; 14370 }, 14371 defaults: function defaults(value) { 14372 value && value.ease && (value.ease = _parseEase(value.ease, _defaults.ease)); 14373 return _mergeDeep(_defaults, value || {}); 14374 }, 14375 config: function config2(value) { 14376 return _mergeDeep(_config, value || {}); 14377 }, 14378 registerEffect: function registerEffect(_ref3) { 14379 var name = _ref3.name, effect4 = _ref3.effect, plugins = _ref3.plugins, defaults3 = _ref3.defaults, extendTimeline = _ref3.extendTimeline; 14380 (plugins || "").split(",").forEach(function(pluginName) { 14381 return pluginName && !_plugins[pluginName] && !_globals[pluginName] && _warn(name + " effect requires " + pluginName + " plugin."); 14382 }); 14383 _effects[name] = function(targets, vars, tl) { 14384 return effect4(toArray(targets), _setDefaults(vars || {}, defaults3), tl); 14385 }; 14386 if (extendTimeline) { 14387 Timeline.prototype[name] = function(targets, vars, position) { 14388 return this.add(_effects[name](targets, _isObject(vars) ? vars : (position = vars) && {}, this), position); 14389 }; 14390 } 14391 }, 14392 registerEase: function registerEase(name, ease) { 14393 _easeMap[name] = _parseEase(ease); 14394 }, 14395 parseEase: function parseEase(ease, defaultEase) { 14396 return arguments.length ? _parseEase(ease, defaultEase) : _easeMap; 14397 }, 14398 getById: function getById(id) { 14399 return _globalTimeline.getById(id); 14400 }, 14401 exportRoot: function exportRoot(vars, includeDelayedCalls) { 14402 if (vars === void 0) { 14403 vars = {}; 14404 } 14405 var tl = new Timeline(vars), child, next; 14406 tl.smoothChildTiming = _isNotFalse(vars.smoothChildTiming); 14407 _globalTimeline.remove(tl); 14408 tl._dp = 0; 14409 tl._time = tl._tTime = _globalTimeline._time; 14410 child = _globalTimeline._first; 14411 while (child) { 14412 next = child._next; 14413 if (includeDelayedCalls || !(!child._dur && child instanceof Tween && child.vars.onComplete === child._targets[0])) { 14414 _addToTimeline(tl, child, child._start - child._delay); 14415 } 14416 child = next; 14417 } 14418 _addToTimeline(_globalTimeline, tl, 0); 14419 return tl; 14420 }, 14421 utils: { 14422 wrap, 14423 wrapYoyo, 14424 distribute, 14425 random, 14426 snap, 14427 normalize, 14428 getUnit, 14429 clamp, 14430 splitColor, 14431 toArray, 14432 selector, 14433 mapRange, 14434 pipe, 14435 unitize, 14436 interpolate, 14437 shuffle 14438 }, 14439 install: _install, 14440 effects: _effects, 14441 ticker: _ticker, 14442 updateRoot: Timeline.updateRoot, 14443 plugins: _plugins, 14444 globalTimeline: _globalTimeline, 14445 core: { 14446 PropTween, 14447 globals: _addGlobal, 14448 Tween, 14449 Timeline, 14450 Animation, 14451 getCache: _getCache, 14452 _removeLinkedListItem, 14453 suppressOverwrites: function suppressOverwrites(value) { 14454 return _suppressOverwrites = value; 14455 } 14456 } 14457 }; 14458 _forEachName("to,from,fromTo,delayedCall,set,killTweensOf", function(name) { 14459 return _gsap[name] = Tween[name]; 14460 }); 14461 _ticker.add(Timeline.updateRoot); 14462 _quickTween = _gsap.to({}, { 14463 duration: 0 14464 }); 14465 var _getPluginPropTween = function _getPluginPropTween2(plugin, prop) { 14466 var pt = plugin._pt; 14467 while (pt && pt.p !== prop && pt.op !== prop && pt.fp !== prop) { 14468 pt = pt._next; 14469 } 14470 return pt; 14471 }; 14472 var _addModifiers = function _addModifiers2(tween, modifiers) { 14473 var targets = tween._targets, p, i, pt; 14474 for (p in modifiers) { 14475 i = targets.length; 14476 while (i--) { 14477 pt = tween._ptLookup[i][p]; 14478 if (pt && (pt = pt.d)) { 14479 if (pt._pt) { 14480 pt = _getPluginPropTween(pt, p); 14481 } 14482 pt && pt.modifier && pt.modifier(modifiers[p], tween, targets[i], p); 14483 } 14484 } 14485 } 14486 }; 14487 var _buildModifierPlugin = function _buildModifierPlugin2(name, modifier) { 14488 return { 14489 name, 14490 rawVars: 1, 14491 init: function init7(target, vars, tween) { 14492 tween._onInit = function(tween2) { 14493 var temp, p; 14494 if (_isString(vars)) { 14495 temp = {}; 14496 _forEachName(vars, function(name2) { 14497 return temp[name2] = 1; 14498 }); 14499 vars = temp; 14500 } 14501 if (modifier) { 14502 temp = {}; 14503 for (p in vars) { 14504 temp[p] = modifier(vars[p]); 14505 } 14506 vars = temp; 14507 } 14508 _addModifiers(tween2, vars); 14509 }; 14510 } 14511 }; 14512 }; 14513 var gsap = _gsap.registerPlugin({ 14514 name: "attr", 14515 init: function init(target, vars, tween, index, targets) { 14516 var p, pt; 14517 for (p in vars) { 14518 pt = this.add(target, "setAttribute", (target.getAttribute(p) || 0) + "", vars[p], index, targets, 0, 0, p); 14519 pt && (pt.op = p); 14520 this._props.push(p); 14521 } 14522 } 14523 }, { 14524 name: "endArray", 14525 init: function init2(target, value) { 14526 var i = value.length; 14527 while (i--) { 14528 this.add(target, i, target[i] || 0, value[i]); 14529 } 14530 } 14531 }, _buildModifierPlugin("roundProps", _roundModifier), _buildModifierPlugin("modifiers"), _buildModifierPlugin("snap", snap)) || _gsap; 14532 Tween.version = Timeline.version = gsap.version = "3.10.4"; 14533 _coreReady = 1; 14534 _windowExists() && _wake(); 14535 var Power0 = _easeMap.Power0; 14536 var Power1 = _easeMap.Power1; 14537 var Power2 = _easeMap.Power2; 14538 var Power3 = _easeMap.Power3; 14539 var Power4 = _easeMap.Power4; 14540 var Linear = _easeMap.Linear; 14541 var Quad = _easeMap.Quad; 14542 var Cubic = _easeMap.Cubic; 14543 var Quart = _easeMap.Quart; 14544 var Quint = _easeMap.Quint; 14545 var Strong = _easeMap.Strong; 14546 var Elastic = _easeMap.Elastic; 14547 var Back = _easeMap.Back; 14548 var SteppedEase = _easeMap.SteppedEase; 14549 var Bounce = _easeMap.Bounce; 14550 var Sine = _easeMap.Sine; 14551 var Expo = _easeMap.Expo; 14552 var Circ = _easeMap.Circ; 14553 14554
vendor: 41,712 bytes, lines 14554-15470
14554// node_modules/gsap/CSSPlugin.js 14555 var _win2; 14556 var _doc2; 14557 var _docElement; 14558 var _pluginInitted; 14559 var _tempDiv; 14560 var _tempDivStyler; 14561 var _recentSetterPlugin; 14562 var _windowExists3 = function _windowExists4() { 14563 return typeof window !== "undefined"; 14564 }; 14565 var _transformProps = {}; 14566 var _RAD2DEG = 180 / Math.PI; 14567 var _DEG2RAD = Math.PI / 180; 14568 var _atan2 = Math.atan2; 14569 var _bigNum2 = 1e8; 14570 var _capsExp = /([A-Z])/g; 14571 var _horizontalExp = /(left|right|width|margin|padding|x)/i; 14572 var _complexExp = /[\s,\(]\S/; 14573 var _propertyAliases = { 14574 autoAlpha: "opacity,visibility", 14575 scale: "scaleX,scaleY", 14576 alpha: "opacity" 14577 }; 14578 var _renderCSSProp = function _renderCSSProp2(ratio, data) { 14579 return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 1e4) / 1e4 + data.u, data); 14580 }; 14581 var _renderPropWithEnd = function _renderPropWithEnd2(ratio, data) { 14582 return data.set(data.t, data.p, ratio === 1 ? data.e : Math.round((data.s + data.c * ratio) * 1e4) / 1e4 + data.u, data); 14583 }; 14584 var _renderCSSPropWithBeginning = function _renderCSSPropWithBeginning2(ratio, data) { 14585 return data.set(data.t, data.p, ratio ? Math.round((data.s + data.c * ratio) * 1e4) / 1e4 + data.u : data.b, data); 14586 }; 14587 var _renderRoundedCSSProp = function _renderRoundedCSSProp2(ratio, data) { 14588 var value = data.s + data.c * ratio; 14589 data.set(data.t, data.p, ~~(value + (value < 0 ? -0.5 : 0.5)) + data.u, data); 14590 }; 14591 var _renderNonTweeningValue = function _renderNonTweeningValue2(ratio, data) { 14592 return data.set(data.t, data.p, ratio ? data.e : data.b, data); 14593 }; 14594 var _renderNonTweeningValueOnlyAtEnd = function _renderNonTweeningValueOnlyAtEnd2(ratio, data) { 14595 return data.set(data.t, data.p, ratio !== 1 ? data.b : data.e, data); 14596 }; 14597 var _setterCSSStyle = function _setterCSSStyle2(target, property, value) { 14598 return target.style[property] = value; 14599 }; 14600 var _setterCSSProp = function _setterCSSProp2(target, property, value) { 14601 return target.style.setProperty(property, value); 14602 }; 14603 var _setterTransform = function _setterTransform2(target, property, value) { 14604 return target._gsap[property] = value; 14605 }; 14606 var _setterScale = function _setterScale2(target, property, value) { 14607 return target._gsap.scaleX = target._gsap.scaleY = value; 14608 }; 14609 var _setterScaleWithRender = function _setterScaleWithRender2(target, property, value, data, ratio) { 14610 var cache = target._gsap; 14611 cache.scaleX = cache.scaleY = value; 14612 cache.renderTransform(ratio, cache); 14613 }; 14614 var _setterTransformWithRender = function _setterTransformWithRender2(target, property, value, data, ratio) { 14615 var cache = target._gsap; 14616 cache[property] = value; 14617 cache.renderTransform(ratio, cache); 14618 }; 14619 var _transformProp = "transform"; 14620 var _transformOriginProp = _transformProp + "Origin"; 14621 var _supports3D; 14622 var _createElement = function _createElement2(type, ns) { 14623 var e = _doc2.createElementNS ? _doc2.createElementNS((ns || "http://www.w3.org/1999/xhtml").replace(/^https/, "http"), type) : _doc2.createElement(type); 14624 return e.style ? e : _doc2.createElement(type); 14625 }; 14626 var _getComputedProperty = function _getComputedProperty2(target, property, skipPrefixFallback) { 14627 var cs = getComputedStyle(target); 14628 return cs[property] || cs.getPropertyValue(property.replace(_capsExp, "-$1").toLowerCase()) || cs.getPropertyValue(property) || !skipPrefixFallback && _getComputedProperty2(target, _checkPropPrefix(property) || property, 1) || ""; 14629 }; 14630 var _prefixes = "O,Moz,ms,Ms,Webkit".split(","); 14631 var _checkPropPrefix = function _checkPropPrefix2(property, element, preferPrefix) { 14632 var e = element || _tempDiv, s = e.style, i = 5; 14633 if (property in s && !preferPrefix) { 14634 return property; 14635 } 14636 property = property.charAt(0).toUpperCase() + property.substr(1); 14637 while (i-- && !(_prefixes[i] + property in s)) { 14638 } 14639 return i < 0 ? null : (i === 3 ? "ms" : i >= 0 ? _prefixes[i] : "") + property; 14640 }; 14641 var _initCore = function _initCore2() { 14642 if (_windowExists3() && window.document) { 14643 _win2 = window; 14644 _doc2 = _win2.document; 14645 _docElement = _doc2.documentElement; 14646 _tempDiv = _createElement("div") || { 14647 style: {} 14648 }; 14649 _tempDivStyler = _createElement("div"); 14650 _transformProp = _checkPropPrefix(_transformProp); 14651 _transformOriginProp = _transformProp + "Origin"; 14652 _tempDiv.style.cssText = "border-width:0;line-height:0;position:absolute;padding:0"; 14653 _supports3D = !!_checkPropPrefix("perspective"); 14654 _pluginInitted = 1; 14655 } 14656 }; 14657 var _getBBoxHack = function _getBBoxHack2(swapIfPossible) { 14658 var svg = _createElement("svg", this.ownerSVGElement && this.ownerSVGElement.getAttribute("xmlns") || "http://www.w3.org/2000/svg"), oldParent = this.parentNode, oldSibling = this.nextSibling, oldCSS = this.style.cssText, bbox; 14659 _docElement.appendChild(svg); 14660 svg.appendChild(this); 14661 this.style.display = "block"; 14662 if (swapIfPossible) { 14663 try { 14664 bbox = this.getBBox(); 14665 this._gsapBBox = this.getBBox; 14666 this.getBBox = _getBBoxHack2; 14667 } catch (e) { 14668 } 14669 } else if (this._gsapBBox) { 14670 bbox = this._gsapBBox(); 14671 } 14672 if (oldParent) { 14673 if (oldSibling) { 14674 oldParent.insertBefore(this, oldSibling); 14675 } else { 14676 oldParent.appendChild(this); 14677 } 14678 } 14679 _docElement.removeChild(svg); 14680 this.style.cssText = oldCSS; 14681 return bbox; 14682 }; 14683 var _getAttributeFallbacks = function _getAttributeFallbacks2(target, attributesArray) { 14684 var i = attributesArray.length; 14685 while (i--) { 14686 if (target.hasAttribute(attributesArray[i])) { 14687 return target.getAttribute(attributesArray[i]); 14688 } 14689 } 14690 }; 14691 var _getBBox = function _getBBox2(target) { 14692 var bounds; 14693 try { 14694 bounds = target.getBBox(); 14695 } catch (error) { 14696 bounds = _getBBoxHack.call(target, true); 14697 } 14698 bounds && (bounds.width || bounds.height) || target.getBBox === _getBBoxHack || (bounds = _getBBoxHack.call(target, true)); 14699 return bounds && !bounds.width && !bounds.x && !bounds.y ? { 14700 x: +_getAttributeFallbacks(target, ["x", "cx", "x1"]) || 0, 14701 y: +_getAttributeFallbacks(target, ["y", "cy", "y1"]) || 0, 14702 width: 0, 14703 height: 0 14704 } : bounds; 14705 }; 14706 var _isSVG = function _isSVG2(e) { 14707 return !!(e.getCTM && (!e.parentNode || e.ownerSVGElement) && _getBBox(e)); 14708 }; 14709 var _removeProperty = function _removeProperty2(target, property) { 14710 if (property) { 14711 var style = target.style; 14712 if (property in _transformProps && property !== _transformOriginProp) { 14713 property = _transformProp; 14714 } 14715 if (style.removeProperty) { 14716 if (property.substr(0, 2) === "ms" || property.substr(0, 6) === "webkit") { 14717 property = "-" + property; 14718 } 14719 style.removeProperty(property.replace(_capsExp, "-$1").toLowerCase()); 14720 } else { 14721 style.removeAttribute(property); 14722 } 14723 } 14724 }; 14725 var _addNonTweeningPT = function _addNonTweeningPT2(plugin, target, property, beginning, end2, onlySetAtEnd) { 14726 var pt = new PropTween(plugin._pt, target, property, 0, 1, onlySetAtEnd ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue); 14727 plugin._pt = pt; 14728 pt.b = beginning; 14729 pt.e = end2; 14730 plugin._props.push(property); 14731 return pt; 14732 }; 14733 var _nonConvertibleUnits = { 14734 deg: 1, 14735 rad: 1, 14736 turn: 1 14737 }; 14738 var _convertToUnit = function _convertToUnit2(target, property, value, unit) { 14739 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; 14740 if (unit === curUnit || !curValue || _nonConvertibleUnits[unit] || _nonConvertibleUnits[curUnit]) { 14741 return curValue; 14742 } 14743 curUnit !== "px" && !toPixels && (curValue = _convertToUnit2(target, property, value, "px")); 14744 isSVG = target.getCTM && _isSVG(target); 14745 if ((toPercent || curUnit === "%") && (_transformProps[property] || ~property.indexOf("adius"))) { 14746 px = isSVG ? target.getBBox()[horizontal ? "width" : "height"] : target[measureProperty]; 14747 return _round(toPercent ? curValue / px * amount : curValue / 100 * px); 14748 } 14749 style[horizontal ? "width" : "height"] = amount + (toPixels ? curUnit : unit); 14750 parent = ~property.indexOf("adius") || unit === "em" && target.appendChild && !isRootSVG ? target : target.parentNode; 14751 if (isSVG) { 14752 parent = (target.ownerSVGElement || {}).parentNode; 14753 } 14754 if (!parent || parent === _doc2 || !parent.appendChild) { 14755 parent = _doc2.body; 14756 } 14757 cache = parent._gsap; 14758 if (cache && toPercent && cache.width && horizontal && cache.time === _ticker.time) { 14759 return _round(curValue / cache.width * amount); 14760 } else { 14761 (toPercent || curUnit === "%") && (style.position = _getComputedProperty(target, "position")); 14762 parent === target && (style.position = "static"); 14763 parent.appendChild(_tempDiv); 14764 px = _tempDiv[measureProperty]; 14765 parent.removeChild(_tempDiv); 14766 style.position = "absolute"; 14767 if (horizontal && toPercent) { 14768 cache = _getCache(parent); 14769 cache.time = _ticker.time; 14770 cache.width = parent[measureProperty]; 14771 } 14772 } 14773 return _round(toPixels ? px * curValue / amount : px && curValue ? amount / px * curValue : 0); 14774 }; 14775 var _get = function _get2(target, property, unit, uncache) { 14776 var value; 14777 _pluginInitted || _initCore(); 14778 if (property in _propertyAliases && property !== "transform") { 14779 property = _propertyAliases[property]; 14780 if (~property.indexOf(",")) { 14781 property = property.split(",")[0]; 14782 } 14783 } 14784 if (_transformProps[property] && property !== "transform") { 14785 value = _parseTransform(target, uncache); 14786 value = property !== "transformOrigin" ? value[property] : value.svg ? value.origin : _firstTwoOnly(_getComputedProperty(target, _transformOriginProp)) + " " + value.zOrigin + "px"; 14787 } else { 14788 value = target.style[property]; 14789 if (!value || value === "auto" || uncache || ~(value + "").indexOf("calc(")) { 14790 value = _specialProps[property] && _specialProps[property](target, property, unit) || _getComputedProperty(target, property) || _getProperty(target, property) || (property === "opacity" ? 1 : 0); 14791 } 14792 } 14793 return unit && !~(value + "").trim().indexOf(" ") ? _convertToUnit(target, property, value, unit) + unit : value; 14794 }; 14795 var _tweenComplexCSSString = function _tweenComplexCSSString2(target, prop, start2, end2) { 14796 if (!start2 || start2 === "none") { 14797 var p = _checkPropPrefix(prop, target, 1), s = p && _getComputedProperty(target, p, 1); 14798 if (s && s !== start2) { 14799 prop = p; 14800 start2 = s; 14801 } else if (prop === "borderColor") { 14802 start2 = _getComputedProperty(target, "borderTopColor"); 14803 } 14804 } 14805 var pt = new PropTween(this._pt, target.style, prop, 0, 1, _renderComplexString), index = 0, matchIndex = 0, a, result, startValues, startNum, color, startValue, endValue, endNum, chunk, endUnit, startUnit, endValues; 14806 pt.b = start2; 14807 pt.e = end2; 14808 start2 += ""; 14809 end2 += ""; 14810 if (end2 === "auto") { 14811 target.style[prop] = end2; 14812 end2 = _getComputedProperty(target, prop) || end2; 14813 target.style[prop] = start2; 14814 } 14815 a = [start2, end2]; 14816 _colorStringFilter(a); 14817 start2 = a[0]; 14818 end2 = a[1]; 14819 startValues = start2.match(_numWithUnitExp) || []; 14820 endValues = end2.match(_numWithUnitExp) || []; 14821 if (endValues.length) { 14822 while (result = _numWithUnitExp.exec(end2)) { 14823 endValue = result[0]; 14824 chunk = end2.substring(index, result.index); 14825 if (color) { 14826 color = (color + 1) % 5; 14827 } else if (chunk.substr(-5) === "rgba(" || chunk.substr(-5) === "hsla(") { 14828 color = 1; 14829 } 14830 if (endValue !== (startValue = startValues[matchIndex++] || "")) { 14831 startNum = parseFloat(startValue) || 0; 14832 startUnit = startValue.substr((startNum + "").length); 14833 endValue.charAt(1) === "=" && (endValue = _parseRelative(startNum, endValue) + startUnit); 14834 endNum = parseFloat(endValue); 14835 endUnit = endValue.substr((endNum + "").length); 14836 index = _numWithUnitExp.lastIndex - endUnit.length; 14837 if (!endUnit) { 14838 endUnit = endUnit || _config.units[prop] || startUnit; 14839 if (index === end2.length) { 14840 end2 += endUnit; 14841 pt.e += endUnit; 14842 } 14843 } 14844 if (startUnit !== endUnit) { 14845 startNum = _convertToUnit(target, prop, startValue, endUnit) || 0; 14846 } 14847 pt._pt = { 14848 _next: pt._pt, 14849 p: chunk || matchIndex === 1 ? chunk : ",", 14850 s: startNum, 14851 c: endNum - startNum, 14852 m: color && color < 4 || prop === "zIndex" ? Math.round : 0 14853 }; 14854 } 14855 } 14856 pt.c = index < end2.length ? end2.substring(index, end2.length) : ""; 14857 } else { 14858 pt.r = prop === "display" && end2 === "none" ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue; 14859 } 14860 _relExp.test(end2) && (pt.e = 0); 14861 this._pt = pt; 14862 return pt; 14863 }; 14864 var _keywordToPercent = { 14865 top: "0%", 14866 bottom: "100%", 14867 left: "0%", 14868 right: "100%", 14869 center: "50%" 14870 }; 14871 var _convertKeywordsToPercentages = function _convertKeywordsToPercentages2(value) { 14872 var split2 = value.split(" "), x = split2[0], y = split2[1] || "50%"; 14873 if (x === "top" || x === "bottom" || y === "left" || y === "right") { 14874 value = x; 14875 x = y; 14876 y = value; 14877 } 14878 split2[0] = _keywordToPercent[x] || x; 14879 split2[1] = _keywordToPercent[y] || y; 14880 return split2.join(" "); 14881 }; 14882 var _renderClearProps = function _renderClearProps2(ratio, data) { 14883 if (data.tween && data.tween._time === data.tween._dur) { 14884 var target = data.t, style = target.style, props = data.u, cache = target._gsap, prop, clearTransforms, i; 14885 if (props === "all" || props === true) { 14886 style.cssText = ""; 14887 clearTransforms = 1; 14888 } else { 14889 props = props.split(","); 14890 i = props.length; 14891 while (--i > -1) { 14892 prop = props[i]; 14893 if (_transformProps[prop]) { 14894 clearTransforms = 1; 14895 prop = prop === "transformOrigin" ? _transformOriginProp : _transformProp; 14896 } 14897 _removeProperty(target, prop); 14898 } 14899 } 14900 if (clearTransforms) { 14901 _removeProperty(target, _transformProp); 14902 if (cache) { 14903 cache.svg && target.removeAttribute("transform"); 14904 _parseTransform(target, 1); 14905 cache.uncache = 1; 14906 } 14907 } 14908 } 14909 }; 14910 var _specialProps = { 14911 clearProps: function clearProps(plugin, target, property, endValue, tween) { 14912 if (tween.data !== "isFromStart") { 14913 var pt = plugin._pt = new PropTween(plugin._pt, target, property, 0, 0, _renderClearProps); 14914 pt.u = endValue; 14915 pt.pr = -10; 14916 pt.tween = tween; 14917 plugin._props.push(property); 14918 return 1; 14919 } 14920 } 14921 }; 14922 var _identity2DMatrix = [1, 0, 0, 1, 0, 0]; 14923 var _rotationalProperties = {}; 14924 var _isNullTransform = function _isNullTransform2(value) { 14925 return value === "matrix(1, 0, 0, 1, 0, 0)" || value === "none" || !value; 14926 }; 14927 var _getComputedTransformMatrixAsArray = function _getComputedTransformMatrixAsArray2(target) { 14928 var matrixString = _getComputedProperty(target, _transformProp); 14929 return _isNullTransform(matrixString) ? _identity2DMatrix : matrixString.substr(7).match(_numExp).map(_round); 14930 }; 14931 var _getMatrix = function _getMatrix2(target, force2D) { 14932 var cache = target._gsap || _getCache(target), style = target.style, matrix = _getComputedTransformMatrixAsArray(target), parent, nextSibling, temp, addedToDOM; 14933 if (cache.svg && target.getAttribute("transform")) { 14934 temp = target.transform.baseVal.consolidate().matrix; 14935 matrix = [temp.a, temp.b, temp.c, temp.d, temp.e, temp.f]; 14936 return matrix.join(",") === "1,0,0,1,0,0" ? _identity2DMatrix : matrix; 14937 } else if (matrix === _identity2DMatrix && !target.offsetParent && target !== _docElement && !cache.svg) { 14938 temp = style.display; 14939 style.display = "block"; 14940 parent = target.parentNode; 14941 if (!parent || !target.offsetParent) { 14942 addedToDOM = 1; 14943 nextSibling = target.nextSibling; 14944 _docElement.appendChild(target); 14945 } 14946 matrix = _getComputedTransformMatrixAsArray(target); 14947 temp ? style.display = temp : _removeProperty(target, "display"); 14948 if (addedToDOM) { 14949 nextSibling ? parent.insertBefore(target, nextSibling) : parent ? parent.appendChild(target) : _docElement.removeChild(target); 14950 } 14951 } 14952 return force2D && matrix.length > 6 ? [matrix[0], matrix[1], matrix[4], matrix[5], matrix[12], matrix[13]] : matrix; 14953 }; 14954 var _applySVGOrigin = function _applySVGOrigin2(target, origin, originIsAbsolute, smooth, matrixArray, pluginToAddPropTweensTo) { 14955 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, a = matrix[0], b = matrix[1], c = matrix[2], d = matrix[3], tx = matrix[4], ty = matrix[5], originSplit = origin.split(" "), xOrigin = parseFloat(originSplit[0]) || 0, yOrigin = parseFloat(originSplit[1]) || 0, bounds, determinant, x, y; 14956 if (!originIsAbsolute) { 14957 bounds = _getBBox(target); 14958 xOrigin = bounds.x + (~originSplit[0].indexOf("%") ? xOrigin / 100 * bounds.width : xOrigin); 14959 yOrigin = bounds.y + (~(originSplit[1] || originSplit[0]).indexOf("%") ? yOrigin / 100 * bounds.height : yOrigin); 14960 } else if (matrix !== _identity2DMatrix && (determinant = a * d - b * c)) { 14961 x = xOrigin * (d / determinant) + yOrigin * (-c / determinant) + (c * ty - d * tx) / determinant; 14962 y = xOrigin * (-b / determinant) + yOrigin * (a / determinant) - (a * ty - b * tx) / determinant; 14963 xOrigin = x; 14964 yOrigin = y; 14965 } 14966 if (smooth || smooth !== false && cache.smooth) { 14967 tx = xOrigin - xOriginOld; 14968 ty = yOrigin - yOriginOld; 14969 cache.xOffset = xOffsetOld + (tx * a + ty * c) - tx; 14970 cache.yOffset = yOffsetOld + (tx * b + ty * d) - ty; 14971 } else { 14972 cache.xOffset = cache.yOffset = 0; 14973 } 14974 cache.xOrigin = xOrigin; 14975 cache.yOrigin = yOrigin; 14976 cache.smooth = !!smooth; 14977 cache.origin = origin; 14978 cache.originIsAbsolute = !!originIsAbsolute; 14979 target.style[_transformOriginProp] = "0px 0px"; 14980 if (pluginToAddPropTweensTo) { 14981 _addNonTweeningPT(pluginToAddPropTweensTo, cache, "xOrigin", xOriginOld, xOrigin); 14982 _addNonTweeningPT(pluginToAddPropTweensTo, cache, "yOrigin", yOriginOld, yOrigin); 14983 _addNonTweeningPT(pluginToAddPropTweensTo, cache, "xOffset", xOffsetOld, cache.xOffset); 14984 _addNonTweeningPT(pluginToAddPropTweensTo, cache, "yOffset", yOffsetOld, cache.yOffset); 14985 } 14986 target.setAttribute("data-svg-origin", xOrigin + " " + yOrigin); 14987 }; 14988 var _parseTransform = function _parseTransform2(target, uncache) { 14989 var cache = target._gsap || new GSCache(target); 14990 if ("x" in cache && !uncache && !cache.uncache) { 14991 return cache; 14992 } 14993 var style = target.style, invertedScaleX = cache.scaleX < 0, px = "px", deg = "deg", origin = _getComputedProperty(target, _transformOriginProp) || "0", x, y, z, scaleX, scaleY, rotation, rotationX, rotationY, skewX, skewY, perspective, xOrigin, yOrigin, matrix, angle, cos, sin, a, b, c, d, a12, a22, t1, t2, t3, a13, a23, a33, a42, a43, a32; 14994 x = y = z = rotation = rotationX = rotationY = skewX = skewY = perspective = 0; 14995 scaleX = scaleY = 1; 14996 cache.svg = !!(target.getCTM && _isSVG(target)); 14997 matrix = _getMatrix(target, cache.svg); 14998 if (cache.svg) { 14999 t1 = (!cache.uncache || origin === "0px 0px") && !uncache && target.getAttribute("data-svg-origin"); 15000 _applySVGOrigin(target, t1 || origin, !!t1 || cache.originIsAbsolute, cache.smooth !== false, matrix); 15001 } 15002 xOrigin = cache.xOrigin || 0; 15003 yOrigin = cache.yOrigin || 0; 15004 if (matrix !== _identity2DMatrix) { 15005 a = matrix[0]; 15006 b = matrix[1]; 15007 c = matrix[2]; 15008 d = matrix[3]; 15009 x = a12 = matrix[4]; 15010 y = a22 = matrix[5]; 15011 if (matrix.length === 6) { 15012 scaleX = Math.sqrt(a * a + b * b); 15013 scaleY = Math.sqrt(d * d + c * c); 15014 rotation = a || b ? _atan2(b, a) * _RAD2DEG : 0; 15015 skewX = c || d ? _atan2(c, d) * _RAD2DEG + rotation : 0; 15016 skewX && (scaleY *= Math.abs(Math.cos(skewX * _DEG2RAD))); 15017 if (cache.svg) { 15018 x -= xOrigin - (xOrigin * a + yOrigin * c); 15019 y -= yOrigin - (xOrigin * b + yOrigin * d); 15020 } 15021 } else { 15022 a32 = matrix[6]; 15023 a42 = matrix[7]; 15024 a13 = matrix[8]; 15025 a23 = matrix[9]; 15026 a33 = matrix[10]; 15027 a43 = matrix[11]; 15028 x = matrix[12]; 15029 y = matrix[13]; 15030 z = matrix[14]; 15031 angle = _atan2(a32, a33); 15032 rotationX = angle * _RAD2DEG; 15033 if (angle) { 15034 cos = Math.cos(-angle); 15035 sin = Math.sin(-angle); 15036 t1 = a12 * cos + a13 * sin; 15037 t2 = a22 * cos + a23 * sin; 15038 t3 = a32 * cos + a33 * sin; 15039 a13 = a12 * -sin + a13 * cos; 15040 a23 = a22 * -sin + a23 * cos; 15041 a33 = a32 * -sin + a33 * cos; 15042 a43 = a42 * -sin + a43 * cos; 15043 a12 = t1; 15044 a22 = t2; 15045 a32 = t3; 15046 } 15047 angle = _atan2(-c, a33); 15048 rotationY = angle * _RAD2DEG; 15049 if (angle) { 15050 cos = Math.cos(-angle); 15051 sin = Math.sin(-angle); 15052 t1 = a * cos - a13 * sin; 15053 t2 = b * cos - a23 * sin; 15054 t3 = c * cos - a33 * sin; 15055 a43 = d * sin + a43 * cos; 15056 a = t1; 15057 b = t2; 15058 c = t3; 15059 } 15060 angle = _atan2(b, a); 15061 rotation = angle * _RAD2DEG; 15062 if (angle) { 15063 cos = Math.cos(angle); 15064 sin = Math.sin(angle); 15065 t1 = a * cos + b * sin; 15066 t2 = a12 * cos + a22 * sin; 15067 b = b * cos - a * sin; 15068 a22 = a22 * cos - a12 * sin; 15069 a = t1; 15070 a12 = t2; 15071 } 15072 if (rotationX && Math.abs(rotationX) + Math.abs(rotation) > 359.9) { 15073 rotationX = rotation = 0; 15074 rotationY = 180 - rotationY; 15075 } 15076 scaleX = _round(Math.sqrt(a * a + b * b + c * c)); 15077 scaleY = _round(Math.sqrt(a22 * a22 + a32 * a32)); 15078 angle = _atan2(a12, a22); 15079 skewX = Math.abs(angle) > 2e-4 ? angle * _RAD2DEG : 0; 15080 perspective = a43 ? 1 / (a43 < 0 ? -a43 : a43) : 0; 15081 } 15082 if (cache.svg) { 15083 t1 = target.getAttribute("transform"); 15084 cache.forceCSS = target.setAttribute("transform", "") || !_isNullTransform(_getComputedProperty(target, _transformProp)); 15085 t1 && target.setAttribute("transform", t1); 15086 } 15087 } 15088 if (Math.abs(skewX) > 90 && Math.abs(skewX) < 270) { 15089 if (invertedScaleX) { 15090 scaleX *= -1; 15091 skewX += rotation <= 0 ? 180 : -180; 15092 rotation += rotation <= 0 ? 180 : -180; 15093 } else { 15094 scaleY *= -1; 15095 skewX += skewX <= 0 ? 180 : -180; 15096 } 15097 } 15098 uncache = uncache || cache.uncache; 15099 cache.x = x - ((cache.xPercent = x && (!uncache && cache.xPercent || (Math.round(target.offsetWidth / 2) === Math.round(-x) ? -50 : 0))) ? target.offsetWidth * cache.xPercent / 100 : 0) + px; 15100 cache.y = y - ((cache.yPercent = y && (!uncache && cache.yPercent || (Math.round(target.offsetHeight / 2) === Math.round(-y) ? -50 : 0))) ? target.offsetHeight * cache.yPercent / 100 : 0) + px; 15101 cache.z = z + px; 15102 cache.scaleX = _round(scaleX); 15103 cache.scaleY = _round(scaleY); 15104 cache.rotation = _round(rotation) + deg; 15105 cache.rotationX = _round(rotationX) + deg; 15106 cache.rotationY = _round(rotationY) + deg; 15107 cache.skewX = skewX + deg; 15108 cache.skewY = skewY + deg; 15109 cache.transformPerspective = perspective + px; 15110 if (cache.zOrigin = parseFloat(origin.split(" ")[2]) || 0) { 15111 style[_transformOriginProp] = _firstTwoOnly(origin); 15112 } 15113 cache.xOffset = cache.yOffset = 0; 15114 cache.force3D = _config.force3D; 15115 cache.renderTransform = cache.svg ? _renderSVGTransforms : _supports3D ? _renderCSSTransforms : _renderNon3DTransforms; 15116 cache.uncache = 0; 15117 return cache; 15118 }; 15119 var _firstTwoOnly = function _firstTwoOnly2(value) { 15120 return (value = value.split(" "))[0] + " " + value[1]; 15121 }; 15122 var _addPxTranslate = function _addPxTranslate2(target, start2, value) { 15123 var unit = getUnit(start2); 15124 return _round(parseFloat(start2) + parseFloat(_convertToUnit(target, "x", value + "px", unit))) + unit; 15125 }; 15126 var _renderNon3DTransforms = function _renderNon3DTransforms2(ratio, cache) { 15127 cache.z = "0px"; 15128 cache.rotationY = cache.rotationX = "0deg"; 15129 cache.force3D = 0; 15130 _renderCSSTransforms(ratio, cache); 15131 }; 15132 var _zeroDeg = "0deg"; 15133 var _zeroPx = "0px"; 15134 var _endParenthesis = ") "; 15135 var _renderCSSTransforms = function _renderCSSTransforms2(ratio, cache) { 15136 var _ref = cache || this, xPercent = _ref.xPercent, yPercent = _ref.yPercent, x = _ref.x, y = _ref.y, z = _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; 15137 if (zOrigin && (rotationX !== _zeroDeg || rotationY !== _zeroDeg)) { 15138 var angle = parseFloat(rotationY) * _DEG2RAD, a13 = Math.sin(angle), a33 = Math.cos(angle), cos; 15139 angle = parseFloat(rotationX) * _DEG2RAD; 15140 cos = Math.cos(angle); 15141 x = _addPxTranslate(target, x, a13 * cos * -zOrigin); 15142 y = _addPxTranslate(target, y, -Math.sin(angle) * -zOrigin); 15143 z = _addPxTranslate(target, z, a33 * cos * -zOrigin + zOrigin); 15144 } 15145 if (transformPerspective !== _zeroPx) { 15146 transforms += "perspective(" + transformPerspective + _endParenthesis; 15147 } 15148 if (xPercent || yPercent) { 15149 transforms += "translate(" + xPercent + "%, " + yPercent + "%) "; 15150 } 15151 if (use3D || x !== _zeroPx || y !== _zeroPx || z !== _zeroPx) { 15152 transforms += z !== _zeroPx || use3D ? "translate3d(" + x + ", " + y + ", " + z + ") " : "translate(" + x + ", " + y + _endParenthesis; 15153 } 15154 if (rotation !== _zeroDeg) { 15155 transforms += "rotate(" + rotation + _endParenthesis; 15156 } 15157 if (rotationY !== _zeroDeg) { 15158 transforms += "rotateY(" + rotationY + _endParenthesis; 15159 } 15160 if (rotationX !== _zeroDeg) { 15161 transforms += "rotateX(" + rotationX + _endParenthesis; 15162 } 15163 if (skewX !== _zeroDeg || skewY !== _zeroDeg) { 15164 transforms += "skew(" + skewX + ", " + skewY + _endParenthesis; 15165 } 15166 if (scaleX !== 1 || scaleY !== 1) { 15167 transforms += "scale(" + scaleX + ", " + scaleY + _endParenthesis; 15168 } 15169 target.style[_transformProp] = transforms || "translate(0, 0)"; 15170 }; 15171 var _renderSVGTransforms = function _renderSVGTransforms2(ratio, cache) { 15172 var _ref2 = cache || this, xPercent = _ref2.xPercent, yPercent = _ref2.yPercent, x = _ref2.x, y = _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(x), ty = parseFloat(y), a11, a21, a12, a22, temp; 15173 rotation = parseFloat(rotation); 15174 skewX = parseFloat(skewX); 15175 skewY = parseFloat(skewY); 15176 if (skewY) { 15177 skewY = parseFloat(skewY); 15178 skewX += skewY; 15179 rotation += skewY; 15180 } 15181 if (rotation || skewX) { 15182 rotation *= _DEG2RAD; 15183 skewX *= _DEG2RAD; 15184 a11 = Math.cos(rotation) * scaleX; 15185 a21 = Math.sin(rotation) * scaleX; 15186 a12 = Math.sin(rotation - skewX) * -scaleY; 15187 a22 = Math.cos(rotation - skewX) * scaleY; 15188 if (skewX) { 15189 skewY *= _DEG2RAD; 15190 temp = Math.tan(skewX - skewY); 15191 temp = Math.sqrt(1 + temp * temp); 15192 a12 *= temp; 15193 a22 *= temp; 15194 if (skewY) { 15195 temp = Math.tan(skewY); 15196 temp = Math.sqrt(1 + temp * temp); 15197 a11 *= temp; 15198 a21 *= temp; 15199 } 15200 } 15201 a11 = _round(a11); 15202 a21 = _round(a21); 15203 a12 = _round(a12); 15204 a22 = _round(a22); 15205 } else { 15206 a11 = scaleX; 15207 a22 = scaleY; 15208 a21 = a12 = 0; 15209 } 15210 if (tx && !~(x + "").indexOf("px") || ty && !~(y + "").indexOf("px")) { 15211 tx = _convertToUnit(target, "x", x, "px"); 15212 ty = _convertToUnit(target, "y", y, "px"); 15213 } 15214 if (xOrigin || yOrigin || xOffset || yOffset) { 15215 tx = _round(tx + xOrigin - (xOrigin * a11 + yOrigin * a12) + xOffset); 15216 ty = _round(ty + yOrigin - (xOrigin * a21 + yOrigin * a22) + yOffset); 15217 } 15218 if (xPercent || yPercent) { 15219 temp = target.getBBox(); 15220 tx = _round(tx + xPercent / 100 * temp.width); 15221 ty = _round(ty + yPercent / 100 * temp.height); 15222 } 15223 temp = "matrix(" + a11 + "," + a21 + "," + a12 + "," + a22 + "," + tx + "," + ty + ")"; 15224 target.setAttribute("transform", temp); 15225 forceCSS && (target.style[_transformProp] = temp); 15226 }; 15227 var _addRotationalPropTween = function _addRotationalPropTween2(plugin, target, property, startNum, endValue) { 15228 var cap = 360, isString2 = _isString(endValue), endNum = parseFloat(endValue) * (isString2 && ~endValue.indexOf("rad") ? _RAD2DEG : 1), change = endNum - startNum, finalValue = startNum + change + "deg", direction, pt; 15229 if (isString2) { 15230 direction = endValue.split("_")[1]; 15231 if (direction === "short") { 15232 change %= cap; 15233 if (change !== change % (cap / 2)) { 15234 change += change < 0 ? cap : -cap; 15235 } 15236 } 15237 if (direction === "cw" && change < 0) { 15238 change = (change + cap * _bigNum2) % cap - ~~(change / cap) * cap; 15239 } else if (direction === "ccw" && change > 0) { 15240 change = (change - cap * _bigNum2) % cap - ~~(change / cap) * cap; 15241 } 15242 } 15243 plugin._pt = pt = new PropTween(plugin._pt, target, property, startNum, change, _renderPropWithEnd); 15244 pt.e = finalValue; 15245 pt.u = "deg"; 15246 plugin._props.push(property); 15247 return pt; 15248 }; 15249 var _assign = function _assign2(target, source) { 15250 for (var p in source) { 15251 target[p] = source[p]; 15252 } 15253 return target; 15254 }; 15255 var _addRawTransformPTs = function _addRawTransformPTs2(plugin, transforms, target) { 15256 var startCache = _assign({}, target._gsap), exclude = "perspective,force3D,transformOrigin,svgOrigin", style = target.style, endCache, p, startValue, endValue, startNum, endNum, startUnit, endUnit; 15257 if (startCache.svg) { 15258 startValue = target.getAttribute("transform"); 15259 target.setAttribute("transform", ""); 15260 style[_transformProp] = transforms; 15261 endCache = _parseTransform(target, 1); 15262 _removeProperty(target, _transformProp); 15263 target.setAttribute("transform", startValue); 15264 } else { 15265 startValue = getComputedStyle(target)[_transformProp]; 15266 style[_transformProp] = transforms; 15267 endCache = _parseTransform(target, 1); 15268 style[_transformProp] = startValue; 15269 } 15270 for (p in _transformProps) { 15271 startValue = startCache[p]; 15272 endValue = endCache[p]; 15273 if (startValue !== endValue && exclude.indexOf(p) < 0) { 15274 startUnit = getUnit(startValue); 15275 endUnit = getUnit(endValue); 15276 startNum = startUnit !== endUnit ? _convertToUnit(target, p, startValue, endUnit) : parseFloat(startValue); 15277 endNum = parseFloat(endValue); 15278 plugin._pt = new PropTween(plugin._pt, endCache, p, startNum, endNum - startNum, _renderCSSProp); 15279 plugin._pt.u = endUnit || 0; 15280 plugin._props.push(p); 15281 } 15282 } 15283 _assign(endCache, startCache); 15284 }; 15285 _forEachName("padding,margin,Width,Radius", function(name, index) { 15286 var t = "Top", r = "Right", b = "Bottom", l = "Left", props = (index < 3 ? [t, r, b, l] : [t + l, t + r, b + r, b + l]).map(function(side) { 15287 return index < 2 ? name + side : "border" + side + name; 15288 }); 15289 _specialProps[index > 1 ? "border" + name : name] = function(plugin, target, property, endValue, tween) { 15290 var a, vars; 15291 if (arguments.length < 4) { 15292 a = props.map(function(prop) { 15293 return _get(plugin, prop, property); 15294 }); 15295 vars = a.join(" "); 15296 return vars.split(a[0]).length === 5 ? a[0] : vars; 15297 } 15298 a = (endValue + "").split(" "); 15299 vars = {}; 15300 props.forEach(function(prop, i) { 15301 return vars[prop] = a[i] = a[i] || a[(i - 1) / 2 | 0]; 15302 }); 15303 plugin.init(target, vars, tween); 15304 }; 15305 }); 15306 var CSSPlugin = { 15307 name: "css", 15308 register: _initCore, 15309 targetTest: function targetTest(target) { 15310 return target.style && target.nodeType; 15311 }, 15312 init: function init3(target, vars, tween, index, targets) { 15313 var props = this._props, style = target.style, startAt = tween.vars.startAt, startValue, endValue, endNum, startNum, type, specialProp, p, startUnit, endUnit, relative, isTransformRelated, transformPropTween, cache, smooth, hasPriority; 15314 _pluginInitted || _initCore(); 15315 for (p in vars) { 15316 if (p === "autoRound") { 15317 continue; 15318 } 15319 endValue = vars[p]; 15320 if (_plugins[p] && _checkPlugin(p, vars, tween, index, target, targets)) { 15321 continue; 15322 } 15323 type = typeof endValue; 15324 specialProp = _specialProps[p]; 15325 if (type === "function") { 15326 endValue = endValue.call(tween, index, target, targets); 15327 type = typeof endValue; 15328 } 15329 if (type === "string" && ~endValue.indexOf("random(")) { 15330 endValue = _replaceRandom(endValue); 15331 } 15332 if (specialProp) { 15333 specialProp(this, target, p, endValue, tween) && (hasPriority = 1); 15334 } else if (p.substr(0, 2) === "--") { 15335 startValue = (getComputedStyle(target).getPropertyValue(p) + "").trim(); 15336 endValue += ""; 15337 _colorExp.lastIndex = 0; 15338 if (!_colorExp.test(startValue)) { 15339 startUnit = getUnit(startValue); 15340 endUnit = getUnit(endValue); 15341 } 15342 endUnit ? startUnit !== endUnit && (startValue = _convertToUnit(target, p, startValue, endUnit) + endUnit) : startUnit && (endValue += startUnit); 15343 this.add(style, "setProperty", startValue, endValue, index, targets, 0, 0, p); 15344 props.push(p); 15345 } else if (type !== "undefined") { 15346 if (startAt && p in startAt) { 15347 startValue = typeof startAt[p] === "function" ? startAt[p].call(tween, index, target, targets) : startAt[p]; 15348 _isString(startValue) && ~startValue.indexOf("random(") && (startValue = _replaceRandom(startValue)); 15349 getUnit(startValue + "") || (startValue += _config.units[p] || getUnit(_get(target, p)) || ""); 15350 (startValue + "").charAt(1) === "=" && (startValue = _get(target, p)); 15351 } else { 15352 startValue = _get(target, p); 15353 } 15354 startNum = parseFloat(startValue); 15355 relative = type === "string" && endValue.charAt(1) === "=" && endValue.substr(0, 2); 15356 relative && (endValue = endValue.substr(2)); 15357 endNum = parseFloat(endValue); 15358 if (p in _propertyAliases) { 15359 if (p === "autoAlpha") { 15360 if (startNum === 1 && _get(target, "visibility") === "hidden" && endNum) { 15361 startNum = 0; 15362 } 15363 _addNonTweeningPT(this, style, "visibility", startNum ? "inherit" : "hidden", endNum ? "inherit" : "hidden", !endNum); 15364 } 15365 if (p !== "scale" && p !== "transform") { 15366 p = _propertyAliases[p]; 15367 ~p.indexOf(",") && (p = p.split(",")[0]); 15368 } 15369 } 15370 isTransformRelated = p in _transformProps; 15371 if (isTransformRelated) { 15372 if (!transformPropTween) { 15373 cache = target._gsap; 15374 cache.renderTransform && !vars.parseTransform || _parseTransform(target, vars.parseTransform); 15375 smooth = vars.smoothOrigin !== false && cache.smooth; 15376 transformPropTween = this._pt = new PropTween(this._pt, style, _transformProp, 0, 1, cache.renderTransform, cache, 0, -1); 15377 transformPropTween.dep = 1; 15378 } 15379 if (p === "scale") { 15380 this._pt = new PropTween(this._pt, cache, "scaleY", cache.scaleY, (relative ? _parseRelative(cache.scaleY, relative + endNum) : endNum) - cache.scaleY || 0); 15381 props.push("scaleY", p); 15382 p += "X"; 15383 } else if (p === "transformOrigin") { 15384 endValue = _convertKeywordsToPercentages(endValue); 15385 if (cache.svg) { 15386 _applySVGOrigin(target, endValue, 0, smooth, 0, this); 15387 } else { 15388 endUnit = parseFloat(endValue.split(" ")[2]) || 0; 15389 endUnit !== cache.zOrigin && _addNonTweeningPT(this, cache, "zOrigin", cache.zOrigin, endUnit); 15390 _addNonTweeningPT(this, style, p, _firstTwoOnly(startValue), _firstTwoOnly(endValue)); 15391 } 15392 continue; 15393 } else if (p === "svgOrigin") { 15394 _applySVGOrigin(target, endValue, 1, smooth, 0, this); 15395 continue; 15396 } else if (p in _rotationalProperties) { 15397 _addRotationalPropTween(this, cache, p, startNum, relative ? _parseRelative(startNum, relative + endValue) : endValue); 15398 continue; 15399 } else if (p === "smoothOrigin") { 15400 _addNonTweeningPT(this, cache, "smooth", cache.smooth, endValue); 15401 continue; 15402 } else if (p === "force3D") { 15403 cache[p] = endValue; 15404 continue; 15405 } else if (p === "transform") { 15406 _addRawTransformPTs(this, endValue, target); 15407 continue; 15408 } 15409 } else if (!(p in style)) { 15410 p = _checkPropPrefix(p) || p; 15411 } 15412 if (isTransformRelated || (endNum || endNum === 0) && (startNum || startNum === 0) && !_complexExp.test(endValue) && p in style) { 15413 startUnit = (startValue + "").substr((startNum + "").length); 15414 endNum || (endNum = 0); 15415 endUnit = getUnit(endValue) || (p in _config.units ? _config.units[p] : startUnit); 15416 startUnit !== endUnit && (startNum = _convertToUnit(target, p, startValue, endUnit)); 15417 this._pt = new PropTween(this._pt, isTransformRelated ? cache : style, p, startNum, (relative ? _parseRelative(startNum, relative + endNum) : endNum) - startNum, !isTransformRelated && (endUnit === "px" || p === "zIndex") && vars.autoRound !== false ? _renderRoundedCSSProp : _renderCSSProp); 15418 this._pt.u = endUnit || 0; 15419 if (startUnit !== endUnit && endUnit !== "%") { 15420 this._pt.b = startValue; 15421 this._pt.r = _renderCSSPropWithBeginning; 15422 } 15423 } else if (!(p in style)) { 15424 if (p in target) { 15425 this.add(target, p, startValue || target[p], relative ? relative + endValue : endValue, index, targets); 15426 } else { 15427 _missingPlugin(p, endValue); 15428 continue; 15429 } 15430 } else { 15431 _tweenComplexCSSString.call(this, target, p, startValue, relative ? relative + endValue : endValue); 15432 } 15433 props.push(p); 15434 } 15435 } 15436 hasPriority && _sortPropTweensByPriority(this); 15437 }, 15438 get: _get, 15439 aliases: _propertyAliases, 15440 getSetter: function getSetter(target, property, plugin) { 15441 var p = _propertyAliases[property]; 15442 p && p.indexOf(",") < 0 && (property = p); 15443 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); 15444 }, 15445 core: { 15446 _removeProperty, 15447 _getMatrix 15448 } 15449 }; 15450 gsap.utils.checkPrefix = _checkPropPrefix; 15451 (function(positionAndScale, rotation, others, aliases) { 15452 var all = _forEachName(positionAndScale + "," + rotation + "," + others, function(name) { 15453 _transformProps[name] = 1; 15454 }); 15455 _forEachName(rotation, function(name) { 15456 _config.units[name] = "deg"; 15457 _rotationalProperties[name] = 1; 15458 }); 15459 _propertyAliases[all[13]] = positionAndScale + "," + rotation; 15460 _forEachName(aliases, function(name) { 15461 var split2 = name.split(":"); 15462 _propertyAliases[split2[1]] = all[split2[0]]; 15463 }); 15464 })("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"); 15465 _forEachName("x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective", function(name) { 15466 _config.units[name] = "px"; 15467 }); 15468 gsap.registerPlugin(CSSPlugin); 15469 15470
vendor: 141 bytes, lines 15470-15474
15470// node_modules/gsap/index.js 15471 var gsapWithCSS = gsap.registerPlugin(CSSPlugin) || gsap; 15472 var TweenMaxWithCSS = gsapWithCSS.core.Tween; 15473 15474
vendor: 20,772 bytes, lines 15474-15935
15474// node_modules/gsap/Observer.js 15475 function _defineProperties(target, props) { 15476 for (var i = 0; i < props.length; i++) { 15477 var descriptor = props[i]; 15478 descriptor.enumerable = descriptor.enumerable || false; 15479 descriptor.configurable = true; 15480 if ("value" in descriptor) 15481 descriptor.writable = true; 15482 Object.defineProperty(target, descriptor.key, descriptor); 15483 } 15484 } 15485 function _createClass(Constructor, protoProps, staticProps) { 15486 if (protoProps) 15487 _defineProperties(Constructor.prototype, protoProps); 15488 if (staticProps) 15489 _defineProperties(Constructor, staticProps); 15490 return Constructor; 15491 } 15492 var gsap2; 15493 var _coreInitted2; 15494 var _clamp3; 15495 var _win3; 15496 var _doc3; 15497 var _docEl; 15498 var _body; 15499 var _isTouch; 15500 var _pointerType; 15501 var ScrollTrigger; 15502 var _root; 15503 var _normalizer; 15504 var _eventTypes; 15505 var _getGSAP = function _getGSAP2() { 15506 return gsap2 || typeof window !== "undefined" && (gsap2 = window.gsap) && gsap2.registerPlugin && gsap2; 15507 }; 15508 var _startup = 1; 15509 var _observers = []; 15510 var _scrollers = []; 15511 var _proxies = []; 15512 var _getTime = Date.now; 15513 var _bridge = function _bridge2(name, value) { 15514 return value; 15515 }; 15516 var _integrate = function _integrate2() { 15517 var core = ScrollTrigger.core, data = core.bridge || {}, scrollers = core._scrollers, proxies = core._proxies; 15518 scrollers.push.apply(scrollers, _scrollers); 15519 proxies.push.apply(proxies, _proxies); 15520 _scrollers = scrollers; 15521 _proxies = proxies; 15522 _bridge = function _bridge3(name, value) { 15523 return data[name](value); 15524 }; 15525 }; 15526 var _getProxyProp = function _getProxyProp2(element, property) { 15527 return ~_proxies.indexOf(element) && _proxies[_proxies.indexOf(element) + 1][property]; 15528 }; 15529 var _isViewport = function _isViewport2(el) { 15530 return !!~_root.indexOf(el); 15531 }; 15532 var _addListener = function _addListener2(element, type, func, nonPassive, capture) { 15533 return element.addEventListener(type, func, { 15534 passive: !nonPassive, 15535 capture: !!capture 15536 }); 15537 }; 15538 var _removeListener = function _removeListener2(element, type, func, capture) { 15539 return element.removeEventListener(type, func, !!capture); 15540 }; 15541 var _scrollLeft = "scrollLeft"; 15542 var _scrollTop = "scrollTop"; 15543 var _onScroll = function _onScroll2() { 15544 return _normalizer && _normalizer.isPressed || _scrollers.cache++; 15545 }; 15546 var _scrollCacheFunc = function _scrollCacheFunc2(f, doNotCache) { 15547 var cachingFunc = function cachingFunc2(value) { 15548 if (value || value === 0) { 15549 _startup && (_win3.history.scrollRestoration = "manual"); 15550 var isNormalizing = _normalizer && _normalizer.isPressed; 15551 value = cachingFunc2.v = Math.round(value) || (_normalizer && _normalizer.iOS ? 1 : 0); 15552 f(value); 15553 cachingFunc2.cacheID = _scrollers.cache; 15554 isNormalizing && _bridge("ss", value); 15555 } else if (doNotCache || _scrollers.cache !== cachingFunc2.cacheID || _bridge("ref")) { 15556 cachingFunc2.cacheID = _scrollers.cache; 15557 cachingFunc2.v = f(); 15558 } 15559 return cachingFunc2.v + cachingFunc2.offset; 15560 }; 15561 cachingFunc.offset = 0; 15562 return f && cachingFunc; 15563 }; 15564 var _horizontal = { 15565 s: _scrollLeft, 15566 p: "left", 15567 p2: "Left", 15568 os: "right", 15569 os2: "Right", 15570 d: "width", 15571 d2: "Width", 15572 a: "x", 15573 sc: _scrollCacheFunc(function(value) { 15574 return arguments.length ? _win3.scrollTo(value, _vertical.sc()) : _win3.pageXOffset || _doc3[_scrollLeft] || _docEl[_scrollLeft] || _body[_scrollLeft] || 0; 15575 }) 15576 }; 15577 var _vertical = { 15578 s: _scrollTop, 15579 p: "top", 15580 p2: "Top", 15581 os: "bottom", 15582 os2: "Bottom", 15583 d: "height", 15584 d2: "Height", 15585 a: "y", 15586 op: _horizontal, 15587 sc: _scrollCacheFunc(function(value) { 15588 return arguments.length ? _win3.scrollTo(_horizontal.sc(), value) : _win3.pageYOffset || _doc3[_scrollTop] || _docEl[_scrollTop] || _body[_scrollTop] || 0; 15589 }) 15590 }; 15591 var _getTarget = function _getTarget2(t) { 15592 return gsap2.utils.toArray(t)[0] || (typeof t === "string" && gsap2.config().nullTargetWarn !== false ? console.warn("Element not found:", t) : null); 15593 }; 15594 var _getScrollFunc = function _getScrollFunc2(element, _ref) { 15595 var s = _ref.s, sc = _ref.sc; 15596 var i = _scrollers.indexOf(element), offset2 = sc === _vertical.sc ? 1 : 2; 15597 !~i && (i = _scrollers.push(element) - 1); 15598 return _scrollers[i + offset2] || (_scrollers[i + offset2] = _scrollCacheFunc(_getProxyProp(element, s), true) || (_isViewport(element) ? sc : _scrollCacheFunc(function(value) { 15599 return arguments.length ? element[s] = value : element[s]; 15600 }))); 15601 }; 15602 var _getVelocityProp = function _getVelocityProp2(value, minTimeRefresh, useDelta) { 15603 var v1 = value, v2 = value, t1 = _getTime(), t2 = t1, min2 = minTimeRefresh || 50, dropToZeroTime = Math.max(500, min2 * 3), update = function update2(value2, force) { 15604 var t = _getTime(); 15605 if (force || t - t1 > min2) { 15606 v2 = v1; 15607 v1 = value2; 15608 t2 = t1; 15609 t1 = t; 15610 } else if (useDelta) { 15611 v1 += value2; 15612 } else { 15613 v1 = v2 + (value2 - v2) / (t - t2) * (t1 - t2); 15614 } 15615 }, reset = function reset2() { 15616 v2 = v1 = useDelta ? 0 : v1; 15617 t2 = t1 = 0; 15618 }, getVelocity = function getVelocity2(latestValue) { 15619 var tOld = t2, vOld = v2, t = _getTime(); 15620 (latestValue || latestValue === 0) && latestValue !== v1 && update(latestValue); 15621 return t1 === t2 || t - t2 > dropToZeroTime ? 0 : (v1 + (useDelta ? vOld : -vOld)) / ((useDelta ? t : t1) - tOld) * 1e3; 15622 }; 15623 return { 15624 update, 15625 reset, 15626 getVelocity 15627 }; 15628 }; 15629 var _getEvent = function _getEvent2(e, preventDefault) { 15630 preventDefault && !e._gsapAllow && e.preventDefault(); 15631 return e.changedTouches ? e.changedTouches[0] : e; 15632 }; 15633 var _getAbsoluteMax = function _getAbsoluteMax2(a) { 15634 var max2 = Math.max.apply(Math, a), min2 = Math.min.apply(Math, a); 15635 return Math.abs(max2) >= Math.abs(min2) ? max2 : min2; 15636 }; 15637 var _setScrollTrigger = function _setScrollTrigger2() { 15638 ScrollTrigger = gsap2.core.globals().ScrollTrigger; 15639 ScrollTrigger && ScrollTrigger.core && _integrate(); 15640 }; 15641 var _initCore3 = function _initCore4(core) { 15642 gsap2 = core || _getGSAP(); 15643 if (gsap2 && typeof document !== "undefined" && document.body) { 15644 _win3 = window; 15645 _doc3 = document; 15646 _docEl = _doc3.documentElement; 15647 _body = _doc3.body; 15648 _root = [_win3, _doc3, _docEl, _body]; 15649 _clamp3 = gsap2.utils.clamp; 15650 _pointerType = "onpointerenter" in _body ? "pointer" : "mouse"; 15651 _isTouch = Observer.isTouch = _win3.matchMedia && _win3.matchMedia("(hover: none), (pointer: coarse)").matches ? 1 : "ontouchstart" in _win3 || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0 ? 2 : 0; 15652 _eventTypes = Observer.eventTypes = ("ontouchstart" in _docEl ? "touchstart,touchmove,touchcancel,touchend" : !("onpointerdown" in _docEl) ? "mousedown,mousemove,mouseup,mouseup" : "pointerdown,pointermove,pointercancel,pointerup").split(","); 15653 setTimeout(function() { 15654 return _startup = 0; 15655 }, 500); 15656 _setScrollTrigger(); 15657 _coreInitted2 = 1; 15658 } 15659 return _coreInitted2; 15660 }; 15661 _horizontal.op = _vertical; 15662 _scrollers.cache = 0; 15663 var Observer = /* @__PURE__ */ function() { 15664 function Observer2(vars) { 15665 this.init(vars); 15666 } 15667 var _proto = Observer2.prototype; 15668 _proto.init = function init7(vars) { 15669 _coreInitted2 || _initCore3(gsap2) || console.warn("Please gsap.registerPlugin(Observer)"); 15670 ScrollTrigger || _setScrollTrigger(); 15671 var tolerance = vars.tolerance, dragMinimum = vars.dragMinimum, type = vars.type, target = vars.target, lineHeight = vars.lineHeight, debounce3 = 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; 15672 this.target = target = _getTarget(target) || _docEl; 15673 this.vars = vars; 15674 ignore && (ignore = gsap2.utils.toArray(ignore)); 15675 tolerance = tolerance || 0; 15676 dragMinimum = dragMinimum || 0; 15677 wheelSpeed = wheelSpeed || 1; 15678 scrollSpeed = scrollSpeed || 1; 15679 type = type || "wheel,touch,pointer"; 15680 debounce3 = debounce3 !== false; 15681 lineHeight || (lineHeight = parseFloat(_win3.getComputedStyle(_body).lineHeight) || 22); 15682 var id, onStopDelayedCall, dragged, moved, wheeled, locked, axis, self2 = this, prevDeltaX = 0, prevDeltaY = 0, 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() { 15683 return onClickTime = _getTime(); 15684 }, _ignoreCheck = function _ignoreCheck2(e, isPointerOrTouch) { 15685 return (self2.event = e) && ignore && ~ignore.indexOf(e.target) || isPointerOrTouch && limitToTouch && e.pointerType !== "touch" || ignoreCheck && ignoreCheck(e, isPointerOrTouch); 15686 }, onStopFunc = function onStopFunc2() { 15687 self2._vx.reset(); 15688 self2._vy.reset(); 15689 onStopDelayedCall.pause(); 15690 onStop && onStop(self2); 15691 }, update = function update2() { 15692 var dx = self2.deltaX = _getAbsoluteMax(deltaX), dy = self2.deltaY = _getAbsoluteMax(deltaY), changedX = Math.abs(dx) >= tolerance, changedY = Math.abs(dy) >= tolerance; 15693 onChange && (changedX || changedY) && onChange(self2, dx, dy, deltaX, deltaY); 15694 if (changedX) { 15695 onRight && self2.deltaX > 0 && onRight(self2); 15696 onLeft && self2.deltaX < 0 && onLeft(self2); 15697 onChangeX && onChangeX(self2); 15698 onToggleX && self2.deltaX < 0 !== prevDeltaX < 0 && onToggleX(self2); 15699 prevDeltaX = self2.deltaX; 15700 deltaX[0] = deltaX[1] = deltaX[2] = 0; 15701 } 15702 if (changedY) { 15703 onDown && self2.deltaY > 0 && onDown(self2); 15704 onUp && self2.deltaY < 0 && onUp(self2); 15705 onChangeY && onChangeY(self2); 15706 onToggleY && self2.deltaY < 0 !== prevDeltaY < 0 && onToggleY(self2); 15707 prevDeltaY = self2.deltaY; 15708 deltaY[0] = deltaY[1] = deltaY[2] = 0; 15709 } 15710 if (moved || dragged) { 15711 onMove && onMove(self2); 15712 onLockAxis && locked && onLockAxis(self2); 15713 if (dragged) { 15714 onDrag(self2); 15715 dragged = false; 15716 } 15717 moved = locked = false; 15718 } 15719 if (wheeled) { 15720 onWheel(self2); 15721 wheeled = false; 15722 } 15723 id = 0; 15724 }, onDelta = function onDelta2(x, y, index) { 15725 deltaX[index] += x; 15726 deltaY[index] += y; 15727 self2._vx.update(x); 15728 self2._vy.update(y); 15729 debounce3 ? id || (id = requestAnimationFrame(update)) : update(); 15730 }, onTouchOrPointerDelta = function onTouchOrPointerDelta2(x, y) { 15731 if (axis !== "y") { 15732 deltaX[2] += x; 15733 self2._vx.update(x, true); 15734 } 15735 if (axis !== "x") { 15736 deltaY[2] += y; 15737 self2._vy.update(y, true); 15738 } 15739 if (lockAxis && !axis) { 15740 self2.axis = axis = Math.abs(x) > Math.abs(y) ? "x" : "y"; 15741 locked = true; 15742 } 15743 debounce3 ? id || (id = requestAnimationFrame(update)) : update(); 15744 }, _onDrag = function _onDrag2(e) { 15745 if (_ignoreCheck(e, 1)) { 15746 return; 15747 } 15748 e = _getEvent(e, preventDefault); 15749 var x = e.clientX, y = e.clientY, dx = x - self2.x, dy = y - self2.y, isDragging = self2.isDragging; 15750 self2.x = x; 15751 self2.y = y; 15752 if (isDragging || Math.abs(self2.startX - x) >= dragMinimum || Math.abs(self2.startY - y) >= dragMinimum) { 15753 onDrag && (dragged = true); 15754 isDragging || (self2.isDragging = true); 15755 onTouchOrPointerDelta(dx, dy); 15756 isDragging || onDragStart && onDragStart(self2); 15757 } 15758 }, _onPress = self2.onPress = function(e) { 15759 if (_ignoreCheck(e, 1)) { 15760 return; 15761 } 15762 self2.axis = axis = null; 15763 onStopDelayedCall.pause(); 15764 self2.isPressed = true; 15765 e = _getEvent(e); 15766 prevDeltaX = prevDeltaY = 0; 15767 self2.startX = self2.x = e.clientX; 15768 self2.startY = self2.y = e.clientY; 15769 self2._vx.reset(); 15770 self2._vy.reset(); 15771 _addListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, preventDefault, true); 15772 self2.deltaX = self2.deltaY = 0; 15773 onPress && onPress(self2); 15774 }, _onRelease = function _onRelease2(e) { 15775 if (_ignoreCheck(e, 1)) { 15776 return; 15777 } 15778 _removeListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, true); 15779 var wasDragging = self2.isDragging && (Math.abs(self2.x - self2.startX) > 3 || Math.abs(self2.y - self2.startY) > 3), eventData = _getEvent(e); 15780 if (!wasDragging) { 15781 self2._vx.reset(); 15782 self2._vy.reset(); 15783 if (preventDefault && allowClicks) { 15784 gsap2.delayedCall(0.08, function() { 15785 if (_getTime() - onClickTime > 300 && !e.defaultPrevented) { 15786 if (e.target.click) { 15787 e.target.click(); 15788 } else if (ownerDoc.createEvent) { 15789 var syntheticEvent = ownerDoc.createEvent("MouseEvents"); 15790 syntheticEvent.initMouseEvent("click", true, true, _win3, 1, eventData.screenX, eventData.screenY, eventData.clientX, eventData.clientY, false, false, false, false, 0, null); 15791 e.target.dispatchEvent(syntheticEvent); 15792 } 15793 } 15794 }); 15795 } 15796 } 15797 self2.isDragging = self2.isGesturing = self2.isPressed = false; 15798 onStop && !isNormalizer && onStopDelayedCall.restart(true); 15799 onDragEnd && wasDragging && onDragEnd(self2); 15800 onRelease && onRelease(self2, wasDragging); 15801 }, _onGestureStart = function _onGestureStart2(e) { 15802 return e.touches && e.touches.length > 1 && (self2.isGesturing = true) && onGestureStart(e, self2.isDragging); 15803 }, _onGestureEnd = function _onGestureEnd2() { 15804 return (self2.isGesturing = false) || onGestureEnd(self2); 15805 }, onScroll = function onScroll2(e) { 15806 if (_ignoreCheck(e)) { 15807 return; 15808 } 15809 var x = scrollFuncX(), y = scrollFuncY(); 15810 onDelta((x - scrollX) * scrollSpeed, (y - scrollY) * scrollSpeed, 1); 15811 scrollX = x; 15812 scrollY = y; 15813 onStop && onStopDelayedCall.restart(true); 15814 }, _onWheel = function _onWheel2(e) { 15815 if (_ignoreCheck(e)) { 15816 return; 15817 } 15818 e = _getEvent(e, preventDefault); 15819 onWheel && (wheeled = true); 15820 var multiplier = (e.deltaMode === 1 ? lineHeight : e.deltaMode === 2 ? _win3.innerHeight : 1) * wheelSpeed; 15821 onDelta(e.deltaX * multiplier, e.deltaY * multiplier, 0); 15822 onStop && !isNormalizer && onStopDelayedCall.restart(true); 15823 }, _onMove = function _onMove2(e) { 15824 if (_ignoreCheck(e)) { 15825 return; 15826 } 15827 var x = e.clientX, y = e.clientY, dx = x - self2.x, dy = y - self2.y; 15828 self2.x = x; 15829 self2.y = y; 15830 moved = true; 15831 (dx || dy) && onTouchOrPointerDelta(dx, dy); 15832 }, _onHover = function _onHover2(e) { 15833 self2.event = e; 15834 onHover(self2); 15835 }, _onHoverEnd = function _onHoverEnd2(e) { 15836 self2.event = e; 15837 onHoverEnd(self2); 15838 }, _onClick = function _onClick2(e) { 15839 return _ignoreCheck(e) || _getEvent(e, preventDefault) && onClick(self2); 15840 }; 15841 onStopDelayedCall = self2._dc = gsap2.delayedCall(onStopDelay || 0.25, onStopFunc).pause(); 15842 self2.deltaX = self2.deltaY = 0; 15843 self2._vx = _getVelocityProp(0, 50, true); 15844 self2._vy = _getVelocityProp(0, 50, true); 15845 self2.scrollX = scrollFuncX; 15846 self2.scrollY = scrollFuncY; 15847 self2.isDragging = self2.isGesturing = self2.isPressed = false; 15848 self2.enable = function(e) { 15849 if (!self2.isEnabled) { 15850 _addListener(isViewport ? ownerDoc : target, "scroll", _onScroll); 15851 type.indexOf("scroll") >= 0 && _addListener(isViewport ? ownerDoc : target, "scroll", onScroll, preventDefault, capture); 15852 type.indexOf("wheel") >= 0 && _addListener(target, "wheel", _onWheel, preventDefault, capture); 15853 if (type.indexOf("touch") >= 0 && _isTouch || type.indexOf("pointer") >= 0) { 15854 _addListener(target, _eventTypes[0], _onPress, preventDefault, capture); 15855 _addListener(ownerDoc, _eventTypes[2], _onRelease); 15856 _addListener(ownerDoc, _eventTypes[3], _onRelease); 15857 allowClicks && _addListener(target, "click", clickCapture, false, true); 15858 onClick && _addListener(target, "click", _onClick); 15859 onGestureStart && _addListener(ownerDoc, "gesturestart", _onGestureStart); 15860 onGestureEnd && _addListener(ownerDoc, "gestureend", _onGestureEnd); 15861 onHover && _addListener(target, _pointerType + "enter", _onHover); 15862 onHoverEnd && _addListener(target, _pointerType + "leave", _onHoverEnd); 15863 onMove && _addListener(target, _pointerType + "move", _onMove); 15864 } 15865 self2.isEnabled = true; 15866 e && e.type && _onPress(e); 15867 onEnable && onEnable(self2); 15868 } 15869 return self2; 15870 }; 15871 self2.disable = function() { 15872 if (self2.isEnabled) { 15873 _observers.filter(function(o) { 15874 return o !== self2 && _isViewport(o.target); 15875 }).length || _removeListener(isViewport ? ownerDoc : target, "scroll", _onScroll); 15876 if (self2.isPressed) { 15877 self2._vx.reset(); 15878 self2._vy.reset(); 15879 _removeListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, true); 15880 } 15881 _removeListener(isViewport ? ownerDoc : target, "scroll", onScroll, capture); 15882 _removeListener(target, "wheel", _onWheel, capture); 15883 _removeListener(target, _eventTypes[0], _onPress, capture); 15884 _removeListener(ownerDoc, _eventTypes[2], _onRelease); 15885 _removeListener(ownerDoc, _eventTypes[3], _onRelease); 15886 _removeListener(target, "click", clickCapture, true); 15887 _removeListener(target, "click", _onClick); 15888 _removeListener(ownerDoc, "gesturestart", _onGestureStart); 15889 _removeListener(ownerDoc, "gestureend", _onGestureEnd); 15890 _removeListener(target, _pointerType + "enter", _onHover); 15891 _removeListener(target, _pointerType + "leave", _onHoverEnd); 15892 _removeListener(target, _pointerType + "move", _onMove); 15893 self2.isEnabled = self2.isPressed = self2.isDragging = false; 15894 onDisable && onDisable(self2); 15895 } 15896 }; 15897 self2.kill = function() { 15898 self2.disable(); 15899 var i = _observers.indexOf(self2); 15900 i >= 0 && _observers.splice(i, 1); 15901 _normalizer === self2 && (_normalizer = 0); 15902 }; 15903 _observers.push(self2); 15904 isNormalizer && _isViewport(target) && (_normalizer = self2); 15905 self2.enable(event); 15906 }; 15907 _createClass(Observer2, [{ 15908 key: "velocityX", 15909 get: function get() { 15910 return this._vx.getVelocity(); 15911 } 15912 }, { 15913 key: "velocityY", 15914 get: function get() { 15915 return this._vy.getVelocity(); 15916 } 15917 }]); 15918 return Observer2; 15919 }(); 15920 Observer.version = "3.10.4"; 15921 Observer.create = function(vars) { 15922 return new Observer(vars); 15923 }; 15924 Observer.register = _initCore3; 15925 Observer.getAll = function() { 15926 return _observers.slice(); 15927 }; 15928 Observer.getById = function(id) { 15929 return _observers.filter(function(o) { 15930 return o.vars.id === id; 15931 })[0]; 15932 }; 15933 _getGSAP() && gsap2.registerPlugin(Observer); 15934 15935
vendor: 75,219 bytes, lines 15935-17577
15935// node_modules/gsap/ScrollTrigger.js 15936 var gsap3; 15937 var _coreInitted3; 15938 var _win4; 15939 var _doc4; 15940 var _docEl2; 15941 var _body2; 15942 var _root2; 15943 var _resizeDelay; 15944 var _toArray; 15945 var _clamp4; 15946 var _time2; 15947 var _syncInterval; 15948 var _refreshing; 15949 var _pointerIsDown; 15950 var _transformProp2; 15951 var _i; 15952 var _prevWidth; 15953 var _prevHeight; 15954 var _autoRefresh; 15955 var _sort; 15956 var _suppressOverwrites2; 15957 var _ignoreResize; 15958 var _normalizer2; 15959 var _ignoreMobileResize; 15960 var _baseScreenHeight; 15961 var _baseScreenWidth; 15962 var _fixIOSBug; 15963 var _limitCallbacks; 15964 var _startup2 = 1; 15965 var _getTime2 = Date.now; 15966 var _time1 = _getTime2(); 15967 var _lastScrollTime = 0; 15968 var _enabled = 0; 15969 var _pointerDownHandler = function _pointerDownHandler2() { 15970 return _pointerIsDown = 1; 15971 }; 15972 var _pointerUpHandler = function _pointerUpHandler2() { 15973 return _pointerIsDown = 0; 15974 }; 15975 var _passThrough3 = function _passThrough4(v) { 15976 return v; 15977 }; 15978 var _round3 = function _round4(value) { 15979 return Math.round(value * 1e5) / 1e5 || 0; 15980 }; 15981 var _windowExists5 = function _windowExists6() { 15982 return typeof window !== "undefined"; 15983 }; 15984 var _getGSAP3 = function _getGSAP4() { 15985 return gsap3 || _windowExists5() && (gsap3 = window.gsap) && gsap3.registerPlugin && gsap3; 15986 }; 15987 var _isViewport3 = function _isViewport4(e) { 15988 return !!~_root2.indexOf(e); 15989 }; 15990 var _getBoundsFunc = function _getBoundsFunc2(element) { 15991 return _getProxyProp(element, "getBoundingClientRect") || (_isViewport3(element) ? function() { 15992 _winOffsets.width = _win4.innerWidth; 15993 _winOffsets.height = _win4.innerHeight; 15994 return _winOffsets; 15995 } : function() { 15996 return _getBounds(element); 15997 }); 15998 }; 15999 var _getSizeFunc = function _getSizeFunc2(scroller, isViewport, _ref) { 16000 var d = _ref.d, d2 = _ref.d2, a = _ref.a; 16001 return (a = _getProxyProp(scroller, "getBoundingClientRect")) ? function() { 16002 return a()[d]; 16003 } : function() { 16004 return (isViewport ? _win4["inner" + d2] : scroller["client" + d2]) || 0; 16005 }; 16006 }; 16007 var _getOffsetsFunc = function _getOffsetsFunc2(element, isViewport) { 16008 return !isViewport || ~_proxies.indexOf(element) ? _getBoundsFunc(element) : function() { 16009 return _winOffsets; 16010 }; 16011 }; 16012 var _maxScroll = function _maxScroll2(element, _ref2) { 16013 var s = _ref2.s, d2 = _ref2.d2, d = _ref2.d, a = _ref2.a; 16014 return (s = "scroll" + d2) && (a = _getProxyProp(element, s)) ? a() - _getBoundsFunc(element)()[d] : _isViewport3(element) ? (_docEl2[s] || _body2[s]) - (_win4["inner" + d2] || _docEl2["client" + d2] || _body2["client" + d2]) : element[s] - element["offset" + d2]; 16015 }; 16016 var _iterateAutoRefresh = function _iterateAutoRefresh2(func, events) { 16017 for (var i = 0; i < _autoRefresh.length; i += 3) { 16018 (!events || ~events.indexOf(_autoRefresh[i + 1])) && func(_autoRefresh[i], _autoRefresh[i + 1], _autoRefresh[i + 2]); 16019 } 16020 }; 16021 var _isString3 = function _isString4(value) { 16022 return typeof value === "string"; 16023 }; 16024 var _isFunction3 = function _isFunction4(value) { 16025 return typeof value === "function"; 16026 }; 16027 var _isNumber3 = function _isNumber4(value) { 16028 return typeof value === "number"; 16029 }; 16030 var _isObject3 = function _isObject4(value) { 16031 return typeof value === "object"; 16032 }; 16033 var _callIfFunc = function _callIfFunc2(value) { 16034 return _isFunction3(value) && value(); 16035 }; 16036 var _combineFunc = function _combineFunc2(f1, f2) { 16037 return function() { 16038 var result1 = _callIfFunc(f1), result2 = _callIfFunc(f2); 16039 return function() { 16040 _callIfFunc(result1); 16041 _callIfFunc(result2); 16042 }; 16043 }; 16044 }; 16045 var _endAnimation = function _endAnimation2(animation, reversed, pause) { 16046 return animation && animation.progress(reversed ? 0 : 1) && pause && animation.pause(); 16047 }; 16048 var _callback3 = function _callback4(self2, func) { 16049 if (self2.enabled) { 16050 var result = func(self2); 16051 result && result.totalTime && (self2.callbackAnimation = result); 16052 } 16053 }; 16054 var _abs = Math.abs; 16055 var _left = "left"; 16056 var _top = "top"; 16057 var _right = "right"; 16058 var _bottom = "bottom"; 16059 var _width = "width"; 16060 var _height = "height"; 16061 var _Right = "Right"; 16062 var _Left = "Left"; 16063 var _Top = "Top"; 16064 var _Bottom = "Bottom"; 16065 var _padding = "padding"; 16066 var _margin = "margin"; 16067 var _Width = "Width"; 16068 var _Height = "Height"; 16069 var _px = "px"; 16070 var _getComputedStyle = function _getComputedStyle2(element) { 16071 return _win4.getComputedStyle(element); 16072 }; 16073 var _makePositionable = function _makePositionable2(element) { 16074 var position = _getComputedStyle(element).position; 16075 element.style.position = position === "absolute" || position === "fixed" ? position : "relative"; 16076 }; 16077 var _setDefaults3 = function _setDefaults4(obj, defaults3) { 16078 for (var p in defaults3) { 16079 p in obj || (obj[p] = defaults3[p]); 16080 } 16081 return obj; 16082 }; 16083 var _getBounds = function _getBounds2(element, withoutTransforms) { 16084 var tween = withoutTransforms && _getComputedStyle(element)[_transformProp2] !== "matrix(1, 0, 0, 1, 0, 0)" && gsap3.to(element, { 16085 x: 0, 16086 y: 0, 16087 xPercent: 0, 16088 yPercent: 0, 16089 rotation: 0, 16090 rotationX: 0, 16091 rotationY: 0, 16092 scale: 1, 16093 skewX: 0, 16094 skewY: 0 16095 }).progress(1), bounds = element.getBoundingClientRect(); 16096 tween && tween.progress(0).kill(); 16097 return bounds; 16098 }; 16099 var _getSize = function _getSize2(element, _ref3) { 16100 var d2 = _ref3.d2; 16101 return element["offset" + d2] || element["client" + d2] || 0; 16102 }; 16103 var _getLabelRatioArray = function _getLabelRatioArray2(timeline2) { 16104 var a = [], labels = timeline2.labels, duration = timeline2.duration(), p; 16105 for (p in labels) { 16106 a.push(labels[p] / duration); 16107 } 16108 return a; 16109 }; 16110 var _getClosestLabel = function _getClosestLabel2(animation) { 16111 return function(value) { 16112 return gsap3.utils.snap(_getLabelRatioArray(animation), value); 16113 }; 16114 }; 16115 var _snapDirectional = function _snapDirectional2(snapIncrementOrArray) { 16116 var snap3 = gsap3.utils.snap(snapIncrementOrArray), a = Array.isArray(snapIncrementOrArray) && snapIncrementOrArray.slice(0).sort(function(a2, b) { 16117 return a2 - b; 16118 }); 16119 return a ? function(value, direction, threshold) { 16120 if (threshold === void 0) { 16121 threshold = 1e-3; 16122 } 16123 var i; 16124 if (!direction) { 16125 return snap3(value); 16126 } 16127 if (direction > 0) { 16128 value -= threshold; 16129 for (i = 0; i < a.length; i++) { 16130 if (a[i] >= value) { 16131 return a[i]; 16132 } 16133 } 16134 return a[i - 1]; 16135 } else { 16136 i = a.length; 16137 value += threshold; 16138 while (i--) { 16139 if (a[i] <= value) { 16140 return a[i]; 16141 } 16142 } 16143 } 16144 return a[0]; 16145 } : function(value, direction, threshold) { 16146 if (threshold === void 0) { 16147 threshold = 1e-3; 16148 } 16149 var snapped = snap3(value); 16150 return !direction || Math.abs(snapped - value) < threshold || snapped - value < 0 === direction < 0 ? snapped : snap3(direction < 0 ? value - snapIncrementOrArray : value + snapIncrementOrArray); 16151 }; 16152 }; 16153 var _getLabelAtDirection = function _getLabelAtDirection2(timeline2) { 16154 return function(value, st) { 16155 return _snapDirectional(_getLabelRatioArray(timeline2))(value, st.direction); 16156 }; 16157 }; 16158 var _multiListener = function _multiListener2(func, element, types, callback) { 16159 return types.split(",").forEach(function(type) { 16160 return func(element, type, callback); 16161 }); 16162 }; 16163 var _addListener3 = function _addListener4(element, type, func, nonPassive, capture) { 16164 return element.addEventListener(type, func, { 16165 passive: !nonPassive, 16166 capture: !!capture 16167 }); 16168 }; 16169 var _removeListener3 = function _removeListener4(element, type, func, capture) { 16170 return element.removeEventListener(type, func, !!capture); 16171 }; 16172 var _wheelListener = function _wheelListener2(func, el, scrollFunc) { 16173 return scrollFunc && scrollFunc.wheelHandler && func(el, "wheel", scrollFunc); 16174 }; 16175 var _markerDefaults = { 16176 startColor: "green", 16177 endColor: "red", 16178 indent: 0, 16179 fontSize: "16px", 16180 fontWeight: "normal" 16181 }; 16182 var _defaults2 = { 16183 toggleActions: "play", 16184 anticipatePin: 0 16185 }; 16186 var _keywords = { 16187 top: 0, 16188 left: 0, 16189 center: 0.5, 16190 bottom: 1, 16191 right: 1 16192 }; 16193 var _offsetToPx = function _offsetToPx2(value, size) { 16194 if (_isString3(value)) { 16195 var eqIndex = value.indexOf("="), relative = ~eqIndex ? +(value.charAt(eqIndex - 1) + 1) * parseFloat(value.substr(eqIndex + 1)) : 0; 16196 if (~eqIndex) { 16197 value.indexOf("%") > eqIndex && (relative *= size / 100); 16198 value = value.substr(0, eqIndex - 1); 16199 } 16200 value = relative + (value in _keywords ? _keywords[value] * size : ~value.indexOf("%") ? parseFloat(value) * size / 100 : parseFloat(value) || 0); 16201 } 16202 return value; 16203 }; 16204 var _createMarker = function _createMarker2(type, name, container, direction, _ref4, offset2, matchWidthEl, containerAnimation) { 16205 var startColor = _ref4.startColor, endColor = _ref4.endColor, fontSize = _ref4.fontSize, indent = _ref4.indent, fontWeight = _ref4.fontWeight; 16206 var e = _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;"; 16207 css += "position:" + ((isScroller || containerAnimation) && useFixedPosition ? "fixed;" : "absolute;"); 16208 (isScroller || containerAnimation || !useFixedPosition) && (css += (direction === _vertical ? _right : _bottom) + ":" + (offset2 + parseFloat(indent)) + "px;"); 16209 matchWidthEl && (css += "box-sizing:border-box;text-align:left;width:" + matchWidthEl.offsetWidth + "px;"); 16210 e._isStart = isStart; 16211 e.setAttribute("class", "gsap-marker-" + type + (name ? " marker-" + name : "")); 16212 e.style.cssText = css; 16213 e.innerText = name || name === 0 ? type + "-" + name : type; 16214 parent.children[0] ? parent.insertBefore(e, parent.children[0]) : parent.appendChild(e); 16215 e._offset = e["offset" + direction.op.d2]; 16216 _positionMarker(e, 0, direction, isStart); 16217 return e; 16218 }; 16219 var _positionMarker = function _positionMarker2(marker, start2, direction, flipped) { 16220 var vars = { 16221 display: "block" 16222 }, side = direction[flipped ? "os2" : "p2"], oppositeSide = direction[flipped ? "p2" : "os2"]; 16223 marker._isFlipped = flipped; 16224 vars[direction.a + "Percent"] = flipped ? -100 : 0; 16225 vars[direction.a] = flipped ? "1px" : 0; 16226 vars["border" + side + _Width] = 1; 16227 vars["border" + oppositeSide + _Width] = 0; 16228 vars[direction.p] = start2 + "px"; 16229 gsap3.set(marker, vars); 16230 }; 16231 var _triggers = []; 16232 var _ids = {}; 16233 var _rafID; 16234 var _sync = function _sync2() { 16235 return _getTime2() - _lastScrollTime > 34 && _updateAll(); 16236 }; 16237 var _onScroll3 = function _onScroll4() { 16238 if (!_normalizer2 || !_normalizer2.isPressed || _normalizer2.startX > _body2.clientWidth) { 16239 _scrollers.cache++; 16240 _rafID || (_rafID = requestAnimationFrame(_updateAll)); 16241 _lastScrollTime || _dispatch("scrollStart"); 16242 _lastScrollTime = _getTime2(); 16243 } 16244 }; 16245 var _setBaseDimensions = function _setBaseDimensions2() { 16246 _baseScreenWidth = _win4.innerWidth; 16247 _baseScreenHeight = _win4.innerHeight; 16248 }; 16249 var _onResize = function _onResize2() { 16250 _scrollers.cache++; 16251 !_refreshing && !_ignoreResize && !_doc4.fullscreenElement && !_doc4.webkitFullscreenElement && (!_ignoreMobileResize || _baseScreenWidth !== _win4.innerWidth || Math.abs(_win4.innerHeight - _baseScreenHeight) > _win4.innerHeight * 0.25) && _resizeDelay.restart(true); 16252 }; 16253 var _listeners = {}; 16254 var _emptyArray = []; 16255 var _media = []; 16256 var _creatingMedia; 16257 var _lastMediaTick; 16258 var _onMediaChange = function _onMediaChange2(e) { 16259 var tick = gsap3.ticker.frame, matches = [], i = 0, index; 16260 if (_lastMediaTick !== tick || _startup2) { 16261 _revertAll(); 16262 for (; i < _media.length; i += 4) { 16263 index = _win4.matchMedia(_media[i]).matches; 16264 if (index !== _media[i + 3]) { 16265 _media[i + 3] = index; 16266 index ? matches.push(i) : _revertAll(1, _media[i]) || _isFunction3(_media[i + 2]) && _media[i + 2](); 16267 } 16268 } 16269 _revertRecorded(); 16270 for (i = 0; i < matches.length; i++) { 16271 index = matches[i]; 16272 _creatingMedia = _media[index]; 16273 _media[index + 2] = _media[index + 1](e); 16274 } 16275 _creatingMedia = 0; 16276 _coreInitted3 && _refreshAll(0, 1); 16277 _lastMediaTick = tick; 16278 _dispatch("matchMedia"); 16279 } 16280 }; 16281 var _softRefresh = function _softRefresh2() { 16282 return _removeListener3(ScrollTrigger2, "scrollEnd", _softRefresh2) || _refreshAll(true); 16283 }; 16284 var _dispatch = function _dispatch2(type) { 16285 return _listeners[type] && _listeners[type].map(function(f) { 16286 return f(); 16287 }) || _emptyArray; 16288 }; 16289 var _savedStyles = []; 16290 var _revertRecorded = function _revertRecorded2(media) { 16291 for (var i = 0; i < _savedStyles.length; i += 5) { 16292 if (!media || _savedStyles[i + 4] === media) { 16293 _savedStyles[i].style.cssText = _savedStyles[i + 1]; 16294 _savedStyles[i].getBBox && _savedStyles[i].setAttribute("transform", _savedStyles[i + 2] || ""); 16295 _savedStyles[i + 3].uncache = 1; 16296 } 16297 } 16298 }; 16299 var _revertAll = function _revertAll2(kill3, media) { 16300 var trigger; 16301 for (_i = 0; _i < _triggers.length; _i++) { 16302 trigger = _triggers[_i]; 16303 if (!media || trigger.media === media) { 16304 if (kill3) { 16305 trigger.kill(1); 16306 } else { 16307 trigger.revert(); 16308 } 16309 } 16310 } 16311 media && _revertRecorded(media); 16312 media || _dispatch("revert"); 16313 }; 16314 var _clearScrollMemory = function _clearScrollMemory2() { 16315 return _scrollers.cache++ && _scrollers.forEach(function(obj) { 16316 return typeof obj === "function" && (obj.rec = 0); 16317 }); 16318 }; 16319 var _refreshingAll; 16320 var _refreshID = 0; 16321 var _refreshAll = function _refreshAll2(force, skipRevert) { 16322 if (_lastScrollTime && !force) { 16323 _addListener3(ScrollTrigger2, "scrollEnd", _softRefresh); 16324 return; 16325 } 16326 _refreshingAll = true; 16327 var refreshInits = _dispatch("refreshInit"); 16328 _sort && ScrollTrigger2.sort(); 16329 skipRevert || _revertAll(); 16330 _triggers.slice(0).forEach(function(t) { 16331 return t.refresh(); 16332 }); 16333 _triggers.forEach(function(t) { 16334 return t.vars.end === "max" && t.setPositions(t.start, _maxScroll(t.scroller, t._dir)); 16335 }); 16336 refreshInits.forEach(function(result) { 16337 return result && result.render && result.render(-1); 16338 }); 16339 _clearScrollMemory(); 16340 _resizeDelay.pause(); 16341 _refreshID++; 16342 _refreshingAll = false; 16343 _dispatch("refresh"); 16344 }; 16345 var _lastScroll = 0; 16346 var _direction = 1; 16347 var _primary; 16348 var _updateAll = function _updateAll2() { 16349 if (!_refreshingAll) { 16350 ScrollTrigger2.isUpdating = true; 16351 _primary && _primary.update(0); 16352 var l = _triggers.length, time = _getTime2(), recordVelocity = time - _time1 >= 50, scroll = l && _triggers[0].scroll(); 16353 _direction = _lastScroll > scroll ? -1 : 1; 16354 _lastScroll = scroll; 16355 if (recordVelocity) { 16356 if (_lastScrollTime && !_pointerIsDown && time - _lastScrollTime > 200) { 16357 _lastScrollTime = 0; 16358 _dispatch("scrollEnd"); 16359 } 16360 _time2 = _time1; 16361 _time1 = time; 16362 } 16363 if (_direction < 0) { 16364 _i = l; 16365 while (_i-- > 0) { 16366 _triggers[_i] && _triggers[_i].update(0, recordVelocity); 16367 } 16368 _direction = 1; 16369 } else { 16370 for (_i = 0; _i < l; _i++) { 16371 _triggers[_i] && _triggers[_i].update(0, recordVelocity); 16372 } 16373 } 16374 ScrollTrigger2.isUpdating = false; 16375 } 16376 _rafID = 0; 16377 }; 16378 var _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"]; 16379 var _stateProps = _propNamesToCopy.concat([_width, _height, "boxSizing", "max" + _Width, "max" + _Height, "position", _margin, _padding, _padding + _Top, _padding + _Right, _padding + _Bottom, _padding + _Left]); 16380 var _swapPinOut = function _swapPinOut2(pin, spacer, state) { 16381 _setState(state); 16382 var cache = pin._gsap; 16383 if (cache.spacerIsNative) { 16384 _setState(cache.spacerState); 16385 } else if (pin.parentNode === spacer) { 16386 var parent = spacer.parentNode; 16387 if (parent) { 16388 parent.insertBefore(pin, spacer); 16389 parent.removeChild(spacer); 16390 } 16391 } 16392 }; 16393 var _swapPinIn = function _swapPinIn2(pin, spacer, cs, spacerState) { 16394 if (pin.parentNode !== spacer) { 16395 var i = _propNamesToCopy.length, spacerStyle = spacer.style, pinStyle = pin.style, p; 16396 while (i--) { 16397 p = _propNamesToCopy[i]; 16398 spacerStyle[p] = cs[p]; 16399 } 16400 spacerStyle.position = cs.position === "absolute" ? "absolute" : "relative"; 16401 cs.display === "inline" && (spacerStyle.display = "inline-block"); 16402 pinStyle[_bottom] = pinStyle[_right] = spacerStyle.flexBasis = "auto"; 16403 spacerStyle.overflow = "visible"; 16404 spacerStyle.boxSizing = "border-box"; 16405 spacerStyle[_width] = _getSize(pin, _horizontal) + _px; 16406 spacerStyle[_height] = _getSize(pin, _vertical) + _px; 16407 spacerStyle[_padding] = pinStyle[_margin] = pinStyle[_top] = pinStyle[_left] = "0"; 16408 _setState(spacerState); 16409 pinStyle[_width] = pinStyle["max" + _Width] = cs[_width]; 16410 pinStyle[_height] = pinStyle["max" + _Height] = cs[_height]; 16411 pinStyle[_padding] = cs[_padding]; 16412 pin.parentNode.insertBefore(spacer, pin); 16413 spacer.appendChild(pin); 16414 } 16415 }; 16416 var _capsExp2 = /([A-Z])/g; 16417 var _setState = function _setState2(state) { 16418 if (state) { 16419 var style = state.t.style, l = state.length, i = 0, p, value; 16420 (state.t._gsap || gsap3.core.getCache(state.t)).uncache = 1; 16421 for (; i < l; i += 2) { 16422 value = state[i + 1]; 16423 p = state[i]; 16424 if (value) { 16425 style[p] = value; 16426 } else if (style[p]) { 16427 style.removeProperty(p.replace(_capsExp2, "-$1").toLowerCase()); 16428 } 16429 } 16430 } 16431 }; 16432 var _getState = function _getState2(element) { 16433 var l = _stateProps.length, style = element.style, state = [], i = 0; 16434 for (; i < l; i++) { 16435 state.push(_stateProps[i], style[_stateProps[i]]); 16436 } 16437 state.t = element; 16438 return state; 16439 }; 16440 var _copyState = function _copyState2(state, override, omitOffsets) { 16441 var result = [], l = state.length, i = omitOffsets ? 8 : 0, p; 16442 for (; i < l; i += 2) { 16443 p = state[i]; 16444 result.push(p, p in override ? override[p] : state[i + 1]); 16445 } 16446 result.t = state.t; 16447 return result; 16448 }; 16449 var _winOffsets = { 16450 left: 0, 16451 top: 0 16452 }; 16453 var _parsePosition3 = function _parsePosition4(value, trigger, scrollerSize, direction, scroll, marker, markerScroller, self2, scrollerBounds, borderWidth, useFixedPosition, scrollerMax, containerAnimation) { 16454 _isFunction3(value) && (value = value(self2)); 16455 if (_isString3(value) && value.substr(0, 3) === "max") { 16456 value = scrollerMax + (value.charAt(4) === "=" ? _offsetToPx("0" + value.substr(3), scrollerSize) : 0); 16457 } 16458 var time = containerAnimation ? containerAnimation.time() : 0, p1, p2, element; 16459 containerAnimation && containerAnimation.seek(0); 16460 if (!_isNumber3(value)) { 16461 _isFunction3(trigger) && (trigger = trigger(self2)); 16462 var offsets = value.split(" "), bounds, localOffset, globalOffset, display; 16463 element = _getTarget(trigger) || _body2; 16464 bounds = _getBounds(element) || {}; 16465 if ((!bounds || !bounds.left && !bounds.top) && _getComputedStyle(element).display === "none") { 16466 display = element.style.display; 16467 element.style.display = "block"; 16468 bounds = _getBounds(element); 16469 display ? element.style.display = display : element.style.removeProperty("display"); 16470 } 16471 localOffset = _offsetToPx(offsets[0], bounds[direction.d]); 16472 globalOffset = _offsetToPx(offsets[1] || "0", scrollerSize); 16473 value = bounds[direction.p] - scrollerBounds[direction.p] - borderWidth + localOffset + scroll - globalOffset; 16474 markerScroller && _positionMarker(markerScroller, globalOffset, direction, scrollerSize - globalOffset < 20 || markerScroller._isStart && globalOffset > 20); 16475 scrollerSize -= scrollerSize - globalOffset; 16476 } else if (markerScroller) { 16477 _positionMarker(markerScroller, scrollerSize, direction, true); 16478 } 16479 if (marker) { 16480 var position = value + scrollerSize, isStart = marker._isStart; 16481 p1 = "scroll" + direction.d2; 16482 _positionMarker(marker, position, direction, isStart && position > 20 || !isStart && (useFixedPosition ? Math.max(_body2[p1], _docEl2[p1]) : marker.parentNode[p1]) <= position + 1); 16483 if (useFixedPosition) { 16484 scrollerBounds = _getBounds(markerScroller); 16485 useFixedPosition && (marker.style[direction.op.p] = scrollerBounds[direction.op.p] - direction.op.m - marker._offset + _px); 16486 } 16487 } 16488 if (containerAnimation && element) { 16489 p1 = _getBounds(element); 16490 containerAnimation.seek(scrollerMax); 16491 p2 = _getBounds(element); 16492 containerAnimation._caScrollDist = p1[direction.p] - p2[direction.p]; 16493 value = value / containerAnimation._caScrollDist * scrollerMax; 16494 } 16495 containerAnimation && containerAnimation.seek(time); 16496 return containerAnimation ? value : Math.round(value); 16497 }; 16498 var _prefixExp = /(webkit|moz|length|cssText|inset)/i; 16499 var _reparent = function _reparent2(element, parent, top2, left2) { 16500 if (element.parentNode !== parent) { 16501 var style = element.style, p, cs; 16502 if (parent === _body2) { 16503 element._stOrig = style.cssText; 16504 cs = _getComputedStyle(element); 16505 for (p in cs) { 16506 if (!+p && !_prefixExp.test(p) && cs[p] && typeof style[p] === "string" && p !== "0") { 16507 style[p] = cs[p]; 16508 } 16509 } 16510 style.top = top2; 16511 style.left = left2; 16512 } else { 16513 style.cssText = element._stOrig; 16514 } 16515 gsap3.core.getCache(element).uncache = 1; 16516 parent.appendChild(element); 16517 } 16518 }; 16519 var _getTweenCreator = function _getTweenCreator2(scroller, direction) { 16520 var getScroll = _getScrollFunc(scroller, direction), prop = "_scroll" + direction.p2, lastScroll1, lastScroll2, getTween = function getTween2(scrollTo, vars, initialValue, change1, change2) { 16521 var tween = getTween2.tween, onComplete = vars.onComplete, modifiers = {}; 16522 initialValue = initialValue || getScroll(); 16523 change2 = change1 && change2 || 0; 16524 change1 = change1 || scrollTo - initialValue; 16525 tween && tween.kill(); 16526 lastScroll1 = Math.round(initialValue); 16527 vars[prop] = scrollTo; 16528 vars.modifiers = modifiers; 16529 modifiers[prop] = function(value) { 16530 value = _round3(getScroll()); 16531 if (value !== lastScroll1 && value !== lastScroll2 && Math.abs(value - lastScroll1) > 2 && Math.abs(value - lastScroll2) > 2) { 16532 tween.kill(); 16533 getTween2.tween = 0; 16534 } else { 16535 value = initialValue + change1 * tween.ratio + change2 * tween.ratio * tween.ratio; 16536 } 16537 lastScroll2 = lastScroll1; 16538 return lastScroll1 = _round3(value); 16539 }; 16540 vars.onComplete = function() { 16541 getTween2.tween = 0; 16542 onComplete && onComplete.call(tween); 16543 }; 16544 tween = getTween2.tween = gsap3.to(scroller, vars); 16545 return tween; 16546 }; 16547 scroller[prop] = getScroll; 16548 getScroll.wheelHandler = function() { 16549 return getTween.tween && getTween.tween.kill() && (getTween.tween = 0); 16550 }; 16551 _addListener3(scroller, "wheel", getScroll.wheelHandler); 16552 return getTween; 16553 }; 16554 var ScrollTrigger2 = /* @__PURE__ */ function() { 16555 function ScrollTrigger3(vars, animation) { 16556 _coreInitted3 || ScrollTrigger3.register(gsap3) || console.warn("Please gsap.registerPlugin(ScrollTrigger)"); 16557 this.init(vars, animation); 16558 } 16559 var _proto = ScrollTrigger3.prototype; 16560 _proto.init = function init7(vars, animation) { 16561 this.progress = this.start = 0; 16562 this.vars && this.kill(true, true); 16563 if (!_enabled) { 16564 this.update = this.refresh = this.kill = _passThrough3; 16565 return; 16566 } 16567 vars = _setDefaults3(_isString3(vars) || _isNumber3(vars) || vars.nodeType ? { 16568 trigger: vars 16569 } : vars, _defaults2); 16570 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() { 16571 return vars.onRefreshInit(self2); 16572 }, getScrollerSize = _getSizeFunc(scroller, isViewport, direction), getScrollerOffsets = _getOffsetsFunc(scroller, isViewport), lastSnap = 0, lastRefresh = 0, scrollFunc = _getScrollFunc(scroller, direction), tweenTo, pinCache, snapFunc, scroll1, scroll2, start2, end2, markerStart, markerEnd, markerStartTrigger, markerEndTrigger, markerVars, change, pinOriginalState, pinActiveState, pinState, spacer, offset2, pinGetter, pinSetter, pinStart, pinChange, spacingStart, spacerState, markerStartSetter, markerEndSetter, cs, snap1, snap22, scrubTween, scrubSmooth, snapDurClamp, snapDelayedCall, prevProgress, prevScroll, prevAnimProgress, caMarkerSetter, customRevertReturn; 16573 self2.media = _creatingMedia; 16574 self2._dir = direction; 16575 anticipatePin *= 45; 16576 self2.scroller = scroller; 16577 self2.scroll = containerAnimation ? containerAnimation.time.bind(containerAnimation) : scrollFunc; 16578 scroll1 = scrollFunc(); 16579 self2.vars = vars; 16580 animation = animation || vars.animation; 16581 if ("refreshPriority" in vars) { 16582 _sort = 1; 16583 vars.refreshPriority === -9999 && (_primary = self2); 16584 } 16585 scrollerCache.tweenScroll = scrollerCache.tweenScroll || { 16586 top: _getTweenCreator(scroller, _vertical), 16587 left: _getTweenCreator(scroller, _horizontal) 16588 }; 16589 self2.tweenTo = tweenTo = scrollerCache.tweenScroll[direction.p]; 16590 self2.scrubDuration = function(value) { 16591 scrubSmooth = _isNumber3(value) && value; 16592 if (!scrubSmooth) { 16593 scrubTween && scrubTween.progress(1).kill(); 16594 scrubTween = 0; 16595 } else { 16596 scrubTween ? scrubTween.duration(value) : scrubTween = gsap3.to(animation, { 16597 ease: "expo", 16598 totalProgress: "+=0.001", 16599 duration: scrubSmooth, 16600 paused: true, 16601 onComplete: function onComplete() { 16602 return onScrubComplete && onScrubComplete(self2); 16603 } 16604 }); 16605 } 16606 }; 16607 if (animation) { 16608 animation.vars.lazy = false; 16609 animation._initted || animation.vars.immediateRender !== false && vars.immediateRender !== false && animation.render(0, true, true); 16610 self2.animation = animation.pause(); 16611 animation.scrollTrigger = self2; 16612 self2.scrubDuration(scrub); 16613 snap1 = 0; 16614 id || (id = animation.vars.id); 16615 } 16616 _triggers.push(self2); 16617 if (snap3) { 16618 if (!_isObject3(snap3) || snap3.push) { 16619 snap3 = { 16620 snapTo: snap3 16621 }; 16622 } 16623 "scrollBehavior" in _body2.style && gsap3.set(isViewport ? [_body2, _docEl2] : scroller, { 16624 scrollBehavior: "auto" 16625 }); 16626 snapFunc = _isFunction3(snap3.snapTo) ? snap3.snapTo : snap3.snapTo === "labels" ? _getClosestLabel(animation) : snap3.snapTo === "labelsDirectional" ? _getLabelAtDirection(animation) : snap3.directional !== false ? function(value, st) { 16627 return _snapDirectional(snap3.snapTo)(value, _getTime2() - lastRefresh < 500 ? 0 : st.direction); 16628 } : gsap3.utils.snap(snap3.snapTo); 16629 snapDurClamp = snap3.duration || { 16630 min: 0.1, 16631 max: 2 16632 }; 16633 snapDurClamp = _isObject3(snapDurClamp) ? _clamp4(snapDurClamp.min, snapDurClamp.max) : _clamp4(snapDurClamp, snapDurClamp); 16634 snapDelayedCall = gsap3.delayedCall(snap3.delay || scrubSmooth / 2 || 0.1, function() { 16635 var scroll = scrollFunc(), refreshedRecently = _getTime2() - lastRefresh < 500, tween = tweenTo.tween; 16636 if ((refreshedRecently || Math.abs(self2.getVelocity()) < 10) && !tween && !_pointerIsDown && lastSnap !== scroll) { 16637 var progress = (scroll - start2) / 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 = _clamp4(0, 1, snapFunc(naturalEnd, self2)), endScroll = Math.round(start2 + endValue * change), _snap = snap3, onStart = _snap.onStart, _onInterrupt = _snap.onInterrupt, _onComplete = _snap.onComplete; 16638 if (scroll <= end2 && scroll >= start2 && endScroll !== scroll) { 16639 if (tween && !tween._initted && tween.data <= _abs(endScroll - scroll)) { 16640 return; 16641 } 16642 if (snap3.inertia === false) { 16643 change1 = endValue - progress; 16644 } 16645 tweenTo(endScroll, { 16646 duration: snapDurClamp(_abs(Math.max(_abs(naturalEnd - totalProgress), _abs(endValue - totalProgress)) * 0.185 / velocity / 0.05 || 0)), 16647 ease: snap3.ease || "power3", 16648 data: _abs(endScroll - scroll), 16649 onInterrupt: function onInterrupt() { 16650 return snapDelayedCall.restart(true) && _onInterrupt && _onInterrupt(self2); 16651 }, 16652 onComplete: function onComplete() { 16653 self2.update(); 16654 lastSnap = scrollFunc(); 16655 snap1 = snap22 = animation && !isToggle ? animation.totalProgress() : self2.progress; 16656 onSnapComplete && onSnapComplete(self2); 16657 _onComplete && _onComplete(self2); 16658 } 16659 }, scroll, change1 * change, endScroll - scroll - change1 * change); 16660 onStart && onStart(self2, tweenTo.tween); 16661 } 16662 } else if (self2.isActive && lastSnap !== scroll) { 16663 snapDelayedCall.restart(true); 16664 } 16665 }).pause(); 16666 } 16667 id && (_ids[id] = self2); 16668 trigger = self2.trigger = _getTarget(trigger || pin); 16669 customRevertReturn = trigger && trigger._gsap && trigger._gsap.stRevert; 16670 customRevertReturn && (customRevertReturn = customRevertReturn(self2)); 16671 pin = pin === true ? trigger : _getTarget(pin); 16672 _isString3(toggleClass) && (toggleClass = { 16673 targets: trigger, 16674 className: toggleClass 16675 }); 16676 if (pin) { 16677 pinSpacing === false || pinSpacing === _margin || (pinSpacing = !pinSpacing && _getComputedStyle(pin.parentNode).display === "flex" ? false : _padding); 16678 self2.pin = pin; 16679 vars.force3D !== false && gsap3.set(pin, { 16680 force3D: true 16681 }); 16682 pinCache = gsap3.core.getCache(pin); 16683 if (!pinCache.spacer) { 16684 if (pinSpacer) { 16685 pinSpacer = _getTarget(pinSpacer); 16686 pinSpacer && !pinSpacer.nodeType && (pinSpacer = pinSpacer.current || pinSpacer.nativeElement); 16687 pinCache.spacerIsNative = !!pinSpacer; 16688 pinSpacer && (pinCache.spacerState = _getState(pinSpacer)); 16689 } 16690 pinCache.spacer = spacer = pinSpacer || _doc4.createElement("div"); 16691 spacer.classList.add("pin-spacer"); 16692 id && spacer.classList.add("pin-spacer-" + id); 16693 pinCache.pinState = pinOriginalState = _getState(pin); 16694 } else { 16695 pinOriginalState = pinCache.pinState; 16696 } 16697 self2.spacer = spacer = pinCache.spacer; 16698 cs = _getComputedStyle(pin); 16699 spacingStart = cs[pinSpacing + direction.os2]; 16700 pinGetter = gsap3.getProperty(pin); 16701 pinSetter = gsap3.quickSetter(pin, direction.a, _px); 16702 _swapPinIn(pin, spacer, cs); 16703 pinState = _getState(pin); 16704 } 16705 if (markers) { 16706 markerVars = _isObject3(markers) ? _setDefaults3(markers, _markerDefaults) : _markerDefaults; 16707 markerStartTrigger = _createMarker("scroller-start", id, scroller, direction, markerVars, 0); 16708 markerEndTrigger = _createMarker("scroller-end", id, scroller, direction, markerVars, 0, markerStartTrigger); 16709 offset2 = markerStartTrigger["offset" + direction.op.d2]; 16710 var content = _getTarget(_getProxyProp(scroller, "content") || scroller); 16711 markerStart = this.markerStart = _createMarker("start", id, content, direction, markerVars, offset2, 0, containerAnimation); 16712 markerEnd = this.markerEnd = _createMarker("end", id, content, direction, markerVars, offset2, 0, containerAnimation); 16713 containerAnimation && (caMarkerSetter = gsap3.quickSetter([markerStart, markerEnd], direction.a, _px)); 16714 if (!useFixedPosition && !(_proxies.length && _getProxyProp(scroller, "fixedMarkers") === true)) { 16715 _makePositionable(isViewport ? _body2 : scroller); 16716 gsap3.set([markerStartTrigger, markerEndTrigger], { 16717 force3D: true 16718 }); 16719 markerStartSetter = gsap3.quickSetter(markerStartTrigger, direction.a, _px); 16720 markerEndSetter = gsap3.quickSetter(markerEndTrigger, direction.a, _px); 16721 } 16722 } 16723 if (containerAnimation) { 16724 var oldOnUpdate = containerAnimation.vars.onUpdate, oldParams = containerAnimation.vars.onUpdateParams; 16725 containerAnimation.eventCallback("onUpdate", function() { 16726 self2.update(0, 0, 1); 16727 oldOnUpdate && oldOnUpdate.apply(oldParams || []); 16728 }); 16729 } 16730 self2.previous = function() { 16731 return _triggers[_triggers.indexOf(self2) - 1]; 16732 }; 16733 self2.next = function() { 16734 return _triggers[_triggers.indexOf(self2) + 1]; 16735 }; 16736 self2.revert = function(revert) { 16737 var r = revert !== false || !self2.enabled, prevRefreshing = _refreshing; 16738 if (r !== self2.isReverted) { 16739 if (r) { 16740 self2.scroll.rec || !_refreshing || !_refreshingAll || (self2.scroll.rec = scrollFunc()); 16741 prevScroll = Math.max(scrollFunc(), self2.scroll.rec || 0); 16742 prevProgress = self2.progress; 16743 prevAnimProgress = animation && animation.progress(); 16744 } 16745 markerStart && [markerStart, markerEnd, markerStartTrigger, markerEndTrigger].forEach(function(m) { 16746 return m.style.display = r ? "none" : "block"; 16747 }); 16748 r && (_refreshing = 1); 16749 self2.update(r); 16750 _refreshing = prevRefreshing; 16751 pin && (r ? _swapPinOut(pin, spacer, pinOriginalState) : (!pinReparent || !self2.isActive) && _swapPinIn(pin, spacer, _getComputedStyle(pin), spacerState)); 16752 self2.isReverted = r; 16753 } 16754 }; 16755 self2.refresh = function(soft, force) { 16756 if ((_refreshing || !self2.enabled) && !force) { 16757 return; 16758 } 16759 if (pin && soft && _lastScrollTime) { 16760 _addListener3(ScrollTrigger3, "scrollEnd", _softRefresh); 16761 return; 16762 } 16763 !_refreshingAll && onRefreshInit && onRefreshInit(self2); 16764 _refreshing = 1; 16765 lastRefresh = _getTime2(); 16766 if (tweenTo.tween) { 16767 tweenTo.tween.kill(); 16768 tweenTo.tween = 0; 16769 } 16770 scrubTween && scrubTween.pause(); 16771 invalidateOnRefresh && animation && animation.time(-0.01, true).invalidate(); 16772 self2.isReverted || self2.revert(); 16773 var size = getScrollerSize(), scrollerBounds = getScrollerOffsets(), max2 = containerAnimation ? containerAnimation.duration() : _maxScroll(scroller, direction), offset3 = 0, otherPinOffset = 0, parsedEnd = vars.end, parsedEndTrigger = vars.endTrigger || trigger, parsedStart = vars.start || (vars.start === 0 || !trigger ? 0 : pin ? "0 0" : "0 100%"), pinnedContainer = self2.pinnedContainer = vars.pinnedContainer && _getTarget(vars.pinnedContainer), triggerIndex = trigger && Math.max(0, _triggers.indexOf(self2)) || 0, i = triggerIndex, cs2, bounds, scroll, isVertical, override, curTrigger, curPin, oppositeScroll, initted, revertedPins; 16774 while (i--) { 16775 curTrigger = _triggers[i]; 16776 curTrigger.end || curTrigger.refresh(0, 1) || (_refreshing = 1); 16777 curPin = curTrigger.pin; 16778 if (curPin && (curPin === trigger || curPin === pin) && !curTrigger.isReverted) { 16779 revertedPins || (revertedPins = []); 16780 revertedPins.unshift(curTrigger); 16781 curTrigger.revert(); 16782 } 16783 if (curTrigger !== _triggers[i]) { 16784 triggerIndex--; 16785 i--; 16786 } 16787 } 16788 _isFunction3(parsedStart) && (parsedStart = parsedStart(self2)); 16789 start2 = _parsePosition3(parsedStart, trigger, size, direction, scrollFunc(), markerStart, markerStartTrigger, self2, scrollerBounds, borderWidth, useFixedPosition, max2, containerAnimation) || (pin ? -1e-3 : 0); 16790 _isFunction3(parsedEnd) && (parsedEnd = parsedEnd(self2)); 16791 if (_isString3(parsedEnd) && !parsedEnd.indexOf("+=")) { 16792 if (~parsedEnd.indexOf(" ")) { 16793 parsedEnd = (_isString3(parsedStart) ? parsedStart.split(" ")[0] : "") + parsedEnd; 16794 } else { 16795 offset3 = _offsetToPx(parsedEnd.substr(2), size); 16796 parsedEnd = _isString3(parsedStart) ? parsedStart : start2 + offset3; 16797 parsedEndTrigger = trigger; 16798 } 16799 } 16800 end2 = Math.max(start2, _parsePosition3(parsedEnd || (parsedEndTrigger ? "100% 0" : max2), parsedEndTrigger, size, direction, scrollFunc() + offset3, markerEnd, markerEndTrigger, self2, scrollerBounds, borderWidth, useFixedPosition, max2, containerAnimation)) || -1e-3; 16801 change = end2 - start2 || (start2 -= 0.01) && 1e-3; 16802 offset3 = 0; 16803 i = triggerIndex; 16804 while (i--) { 16805 curTrigger = _triggers[i]; 16806 curPin = curTrigger.pin; 16807 if (curPin && curTrigger.start - curTrigger._pinPush < start2 && !containerAnimation && curTrigger.end > 0) { 16808 cs2 = curTrigger.end - curTrigger.start; 16809 if ((curPin === trigger || curPin === pinnedContainer) && !_isNumber3(parsedStart)) { 16810 offset3 += cs2 * (1 - curTrigger.progress); 16811 } 16812 curPin === pin && (otherPinOffset += cs2); 16813 } 16814 } 16815 start2 += offset3; 16816 end2 += offset3; 16817 self2._pinPush = otherPinOffset; 16818 if (markerStart && offset3) { 16819 cs2 = {}; 16820 cs2[direction.a] = "+=" + offset3; 16821 pinnedContainer && (cs2[direction.p] = "-=" + scrollFunc()); 16822 gsap3.set([markerStart, markerEnd], cs2); 16823 } 16824 if (pin) { 16825 cs2 = _getComputedStyle(pin); 16826 isVertical = direction === _vertical; 16827 scroll = scrollFunc(); 16828 pinStart = parseFloat(pinGetter(direction.a)) + otherPinOffset; 16829 !max2 && end2 > 1 && ((isViewport ? _body2 : scroller).style["overflow-" + direction.a] = "scroll"); 16830 _swapPinIn(pin, spacer, cs2); 16831 pinState = _getState(pin); 16832 bounds = _getBounds(pin, true); 16833 oppositeScroll = useFixedPosition && _getScrollFunc(scroller, isVertical ? _horizontal : _vertical)(); 16834 if (pinSpacing) { 16835 spacerState = [pinSpacing + direction.os2, change + otherPinOffset + _px]; 16836 spacerState.t = spacer; 16837 i = pinSpacing === _padding ? _getSize(pin, direction) + change + otherPinOffset : 0; 16838 i && spacerState.push(direction.d, i + _px); 16839 _setState(spacerState); 16840 useFixedPosition && scrollFunc(prevScroll); 16841 } 16842 if (useFixedPosition) { 16843 override = { 16844 top: bounds.top + (isVertical ? scroll - start2 : oppositeScroll) + _px, 16845 left: bounds.left + (isVertical ? oppositeScroll : scroll - start2) + _px, 16846 boxSizing: "border-box", 16847 position: "fixed" 16848 }; 16849 override[_width] = override["max" + _Width] = Math.ceil(bounds.width) + _px; 16850 override[_height] = override["max" + _Height] = Math.ceil(bounds.height) + _px; 16851 override[_margin] = override[_margin + _Top] = override[_margin + _Right] = override[_margin + _Bottom] = override[_margin + _Left] = "0"; 16852 override[_padding] = cs2[_padding]; 16853 override[_padding + _Top] = cs2[_padding + _Top]; 16854 override[_padding + _Right] = cs2[_padding + _Right]; 16855 override[_padding + _Bottom] = cs2[_padding + _Bottom]; 16856 override[_padding + _Left] = cs2[_padding + _Left]; 16857 pinActiveState = _copyState(pinOriginalState, override, pinReparent); 16858 } 16859 if (animation) { 16860 initted = animation._initted; 16861 _suppressOverwrites2(1); 16862 animation.render(animation.duration(), true, true); 16863 pinChange = pinGetter(direction.a) - pinStart + change + otherPinOffset; 16864 change !== pinChange && useFixedPosition && pinActiveState.splice(pinActiveState.length - 2, 2); 16865 animation.render(0, true, true); 16866 initted || animation.invalidate(); 16867 _suppressOverwrites2(0); 16868 } else { 16869 pinChange = change; 16870 } 16871 } else if (trigger && scrollFunc() && !containerAnimation) { 16872 bounds = trigger.parentNode; 16873 while (bounds && bounds !== _body2) { 16874 if (bounds._pinOffset) { 16875 start2 -= bounds._pinOffset; 16876 end2 -= bounds._pinOffset; 16877 } 16878 bounds = bounds.parentNode; 16879 } 16880 } 16881 revertedPins && revertedPins.forEach(function(t) { 16882 return t.revert(false); 16883 }); 16884 self2.start = start2; 16885 self2.end = end2; 16886 scroll1 = scroll2 = scrollFunc(); 16887 if (!containerAnimation) { 16888 scroll1 < prevScroll && scrollFunc(prevScroll); 16889 self2.scroll.rec = 0; 16890 } 16891 self2.revert(false); 16892 if (snapDelayedCall) { 16893 lastSnap = -1; 16894 self2.isActive && scrollFunc(start2 + change * prevProgress); 16895 snapDelayedCall.restart(true); 16896 } 16897 _refreshing = 0; 16898 animation && isToggle && (animation._initted || prevAnimProgress) && animation.progress() !== prevAnimProgress && animation.progress(prevAnimProgress, true).render(animation.time(), true, true); 16899 if (prevProgress !== self2.progress || containerAnimation) { 16900 animation && !isToggle && animation.totalProgress(prevProgress, true); 16901 self2.progress = prevProgress; 16902 self2.update(0, 0, 1); 16903 } 16904 pin && pinSpacing && (spacer._pinOffset = Math.round(self2.progress * pinChange)); 16905 onRefresh && onRefresh(self2); 16906 }; 16907 self2.getVelocity = function() { 16908 return (scrollFunc() - scroll2) / (_getTime2() - _time2) * 1e3 || 0; 16909 }; 16910 self2.endAnimation = function() { 16911 _endAnimation(self2.callbackAnimation); 16912 if (animation) { 16913 scrubTween ? scrubTween.progress(1) : !animation.paused() ? _endAnimation(animation, animation.reversed()) : isToggle || _endAnimation(animation, self2.direction < 0, 1); 16914 } 16915 }; 16916 self2.labelToScroll = function(label) { 16917 return animation && animation.labels && (start2 || self2.refresh() || start2) + animation.labels[label] / animation.duration() * change || 0; 16918 }; 16919 self2.getTrailing = function(name) { 16920 var i = _triggers.indexOf(self2), a = self2.direction > 0 ? _triggers.slice(0, i).reverse() : _triggers.slice(i + 1); 16921 return (_isString3(name) ? a.filter(function(t) { 16922 return t.vars.preventOverlaps === name; 16923 }) : a).filter(function(t) { 16924 return self2.direction > 0 ? t.end <= start2 : t.start >= end2; 16925 }); 16926 }; 16927 self2.update = function(reset, recordVelocity, forceFake) { 16928 if (containerAnimation && !forceFake && !reset) { 16929 return; 16930 } 16931 var scroll = self2.scroll(), p = reset ? 0 : (scroll - start2) / change, clipped = p < 0 ? 0 : p > 1 ? 1 : p || 0, prevProgress2 = self2.progress, isActive, wasActive, toggleState, action, stateChanged, toggled, isAtMax, isTakingAction; 16932 if (recordVelocity) { 16933 scroll2 = scroll1; 16934 scroll1 = containerAnimation ? scrollFunc() : scroll; 16935 if (snap3) { 16936 snap22 = snap1; 16937 snap1 = animation && !isToggle ? animation.totalProgress() : clipped; 16938 } 16939 } 16940 anticipatePin && !clipped && pin && !_refreshing && !_startup2 && _lastScrollTime && start2 < scroll + (scroll - scroll2) / (_getTime2() - _time2) * anticipatePin && (clipped = 1e-4); 16941 if (clipped !== prevProgress2 && self2.enabled) { 16942 isActive = self2.isActive = !!clipped && clipped < 1; 16943 wasActive = !!prevProgress2 && prevProgress2 < 1; 16944 toggled = isActive !== wasActive; 16945 stateChanged = toggled || !!clipped !== !!prevProgress2; 16946 self2.direction = clipped > prevProgress2 ? 1 : -1; 16947 self2.progress = clipped; 16948 if (stateChanged && !_refreshing) { 16949 toggleState = clipped && !prevProgress2 ? 0 : clipped === 1 ? 1 : prevProgress2 === 1 ? 2 : 3; 16950 if (isToggle) { 16951 action = !toggled && toggleActions[toggleState + 1] !== "none" && toggleActions[toggleState + 1] || toggleActions[toggleState]; 16952 isTakingAction = animation && (action === "complete" || action === "reset" || action in animation); 16953 } 16954 } 16955 preventOverlaps && (toggled || isTakingAction) && (isTakingAction || scrub || !animation) && (_isFunction3(preventOverlaps) ? preventOverlaps(self2) : self2.getTrailing(preventOverlaps).forEach(function(t) { 16956 return t.endAnimation(); 16957 })); 16958 if (!isToggle) { 16959 if (scrubTween && !_refreshing && !_startup2) { 16960 (containerAnimation || _primary && _primary !== self2) && scrubTween.render(scrubTween._dp._time - scrubTween._start); 16961 if (scrubTween.resetTo) { 16962 scrubTween.resetTo("totalProgress", clipped, animation._tTime / animation._tDur); 16963 } else { 16964 scrubTween.vars.totalProgress = clipped; 16965 scrubTween.invalidate().restart(); 16966 } 16967 } else if (animation) { 16968 animation.totalProgress(clipped, !!_refreshing); 16969 } 16970 } 16971 if (pin) { 16972 reset && pinSpacing && (spacer.style[pinSpacing + direction.os2] = spacingStart); 16973 if (!useFixedPosition) { 16974 pinSetter(_round3(pinStart + pinChange * clipped)); 16975 } else if (stateChanged) { 16976 isAtMax = !reset && clipped > prevProgress2 && end2 + 1 > scroll && scroll + 1 >= _maxScroll(scroller, direction); 16977 if (pinReparent) { 16978 if (!reset && (isActive || isAtMax)) { 16979 var bounds = _getBounds(pin, true), _offset = scroll - start2; 16980 _reparent(pin, _body2, bounds.top + (direction === _vertical ? _offset : 0) + _px, bounds.left + (direction === _vertical ? 0 : _offset) + _px); 16981 } else { 16982 _reparent(pin, spacer); 16983 } 16984 } 16985 _setState(isActive || isAtMax ? pinActiveState : pinState); 16986 pinChange !== change && clipped < 1 && isActive || pinSetter(pinStart + (clipped === 1 && !isAtMax ? pinChange : 0)); 16987 } 16988 } 16989 snap3 && !tweenTo.tween && !_refreshing && !_startup2 && snapDelayedCall.restart(true); 16990 toggleClass && (toggled || once && clipped && (clipped < 1 || !_limitCallbacks)) && _toArray(toggleClass.targets).forEach(function(el) { 16991 return el.classList[isActive || once ? "add" : "remove"](toggleClass.className); 16992 }); 16993 onUpdate && !isToggle && !reset && onUpdate(self2); 16994 if (stateChanged && !_refreshing) { 16995 if (isToggle) { 16996 if (isTakingAction) { 16997 if (action === "complete") { 16998 animation.pause().totalProgress(1); 16999 } else if (action === "reset") { 17000 animation.restart(true).pause(); 17001 } else if (action === "restart") { 17002 animation.restart(true); 17003 } else { 17004 animation[action](); 17005 } 17006 } 17007 onUpdate && onUpdate(self2); 17008 } 17009 if (toggled || !_limitCallbacks) { 17010 onToggle && toggled && _callback3(self2, onToggle); 17011 callbacks[toggleState] && _callback3(self2, callbacks[toggleState]); 17012 once && (clipped === 1 ? self2.kill(false, 1) : callbacks[toggleState] = 0); 17013 if (!toggled) { 17014 toggleState = clipped === 1 ? 1 : 3; 17015 callbacks[toggleState] && _callback3(self2, callbacks[toggleState]); 17016 } 17017 } 17018 if (fastScrollEnd && !isActive && Math.abs(self2.getVelocity()) > (_isNumber3(fastScrollEnd) ? fastScrollEnd : 2500)) { 17019 _endAnimation(self2.callbackAnimation); 17020 scrubTween ? scrubTween.progress(1) : _endAnimation(animation, !clipped, 1); 17021 } 17022 } else if (isToggle && onUpdate && !_refreshing) { 17023 onUpdate(self2); 17024 } 17025 } 17026 if (markerEndSetter) { 17027 var n = containerAnimation ? scroll / containerAnimation.duration() * (containerAnimation._caScrollDist || 0) : scroll; 17028 markerStartSetter(n + (markerStartTrigger._isFlipped ? 1 : 0)); 17029 markerEndSetter(n); 17030 } 17031 caMarkerSetter && caMarkerSetter(-scroll / containerAnimation.duration() * (containerAnimation._caScrollDist || 0)); 17032 }; 17033 self2.enable = function(reset, refresh) { 17034 if (!self2.enabled) { 17035 self2.enabled = true; 17036 _addListener3(scroller, "resize", _onResize); 17037 _addListener3(isViewport ? _doc4 : scroller, "scroll", _onScroll3); 17038 onRefreshInit && _addListener3(ScrollTrigger3, "refreshInit", onRefreshInit); 17039 if (reset !== false) { 17040 self2.progress = prevProgress = 0; 17041 scroll1 = scroll2 = lastSnap = scrollFunc(); 17042 } 17043 refresh !== false && self2.refresh(); 17044 } 17045 }; 17046 self2.getTween = function(snap4) { 17047 return snap4 && tweenTo ? tweenTo.tween : scrubTween; 17048 }; 17049 self2.setPositions = function(newStart, newEnd) { 17050 if (pin) { 17051 pinStart += newStart - start2; 17052 pinChange += newEnd - newStart - change; 17053 } 17054 self2.start = start2 = newStart; 17055 self2.end = end2 = newEnd; 17056 change = newEnd - newStart; 17057 self2.update(); 17058 }; 17059 self2.disable = function(reset, allowAnimation) { 17060 if (self2.enabled) { 17061 reset !== false && self2.revert(); 17062 self2.enabled = self2.isActive = false; 17063 allowAnimation || scrubTween && scrubTween.pause(); 17064 prevScroll = 0; 17065 pinCache && (pinCache.uncache = 1); 17066 onRefreshInit && _removeListener3(ScrollTrigger3, "refreshInit", onRefreshInit); 17067 if (snapDelayedCall) { 17068 snapDelayedCall.pause(); 17069 tweenTo.tween && tweenTo.tween.kill() && (tweenTo.tween = 0); 17070 } 17071 if (!isViewport) { 17072 var i = _triggers.length; 17073 while (i--) { 17074 if (_triggers[i].scroller === scroller && _triggers[i] !== self2) { 17075 return; 17076 } 17077 } 17078 _removeListener3(scroller, "resize", _onResize); 17079 _removeListener3(scroller, "scroll", _onScroll3); 17080 } 17081 } 17082 }; 17083 self2.kill = function(revert, allowAnimation) { 17084 self2.disable(revert, allowAnimation); 17085 scrubTween && !allowAnimation && scrubTween.kill(); 17086 id && delete _ids[id]; 17087 var i = _triggers.indexOf(self2); 17088 i >= 0 && _triggers.splice(i, 1); 17089 i === _i && _direction > 0 && _i--; 17090 i = 0; 17091 _triggers.forEach(function(t) { 17092 return t.scroller === self2.scroller && (i = 1); 17093 }); 17094 i || (self2.scroll.rec = 0); 17095 if (animation) { 17096 animation.scrollTrigger = null; 17097 revert && animation.render(-1); 17098 allowAnimation || animation.kill(); 17099 } 17100 markerStart && [markerStart, markerEnd, markerStartTrigger, markerEndTrigger].forEach(function(m) { 17101 return m.parentNode && m.parentNode.removeChild(m); 17102 }); 17103 _primary === self2 && (_primary = 0); 17104 if (pin) { 17105 pinCache && (pinCache.uncache = 1); 17106 i = 0; 17107 _triggers.forEach(function(t) { 17108 return t.pin === pin && i++; 17109 }); 17110 i || (pinCache.spacer = 0); 17111 } 17112 vars.onKill && vars.onKill(self2); 17113 }; 17114 self2.enable(false, false); 17115 customRevertReturn && customRevertReturn(self2); 17116 !animation || !animation.add || change ? self2.refresh() : gsap3.delayedCall(0.01, function() { 17117 return start2 || end2 || self2.refresh(); 17118 }) && (change = 0.01) && (start2 = end2 = 0); 17119 }; 17120 ScrollTrigger3.register = function register4(core) { 17121 if (!_coreInitted3) { 17122 gsap3 = core || _getGSAP3(); 17123 _windowExists5() && window.document && ScrollTrigger3.enable(); 17124 _coreInitted3 = _enabled; 17125 } 17126 return _coreInitted3; 17127 }; 17128 ScrollTrigger3.defaults = function defaults3(config3) { 17129 if (config3) { 17130 for (var p in config3) { 17131 _defaults2[p] = config3[p]; 17132 } 17133 } 17134 return _defaults2; 17135 }; 17136 ScrollTrigger3.disable = function disable(reset, kill3) { 17137 _enabled = 0; 17138 _triggers.forEach(function(trigger) { 17139 return trigger[kill3 ? "kill" : "disable"](reset); 17140 }); 17141 _removeListener3(_win4, "wheel", _onScroll3); 17142 _removeListener3(_doc4, "scroll", _onScroll3); 17143 clearInterval(_syncInterval); 17144 _removeListener3(_doc4, "touchcancel", _passThrough3); 17145 _removeListener3(_body2, "touchstart", _passThrough3); 17146 _multiListener(_removeListener3, _doc4, "pointerdown,touchstart,mousedown", _pointerDownHandler); 17147 _multiListener(_removeListener3, _doc4, "pointerup,touchend,mouseup", _pointerUpHandler); 17148 _resizeDelay.kill(); 17149 _iterateAutoRefresh(_removeListener3); 17150 for (var i = 0; i < _scrollers.length; i += 3) { 17151 _wheelListener(_removeListener3, _scrollers[i], _scrollers[i + 1]); 17152 _wheelListener(_removeListener3, _scrollers[i], _scrollers[i + 2]); 17153 } 17154 }; 17155 ScrollTrigger3.enable = function enable() { 17156 _win4 = window; 17157 _doc4 = document; 17158 _docEl2 = _doc4.documentElement; 17159 _body2 = _doc4.body; 17160 if (gsap3) { 17161 _toArray = gsap3.utils.toArray; 17162 _clamp4 = gsap3.utils.clamp; 17163 _suppressOverwrites2 = gsap3.core.suppressOverwrites || _passThrough3; 17164 gsap3.core.globals("ScrollTrigger", ScrollTrigger3); 17165 if (_body2) { 17166 _enabled = 1; 17167 Observer.register(gsap3); 17168 ScrollTrigger3.isTouch = Observer.isTouch; 17169 _fixIOSBug = Observer.isTouch && /(iPad|iPhone|iPod|Mac)/g.test(navigator.userAgent); 17170 _addListener3(_win4, "wheel", _onScroll3); 17171 _root2 = [_win4, _doc4, _docEl2, _body2]; 17172 ScrollTrigger3.matchMedia({ 17173 "(orientation: portrait)": function orientationPortrait() { 17174 _setBaseDimensions(); 17175 return _setBaseDimensions; 17176 } 17177 }); 17178 _addListener3(_doc4, "scroll", _onScroll3); 17179 var bodyStyle = _body2.style, border = bodyStyle.borderTopStyle, bounds, i; 17180 bodyStyle.borderTopStyle = "solid"; 17181 bounds = _getBounds(_body2); 17182 _vertical.m = Math.round(bounds.top + _vertical.sc()) || 0; 17183 _horizontal.m = Math.round(bounds.left + _horizontal.sc()) || 0; 17184 border ? bodyStyle.borderTopStyle = border : bodyStyle.removeProperty("border-top-style"); 17185 _syncInterval = setInterval(_sync, 250); 17186 gsap3.delayedCall(0.5, function() { 17187 return _startup2 = 0; 17188 }); 17189 _addListener3(_doc4, "touchcancel", _passThrough3); 17190 _addListener3(_body2, "touchstart", _passThrough3); 17191 _multiListener(_addListener3, _doc4, "pointerdown,touchstart,mousedown", _pointerDownHandler); 17192 _multiListener(_addListener3, _doc4, "pointerup,touchend,mouseup", _pointerUpHandler); 17193 _transformProp2 = gsap3.utils.checkPrefix("transform"); 17194 _stateProps.push(_transformProp2); 17195 _coreInitted3 = _getTime2(); 17196 _resizeDelay = gsap3.delayedCall(0.2, _refreshAll).pause(); 17197 _autoRefresh = [_doc4, "visibilitychange", function() { 17198 var w = _win4.innerWidth, h = _win4.innerHeight; 17199 if (_doc4.hidden) { 17200 _prevWidth = w; 17201 _prevHeight = h; 17202 } else if (_prevWidth !== w || _prevHeight !== h) { 17203 _onResize(); 17204 } 17205 }, _doc4, "DOMContentLoaded", _refreshAll, _win4, "load", _refreshAll, _win4, "resize", _onResize]; 17206 _iterateAutoRefresh(_addListener3); 17207 _triggers.forEach(function(trigger) { 17208 return trigger.enable(0, 1); 17209 }); 17210 for (i = 0; i < _scrollers.length; i += 3) { 17211 _wheelListener(_removeListener3, _scrollers[i], _scrollers[i + 1]); 17212 _wheelListener(_removeListener3, _scrollers[i], _scrollers[i + 2]); 17213 } 17214 } 17215 } 17216 }; 17217 ScrollTrigger3.config = function config3(vars) { 17218 "limitCallbacks" in vars && (_limitCallbacks = !!vars.limitCallbacks); 17219 var ms = vars.syncInterval; 17220 ms && clearInterval(_syncInterval) || (_syncInterval = ms) && setInterval(_sync, ms); 17221 "ignoreMobileResize" in vars && (_ignoreMobileResize = ScrollTrigger3.isTouch === 1 && vars.ignoreMobileResize); 17222 if ("autoRefreshEvents" in vars) { 17223 _iterateAutoRefresh(_removeListener3) || _iterateAutoRefresh(_addListener3, vars.autoRefreshEvents || "none"); 17224 _ignoreResize = (vars.autoRefreshEvents + "").indexOf("resize") === -1; 17225 } 17226 }; 17227 ScrollTrigger3.scrollerProxy = function scrollerProxy(target, vars) { 17228 var t = _getTarget(target), i = _scrollers.indexOf(t), isViewport = _isViewport3(t); 17229 if (~i) { 17230 _scrollers.splice(i, isViewport ? 6 : 2); 17231 } 17232 if (vars) { 17233 isViewport ? _proxies.unshift(_win4, vars, _body2, vars, _docEl2, vars) : _proxies.unshift(t, vars); 17234 } 17235 }; 17236 ScrollTrigger3.matchMedia = function matchMedia(vars) { 17237 var mq, p, i, func, result; 17238 for (p in vars) { 17239 i = _media.indexOf(p); 17240 func = vars[p]; 17241 _creatingMedia = p; 17242 if (p === "all") { 17243 func(); 17244 } else { 17245 mq = _win4.matchMedia(p); 17246 if (mq) { 17247 mq.matches && (result = func()); 17248 if (~i) { 17249 _media[i + 1] = _combineFunc(_media[i + 1], func); 17250 _media[i + 2] = _combineFunc(_media[i + 2], result); 17251 } else { 17252 i = _media.length; 17253 _media.push(p, func, result); 17254 mq.addListener ? mq.addListener(_onMediaChange) : mq.addEventListener("change", _onMediaChange); 17255 } 17256 _media[i + 3] = mq.matches; 17257 } 17258 } 17259 _creatingMedia = 0; 17260 } 17261 return _media; 17262 }; 17263 ScrollTrigger3.clearMatchMedia = function clearMatchMedia(query) { 17264 query || (_media.length = 0); 17265 query = _media.indexOf(query); 17266 query >= 0 && _media.splice(query, 4); 17267 }; 17268 ScrollTrigger3.isInViewport = function isInViewport(element, ratio, horizontal) { 17269 var bounds = (_isString3(element) ? _getTarget(element) : element).getBoundingClientRect(), offset2 = bounds[horizontal ? _width : _height] * ratio || 0; 17270 return horizontal ? bounds.right - offset2 > 0 && bounds.left + offset2 < _win4.innerWidth : bounds.bottom - offset2 > 0 && bounds.top + offset2 < _win4.innerHeight; 17271 }; 17272 ScrollTrigger3.positionInViewport = function positionInViewport(element, referencePoint, horizontal) { 17273 _isString3(element) && (element = _getTarget(element)); 17274 var bounds = element.getBoundingClientRect(), size = bounds[horizontal ? _width : _height], offset2 = referencePoint == null ? size / 2 : referencePoint in _keywords ? _keywords[referencePoint] * size : ~referencePoint.indexOf("%") ? parseFloat(referencePoint) * size / 100 : parseFloat(referencePoint) || 0; 17275 return horizontal ? (bounds.left + offset2) / _win4.innerWidth : (bounds.top + offset2) / _win4.innerHeight; 17276 }; 17277 return ScrollTrigger3; 17278 }(); 17279 ScrollTrigger2.version = "3.10.4"; 17280 ScrollTrigger2.saveStyles = function(targets) { 17281 return targets ? _toArray(targets).forEach(function(target) { 17282 if (target && target.style) { 17283 var i = _savedStyles.indexOf(target); 17284 i >= 0 && _savedStyles.splice(i, 5); 17285 _savedStyles.push(target, target.style.cssText, target.getBBox && target.getAttribute("transform"), gsap3.core.getCache(target), _creatingMedia); 17286 } 17287 }) : _savedStyles; 17288 }; 17289 ScrollTrigger2.revert = function(soft, media) { 17290 return _revertAll(!soft, media); 17291 }; 17292 ScrollTrigger2.create = function(vars, animation) { 17293 return new ScrollTrigger2(vars, animation); 17294 }; 17295 ScrollTrigger2.refresh = function(safe) { 17296 return safe ? _onResize() : (_coreInitted3 || ScrollTrigger2.register()) && _refreshAll(true); 17297 }; 17298 ScrollTrigger2.update = _updateAll; 17299 ScrollTrigger2.clearScrollMemory = _clearScrollMemory; 17300 ScrollTrigger2.maxScroll = function(element, horizontal) { 17301 return _maxScroll(element, horizontal ? _horizontal : _vertical); 17302 }; 17303 ScrollTrigger2.getScrollFunc = function(element, horizontal) { 17304 return _getScrollFunc(_getTarget(element), horizontal ? _horizontal : _vertical); 17305 }; 17306 ScrollTrigger2.getById = function(id) { 17307 return _ids[id]; 17308 }; 17309 ScrollTrigger2.getAll = function() { 17310 return _triggers.filter(function(t) { 17311 return t.vars.id !== "ScrollSmoother"; 17312 }); 17313 }; 17314 ScrollTrigger2.isScrolling = function() { 17315 return !!_lastScrollTime; 17316 }; 17317 ScrollTrigger2.snapDirectional = _snapDirectional; 17318 ScrollTrigger2.addEventListener = function(type, callback) { 17319 var a = _listeners[type] || (_listeners[type] = []); 17320 ~a.indexOf(callback) || a.push(callback); 17321 }; 17322 ScrollTrigger2.removeEventListener = function(type, callback) { 17323 var a = _listeners[type], i = a && a.indexOf(callback); 17324 i >= 0 && a.splice(i, 1); 17325 }; 17326 ScrollTrigger2.batch = function(targets, vars) { 17327 var result = [], varsCopy = {}, interval = vars.interval || 0.016, batchMax = vars.batchMax || 1e9, proxyCallback = function proxyCallback2(type, callback) { 17328 var elements = [], triggers = [], delay = gsap3.delayedCall(interval, function() { 17329 callback(elements, triggers); 17330 elements = []; 17331 triggers = []; 17332 }).pause(); 17333 return function(self2) { 17334 elements.length || delay.restart(true); 17335 elements.push(self2.trigger); 17336 triggers.push(self2); 17337 batchMax <= elements.length && delay.progress(1); 17338 }; 17339 }, p; 17340 for (p in vars) { 17341 varsCopy[p] = p.substr(0, 2) === "on" && _isFunction3(vars[p]) && p !== "onRefreshInit" ? proxyCallback(p, vars[p]) : vars[p]; 17342 } 17343 if (_isFunction3(batchMax)) { 17344 batchMax = batchMax(); 17345 _addListener3(ScrollTrigger2, "refresh", function() { 17346 return batchMax = vars.batchMax(); 17347 }); 17348 } 17349 _toArray(targets).forEach(function(target) { 17350 var config3 = {}; 17351 for (p in varsCopy) { 17352 config3[p] = varsCopy[p]; 17353 } 17354 config3.trigger = target; 17355 result.push(ScrollTrigger2.create(config3)); 17356 }); 17357 return result; 17358 }; 17359 var _clampScrollAndGetDurationMultiplier = function _clampScrollAndGetDurationMultiplier2(scrollFunc, current, end2, max2) { 17360 current > max2 ? scrollFunc(max2) : current < 0 && scrollFunc(0); 17361 return end2 > max2 ? (max2 - current) / (end2 - current) : end2 < 0 ? current / (current - end2) : 1; 17362 }; 17363 var _allowNativePanning = function _allowNativePanning2(target, direction) { 17364 if (direction === true) { 17365 target.style.removeProperty("touch-action"); 17366 } else { 17367 target.style.touchAction = direction === true ? "auto" : direction ? "pan-" + direction + (Observer.isTouch ? " pinch-zoom" : "") : "none"; 17368 } 17369 target === _docEl2 && _allowNativePanning2(_body2, direction); 17370 }; 17371 var _overflow = { 17372 auto: 1, 17373 scroll: 1 17374 }; 17375 var _nestedScroll = function _nestedScroll2(_ref5) { 17376 var event = _ref5.event, target = _ref5.target, axis = _ref5.axis; 17377 var node = (event.changedTouches ? event.changedTouches[0] : event).target, cache = node._gsap || gsap3.core.getCache(node), time = _getTime2(), cs; 17378 if (!cache._isScrollT || time - cache._isScrollT > 2e3) { 17379 while (node && node.scrollHeight <= node.clientHeight) { 17380 node = node.parentNode; 17381 } 17382 cache._isScroll = node && !_isViewport3(node) && node !== target && (_overflow[(cs = _getComputedStyle(node)).overflowY] || _overflow[cs.overflowX]); 17383 cache._isScrollT = time; 17384 } 17385 (cache._isScroll || axis === "x") && (event._gsapAllow = true); 17386 }; 17387 var _inputObserver = function _inputObserver2(target, type, inputs, nested) { 17388 return Observer.create({ 17389 target, 17390 capture: true, 17391 debounce: false, 17392 lockAxis: true, 17393 type, 17394 onWheel: nested = nested && _nestedScroll, 17395 onPress: nested, 17396 onDrag: nested, 17397 onScroll: nested, 17398 onEnable: function onEnable() { 17399 return inputs && _addListener3(_doc4, Observer.eventTypes[0], _captureInputs, false, true); 17400 }, 17401 onDisable: function onDisable() { 17402 return _removeListener3(_doc4, Observer.eventTypes[0], _captureInputs, true); 17403 } 17404 }); 17405 }; 17406 var _inputExp = /(input|label|select|textarea)/i; 17407 var _inputIsFocused; 17408 var _captureInputs = function _captureInputs2(e) { 17409 var isInput = _inputExp.test(e.target.tagName); 17410 if (isInput || _inputIsFocused) { 17411 e._gsapAllow = true; 17412 _inputIsFocused = isInput; 17413 } 17414 }; 17415 var _getScrollNormalizer = function _getScrollNormalizer2(vars) { 17416 _isObject3(vars) || (vars = {}); 17417 vars.preventDefault = vars.isNormalizer = vars.allowClicks = true; 17418 vars.type || (vars.type = "wheel,touch"); 17419 vars.debounce = !!vars.debounce; 17420 vars.id = vars.id || "normalizer"; 17421 var _vars2 = vars, normalizeScrollX = _vars2.normalizeScrollX, momentum = _vars2.momentum, allowNestedScroll = _vars2.allowNestedScroll, self2, maxY, target = _getTarget(vars.target) || _docEl2, smoother = gsap3.core.globals().ScrollSmoother, content = _fixIOSBug && (vars.content && _getTarget(vars.content) || smoother && smoother.get() && smoother.get().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() { 17422 return momentum(self2); 17423 } : function() { 17424 return momentum || 2.8; 17425 }, skipTouchMove, lastRefreshID, inputObserver = _inputObserver(target, vars.type, true, allowNestedScroll), resumeTouchMove = function resumeTouchMove2() { 17426 return skipTouchMove = false; 17427 }, scrollClampX = _passThrough3, scrollClampY = _passThrough3, updateClamps = function updateClamps2() { 17428 maxY = _maxScroll(target, _vertical); 17429 scrollClampY = _clamp4(_fixIOSBug ? 1 : 0, maxY); 17430 normalizeScrollX && (scrollClampX = _clamp4(0, _maxScroll(target, _horizontal))); 17431 lastRefreshID = _refreshID; 17432 }, ignoreDrag = function ignoreDrag2() { 17433 if (skipTouchMove) { 17434 requestAnimationFrame(resumeTouchMove); 17435 var offset2 = _round3(self2.deltaY / 2), scroll = scrollClampY(scrollFuncY.v - offset2); 17436 if (content && scroll !== scrollFuncY.v + scrollFuncY.offset) { 17437 scrollFuncY.offset = scroll - scrollFuncY.v; 17438 content.style.transform = "translateY(" + -scrollFuncY.offset + "px)"; 17439 content._gsap && (content._gsap.y = -scrollFuncY.offset + "px"); 17440 scrollFuncY.cacheID = _scrollers.cache; 17441 _updateAll(); 17442 } 17443 return true; 17444 } 17445 if (content) { 17446 content.style.transform = "translateY(0px)"; 17447 scrollFuncY.offset = scrollFuncY.cacheID = 0; 17448 content._gsap && (content._gsap.y = "0px"); 17449 } 17450 skipTouchMove = true; 17451 }, tween, startScrollX, startScrollY, onStopDelayedCall, onResize = function onResize2() { 17452 updateClamps(); 17453 if (tween.isActive() && tween.vars.scrollY > maxY) { 17454 scrollFuncY() > maxY ? tween.progress(1) && scrollFuncY(maxY) : tween.resetTo("scrollY", maxY); 17455 } 17456 }; 17457 vars.ignoreCheck = function(e) { 17458 return _fixIOSBug && e.type === "touchmove" && ignoreDrag(e) || scale > 1.05 && e.type !== "touchstart" || self2.isGesturing || e.touches && e.touches.length > 1; 17459 }; 17460 vars.onPress = function() { 17461 var prevScale = scale; 17462 scale = _round3((_win4.visualViewport && _win4.visualViewport.scale || 1) / initialScale); 17463 tween.pause(); 17464 prevScale !== scale && _allowNativePanning(target, scale > 1.01 ? true : normalizeScrollX ? false : "x"); 17465 skipTouchMove = false; 17466 startScrollX = scrollFuncX(); 17467 startScrollY = scrollFuncY(); 17468 updateClamps(); 17469 lastRefreshID = _refreshID; 17470 }; 17471 vars.onRelease = vars.onGestureStart = function(self3, wasDragging) { 17472 if (content) { 17473 content.style.transform = "translateY(0px)"; 17474 scrollFuncY.offset = scrollFuncY.cacheID = 0; 17475 content._gsap && (content._gsap.y = "0px"); 17476 } 17477 if (!wasDragging) { 17478 onStopDelayedCall.restart(true); 17479 } else { 17480 _scrollers.cache++; 17481 var dur = resolveMomentumDuration(), currentScroll, endScroll; 17482 if (normalizeScrollX) { 17483 currentScroll = scrollFuncX(); 17484 endScroll = currentScroll + dur * 0.05 * -self3.velocityX / 0.227; 17485 dur *= _clampScrollAndGetDurationMultiplier(scrollFuncX, currentScroll, endScroll, _maxScroll(target, _horizontal)); 17486 tween.vars.scrollX = scrollClampX(endScroll); 17487 } 17488 currentScroll = scrollFuncY(); 17489 endScroll = currentScroll + dur * 0.05 * -self3.velocityY / 0.227; 17490 dur *= _clampScrollAndGetDurationMultiplier(scrollFuncY, currentScroll, endScroll, _maxScroll(target, _vertical)); 17491 tween.vars.scrollY = scrollClampY(endScroll); 17492 tween.invalidate().duration(dur).play(0.01); 17493 if (_fixIOSBug && tween.vars.scrollY >= maxY || currentScroll >= maxY - 1) { 17494 gsap3.to({}, { 17495 onUpdate: onResize, 17496 duration: dur 17497 }); 17498 } 17499 } 17500 }; 17501 vars.onWheel = function() { 17502 tween._ts && tween.pause(); 17503 if (_getTime2() - wheelRefresh > 1e3) { 17504 lastRefreshID = 0; 17505 wheelRefresh = _getTime2(); 17506 } 17507 }; 17508 vars.onChange = function(self3, dx, dy, xArray, yArray) { 17509 _refreshID !== lastRefreshID && updateClamps(); 17510 dx && normalizeScrollX && scrollFuncX(scrollClampX(xArray[2] === dx ? startScrollX + (self3.startX - self3.x) : scrollFuncX() + dx - xArray[1])); 17511 dy && scrollFuncY(scrollClampY(yArray[2] === dy ? startScrollY + (self3.startY - self3.y) : scrollFuncY() + dy - yArray[1])); 17512 _updateAll(); 17513 }; 17514 vars.onEnable = function() { 17515 _allowNativePanning(target, normalizeScrollX ? false : "x"); 17516 _addListener3(_win4, "resize", onResize); 17517 inputObserver.enable(); 17518 }; 17519 vars.onDisable = function() { 17520 _allowNativePanning(target, true); 17521 _removeListener3(_win4, "resize", onResize); 17522 inputObserver.kill(); 17523 }; 17524 self2 = new Observer(vars); 17525 self2.iOS = _fixIOSBug; 17526 _fixIOSBug && !scrollFuncY() && scrollFuncY(1); 17527 onStopDelayedCall = self2._dc; 17528 tween = gsap3.to(self2, { 17529 ease: "power4", 17530 paused: true, 17531 scrollX: normalizeScrollX ? "+=0.1" : "+=0", 17532 scrollY: "+=0.1", 17533 onComplete: onStopDelayedCall.vars.onComplete 17534 }); 17535 return self2; 17536 }; 17537 ScrollTrigger2.sort = function(func) { 17538 return _triggers.sort(func || function(a, b) { 17539 return (a.vars.refreshPriority || 0) * -1e6 + a.start - (b.start + (b.vars.refreshPriority || 0) * -1e6); 17540 }); 17541 }; 17542 ScrollTrigger2.observe = function(vars) { 17543 return new Observer(vars); 17544 }; 17545 ScrollTrigger2.normalizeScroll = function(vars) { 17546 if (typeof vars === "undefined") { 17547 return _normalizer2; 17548 } 17549 if (vars === true && _normalizer2) { 17550 return _normalizer2.enable(); 17551 } 17552 if (vars === false) { 17553 return _normalizer2 && _normalizer2.kill(); 17554 } 17555 var normalizer = vars instanceof Observer ? vars : _getScrollNormalizer(vars); 17556 _normalizer2 && _normalizer2.target === normalizer.target && _normalizer2.kill(); 17557 _isViewport3(normalizer.target) && (_normalizer2 = normalizer); 17558 return normalizer; 17559 }; 17560 ScrollTrigger2.core = { 17561 _getVelocityProp, 17562 _inputObserver, 17563 _scrollers, 17564 _proxies, 17565 bridge: { 17566 ss: function ss() { 17567 _lastScrollTime || _dispatch("scrollStart"); 17568 _lastScrollTime = _getTime2(); 17569 }, 17570 ref: function ref() { 17571 return _refreshing; 17572 } 17573 } 17574 }; 17575 _getGSAP3() && gsap3.registerPlugin(ScrollTrigger2); 17576 17577
17577// components/page-builder/accordion/index.js 17578 window.jQuery = import_jquery.default; 17579 window.$ = import_jquery.default; 17580 function accordion() { 17581 $(".accordion-heading").on("click", function() { 17582 $(this).next().slideToggle(200); 17583 $(this).find("span").toggleClass("rotate-90 !-rotate-90"); 17584 $(this).closest(".border").toggleClass("rounded-3xl rounded-tl-3xl rounded-tr-3xl rounded-br-3xl"); 17585 }); 17586 $(".accordions").each(function() { 17587 ScrollTrigger2.create({ 17588 trigger: $(this), 17589 start: "top 80%", 17590 onEnter: () => { 17591 gsapWithCSS.timeline().to($(".faq-buttons"), { opacity: 1, duration: 0.25 }).to($(this), { opacity: 1, duration: 0.25 }, 0).addLabel("start").fromTo($(".faq-buttons button"), { 17592 opacity: 0 17593 }, { 17594 opacity: 1, 17595 stagger: 0.1 17596 }, "start").to($(this).find(".accordion > *"), { 17597 opacity: 1, 17598 stagger: 0.1 17599 }, "start"); 17600 } 17601 }); 17602 }); 17603 } 17604 17605
17605// components/page-builder/file-download/index.js 17606 var import_jquery2 = __toModule(require_jquery()); 17607 window.jQuery = import_jquery2.default; 17608 window.$ = import_jquery2.default; 17609 function file_download() { 17610 $(".download-button").on("click", function() { 17611 $(this).next().slideToggle(200); 17612 $(this).find("span").toggleClass("rotate-90 -rotate-90"); 17613 }); 17614 } 17615 17616
vendor: 58,046 bytes, lines 17616-19491
17616// node_modules/@glidejs/glide/dist/glide.esm.js 17617 function _typeof(obj) { 17618 "@babel/helpers - typeof"; 17619 if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { 17620 _typeof = function(obj2) { 17621 return typeof obj2; 17622 }; 17623 } else { 17624 _typeof = function(obj2) { 17625 return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; 17626 }; 17627 } 17628 return _typeof(obj); 17629 } 17630 function _classCallCheck(instance, Constructor) { 17631 if (!(instance instanceof Constructor)) { 17632 throw new TypeError("Cannot call a class as a function"); 17633 } 17634 } 17635 function _defineProperties2(target, props) { 17636 for (var i = 0; i < props.length; i++) { 17637 var descriptor = props[i]; 17638 descriptor.enumerable = descriptor.enumerable || false; 17639 descriptor.configurable = true; 17640 if ("value" in descriptor) 17641 descriptor.writable = true; 17642 Object.defineProperty(target, descriptor.key, descriptor); 17643 } 17644 } 17645 function _createClass2(Constructor, protoProps, staticProps) { 17646 if (protoProps) 17647 _defineProperties2(Constructor.prototype, protoProps); 17648 if (staticProps) 17649 _defineProperties2(Constructor, staticProps); 17650 return Constructor; 17651 } 17652 function _inherits(subClass, superClass) { 17653 if (typeof superClass !== "function" && superClass !== null) { 17654 throw new TypeError("Super expression must either be null or a function"); 17655 } 17656 subClass.prototype = Object.create(superClass && superClass.prototype, { 17657 constructor: { 17658 value: subClass, 17659 writable: true, 17660 configurable: true 17661 } 17662 }); 17663 if (superClass) 17664 _setPrototypeOf(subClass, superClass); 17665 } 17666 function _getPrototypeOf(o) { 17667 _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf2(o2) { 17668 return o2.__proto__ || Object.getPrototypeOf(o2); 17669 }; 17670 return _getPrototypeOf(o); 17671 } 17672 function _setPrototypeOf(o, p) { 17673 _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf2(o2, p2) { 17674 o2.__proto__ = p2; 17675 return o2; 17676 }; 17677 return _setPrototypeOf(o, p); 17678 } 17679 function _isNativeReflectConstruct() { 17680 if (typeof Reflect === "undefined" || !Reflect.construct) 17681 return false; 17682 if (Reflect.construct.sham) 17683 return false; 17684 if (typeof Proxy === "function") 17685 return true; 17686 try { 17687 Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() { 17688 })); 17689 return true; 17690 } catch (e) { 17691 return false; 17692 } 17693 } 17694 function _assertThisInitialized2(self2) { 17695 if (self2 === void 0) { 17696 throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); 17697 } 17698 return self2; 17699 } 17700 function _possibleConstructorReturn(self2, call) { 17701 if (call && (typeof call === "object" || typeof call === "function")) { 17702 return call; 17703 } else if (call !== void 0) { 17704 throw new TypeError("Derived constructors may only return object or undefined"); 17705 } 17706 return _assertThisInitialized2(self2); 17707 } 17708 function _createSuper(Derived) { 17709 var hasNativeReflectConstruct = _isNativeReflectConstruct(); 17710 return function _createSuperInternal() { 17711 var Super = _getPrototypeOf(Derived), result; 17712 if (hasNativeReflectConstruct) { 17713 var NewTarget = _getPrototypeOf(this).constructor; 17714 result = Reflect.construct(Super, arguments, NewTarget); 17715 } else { 17716 result = Super.apply(this, arguments); 17717 } 17718 return _possibleConstructorReturn(this, result); 17719 }; 17720 } 17721 function _superPropBase(object, property) { 17722 while (!Object.prototype.hasOwnProperty.call(object, property)) { 17723 object = _getPrototypeOf(object); 17724 if (object === null) 17725 break; 17726 } 17727 return object; 17728 } 17729 function _get3() { 17730 if (typeof Reflect !== "undefined" && Reflect.get) { 17731 _get3 = Reflect.get; 17732 } else { 17733 _get3 = function _get4(target, property, receiver) { 17734 var base = _superPropBase(target, property); 17735 if (!base) 17736 return; 17737 var desc = Object.getOwnPropertyDescriptor(base, property); 17738 if (desc.get) { 17739 return desc.get.call(arguments.length < 3 ? target : receiver); 17740 } 17741 return desc.value; 17742 }; 17743 } 17744 return _get3.apply(this, arguments); 17745 } 17746 var defaults2 = { 17747 type: "slider", 17748 startAt: 0, 17749 perView: 1, 17750 focusAt: 0, 17751 gap: 10, 17752 autoplay: false, 17753 hoverpause: true, 17754 keyboard: true, 17755 bound: false, 17756 swipeThreshold: 80, 17757 dragThreshold: 120, 17758 perSwipe: "", 17759 touchRatio: 0.5, 17760 touchAngle: 45, 17761 animationDuration: 400, 17762 rewind: true, 17763 rewindDuration: 800, 17764 animationTimingFunc: "cubic-bezier(.165, .840, .440, 1)", 17765 waitForTransition: true, 17766 throttle: 10, 17767 direction: "ltr", 17768 peek: 0, 17769 cloningRatio: 1, 17770 breakpoints: {}, 17771 classes: { 17772 swipeable: "glide--swipeable", 17773 dragging: "glide--dragging", 17774 direction: { 17775 ltr: "glide--ltr", 17776 rtl: "glide--rtl" 17777 }, 17778 type: { 17779 slider: "glide--slider", 17780 carousel: "glide--carousel" 17781 }, 17782 slide: { 17783 clone: "glide__slide--clone", 17784 active: "glide__slide--active" 17785 }, 17786 arrow: { 17787 disabled: "glide__arrow--disabled" 17788 }, 17789 nav: { 17790 active: "glide__bullet--active" 17791 } 17792 } 17793 }; 17794 function warn(msg) { 17795 console.error("[Glide warn]: ".concat(msg)); 17796 } 17797 function toInt(value) { 17798 return parseInt(value); 17799 } 17800 function toFloat(value) { 17801 return parseFloat(value); 17802 } 17803 function isString(value) { 17804 return typeof value === "string"; 17805 } 17806 function isObject(value) { 17807 var type = _typeof(value); 17808 return type === "function" || type === "object" && !!value; 17809 } 17810 function isFunction(value) { 17811 return typeof value === "function"; 17812 } 17813 function isUndefined(value) { 17814 return typeof value === "undefined"; 17815 } 17816 function isArray(value) { 17817 return value.constructor === Array; 17818 } 17819 function mount(glide, extensions, events) { 17820 var components = {}; 17821 for (var name in extensions) { 17822 if (isFunction(extensions[name])) { 17823 components[name] = extensions[name](glide, components, events); 17824 } else { 17825 warn("Extension must be a function"); 17826 } 17827 } 17828 for (var _name in components) { 17829 if (isFunction(components[_name].mount)) { 17830 components[_name].mount(); 17831 } 17832 } 17833 return components; 17834 } 17835 function define2(obj, prop, definition) { 17836 Object.defineProperty(obj, prop, definition); 17837 } 17838 function sortKeys(obj) { 17839 return Object.keys(obj).sort().reduce(function(r, k) { 17840 r[k] = obj[k]; 17841 return r[k], r; 17842 }, {}); 17843 } 17844 function mergeOptions(defaults3, settings) { 17845 var options = Object.assign({}, defaults3, settings); 17846 if (settings.hasOwnProperty("classes")) { 17847 options.classes = Object.assign({}, defaults3.classes, settings.classes); 17848 if (settings.classes.hasOwnProperty("direction")) { 17849 options.classes.direction = Object.assign({}, defaults3.classes.direction, settings.classes.direction); 17850 } 17851 if (settings.classes.hasOwnProperty("type")) { 17852 options.classes.type = Object.assign({}, defaults3.classes.type, settings.classes.type); 17853 } 17854 if (settings.classes.hasOwnProperty("slide")) { 17855 options.classes.slide = Object.assign({}, defaults3.classes.slide, settings.classes.slide); 17856 } 17857 if (settings.classes.hasOwnProperty("arrow")) { 17858 options.classes.arrow = Object.assign({}, defaults3.classes.arrow, settings.classes.arrow); 17859 } 17860 if (settings.classes.hasOwnProperty("nav")) { 17861 options.classes.nav = Object.assign({}, defaults3.classes.nav, settings.classes.nav); 17862 } 17863 } 17864 if (settings.hasOwnProperty("breakpoints")) { 17865 options.breakpoints = Object.assign({}, defaults3.breakpoints, settings.breakpoints); 17866 } 17867 return options; 17868 } 17869 var EventsBus = /* @__PURE__ */ function() { 17870 function EventsBus2() { 17871 var events = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; 17872 _classCallCheck(this, EventsBus2); 17873 this.events = events; 17874 this.hop = events.hasOwnProperty; 17875 } 17876 _createClass2(EventsBus2, [{ 17877 key: "on", 17878 value: function on(event, handler) { 17879 if (isArray(event)) { 17880 for (var i = 0; i < event.length; i++) { 17881 this.on(event[i], handler); 17882 } 17883 return; 17884 } 17885 if (!this.hop.call(this.events, event)) { 17886 this.events[event] = []; 17887 } 17888 var index = this.events[event].push(handler) - 1; 17889 return { 17890 remove: function remove() { 17891 delete this.events[event][index]; 17892 } 17893 }; 17894 } 17895 }, { 17896 key: "emit", 17897 value: function emit(event, context) { 17898 if (isArray(event)) { 17899 for (var i = 0; i < event.length; i++) { 17900 this.emit(event[i], context); 17901 } 17902 return; 17903 } 17904 if (!this.hop.call(this.events, event)) { 17905 return; 17906 } 17907 this.events[event].forEach(function(item) { 17908 item(context || {}); 17909 }); 17910 } 17911 }]); 17912 return EventsBus2; 17913 }(); 17914 var Glide$1 = /* @__PURE__ */ function() { 17915 function Glide2(selector3) { 17916 var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; 17917 _classCallCheck(this, Glide2); 17918 this._c = {}; 17919 this._t = []; 17920 this._e = new EventsBus(); 17921 this.disabled = false; 17922 this.selector = selector3; 17923 this.settings = mergeOptions(defaults2, options); 17924 this.index = this.settings.startAt; 17925 } 17926 _createClass2(Glide2, [{ 17927 key: "mount", 17928 value: function mount$1() { 17929 var extensions = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; 17930 this._e.emit("mount.before"); 17931 if (isObject(extensions)) { 17932 this._c = mount(this, extensions, this._e); 17933 } else { 17934 warn("You need to provide a object on `mount()`"); 17935 } 17936 this._e.emit("mount.after"); 17937 return this; 17938 } 17939 }, { 17940 key: "mutate", 17941 value: function mutate() { 17942 var transformers = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : []; 17943 if (isArray(transformers)) { 17944 this._t = transformers; 17945 } else { 17946 warn("You need to provide a array on `mutate()`"); 17947 } 17948 return this; 17949 } 17950 }, { 17951 key: "update", 17952 value: function update() { 17953 var settings = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; 17954 this.settings = mergeOptions(this.settings, settings); 17955 if (settings.hasOwnProperty("startAt")) { 17956 this.index = settings.startAt; 17957 } 17958 this._e.emit("update"); 17959 return this; 17960 } 17961 }, { 17962 key: "go", 17963 value: function go(pattern) { 17964 this._c.Run.make(pattern); 17965 return this; 17966 } 17967 }, { 17968 key: "move", 17969 value: function move(distance) { 17970 this._c.Transition.disable(); 17971 this._c.Move.make(distance); 17972 return this; 17973 } 17974 }, { 17975 key: "destroy", 17976 value: function destroy() { 17977 this._e.emit("destroy"); 17978 return this; 17979 } 17980 }, { 17981 key: "play", 17982 value: function play() { 17983 var interval = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false; 17984 if (interval) { 17985 this.settings.autoplay = interval; 17986 } 17987 this._e.emit("play"); 17988 return this; 17989 } 17990 }, { 17991 key: "pause", 17992 value: function pause() { 17993 this._e.emit("pause"); 17994 return this; 17995 } 17996 }, { 17997 key: "disable", 17998 value: function disable() { 17999 this.disabled = true; 18000 return this; 18001 } 18002 }, { 18003 key: "enable", 18004 value: function enable() { 18005 this.disabled = false; 18006 return this; 18007 } 18008 }, { 18009 key: "on", 18010 value: function on(event, handler) { 18011 this._e.on(event, handler); 18012 return this; 18013 } 18014 }, { 18015 key: "isType", 18016 value: function isType(name) { 18017 return this.settings.type === name; 18018 } 18019 }, { 18020 key: "settings", 18021 get: function get() { 18022 return this._o; 18023 }, 18024 set: function set(o) { 18025 if (isObject(o)) { 18026 this._o = o; 18027 } else { 18028 warn("Options must be an `object` instance."); 18029 } 18030 } 18031 }, { 18032 key: "index", 18033 get: function get() { 18034 return this._i; 18035 }, 18036 set: function set(i) { 18037 this._i = toInt(i); 18038 } 18039 }, { 18040 key: "type", 18041 get: function get() { 18042 return this.settings.type; 18043 } 18044 }, { 18045 key: "disabled", 18046 get: function get() { 18047 return this._d; 18048 }, 18049 set: function set(status) { 18050 this._d = !!status; 18051 } 18052 }]); 18053 return Glide2; 18054 }(); 18055 function Run(Glide2, Components, Events) { 18056 var Run2 = { 18057 mount: function mount2() { 18058 this._o = false; 18059 }, 18060 make: function make(move) { 18061 var _this = this; 18062 if (!Glide2.disabled) { 18063 !Glide2.settings.waitForTransition || Glide2.disable(); 18064 this.move = move; 18065 Events.emit("run.before", this.move); 18066 this.calculate(); 18067 Events.emit("run", this.move); 18068 Components.Transition.after(function() { 18069 if (_this.isStart()) { 18070 Events.emit("run.start", _this.move); 18071 } 18072 if (_this.isEnd()) { 18073 Events.emit("run.end", _this.move); 18074 } 18075 if (_this.isOffset()) { 18076 _this._o = false; 18077 Events.emit("run.offset", _this.move); 18078 } 18079 Events.emit("run.after", _this.move); 18080 Glide2.enable(); 18081 }); 18082 } 18083 }, 18084 calculate: function calculate() { 18085 var move = this.move, length = this.length; 18086 var steps = move.steps, direction = move.direction; 18087 var viewSize = 1; 18088 if (direction === "=") { 18089 if (Glide2.settings.bound && toInt(steps) > length) { 18090 Glide2.index = length; 18091 return; 18092 } 18093 Glide2.index = steps; 18094 return; 18095 } 18096 if (direction === ">" && steps === ">") { 18097 Glide2.index = length; 18098 return; 18099 } 18100 if (direction === "<" && steps === "<") { 18101 Glide2.index = 0; 18102 return; 18103 } 18104 if (direction === "|") { 18105 viewSize = Glide2.settings.perView || 1; 18106 } 18107 if (direction === ">" || direction === "|" && steps === ">") { 18108 var index = calculateForwardIndex(viewSize); 18109 if (index > length) { 18110 this._o = true; 18111 } 18112 Glide2.index = normalizeForwardIndex(index, viewSize); 18113 return; 18114 } 18115 if (direction === "<" || direction === "|" && steps === "<") { 18116 var _index = calculateBackwardIndex(viewSize); 18117 if (_index < 0) { 18118 this._o = true; 18119 } 18120 Glide2.index = normalizeBackwardIndex(_index, viewSize); 18121 return; 18122 } 18123 warn("Invalid direction pattern [".concat(direction).concat(steps, "] has been used")); 18124 }, 18125 isStart: function isStart() { 18126 return Glide2.index <= 0; 18127 }, 18128 isEnd: function isEnd() { 18129 return Glide2.index >= this.length; 18130 }, 18131 isOffset: function isOffset() { 18132 var direction = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : void 0; 18133 if (!direction) { 18134 return this._o; 18135 } 18136 if (!this._o) { 18137 return false; 18138 } 18139 if (direction === "|>") { 18140 return this.move.direction === "|" && this.move.steps === ">"; 18141 } 18142 if (direction === "|<") { 18143 return this.move.direction === "|" && this.move.steps === "<"; 18144 } 18145 return this.move.direction === direction; 18146 }, 18147 isBound: function isBound() { 18148 return Glide2.isType("slider") && Glide2.settings.focusAt !== "center" && Glide2.settings.bound; 18149 } 18150 }; 18151 function calculateForwardIndex(viewSize) { 18152 var index = Glide2.index; 18153 if (Glide2.isType("carousel")) { 18154 return index + viewSize; 18155 } 18156 return index + (viewSize - index % viewSize); 18157 } 18158 function normalizeForwardIndex(index, viewSize) { 18159 var length = Run2.length; 18160 if (index <= length) { 18161 return index; 18162 } 18163 if (Glide2.isType("carousel")) { 18164 return index - (length + 1); 18165 } 18166 if (Glide2.settings.rewind) { 18167 if (Run2.isBound() && !Run2.isEnd()) { 18168 return length; 18169 } 18170 return 0; 18171 } 18172 if (Run2.isBound()) { 18173 return length; 18174 } 18175 return Math.floor(length / viewSize) * viewSize; 18176 } 18177 function calculateBackwardIndex(viewSize) { 18178 var index = Glide2.index; 18179 if (Glide2.isType("carousel")) { 18180 return index - viewSize; 18181 } 18182 var view = Math.ceil(index / viewSize); 18183 return (view - 1) * viewSize; 18184 } 18185 function normalizeBackwardIndex(index, viewSize) { 18186 var length = Run2.length; 18187 if (index >= 0) { 18188 return index; 18189 } 18190 if (Glide2.isType("carousel")) { 18191 return index + (length + 1); 18192 } 18193 if (Glide2.settings.rewind) { 18194 if (Run2.isBound() && Run2.isStart()) { 18195 return length; 18196 } 18197 return Math.floor(length / viewSize) * viewSize; 18198 } 18199 return 0; 18200 } 18201 define2(Run2, "move", { 18202 get: function get() { 18203 return this._m; 18204 }, 18205 set: function set(value) { 18206 var step = value.substr(1); 18207 this._m = { 18208 direction: value.substr(0, 1), 18209 steps: step ? toInt(step) ? toInt(step) : step : 0 18210 }; 18211 } 18212 }); 18213 define2(Run2, "length", { 18214 get: function get() { 18215 var settings = Glide2.settings; 18216 var length = Components.Html.slides.length; 18217 if (this.isBound()) { 18218 return length - 1 - (toInt(settings.perView) - 1) + toInt(settings.focusAt); 18219 } 18220 return length - 1; 18221 } 18222 }); 18223 define2(Run2, "offset", { 18224 get: function get() { 18225 return this._o; 18226 } 18227 }); 18228 return Run2; 18229 } 18230 function now() { 18231 return new Date().getTime(); 18232 } 18233 function throttle(func, wait, options) { 18234 var timeout, context, args, result; 18235 var previous = 0; 18236 if (!options) 18237 options = {}; 18238 var later = function later2() { 18239 previous = options.leading === false ? 0 : now(); 18240 timeout = null; 18241 result = func.apply(context, args); 18242 if (!timeout) 18243 context = args = null; 18244 }; 18245 var throttled = function throttled2() { 18246 var at = now(); 18247 if (!previous && options.leading === false) 18248 previous = at; 18249 var remaining = wait - (at - previous); 18250 context = this; 18251 args = arguments; 18252 if (remaining <= 0 || remaining > wait) { 18253 if (timeout) { 18254 clearTimeout(timeout); 18255 timeout = null; 18256 } 18257 previous = at; 18258 result = func.apply(context, args); 18259 if (!timeout) 18260 context = args = null; 18261 } else if (!timeout && options.trailing !== false) { 18262 timeout = setTimeout(later, remaining); 18263 } 18264 return result; 18265 }; 18266 throttled.cancel = function() { 18267 clearTimeout(timeout); 18268 previous = 0; 18269 timeout = context = args = null; 18270 }; 18271 return throttled; 18272 } 18273 var MARGIN_TYPE = { 18274 ltr: ["marginLeft", "marginRight"], 18275 rtl: ["marginRight", "marginLeft"] 18276 }; 18277 function Gaps(Glide2, Components, Events) { 18278 var Gaps2 = { 18279 apply: function apply(slides) { 18280 for (var i = 0, len = slides.length; i < len; i++) { 18281 var style = slides[i].style; 18282 var direction = Components.Direction.value; 18283 if (i !== 0) { 18284 style[MARGIN_TYPE[direction][0]] = "".concat(this.value / 2, "px"); 18285 } else { 18286 style[MARGIN_TYPE[direction][0]] = ""; 18287 } 18288 if (i !== slides.length - 1) { 18289 style[MARGIN_TYPE[direction][1]] = "".concat(this.value / 2, "px"); 18290 } else { 18291 style[MARGIN_TYPE[direction][1]] = ""; 18292 } 18293 } 18294 }, 18295 remove: function remove(slides) { 18296 for (var i = 0, len = slides.length; i < len; i++) { 18297 var style = slides[i].style; 18298 style.marginLeft = ""; 18299 style.marginRight = ""; 18300 } 18301 } 18302 }; 18303 define2(Gaps2, "value", { 18304 get: function get() { 18305 return toInt(Glide2.settings.gap); 18306 } 18307 }); 18308 define2(Gaps2, "grow", { 18309 get: function get() { 18310 return Gaps2.value * Components.Sizes.length; 18311 } 18312 }); 18313 define2(Gaps2, "reductor", { 18314 get: function get() { 18315 var perView = Glide2.settings.perView; 18316 return Gaps2.value * (perView - 1) / perView; 18317 } 18318 }); 18319 Events.on(["build.after", "update"], throttle(function() { 18320 Gaps2.apply(Components.Html.wrapper.children); 18321 }, 30)); 18322 Events.on("destroy", function() { 18323 Gaps2.remove(Components.Html.wrapper.children); 18324 }); 18325 return Gaps2; 18326 } 18327 function siblings(node) { 18328 if (node && node.parentNode) { 18329 var n = node.parentNode.firstChild; 18330 var matched = []; 18331 for (; n; n = n.nextSibling) { 18332 if (n.nodeType === 1 && n !== node) { 18333 matched.push(n); 18334 } 18335 } 18336 return matched; 18337 } 18338 return []; 18339 } 18340 function exist(node) { 18341 if (node && node instanceof window.HTMLElement) { 18342 return true; 18343 } 18344 return false; 18345 } 18346 var TRACK_SELECTOR = '[data-glide-el="track"]'; 18347 function Html(Glide2, Components, Events) { 18348 var Html2 = { 18349 mount: function mount2() { 18350 this.root = Glide2.selector; 18351 this.track = this.root.querySelector(TRACK_SELECTOR); 18352 this.collectSlides(); 18353 }, 18354 collectSlides: function collectSlides() { 18355 this.slides = Array.prototype.slice.call(this.wrapper.children).filter(function(slide) { 18356 return !slide.classList.contains(Glide2.settings.classes.slide.clone); 18357 }); 18358 } 18359 }; 18360 define2(Html2, "root", { 18361 get: function get() { 18362 return Html2._r; 18363 }, 18364 set: function set(r) { 18365 if (isString(r)) { 18366 r = document.querySelector(r); 18367 } 18368 if (exist(r)) { 18369 Html2._r = r; 18370 } else { 18371 warn("Root element must be a existing Html node"); 18372 } 18373 } 18374 }); 18375 define2(Html2, "track", { 18376 get: function get() { 18377 return Html2._t; 18378 }, 18379 set: function set(t) { 18380 if (exist(t)) { 18381 Html2._t = t; 18382 } else { 18383 warn("Could not find track element. Please use ".concat(TRACK_SELECTOR, " attribute.")); 18384 } 18385 } 18386 }); 18387 define2(Html2, "wrapper", { 18388 get: function get() { 18389 return Html2.track.children[0]; 18390 } 18391 }); 18392 Events.on("update", function() { 18393 Html2.collectSlides(); 18394 }); 18395 return Html2; 18396 } 18397 function Peek(Glide2, Components, Events) { 18398 var Peek2 = { 18399 mount: function mount2() { 18400 this.value = Glide2.settings.peek; 18401 } 18402 }; 18403 define2(Peek2, "value", { 18404 get: function get() { 18405 return Peek2._v; 18406 }, 18407 set: function set(value) { 18408 if (isObject(value)) { 18409 value.before = toInt(value.before); 18410 value.after = toInt(value.after); 18411 } else { 18412 value = toInt(value); 18413 } 18414 Peek2._v = value; 18415 } 18416 }); 18417 define2(Peek2, "reductor", { 18418 get: function get() { 18419 var value = Peek2.value; 18420 var perView = Glide2.settings.perView; 18421 if (isObject(value)) { 18422 return value.before / perView + value.after / perView; 18423 } 18424 return value * 2 / perView; 18425 } 18426 }); 18427 Events.on(["resize", "update"], function() { 18428 Peek2.mount(); 18429 }); 18430 return Peek2; 18431 } 18432 function Move(Glide2, Components, Events) { 18433 var Move2 = { 18434 mount: function mount2() { 18435 this._o = 0; 18436 }, 18437 make: function make() { 18438 var _this = this; 18439 var offset2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0; 18440 this.offset = offset2; 18441 Events.emit("move", { 18442 movement: this.value 18443 }); 18444 Components.Transition.after(function() { 18445 Events.emit("move.after", { 18446 movement: _this.value 18447 }); 18448 }); 18449 } 18450 }; 18451 define2(Move2, "offset", { 18452 get: function get() { 18453 return Move2._o; 18454 }, 18455 set: function set(value) { 18456 Move2._o = !isUndefined(value) ? toInt(value) : 0; 18457 } 18458 }); 18459 define2(Move2, "translate", { 18460 get: function get() { 18461 return Components.Sizes.slideWidth * Glide2.index; 18462 } 18463 }); 18464 define2(Move2, "value", { 18465 get: function get() { 18466 var offset2 = this.offset; 18467 var translate = this.translate; 18468 if (Components.Direction.is("rtl")) { 18469 return translate + offset2; 18470 } 18471 return translate - offset2; 18472 } 18473 }); 18474 Events.on(["build.before", "run"], function() { 18475 Move2.make(); 18476 }); 18477 return Move2; 18478 } 18479 function Sizes(Glide2, Components, Events) { 18480 var Sizes2 = { 18481 setupSlides: function setupSlides() { 18482 var width = "".concat(this.slideWidth, "px"); 18483 var slides = Components.Html.slides; 18484 for (var i = 0; i < slides.length; i++) { 18485 slides[i].style.width = width; 18486 } 18487 }, 18488 setupWrapper: function setupWrapper() { 18489 Components.Html.wrapper.style.width = "".concat(this.wrapperSize, "px"); 18490 }, 18491 remove: function remove() { 18492 var slides = Components.Html.slides; 18493 for (var i = 0; i < slides.length; i++) { 18494 slides[i].style.width = ""; 18495 } 18496 Components.Html.wrapper.style.width = ""; 18497 } 18498 }; 18499 define2(Sizes2, "length", { 18500 get: function get() { 18501 return Components.Html.slides.length; 18502 } 18503 }); 18504 define2(Sizes2, "width", { 18505 get: function get() { 18506 return Components.Html.track.offsetWidth; 18507 } 18508 }); 18509 define2(Sizes2, "wrapperSize", { 18510 get: function get() { 18511 return Sizes2.slideWidth * Sizes2.length + Components.Gaps.grow + Components.Clones.grow; 18512 } 18513 }); 18514 define2(Sizes2, "slideWidth", { 18515 get: function get() { 18516 return Sizes2.width / Glide2.settings.perView - Components.Peek.reductor - Components.Gaps.reductor; 18517 } 18518 }); 18519 Events.on(["build.before", "resize", "update"], function() { 18520 Sizes2.setupSlides(); 18521 Sizes2.setupWrapper(); 18522 }); 18523 Events.on("destroy", function() { 18524 Sizes2.remove(); 18525 }); 18526 return Sizes2; 18527 } 18528 function Build(Glide2, Components, Events) { 18529 var Build2 = { 18530 mount: function mount2() { 18531 Events.emit("build.before"); 18532 this.typeClass(); 18533 this.activeClass(); 18534 Events.emit("build.after"); 18535 }, 18536 typeClass: function typeClass() { 18537 Components.Html.root.classList.add(Glide2.settings.classes.type[Glide2.settings.type]); 18538 }, 18539 activeClass: function activeClass() { 18540 var classes = Glide2.settings.classes; 18541 var slide = Components.Html.slides[Glide2.index]; 18542 if (slide) { 18543 slide.classList.add(classes.slide.active); 18544 siblings(slide).forEach(function(sibling) { 18545 sibling.classList.remove(classes.slide.active); 18546 }); 18547 } 18548 }, 18549 removeClasses: function removeClasses() { 18550 var _Glide$settings$class = Glide2.settings.classes, type = _Glide$settings$class.type, slide = _Glide$settings$class.slide; 18551 Components.Html.root.classList.remove(type[Glide2.settings.type]); 18552 Components.Html.slides.forEach(function(sibling) { 18553 sibling.classList.remove(slide.active); 18554 }); 18555 } 18556 }; 18557 Events.on(["destroy", "update"], function() { 18558 Build2.removeClasses(); 18559 }); 18560 Events.on(["resize", "update"], function() { 18561 Build2.mount(); 18562 }); 18563 Events.on("move.after", function() { 18564 Build2.activeClass(); 18565 }); 18566 return Build2; 18567 } 18568 function Clones(Glide2, Components, Events) { 18569 var Clones2 = { 18570 mount: function mount2() { 18571 this.items = []; 18572 if (Glide2.isType("carousel")) { 18573 this.items = this.collect(); 18574 } 18575 }, 18576 collect: function collect() { 18577 var items = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : []; 18578 var slides = Components.Html.slides; 18579 var _Glide$settings = Glide2.settings, perView = _Glide$settings.perView, classes = _Glide$settings.classes, cloningRatio = _Glide$settings.cloningRatio; 18580 if (slides.length !== 0) { 18581 var peekIncrementer = +!!Glide2.settings.peek; 18582 var cloneCount = perView + peekIncrementer + Math.round(perView / 2); 18583 var append = slides.slice(0, cloneCount).reverse(); 18584 var prepend = slides.slice(cloneCount * -1); 18585 for (var r = 0; r < Math.max(cloningRatio, Math.floor(perView / slides.length)); r++) { 18586 for (var i = 0; i < append.length; i++) { 18587 var clone = append[i].cloneNode(true); 18588 clone.classList.add(classes.slide.clone); 18589 items.push(clone); 18590 } 18591 for (var _i2 = 0; _i2 < prepend.length; _i2++) { 18592 var _clone = prepend[_i2].cloneNode(true); 18593 _clone.classList.add(classes.slide.clone); 18594 items.unshift(_clone); 18595 } 18596 } 18597 } 18598 return items; 18599 }, 18600 append: function append() { 18601 var items = this.items; 18602 var _Components$Html = Components.Html, wrapper = _Components$Html.wrapper, slides = _Components$Html.slides; 18603 var half = Math.floor(items.length / 2); 18604 var prepend = items.slice(0, half).reverse(); 18605 var append2 = items.slice(half * -1).reverse(); 18606 var width = "".concat(Components.Sizes.slideWidth, "px"); 18607 for (var i = 0; i < append2.length; i++) { 18608 wrapper.appendChild(append2[i]); 18609 } 18610 for (var _i2 = 0; _i2 < prepend.length; _i2++) { 18611 wrapper.insertBefore(prepend[_i2], slides[0]); 18612 } 18613 for (var _i3 = 0; _i3 < items.length; _i3++) { 18614 items[_i3].style.width = width; 18615 } 18616 }, 18617 remove: function remove() { 18618 var items = this.items; 18619 for (var i = 0; i < items.length; i++) { 18620 Components.Html.wrapper.removeChild(items[i]); 18621 } 18622 } 18623 }; 18624 define2(Clones2, "grow", { 18625 get: function get() { 18626 return (Components.Sizes.slideWidth + Components.Gaps.value) * Clones2.items.length; 18627 } 18628 }); 18629 Events.on("update", function() { 18630 Clones2.remove(); 18631 Clones2.mount(); 18632 Clones2.append(); 18633 }); 18634 Events.on("build.before", function() { 18635 if (Glide2.isType("carousel")) { 18636 Clones2.append(); 18637 } 18638 }); 18639 Events.on("destroy", function() { 18640 Clones2.remove(); 18641 }); 18642 return Clones2; 18643 } 18644 var EventsBinder = /* @__PURE__ */ function() { 18645 function EventsBinder2() { 18646 var listeners = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; 18647 _classCallCheck(this, EventsBinder2); 18648 this.listeners = listeners; 18649 } 18650 _createClass2(EventsBinder2, [{ 18651 key: "on", 18652 value: function on(events, el, closure) { 18653 var capture = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false; 18654 if (isString(events)) { 18655 events = [events]; 18656 } 18657 for (var i = 0; i < events.length; i++) { 18658 this.listeners[events[i]] = closure; 18659 el.addEventListener(events[i], this.listeners[events[i]], capture); 18660 } 18661 } 18662 }, { 18663 key: "off", 18664 value: function off(events, el) { 18665 var capture = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false; 18666 if (isString(events)) { 18667 events = [events]; 18668 } 18669 for (var i = 0; i < events.length; i++) { 18670 el.removeEventListener(events[i], this.listeners[events[i]], capture); 18671 } 18672 } 18673 }, { 18674 key: "destroy", 18675 value: function destroy() { 18676 delete this.listeners; 18677 } 18678 }]); 18679 return EventsBinder2; 18680 }(); 18681 function Resize(Glide2, Components, Events) { 18682 var Binder = new EventsBinder(); 18683 var Resize2 = { 18684 mount: function mount2() { 18685 this.bind(); 18686 }, 18687 bind: function bind() { 18688 Binder.on("resize", window, throttle(function() { 18689 Events.emit("resize"); 18690 }, Glide2.settings.throttle)); 18691 }, 18692 unbind: function unbind() { 18693 Binder.off("resize", window); 18694 } 18695 }; 18696 Events.on("destroy", function() { 18697 Resize2.unbind(); 18698 Binder.destroy(); 18699 }); 18700 return Resize2; 18701 } 18702 var VALID_DIRECTIONS = ["ltr", "rtl"]; 18703 var FLIPED_MOVEMENTS = { 18704 ">": "<", 18705 "<": ">", 18706 "=": "=" 18707 }; 18708 function Direction(Glide2, Components, Events) { 18709 var Direction2 = { 18710 mount: function mount2() { 18711 this.value = Glide2.settings.direction; 18712 }, 18713 resolve: function resolve(pattern) { 18714 var token = pattern.slice(0, 1); 18715 if (this.is("rtl")) { 18716 return pattern.split(token).join(FLIPED_MOVEMENTS[token]); 18717 } 18718 return pattern; 18719 }, 18720 is: function is(direction) { 18721 return this.value === direction; 18722 }, 18723 addClass: function addClass() { 18724 Components.Html.root.classList.add(Glide2.settings.classes.direction[this.value]); 18725 }, 18726 removeClass: function removeClass() { 18727 Components.Html.root.classList.remove(Glide2.settings.classes.direction[this.value]); 18728 } 18729 }; 18730 define2(Direction2, "value", { 18731 get: function get() { 18732 return Direction2._v; 18733 }, 18734 set: function set(value) { 18735 if (VALID_DIRECTIONS.indexOf(value) > -1) { 18736 Direction2._v = value; 18737 } else { 18738 warn("Direction value must be `ltr` or `rtl`"); 18739 } 18740 } 18741 }); 18742 Events.on(["destroy", "update"], function() { 18743 Direction2.removeClass(); 18744 }); 18745 Events.on("update", function() { 18746 Direction2.mount(); 18747 }); 18748 Events.on(["build.before", "update"], function() { 18749 Direction2.addClass(); 18750 }); 18751 return Direction2; 18752 } 18753 function Rtl(Glide2, Components) { 18754 return { 18755 modify: function modify(translate) { 18756 if (Components.Direction.is("rtl")) { 18757 return -translate; 18758 } 18759 return translate; 18760 } 18761 }; 18762 } 18763 function Gap(Glide2, Components) { 18764 return { 18765 modify: function modify(translate) { 18766 var multiplier = Math.floor(translate / Components.Sizes.slideWidth); 18767 return translate + Components.Gaps.value * multiplier; 18768 } 18769 }; 18770 } 18771 function Grow(Glide2, Components) { 18772 return { 18773 modify: function modify(translate) { 18774 return translate + Components.Clones.grow / 2; 18775 } 18776 }; 18777 } 18778 function Peeking(Glide2, Components) { 18779 return { 18780 modify: function modify(translate) { 18781 if (Glide2.settings.focusAt >= 0) { 18782 var peek = Components.Peek.value; 18783 if (isObject(peek)) { 18784 return translate - peek.before; 18785 } 18786 return translate - peek; 18787 } 18788 return translate; 18789 } 18790 }; 18791 } 18792 function Focusing(Glide2, Components) { 18793 return { 18794 modify: function modify(translate) { 18795 var gap = Components.Gaps.value; 18796 var width = Components.Sizes.width; 18797 var focusAt = Glide2.settings.focusAt; 18798 var slideWidth = Components.Sizes.slideWidth; 18799 if (focusAt === "center") { 18800 return translate - (width / 2 - slideWidth / 2); 18801 } 18802 return translate - slideWidth * focusAt - gap * focusAt; 18803 } 18804 }; 18805 } 18806 function mutator(Glide2, Components, Events) { 18807 var TRANSFORMERS = [Gap, Grow, Peeking, Focusing].concat(Glide2._t, [Rtl]); 18808 return { 18809 mutate: function mutate(translate) { 18810 for (var i = 0; i < TRANSFORMERS.length; i++) { 18811 var transformer = TRANSFORMERS[i]; 18812 if (isFunction(transformer) && isFunction(transformer().modify)) { 18813 translate = transformer(Glide2, Components, Events).modify(translate); 18814 } else { 18815 warn("Transformer should be a function that returns an object with `modify()` method"); 18816 } 18817 } 18818 return translate; 18819 } 18820 }; 18821 } 18822 function Translate(Glide2, Components, Events) { 18823 var Translate2 = { 18824 set: function set(value) { 18825 var transform = mutator(Glide2, Components).mutate(value); 18826 var translate3d = "translate3d(".concat(-1 * transform, "px, 0px, 0px)"); 18827 Components.Html.wrapper.style.mozTransform = translate3d; 18828 Components.Html.wrapper.style.webkitTransform = translate3d; 18829 Components.Html.wrapper.style.transform = translate3d; 18830 }, 18831 remove: function remove() { 18832 Components.Html.wrapper.style.transform = ""; 18833 }, 18834 getStartIndex: function getStartIndex() { 18835 var length = Components.Sizes.length; 18836 var index = Glide2.index; 18837 var perView = Glide2.settings.perView; 18838 if (Components.Run.isOffset(">") || Components.Run.isOffset("|>")) { 18839 return length + (index - perView); 18840 } 18841 return (index + perView) % length; 18842 }, 18843 getTravelDistance: function getTravelDistance() { 18844 var travelDistance = Components.Sizes.slideWidth * Glide2.settings.perView; 18845 if (Components.Run.isOffset(">") || Components.Run.isOffset("|>")) { 18846 return travelDistance * -1; 18847 } 18848 return travelDistance; 18849 } 18850 }; 18851 Events.on("move", function(context) { 18852 if (!Glide2.isType("carousel") || !Components.Run.isOffset()) { 18853 return Translate2.set(context.movement); 18854 } 18855 Components.Transition.after(function() { 18856 Events.emit("translate.jump"); 18857 Translate2.set(Components.Sizes.slideWidth * Glide2.index); 18858 }); 18859 var startWidth = Components.Sizes.slideWidth * Components.Translate.getStartIndex(); 18860 return Translate2.set(startWidth - Components.Translate.getTravelDistance()); 18861 }); 18862 Events.on("destroy", function() { 18863 Translate2.remove(); 18864 }); 18865 return Translate2; 18866 } 18867 function Transition(Glide2, Components, Events) { 18868 var disabled = false; 18869 var Transition2 = { 18870 compose: function compose(property) { 18871 var settings = Glide2.settings; 18872 if (!disabled) { 18873 return "".concat(property, " ").concat(this.duration, "ms ").concat(settings.animationTimingFunc); 18874 } 18875 return "".concat(property, " 0ms ").concat(settings.animationTimingFunc); 18876 }, 18877 set: function set() { 18878 var property = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "transform"; 18879 Components.Html.wrapper.style.transition = this.compose(property); 18880 }, 18881 remove: function remove() { 18882 Components.Html.wrapper.style.transition = ""; 18883 }, 18884 after: function after(callback) { 18885 setTimeout(function() { 18886 callback(); 18887 }, this.duration); 18888 }, 18889 enable: function enable() { 18890 disabled = false; 18891 this.set(); 18892 }, 18893 disable: function disable() { 18894 disabled = true; 18895 this.set(); 18896 } 18897 }; 18898 define2(Transition2, "duration", { 18899 get: function get() { 18900 var settings = Glide2.settings; 18901 if (Glide2.isType("slider") && Components.Run.offset) { 18902 return settings.rewindDuration; 18903 } 18904 return settings.animationDuration; 18905 } 18906 }); 18907 Events.on("move", function() { 18908 Transition2.set(); 18909 }); 18910 Events.on(["build.before", "resize", "translate.jump"], function() { 18911 Transition2.disable(); 18912 }); 18913 Events.on("run", function() { 18914 Transition2.enable(); 18915 }); 18916 Events.on("destroy", function() { 18917 Transition2.remove(); 18918 }); 18919 return Transition2; 18920 } 18921 var supportsPassive = false; 18922 try { 18923 opts = Object.defineProperty({}, "passive", { 18924 get: function get() { 18925 supportsPassive = true; 18926 } 18927 }); 18928 window.addEventListener("testPassive", null, opts); 18929 window.removeEventListener("testPassive", null, opts); 18930 } catch (e) { 18931 } 18932 var opts; 18933 var supportsPassive$1 = supportsPassive; 18934 var START_EVENTS = ["touchstart", "mousedown"]; 18935 var MOVE_EVENTS = ["touchmove", "mousemove"]; 18936 var END_EVENTS = ["touchend", "touchcancel", "mouseup", "mouseleave"]; 18937 var MOUSE_EVENTS = ["mousedown", "mousemove", "mouseup", "mouseleave"]; 18938 function Swipe(Glide2, Components, Events) { 18939 var Binder = new EventsBinder(); 18940 var swipeSin = 0; 18941 var swipeStartX = 0; 18942 var swipeStartY = 0; 18943 var disabled = false; 18944 var capture = supportsPassive$1 ? { 18945 passive: true 18946 } : false; 18947 var Swipe2 = { 18948 mount: function mount2() { 18949 this.bindSwipeStart(); 18950 }, 18951 start: function start2(event) { 18952 if (!disabled && !Glide2.disabled) { 18953 this.disable(); 18954 var swipe = this.touches(event); 18955 swipeSin = null; 18956 swipeStartX = toInt(swipe.pageX); 18957 swipeStartY = toInt(swipe.pageY); 18958 this.bindSwipeMove(); 18959 this.bindSwipeEnd(); 18960 Events.emit("swipe.start"); 18961 } 18962 }, 18963 move: function move(event) { 18964 if (!Glide2.disabled) { 18965 var _Glide$settings = Glide2.settings, touchAngle = _Glide$settings.touchAngle, touchRatio = _Glide$settings.touchRatio, classes = _Glide$settings.classes; 18966 var swipe = this.touches(event); 18967 var subExSx = toInt(swipe.pageX) - swipeStartX; 18968 var subEySy = toInt(swipe.pageY) - swipeStartY; 18969 var powEX = Math.abs(subExSx << 2); 18970 var powEY = Math.abs(subEySy << 2); 18971 var swipeHypotenuse = Math.sqrt(powEX + powEY); 18972 var swipeCathetus = Math.sqrt(powEY); 18973 swipeSin = Math.asin(swipeCathetus / swipeHypotenuse); 18974 if (swipeSin * 180 / Math.PI < touchAngle) { 18975 event.stopPropagation(); 18976 Components.Move.make(subExSx * toFloat(touchRatio)); 18977 Components.Html.root.classList.add(classes.dragging); 18978 Events.emit("swipe.move"); 18979 } else { 18980 return false; 18981 } 18982 } 18983 }, 18984 end: function end2(event) { 18985 if (!Glide2.disabled) { 18986 var _Glide$settings2 = Glide2.settings, perSwipe = _Glide$settings2.perSwipe, touchAngle = _Glide$settings2.touchAngle, classes = _Glide$settings2.classes; 18987 var swipe = this.touches(event); 18988 var threshold = this.threshold(event); 18989 var swipeDistance = swipe.pageX - swipeStartX; 18990 var swipeDeg = swipeSin * 180 / Math.PI; 18991 this.enable(); 18992 if (swipeDistance > threshold && swipeDeg < touchAngle) { 18993 Components.Run.make(Components.Direction.resolve("".concat(perSwipe, "<"))); 18994 } else if (swipeDistance < -threshold && swipeDeg < touchAngle) { 18995 Components.Run.make(Components.Direction.resolve("".concat(perSwipe, ">"))); 18996 } else { 18997 Components.Move.make(); 18998 } 18999 Components.Html.root.classList.remove(classes.dragging); 19000 this.unbindSwipeMove(); 19001 this.unbindSwipeEnd(); 19002 Events.emit("swipe.end"); 19003 } 19004 }, 19005 bindSwipeStart: function bindSwipeStart() { 19006 var _this = this; 19007 var _Glide$settings3 = Glide2.settings, swipeThreshold = _Glide$settings3.swipeThreshold, dragThreshold = _Glide$settings3.dragThreshold; 19008 if (swipeThreshold) { 19009 Binder.on(START_EVENTS[0], Components.Html.wrapper, function(event) { 19010 _this.start(event); 19011 }, capture); 19012 } 19013 if (dragThreshold) { 19014 Binder.on(START_EVENTS[1], Components.Html.wrapper, function(event) { 19015 _this.start(event); 19016 }, capture); 19017 } 19018 }, 19019 unbindSwipeStart: function unbindSwipeStart() { 19020 Binder.off(START_EVENTS[0], Components.Html.wrapper, capture); 19021 Binder.off(START_EVENTS[1], Components.Html.wrapper, capture); 19022 }, 19023 bindSwipeMove: function bindSwipeMove() { 19024 var _this2 = this; 19025 Binder.on(MOVE_EVENTS, Components.Html.wrapper, throttle(function(event) { 19026 _this2.move(event); 19027 }, Glide2.settings.throttle), capture); 19028 }, 19029 unbindSwipeMove: function unbindSwipeMove() { 19030 Binder.off(MOVE_EVENTS, Components.Html.wrapper, capture); 19031 }, 19032 bindSwipeEnd: function bindSwipeEnd() { 19033 var _this3 = this; 19034 Binder.on(END_EVENTS, Components.Html.wrapper, function(event) { 19035 _this3.end(event); 19036 }); 19037 }, 19038 unbindSwipeEnd: function unbindSwipeEnd() { 19039 Binder.off(END_EVENTS, Components.Html.wrapper); 19040 }, 19041 touches: function touches(event) { 19042 if (MOUSE_EVENTS.indexOf(event.type) > -1) { 19043 return event; 19044 } 19045 return event.touches[0] || event.changedTouches[0]; 19046 }, 19047 threshold: function threshold(event) { 19048 var settings = Glide2.settings; 19049 if (MOUSE_EVENTS.indexOf(event.type) > -1) { 19050 return settings.dragThreshold; 19051 } 19052 return settings.swipeThreshold; 19053 }, 19054 enable: function enable() { 19055 disabled = false; 19056 Components.Transition.enable(); 19057 return this; 19058 }, 19059 disable: function disable() { 19060 disabled = true; 19061 Components.Transition.disable(); 19062 return this; 19063 } 19064 }; 19065 Events.on("build.after", function() { 19066 Components.Html.root.classList.add(Glide2.settings.classes.swipeable); 19067 }); 19068 Events.on("destroy", function() { 19069 Swipe2.unbindSwipeStart(); 19070 Swipe2.unbindSwipeMove(); 19071 Swipe2.unbindSwipeEnd(); 19072 Binder.destroy(); 19073 }); 19074 return Swipe2; 19075 } 19076 function Images(Glide2, Components, Events) { 19077 var Binder = new EventsBinder(); 19078 var Images2 = { 19079 mount: function mount2() { 19080 this.bind(); 19081 }, 19082 bind: function bind() { 19083 Binder.on("dragstart", Components.Html.wrapper, this.dragstart); 19084 }, 19085 unbind: function unbind() { 19086 Binder.off("dragstart", Components.Html.wrapper); 19087 }, 19088 dragstart: function dragstart(event) { 19089 event.preventDefault(); 19090 } 19091 }; 19092 Events.on("destroy", function() { 19093 Images2.unbind(); 19094 Binder.destroy(); 19095 }); 19096 return Images2; 19097 } 19098 function Anchors(Glide2, Components, Events) { 19099 var Binder = new EventsBinder(); 19100 var detached = false; 19101 var prevented = false; 19102 var Anchors2 = { 19103 mount: function mount2() { 19104 this._a = Components.Html.wrapper.querySelectorAll("a"); 19105 this.bind(); 19106 }, 19107 bind: function bind() { 19108 Binder.on("click", Components.Html.wrapper, this.click); 19109 }, 19110 unbind: function unbind() { 19111 Binder.off("click", Components.Html.wrapper); 19112 }, 19113 click: function click(event) { 19114 if (prevented) { 19115 event.stopPropagation(); 19116 event.preventDefault(); 19117 } 19118 }, 19119 detach: function detach() { 19120 prevented = true; 19121 if (!detached) { 19122 for (var i = 0; i < this.items.length; i++) { 19123 this.items[i].draggable = false; 19124 } 19125 detached = true; 19126 } 19127 return this; 19128 }, 19129 attach: function attach() { 19130 prevented = false; 19131 if (detached) { 19132 for (var i = 0; i < this.items.length; i++) { 19133 this.items[i].draggable = true; 19134 } 19135 detached = false; 19136 } 19137 return this; 19138 } 19139 }; 19140 define2(Anchors2, "items", { 19141 get: function get() { 19142 return Anchors2._a; 19143 } 19144 }); 19145 Events.on("swipe.move", function() { 19146 Anchors2.detach(); 19147 }); 19148 Events.on("swipe.end", function() { 19149 Components.Transition.after(function() { 19150 Anchors2.attach(); 19151 }); 19152 }); 19153 Events.on("destroy", function() { 19154 Anchors2.attach(); 19155 Anchors2.unbind(); 19156 Binder.destroy(); 19157 }); 19158 return Anchors2; 19159 } 19160 var NAV_SELECTOR = '[data-glide-el="controls[nav]"]'; 19161 var CONTROLS_SELECTOR = '[data-glide-el^="controls"]'; 19162 var PREVIOUS_CONTROLS_SELECTOR = "".concat(CONTROLS_SELECTOR, ' [data-glide-dir*="<"]'); 19163 var NEXT_CONTROLS_SELECTOR = "".concat(CONTROLS_SELECTOR, ' [data-glide-dir*=">"]'); 19164 function Controls(Glide2, Components, Events) { 19165 var Binder = new EventsBinder(); 19166 var capture = supportsPassive$1 ? { 19167 passive: true 19168 } : false; 19169 var Controls2 = { 19170 mount: function mount2() { 19171 this._n = Components.Html.root.querySelectorAll(NAV_SELECTOR); 19172 this._c = Components.Html.root.querySelectorAll(CONTROLS_SELECTOR); 19173 this._arrowControls = { 19174 previous: Components.Html.root.querySelectorAll(PREVIOUS_CONTROLS_SELECTOR), 19175 next: Components.Html.root.querySelectorAll(NEXT_CONTROLS_SELECTOR) 19176 }; 19177 this.addBindings(); 19178 }, 19179 setActive: function setActive() { 19180 for (var i = 0; i < this._n.length; i++) { 19181 this.addClass(this._n[i].children); 19182 } 19183 }, 19184 removeActive: function removeActive() { 19185 for (var i = 0; i < this._n.length; i++) { 19186 this.removeClass(this._n[i].children); 19187 } 19188 }, 19189 addClass: function addClass(controls) { 19190 var settings = Glide2.settings; 19191 var item = controls[Glide2.index]; 19192 if (!item) { 19193 return; 19194 } 19195 if (item) { 19196 item.classList.add(settings.classes.nav.active); 19197 siblings(item).forEach(function(sibling) { 19198 sibling.classList.remove(settings.classes.nav.active); 19199 }); 19200 } 19201 }, 19202 removeClass: function removeClass(controls) { 19203 var item = controls[Glide2.index]; 19204 if (item) { 19205 item.classList.remove(Glide2.settings.classes.nav.active); 19206 } 19207 }, 19208 setArrowState: function setArrowState() { 19209 if (Glide2.settings.rewind) { 19210 return; 19211 } 19212 var next = Controls2._arrowControls.next; 19213 var previous = Controls2._arrowControls.previous; 19214 this.resetArrowState(next, previous); 19215 if (Glide2.index === 0) { 19216 this.disableArrow(previous); 19217 } 19218 if (Glide2.index === Components.Run.length) { 19219 this.disableArrow(next); 19220 } 19221 }, 19222 resetArrowState: function resetArrowState() { 19223 var settings = Glide2.settings; 19224 for (var _len = arguments.length, lists = new Array(_len), _key = 0; _key < _len; _key++) { 19225 lists[_key] = arguments[_key]; 19226 } 19227 lists.forEach(function(list) { 19228 list.forEach(function(element) { 19229 element.classList.remove(settings.classes.arrow.disabled); 19230 }); 19231 }); 19232 }, 19233 disableArrow: function disableArrow() { 19234 var settings = Glide2.settings; 19235 for (var _len2 = arguments.length, lists = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { 19236 lists[_key2] = arguments[_key2]; 19237 } 19238 lists.forEach(function(list) { 19239 list.forEach(function(element) { 19240 element.classList.add(settings.classes.arrow.disabled); 19241 }); 19242 }); 19243 }, 19244 addBindings: function addBindings() { 19245 for (var i = 0; i < this._c.length; i++) { 19246 this.bind(this._c[i].children); 19247 } 19248 }, 19249 removeBindings: function removeBindings() { 19250 for (var i = 0; i < this._c.length; i++) { 19251 this.unbind(this._c[i].children); 19252 } 19253 }, 19254 bind: function bind(elements) { 19255 for (var i = 0; i < elements.length; i++) { 19256 Binder.on("click", elements[i], this.click); 19257 Binder.on("touchstart", elements[i], this.click, capture); 19258 } 19259 }, 19260 unbind: function unbind(elements) { 19261 for (var i = 0; i < elements.length; i++) { 19262 Binder.off(["click", "touchstart"], elements[i]); 19263 } 19264 }, 19265 click: function click(event) { 19266 if (!supportsPassive$1 && event.type === "touchstart") { 19267 event.preventDefault(); 19268 } 19269 var direction = event.currentTarget.getAttribute("data-glide-dir"); 19270 Components.Run.make(Components.Direction.resolve(direction)); 19271 } 19272 }; 19273 define2(Controls2, "items", { 19274 get: function get() { 19275 return Controls2._c; 19276 } 19277 }); 19278 Events.on(["mount.after", "move.after"], function() { 19279 Controls2.setActive(); 19280 }); 19281 Events.on(["mount.after", "run"], function() { 19282 Controls2.setArrowState(); 19283 }); 19284 Events.on("destroy", function() { 19285 Controls2.removeBindings(); 19286 Controls2.removeActive(); 19287 Binder.destroy(); 19288 }); 19289 return Controls2; 19290 } 19291 function Keyboard(Glide2, Components, Events) { 19292 var Binder = new EventsBinder(); 19293 var Keyboard2 = { 19294 mount: function mount2() { 19295 if (Glide2.settings.keyboard) { 19296 this.bind(); 19297 } 19298 }, 19299 bind: function bind() { 19300 Binder.on("keyup", document, this.press); 19301 }, 19302 unbind: function unbind() { 19303 Binder.off("keyup", document); 19304 }, 19305 press: function press(event) { 19306 var perSwipe = Glide2.settings.perSwipe; 19307 if (event.keyCode === 39) { 19308 Components.Run.make(Components.Direction.resolve("".concat(perSwipe, ">"))); 19309 } 19310 if (event.keyCode === 37) { 19311 Components.Run.make(Components.Direction.resolve("".concat(perSwipe, "<"))); 19312 } 19313 } 19314 }; 19315 Events.on(["destroy", "update"], function() { 19316 Keyboard2.unbind(); 19317 }); 19318 Events.on("update", function() { 19319 Keyboard2.mount(); 19320 }); 19321 Events.on("destroy", function() { 19322 Binder.destroy(); 19323 }); 19324 return Keyboard2; 19325 } 19326 function Autoplay(Glide2, Components, Events) { 19327 var Binder = new EventsBinder(); 19328 var Autoplay2 = { 19329 mount: function mount2() { 19330 this.enable(); 19331 this.start(); 19332 if (Glide2.settings.hoverpause) { 19333 this.bind(); 19334 } 19335 }, 19336 enable: function enable() { 19337 this._e = true; 19338 }, 19339 disable: function disable() { 19340 this._e = false; 19341 }, 19342 start: function start2() { 19343 var _this = this; 19344 if (!this._e) { 19345 return; 19346 } 19347 this.enable(); 19348 if (Glide2.settings.autoplay) { 19349 if (isUndefined(this._i)) { 19350 this._i = setInterval(function() { 19351 _this.stop(); 19352 Components.Run.make(">"); 19353 _this.start(); 19354 Events.emit("autoplay"); 19355 }, this.time); 19356 } 19357 } 19358 }, 19359 stop: function stop2() { 19360 this._i = clearInterval(this._i); 19361 }, 19362 bind: function bind() { 19363 var _this2 = this; 19364 Binder.on("mouseover", Components.Html.root, function() { 19365 if (_this2._e) { 19366 _this2.stop(); 19367 } 19368 }); 19369 Binder.on("mouseout", Components.Html.root, function() { 19370 if (_this2._e) { 19371 _this2.start(); 19372 } 19373 }); 19374 }, 19375 unbind: function unbind() { 19376 Binder.off(["mouseover", "mouseout"], Components.Html.root); 19377 } 19378 }; 19379 define2(Autoplay2, "time", { 19380 get: function get() { 19381 var autoplay = Components.Html.slides[Glide2.index].getAttribute("data-glide-autoplay"); 19382 if (autoplay) { 19383 return toInt(autoplay); 19384 } 19385 return toInt(Glide2.settings.autoplay); 19386 } 19387 }); 19388 Events.on(["destroy", "update"], function() { 19389 Autoplay2.unbind(); 19390 }); 19391 Events.on(["run.before", "swipe.start", "update"], function() { 19392 Autoplay2.stop(); 19393 }); 19394 Events.on(["pause", "destroy"], function() { 19395 Autoplay2.disable(); 19396 Autoplay2.stop(); 19397 }); 19398 Events.on(["run.after", "swipe.end"], function() { 19399 Autoplay2.start(); 19400 }); 19401 Events.on(["play"], function() { 19402 Autoplay2.enable(); 19403 Autoplay2.start(); 19404 }); 19405 Events.on("update", function() { 19406 Autoplay2.mount(); 19407 }); 19408 Events.on("destroy", function() { 19409 Binder.destroy(); 19410 }); 19411 return Autoplay2; 19412 } 19413 function sortBreakpoints(points) { 19414 if (isObject(points)) { 19415 return sortKeys(points); 19416 } else { 19417 warn("Breakpoints option must be an object"); 19418 } 19419 return {}; 19420 } 19421 function Breakpoints(Glide2, Components, Events) { 19422 var Binder = new EventsBinder(); 19423 var settings = Glide2.settings; 19424 var points = sortBreakpoints(settings.breakpoints); 19425 var defaults3 = Object.assign({}, settings); 19426 var Breakpoints2 = { 19427 match: function match(points2) { 19428 if (typeof window.matchMedia !== "undefined") { 19429 for (var point in points2) { 19430 if (points2.hasOwnProperty(point)) { 19431 if (window.matchMedia("(max-width: ".concat(point, "px)")).matches) { 19432 return points2[point]; 19433 } 19434 } 19435 } 19436 } 19437 return defaults3; 19438 } 19439 }; 19440 Object.assign(settings, Breakpoints2.match(points)); 19441 Binder.on("resize", window, throttle(function() { 19442 Glide2.settings = mergeOptions(settings, Breakpoints2.match(points)); 19443 }, Glide2.settings.throttle)); 19444 Events.on("update", function() { 19445 points = sortBreakpoints(points); 19446 defaults3 = Object.assign({}, settings); 19447 }); 19448 Events.on("destroy", function() { 19449 Binder.off("resize", window); 19450 }); 19451 return Breakpoints2; 19452 } 19453 var COMPONENTS = { 19454 Html, 19455 Translate, 19456 Transition, 19457 Direction, 19458 Peek, 19459 Sizes, 19460 Gaps, 19461 Move, 19462 Clones, 19463 Resize, 19464 Build, 19465 Run, 19466 Swipe, 19467 Images, 19468 Anchors, 19469 Controls, 19470 Keyboard, 19471 Autoplay, 19472 Breakpoints 19473 }; 19474 var Glide = /* @__PURE__ */ function(_Core) { 19475 _inherits(Glide2, _Core); 19476 var _super = _createSuper(Glide2); 19477 function Glide2() { 19478 _classCallCheck(this, Glide2); 19479 return _super.apply(this, arguments); 19480 } 19481 _createClass2(Glide2, [{ 19482 key: "mount", 19483 value: function mount2() { 19484 var extensions = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; 19485 return _get3(_getPrototypeOf(Glide2.prototype), "mount", this).call(this, Object.assign({}, COMPONENTS, extensions)); 19486 } 19487 }]); 19488 return Glide2; 19489 }(Glide$1); 19490 19491
19491// components/page-builder/usps/index.js 19492 function usp_slider() { 19493 if (document.querySelector(".usp-slider")) { 19494 let dir = document.querySelector('[dir="rtl"]') ? "rtl" : "ltr"; 19495 new Glide(".usp-slider", { 19496 type: "carousel", 19497 peek: 0, 19498 gap: 16, 19499 startAt: 0, 19500 perView: 3, 19501 bound: true, 19502 breakpoints: { 19503 960: { 19504 perView: 1, 19505 peek: 32, 19506 autoplay: 4e3 19507 } 19508 }, 19509 direction: dir 19510 }).mount(); 19511 } 19512 let sections = document.querySelectorAll(".usps"); 19513 sections.forEach(function(el) { 19514 ScrollTrigger2.create({ 19515 trigger: el, 19516 start: "top 90%", 19517 onEnter: (self2) => { 19518 gsapWithCSS.timeline().to(el.querySelectorAll(".usp-line"), { 19519 height: "100%", 19520 stagger: 0.1 19521 }, 0.25).to(el.querySelectorAll(".usp-content"), { 19522 y: 0, 19523 opacity: 1, 19524 stagger: 0.1, 19525 ease: "power4.out" 19526 }, 0); 19527 } 19528 }); 19529 }); 19530 } 19531 19532
19532// components/page-builder/icon-buttons/index.js 19533 function icon_buttons() { 19534 gsapWithCSS.set(".icon-circle", { 19535 drawSVG: 0 19536 }); 19537 let sections = document.querySelectorAll(".icon-buttons"); 19538 sections.forEach(function(el) { 19539 ScrollTrigger2.create({ 19540 trigger: el, 19541 start: "top 90%", 19542 onEnter: (self2) => { 19543 gsapWithCSS.timeline().to(el.querySelectorAll(".button-icon"), { 19544 opacity: 1, 19545 stagger: 0.1 19546 }).to(el.querySelectorAll(".icon-circle"), { 19547 duration: 1, 19548 stagger: 0.1, 19549 drawSVG: "100%" 19550 }, 0.2); 19551 } 19552 }); 19553 }); 19554 } 19555 19556
vendor: 8,202 bytes, lines 19556-19774
19556// node_modules/gsap/DrawSVGPlugin.js 19557 var gsap4; 19558 var _toArray2; 19559 var _doc5; 19560 var _win5; 19561 var _isEdge; 19562 var _coreInitted4; 19563 var _warned; 19564 var _windowExists7 = function _windowExists8() { 19565 return typeof window !== "undefined"; 19566 }; 19567 var _getGSAP5 = function _getGSAP6() { 19568 return gsap4 || _windowExists7() && (gsap4 = window.gsap) && gsap4.registerPlugin && gsap4; 19569 }; 19570 var _numExp2 = /[-+=\.]*\d+[\.e\-\+]*\d*[e\-\+]*\d*/gi; 19571 var _types = { 19572 rect: ["width", "height"], 19573 circle: ["r", "r"], 19574 ellipse: ["rx", "ry"], 19575 line: ["x2", "y2"] 19576 }; 19577 var _round5 = function _round6(value) { 19578 return Math.round(value * 1e4) / 1e4; 19579 }; 19580 var _parseNum = function _parseNum2(value) { 19581 return parseFloat(value) || 0; 19582 }; 19583 var _parseSingleVal = function _parseSingleVal2(value, length) { 19584 var num = _parseNum(value); 19585 return ~value.indexOf("%") ? num / 100 * length : num; 19586 }; 19587 var _getAttributeAsNumber = function _getAttributeAsNumber2(target, attr) { 19588 return _parseNum(target.getAttribute(attr)); 19589 }; 19590 var _sqrt2 = Math.sqrt; 19591 var _getDistance = function _getDistance2(x1, y1, x2, y2, scaleX, scaleY) { 19592 return _sqrt2(Math.pow((_parseNum(x2) - _parseNum(x1)) * scaleX, 2) + Math.pow((_parseNum(y2) - _parseNum(y1)) * scaleY, 2)); 19593 }; 19594 var _warn3 = function _warn4(message) { 19595 return console.warn(message); 19596 }; 19597 var _hasNonScalingStroke = function _hasNonScalingStroke2(target) { 19598 return target.getAttribute("vector-effect") === "non-scaling-stroke"; 19599 }; 19600 var _bonusValidated = 1; 19601 var _parse = function _parse2(value, length, defaultStart) { 19602 var i = value.indexOf(" "), s, e; 19603 if (i < 0) { 19604 s = defaultStart !== void 0 ? defaultStart + "" : value; 19605 e = value; 19606 } else { 19607 s = value.substr(0, i); 19608 e = value.substr(i + 1); 19609 } 19610 s = _parseSingleVal(s, length); 19611 e = _parseSingleVal(e, length); 19612 return s > e ? [e, s] : [s, e]; 19613 }; 19614 var _getLength = function _getLength2(target) { 19615 target = _toArray2(target)[0]; 19616 if (!target) { 19617 return 0; 19618 } 19619 var type = target.tagName.toLowerCase(), style = target.style, scaleX = 1, scaleY = 1, length, bbox, points, prevPoint, i, rx, ry; 19620 if (_hasNonScalingStroke(target)) { 19621 scaleY = target.getScreenCTM(); 19622 scaleX = _sqrt2(scaleY.a * scaleY.a + scaleY.b * scaleY.b); 19623 scaleY = _sqrt2(scaleY.d * scaleY.d + scaleY.c * scaleY.c); 19624 } 19625 try { 19626 bbox = target.getBBox(); 19627 } catch (e) { 19628 _warn3("Some browsers won't measure invisible elements (like display:none or masks inside defs)."); 19629 } 19630 var _ref = bbox || { 19631 x: 0, 19632 y: 0, 19633 width: 0, 19634 height: 0 19635 }, x = _ref.x, y = _ref.y, width = _ref.width, height = _ref.height; 19636 if ((!bbox || !width && !height) && _types[type]) { 19637 width = _getAttributeAsNumber(target, _types[type][0]); 19638 height = _getAttributeAsNumber(target, _types[type][1]); 19639 if (type !== "rect" && type !== "line") { 19640 width *= 2; 19641 height *= 2; 19642 } 19643 if (type === "line") { 19644 x = _getAttributeAsNumber(target, "x1"); 19645 y = _getAttributeAsNumber(target, "y1"); 19646 width = Math.abs(width - x); 19647 height = Math.abs(height - y); 19648 } 19649 } 19650 if (type === "path") { 19651 prevPoint = style.strokeDasharray; 19652 style.strokeDasharray = "none"; 19653 length = target.getTotalLength() || 0; 19654 _round5(scaleX) !== _round5(scaleY) && !_warned && (_warned = 1) && _warn3("Warning: <path> length cannot be measured when vector-effect is non-scaling-stroke and the element isn't proportionally scaled."); 19655 length *= (scaleX + scaleY) / 2; 19656 style.strokeDasharray = prevPoint; 19657 } else if (type === "rect") { 19658 length = width * 2 * scaleX + height * 2 * scaleY; 19659 } else if (type === "line") { 19660 length = _getDistance(x, y, x + width, y + height, scaleX, scaleY); 19661 } else if (type === "polyline" || type === "polygon") { 19662 points = target.getAttribute("points").match(_numExp2) || []; 19663 type === "polygon" && points.push(points[0], points[1]); 19664 length = 0; 19665 for (i = 2; i < points.length; i += 2) { 19666 length += _getDistance(points[i - 2], points[i - 1], points[i], points[i + 1], scaleX, scaleY) || 0; 19667 } 19668 } else if (type === "circle" || type === "ellipse") { 19669 rx = width / 2 * scaleX; 19670 ry = height / 2 * scaleY; 19671 length = Math.PI * (3 * (rx + ry) - _sqrt2((3 * rx + ry) * (rx + 3 * ry))); 19672 } 19673 return length || 0; 19674 }; 19675 var _getPosition = function _getPosition2(target, length) { 19676 target = _toArray2(target)[0]; 19677 if (!target) { 19678 return [0, 0]; 19679 } 19680 length || (length = _getLength(target) + 1); 19681 var cs = _win5.getComputedStyle(target), dash = cs.strokeDasharray || "", offset2 = _parseNum(cs.strokeDashoffset), i = dash.indexOf(","); 19682 i < 0 && (i = dash.indexOf(" ")); 19683 dash = i < 0 ? length : _parseNum(dash.substr(0, i)); 19684 dash > length && (dash = length); 19685 return [-offset2 || 0, dash - offset2 || 0]; 19686 }; 19687 var _initCore5 = function _initCore6() { 19688 if (_windowExists7()) { 19689 _doc5 = document; 19690 _win5 = window; 19691 _coreInitted4 = gsap4 = _getGSAP5(); 19692 _toArray2 = gsap4.utils.toArray; 19693 _isEdge = ((_win5.navigator || {}).userAgent || "").indexOf("Edge") !== -1; 19694 } 19695 }; 19696 var DrawSVGPlugin = { 19697 version: "3.10.4", 19698 name: "drawSVG", 19699 register: function register(core) { 19700 gsap4 = core; 19701 _initCore5(); 19702 }, 19703 init: function init4(target, value, tween, index, targets) { 19704 if (!target.getBBox) { 19705 return false; 19706 } 19707 _coreInitted4 || _initCore5(); 19708 var length = _getLength(target), start2, end2, cs; 19709 this._style = target.style; 19710 this._target = target; 19711 if (value + "" === "true") { 19712 value = "0 100%"; 19713 } else if (!value) { 19714 value = "0 0"; 19715 } else if ((value + "").indexOf(" ") === -1) { 19716 value = "0 " + value; 19717 } 19718 start2 = _getPosition(target, length); 19719 end2 = _parse(value, length, start2[0]); 19720 this._length = _round5(length); 19721 this._dash = _round5(start2[1] - start2[0]); 19722 this._offset = _round5(-start2[0]); 19723 this._dashPT = this.add(this, "_dash", this._dash, _round5(end2[1] - end2[0])); 19724 this._offsetPT = this.add(this, "_offset", this._offset, _round5(-end2[0])); 19725 if (_isEdge) { 19726 cs = _win5.getComputedStyle(target); 19727 if (cs.strokeLinecap !== cs.strokeLinejoin) { 19728 end2 = _parseNum(cs.strokeMiterlimit); 19729 this.add(target.style, "strokeMiterlimit", end2, end2 + 0.01); 19730 } 19731 } 19732 this._live = _hasNonScalingStroke(target) || ~(value + "").indexOf("live"); 19733 this._nowrap = ~(value + "").indexOf("nowrap"); 19734 this._props.push("drawSVG"); 19735 return _bonusValidated; 19736 }, 19737 render: function render(ratio, data) { 19738 var pt = data._pt, style = data._style, length, lengthRatio, dash, offset2; 19739 if (pt) { 19740 if (data._live) { 19741 length = _getLength(data._target); 19742 if (length !== data._length) { 19743 lengthRatio = length / data._length; 19744 data._length = length; 19745 if (data._offsetPT) { 19746 data._offsetPT.s *= lengthRatio; 19747 data._offsetPT.c *= lengthRatio; 19748 } 19749 if (data._dashPT) { 19750 data._dashPT.s *= lengthRatio; 19751 data._dashPT.c *= lengthRatio; 19752 } else { 19753 data._dash *= lengthRatio; 19754 } 19755 } 19756 } 19757 while (pt) { 19758 pt.r(ratio, pt.d); 19759 pt = pt._next; 19760 } 19761 dash = data._dash || ratio && ratio !== 1 && 1e-4 || 0; 19762 length = data._length - dash + 0.1; 19763 offset2 = data._offset; 19764 dash && offset2 && dash + Math.abs(offset2 % data._length) > data._length - 0.2 && (offset2 += offset2 < 0 ? 0.1 : -0.1) && (length += 0.1); 19765 style.strokeDashoffset = dash ? offset2 : offset2 + 1e-3; 19766 style.strokeDasharray = length < 0.2 ? "none" : dash ? dash + "px," + (data._nowrap ? 999999 : length) + "px" : "0px, 999999px"; 19767 } 19768 }, 19769 getLength: _getLength, 19770 getPosition: _getPosition 19771 }; 19772 _getGSAP5() && gsap4.registerPlugin(DrawSVGPlugin); 19773 19774
19774// components/page-builder/text-image/index.js 19775 function text_image() { 19776 gsapWithCSS.set(".ti-circle-1 path", { 19777 scaleX: -1, 19778 transformOrigin: "center center", 19779 rotate: -90 19780 }); 19781 gsapWithCSS.set(".ti-circle-2 path", { 19782 scaleX: -1, 19783 transformOrigin: "center center", 19784 rotate: 90 19785 }); 19786 gsapWithCSS.set(".ti-circle-3 path", { 19787 scaleX: -1, 19788 transformOrigin: "center center", 19789 rotate: -90 19790 }); 19791 let sections = document.querySelectorAll(".text-image"); 19792 sections.forEach(function(el) { 19793 ScrollTrigger2.create({ 19794 trigger: el, 19795 start: "top 85%", 19796 invalidateOnRefresh: true, 19797 onEnter: (self2) => { 19798 gsapWithCSS.timeline({ 19799 defaults: { 19800 duration: 0.5, 19801 ease: "none", 19802 clearProps: "all" 19803 } 19804 }).from(el.querySelector(".ti-line-1"), { 19805 width: 0 19806 }).from(el.querySelector(".ti-line-2"), { 19807 height: 0 19808 }).fromTo(el.querySelector(".ti-circle-1 path"), { 19809 drawSVG: "100% 100%" 19810 }, { 19811 drawSVG: "0% 100%", 19812 duration: 0.1 19813 }).from(el.querySelector(".ti-line-3"), { 19814 width: 0 19815 }).fromTo(el.querySelector(".ti-circle-2 path"), { 19816 drawSVG: "100% 100%" 19817 }, { 19818 drawSVG: "0% 100%", 19819 duration: 0.1 19820 }).from(el.querySelector(".ti-line-4"), { 19821 height: 0 19822 }).fromTo(el.querySelector(".ti-circle-3 path"), { 19823 drawSVG: "100% 100%" 19824 }, { 19825 drawSVG: "0% 100%", 19826 duration: 0.1 19827 }).from(el.querySelector(".ti-line-5"), { 19828 width: 0 19829 }); 19830 } 19831 }); 19832 }); 19833 } 19834 19835
19835// components/page-builder/product-slider/index.js 19836 function product_slider() { 19837 if (document.querySelector(".product-slider .glide")) { 19838 let sliders = document.querySelectorAll(".product-slider .glide"); 19839 sliders.forEach(function(element) { 19840 new Glide(element, { 19841 gap: 0, 19842 autoplay: 8e3 19843 }).mount(); 19844 }); 19845 } 19846 } 19847 19848
19848// components/page-builder/product-slider-2/index.js 19849 function product_slider_2() { 19850 if (document.querySelector(".product-slider-2 .glide")) { 19851 let sliders = document.querySelectorAll(".product-slider-2 .glide"); 19852 sliders.forEach(function(element) { 19853 let dir = element.closest('[dir="rtl"]') ? "rtl" : "ltr"; 19854 new Glide(element, { 19855 gap: 30, 19856 autoplay: 8e3, 19857 perView: 3, 19858 bound: true, 19859 type: "carousel", 19860 breakpoints: { 19861 1024: { 19862 perView: 2 19863 }, 19864 600: { 19865 perView: 1 19866 } 19867 }, 19868 direction: dir 19869 }).mount(); 19870 }); 19871 } 19872 } 19873 19874
vendor: 7,239 bytes, lines 19874-20072
19874// node_modules/gsap/ScrollToPlugin.js 19875 var gsap5; 19876 var _coreInitted5; 19877 var _window; 19878 var _docEl3; 19879 var _body3; 19880 var _toArray3; 19881 var _config2; 19882 var _windowExists9 = function _windowExists10() { 19883 return typeof window !== "undefined"; 19884 }; 19885 var _getGSAP7 = function _getGSAP8() { 19886 return gsap5 || _windowExists9() && (gsap5 = window.gsap) && gsap5.registerPlugin && gsap5; 19887 }; 19888 var _isString5 = function _isString6(value) { 19889 return typeof value === "string"; 19890 }; 19891 var _isFunction5 = function _isFunction6(value) { 19892 return typeof value === "function"; 19893 }; 19894 var _max = function _max2(element, axis) { 19895 var dim = axis === "x" ? "Width" : "Height", scroll = "scroll" + dim, client = "client" + dim; 19896 return element === _window || element === _docEl3 || element === _body3 ? Math.max(_docEl3[scroll], _body3[scroll]) - (_window["inner" + dim] || _docEl3[client] || _body3[client]) : element[scroll] - element["offset" + dim]; 19897 }; 19898 var _buildGetter = function _buildGetter2(e, axis) { 19899 var p = "scroll" + (axis === "x" ? "Left" : "Top"); 19900 if (e === _window) { 19901 if (e.pageXOffset != null) { 19902 p = "page" + axis.toUpperCase() + "Offset"; 19903 } else { 19904 e = _docEl3[p] != null ? _docEl3 : _body3; 19905 } 19906 } 19907 return function() { 19908 return e[p]; 19909 }; 19910 }; 19911 var _clean = function _clean2(value, index, target, targets) { 19912 _isFunction5(value) && (value = value(index, target, targets)); 19913 if (typeof value !== "object") { 19914 return _isString5(value) && value !== "max" && value.charAt(1) !== "=" ? { 19915 x: value, 19916 y: value 19917 } : { 19918 y: value 19919 }; 19920 } else if (value.nodeType) { 19921 return { 19922 y: value, 19923 x: value 19924 }; 19925 } else { 19926 var result = {}, p; 19927 for (p in value) { 19928 result[p] = p !== "onAutoKill" && _isFunction5(value[p]) ? value[p](index, target, targets) : value[p]; 19929 } 19930 return result; 19931 } 19932 }; 19933 var _getOffset = function _getOffset2(element, container) { 19934 element = _toArray3(element)[0]; 19935 if (!element || !element.getBoundingClientRect) { 19936 return console.warn("scrollTo target doesn't exist. Using 0") || { 19937 x: 0, 19938 y: 0 19939 }; 19940 } 19941 var rect = element.getBoundingClientRect(), isRoot = !container || container === _window || container === _body3, cRect = isRoot ? { 19942 top: _docEl3.clientTop - (_window.pageYOffset || _docEl3.scrollTop || _body3.scrollTop || 0), 19943 left: _docEl3.clientLeft - (_window.pageXOffset || _docEl3.scrollLeft || _body3.scrollLeft || 0) 19944 } : container.getBoundingClientRect(), offsets = { 19945 x: rect.left - cRect.left, 19946 y: rect.top - cRect.top 19947 }; 19948 if (!isRoot && container) { 19949 offsets.x += _buildGetter(container, "x")(); 19950 offsets.y += _buildGetter(container, "y")(); 19951 } 19952 return offsets; 19953 }; 19954 var _parseVal = function _parseVal2(value, target, axis, currentVal, offset2) { 19955 return !isNaN(value) && typeof value !== "object" ? parseFloat(value) - offset2 : _isString5(value) && value.charAt(1) === "=" ? parseFloat(value.substr(2)) * (value.charAt(0) === "-" ? -1 : 1) + currentVal - offset2 : value === "max" ? _max(target, axis) - offset2 : Math.min(_max(target, axis), _getOffset(value, target)[axis] - offset2); 19956 }; 19957 var _initCore7 = function _initCore8() { 19958 gsap5 = _getGSAP7(); 19959 if (_windowExists9() && gsap5 && document.body) { 19960 _window = window; 19961 _body3 = document.body; 19962 _docEl3 = document.documentElement; 19963 _toArray3 = gsap5.utils.toArray; 19964 gsap5.config({ 19965 autoKillThreshold: 7 19966 }); 19967 _config2 = gsap5.config(); 19968 _coreInitted5 = 1; 19969 } 19970 }; 19971 var ScrollToPlugin = { 19972 version: "3.10.4", 19973 name: "scrollTo", 19974 rawVars: 1, 19975 register: function register2(core) { 19976 gsap5 = core; 19977 _initCore7(); 19978 }, 19979 init: function init5(target, value, tween, index, targets) { 19980 _coreInitted5 || _initCore7(); 19981 var data = this, snapType = gsap5.getProperty(target, "scrollSnapType"); 19982 data.isWin = target === _window; 19983 data.target = target; 19984 data.tween = tween; 19985 value = _clean(value, index, target, targets); 19986 data.vars = value; 19987 data.autoKill = !!value.autoKill; 19988 data.getX = _buildGetter(target, "x"); 19989 data.getY = _buildGetter(target, "y"); 19990 data.x = data.xPrev = data.getX(); 19991 data.y = data.yPrev = data.getY(); 19992 if (snapType && snapType !== "none") { 19993 data.snap = 1; 19994 data.snapInline = target.style.scrollSnapType; 19995 target.style.scrollSnapType = "none"; 19996 } 19997 if (value.x != null) { 19998 data.add(data, "x", data.x, _parseVal(value.x, target, "x", data.x, value.offsetX || 0), index, targets); 19999 data._props.push("scrollTo_x"); 20000 } else { 20001 data.skipX = 1; 20002 } 20003 if (value.y != null) { 20004 data.add(data, "y", data.y, _parseVal(value.y, target, "y", data.y, value.offsetY || 0), index, targets); 20005 data._props.push("scrollTo_y"); 20006 } else { 20007 data.skipY = 1; 20008 } 20009 }, 20010 render: function render2(ratio, data) { 20011 var pt = data._pt, target = data.target, tween = data.tween, autoKill = data.autoKill, xPrev = data.xPrev, yPrev = data.yPrev, isWin = data.isWin, snap3 = data.snap, snapInline = data.snapInline, x, y, yDif, xDif, threshold; 20012 while (pt) { 20013 pt.r(ratio, pt.d); 20014 pt = pt._next; 20015 } 20016 x = isWin || !data.skipX ? data.getX() : xPrev; 20017 y = isWin || !data.skipY ? data.getY() : yPrev; 20018 yDif = y - yPrev; 20019 xDif = x - xPrev; 20020 threshold = _config2.autoKillThreshold; 20021 if (data.x < 0) { 20022 data.x = 0; 20023 } 20024 if (data.y < 0) { 20025 data.y = 0; 20026 } 20027 if (autoKill) { 20028 if (!data.skipX && (xDif > threshold || xDif < -threshold) && x < _max(target, "x")) { 20029 data.skipX = 1; 20030 } 20031 if (!data.skipY && (yDif > threshold || yDif < -threshold) && y < _max(target, "y")) { 20032 data.skipY = 1; 20033 } 20034 if (data.skipX && data.skipY) { 20035 tween.kill(); 20036 data.vars.onAutoKill && data.vars.onAutoKill.apply(tween, data.vars.onAutoKillParams || []); 20037 } 20038 } 20039 if (isWin) { 20040 _window.scrollTo(!data.skipX ? data.x : x, !data.skipY ? data.y : y); 20041 } else { 20042 data.skipY || (target.scrollTop = data.y); 20043 data.skipX || (target.scrollLeft = data.x); 20044 } 20045 if (snap3 && (ratio === 1 || ratio === 0)) { 20046 y = target.scrollTop; 20047 x = target.scrollLeft; 20048 snapInline ? target.style.scrollSnapType = snapInline : target.style.removeProperty("scroll-snap-type"); 20049 target.scrollTop = y + 1; 20050 target.scrollLeft = x + 1; 20051 target.scrollTop = y; 20052 target.scrollLeft = x; 20053 } 20054 data.xPrev = data.x; 20055 data.yPrev = data.y; 20056 }, 20057 kill: function kill(property) { 20058 var both = property === "scrollTo"; 20059 if (both || property === "scrollTo_x") { 20060 this.skipX = 1; 20061 } 20062 if (both || property === "scrollTo_y") { 20063 this.skipY = 1; 20064 } 20065 } 20066 }; 20067 ScrollToPlugin.max = _max; 20068 ScrollToPlugin.getOffset = _getOffset; 20069 ScrollToPlugin.buildGetter = _buildGetter; 20070 _getGSAP7() && gsap5.registerPlugin(ScrollToPlugin); 20071 20072
vendor: 7,649 bytes, lines 20072-20090
20072// node_modules/gsap/utils/strings.js 20073 var emojiExp = /([\uD800-\uDBFF][\uDC00-\uDFFF](?:[\u200D\uFE0F][\uD800-\uDBFF][\uDC00-\uDFFF]){2,}|\uD83D\uDC69(?:\u200D(?:(?:\uD83D\uDC69\u200D)?\uD83D\uDC67|(?:\uD83D\uDC69\u200D)?\uD83D\uDC66)|\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D(?:\uD83D\uDC69\u200D)?\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D(?:\uD83D\uDC69\u200D)?\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]\uFE0F|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC6F\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3C-\uDD3E\uDDD6-\uDDDF])\u200D[\u2640\u2642]\uFE0F|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F\u200D[\u2640\u2642]|(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642])\uFE0F|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\uD83D\uDC69\u200D[\u2695\u2696\u2708]|\uD83D\uDC68(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708]))\uFE0F|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83D\uDC69\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|\uD83D\uDC68(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:(?:\uD83D[\uDC68\uDC69])\u200D)?\uD83D\uDC66\u200D\uD83D\uDC66|(?:(?:\uD83D[\uDC68\uDC69])\u200D)?\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]))|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDD1-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\u200D(?:(?:(?:\uD83D[\uDC68\uDC69])\u200D)?\uD83D\uDC67|(?:(?:\uD83D[\uDC68\uDC69])\u200D)?\uD83D\uDC66)|\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC69\uDC6E\uDC70-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD26\uDD30-\uDD39\uDD3D\uDD3E\uDDD1-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])?|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDEEB\uDEEC\uDEF4-\uDEF8]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD4C\uDD50-\uDD6B\uDD80-\uDD97\uDDC0\uDDD0-\uDDE6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267B\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEF8]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD4C\uDD50-\uDD6B\uDD80-\uDD97\uDDC0\uDDD0-\uDDE6])\uFE0F)/; 20074 function getText(e) { 20075 var type = e.nodeType, result = ""; 20076 if (type === 1 || type === 9 || type === 11) { 20077 if (typeof e.textContent === "string") { 20078 return e.textContent; 20079 } else { 20080 for (e = e.firstChild; e; e = e.nextSibling) { 20081 result += getText(e); 20082 } 20083 } 20084 } else if (type === 3 || type === 4) { 20085 return e.nodeValue; 20086 } 20087 return result; 20088 } 20089 20090
vendor: 17,016 bytes, lines 20090-20489
20090// node_modules/gsap/SplitText.js 20091 var _doc6; 20092 var _win6; 20093 var _coreInitted6; 20094 var _stripExp = /(?:\r|\n|\t\t)/g; 20095 var _multipleSpacesExp = /(?:\s\s+)/g; 20096 var _initCore9 = function _initCore10() { 20097 _doc6 = document; 20098 _win6 = window; 20099 _coreInitted6 = 1; 20100 }; 20101 var _bonusValidated2 = 1; 20102 var _getComputedStyle3 = function _getComputedStyle4(element) { 20103 return _win6.getComputedStyle(element); 20104 }; 20105 var _isArray2 = Array.isArray; 20106 var _slice2 = [].slice; 20107 var _toArray4 = function _toArray5(value, leaveStrings) { 20108 var type; 20109 return _isArray2(value) ? value : (type = typeof value) === "string" && !leaveStrings && value ? _slice2.call(_doc6.querySelectorAll(value), 0) : value && type === "object" && "length" in value ? _slice2.call(value, 0) : value ? [value] : []; 20110 }; 20111 var _isAbsolute = function _isAbsolute2(vars) { 20112 return vars.position === "absolute" || vars.absolute === true; 20113 }; 20114 var _findSpecialChars = function _findSpecialChars2(text, chars) { 20115 var i = chars.length, s; 20116 while (--i > -1) { 20117 s = chars[i]; 20118 if (text.substr(0, s.length) === s) { 20119 return s.length; 20120 } 20121 } 20122 }; 20123 var _divStart = " style='position:relative;display:inline-block;'"; 20124 var _cssClassFunc = function _cssClassFunc2(cssClass, tag) { 20125 if (cssClass === void 0) { 20126 cssClass = ""; 20127 } 20128 var iterate = ~cssClass.indexOf("++"), num = 1; 20129 if (iterate) { 20130 cssClass = cssClass.split("++").join(""); 20131 } 20132 return function() { 20133 return "<" + tag + _divStart + (cssClass ? " class='" + cssClass + (iterate ? num++ : "") + "'>" : ">"); 20134 }; 20135 }; 20136 var _swapText = function _swapText2(element, oldText, newText) { 20137 var type = element.nodeType; 20138 if (type === 1 || type === 9 || type === 11) { 20139 for (element = element.firstChild; element; element = element.nextSibling) { 20140 _swapText2(element, oldText, newText); 20141 } 20142 } else if (type === 3 || type === 4) { 20143 element.nodeValue = element.nodeValue.split(oldText).join(newText); 20144 } 20145 }; 20146 var _pushReversed = function _pushReversed2(a, merge) { 20147 var i = merge.length; 20148 while (--i > -1) { 20149 a.push(merge[i]); 20150 } 20151 }; 20152 var _isBeforeWordDelimiter = function _isBeforeWordDelimiter2(e, root, wordDelimiter) { 20153 var next; 20154 while (e && e !== root) { 20155 next = e._next || e.nextSibling; 20156 if (next) { 20157 return next.textContent.charAt(0) === wordDelimiter; 20158 } 20159 e = e.parentNode || e._parent; 20160 } 20161 }; 20162 var _deWordify = function _deWordify2(e) { 20163 var children = _toArray4(e.childNodes), l = children.length, i, child; 20164 for (i = 0; i < l; i++) { 20165 child = children[i]; 20166 if (child._isSplit) { 20167 _deWordify2(child); 20168 } else { 20169 if (i && child.previousSibling && child.previousSibling.nodeType === 3) { 20170 child.previousSibling.nodeValue += child.nodeType === 3 ? child.nodeValue : child.firstChild.nodeValue; 20171 e.removeChild(child); 20172 } else if (child.nodeType !== 3) { 20173 e.insertBefore(child.firstChild, child); 20174 e.removeChild(child); 20175 } 20176 } 20177 } 20178 }; 20179 var _getStyleAsNumber = function _getStyleAsNumber2(name, computedStyle) { 20180 return parseFloat(computedStyle[name]) || 0; 20181 }; 20182 var _setPositionsAfterSplit = function _setPositionsAfterSplit2(element, vars, allChars, allWords, allLines, origWidth, origHeight) { 20183 var cs = _getComputedStyle3(element), paddingLeft = _getStyleAsNumber("paddingLeft", cs), lineOffsetY = -999, borderTopAndBottom = _getStyleAsNumber("borderBottomWidth", cs) + _getStyleAsNumber("borderTopWidth", cs), borderLeftAndRight = _getStyleAsNumber("borderLeftWidth", cs) + _getStyleAsNumber("borderRightWidth", cs), padTopAndBottom = _getStyleAsNumber("paddingTop", cs) + _getStyleAsNumber("paddingBottom", cs), padLeftAndRight = _getStyleAsNumber("paddingLeft", cs) + _getStyleAsNumber("paddingRight", cs), lineThreshold = _getStyleAsNumber("fontSize", cs) * (vars.lineThreshold || 0.2), textAlign = cs.textAlign, charArray = [], wordArray = [], lineArray = [], wordDelimiter = vars.wordDelimiter || " ", tag = vars.tag ? vars.tag : vars.span ? "span" : "div", types = vars.type || vars.split || "chars,words,lines", lines = allLines && ~types.indexOf("lines") ? [] : null, words = ~types.indexOf("words"), chars = ~types.indexOf("chars"), absolute = _isAbsolute(vars), linesClass = vars.linesClass, iterateLine = ~(linesClass || "").indexOf("++"), spaceNodesToRemove = [], isFlex = cs.display === "flex", prevInlineDisplay = element.style.display, i, j, l, node, nodes, isChild, curLine, addWordSpaces, style, lineNode, lineWidth, offset2; 20184 iterateLine && (linesClass = linesClass.split("++").join("")); 20185 isFlex && (element.style.display = "block"); 20186 j = element.getElementsByTagName("*"); 20187 l = j.length; 20188 nodes = []; 20189 for (i = 0; i < l; i++) { 20190 nodes[i] = j[i]; 20191 } 20192 if (lines || absolute) { 20193 for (i = 0; i < l; i++) { 20194 node = nodes[i]; 20195 isChild = node.parentNode === element; 20196 if (isChild || absolute || chars && !words) { 20197 offset2 = node.offsetTop; 20198 if (lines && isChild && Math.abs(offset2 - lineOffsetY) > lineThreshold && (node.nodeName !== "BR" || i === 0)) { 20199 curLine = []; 20200 lines.push(curLine); 20201 lineOffsetY = offset2; 20202 } 20203 if (absolute) { 20204 node._x = node.offsetLeft; 20205 node._y = offset2; 20206 node._w = node.offsetWidth; 20207 node._h = node.offsetHeight; 20208 } 20209 if (lines) { 20210 if (node._isSplit && isChild || !chars && isChild || words && isChild || !words && node.parentNode.parentNode === element && !node.parentNode._isSplit) { 20211 curLine.push(node); 20212 node._x -= paddingLeft; 20213 if (_isBeforeWordDelimiter(node, element, wordDelimiter)) { 20214 node._wordEnd = true; 20215 } 20216 } 20217 if (node.nodeName === "BR" && (node.nextSibling && node.nextSibling.nodeName === "BR" || i === 0)) { 20218 lines.push([]); 20219 } 20220 } 20221 } 20222 } 20223 } 20224 for (i = 0; i < l; i++) { 20225 node = nodes[i]; 20226 isChild = node.parentNode === element; 20227 if (node.nodeName === "BR") { 20228 if (lines || absolute) { 20229 node.parentNode && node.parentNode.removeChild(node); 20230 nodes.splice(i--, 1); 20231 l--; 20232 } else if (!words) { 20233 element.appendChild(node); 20234 } 20235 continue; 20236 } 20237 if (absolute) { 20238 style = node.style; 20239 if (!words && !isChild) { 20240 node._x += node.parentNode._x; 20241 node._y += node.parentNode._y; 20242 } 20243 style.left = node._x + "px"; 20244 style.top = node._y + "px"; 20245 style.position = "absolute"; 20246 style.display = "block"; 20247 style.width = node._w + 1 + "px"; 20248 style.height = node._h + "px"; 20249 } 20250 if (!words && chars) { 20251 if (node._isSplit) { 20252 node._next = j = node.nextSibling; 20253 node.parentNode.appendChild(node); 20254 while (j && j.nodeType === 3 && j.textContent === " ") { 20255 node._next = j.nextSibling; 20256 node.parentNode.appendChild(j); 20257 j = j.nextSibling; 20258 } 20259 } else if (node.parentNode._isSplit) { 20260 node._parent = node.parentNode; 20261 if (!node.previousSibling && node.firstChild) { 20262 node.firstChild._isFirst = true; 20263 } 20264 if (node.nextSibling && node.nextSibling.textContent === " " && !node.nextSibling.nextSibling) { 20265 spaceNodesToRemove.push(node.nextSibling); 20266 } 20267 node._next = node.nextSibling && node.nextSibling._isFirst ? null : node.nextSibling; 20268 node.parentNode.removeChild(node); 20269 nodes.splice(i--, 1); 20270 l--; 20271 } else if (!isChild) { 20272 offset2 = !node.nextSibling && _isBeforeWordDelimiter(node.parentNode, element, wordDelimiter); 20273 node.parentNode._parent && node.parentNode._parent.appendChild(node); 20274 offset2 && node.parentNode.appendChild(_doc6.createTextNode(" ")); 20275 if (tag === "span") { 20276 node.style.display = "inline"; 20277 } 20278 charArray.push(node); 20279 } 20280 } else if (node.parentNode._isSplit && !node._isSplit && node.innerHTML !== "") { 20281 wordArray.push(node); 20282 } else if (chars && !node._isSplit) { 20283 if (tag === "span") { 20284 node.style.display = "inline"; 20285 } 20286 charArray.push(node); 20287 } 20288 } 20289 i = spaceNodesToRemove.length; 20290 while (--i > -1) { 20291 spaceNodesToRemove[i].parentNode.removeChild(spaceNodesToRemove[i]); 20292 } 20293 if (lines) { 20294 if (absolute) { 20295 lineNode = _doc6.createElement(tag); 20296 element.appendChild(lineNode); 20297 lineWidth = lineNode.offsetWidth + "px"; 20298 offset2 = lineNode.offsetParent === element ? 0 : element.offsetLeft; 20299 element.removeChild(lineNode); 20300 } 20301 style = element.style.cssText; 20302 element.style.cssText = "display:none;"; 20303 while (element.firstChild) { 20304 element.removeChild(element.firstChild); 20305 } 20306 addWordSpaces = wordDelimiter === " " && (!absolute || !words && !chars); 20307 for (i = 0; i < lines.length; i++) { 20308 curLine = lines[i]; 20309 lineNode = _doc6.createElement(tag); 20310 lineNode.style.cssText = "display:block;text-align:" + textAlign + ";position:" + (absolute ? "absolute;" : "relative;"); 20311 if (linesClass) { 20312 lineNode.className = linesClass + (iterateLine ? i + 1 : ""); 20313 } 20314 lineArray.push(lineNode); 20315 l = curLine.length; 20316 for (j = 0; j < l; j++) { 20317 if (curLine[j].nodeName !== "BR") { 20318 node = curLine[j]; 20319 lineNode.appendChild(node); 20320 addWordSpaces && node._wordEnd && lineNode.appendChild(_doc6.createTextNode(" ")); 20321 if (absolute) { 20322 if (j === 0) { 20323 lineNode.style.top = node._y + "px"; 20324 lineNode.style.left = paddingLeft + offset2 + "px"; 20325 } 20326 node.style.top = "0px"; 20327 if (offset2) { 20328 node.style.left = node._x - offset2 + "px"; 20329 } 20330 } 20331 } 20332 } 20333 if (l === 0) { 20334 lineNode.innerHTML = " "; 20335 } else if (!words && !chars) { 20336 _deWordify(lineNode); 20337 _swapText(lineNode, String.fromCharCode(160), " "); 20338 } 20339 if (absolute) { 20340 lineNode.style.width = lineWidth; 20341 lineNode.style.height = node._h + "px"; 20342 } 20343 element.appendChild(lineNode); 20344 } 20345 element.style.cssText = style; 20346 } 20347 if (absolute) { 20348 if (origHeight > element.clientHeight) { 20349 element.style.height = origHeight - padTopAndBottom + "px"; 20350 if (element.clientHeight < origHeight) { 20351 element.style.height = origHeight + borderTopAndBottom + "px"; 20352 } 20353 } 20354 if (origWidth > element.clientWidth) { 20355 element.style.width = origWidth - padLeftAndRight + "px"; 20356 if (element.clientWidth < origWidth) { 20357 element.style.width = origWidth + borderLeftAndRight + "px"; 20358 } 20359 } 20360 } 20361 isFlex && (prevInlineDisplay ? element.style.display = prevInlineDisplay : element.style.removeProperty("display")); 20362 _pushReversed(allChars, charArray); 20363 words && _pushReversed(allWords, wordArray); 20364 _pushReversed(allLines, lineArray); 20365 }; 20366 var _splitRawText = function _splitRawText2(element, vars, wordStart, charStart) { 20367 var tag = vars.tag ? vars.tag : vars.span ? "span" : "div", types = vars.type || vars.split || "chars,words,lines", chars = ~types.indexOf("chars"), absolute = _isAbsolute(vars), wordDelimiter = vars.wordDelimiter || " ", space = wordDelimiter !== " " ? "" : absolute ? "­ " : " ", wordEnd = "</" + tag + ">", wordIsOpen = 1, specialChars = vars.specialChars ? typeof vars.specialChars === "function" ? vars.specialChars : _findSpecialChars : null, text, splitText, i, j, l, character, hasTagStart, testResult, container = _doc6.createElement("div"), parent = element.parentNode; 20368 parent.insertBefore(container, element); 20369 container.textContent = element.nodeValue; 20370 parent.removeChild(element); 20371 element = container; 20372 text = getText(element); 20373 hasTagStart = text.indexOf("<") !== -1; 20374 if (vars.reduceWhiteSpace !== false) { 20375 text = text.replace(_multipleSpacesExp, " ").replace(_stripExp, ""); 20376 } 20377 if (hasTagStart) { 20378 text = text.split("<").join("{{LT}}"); 20379 } 20380 l = text.length; 20381 splitText = (text.charAt(0) === " " ? space : "") + wordStart(); 20382 for (i = 0; i < l; i++) { 20383 character = text.charAt(i); 20384 if (specialChars && (testResult = specialChars(text.substr(i), vars.specialChars))) { 20385 character = text.substr(i, testResult || 1); 20386 splitText += chars && character !== " " ? charStart() + character + "</" + tag + ">" : character; 20387 i += testResult - 1; 20388 } else if (character === wordDelimiter && text.charAt(i - 1) !== wordDelimiter && i) { 20389 splitText += wordIsOpen ? wordEnd : ""; 20390 wordIsOpen = 0; 20391 while (text.charAt(i + 1) === wordDelimiter) { 20392 splitText += space; 20393 i++; 20394 } 20395 if (i === l - 1) { 20396 splitText += space; 20397 } else if (text.charAt(i + 1) !== ")") { 20398 splitText += space + wordStart(); 20399 wordIsOpen = 1; 20400 } 20401 } else if (character === "{" && text.substr(i, 6) === "{{LT}}") { 20402 splitText += chars ? charStart() + "{{LT}}</" + tag + ">" : "{{LT}}"; 20403 i += 5; 20404 } else if (character.charCodeAt(0) >= 55296 && character.charCodeAt(0) <= 56319 || text.charCodeAt(i + 1) >= 65024 && text.charCodeAt(i + 1) <= 65039) { 20405 j = ((text.substr(i, 12).split(emojiExp) || [])[1] || "").length || 2; 20406 splitText += chars && character !== " " ? charStart() + text.substr(i, j) + "</" + tag + ">" : text.substr(i, j); 20407 i += j - 1; 20408 } else { 20409 splitText += chars && character !== " " ? charStart() + character + "</" + tag + ">" : character; 20410 } 20411 } 20412 element.outerHTML = splitText + (wordIsOpen ? wordEnd : ""); 20413 hasTagStart && _swapText(parent, "{{LT}}", "<"); 20414 }; 20415 var _split = function _split2(element, vars, wordStart, charStart) { 20416 var children = _toArray4(element.childNodes), l = children.length, absolute = _isAbsolute(vars), i, child; 20417 if (element.nodeType !== 3 || l > 1) { 20418 vars.absolute = false; 20419 for (i = 0; i < l; i++) { 20420 child = children[i]; 20421 child._next = child._isFirst = child._parent = child._wordEnd = null; 20422 if (child.nodeType !== 3 || /\S+/.test(child.nodeValue)) { 20423 if (absolute && child.nodeType !== 3 && _getComputedStyle3(child).display === "inline") { 20424 child.style.display = "inline-block"; 20425 child.style.position = "relative"; 20426 } 20427 child._isSplit = true; 20428 _split2(child, vars, wordStart, charStart); 20429 } 20430 } 20431 vars.absolute = absolute; 20432 element._isSplit = true; 20433 return; 20434 } 20435 _splitRawText(element, vars, wordStart, charStart); 20436 }; 20437 var SplitText = /* @__PURE__ */ function() { 20438 function SplitText2(element, vars) { 20439 _coreInitted6 || _initCore9(); 20440 this.elements = _toArray4(element); 20441 this.chars = []; 20442 this.words = []; 20443 this.lines = []; 20444 this._originals = []; 20445 this.vars = vars || {}; 20446 _bonusValidated2 && this.split(vars); 20447 } 20448 var _proto = SplitText2.prototype; 20449 _proto.split = function split2(vars) { 20450 this.isSplit && this.revert(); 20451 this.vars = vars = vars || this.vars; 20452 this._originals.length = this.chars.length = this.words.length = this.lines.length = 0; 20453 var i = this.elements.length, tag = vars.tag ? vars.tag : vars.span ? "span" : "div", wordStart = _cssClassFunc(vars.wordsClass, tag), charStart = _cssClassFunc(vars.charsClass, tag), origHeight, origWidth, e; 20454 while (--i > -1) { 20455 e = this.elements[i]; 20456 this._originals[i] = e.innerHTML; 20457 origHeight = e.clientHeight; 20458 origWidth = e.clientWidth; 20459 _split(e, vars, wordStart, charStart); 20460 _setPositionsAfterSplit(e, vars, this.chars, this.words, this.lines, origWidth, origHeight); 20461 } 20462 this.chars.reverse(); 20463 this.words.reverse(); 20464 this.lines.reverse(); 20465 this.isSplit = true; 20466 return this; 20467 }; 20468 _proto.revert = function revert() { 20469 var originals = this._originals; 20470 if (!originals) { 20471 throw "revert() call wasn't scoped properly."; 20472 } 20473 this.elements.forEach(function(e, i) { 20474 return e.innerHTML = originals[i]; 20475 }); 20476 this.chars = []; 20477 this.words = []; 20478 this.lines = []; 20479 this.isSplit = false; 20480 return this; 20481 }; 20482 SplitText2.create = function create(element, vars) { 20483 return new SplitText2(element, vars); 20484 }; 20485 return SplitText2; 20486 }(); 20487 SplitText.version = "3.10.4"; 20488 20489
vendor: 13,076 bytes, lines 20489-20821
20489// node_modules/gsap/utils/paths.js 20490 var _svgPathExp = /[achlmqstvz]|(-?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/ig; 20491 var _numbersExp = /(?:(-)?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/ig; 20492 var _scientific = /[\+\-]?\d*\.?\d+e[\+\-]?\d+/ig; 20493 var _selectorExp = /(^[#\.][a-z]|[a-y][a-z])/i; 20494 var _DEG2RAD2 = Math.PI / 180; 20495 var _RAD2DEG2 = 180 / Math.PI; 20496 var _sin2 = Math.sin; 20497 var _cos2 = Math.cos; 20498 var _abs2 = Math.abs; 20499 var _sqrt3 = Math.sqrt; 20500 var _isString7 = function _isString8(value) { 20501 return typeof value === "string"; 20502 }; 20503 var _isNumber5 = function _isNumber6(value) { 20504 return typeof value === "number"; 20505 }; 20506 var _roundingNum = 1e5; 20507 var _round7 = function _round8(value) { 20508 return Math.round(value * _roundingNum) / _roundingNum || 0; 20509 }; 20510 function getRawPath(value) { 20511 value = _isString7(value) && _selectorExp.test(value) ? document.querySelector(value) || value : value; 20512 var e = value.getAttribute ? value : 0, rawPath; 20513 if (e && (value = value.getAttribute("d"))) { 20514 if (!e._gsPath) { 20515 e._gsPath = {}; 20516 } 20517 rawPath = e._gsPath[value]; 20518 return rawPath && !rawPath._dirty ? rawPath : e._gsPath[value] = stringToRawPath(value); 20519 } 20520 return !value ? console.warn("Expecting a <path> element or an SVG path data string") : _isString7(value) ? stringToRawPath(value) : _isNumber5(value[0]) ? [value] : value; 20521 } 20522 function reverseSegment(segment) { 20523 var i = 0, y; 20524 segment.reverse(); 20525 for (; i < segment.length; i += 2) { 20526 y = segment[i]; 20527 segment[i] = segment[i + 1]; 20528 segment[i + 1] = y; 20529 } 20530 segment.reversed = !segment.reversed; 20531 } 20532 var _createPath = function _createPath2(e, ignore) { 20533 var path = document.createElementNS("http://www.w3.org/2000/svg", "path"), attr = [].slice.call(e.attributes), i = attr.length, name; 20534 ignore = "," + ignore + ","; 20535 while (--i > -1) { 20536 name = attr[i].nodeName.toLowerCase(); 20537 if (ignore.indexOf("," + name + ",") < 0) { 20538 path.setAttributeNS(null, name, attr[i].nodeValue); 20539 } 20540 } 20541 return path; 20542 }; 20543 var _typeAttrs = { 20544 rect: "rx,ry,x,y,width,height", 20545 circle: "r,cx,cy", 20546 ellipse: "rx,ry,cx,cy", 20547 line: "x1,x2,y1,y2" 20548 }; 20549 var _attrToObj = function _attrToObj2(e, attrs) { 20550 var props = attrs ? attrs.split(",") : [], obj = {}, i = props.length; 20551 while (--i > -1) { 20552 obj[props[i]] = +e.getAttribute(props[i]) || 0; 20553 } 20554 return obj; 20555 }; 20556 function convertToPath(element, swap) { 20557 var type = element.tagName.toLowerCase(), circ = 0.552284749831, data, x, y, r, ry, path, rcirc, rycirc, points, w, h, x2, x3, x4, x5, x6, y2, y3, y4, y5, y6, attr; 20558 if (type === "path" || !element.getBBox) { 20559 return element; 20560 } 20561 path = _createPath(element, "x,y,width,height,cx,cy,rx,ry,r,x1,x2,y1,y2,points"); 20562 attr = _attrToObj(element, _typeAttrs[type]); 20563 if (type === "rect") { 20564 r = attr.rx; 20565 ry = attr.ry || r; 20566 x = attr.x; 20567 y = attr.y; 20568 w = attr.width - r * 2; 20569 h = attr.height - ry * 2; 20570 if (r || ry) { 20571 x2 = x + r * (1 - circ); 20572 x3 = x + r; 20573 x4 = x3 + w; 20574 x5 = x4 + r * circ; 20575 x6 = x4 + r; 20576 y2 = y + ry * (1 - circ); 20577 y3 = y + ry; 20578 y4 = y3 + h; 20579 y5 = y4 + ry * circ; 20580 y6 = y4 + ry; 20581 data = "M" + x6 + "," + y3 + " V" + y4 + " C" + [x6, y5, x5, y6, x4, y6, x4 - (x4 - x3) / 3, y6, x3 + (x4 - x3) / 3, y6, x3, y6, x2, y6, x, y5, x, y4, x, y4 - (y4 - y3) / 3, x, y3 + (y4 - y3) / 3, x, y3, x, y2, x2, y, x3, y, x3 + (x4 - x3) / 3, y, x4 - (x4 - x3) / 3, y, x4, y, x5, y, x6, y2, x6, y3].join(",") + "z"; 20582 } else { 20583 data = "M" + (x + w) + "," + y + " v" + h + " h" + -w + " v" + -h + " h" + w + "z"; 20584 } 20585 } else if (type === "circle" || type === "ellipse") { 20586 if (type === "circle") { 20587 r = ry = attr.r; 20588 rycirc = r * circ; 20589 } else { 20590 r = attr.rx; 20591 ry = attr.ry; 20592 rycirc = ry * circ; 20593 } 20594 x = attr.cx; 20595 y = attr.cy; 20596 rcirc = r * circ; 20597 data = "M" + (x + r) + "," + y + " C" + [x + r, y + rycirc, x + rcirc, y + ry, x, y + ry, x - rcirc, y + ry, x - r, y + rycirc, x - r, y, x - r, y - rycirc, x - rcirc, y - ry, x, y - ry, x + rcirc, y - ry, x + r, y - rycirc, x + r, y].join(",") + "z"; 20598 } else if (type === "line") { 20599 data = "M" + attr.x1 + "," + attr.y1 + " L" + attr.x2 + "," + attr.y2; 20600 } else if (type === "polyline" || type === "polygon") { 20601 points = (element.getAttribute("points") + "").match(_numbersExp) || []; 20602 x = points.shift(); 20603 y = points.shift(); 20604 data = "M" + x + "," + y + " L" + points.join(","); 20605 if (type === "polygon") { 20606 data += "," + x + "," + y + "z"; 20607 } 20608 } 20609 path.setAttribute("d", rawPathToString(path._gsRawPath = stringToRawPath(data))); 20610 if (swap && element.parentNode) { 20611 element.parentNode.insertBefore(path, element); 20612 element.parentNode.removeChild(element); 20613 } 20614 return path; 20615 } 20616 function arcToSegment(lastX, lastY, rx, ry, angle, largeArcFlag, sweepFlag, x, y) { 20617 if (lastX === x && lastY === y) { 20618 return; 20619 } 20620 rx = _abs2(rx); 20621 ry = _abs2(ry); 20622 var angleRad = angle % 360 * _DEG2RAD2, cosAngle = _cos2(angleRad), sinAngle = _sin2(angleRad), PI = Math.PI, TWOPI = PI * 2, dx2 = (lastX - x) / 2, dy2 = (lastY - y) / 2, x1 = cosAngle * dx2 + sinAngle * dy2, y1 = -sinAngle * dx2 + cosAngle * dy2, x1_sq = x1 * x1, y1_sq = y1 * y1, radiiCheck = x1_sq / (rx * rx) + y1_sq / (ry * ry); 20623 if (radiiCheck > 1) { 20624 rx = _sqrt3(radiiCheck) * rx; 20625 ry = _sqrt3(radiiCheck) * ry; 20626 } 20627 var rx_sq = rx * rx, ry_sq = ry * ry, sq = (rx_sq * ry_sq - rx_sq * y1_sq - ry_sq * x1_sq) / (rx_sq * y1_sq + ry_sq * x1_sq); 20628 if (sq < 0) { 20629 sq = 0; 20630 } 20631 var coef = (largeArcFlag === sweepFlag ? -1 : 1) * _sqrt3(sq), cx1 = coef * (rx * y1 / ry), cy1 = coef * -(ry * x1 / rx), sx2 = (lastX + x) / 2, sy2 = (lastY + y) / 2, cx = sx2 + (cosAngle * cx1 - sinAngle * cy1), cy = sy2 + (sinAngle * cx1 + cosAngle * cy1), ux = (x1 - cx1) / rx, uy = (y1 - cy1) / ry, vx = (-x1 - cx1) / rx, vy = (-y1 - cy1) / ry, temp = ux * ux + uy * uy, angleStart = (uy < 0 ? -1 : 1) * Math.acos(ux / _sqrt3(temp)), angleExtent = (ux * vy - uy * vx < 0 ? -1 : 1) * Math.acos((ux * vx + uy * vy) / _sqrt3(temp * (vx * vx + vy * vy))); 20632 isNaN(angleExtent) && (angleExtent = PI); 20633 if (!sweepFlag && angleExtent > 0) { 20634 angleExtent -= TWOPI; 20635 } else if (sweepFlag && angleExtent < 0) { 20636 angleExtent += TWOPI; 20637 } 20638 angleStart %= TWOPI; 20639 angleExtent %= TWOPI; 20640 var segments = Math.ceil(_abs2(angleExtent) / (TWOPI / 4)), rawPath = [], angleIncrement = angleExtent / segments, controlLength = 4 / 3 * _sin2(angleIncrement / 2) / (1 + _cos2(angleIncrement / 2)), ma = cosAngle * rx, mb = sinAngle * rx, mc = sinAngle * -ry, md = cosAngle * ry, i; 20641 for (i = 0; i < segments; i++) { 20642 angle = angleStart + i * angleIncrement; 20643 x1 = _cos2(angle); 20644 y1 = _sin2(angle); 20645 ux = _cos2(angle += angleIncrement); 20646 uy = _sin2(angle); 20647 rawPath.push(x1 - controlLength * y1, y1 + controlLength * x1, ux + controlLength * uy, uy - controlLength * ux, ux, uy); 20648 } 20649 for (i = 0; i < rawPath.length; i += 2) { 20650 x1 = rawPath[i]; 20651 y1 = rawPath[i + 1]; 20652 rawPath[i] = x1 * ma + y1 * mc + cx; 20653 rawPath[i + 1] = x1 * mb + y1 * md + cy; 20654 } 20655 rawPath[i - 2] = x; 20656 rawPath[i - 1] = y; 20657 return rawPath; 20658 } 20659 function stringToRawPath(d) { 20660 var a = (d + "").replace(_scientific, function(m) { 20661 var n = +m; 20662 return n < 1e-4 && n > -1e-4 ? 0 : n; 20663 }).match(_svgPathExp) || [], path = [], relativeX = 0, relativeY = 0, twoThirds = 2 / 3, elements = a.length, points = 0, errorMessage = "ERROR: malformed path: " + d, i, j, x, y, command, isRelative, segment, startX, startY, difX, difY, beziers, prevCommand, flag1, flag2, line = function line2(sx, sy, ex, ey) { 20664 difX = (ex - sx) / 3; 20665 difY = (ey - sy) / 3; 20666 segment.push(sx + difX, sy + difY, ex - difX, ey - difY, ex, ey); 20667 }; 20668 if (!d || !isNaN(a[0]) || isNaN(a[1])) { 20669 console.log(errorMessage); 20670 return path; 20671 } 20672 for (i = 0; i < elements; i++) { 20673 prevCommand = command; 20674 if (isNaN(a[i])) { 20675 command = a[i].toUpperCase(); 20676 isRelative = command !== a[i]; 20677 } else { 20678 i--; 20679 } 20680 x = +a[i + 1]; 20681 y = +a[i + 2]; 20682 if (isRelative) { 20683 x += relativeX; 20684 y += relativeY; 20685 } 20686 if (!i) { 20687 startX = x; 20688 startY = y; 20689 } 20690 if (command === "M") { 20691 if (segment) { 20692 if (segment.length < 8) { 20693 path.length -= 1; 20694 } else { 20695 points += segment.length; 20696 } 20697 } 20698 relativeX = startX = x; 20699 relativeY = startY = y; 20700 segment = [x, y]; 20701 path.push(segment); 20702 i += 2; 20703 command = "L"; 20704 } else if (command === "C") { 20705 if (!segment) { 20706 segment = [0, 0]; 20707 } 20708 if (!isRelative) { 20709 relativeX = relativeY = 0; 20710 } 20711 segment.push(x, y, relativeX + a[i + 3] * 1, relativeY + a[i + 4] * 1, relativeX += a[i + 5] * 1, relativeY += a[i + 6] * 1); 20712 i += 6; 20713 } else if (command === "S") { 20714 difX = relativeX; 20715 difY = relativeY; 20716 if (prevCommand === "C" || prevCommand === "S") { 20717 difX += relativeX - segment[segment.length - 4]; 20718 difY += relativeY - segment[segment.length - 3]; 20719 } 20720 if (!isRelative) { 20721 relativeX = relativeY = 0; 20722 } 20723 segment.push(difX, difY, x, y, relativeX += a[i + 3] * 1, relativeY += a[i + 4] * 1); 20724 i += 4; 20725 } else if (command === "Q") { 20726 difX = relativeX + (x - relativeX) * twoThirds; 20727 difY = relativeY + (y - relativeY) * twoThirds; 20728 if (!isRelative) { 20729 relativeX = relativeY = 0; 20730 } 20731 relativeX += a[i + 3] * 1; 20732 relativeY += a[i + 4] * 1; 20733 segment.push(difX, difY, relativeX + (x - relativeX) * twoThirds, relativeY + (y - relativeY) * twoThirds, relativeX, relativeY); 20734 i += 4; 20735 } else if (command === "T") { 20736 difX = relativeX - segment[segment.length - 4]; 20737 difY = relativeY - segment[segment.length - 3]; 20738 segment.push(relativeX + difX, relativeY + difY, x + (relativeX + difX * 1.5 - x) * twoThirds, y + (relativeY + difY * 1.5 - y) * twoThirds, relativeX = x, relativeY = y); 20739 i += 2; 20740 } else if (command === "H") { 20741 line(relativeX, relativeY, relativeX = x, relativeY); 20742 i += 1; 20743 } else if (command === "V") { 20744 line(relativeX, relativeY, relativeX, relativeY = x + (isRelative ? relativeY - relativeX : 0)); 20745 i += 1; 20746 } else if (command === "L" || command === "Z") { 20747 if (command === "Z") { 20748 x = startX; 20749 y = startY; 20750 segment.closed = true; 20751 } 20752 if (command === "L" || _abs2(relativeX - x) > 0.5 || _abs2(relativeY - y) > 0.5) { 20753 line(relativeX, relativeY, x, y); 20754 if (command === "L") { 20755 i += 2; 20756 } 20757 } 20758 relativeX = x; 20759 relativeY = y; 20760 } else if (command === "A") { 20761 flag1 = a[i + 4]; 20762 flag2 = a[i + 5]; 20763 difX = a[i + 6]; 20764 difY = a[i + 7]; 20765 j = 7; 20766 if (flag1.length > 1) { 20767 if (flag1.length < 3) { 20768 difY = difX; 20769 difX = flag2; 20770 j--; 20771 } else { 20772 difY = flag2; 20773 difX = flag1.substr(2); 20774 j -= 2; 20775 } 20776 flag2 = flag1.charAt(1); 20777 flag1 = flag1.charAt(0); 20778 } 20779 beziers = arcToSegment(relativeX, relativeY, +a[i + 1], +a[i + 2], +a[i + 3], +flag1, +flag2, (isRelative ? relativeX : 0) + difX * 1, (isRelative ? relativeY : 0) + difY * 1); 20780 i += j; 20781 if (beziers) { 20782 for (j = 0; j < beziers.length; j++) { 20783 segment.push(beziers[j]); 20784 } 20785 } 20786 relativeX = segment[segment.length - 2]; 20787 relativeY = segment[segment.length - 1]; 20788 } else { 20789 console.log(errorMessage); 20790 } 20791 } 20792 i = segment.length; 20793 if (i < 6) { 20794 path.pop(); 20795 i = 0; 20796 } else if (segment[0] === segment[i - 2] && segment[1] === segment[i - 1]) { 20797 segment.closed = true; 20798 } 20799 path.totalPoints = points + i; 20800 return path; 20801 } 20802 function rawPathToString(rawPath) { 20803 if (_isNumber5(rawPath[0])) { 20804 rawPath = [rawPath]; 20805 } 20806 var result = "", l = rawPath.length, sl, s, i, segment; 20807 for (s = 0; s < l; s++) { 20808 segment = rawPath[s]; 20809 result += "M" + _round7(segment[0]) + "," + _round7(segment[1]) + " C"; 20810 sl = segment.length; 20811 for (i = 2; i < sl; i++) { 20812 result += _round7(segment[i++]) + "," + _round7(segment[i++]) + " " + _round7(segment[i++]) + "," + _round7(segment[i++]) + " " + _round7(segment[i++]) + "," + _round7(segment[i]) + " "; 20813 } 20814 if (segment.closed) { 20815 result += "z"; 20816 } 20817 } 20818 return result; 20819 } 20820 20821
vendor: 27,573 bytes, lines 20821-21528
20821// node_modules/gsap/MorphSVGPlugin.js 20822 var gsap6; 20823 var _toArray6; 20824 var _lastLinkedAnchor; 20825 var _doc7; 20826 var _coreInitted7; 20827 var PluginClass; 20828 var _getGSAP9 = function _getGSAP10() { 20829 return gsap6 || typeof window !== "undefined" && (gsap6 = window.gsap) && gsap6.registerPlugin && gsap6; 20830 }; 20831 var _isFunction7 = function _isFunction8(value) { 20832 return typeof value === "function"; 20833 }; 20834 var _atan22 = Math.atan2; 20835 var _cos3 = Math.cos; 20836 var _sin3 = Math.sin; 20837 var _sqrt4 = Math.sqrt; 20838 var _PI = Math.PI; 20839 var _2PI2 = _PI * 2; 20840 var _angleMin = _PI * 0.3; 20841 var _angleMax = _PI * 0.7; 20842 var _bigNum3 = 1e20; 20843 var _numExp3 = /[-+=\.]*\d+[\.e\-\+]*\d*[e\-\+]*\d*/gi; 20844 var _selectorExp2 = /(^[#\.][a-z]|[a-y][a-z])/i; 20845 var _commands = /[achlmqstvz]/i; 20846 var _log = function _log2(message) { 20847 return console && console.warn(message); 20848 }; 20849 var _bonusValidated3 = 1; 20850 var _getAverageXY = function _getAverageXY2(segment) { 20851 var l = segment.length, x = 0, y = 0, i; 20852 for (i = 0; i < l; i++) { 20853 x += segment[i++]; 20854 y += segment[i]; 20855 } 20856 return [x / (l / 2), y / (l / 2)]; 20857 }; 20858 var _getSize3 = function _getSize4(segment) { 20859 var l = segment.length, xMax = segment[0], xMin = xMax, yMax = segment[1], yMin = yMax, x, y, i; 20860 for (i = 6; i < l; i += 6) { 20861 x = segment[i]; 20862 y = segment[i + 1]; 20863 if (x > xMax) { 20864 xMax = x; 20865 } else if (x < xMin) { 20866 xMin = x; 20867 } 20868 if (y > yMax) { 20869 yMax = y; 20870 } else if (y < yMin) { 20871 yMin = y; 20872 } 20873 } 20874 segment.centerX = (xMax + xMin) / 2; 20875 segment.centerY = (yMax + yMin) / 2; 20876 return segment.size = (xMax - xMin) * (yMax - yMin); 20877 }; 20878 var _getTotalSize = function _getTotalSize2(rawPath, samplesPerBezier) { 20879 if (samplesPerBezier === void 0) { 20880 samplesPerBezier = 3; 20881 } 20882 var j = rawPath.length, xMax = rawPath[0][0], xMin = xMax, yMax = rawPath[0][1], yMin = yMax, inc = 1 / samplesPerBezier, l, x, y, i, segment, k, t, inv, x1, y1, x2, x3, x4, y2, y3, y4; 20883 while (--j > -1) { 20884 segment = rawPath[j]; 20885 l = segment.length; 20886 for (i = 6; i < l; i += 6) { 20887 x1 = segment[i]; 20888 y1 = segment[i + 1]; 20889 x2 = segment[i + 2] - x1; 20890 y2 = segment[i + 3] - y1; 20891 x3 = segment[i + 4] - x1; 20892 y3 = segment[i + 5] - y1; 20893 x4 = segment[i + 6] - x1; 20894 y4 = segment[i + 7] - y1; 20895 k = samplesPerBezier; 20896 while (--k > -1) { 20897 t = inc * k; 20898 inv = 1 - t; 20899 x = (t * t * x4 + 3 * inv * (t * x3 + inv * x2)) * t + x1; 20900 y = (t * t * y4 + 3 * inv * (t * y3 + inv * y2)) * t + y1; 20901 if (x > xMax) { 20902 xMax = x; 20903 } else if (x < xMin) { 20904 xMin = x; 20905 } 20906 if (y > yMax) { 20907 yMax = y; 20908 } else if (y < yMin) { 20909 yMin = y; 20910 } 20911 } 20912 } 20913 } 20914 rawPath.centerX = (xMax + xMin) / 2; 20915 rawPath.centerY = (yMax + yMin) / 2; 20916 rawPath.left = xMin; 20917 rawPath.width = xMax - xMin; 20918 rawPath.top = yMin; 20919 rawPath.height = yMax - yMin; 20920 return rawPath.size = (xMax - xMin) * (yMax - yMin); 20921 }; 20922 var _sortByComplexity = function _sortByComplexity2(a, b) { 20923 return b.length - a.length; 20924 }; 20925 var _sortBySize = function _sortBySize2(a, b) { 20926 var sizeA = a.size || _getSize3(a), sizeB = b.size || _getSize3(b); 20927 return Math.abs(sizeB - sizeA) < (sizeA + sizeB) / 20 ? b.centerX - a.centerX || b.centerY - a.centerY : sizeB - sizeA; 20928 }; 20929 var _offsetSegment = function _offsetSegment2(segment, shapeIndex) { 20930 var a = segment.slice(0), l = segment.length, wrap3 = l - 2, i, index; 20931 shapeIndex = shapeIndex | 0; 20932 for (i = 0; i < l; i++) { 20933 index = (i + shapeIndex) % wrap3; 20934 segment[i++] = a[index]; 20935 segment[i] = a[index + 1]; 20936 } 20937 }; 20938 var _getTotalMovement = function _getTotalMovement2(sb, eb, shapeIndex, offsetX, offsetY) { 20939 var l = sb.length, d = 0, wrap3 = l - 2, index, i, x, y; 20940 shapeIndex *= 6; 20941 for (i = 0; i < l; i += 6) { 20942 index = (i + shapeIndex) % wrap3; 20943 y = sb[index] - (eb[i] - offsetX); 20944 x = sb[index + 1] - (eb[i + 1] - offsetY); 20945 d += _sqrt4(x * x + y * y); 20946 } 20947 return d; 20948 }; 20949 var _getClosestShapeIndex = function _getClosestShapeIndex2(sb, eb, checkReverse) { 20950 var l = sb.length, sCenter = _getAverageXY(sb), eCenter = _getAverageXY(eb), offsetX = eCenter[0] - sCenter[0], offsetY = eCenter[1] - sCenter[1], min2 = _getTotalMovement(sb, eb, 0, offsetX, offsetY), minIndex = 0, copy, d, i; 20951 for (i = 6; i < l; i += 6) { 20952 d = _getTotalMovement(sb, eb, i / 6, offsetX, offsetY); 20953 if (d < min2) { 20954 min2 = d; 20955 minIndex = i; 20956 } 20957 } 20958 if (checkReverse) { 20959 copy = sb.slice(0); 20960 reverseSegment(copy); 20961 for (i = 6; i < l; i += 6) { 20962 d = _getTotalMovement(copy, eb, i / 6, offsetX, offsetY); 20963 if (d < min2) { 20964 min2 = d; 20965 minIndex = -i; 20966 } 20967 } 20968 } 20969 return minIndex / 6; 20970 }; 20971 var _getClosestAnchor = function _getClosestAnchor2(rawPath, x, y) { 20972 var j = rawPath.length, closestDistance = _bigNum3, closestX = 0, closestY = 0, segment, dx, dy, d, i, l; 20973 while (--j > -1) { 20974 segment = rawPath[j]; 20975 l = segment.length; 20976 for (i = 0; i < l; i += 6) { 20977 dx = segment[i] - x; 20978 dy = segment[i + 1] - y; 20979 d = _sqrt4(dx * dx + dy * dy); 20980 if (d < closestDistance) { 20981 closestDistance = d; 20982 closestX = segment[i]; 20983 closestY = segment[i + 1]; 20984 } 20985 } 20986 } 20987 return [closestX, closestY]; 20988 }; 20989 var _getClosestSegment = function _getClosestSegment2(bezier, pool, startIndex, sortRatio, offsetX, offsetY) { 20990 var l = pool.length, index = 0, minSize = Math.min(bezier.size || _getSize3(bezier), pool[startIndex].size || _getSize3(pool[startIndex])) * sortRatio, min2 = _bigNum3, cx = bezier.centerX + offsetX, cy = bezier.centerY + offsetY, size, i, dx, dy, d; 20991 for (i = startIndex; i < l; i++) { 20992 size = pool[i].size || _getSize3(pool[i]); 20993 if (size < minSize) { 20994 break; 20995 } 20996 dx = pool[i].centerX - cx; 20997 dy = pool[i].centerY - cy; 20998 d = _sqrt4(dx * dx + dy * dy); 20999 if (d < min2) { 21000 index = i; 21001 min2 = d; 21002 } 21003 } 21004 d = pool[index]; 21005 pool.splice(index, 1); 21006 return d; 21007 }; 21008 var _subdivideSegmentQty = function _subdivideSegmentQty2(segment, quantity) { 21009 var tally = 0, max2 = 0.999999, l = segment.length, newPointsPerSegment = quantity / ((l - 2) / 6), ax, ay, cp1x, cp1y, cp2x, cp2y, bx, by, x1, y1, x2, y2, i, t; 21010 for (i = 2; i < l; i += 6) { 21011 tally += newPointsPerSegment; 21012 while (tally > max2) { 21013 ax = segment[i - 2]; 21014 ay = segment[i - 1]; 21015 cp1x = segment[i]; 21016 cp1y = segment[i + 1]; 21017 cp2x = segment[i + 2]; 21018 cp2y = segment[i + 3]; 21019 bx = segment[i + 4]; 21020 by = segment[i + 5]; 21021 t = 1 / ((Math.floor(tally) || 1) + 1); 21022 x1 = ax + (cp1x - ax) * t; 21023 x2 = cp1x + (cp2x - cp1x) * t; 21024 x1 += (x2 - x1) * t; 21025 x2 += (cp2x + (bx - cp2x) * t - x2) * t; 21026 y1 = ay + (cp1y - ay) * t; 21027 y2 = cp1y + (cp2y - cp1y) * t; 21028 y1 += (y2 - y1) * t; 21029 y2 += (cp2y + (by - cp2y) * t - y2) * t; 21030 segment.splice(i, 4, ax + (cp1x - ax) * t, ay + (cp1y - ay) * t, x1, y1, x1 + (x2 - x1) * t, y1 + (y2 - y1) * t, x2, y2, cp2x + (bx - cp2x) * t, cp2y + (by - cp2y) * t); 21031 i += 6; 21032 l += 6; 21033 tally--; 21034 } 21035 } 21036 return segment; 21037 }; 21038 var _equalizeSegmentQuantity = function _equalizeSegmentQuantity2(start2, end2, shapeIndex, map, fillSafe) { 21039 var dif = end2.length - start2.length, longer = dif > 0 ? end2 : start2, shorter = dif > 0 ? start2 : end2, added = 0, sortMethod = map === "complexity" ? _sortByComplexity : _sortBySize, sortRatio = map === "position" ? 0 : typeof map === "number" ? map : 0.8, i = shorter.length, shapeIndices = typeof shapeIndex === "object" && shapeIndex.push ? shapeIndex.slice(0) : [shapeIndex], reverse = shapeIndices[0] === "reverse" || shapeIndices[0] < 0, log = shapeIndex === "log", eb, sb, b, x, y, offsetX, offsetY; 21040 if (!shorter[0]) { 21041 return; 21042 } 21043 if (longer.length > 1) { 21044 start2.sort(sortMethod); 21045 end2.sort(sortMethod); 21046 offsetX = longer.size || _getTotalSize(longer); 21047 offsetX = shorter.size || _getTotalSize(shorter); 21048 offsetX = longer.centerX - shorter.centerX; 21049 offsetY = longer.centerY - shorter.centerY; 21050 if (sortMethod === _sortBySize) { 21051 for (i = 0; i < shorter.length; i++) { 21052 longer.splice(i, 0, _getClosestSegment(shorter[i], longer, i, sortRatio, offsetX, offsetY)); 21053 } 21054 } 21055 } 21056 if (dif) { 21057 if (dif < 0) { 21058 dif = -dif; 21059 } 21060 if (longer[0].length > shorter[0].length) { 21061 _subdivideSegmentQty(shorter[0], (longer[0].length - shorter[0].length) / 6 | 0); 21062 } 21063 i = shorter.length; 21064 while (added < dif) { 21065 x = longer[i].size || _getSize3(longer[i]); 21066 b = _getClosestAnchor(shorter, longer[i].centerX, longer[i].centerY); 21067 x = b[0]; 21068 y = b[1]; 21069 shorter[i++] = [x, y, x, y, x, y, x, y]; 21070 shorter.totalPoints += 8; 21071 added++; 21072 } 21073 } 21074 for (i = 0; i < start2.length; i++) { 21075 eb = end2[i]; 21076 sb = start2[i]; 21077 dif = eb.length - sb.length; 21078 if (dif < 0) { 21079 _subdivideSegmentQty(eb, -dif / 6 | 0); 21080 } else if (dif > 0) { 21081 _subdivideSegmentQty(sb, dif / 6 | 0); 21082 } 21083 if (reverse && fillSafe !== false && !sb.reversed) { 21084 reverseSegment(sb); 21085 } 21086 shapeIndex = shapeIndices[i] || shapeIndices[i] === 0 ? shapeIndices[i] : "auto"; 21087 if (shapeIndex) { 21088 if (sb.closed || Math.abs(sb[0] - sb[sb.length - 2]) < 0.5 && Math.abs(sb[1] - sb[sb.length - 1]) < 0.5) { 21089 if (shapeIndex === "auto" || shapeIndex === "log") { 21090 shapeIndices[i] = shapeIndex = _getClosestShapeIndex(sb, eb, !i || fillSafe === false); 21091 if (shapeIndex < 0) { 21092 reverse = true; 21093 reverseSegment(sb); 21094 shapeIndex = -shapeIndex; 21095 } 21096 _offsetSegment(sb, shapeIndex * 6); 21097 } else if (shapeIndex !== "reverse") { 21098 if (i && shapeIndex < 0) { 21099 reverseSegment(sb); 21100 } 21101 _offsetSegment(sb, (shapeIndex < 0 ? -shapeIndex : shapeIndex) * 6); 21102 } 21103 } else if (!reverse && (shapeIndex === "auto" && Math.abs(eb[0] - sb[0]) + Math.abs(eb[1] - sb[1]) + Math.abs(eb[eb.length - 2] - sb[sb.length - 2]) + Math.abs(eb[eb.length - 1] - sb[sb.length - 1]) > Math.abs(eb[0] - sb[sb.length - 2]) + Math.abs(eb[1] - sb[sb.length - 1]) + Math.abs(eb[eb.length - 2] - sb[0]) + Math.abs(eb[eb.length - 1] - sb[1]) || shapeIndex % 2)) { 21104 reverseSegment(sb); 21105 shapeIndices[i] = -1; 21106 reverse = true; 21107 } else if (shapeIndex === "auto") { 21108 shapeIndices[i] = 0; 21109 } else if (shapeIndex === "reverse") { 21110 shapeIndices[i] = -1; 21111 } 21112 if (sb.closed !== eb.closed) { 21113 sb.closed = eb.closed = false; 21114 } 21115 } 21116 } 21117 log && _log("shapeIndex:[" + shapeIndices.join(",") + "]"); 21118 start2.shapeIndex = shapeIndices; 21119 return shapeIndices; 21120 }; 21121 var _pathFilter = function _pathFilter2(a, shapeIndex, map, precompile, fillSafe) { 21122 var start2 = stringToRawPath(a[0]), end2 = stringToRawPath(a[1]); 21123 if (!_equalizeSegmentQuantity(start2, end2, shapeIndex || shapeIndex === 0 ? shapeIndex : "auto", map, fillSafe)) { 21124 return; 21125 } 21126 a[0] = rawPathToString(start2); 21127 a[1] = rawPathToString(end2); 21128 if (precompile === "log" || precompile === true) { 21129 _log('precompile:["' + a[0] + '","' + a[1] + '"]'); 21130 } 21131 }; 21132 var _offsetPoints = function _offsetPoints2(text, offset2) { 21133 if (!offset2) { 21134 return text; 21135 } 21136 var a = text.match(_numExp3) || [], l = a.length, s = "", inc, i, j; 21137 if (offset2 === "reverse") { 21138 i = l - 1; 21139 inc = -2; 21140 } else { 21141 i = ((parseInt(offset2, 10) || 0) * 2 + 1 + l * 100) % l; 21142 inc = 2; 21143 } 21144 for (j = 0; j < l; j += 2) { 21145 s += a[i - 1] + "," + a[i] + " "; 21146 i = (i + inc) % l; 21147 } 21148 return s; 21149 }; 21150 var _equalizePointQuantity = function _equalizePointQuantity2(a, quantity) { 21151 var tally = 0, x = parseFloat(a[0]), y = parseFloat(a[1]), s = x + "," + y + " ", max2 = 0.999999, newPointsPerSegment, i, l, j, factor, nextX, nextY; 21152 l = a.length; 21153 newPointsPerSegment = quantity * 0.5 / (l * 0.5 - 1); 21154 for (i = 0; i < l - 2; i += 2) { 21155 tally += newPointsPerSegment; 21156 nextX = parseFloat(a[i + 2]); 21157 nextY = parseFloat(a[i + 3]); 21158 if (tally > max2) { 21159 factor = 1 / (Math.floor(tally) + 1); 21160 j = 1; 21161 while (tally > max2) { 21162 s += (x + (nextX - x) * factor * j).toFixed(2) + "," + (y + (nextY - y) * factor * j).toFixed(2) + " "; 21163 tally--; 21164 j++; 21165 } 21166 } 21167 s += nextX + "," + nextY + " "; 21168 x = nextX; 21169 y = nextY; 21170 } 21171 return s; 21172 }; 21173 var _pointsFilter = function _pointsFilter2(a) { 21174 var startNums = a[0].match(_numExp3) || [], endNums = a[1].match(_numExp3) || [], dif = endNums.length - startNums.length; 21175 if (dif > 0) { 21176 a[0] = _equalizePointQuantity(startNums, dif); 21177 } else { 21178 a[1] = _equalizePointQuantity(endNums, -dif); 21179 } 21180 }; 21181 var _buildPointsFilter = function _buildPointsFilter2(shapeIndex) { 21182 return !isNaN(shapeIndex) ? function(a) { 21183 _pointsFilter(a); 21184 a[1] = _offsetPoints(a[1], parseInt(shapeIndex, 10)); 21185 } : _pointsFilter; 21186 }; 21187 var _parseShape = function _parseShape2(shape, forcePath, target) { 21188 var isString2 = typeof shape === "string", e, type; 21189 if (!isString2 || _selectorExp2.test(shape) || (shape.match(_numExp3) || []).length < 3) { 21190 e = _toArray6(shape)[0]; 21191 if (e) { 21192 type = (e.nodeName + "").toUpperCase(); 21193 if (forcePath && type !== "PATH") { 21194 e = convertToPath(e, false); 21195 type = "PATH"; 21196 } 21197 shape = e.getAttribute(type === "PATH" ? "d" : "points") || ""; 21198 if (e === target) { 21199 shape = e.getAttributeNS(null, "data-original") || shape; 21200 } 21201 } else { 21202 _log("WARNING: invalid morph to: " + shape); 21203 shape = false; 21204 } 21205 } 21206 return shape; 21207 }; 21208 var _populateSmoothData = function _populateSmoothData2(rawPath, tolerance) { 21209 var j = rawPath.length, limit = 0.2 * (tolerance || 1), smooth, segment, x, y, x2, y2, i, l, a, a2, isSmooth, smoothData; 21210 while (--j > -1) { 21211 segment = rawPath[j]; 21212 isSmooth = segment.isSmooth = segment.isSmooth || [0, 0, 0, 0]; 21213 smoothData = segment.smoothData = segment.smoothData || [0, 0, 0, 0]; 21214 isSmooth.length = 4; 21215 l = segment.length - 2; 21216 for (i = 6; i < l; i += 6) { 21217 x = segment[i] - segment[i - 2]; 21218 y = segment[i + 1] - segment[i - 1]; 21219 x2 = segment[i + 2] - segment[i]; 21220 y2 = segment[i + 3] - segment[i + 1]; 21221 a = _atan22(y, x); 21222 a2 = _atan22(y2, x2); 21223 smooth = Math.abs(a - a2) < limit; 21224 if (smooth) { 21225 smoothData[i - 2] = a; 21226 smoothData[i + 2] = a2; 21227 smoothData[i - 1] = _sqrt4(x * x + y * y); 21228 smoothData[i + 3] = _sqrt4(x2 * x2 + y2 * y2); 21229 } 21230 isSmooth.push(smooth, smooth, 0, 0, smooth, smooth); 21231 } 21232 if (segment[l] === segment[0] && segment[l + 1] === segment[1]) { 21233 x = segment[0] - segment[l - 2]; 21234 y = segment[1] - segment[l - 1]; 21235 x2 = segment[2] - segment[0]; 21236 y2 = segment[3] - segment[1]; 21237 a = _atan22(y, x); 21238 a2 = _atan22(y2, x2); 21239 if (Math.abs(a - a2) < limit) { 21240 smoothData[l - 2] = a; 21241 smoothData[2] = a2; 21242 smoothData[l - 1] = _sqrt4(x * x + y * y); 21243 smoothData[3] = _sqrt4(x2 * x2 + y2 * y2); 21244 isSmooth[l - 2] = isSmooth[l - 1] = true; 21245 } 21246 } 21247 } 21248 return rawPath; 21249 }; 21250 var _parseOriginFactors = function _parseOriginFactors2(v) { 21251 var a = v.trim().split(" "), x = ~v.indexOf("left") ? 0 : ~v.indexOf("right") ? 100 : isNaN(parseFloat(a[0])) ? 50 : parseFloat(a[0]), y = ~v.indexOf("top") ? 0 : ~v.indexOf("bottom") ? 100 : isNaN(parseFloat(a[1])) ? 50 : parseFloat(a[1]); 21252 return { 21253 x: x / 100, 21254 y: y / 100 21255 }; 21256 }; 21257 var _shortAngle = function _shortAngle2(dif) { 21258 return dif !== dif % _PI ? dif + (dif < 0 ? _2PI2 : -_2PI2) : dif; 21259 }; 21260 var _morphMessage = "Use MorphSVGPlugin.convertToPath() to convert to a path before morphing."; 21261 var _tweenRotation = function _tweenRotation2(start2, end2, i, linkedPT) { 21262 var so = this._origin, eo = this._eOrigin, dx = start2[i] - so.x, dy = start2[i + 1] - so.y, d = _sqrt4(dx * dx + dy * dy), sa = _atan22(dy, dx), angleDif, _short; 21263 dx = end2[i] - eo.x; 21264 dy = end2[i + 1] - eo.y; 21265 angleDif = _atan22(dy, dx) - sa; 21266 _short = _shortAngle(angleDif); 21267 if (!linkedPT && _lastLinkedAnchor && Math.abs(_short + _lastLinkedAnchor.ca) < _angleMin) { 21268 linkedPT = _lastLinkedAnchor; 21269 } 21270 return this._anchorPT = _lastLinkedAnchor = { 21271 _next: this._anchorPT, 21272 t: start2, 21273 sa, 21274 ca: linkedPT && _short * linkedPT.ca < 0 && Math.abs(_short) > _angleMax ? angleDif : _short, 21275 sl: d, 21276 cl: _sqrt4(dx * dx + dy * dy) - d, 21277 i 21278 }; 21279 }; 21280 var _initCore11 = function _initCore12(required) { 21281 gsap6 = _getGSAP9(); 21282 PluginClass = PluginClass || gsap6 && gsap6.plugins.morphSVG; 21283 if (gsap6 && PluginClass) { 21284 _toArray6 = gsap6.utils.toArray; 21285 _doc7 = document; 21286 PluginClass.prototype._tweenRotation = _tweenRotation; 21287 _coreInitted7 = 1; 21288 } else if (required) { 21289 _log("Please gsap.registerPlugin(MorphSVGPlugin)"); 21290 } 21291 }; 21292 var MorphSVGPlugin = { 21293 version: "3.10.4", 21294 name: "morphSVG", 21295 rawVars: 1, 21296 register: function register3(core, Plugin) { 21297 gsap6 = core; 21298 PluginClass = Plugin; 21299 _initCore11(); 21300 }, 21301 init: function init6(target, value, tween, index, targets) { 21302 _coreInitted7 || _initCore11(1); 21303 if (!value) { 21304 _log("invalid shape"); 21305 return false; 21306 } 21307 _isFunction7(value) && (value = value.call(tween, index, target, targets)); 21308 var type, p, pt, shape, isPoly, shapeIndex, map, startSmooth, endSmooth, start2, end2, i, j, l, startSeg, endSeg, precompiled, sData, eData, originFactors, useRotation, offset2; 21309 if (typeof value === "string" || value.getBBox || value[0]) { 21310 value = { 21311 shape: value 21312 }; 21313 } else if (typeof value === "object") { 21314 type = {}; 21315 for (p in value) { 21316 type[p] = _isFunction7(value[p]) && p !== "render" ? value[p].call(tween, index, target, targets) : value[p]; 21317 } 21318 value = type; 21319 } 21320 var cs = target.nodeType ? window.getComputedStyle(target) : {}, fill = cs.fill + "", fillSafe = !(fill === "none" || (fill.match(_numExp3) || [])[3] === "0" || cs.fillRule === "evenodd"), origins = (value.origin || "50 50").split(","); 21321 type = (target.nodeName + "").toUpperCase(); 21322 isPoly = type === "POLYLINE" || type === "POLYGON"; 21323 if (type !== "PATH" && !isPoly && !value.prop) { 21324 _log("Cannot morph a <" + type + "> element. " + _morphMessage); 21325 return false; 21326 } 21327 p = type === "PATH" ? "d" : "points"; 21328 if (!value.prop && !_isFunction7(target.setAttribute)) { 21329 return false; 21330 } 21331 shape = _parseShape(value.shape || value.d || value.points || "", p === "d", target); 21332 if (isPoly && _commands.test(shape)) { 21333 _log("A <" + type + "> cannot accept path data. " + _morphMessage); 21334 return false; 21335 } 21336 shapeIndex = value.shapeIndex || value.shapeIndex === 0 ? value.shapeIndex : "auto"; 21337 map = value.map || MorphSVGPlugin.defaultMap; 21338 this._prop = value.prop; 21339 this._render = value.render || MorphSVGPlugin.defaultRender; 21340 this._apply = "updateTarget" in value ? value.updateTarget : MorphSVGPlugin.defaultUpdateTarget; 21341 this._rnd = Math.pow(10, isNaN(value.precision) ? 2 : +value.precision); 21342 this._tween = tween; 21343 if (shape) { 21344 this._target = target; 21345 precompiled = typeof value.precompile === "object"; 21346 start2 = this._prop ? target[this._prop] : target.getAttribute(p); 21347 if (!this._prop && !target.getAttributeNS(null, "data-original")) { 21348 target.setAttributeNS(null, "data-original", start2); 21349 } 21350 if (p === "d" || this._prop) { 21351 start2 = stringToRawPath(precompiled ? value.precompile[0] : start2); 21352 end2 = stringToRawPath(precompiled ? value.precompile[1] : shape); 21353 if (!precompiled && !_equalizeSegmentQuantity(start2, end2, shapeIndex, map, fillSafe)) { 21354 return false; 21355 } 21356 if (value.precompile === "log" || value.precompile === true) { 21357 _log('precompile:["' + rawPathToString(start2) + '","' + rawPathToString(end2) + '"]'); 21358 } 21359 useRotation = (value.type || MorphSVGPlugin.defaultType) !== "linear"; 21360 if (useRotation) { 21361 start2 = _populateSmoothData(start2, value.smoothTolerance); 21362 end2 = _populateSmoothData(end2, value.smoothTolerance); 21363 if (!start2.size) { 21364 _getTotalSize(start2); 21365 } 21366 if (!end2.size) { 21367 _getTotalSize(end2); 21368 } 21369 originFactors = _parseOriginFactors(origins[0]); 21370 this._origin = start2.origin = { 21371 x: start2.left + originFactors.x * start2.width, 21372 y: start2.top + originFactors.y * start2.height 21373 }; 21374 if (origins[1]) { 21375 originFactors = _parseOriginFactors(origins[1]); 21376 } 21377 this._eOrigin = { 21378 x: end2.left + originFactors.x * end2.width, 21379 y: end2.top + originFactors.y * end2.height 21380 }; 21381 } 21382 this._rawPath = target._gsRawPath = start2; 21383 j = start2.length; 21384 while (--j > -1) { 21385 startSeg = start2[j]; 21386 endSeg = end2[j]; 21387 startSmooth = startSeg.isSmooth || []; 21388 endSmooth = endSeg.isSmooth || []; 21389 l = startSeg.length; 21390 _lastLinkedAnchor = 0; 21391 for (i = 0; i < l; i += 2) { 21392 if (endSeg[i] !== startSeg[i] || endSeg[i + 1] !== startSeg[i + 1]) { 21393 if (useRotation) { 21394 if (startSmooth[i] && endSmooth[i]) { 21395 sData = startSeg.smoothData; 21396 eData = endSeg.smoothData; 21397 offset2 = i + (i === l - 4 ? 7 - l : 5); 21398 this._controlPT = { 21399 _next: this._controlPT, 21400 i, 21401 j, 21402 l1s: sData[i + 1], 21403 l1c: eData[i + 1] - sData[i + 1], 21404 l2s: sData[offset2], 21405 l2c: eData[offset2] - sData[offset2] 21406 }; 21407 pt = this._tweenRotation(startSeg, endSeg, i + 2); 21408 this._tweenRotation(startSeg, endSeg, i, pt); 21409 this._tweenRotation(startSeg, endSeg, offset2 - 1, pt); 21410 i += 4; 21411 } else { 21412 this._tweenRotation(startSeg, endSeg, i); 21413 } 21414 } else { 21415 pt = this.add(startSeg, i, startSeg[i], endSeg[i]); 21416 pt = this.add(startSeg, i + 1, startSeg[i + 1], endSeg[i + 1]) || pt; 21417 } 21418 } 21419 } 21420 } 21421 } else { 21422 pt = this.add(target, "setAttribute", target.getAttribute(p) + "", shape + "", index, targets, 0, _buildPointsFilter(shapeIndex), p); 21423 } 21424 if (useRotation) { 21425 this.add(this._origin, "x", this._origin.x, this._eOrigin.x); 21426 pt = this.add(this._origin, "y", this._origin.y, this._eOrigin.y); 21427 } 21428 if (pt) { 21429 this._props.push("morphSVG"); 21430 pt.end = shape; 21431 pt.endProp = p; 21432 } 21433 } 21434 return _bonusValidated3; 21435 }, 21436 render: function render3(ratio, data) { 21437 var rawPath = data._rawPath, controlPT = data._controlPT, anchorPT = data._anchorPT, rnd = data._rnd, target = data._target, pt = data._pt, s, space, easeInOut, segment, l, angle, i, j, x, y, sin, cos, offset2; 21438 while (pt) { 21439 pt.r(ratio, pt.d); 21440 pt = pt._next; 21441 } 21442 if (ratio === 1 && data._apply) { 21443 pt = data._pt; 21444 while (pt) { 21445 if (pt.end) { 21446 if (data._prop) { 21447 target[data._prop] = pt.end; 21448 } else { 21449 target.setAttribute(pt.endProp, pt.end); 21450 } 21451 } 21452 pt = pt._next; 21453 } 21454 } else if (rawPath) { 21455 while (anchorPT) { 21456 angle = anchorPT.sa + ratio * anchorPT.ca; 21457 l = anchorPT.sl + ratio * anchorPT.cl; 21458 anchorPT.t[anchorPT.i] = data._origin.x + _cos3(angle) * l; 21459 anchorPT.t[anchorPT.i + 1] = data._origin.y + _sin3(angle) * l; 21460 anchorPT = anchorPT._next; 21461 } 21462 easeInOut = ratio < 0.5 ? 2 * ratio * ratio : (4 - 2 * ratio) * ratio - 1; 21463 while (controlPT) { 21464 i = controlPT.i; 21465 segment = rawPath[controlPT.j]; 21466 offset2 = i + (i === segment.length - 4 ? 7 - segment.length : 5); 21467 angle = _atan22(segment[offset2] - segment[i + 1], segment[offset2 - 1] - segment[i]); 21468 sin = _sin3(angle); 21469 cos = _cos3(angle); 21470 x = segment[i + 2]; 21471 y = segment[i + 3]; 21472 l = controlPT.l1s + easeInOut * controlPT.l1c; 21473 segment[i] = x - cos * l; 21474 segment[i + 1] = y - sin * l; 21475 l = controlPT.l2s + easeInOut * controlPT.l2c; 21476 segment[offset2 - 1] = x + cos * l; 21477 segment[offset2] = y + sin * l; 21478 controlPT = controlPT._next; 21479 } 21480 target._gsRawPath = rawPath; 21481 if (data._apply) { 21482 s = ""; 21483 space = " "; 21484 for (j = 0; j < rawPath.length; j++) { 21485 segment = rawPath[j]; 21486 l = segment.length; 21487 s += "M" + (segment[0] * rnd | 0) / rnd + space + (segment[1] * rnd | 0) / rnd + " C"; 21488 for (i = 2; i < l; i++) { 21489 s += (segment[i] * rnd | 0) / rnd + space; 21490 } 21491 } 21492 if (data._prop) { 21493 target[data._prop] = s; 21494 } else { 21495 target.setAttribute("d", s); 21496 } 21497 } 21498 } 21499 data._render && rawPath && data._render.call(data._tween, rawPath, target); 21500 }, 21501 kill: function kill2(property) { 21502 this._pt = this._rawPath = 0; 21503 }, 21504 getRawPath, 21505 stringToRawPath, 21506 rawPathToString, 21507 normalizeStrings: function normalizeStrings(shape1, shape2, _ref) { 21508 var shapeIndex = _ref.shapeIndex, map = _ref.map; 21509 var result = [shape1, shape2]; 21510 _pathFilter(result, shapeIndex, map); 21511 return result; 21512 }, 21513 pathFilter: _pathFilter, 21514 pointsFilter: _pointsFilter, 21515 getTotalSize: _getTotalSize, 21516 equalizeSegmentQuantity: _equalizeSegmentQuantity, 21517 convertToPath: function convertToPath2(targets, swap) { 21518 return _toArray6(targets).map(function(target) { 21519 return convertToPath(target, swap !== false); 21520 }); 21521 }, 21522 defaultType: "linear", 21523 defaultUpdateTarget: true, 21524 defaultMap: "size" 21525 }; 21526 _getGSAP9() && gsap6.registerPlugin(MorphSVGPlugin); 21527 21528
21528// resources/js/app.js 21529 var import_Lethargy = __toModule(require_lethargy()); 21530 21531
vendor: 1,129 bytes, lines 21531-21561
21531// ../node_modules/@popperjs/core/lib/enums.js 21532 var top = "top"; 21533 var bottom = "bottom"; 21534 var right = "right"; 21535 var left = "left"; 21536 var auto = "auto"; 21537 var basePlacements = [top, bottom, right, left]; 21538 var start = "start"; 21539 var end = "end"; 21540 var clippingParents = "clippingParents"; 21541 var viewport = "viewport"; 21542 var popper = "popper"; 21543 var reference = "reference"; 21544 var variationPlacements = /* @__PURE__ */ basePlacements.reduce(function(acc, placement) { 21545 return acc.concat([placement + "-" + start, placement + "-" + end]); 21546 }, []); 21547 var placements = /* @__PURE__ */ [].concat(basePlacements, [auto]).reduce(function(acc, placement) { 21548 return acc.concat([placement, placement + "-" + start, placement + "-" + end]); 21549 }, []); 21550 var beforeRead = "beforeRead"; 21551 var read = "read"; 21552 var afterRead = "afterRead"; 21553 var beforeMain = "beforeMain"; 21554 var main = "main"; 21555 var afterMain = "afterMain"; 21556 var beforeWrite = "beforeWrite"; 21557 var write = "write"; 21558 var afterWrite = "afterWrite"; 21559 var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite]; 21560 21561
vendor: 172 bytes, lines 21561-21566
21561// ../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js 21562 function getNodeName(element) { 21563 return element ? (element.nodeName || "").toLowerCase() : null; 21564 } 21565 21566
vendor: 341 bytes, lines 21566-21578
21566// ../node_modules/@popperjs/core/lib/dom-utils/getWindow.js 21567 function getWindow(node) { 21568 if (node == null) { 21569 return window; 21570 } 21571 if (node.toString() !== "[object Window]") { 21572 var ownerDocument = node.ownerDocument; 21573 return ownerDocument ? ownerDocument.defaultView || window : window; 21574 } 21575 return node; 21576 } 21577 21578
vendor: 592 bytes, lines 21578-21595
21578// ../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js 21579 function isElement(node) { 21580 var OwnElement = getWindow(node).Element; 21581 return node instanceof OwnElement || node instanceof Element; 21582 } 21583 function isHTMLElement(node) { 21584 var OwnElement = getWindow(node).HTMLElement; 21585 return node instanceof OwnElement || node instanceof HTMLElement; 21586 } 21587 function isShadowRoot(node) { 21588 if (typeof ShadowRoot === "undefined") { 21589 return false; 21590 } 21591 var OwnElement = getWindow(node).ShadowRoot; 21592 return node instanceof OwnElement || node instanceof ShadowRoot; 21593 } 21594 21595
vendor: 2,124 bytes, lines 21595-21663
21595// ../node_modules/@popperjs/core/lib/modifiers/applyStyles.js 21596 function applyStyles(_ref) { 21597 var state = _ref.state; 21598 Object.keys(state.elements).forEach(function(name) { 21599 var style = state.styles[name] || {}; 21600 var attributes = state.attributes[name] || {}; 21601 var element = state.elements[name]; 21602 if (!isHTMLElement(element) || !getNodeName(element)) { 21603 return; 21604 } 21605 Object.assign(element.style, style); 21606 Object.keys(attributes).forEach(function(name2) { 21607 var value = attributes[name2]; 21608 if (value === false) { 21609 element.removeAttribute(name2); 21610 } else { 21611 element.setAttribute(name2, value === true ? "" : value); 21612 } 21613 }); 21614 }); 21615 } 21616 function effect(_ref2) { 21617 var state = _ref2.state; 21618 var initialStyles = { 21619 popper: { 21620 position: state.options.strategy, 21621 left: "0", 21622 top: "0", 21623 margin: "0" 21624 }, 21625 arrow: { 21626 position: "absolute" 21627 }, 21628 reference: {} 21629 }; 21630 Object.assign(state.elements.popper.style, initialStyles.popper); 21631 state.styles = initialStyles; 21632 if (state.elements.arrow) { 21633 Object.assign(state.elements.arrow.style, initialStyles.arrow); 21634 } 21635 return function() { 21636 Object.keys(state.elements).forEach(function(name) { 21637 var element = state.elements[name]; 21638 var attributes = state.attributes[name] || {}; 21639 var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); 21640 var style = styleProperties.reduce(function(style2, property) { 21641 style2[property] = ""; 21642 return style2; 21643 }, {}); 21644 if (!isHTMLElement(element) || !getNodeName(element)) { 21645 return; 21646 } 21647 Object.assign(element.style, style); 21648 Object.keys(attributes).forEach(function(attribute) { 21649 element.removeAttribute(attribute); 21650 }); 21651 }); 21652 }; 21653 } 21654 var applyStyles_default = { 21655 name: "applyStyles", 21656 enabled: true, 21657 phase: "write", 21658 fn: applyStyles, 21659 effect, 21660 requires: ["computeStyles"] 21661 }; 21662 21663
vendor: 148 bytes, lines 21663-21668
21663// ../node_modules/@popperjs/core/lib/utils/getBasePlacement.js 21664 function getBasePlacement(placement) { 21665 return placement.split("-")[0]; 21666 } 21667 21668
vendor: 125 bytes, lines 21668-21673
21668// ../node_modules/@popperjs/core/lib/utils/math.js 21669 var max = Math.max; 21670 var min = Math.min; 21671 var round = Math.round; 21672 21673
vendor: 330 bytes, lines 21673-21684
21673// ../node_modules/@popperjs/core/lib/utils/userAgent.js 21674 function getUAString() { 21675 var uaData = navigator.userAgentData; 21676 if (uaData != null && uaData.brands) { 21677 return uaData.brands.map(function(item) { 21678 return item.brand + "/" + item.version; 21679 }).join(" "); 21680 } 21681 return navigator.userAgent; 21682 } 21683 21684
vendor: 173 bytes, lines 21684-21689
21684// ../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js 21685 function isLayoutViewport() { 21686 return !/^((?!chrome|android).)*safari/i.test(getUAString()); 21687 } 21688 21689
vendor: 1,267 bytes, lines 21689-21722
21689// ../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js 21690 function getBoundingClientRect(element, includeScale, isFixedStrategy) { 21691 if (includeScale === void 0) { 21692 includeScale = false; 21693 } 21694 if (isFixedStrategy === void 0) { 21695 isFixedStrategy = false; 21696 } 21697 var clientRect = element.getBoundingClientRect(); 21698 var scaleX = 1; 21699 var scaleY = 1; 21700 if (includeScale && isHTMLElement(element)) { 21701 scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1; 21702 scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1; 21703 } 21704 var _ref = isElement(element) ? getWindow(element) : window, visualViewport = _ref.visualViewport; 21705 var addVisualOffsets = !isLayoutViewport() && isFixedStrategy; 21706 var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX; 21707 var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY; 21708 var width = clientRect.width / scaleX; 21709 var height = clientRect.height / scaleY; 21710 return { 21711 width, 21712 height, 21713 top: y, 21714 right: x + width, 21715 bottom: y + height, 21716 left: x, 21717 x, 21718 y 21719 }; 21720 } 21721 21722
vendor: 522 bytes, lines 21722-21741
21722// ../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js 21723 function getLayoutRect(element) { 21724 var clientRect = getBoundingClientRect(element); 21725 var width = element.offsetWidth; 21726 var height = element.offsetHeight; 21727 if (Math.abs(clientRect.width - width) <= 1) { 21728 width = clientRect.width; 21729 } 21730 if (Math.abs(clientRect.height - height) <= 1) { 21731 height = clientRect.height; 21732 } 21733 return { 21734 x: element.offsetLeft, 21735 y: element.offsetTop, 21736 width, 21737 height 21738 }; 21739 } 21740 21741
vendor: 477 bytes, lines 21741-21758
21741// ../node_modules/@popperjs/core/lib/dom-utils/contains.js 21742 function contains(parent, child) { 21743 var rootNode = child.getRootNode && child.getRootNode(); 21744 if (parent.contains(child)) { 21745 return true; 21746 } else if (rootNode && isShadowRoot(rootNode)) { 21747 var next = child; 21748 do { 21749 if (next && parent.isSameNode(next)) { 21750 return true; 21751 } 21752 next = next.parentNode || next.host; 21753 } while (next); 21754 } 21755 return false; 21756 } 21757 21758
vendor: 172 bytes, lines 21758-21763
21758// ../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js 21759 function getComputedStyle2(element) { 21760 return getWindow(element).getComputedStyle(element); 21761 } 21762 21763
vendor: 179 bytes, lines 21763-21768
21763// ../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js 21764 function isTableElement(element) { 21765 return ["table", "td", "th"].indexOf(getNodeName(element)) >= 0; 21766 } 21767 21768
vendor: 231 bytes, lines 21768-21773
21768// ../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js 21769 function getDocumentElement(element) { 21770 return ((isElement(element) ? element.ownerDocument : element.document) || window.document).documentElement; 21771 } 21772 21773
vendor: 314 bytes, lines 21773-21781
21773// ../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js 21774 function getParentNode(element) { 21775 if (getNodeName(element) === "html") { 21776 return element; 21777 } 21778 return element.assignedSlot || element.parentNode || (isShadowRoot(element) ? element.host : null) || getDocumentElement(element); 21779 } 21780 21781
vendor: 1,794 bytes, lines 21781-21823
21781// ../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js 21782 function getTrueOffsetParent(element) { 21783 if (!isHTMLElement(element) || getComputedStyle2(element).position === "fixed") { 21784 return null; 21785 } 21786 return element.offsetParent; 21787 } 21788 function getContainingBlock(element) { 21789 var isFirefox = /firefox/i.test(getUAString()); 21790 var isIE = /Trident/i.test(getUAString()); 21791 if (isIE && isHTMLElement(element)) { 21792 var elementCss = getComputedStyle2(element); 21793 if (elementCss.position === "fixed") { 21794 return null; 21795 } 21796 } 21797 var currentNode = getParentNode(element); 21798 if (isShadowRoot(currentNode)) { 21799 currentNode = currentNode.host; 21800 } 21801 while (isHTMLElement(currentNode) && ["html", "body"].indexOf(getNodeName(currentNode)) < 0) { 21802 var css = getComputedStyle2(currentNode); 21803 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") { 21804 return currentNode; 21805 } else { 21806 currentNode = currentNode.parentNode; 21807 } 21808 } 21809 return null; 21810 } 21811 function getOffsetParent(element) { 21812 var window2 = getWindow(element); 21813 var offsetParent = getTrueOffsetParent(element); 21814 while (offsetParent && isTableElement(offsetParent) && getComputedStyle2(offsetParent).position === "static") { 21815 offsetParent = getTrueOffsetParent(offsetParent); 21816 } 21817 if (offsetParent && (getNodeName(offsetParent) === "html" || getNodeName(offsetParent) === "body" && getComputedStyle2(offsetParent).position === "static")) { 21818 return window2; 21819 } 21820 return offsetParent || getContainingBlock(element) || window2; 21821 } 21822 21823
vendor: 194 bytes, lines 21823-21828
21823// ../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js 21824 function getMainAxisFromPlacement(placement) { 21825 return ["top", "bottom"].indexOf(placement) >= 0 ? "x" : "y"; 21826 } 21827 21828
vendor: 262 bytes, lines 21828-21837
21828// ../node_modules/@popperjs/core/lib/utils/within.js 21829 function within(min2, value, max2) { 21830 return max(min2, min(value, max2)); 21831 } 21832 function withinMaxClamp(min2, value, max2) { 21833 var v = within(min2, value, max2); 21834 return v > max2 ? max2 : v; 21835 } 21836 21837
vendor: 188 bytes, lines 21837-21847
21837// ../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js 21838 function getFreshSideObject() { 21839 return { 21840 top: 0, 21841 right: 0, 21842 bottom: 0, 21843 left: 0 21844 }; 21845 } 21846 21847
vendor: 187 bytes, lines 21847-21852
21847// ../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js 21848 function mergePaddingObject(paddingObject) { 21849 return Object.assign({}, getFreshSideObject(), paddingObject); 21850 } 21851 21852
vendor: 222 bytes, lines 21852-21860
21852// ../node_modules/@popperjs/core/lib/utils/expandToHashMap.js 21853 function expandToHashMap(value, keys) { 21854 return keys.reduce(function(hashMap, key) { 21855 hashMap[key] = value; 21856 return hashMap; 21857 }, {}); 21858 } 21859 21860
vendor: 3,166 bytes, lines 21860-21930
21860// ../node_modules/@popperjs/core/lib/modifiers/arrow.js 21861 var toPaddingObject = function toPaddingObject2(padding, state) { 21862 padding = typeof padding === "function" ? padding(Object.assign({}, state.rects, { 21863 placement: state.placement 21864 })) : padding; 21865 return mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements)); 21866 }; 21867 function arrow(_ref) { 21868 var _state$modifiersData$; 21869 var state = _ref.state, name = _ref.name, options = _ref.options; 21870 var arrowElement = state.elements.arrow; 21871 var popperOffsets2 = state.modifiersData.popperOffsets; 21872 var basePlacement = getBasePlacement(state.placement); 21873 var axis = getMainAxisFromPlacement(basePlacement); 21874 var isVertical = [left, right].indexOf(basePlacement) >= 0; 21875 var len = isVertical ? "height" : "width"; 21876 if (!arrowElement || !popperOffsets2) { 21877 return; 21878 } 21879 var paddingObject = toPaddingObject(options.padding, state); 21880 var arrowRect = getLayoutRect(arrowElement); 21881 var minProp = axis === "y" ? top : left; 21882 var maxProp = axis === "y" ? bottom : right; 21883 var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets2[axis] - state.rects.popper[len]; 21884 var startDiff = popperOffsets2[axis] - state.rects.reference[axis]; 21885 var arrowOffsetParent = getOffsetParent(arrowElement); 21886 var clientSize = arrowOffsetParent ? axis === "y" ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0; 21887 var centerToReference = endDiff / 2 - startDiff / 2; 21888 var min2 = paddingObject[minProp]; 21889 var max2 = clientSize - arrowRect[len] - paddingObject[maxProp]; 21890 var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference; 21891 var offset2 = within(min2, center, max2); 21892 var axisProp = axis; 21893 state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset2, _state$modifiersData$.centerOffset = offset2 - center, _state$modifiersData$); 21894 } 21895 function effect2(_ref2) { 21896 var state = _ref2.state, options = _ref2.options; 21897 var _options$element = options.element, arrowElement = _options$element === void 0 ? "[data-popper-arrow]" : _options$element; 21898 if (arrowElement == null) { 21899 return; 21900 } 21901 if (typeof arrowElement === "string") { 21902 arrowElement = state.elements.popper.querySelector(arrowElement); 21903 if (!arrowElement) { 21904 return; 21905 } 21906 } 21907 if (true) { 21908 if (!isHTMLElement(arrowElement)) { 21909 console.error(['Popper: "arrow" element must be an HTMLElement (not an SVGElement).', "To use an SVG arrow, wrap it in an HTMLElement that will be used as", "the arrow."].join(" ")); 21910 } 21911 } 21912 if (!contains(state.elements.popper, arrowElement)) { 21913 if (true) { 21914 console.error(['Popper: "arrow" modifier\'s `element` must be a child of the popper', "element."].join(" ")); 21915 } 21916 return; 21917 } 21918 state.elements.arrow = arrowElement; 21919 } 21920 var arrow_default = { 21921 name: "arrow", 21922 enabled: true, 21923 phase: "main", 21924 fn: arrow, 21925 effect: effect2, 21926 requires: ["popperOffsets"], 21927 requiresIfExists: ["preventOverflow"] 21928 }; 21929 21930
vendor: 140 bytes, lines 21930-21935
21930// ../node_modules/@popperjs/core/lib/utils/getVariation.js 21931 function getVariation(placement) { 21932 return placement.split("-")[1]; 21933 } 21934 21935
vendor: 5,687 bytes, lines 21935-22059
21935// ../node_modules/@popperjs/core/lib/modifiers/computeStyles.js 21936 var unsetSides = { 21937 top: "auto", 21938 right: "auto", 21939 bottom: "auto", 21940 left: "auto" 21941 }; 21942 function roundOffsetsByDPR(_ref) { 21943 var x = _ref.x, y = _ref.y; 21944 var win = window; 21945 var dpr = win.devicePixelRatio || 1; 21946 return { 21947 x: round(x * dpr) / dpr || 0, 21948 y: round(y * dpr) / dpr || 0 21949 }; 21950 } 21951 function mapToStyles(_ref2) { 21952 var _Object$assign2; 21953 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; 21954 var _offsets$x = offsets.x, x = _offsets$x === void 0 ? 0 : _offsets$x, _offsets$y = offsets.y, y = _offsets$y === void 0 ? 0 : _offsets$y; 21955 var _ref3 = typeof roundOffsets === "function" ? roundOffsets({ 21956 x, 21957 y 21958 }) : { 21959 x, 21960 y 21961 }; 21962 x = _ref3.x; 21963 y = _ref3.y; 21964 var hasX = offsets.hasOwnProperty("x"); 21965 var hasY = offsets.hasOwnProperty("y"); 21966 var sideX = left; 21967 var sideY = top; 21968 var win = window; 21969 if (adaptive) { 21970 var offsetParent = getOffsetParent(popper2); 21971 var heightProp = "clientHeight"; 21972 var widthProp = "clientWidth"; 21973 if (offsetParent === getWindow(popper2)) { 21974 offsetParent = getDocumentElement(popper2); 21975 if (getComputedStyle2(offsetParent).position !== "static" && position === "absolute") { 21976 heightProp = "scrollHeight"; 21977 widthProp = "scrollWidth"; 21978 } 21979 } 21980 offsetParent = offsetParent; 21981 if (placement === top || (placement === left || placement === right) && variation === end) { 21982 sideY = bottom; 21983 var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : offsetParent[heightProp]; 21984 y -= offsetY - popperRect.height; 21985 y *= gpuAcceleration ? 1 : -1; 21986 } 21987 if (placement === left || (placement === top || placement === bottom) && variation === end) { 21988 sideX = right; 21989 var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : offsetParent[widthProp]; 21990 x -= offsetX - popperRect.width; 21991 x *= gpuAcceleration ? 1 : -1; 21992 } 21993 } 21994 var commonStyles = Object.assign({ 21995 position 21996 }, adaptive && unsetSides); 21997 var _ref4 = roundOffsets === true ? roundOffsetsByDPR({ 21998 x, 21999 y 22000 }) : { 22001 x, 22002 y 22003 }; 22004 x = _ref4.x; 22005 y = _ref4.y; 22006 if (gpuAcceleration) { 22007 var _Object$assign; 22008 return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? "0" : "", _Object$assign[sideX] = hasX ? "0" : "", _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign)); 22009 } 22010 return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : "", _Object$assign2[sideX] = hasX ? x + "px" : "", _Object$assign2.transform = "", _Object$assign2)); 22011 } 22012 function computeStyles(_ref5) { 22013 var state = _ref5.state, options = _ref5.options; 22014 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; 22015 if (true) { 22016 var transitionProperty = getComputedStyle2(state.elements.popper).transitionProperty || ""; 22017 if (adaptive && ["transform", "top", "right", "bottom", "left"].some(function(property) { 22018 return transitionProperty.indexOf(property) >= 0; 22019 })) { 22020 console.warn(["Popper: Detected CSS transitions on at least one of the following", 'CSS properties: "transform", "top", "right", "bottom", "left".', "\n\n", 'Disable the "computeStyles" modifier\'s `adaptive` option to allow', "for smooth transitions, or remove these properties from the CSS", "transition declaration on the popper element if only transitioning", "opacity or background-color for example.", "\n\n", "We recommend using the popper element as a wrapper around an inner", "element that can have any CSS property transitioned for animations."].join(" ")); 22021 } 22022 } 22023 var commonStyles = { 22024 placement: getBasePlacement(state.placement), 22025 variation: getVariation(state.placement), 22026 popper: state.elements.popper, 22027 popperRect: state.rects.popper, 22028 gpuAcceleration, 22029 isFixed: state.options.strategy === "fixed" 22030 }; 22031 if (state.modifiersData.popperOffsets != null) { 22032 state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, { 22033 offsets: state.modifiersData.popperOffsets, 22034 position: state.options.strategy, 22035 adaptive, 22036 roundOffsets 22037 }))); 22038 } 22039 if (state.modifiersData.arrow != null) { 22040 state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, { 22041 offsets: state.modifiersData.arrow, 22042 position: "absolute", 22043 adaptive: false, 22044 roundOffsets 22045 }))); 22046 } 22047 state.attributes.popper = Object.assign({}, state.attributes.popper, { 22048 "data-popper-placement": state.placement 22049 }); 22050 } 22051 var computeStyles_default = { 22052 name: "computeStyles", 22053 enabled: true, 22054 phase: "beforeWrite", 22055 fn: computeStyles, 22056 data: {} 22057 }; 22058 22059
vendor: 1,296 bytes, lines 22059-22097
22059// ../node_modules/@popperjs/core/lib/modifiers/eventListeners.js 22060 var passive = { 22061 passive: true 22062 }; 22063 function effect3(_ref) { 22064 var state = _ref.state, instance = _ref.instance, options = _ref.options; 22065 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; 22066 var window2 = getWindow(state.elements.popper); 22067 var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper); 22068 if (scroll) { 22069 scrollParents.forEach(function(scrollParent) { 22070 scrollParent.addEventListener("scroll", instance.update, passive); 22071 }); 22072 } 22073 if (resize) { 22074 window2.addEventListener("resize", instance.update, passive); 22075 } 22076 return function() { 22077 if (scroll) { 22078 scrollParents.forEach(function(scrollParent) { 22079 scrollParent.removeEventListener("scroll", instance.update, passive); 22080 }); 22081 } 22082 if (resize) { 22083 window2.removeEventListener("resize", instance.update, passive); 22084 } 22085 }; 22086 } 22087 var eventListeners_default = { 22088 name: "eventListeners", 22089 enabled: true, 22090 phase: "write", 22091 fn: function fn() { 22092 }, 22093 effect: effect3, 22094 data: {} 22095 }; 22096 22097
vendor: 326 bytes, lines 22097-22110
22097// ../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js 22098 var hash = { 22099 left: "right", 22100 right: "left", 22101 bottom: "top", 22102 top: "bottom" 22103 }; 22104 function getOppositePlacement(placement) { 22105 return placement.replace(/left|right|bottom|top/g, function(matched) { 22106 return hash[matched]; 22107 }); 22108 } 22109 22110
vendor: 294 bytes, lines 22110-22121
22110// ../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js 22111 var hash2 = { 22112 start: "end", 22113 end: "start" 22114 }; 22115 function getOppositeVariationPlacement(placement) { 22116 return placement.replace(/start|end/g, function(matched) { 22117 return hash2[matched]; 22118 }); 22119 } 22120 22121
vendor: 269 bytes, lines 22121-22132
22121// ../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js 22122 function getWindowScroll(node) { 22123 var win = getWindow(node); 22124 var scrollLeft = win.pageXOffset; 22125 var scrollTop = win.pageYOffset; 22126 return { 22127 scrollLeft, 22128 scrollTop 22129 }; 22130 } 22131 22132
vendor: 226 bytes, lines 22132-22137
22132// ../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js 22133 function getWindowScrollBarX(element) { 22134 return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft; 22135 } 22136 22137
vendor: 752 bytes, lines 22137-22163
22137// ../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js 22138 function getViewportRect(element, strategy) { 22139 var win = getWindow(element); 22140 var html = getDocumentElement(element); 22141 var visualViewport = win.visualViewport; 22142 var width = html.clientWidth; 22143 var height = html.clientHeight; 22144 var x = 0; 22145 var y = 0; 22146 if (visualViewport) { 22147 width = visualViewport.width; 22148 height = visualViewport.height; 22149 var layoutViewport = isLayoutViewport(); 22150 if (layoutViewport || !layoutViewport && strategy === "fixed") { 22151 x = visualViewport.offsetLeft; 22152 y = visualViewport.offsetTop; 22153 } 22154 } 22155 return { 22156 width, 22157 height, 22158 x: x + getWindowScrollBarX(element), 22159 y 22160 }; 22161 } 22162 22163
vendor: 882 bytes, lines 22163-22184
22163// ../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js 22164 function getDocumentRect(element) { 22165 var _element$ownerDocumen; 22166 var html = getDocumentElement(element); 22167 var winScroll = getWindowScroll(element); 22168 var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body; 22169 var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0); 22170 var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0); 22171 var x = -winScroll.scrollLeft + getWindowScrollBarX(element); 22172 var y = -winScroll.scrollTop; 22173 if (getComputedStyle2(body || html).direction === "rtl") { 22174 x += max(html.clientWidth, body ? body.clientWidth : 0) - width; 22175 } 22176 return { 22177 width, 22178 height, 22179 x, 22180 y 22181 }; 22182 } 22183 22184
vendor: 371 bytes, lines 22184-22190
22184// ../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js 22185 function isScrollParent(element) { 22186 var _getComputedStyle5 = getComputedStyle2(element), overflow = _getComputedStyle5.overflow, overflowX = _getComputedStyle5.overflowX, overflowY = _getComputedStyle5.overflowY; 22187 return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX); 22188 } 22189 22190
vendor: 355 bytes, lines 22190-22201
22190// ../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js 22191 function getScrollParent(node) { 22192 if (["html", "body", "#document"].indexOf(getNodeName(node)) >= 0) { 22193 return node.ownerDocument.body; 22194 } 22195 if (isHTMLElement(node) && isScrollParent(node)) { 22196 return node; 22197 } 22198 return getScrollParent(getParentNode(node)); 22199 } 22200 22201
vendor: 692 bytes, lines 22201-22215
22201// ../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js 22202 function listScrollParents(element, list) { 22203 var _element$ownerDocumen; 22204 if (list === void 0) { 22205 list = []; 22206 } 22207 var scrollParent = getScrollParent(element); 22208 var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body); 22209 var win = getWindow(scrollParent); 22210 var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent; 22211 var updatedList = list.concat(target); 22212 return isBody ? updatedList : updatedList.concat(listScrollParents(getParentNode(target))); 22213 } 22214 22215
vendor: 260 bytes, lines 22215-22225
22215// ../node_modules/@popperjs/core/lib/utils/rectToClientRect.js 22216 function rectToClientRect(rect) { 22217 return Object.assign({}, rect, { 22218 left: rect.x, 22219 top: rect.y, 22220 right: rect.x + rect.width, 22221 bottom: rect.y + rect.height 22222 }); 22223 } 22224 22225
vendor: 2,469 bytes, lines 22225-22271
22225// ../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js 22226 function getInnerBoundingClientRect(element, strategy) { 22227 var rect = getBoundingClientRect(element, false, strategy === "fixed"); 22228 rect.top = rect.top + element.clientTop; 22229 rect.left = rect.left + element.clientLeft; 22230 rect.bottom = rect.top + element.clientHeight; 22231 rect.right = rect.left + element.clientWidth; 22232 rect.width = element.clientWidth; 22233 rect.height = element.clientHeight; 22234 rect.x = rect.left; 22235 rect.y = rect.top; 22236 return rect; 22237 } 22238 function getClientRectFromMixedType(element, clippingParent, strategy) { 22239 return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element))); 22240 } 22241 function getClippingParents(element) { 22242 var clippingParents2 = listScrollParents(getParentNode(element)); 22243 var canEscapeClipping = ["absolute", "fixed"].indexOf(getComputedStyle2(element).position) >= 0; 22244 var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element; 22245 if (!isElement(clipperElement)) { 22246 return []; 22247 } 22248 return clippingParents2.filter(function(clippingParent) { 22249 return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== "body"; 22250 }); 22251 } 22252 function getClippingRect(element, boundary, rootBoundary, strategy) { 22253 var mainClippingParents = boundary === "clippingParents" ? getClippingParents(element) : [].concat(boundary); 22254 var clippingParents2 = [].concat(mainClippingParents, [rootBoundary]); 22255 var firstClippingParent = clippingParents2[0]; 22256 var clippingRect = clippingParents2.reduce(function(accRect, clippingParent) { 22257 var rect = getClientRectFromMixedType(element, clippingParent, strategy); 22258 accRect.top = max(rect.top, accRect.top); 22259 accRect.right = min(rect.right, accRect.right); 22260 accRect.bottom = min(rect.bottom, accRect.bottom); 22261 accRect.left = max(rect.left, accRect.left); 22262 return accRect; 22263 }, getClientRectFromMixedType(element, firstClippingParent, strategy)); 22264 clippingRect.width = clippingRect.right - clippingRect.left; 22265 clippingRect.height = clippingRect.bottom - clippingRect.top; 22266 clippingRect.x = clippingRect.left; 22267 clippingRect.y = clippingRect.top; 22268 return clippingRect; 22269 } 22270 22271
vendor: 1,649 bytes, lines 22271-22326
22271// ../node_modules/@popperjs/core/lib/utils/computeOffsets.js 22272 function computeOffsets(_ref) { 22273 var reference2 = _ref.reference, element = _ref.element, placement = _ref.placement; 22274 var basePlacement = placement ? getBasePlacement(placement) : null; 22275 var variation = placement ? getVariation(placement) : null; 22276 var commonX = reference2.x + reference2.width / 2 - element.width / 2; 22277 var commonY = reference2.y + reference2.height / 2 - element.height / 2; 22278 var offsets; 22279 switch (basePlacement) { 22280 case top: 22281 offsets = { 22282 x: commonX, 22283 y: reference2.y - element.height 22284 }; 22285 break; 22286 case bottom: 22287 offsets = { 22288 x: commonX, 22289 y: reference2.y + reference2.height 22290 }; 22291 break; 22292 case right: 22293 offsets = { 22294 x: reference2.x + reference2.width, 22295 y: commonY 22296 }; 22297 break; 22298 case left: 22299 offsets = { 22300 x: reference2.x - element.width, 22301 y: commonY 22302 }; 22303 break; 22304 default: 22305 offsets = { 22306 x: reference2.x, 22307 y: reference2.y 22308 }; 22309 } 22310 var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null; 22311 if (mainAxis != null) { 22312 var len = mainAxis === "y" ? "height" : "width"; 22313 switch (variation) { 22314 case start: 22315 offsets[mainAxis] = offsets[mainAxis] - (reference2[len] / 2 - element[len] / 2); 22316 break; 22317 case end: 22318 offsets[mainAxis] = offsets[mainAxis] + (reference2[len] / 2 - element[len] / 2); 22319 break; 22320 default: 22321 } 22322 } 22323 return offsets; 22324 } 22325 22326
vendor: 2,769 bytes, lines 22326-22364
22326// ../node_modules/@popperjs/core/lib/utils/detectOverflow.js 22327 function detectOverflow(state, options) { 22328 if (options === void 0) { 22329 options = {}; 22330 } 22331 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; 22332 var paddingObject = mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements)); 22333 var altContext = elementContext === popper ? reference : popper; 22334 var popperRect = state.rects.popper; 22335 var element = state.elements[altBoundary ? altContext : elementContext]; 22336 var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy); 22337 var referenceClientRect = getBoundingClientRect(state.elements.reference); 22338 var popperOffsets2 = computeOffsets({ 22339 reference: referenceClientRect, 22340 element: popperRect, 22341 strategy: "absolute", 22342 placement 22343 }); 22344 var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets2)); 22345 var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; 22346 var overflowOffsets = { 22347 top: clippingClientRect.top - elementClientRect.top + paddingObject.top, 22348 bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom, 22349 left: clippingClientRect.left - elementClientRect.left + paddingObject.left, 22350 right: elementClientRect.right - clippingClientRect.right + paddingObject.right 22351 }; 22352 var offsetData = state.modifiersData.offset; 22353 if (elementContext === popper && offsetData) { 22354 var offset2 = offsetData[placement]; 22355 Object.keys(overflowOffsets).forEach(function(key) { 22356 var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1; 22357 var axis = [top, bottom].indexOf(key) >= 0 ? "y" : "x"; 22358 overflowOffsets[key] += offset2[axis] * multiply; 22359 }); 22360 } 22361 return overflowOffsets; 22362 } 22363 22364
vendor: 1,700 bytes, lines 22364-22397
22364// ../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js 22365 function computeAutoPlacement(state, options) { 22366 if (options === void 0) { 22367 options = {}; 22368 } 22369 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; 22370 var variation = getVariation(placement); 22371 var placements2 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function(placement2) { 22372 return getVariation(placement2) === variation; 22373 }) : basePlacements; 22374 var allowedPlacements = placements2.filter(function(placement2) { 22375 return allowedAutoPlacements.indexOf(placement2) >= 0; 22376 }); 22377 if (allowedPlacements.length === 0) { 22378 allowedPlacements = placements2; 22379 if (true) { 22380 console.error(["Popper: The `allowedAutoPlacements` option did not allow any", "placements. Ensure the `placement` option matches the variation", "of the allowed placements.", 'For example, "auto" cannot be used to allow "bottom-start".', 'Use "auto-start" instead.'].join(" ")); 22381 } 22382 } 22383 var overflows = allowedPlacements.reduce(function(acc, placement2) { 22384 acc[placement2] = detectOverflow(state, { 22385 placement: placement2, 22386 boundary, 22387 rootBoundary, 22388 padding 22389 })[getBasePlacement(placement2)]; 22390 return acc; 22391 }, {}); 22392 return Object.keys(overflows).sort(function(a, b) { 22393 return overflows[a] - overflows[b]; 22394 }); 22395 } 22396 22397
vendor: 4,347 bytes, lines 22397-22503
22397// ../node_modules/@popperjs/core/lib/modifiers/flip.js 22398 function getExpandedFallbackPlacements(placement) { 22399 if (getBasePlacement(placement) === auto) { 22400 return []; 22401 } 22402 var oppositePlacement = getOppositePlacement(placement); 22403 return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)]; 22404 } 22405 function flip(_ref) { 22406 var state = _ref.state, options = _ref.options, name = _ref.name; 22407 if (state.modifiersData[name]._skip) { 22408 return; 22409 } 22410 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; 22411 var preferredPlacement = state.options.placement; 22412 var basePlacement = getBasePlacement(preferredPlacement); 22413 var isBasePlacement = basePlacement === preferredPlacement; 22414 var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement)); 22415 var placements2 = [preferredPlacement].concat(fallbackPlacements).reduce(function(acc, placement2) { 22416 return acc.concat(getBasePlacement(placement2) === auto ? computeAutoPlacement(state, { 22417 placement: placement2, 22418 boundary, 22419 rootBoundary, 22420 padding, 22421 flipVariations, 22422 allowedAutoPlacements 22423 }) : placement2); 22424 }, []); 22425 var referenceRect = state.rects.reference; 22426 var popperRect = state.rects.popper; 22427 var checksMap = new Map(); 22428 var makeFallbackChecks = true; 22429 var firstFittingPlacement = placements2[0]; 22430 for (var i = 0; i < placements2.length; i++) { 22431 var placement = placements2[i]; 22432 var _basePlacement = getBasePlacement(placement); 22433 var isStartVariation = getVariation(placement) === start; 22434 var isVertical = [top, bottom].indexOf(_basePlacement) >= 0; 22435 var len = isVertical ? "width" : "height"; 22436 var overflow = detectOverflow(state, { 22437 placement, 22438 boundary, 22439 rootBoundary, 22440 altBoundary, 22441 padding 22442 }); 22443 var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top; 22444 if (referenceRect[len] > popperRect[len]) { 22445 mainVariationSide = getOppositePlacement(mainVariationSide); 22446 } 22447 var altVariationSide = getOppositePlacement(mainVariationSide); 22448 var checks = []; 22449 if (checkMainAxis) { 22450 checks.push(overflow[_basePlacement] <= 0); 22451 } 22452 if (checkAltAxis) { 22453 checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0); 22454 } 22455 if (checks.every(function(check) { 22456 return check; 22457 })) { 22458 firstFittingPlacement = placement; 22459 makeFallbackChecks = false; 22460 break; 22461 } 22462 checksMap.set(placement, checks); 22463 } 22464 if (makeFallbackChecks) { 22465 var numberOfChecks = flipVariations ? 3 : 1; 22466 var _loop = function _loop2(_i3) { 22467 var fittingPlacement = placements2.find(function(placement2) { 22468 var checks2 = checksMap.get(placement2); 22469 if (checks2) { 22470 return checks2.slice(0, _i3).every(function(check) { 22471 return check; 22472 }); 22473 } 22474 }); 22475 if (fittingPlacement) { 22476 firstFittingPlacement = fittingPlacement; 22477 return "break"; 22478 } 22479 }; 22480 for (var _i2 = numberOfChecks; _i2 > 0; _i2--) { 22481 var _ret = _loop(_i2); 22482 if (_ret === "break") 22483 break; 22484 } 22485 } 22486 if (state.placement !== firstFittingPlacement) { 22487 state.modifiersData[name]._skip = true; 22488 state.placement = firstFittingPlacement; 22489 state.reset = true; 22490 } 22491 } 22492 var flip_default = { 22493 name: "flip", 22494 enabled: true, 22495 phase: "main", 22496 fn: flip, 22497 requiresIfExists: ["offset"], 22498 data: { 22499 _skip: false 22500 } 22501 }; 22502 22503
vendor: 1,859 bytes, lines 22503-22557
22503// ../node_modules/@popperjs/core/lib/modifiers/hide.js 22504 function getSideOffsets(overflow, rect, preventedOffsets) { 22505 if (preventedOffsets === void 0) { 22506 preventedOffsets = { 22507 x: 0, 22508 y: 0 22509 }; 22510 } 22511 return { 22512 top: overflow.top - rect.height - preventedOffsets.y, 22513 right: overflow.right - rect.width + preventedOffsets.x, 22514 bottom: overflow.bottom - rect.height + preventedOffsets.y, 22515 left: overflow.left - rect.width - preventedOffsets.x 22516 }; 22517 } 22518 function isAnySideFullyClipped(overflow) { 22519 return [top, right, bottom, left].some(function(side) { 22520 return overflow[side] >= 0; 22521 }); 22522 } 22523 function hide(_ref) { 22524 var state = _ref.state, name = _ref.name; 22525 var referenceRect = state.rects.reference; 22526 var popperRect = state.rects.popper; 22527 var preventedOffsets = state.modifiersData.preventOverflow; 22528 var referenceOverflow = detectOverflow(state, { 22529 elementContext: "reference" 22530 }); 22531 var popperAltOverflow = detectOverflow(state, { 22532 altBoundary: true 22533 }); 22534 var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect); 22535 var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets); 22536 var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets); 22537 var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets); 22538 state.modifiersData[name] = { 22539 referenceClippingOffsets, 22540 popperEscapeOffsets, 22541 isReferenceHidden, 22542 hasPopperEscaped 22543 }; 22544 state.attributes.popper = Object.assign({}, state.attributes.popper, { 22545 "data-popper-reference-hidden": isReferenceHidden, 22546 "data-popper-escaped": hasPopperEscaped 22547 }); 22548 } 22549 var hide_default = { 22550 name: "hide", 22551 enabled: true, 22552 phase: "main", 22553 requiresIfExists: ["preventOverflow"], 22554 fn: hide 22555 }; 22556 22557
vendor: 1,465 bytes, lines 22557-22596
22557// ../node_modules/@popperjs/core/lib/modifiers/offset.js 22558 function distanceAndSkiddingToXY(placement, rects, offset2) { 22559 var basePlacement = getBasePlacement(placement); 22560 var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1; 22561 var _ref = typeof offset2 === "function" ? offset2(Object.assign({}, rects, { 22562 placement 22563 })) : offset2, skidding = _ref[0], distance = _ref[1]; 22564 skidding = skidding || 0; 22565 distance = (distance || 0) * invertDistance; 22566 return [left, right].indexOf(basePlacement) >= 0 ? { 22567 x: distance, 22568 y: skidding 22569 } : { 22570 x: skidding, 22571 y: distance 22572 }; 22573 } 22574 function offset(_ref2) { 22575 var state = _ref2.state, options = _ref2.options, name = _ref2.name; 22576 var _options$offset = options.offset, offset2 = _options$offset === void 0 ? [0, 0] : _options$offset; 22577 var data = placements.reduce(function(acc, placement) { 22578 acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset2); 22579 return acc; 22580 }, {}); 22581 var _data$state$placement = data[state.placement], x = _data$state$placement.x, y = _data$state$placement.y; 22582 if (state.modifiersData.popperOffsets != null) { 22583 state.modifiersData.popperOffsets.x += x; 22584 state.modifiersData.popperOffsets.y += y; 22585 } 22586 state.modifiersData[name] = data; 22587 } 22588 var offset_default = { 22589 name: "offset", 22590 enabled: true, 22591 phase: "main", 22592 requires: ["popperOffsets"], 22593 fn: offset 22594 }; 22595 22596
vendor: 482 bytes, lines 22596-22614
22596// ../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js 22597 function popperOffsets(_ref) { 22598 var state = _ref.state, name = _ref.name; 22599 state.modifiersData[name] = computeOffsets({ 22600 reference: state.rects.reference, 22601 element: state.rects.popper, 22602 strategy: "absolute", 22603 placement: state.placement 22604 }); 22605 } 22606 var popperOffsets_default = { 22607 name: "popperOffsets", 22608 enabled: true, 22609 phase: "read", 22610 fn: popperOffsets, 22611 data: {} 22612 }; 22613 22614
vendor: 132 bytes, lines 22614-22619
22614// ../node_modules/@popperjs/core/lib/utils/getAltAxis.js 22615 function getAltAxis(axis) { 22616 return axis === "x" ? "y" : "x"; 22617 } 22618 22619
vendor: 5,554 bytes, lines 22619-22712
22619// ../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js 22620 function preventOverflow(_ref) { 22621 var state = _ref.state, options = _ref.options, name = _ref.name; 22622 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; 22623 var overflow = detectOverflow(state, { 22624 boundary, 22625 rootBoundary, 22626 padding, 22627 altBoundary 22628 }); 22629 var basePlacement = getBasePlacement(state.placement); 22630 var variation = getVariation(state.placement); 22631 var isBasePlacement = !variation; 22632 var mainAxis = getMainAxisFromPlacement(basePlacement); 22633 var altAxis = getAltAxis(mainAxis); 22634 var popperOffsets2 = state.modifiersData.popperOffsets; 22635 var referenceRect = state.rects.reference; 22636 var popperRect = state.rects.popper; 22637 var tetherOffsetValue = typeof tetherOffset === "function" ? tetherOffset(Object.assign({}, state.rects, { 22638 placement: state.placement 22639 })) : tetherOffset; 22640 var normalizedTetherOffsetValue = typeof tetherOffsetValue === "number" ? { 22641 mainAxis: tetherOffsetValue, 22642 altAxis: tetherOffsetValue 22643 } : Object.assign({ 22644 mainAxis: 0, 22645 altAxis: 0 22646 }, tetherOffsetValue); 22647 var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null; 22648 var data = { 22649 x: 0, 22650 y: 0 22651 }; 22652 if (!popperOffsets2) { 22653 return; 22654 } 22655 if (checkMainAxis) { 22656 var _offsetModifierState$; 22657 var mainSide = mainAxis === "y" ? top : left; 22658 var altSide = mainAxis === "y" ? bottom : right; 22659 var len = mainAxis === "y" ? "height" : "width"; 22660 var offset2 = popperOffsets2[mainAxis]; 22661 var min2 = offset2 + overflow[mainSide]; 22662 var max2 = offset2 - overflow[altSide]; 22663 var additive = tether ? -popperRect[len] / 2 : 0; 22664 var minLen = variation === start ? referenceRect[len] : popperRect[len]; 22665 var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; 22666 var arrowElement = state.elements.arrow; 22667 var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : { 22668 width: 0, 22669 height: 0 22670 }; 22671 var arrowPaddingObject = state.modifiersData["arrow#persistent"] ? state.modifiersData["arrow#persistent"].padding : getFreshSideObject(); 22672 var arrowPaddingMin = arrowPaddingObject[mainSide]; 22673 var arrowPaddingMax = arrowPaddingObject[altSide]; 22674 var arrowLen = within(0, referenceRect[len], arrowRect[len]); 22675 var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis; 22676 var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis; 22677 var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow); 22678 var clientOffset = arrowOffsetParent ? mainAxis === "y" ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0; 22679 var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0; 22680 var tetherMin = offset2 + minOffset - offsetModifierValue - clientOffset; 22681 var tetherMax = offset2 + maxOffset - offsetModifierValue; 22682 var preventedOffset = within(tether ? min(min2, tetherMin) : min2, offset2, tether ? max(max2, tetherMax) : max2); 22683 popperOffsets2[mainAxis] = preventedOffset; 22684 data[mainAxis] = preventedOffset - offset2; 22685 } 22686 if (checkAltAxis) { 22687 var _offsetModifierState$2; 22688 var _mainSide = mainAxis === "x" ? top : left; 22689 var _altSide = mainAxis === "x" ? bottom : right; 22690 var _offset = popperOffsets2[altAxis]; 22691 var _len = altAxis === "y" ? "height" : "width"; 22692 var _min = _offset + overflow[_mainSide]; 22693 var _max3 = _offset - overflow[_altSide]; 22694 var isOriginSide = [top, left].indexOf(basePlacement) !== -1; 22695 var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0; 22696 var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis; 22697 var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max3; 22698 var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max3); 22699 popperOffsets2[altAxis] = _preventedOffset; 22700 data[altAxis] = _preventedOffset - _offset; 22701 } 22702 state.modifiersData[name] = data; 22703 } 22704 var preventOverflow_default = { 22705 name: "preventOverflow", 22706 enabled: true, 22707 phase: "main", 22708 fn: preventOverflow, 22709 requiresIfExists: ["offset"] 22710 }; 22711 22712
vendor: 215 bytes, lines 22712-22720
22712// ../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js 22713 function getHTMLElementScroll(element) { 22714 return { 22715 scrollLeft: element.scrollLeft, 22716 scrollTop: element.scrollTop 22717 }; 22718 } 22719 22720
vendor: 261 bytes, lines 22720-22729
22720// ../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js 22721 function getNodeScroll(node) { 22722 if (node === getWindow(node) || !isHTMLElement(node)) { 22723 return getWindowScroll(node); 22724 } else { 22725 return getHTMLElementScroll(node); 22726 } 22727 } 22728 22729
vendor: 1,585 bytes, lines 22729-22772
22729// ../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js 22730 function isElementScaled(element) { 22731 var rect = element.getBoundingClientRect(); 22732 var scaleX = round(rect.width) / element.offsetWidth || 1; 22733 var scaleY = round(rect.height) / element.offsetHeight || 1; 22734 return scaleX !== 1 || scaleY !== 1; 22735 } 22736 function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) { 22737 if (isFixed === void 0) { 22738 isFixed = false; 22739 } 22740 var isOffsetParentAnElement = isHTMLElement(offsetParent); 22741 var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent); 22742 var documentElement = getDocumentElement(offsetParent); 22743 var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed); 22744 var scroll = { 22745 scrollLeft: 0, 22746 scrollTop: 0 22747 }; 22748 var offsets = { 22749 x: 0, 22750 y: 0 22751 }; 22752 if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { 22753 if (getNodeName(offsetParent) !== "body" || isScrollParent(documentElement)) { 22754 scroll = getNodeScroll(offsetParent); 22755 } 22756 if (isHTMLElement(offsetParent)) { 22757 offsets = getBoundingClientRect(offsetParent, true); 22758 offsets.x += offsetParent.clientLeft; 22759 offsets.y += offsetParent.clientTop; 22760 } else if (documentElement) { 22761 offsets.x = getWindowScrollBarX(documentElement); 22762 } 22763 } 22764 return { 22765 x: rect.left + scroll.scrollLeft - offsets.x, 22766 y: rect.top + scroll.scrollTop - offsets.y, 22767 width: rect.width, 22768 height: rect.height 22769 }; 22770 } 22771 22772
vendor: 1,080 bytes, lines 22772-22809
22772// ../node_modules/@popperjs/core/lib/utils/orderModifiers.js 22773 function order(modifiers) { 22774 var map = new Map(); 22775 var visited = new Set(); 22776 var result = []; 22777 modifiers.forEach(function(modifier) { 22778 map.set(modifier.name, modifier); 22779 }); 22780 function sort(modifier) { 22781 visited.add(modifier.name); 22782 var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []); 22783 requires.forEach(function(dep) { 22784 if (!visited.has(dep)) { 22785 var depModifier = map.get(dep); 22786 if (depModifier) { 22787 sort(depModifier); 22788 } 22789 } 22790 }); 22791 result.push(modifier); 22792 } 22793 modifiers.forEach(function(modifier) { 22794 if (!visited.has(modifier.name)) { 22795 sort(modifier); 22796 } 22797 }); 22798 return result; 22799 } 22800 function orderModifiers(modifiers) { 22801 var orderedModifiers = order(modifiers); 22802 return modifierPhases.reduce(function(acc, phase) { 22803 return acc.concat(orderedModifiers.filter(function(modifier) { 22804 return modifier.phase === phase; 22805 })); 22806 }, []); 22807 } 22808 22809
vendor: 370 bytes, lines 22809-22825
22809// ../node_modules/@popperjs/core/lib/utils/debounce.js 22810 function debounce(fn2) { 22811 var pending; 22812 return function() { 22813 if (!pending) { 22814 pending = new Promise(function(resolve) { 22815 Promise.resolve().then(function() { 22816 pending = void 0; 22817 resolve(fn2()); 22818 }); 22819 }); 22820 } 22821 return pending; 22822 }; 22823 } 22824 22825
vendor: 343 bytes, lines 22825-22835
22825// ../node_modules/@popperjs/core/lib/utils/format.js 22826 function format(str) { 22827 for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { 22828 args[_key - 1] = arguments[_key]; 22829 } 22830 return [].concat(args).reduce(function(p, c) { 22831 return p.replace(/%s/, c); 22832 }, str); 22833 } 22834 22835
vendor: 3,259 bytes, lines 22835-22899
22835// ../node_modules/@popperjs/core/lib/utils/validateModifiers.js 22836 var INVALID_MODIFIER_ERROR = 'Popper: modifier "%s" provided an invalid %s property, expected %s but got %s'; 22837 var MISSING_DEPENDENCY_ERROR = 'Popper: modifier "%s" requires "%s", but "%s" modifier is not available'; 22838 var VALID_PROPERTIES = ["name", "enabled", "phase", "fn", "effect", "requires", "options"]; 22839 function validateModifiers(modifiers) { 22840 modifiers.forEach(function(modifier) { 22841 [].concat(Object.keys(modifier), VALID_PROPERTIES).filter(function(value, index, self2) { 22842 return self2.indexOf(value) === index; 22843 }).forEach(function(key) { 22844 switch (key) { 22845 case "name": 22846 if (typeof modifier.name !== "string") { 22847 console.error(format(INVALID_MODIFIER_ERROR, String(modifier.name), '"name"', '"string"', '"' + String(modifier.name) + '"')); 22848 } 22849 break; 22850 case "enabled": 22851 if (typeof modifier.enabled !== "boolean") { 22852 console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"enabled"', '"boolean"', '"' + String(modifier.enabled) + '"')); 22853 } 22854 break; 22855 case "phase": 22856 if (modifierPhases.indexOf(modifier.phase) < 0) { 22857 console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"phase"', "either " + modifierPhases.join(", "), '"' + String(modifier.phase) + '"')); 22858 } 22859 break; 22860 case "fn": 22861 if (typeof modifier.fn !== "function") { 22862 console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"fn"', '"function"', '"' + String(modifier.fn) + '"')); 22863 } 22864 break; 22865 case "effect": 22866 if (modifier.effect != null && typeof modifier.effect !== "function") { 22867 console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"effect"', '"function"', '"' + String(modifier.fn) + '"')); 22868 } 22869 break; 22870 case "requires": 22871 if (modifier.requires != null && !Array.isArray(modifier.requires)) { 22872 console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"requires"', '"array"', '"' + String(modifier.requires) + '"')); 22873 } 22874 break; 22875 case "requiresIfExists": 22876 if (!Array.isArray(modifier.requiresIfExists)) { 22877 console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"requiresIfExists"', '"array"', '"' + String(modifier.requiresIfExists) + '"')); 22878 } 22879 break; 22880 case "options": 22881 case "data": 22882 break; 22883 default: 22884 console.error('PopperJS: an invalid property has been provided to the "' + modifier.name + '" modifier, valid properties are ' + VALID_PROPERTIES.map(function(s) { 22885 return '"' + s + '"'; 22886 }).join(", ") + '; but "' + key + '" was provided.'); 22887 } 22888 modifier.requires && modifier.requires.forEach(function(requirement) { 22889 if (modifiers.find(function(mod) { 22890 return mod.name === requirement; 22891 }) == null) { 22892 console.error(format(MISSING_DEPENDENCY_ERROR, String(modifier.name), requirement, requirement)); 22893 } 22894 }); 22895 }); 22896 }); 22897 } 22898 22899
vendor: 317 bytes, lines 22899-22911
22899// ../node_modules/@popperjs/core/lib/utils/uniqueBy.js 22900 function uniqueBy(arr, fn2) { 22901 var identifiers = new Set(); 22902 return arr.filter(function(item) { 22903 var identifier = fn2(item); 22904 if (!identifiers.has(identifier)) { 22905 identifiers.add(identifier); 22906 return true; 22907 } 22908 }); 22909 } 22910 22911
vendor: 560 bytes, lines 22911-22926
22911// ../node_modules/@popperjs/core/lib/utils/mergeByName.js 22912 function mergeByName(modifiers) { 22913 var merged = modifiers.reduce(function(merged2, current) { 22914 var existing = merged2[current.name]; 22915 merged2[current.name] = existing ? Object.assign({}, existing, current, { 22916 options: Object.assign({}, existing.options, current.options), 22917 data: Object.assign({}, existing.data, current.data) 22918 }) : current; 22919 return merged2; 22920 }, {}); 22921 return Object.keys(merged).map(function(key) { 22922 return merged[key]; 22923 }); 22924 } 22925 22926
vendor: 7,317 bytes, lines 22926-23097
22926// ../node_modules/@popperjs/core/lib/createPopper.js 22927 var INVALID_ELEMENT_ERROR = "Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element."; 22928 var INFINITE_LOOP_ERROR = "Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash."; 22929 var DEFAULT_OPTIONS = { 22930 placement: "bottom", 22931 modifiers: [], 22932 strategy: "absolute" 22933 }; 22934 function areValidElements() { 22935 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { 22936 args[_key] = arguments[_key]; 22937 } 22938 return !args.some(function(element) { 22939 return !(element && typeof element.getBoundingClientRect === "function"); 22940 }); 22941 } 22942 function popperGenerator(generatorOptions) { 22943 if (generatorOptions === void 0) { 22944 generatorOptions = {}; 22945 } 22946 var _generatorOptions = generatorOptions, _generatorOptions$def = _generatorOptions.defaultModifiers, defaultModifiers2 = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, _generatorOptions$def2 = _generatorOptions.defaultOptions, defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2; 22947 return function createPopper2(reference2, popper2, options) { 22948 if (options === void 0) { 22949 options = defaultOptions; 22950 } 22951 var state = { 22952 placement: "bottom", 22953 orderedModifiers: [], 22954 options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions), 22955 modifiersData: {}, 22956 elements: { 22957 reference: reference2, 22958 popper: popper2 22959 }, 22960 attributes: {}, 22961 styles: {} 22962 }; 22963 var effectCleanupFns = []; 22964 var isDestroyed = false; 22965 var instance = { 22966 state, 22967 setOptions: function setOptions(setOptionsAction) { 22968 var options2 = typeof setOptionsAction === "function" ? setOptionsAction(state.options) : setOptionsAction; 22969 cleanupModifierEffects(); 22970 state.options = Object.assign({}, defaultOptions, state.options, options2); 22971 state.scrollParents = { 22972 reference: isElement(reference2) ? listScrollParents(reference2) : reference2.contextElement ? listScrollParents(reference2.contextElement) : [], 22973 popper: listScrollParents(popper2) 22974 }; 22975 var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers2, state.options.modifiers))); 22976 state.orderedModifiers = orderedModifiers.filter(function(m) { 22977 return m.enabled; 22978 }); 22979 if (true) { 22980 var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function(_ref) { 22981 var name = _ref.name; 22982 return name; 22983 }); 22984 validateModifiers(modifiers); 22985 if (getBasePlacement(state.options.placement) === auto) { 22986 var flipModifier = state.orderedModifiers.find(function(_ref2) { 22987 var name = _ref2.name; 22988 return name === "flip"; 22989 }); 22990 if (!flipModifier) { 22991 console.error(['Popper: "auto" placements require the "flip" modifier be', "present and enabled to work."].join(" ")); 22992 } 22993 } 22994 var _getComputedStyle5 = getComputedStyle2(popper2), marginTop = _getComputedStyle5.marginTop, marginRight = _getComputedStyle5.marginRight, marginBottom = _getComputedStyle5.marginBottom, marginLeft = _getComputedStyle5.marginLeft; 22995 if ([marginTop, marginRight, marginBottom, marginLeft].some(function(margin) { 22996 return parseFloat(margin); 22997 })) { 22998 console.warn(['Popper: CSS "margin" styles cannot be used to apply padding', "between the popper and its reference element or boundary.", "To replicate margin, use the `offset` modifier, as well as", "the `padding` option in the `preventOverflow` and `flip`", "modifiers."].join(" ")); 22999 } 23000 } 23001 runModifierEffects(); 23002 return instance.update(); 23003 }, 23004 forceUpdate: function forceUpdate() { 23005 if (isDestroyed) { 23006 return; 23007 } 23008 var _state$elements = state.elements, reference3 = _state$elements.reference, popper3 = _state$elements.popper; 23009 if (!areValidElements(reference3, popper3)) { 23010 if (true) { 23011 console.error(INVALID_ELEMENT_ERROR); 23012 } 23013 return; 23014 } 23015 state.rects = { 23016 reference: getCompositeRect(reference3, getOffsetParent(popper3), state.options.strategy === "fixed"), 23017 popper: getLayoutRect(popper3) 23018 }; 23019 state.reset = false; 23020 state.placement = state.options.placement; 23021 state.orderedModifiers.forEach(function(modifier) { 23022 return state.modifiersData[modifier.name] = Object.assign({}, modifier.data); 23023 }); 23024 var __debug_loops__ = 0; 23025 for (var index = 0; index < state.orderedModifiers.length; index++) { 23026 if (true) { 23027 __debug_loops__ += 1; 23028 if (__debug_loops__ > 100) { 23029 console.error(INFINITE_LOOP_ERROR); 23030 break; 23031 } 23032 } 23033 if (state.reset === true) { 23034 state.reset = false; 23035 index = -1; 23036 continue; 23037 } 23038 var _state$orderedModifie = state.orderedModifiers[index], fn2 = _state$orderedModifie.fn, _state$orderedModifie2 = _state$orderedModifie.options, _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, name = _state$orderedModifie.name; 23039 if (typeof fn2 === "function") { 23040 state = fn2({ 23041 state, 23042 options: _options, 23043 name, 23044 instance 23045 }) || state; 23046 } 23047 } 23048 }, 23049 update: debounce(function() { 23050 return new Promise(function(resolve) { 23051 instance.forceUpdate(); 23052 resolve(state); 23053 }); 23054 }), 23055 destroy: function destroy() { 23056 cleanupModifierEffects(); 23057 isDestroyed = true; 23058 } 23059 }; 23060 if (!areValidElements(reference2, popper2)) { 23061 if (true) { 23062 console.error(INVALID_ELEMENT_ERROR); 23063 } 23064 return instance; 23065 } 23066 instance.setOptions(options).then(function(state2) { 23067 if (!isDestroyed && options.onFirstUpdate) { 23068 options.onFirstUpdate(state2); 23069 } 23070 }); 23071 function runModifierEffects() { 23072 state.orderedModifiers.forEach(function(_ref3) { 23073 var name = _ref3.name, _ref3$options = _ref3.options, options2 = _ref3$options === void 0 ? {} : _ref3$options, effect4 = _ref3.effect; 23074 if (typeof effect4 === "function") { 23075 var cleanupFn = effect4({ 23076 state, 23077 name, 23078 instance, 23079 options: options2 23080 }); 23081 var noopFn = function noopFn2() { 23082 }; 23083 effectCleanupFns.push(cleanupFn || noopFn); 23084 } 23085 }); 23086 } 23087 function cleanupModifierEffects() { 23088 effectCleanupFns.forEach(function(fn2) { 23089 return fn2(); 23090 }); 23091 effectCleanupFns = []; 23092 } 23093 return instance; 23094 }; 23095 } 23096 23097
vendor: 335 bytes, lines 23097-23103
23097// ../node_modules/@popperjs/core/lib/popper.js 23098 var defaultModifiers = [eventListeners_default, popperOffsets_default, computeStyles_default, applyStyles_default, offset_default, flip_default, preventOverflow_default, arrow_default, hide_default]; 23099 var createPopper = /* @__PURE__ */ popperGenerator({ 23100 defaultModifiers 23101 }); 23102 23103
23103// resources/js/app.js 23104 var import_headroom = __toModule(require_headroom()); 23105 var import_lodash = __toModule(require_lodash()); 23106 jQuery = import_jquery3.default; 23107 $ = import_jquery3.default; 23108 gsapWithCSS.registerPlugin(ScrollTrigger2, ScrollToPlugin, DrawSVGPlugin, SplitText, MorphSVGPlugin); 23109 gsapWithCSS.config({ nullTargetWarn: false }); 23110 var _ = require_lodash(); 23111 if (document.querySelector(".lang-switch")) { 23112 let show = function() { 23113 tooltip.setAttribute("data-show", ""); 23114 popperInstance.update(); 23115 }, hide2 = function() { 23116 tooltip.removeAttribute("data-show"); 23117 }, show2 = function() { 23118 tooltip2.setAttribute("data-show", ""); 23119 popperInstance2.update(); 23120 }, hide22 = function() { 23121 tooltip2.removeAttribute("data-show"); 23122 }; 23123 const langSwitch = document.querySelector("header .lang-switch"); 23124 const tooltip = document.querySelector("header .tooltip"); 23125 const popperInstance = createPopper(langSwitch, tooltip, { 23126 placement: "bottom" 23127 }); 23128 const showEvents = ["mouseenter", "focu
23128s"]; 23129 const hideEvents = ["mouseleave", "blur"]; 23130 showEvents.forEach((event) => { 23131 langSwitch.addEventListener(event, show); 23132 }); 23133 hideEvents.forEach((event) => { 23134 langSwitch.addEventListener(event, hide2); 23135 }); 23136 const langSwitch2 = document.querySelector("footer .lang-switch"); 23137 const tooltip2 = document.querySelector("footer .tooltip"); 23138 const popperInstance2 = createPopper(langSwitch2, tooltip2, { 23139 placement: "top" 23140 }); 23141 const showEvents2 = ["mouseenter", "focus"]; 23142 const hideEvents2 = ["mouseleave", "blur"]; 23143 showEvents2.forEach((event) => { 23144 langSwitch2.addEventListener(event, show2); 23145 }); 23146 hideEvents2.forEach((event) => { 23147 langSwitch2.addEventListener(event, hide22); 23148 }); 23149 } 23150 $("header").removeClass("relative").addClass("fixed"); 23151 if ($(".standard-hero").length) { 23152 $("#content").css("padding-top", $("header").height() + $("#header-lower").height() - 2); 23153 $(window).on("resize", function() { 23154 $("#content").css("padding-top", $("header").height() + $("#header-lower").height() - 2); 23155 }); 23156 } 23157 home_loader(); 23158 $(".sub-menu").hide(); 23159 var split = new SplitText(".split", { type: "words" }); 23160 var myElement = document.querySelector("header"); 23161 var headroom = new import_headroom.default(myElement, { 23162 offset: $("header").height() / 2 23163 }); 23164 headroom.init(); 23165 usp_slider(); 23166 if ($(".hero-alt").length) { 23167 let hero_padding = function() { 23168 if ($(window).outerWidth() < 960) { 23169 $(".hero-content").css("padding-top", $("header").height()); 23170 $(".hero-alt").css("padding-top", ""); 23171 $("#primary-menu-toggle").parent().removeClass("dark:text-white"); 23172 if ($(".single-product").length) { 23173 $("header").removeClass("dark"); 23174 $(".site-content").css("padding-top", $("header").height()); 23175 } 23176 } else { 23177 console.log($(".container").width()); 23178 console.log(($(window).width() - $(".container").width()) / 2 + $(".container").width()); 23179 $(".hero-alt").css("padding-top", $("header").height() + $("#header-lower").height()); 23180 if ($(".single-product").length) { 23181 $("header").addClass("dark"); 23182 $(".site-content").css("padding-top", ""); 23183 } 23184 } 23185 }; 23186 $("header").addClass("dark over-hero").removeClass("bg-white"); 23187 $("#content").removeClass("pt-14"); 23188 hero_padding(); 23189 window.addEventListener("resize", _.debounce(hero_padding, 150)); 23190 gsapWithCSS.timeline().to(".hero-alt", { 23191 opacity: 1 23192 }).to(".hero-alt .hero-alt-color", { 23193 width: "100%", 23194 duration: 1.25 23195 }, 0).to(".hero-alt .hero-alt-white", { 23196 width: "0%", 23197 duration: 1 23198 }, 0).to(".hero-alt .hero-alt-media", { 23199 width: ($(window).width() - $(".container").width()) / 2 + $(".container").width(), 23200 height: "100%", 23201 duration: 2.5 23202 }, 0).to(".hero-alt .hero-content-text", { 23203 opacity: 1, 23204 y: 0 23205 }, 1.25).to(".hero-alt .hero-content-button", { 23206 opacity: 1 23207 }, 1.5); 23208 } else if ($(".hero-home").length) { 23209 let hero_padding = function() { 23210 if ($(window).outerWidth() < 960) { 23211 $(".hero-content").css("padding-top", $("header").height()); 23212 $(".hero-home > div").css("padding-top", ""); 23213 } else { 23214 $(".hero-content").css("padding-top", ""); 23215 $(".hero-home > div").css("padding-top", $("header").height()); 23216 } 23217 }; 23218 $("header").addClass("dark over-hero").removeClass("bg-white"); 23219 $("#content").removeClass("pt-14"); 23220 hero_padding(); 23221 window.addEventListener("resize", _.debounce(hero_padding, 150)); 23222 if (!$("body").hasClass("home")) { 23223 gsapWithCSS.timeline().to($(".hero-home"), { 23224 opacity: 1 23225 }).to($(".hero-home .hero-content > *"), { 23226 opacity: 1, 23227 stagger: 0.1 23228 }, 1).to($(".hero-home .usp-line"), { 23229 height: "100%", 23230 stagger: 0.1 23231 }, 1.25).to($(".hero-home .usp-content"), { 23232 y: 0, 23233 opacity: 1, 23234 stagger: 0.1, 23235 ease: "power4.out", 23236 onComplete: () => console.log("234") 23237 }, 1); 23238 } 23239 } else { 23240 if (!$(".page-template-page-mission").length) { 23241 $("#content").css("padding-top", $("header").height() + $("#header-lower").height() - 2); 23242 gsapWithCSS.to(".standard-hero", { 23243 opacity: 1 23244 }); 23245 window.addEventListener("resize", function() { 23246 $("#content").css("padding-top", $("header").height() + $("#header-lower").height() - 2); 23247 }); 23248 } else { 23249 $("header").addClass("dark over-hero").removeClass("bg-white"); 23250 } 23251 } 23252 if ($(".hero-alt, .hero-home").length) { 23253 ScrollTrigger2.matchMedia({ 23254 "(min-width: 1024px)": function() { 23255 gsapWithCSS.to("header", { 23256 scrollTrigger: { 23257 trigger: ".hero-alt, .hero-home", 23258 start: "bottom top", 23259 onLeave: () => { 23260 $("header").removeClass("dark").addClass("bg-white dark:bg-black"); 23261 }, 23262 onLeaveBack: () => { 23263 if ($(".single-product").length && $(window).width() < 960) { 23264 $("header").removeClass("bg-white dark:bg-black"); 23265 } else { 23266 $("header").addClass("dark").removeClass("bg-white dark:bg-black"); 23267 } 23268 } 23269 } 23270 }); 23271 }, 23272 "(max-width: 1023px)": function() { 23273 $("#header-upper").addClass("!bg-transparent"); 23274 gsapWithCSS.to(".hero-alt, .hero-home", { 23275 scrollTrigger: { 23276 trigger: ".hero-alt, .hero-home", 23277 start: "top top", 23278 onEnter: () => { 23279 $("header").removeClass("dark").addClass("bg-white dark:bg-black"); 23280 $("#header-upper").removeClass("!bg-transparent"); 23281 }, 23282 onLeaveBack: () => { 23283 $("header").addClass("dark").removeClass("bg-white dark:bg-black"); 23284 $("#header-upper").addClass("!bg-transparent"); 23285 } 23286 } 23287 }); 23288 } 23289 }); 23290 } 23291 nav_menu(); 23292 $(window).on("resize", _.debounce(nav_menu, 150)); 23293 function nav_menu() { 23294 if ($(window).width() > 1024) { 23295 $(".menu-item-has-children a").off(); 23296 $(".menu-item-has-children").on("mouseover", function() { 23297 $(this).children(".sub-menu").stop().slideDown(300); 23298 }); 23299 $(".menu-item-has-children").on("mouseleave", function() { 23300 $(this).children(".sub-menu").stop().slideUp(300); 23301 }); 23302 } else { 23303 $(".menu-item-has-children").off(); 23304 $(".menu-item-has-children > a").off().on("click", function(e) { 23305 e.preventDefault(); 23306 $(this).closest(".menu-item-has-children").siblings().find("a").removeClass("active"); 23307 $(this).closest(".menu-item-has-children").siblings().find("a").removeClass("active"); 23308 $(this).closest(".menu-item-has-children").siblings().children(".sub-menu").stop().slideUp(300); 23309 $(this).toggleClass("active"); 23310 $(this).parent().children(".sub-menu").stop().slideToggle(300); 23311 }); 23312 } 23313 } 23314 var open_menu = gsapWithCSS.timeline({ paused: true }).fromTo("#mobile-menu", { autoAlpha: 0 }, { autoAlpha: 1, duration: 0.2 }).fromTo("#menu-menu-2 > li", { autoAlpha: 0 }, { autoAlpha: 1, stagger: 0.1, duration: 0.2 }).fromTo(".mob-lang-switch-wrapper", { autoAlpha: 0 }, { autoAlpha: 1, duration: 0.2 }); 23315 $(document).on("click", "#primary-menu-toggle", function() { 23316 if ($(this).hasClass("active")) { 23317 open_menu.timeScale(2).reverse(); 23318 $(this).removeClass("active"); 23319 $("#header-upper").removeClass("!bg-transparent !text-white dark"); 23320 $("body, html").removeClass("overflow-hidden"); 23321 if (!$(".hero-alt").length && !$(".hero-home").length) { 23322 $("header").addClass("bg-white"); 23323 } 23324 } else { 23325 open_menu.timeScale(1).play(); 23326 $(this).addClass("active"); 23327 $("#header-upper").addClass("!bg-transparent !text-white dark"); 23328 $("body, html").addClass("overflow-hidden"); 23329 $("header").removeClass("bg-white"); 23330 } 23331 }); 23332 accordion(); 23333 file_download(); 23334 product_slider(); 23335 product_slider_2(); 23336 $(".latest-news").each(function() { 23337 ScrollTrigger2.create({ 23338 trigger: this, 23339 start: "top 90%", 23340 onEnter: (self2) => { 23341 gsapWithCSS.timeline().to(this, { 23342 opacity: 1, 23343 duration: 0.25 23344 }).fromTo($(this).find("a"), { 23345 opacity: 0 23346 }, { 23347 opacity: 1, 23348 stagger: 0.1 23349 }, "-=.1"); 23350 } 23351 }); 23352 }); 23353 if (document.querySelector(".product-menu")) { 23354 ScrollTrigger2.create({ 23355 trigger: ".product-menu", 23356 start: "top top", 23357 end: "max", 23358 pin: true, 23359 pinSpacing: false, 23360 onEnter: () => { 23361 $("header, #header-lower").addClass("!-translate-y-full"); 23362 } 23363 }); 23364 ScrollTrigger2.create({ 23365 trigger: ".product-hero", 23366 start: "bottom center", 23367 onLeaveBack: () => { 23368 $("header, #header-lower").removeClass("!-translate-y-full"); 23369 } 23370 }); 23371 let sections = gsapWithCSS.utils.toArray(".product-section"); 23372 sections.forEach(function(element) { 23373 ScrollTrigger2.create({ 23374 trigger: element, 23375 start: "top center", 23376 end: "bottom center", 23377 onEnter: () => { 23378 document.querySelector('button[data-href="#' + element.i
23378d + '"]').closest("li").classList.add("after:!w-full"); 23379 }, 23380 onEnterBack: () => { 23381 document.querySelector('button[data-href="#' + element.id + '"]').closest("li").classList.add("after:!w-full"); 23382 }, 23383 onLeave: () => { 23384 document.querySelector('button[data-href="#' + element.id + '"]').closest("li").classList.remove("after:!w-full"); 23385 }, 23386 onLeaveBack: () => { 23387 document.querySelector('button[data-href="#' + element.id + '"]').closest("li").classList.remove("after:!w-full"); 23388 } 23389 }); 23390 }); 23391 document.querySelectorAll(".product-menu button").forEach((btn, index) => { 23392 let id = btn.dataset.href.replaceAll("#", ""); 23393 btn.addEventListener("click", () => { 23394 gsapWithCSS.to(window, { 23395 duration: 1, 23396 scrollTo: { 23397 y: "#" + id, 23398 offsetY: $(".product-menu").height() + 30 23399 } 23400 }); 23401 }); 23402 }); 23403 } 23404 $(".faq-buttons button").on("click", function() { 23405 let id = $(this).attr("data-acc"); 23406 $(".faq-buttons button").removeClass("shadow-lg border-h-green"); 23407 $(this).addClass("shadow-lg border-h-green"); 23408 $(".faq-acc").removeClass("block").addClass("hidden"); 23409 $('.faq-acc[data-acc="' + id + '"]').removeClass("hidden").addClass("block"); 23410 }); 23411 icon_buttons(); 23412 text_image(); 23413 $(".pb-section").each(function() { 23414 gsapWithCSS.fromTo($(this).children(), { 23415 y: 50, 23416 opacity: 0 23417 }, { 23418 scrollTrigger: { 23419 trigger: $(this), 23420 start: "top 85%" 23421 }, 23422 y: 0, 23423 opacity: 1, 23424 duration: 1.5 23425 }); 23426 }); 23427 function footer_height() { 23428 $("#content").css("margin-bottom", $("footer").height()); 23429 } 23430 footer_height(); 23431 $(window).on("resize", footer_height); 23432 $(".service-card").each(function() { 23433 gsapWithCSS.to($(this), { 23434 scrollTrigger: { 23435 trigger: $(this), 23436 start: "top 80%" 23437 }, 23438 opacity: 1 23439 }); 23440 }); 23441 function home_loader() { 23442 if ($("body").hasClass("home")) { 23443 gsapWithCSS.timeline().to("#page-loader .logo .line", { 23444 opacity: 1 23445 }, 0).to("#page-loader .logo .letter", { 23446 opacity: 1, 23447 stagger: 0.05, 23448 onComplete: () => { 23449 gsapWithCSS.set(".logo .opacity-0", { opacity: 1 }); 23450 $("#page").removeClass("opacity-0"); 23451 } 23452 }, 0).to("#page-loader", { 23453 yPercent: 100 23454 }).set("#page-loader .logo", { 23455 opacity: 0 23456 }, "-=.5").from("#header-link, #header-button, header .lang-switch", { 23457 opacity: 0, 23458 y: -100, 23459 stagger: -0.2 23460 }, "-=.45").from("#header-line", { 23461 opacity: 0 23462 }, "-=.25").from("header #menu-menu-1 > .menu-item", { 23463 opacity: 0, 23464 y: -20, 23465 stagger: 0.1 23466 }, "-=.25").from("#header-line2", { 23467 opacity: 0 23468 }, "-=1").fromTo(".hero-opacity", { 23469 opacity: 0 23470 }, { 23471 opacity: 0.5 23472 }, "-=.5").from(".hero-content", { 23473 opacity: 0, 23474 y: 100, 23475 duration: 1 23476 }, "-=.5").addLabel("hero-links", "-=.5").from(".hero-links a", { opacity: 0, stagger: 0.2, duration: 1 }, "hero-links").from(".hero-links .hero-links-image", { width: 0, stagger: 0.2, duration: 1 }, "hero-links").from(".hero-links .hero-links-image img", { scale: 1.2, stagger: 0.2, duration: 1 }, "hero-links").from(".hero-links svg", { opacity: 0, stagger: 0.2, duration: 1 }, "hero-links+=.5"); 23477 } else { 23478 gsapWithCSS.to(".logo .opacity-0", { opacity: 1, delay: 0.5 }); 23479 } 23480 let tl = gsapWithCSS.timeline({ 23481 scrollTrigger: { 23482 trigger: ".hero-home", 23483 start: "top top", 23484 end: "bottom 25%", 23485 scrub: 1 23486 }, 23487 defaults: {} 23488 }); 23489 tl.to(".hero-content", { 23490 opacity: 0, 23491 ease: "linear" 23492 }, 0).to(".hero-links", { 23493 opacity: 0, 23494 ease: "linear", 23495 delay: 1 23496 }, 0); 23497 } 23498 ScrollTrigger2.matchMedia({ 23499 "(min-width: 1024px)": function() { 23500 gsapWithCSS.to("header", { 23501 scrollTrigger: { 23502 trigger: ".heroes:not(.standard-hero)", 23503 start: "top top", 23504 end: "bottom top", 23505 onLeave: (self2) => { 23506 $("header").addClass("passed-hero").removeClass("over-hero"); 23507 }, 23508 onEnterBack: (self2) => { 23509 $("header").addClass("over-hero").removeClass("passed-hero"); 23510 } 23511 } 23512 }); 23513 }, 23514 "(max-width: 1023px)": function() { 23515 gsapWithCSS.to("header", { 23516 scrollTrigger: { 23517 trigger: ".heroes:not(.standard-hero)", 23518 start: "top top", 23519 end: "top 10px", 23520 onLeave: (self2) => { 23521 $("header").addClass("passed-hero").removeClass("over-hero"); 23522 console.log("down"); 23523 }, 23524 onEnterBack: (self2) => { 23525 $("header").addClass("over-hero").removeClass("passed-hero"); 23526 console.log("up"); 23527 } 23528 } 23529 }); 23530 } 23531 }); 23532 gsapWithCSS.set(".product-card", { y: 100 }); 23533 ScrollTrigger2.batch(".product-card", { 23534 interval: 0.05, 23535 batchMax: 2, 23536 onEnter: (batch) => gsapWithCSS.to(batch, { 23537 opacity: 1, 23538 y: 0, 23539 stagger: { each: 0.15, grid: [1, 3] }, 23540 overwrite: true 23541 }), 23542 start: "20px bottom", 23543 end: "top top" 23544 }); 23545 ScrollTrigger2.addEventListener("refreshInit", () => gsapWithCSS.set(".box", { y: 0 })); 23546 ScrollTrigger2.matchMedia({ 23547 "(min-width: 1024px)": function() { 23548 let tl = gsapWithCSS.timeline({ 23549 scrollTrigger: { 23550 trigger: ".posts-grid a:first-child", 23551 start: "top " + $("header").height(), 23552 endTrigger: ".posts-grid", 23553 end: "bottom bottom", 23554 pin: true, 23555 pinSpacing: false 23556 } 23557 }); 23558 $("#featured-blog img").css("height", $(window).height() - $("#featured-blog .post-content").height() - $("header").height() - $("header #header-lower").height() - 16 * 6); 23559 }, 23560 "(max-width: 799px)": function() { 23561 let tl = gsapWithCSS.timeline({ 23562 scrollTrigger: { 23563 trigger: ".posts-grid a:first-child", 23564 start: "top " + $("header").height(), 23565 endTrigger: ".posts-grid", 23566 end: "bottom bottom",
23567 pin: false, 23568 pinSpacing: false 23569 } 23570 }); 23571 $("#featured-blog img").css("height", ""); 23572 }, 23573 all: function() { 23574 } 23575 }); 23576 gsapWithCSS.timeline().from(".product-hero-bg", { 23577 right: "300px" 23578 }, 0).to("#overview .product-hero-image", { 23579 opacity: 1, 23580 y: 0 23581 }, 0); 23582 if ($("body").hasClass("page-template-page-mission")) { 23583 let start2 = function() { 23584 let panels = gsapWithCSS.utils.toArray(".mission-slide"), scrollTween; 23585 function goToSection(i) { 23586 scrollTween = gsapWithCSS.to(window, { 23587 scrollTo: { 23588 y: i * $(".mission-slide").height(), 23589 autoKill: false 23590 }, 23591 duration: 1.5, 23592 onComplete: () => scrollTween = null, 23593 overwrite: false 23594 }); 23595 stop = true; 23596 } 23597 gsapWithCSS.utils.toArray("#mission-slide-nav a").forEach(function(a) { 23598 a.addEventListener("click", function(e) { 23599 e.preventDefault(); 23600 let index = $(a).index(); 23601 goToSection(index); 23602 }); 23603 }); 23604 gsapWithCSS.utils.toArray(".scroll-button").forEach(function(a) { 23605 a.addEventListener("click", function(e) { 23606 e.preventDefault(); 23607 let index = $(a).closest(".mission-slide").index(); 23608 goToSection(index + 1); 23609 }); 23610 }); 23611 ScrollTrigger2.matchMedia({ 23612 "(min-width: 1024px)": function() { 23613 panels.forEach((panel, i) => { 23614 ScrollTrigger2.create({ 23615 trigger: panel, 23616 start: "top bottom", 23617 end: "+=200%", 23618 onToggle: (self2) => { 23619 self2.isActive && !scrollTween && goToSection(i); 23620 }, 23621 onEnter: () => { 23622 $("#mission-slide-nav .active").removeClass("active"); 23623 $("#mission-slide-nav a:nth-child(" + (i + 1) + ")").addClass("active"); 23624 gsapWithCSS.timeline().set($(panel), { 23625 autoAlpha: 1 23626 }).to($(panel).find(".slide-inner"), { 23627 autoAlpha: 1 23628 }).fromTo($(panel).find(".slide-sub"), { 23629 autoAlpha: 0 23630 }, { 23631 autoAlpha: 1 23632 }, "-=.5").fromTo($(panel).find(".slide-heading"), { 23633 autoAlpha: 0, 23634 y: 100 23635 }, { 23636 autoAlpha: 1, 23637 y: 0 23638 }, "-=.5").fromTo($(panel).find(".scroll-button"), { autoAlpha: 0 }, { autoAlpha: 1 }).fromTo($(panel).find("img"), { 23639 scale: 1.1 23640 }, { 23641 scale: 1, 23642 duration: 2 23643 }, 0); 23644 }, 23645 onEnterBack: () => { 23646 $("#mission-slide-nav .active").removeClass("active"); 23647 $("#mission-slide-nav a:nth-child(" + (i + 1) + ")").addClass("active"); 23648 gsapWithCSS.timeline().to($(panel).next(), { 23649 autoAlpha: 0 23650 }, 0).to($(panel).next().find(".slide-inner"), { 23651 autoAlpha: 0 23652 }, 0).to($(panel).find(".slide-inner"), { 23653 autoAlpha: 1 23654 }, 0).fromTo($(panel).find(".slide-heading"), { 23655 autoAlpha: 0, 23656 y: 100 23657 }, { 23658 autoAlpha: 1, 23659 y: 0, 23660 delay: 0.75 23661 }, "-=.5").fromTo($(panel).find(".scroll-button"), { autoAlpha: 0 }, { autoAlpha: 1 }).fromTo($(panel).find("img"), { 23662 scale: 1.1 23663 }, { 23664 scale: 1, 23665 duration: 2 23666 }, 0.25); 23667 } 23668 }); 23669 }); 23670 ScrollTrigger2.create({ 23671 trigger: "#content", 23672 start: "top top", 23673 end: "bottom bottom", 23674 pin: "#mission-slide-circle", 23675 pinSpacing: false, 23676 onLeave: () => { 23677 $(".slide-inner").removeClass("lg:fixed").addClass("relative"); 23678 }, 23679 onEnterBack: () => { 23680 $(".slide-inner").addClass("lg:fixed").removeClass("relative"); 23681 } 23682 }); 23683 ScrollTrigger2.create({ 23684 trigger: "#content", 23685 start: 0, 23686 end: "bottom bottom", 23687 snap: 1 / (panels.length - 1) 23688 }); 23689 }, 23690 "(max-width: 1024px)": function() {
23691 panels.forEach((panel, i) => { 23692 ScrollTrigger2.create({ 23693 trigger: panel, 23694 start: "top center", 23695 end: "+=100%", 23696 onEnter: () => { 23697 $("#mission-slide-nav .active").removeClass("active"); 23698 $("#mission-slide-nav a:nth-child(" + (i + 1) + ")").addClass("active"); 23699 gsapWithCSS.timeline().set($(panel), { 23700 autoAlpha: 1 23701 }).to($(panel).find(".slide-inner"), { 23702 autoAlpha: 1 23703 }).to($(panel).find(".slide-sub"), { 23704 autoAlpha: 1 23705 }, "-=.5").to($(panel).find(".slide-heading"), { 23706 autoAlpha: 1, 23707 y: 0 23708 }, "-=.5").to($(panel).find(".scroll-button"), { autoAlpha: 1 }).to($(panel).find("img"), { 23709 scale: 1, 23710 duration: 2 23711 }, 0); 23712 }, 23713 onLeave: () => { 23714 gsapWithCSS.timeline().fromTo($(panel).find(".slide-heading"), { 23715 autoAlpha: 0, 23716 y: 100 23717 }, { 23718 autoAlpha: 1, 23719 y: 0, 23720 delay: 0.75 23721 }).fromTo($(panel).find(".scroll-button"), { autoAlpha: 0 }, { autoAlpha: 1 }); 23722 }, 23723 onEnterBack: () => { 23724 $("#mission-slide-nav .active").removeClass("active"); 23725 $("#mission-slide-nav a:nth-child(" + (i + 1) + ")").addClass("active"); 23726 } 23727 }); 23728 }); 23729 } 23730 }); 23731 }; 23732 MorphSVGPlugin.convertToPath("circle"); 23733 $(".mission-slide").each(function(index) { 23734 $active = ""; 23735 if (index == 0) 23736 $active = "active"; 23737 $("#mission-slide-nav").append('<a href="#slide-' + (index + 1) + '" class="' + $active + ' w-3 h-3 rounded-full border border-white hover:bg-white"></a>'); 23738 }); 23739 ScrollTrigger2.create({ 23740 trigger: "#content", 23741 start: "top top", 23742 end: "bottom bottom", 23743 pin: "#mission-slide-nav", 23744 pinSpacing: false 23745 }); 23746 gsapWithCSS.timeline({ 23747 onComplete: () => { 23748 start2(); 23749 } 23750 }).fromTo($(".mission-page > div, .mission-page-float"), { 23751 autoAlpha: 0 23752 }, { 23753 autoAlpha: 1, 23754 delay: 0.25 23755 }).fromTo($(".mission-page h1"), { 23756 autoAlpha: 0, 23757 x: -100 23758 }, { 23759 autoAlpha: 1, 23760 x: 0 23761 }).from("#circle1", { 23762 ease: "none", 23763 drawSVG: 0, 23764 duration: 1 23765 }, "-=.25"); 23766 gsapWithCSS.from("#circle2", { 23767 scrollTrigger: { 23768 trigger: "#content", 23769 start: "top top", 23770 end: "bottom bottom", 23771 scrub: true 23772 }, 23773 ease: "none", 23774 drawSVG: 0 23775 }); 23776 } 23777 $("#mob-lang-switch").on("change", function() { 23778 var url = $(this).val(); 23779 if (url) { 23780 window.location = url; 23781 } 23782 return false; 23783 }); 23784})(); 23785/*! 23786 * CSSPlugin 3.10.4 23787 * https://greensock.com 23788 * 23789 * Copyright 2008-2022, GreenSock. All rights reserved. 23790 * Subject to the terms at https://greensock.com/standard-license or for 23791 * Club GreenSock members, the agreement issued with that membership. 23792 * @author: Jack Doyle, [email protected] 23793*/ 23794/*! 23795 * DrawSVGPlugin 3.10.4 23796 * https://greensock.com 23797 * 23798 * @license Copyright 2008-2022, GreenSock. All rights reserved. 23799 * Subject to the terms at https://greensock.com/standard-license or for 23800 * Club GreenSock members, the agreement issued with that membership. 23801 * @author: Jack Doyle, [email protected] 23802*/ 23803/*! 23804 * GSAP 3.10.4 23805 * https://greensock.com 23806 * 23807 * @license Copyright 2008-2022, GreenSock. All rights reserved. 23808 * Subject to the terms at https://greensock.com/standard-license or for 23809 * Club GreenSock members, the agreement issued with that membership. 23810 * @author: Jack Doyle, [email protected] 23811*/ 23812/*! 23813 * Glide.js v3.5.2 23814 * (c) 2013-2021 JÄdrzej ChaÅubek (https://github.com/jedrzejchalubek/) 23815 * Released under the MIT License. 23816 */ 23817/*! 23818 * MorphSVGPlugin 3.10.4 23819 * https://greensock.com 23820 * 23821 * @license Copyright 2008-2022, GreenSock. All rights reserved. 23822 * Subject to the terms at https://greensock.com/standard-license or for 23823 * Club GreenSock members, the agreement issued with that membership. 23824 * @author: Jack Doyle, [email protected] 23825*/ 23826/*! 23827 * Observer 3.10.4 23828 * https://greensock.com 23829 * 23830 * @license Copyright 2008-2022, GreenSock. All rights reserved. 23831 * Subject to the terms at https://greensock.com/standard-license or for 23832 * Club GreenSock members, the agreement issued with that membership. 23833 * @author: Jack Doyle, [email protected] 23834*/ 23835/*! 23836 * ScrollToPlugin 3.10.4 23837 * https://greensock.com 23838 * 23839 * @license Copyright 2008-2022, GreenSock. All rights reserved. 23840 * Subject to the terms at https://greensock.com/standard-license or for 23841 * Club GreenSock members, the agreement issued with that membership. 23842 * @author: Jack Doyle, [email protected] 23843*/ 23844/*! 23845 * ScrollTrigger 3.10.4 23846 * https://greensock.com 23847 * 23848 * @license Copyright 2008-2022, GreenSock. All rights reserved. 23849 * Subject to the terms at https://greensock.com/standard-license or for 23850 * Club GreenSock members, the agreement issued with that membership. 23851 * @author: Jack Doyle, [email protected] 23852*/ 23853/*! 23854 * SplitText: 3.10.4 23855 * https://greensock.com 23856 * 23857 * @license Copyright 2008-2022, GreenSock. All rights reserved. 23858 * Subject to the terms at https://greensock.com/standard-license or for 23859 * Club GreenSock members, the agreement issued with that membership. 23860 * @author: Jack Doyle, [email protected] 23861*/ 23862/*! 23863 * headroom.js v0.12.0 - Give your page some headroom. Hide your header until you need it 23864 * Copyright (c) 2020 Nick Williams - http://wicky.nillia.ms/headroom.js 23865 * License: MIT 23866 */ 23867/*! 23868 * jQuery JavaScript Library v3.6.0 23869 * https://jquery.com/ 23870 * 23871 * Includes Sizzle.js 23872 * https://sizzlejs.com/ 23873 * 23874 * Copyright OpenJS Foundation and other contributors 23875 * Released under the MIT license 23876 * https://jquery.org/license 23877 * 23878 * Date: 2021-03-02T17:08Z 23879 */ 23880/*! 23881 * paths 3.10.4 23882 * https://greensock.com 23883 * 23884 * Copyright 2008-2022, GreenSock. All rights reserved. 23885 * Subject to the terms at https://greensock.com/standard-license or for 23886 * Club GreenSock members, the agreement issued with that membership. 23887 * @author: Jack Doyle, [email protected] 23888*/ 23889/*! 23890 * strings: 3.10.4 23891 * https://greensock.com 23892 * 23893 * Copyright 2008-2022, GreenSock. All rights reserved. 23894 * Subject to the terms at https://greensock.com/standard-license or for 23895 * Club GreenSock members, the agreement issued with that membership. 23896 * @author: Jack Doyle, [email protected] 23897*/ 23898/** 23899 * @license 23900 * Lodash <https://lodash.com/>
23901 * Copyright OpenJS Foundation and other contributors <https://openjsf.org/> 23902 * Released under MIT license <https://lodash.com/license> 23903 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE> 23904 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors 23905 */
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.