vendor: 2,421 bytes, lines 1-52
1(() => { 2 var __create = Object.create; 3 var __defProp = Object.defineProperty; 4 var __defProps = Object.defineProperties; 5 var __getOwnPropDesc = Object.getOwnPropertyDescriptor; 6 var __getOwnPropDescs = Object.getOwnPropertyDescriptors; 7 var __getOwnPropNames = Object.getOwnPropertyNames; 8 var __getOwnPropSymbols = Object.getOwnPropertySymbols; 9 var __getProtoOf = Object.getPrototypeOf; 10 var __hasOwnProp = Object.prototype.hasOwnProperty; 11 var __propIsEnum = Object.prototype.propertyIsEnumerable; 12 var __defNormalProp = (obj, key, value2) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value: value2 }) : obj[key] = value2; 13 var __spreadValues = (a, b) => { 14 for (var prop in b || (b = {})) 15 if (__hasOwnProp.call(b, prop)) 16 __defNormalProp(a, prop, b[prop]); 17 if (__getOwnPropSymbols) 18 for (var prop of __getOwnPropSymbols(b)) { 19 if (__propIsEnum.call(b, prop)) 20 __defNormalProp(a, prop, b[prop]); 21 } 22 return a; 23 }; 24 var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); 25 var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { 26 get: (a, b) => (typeof require !== "undefined" ? require : a)[b] 27 }) : x)(function(x) { 28 if (typeof require !== "undefined") 29 return require.apply(this, arguments); 30 throw new Error('Dynamic require of "' + x + '" is not supported'); 31 }); 32 var __commonJS = (cb, mod) => function __require2() { 33 return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; 34 }; 35 var __export = (target, all) => { 36 for (var name2 in all) 37 __defProp(target, name2, { get: all[name2], enumerable: true }); 38 }; 39 var __copyProps = (to, from, except, desc) => { 40 if (from && typeof from === "object" || typeof from === "function") { 41 for (let key of __getOwnPropNames(from)) 42 if (!__hasOwnProp.call(to, key) && key !== except) 43 __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); 44 } 45 return to; 46 }; 47 var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( 48 isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, 49 mod 50 )); 51 52
vendor: 243,128 bytes, lines 52-6109
52// node_modules/jquery/dist/jquery.js 53 var require_jquery = __commonJS({ 54 "node_modules/jquery/dist/jquery.js"(exports, module) { 55 (function(global2, factory) { 56 "use strict"; 57 if (typeof module === "object" && typeof module.exports === "object") { 58 module.exports = global2.document ? factory(global2, true) : function(w) { 59 if (!w.document) { 60 throw new Error("jQuery requires a window with a document"); 61 } 62 return factory(w); 63 }; 64 } else { 65 factory(global2); 66 } 67 })(typeof window !== "undefined" ? window : exports, function(window2, noGlobal) { 68 "use strict"; 69 var arr = []; 70 var getProto = Object.getPrototypeOf; 71 var slice = arr.slice; 72 var flat = arr.flat ? function(array) { 73 return arr.flat.call(array); 74 } : function(array) { 75 return arr.concat.apply([], array); 76 }; 77 var push = arr.push; 78 var indexOf = arr.indexOf; 79 var class2type = {}; 80 var toString2 = class2type.toString; 81 var hasOwn = class2type.hasOwnProperty; 82 var fnToString = hasOwn.toString; 83 var ObjectFunctionString = fnToString.call(Object); 84 var support = {}; 85 var isFunction = function isFunction2(obj) { 86 return typeof obj === "function" && typeof obj.nodeType !== "number" && typeof obj.item !== "function"; 87 }; 88 var isWindow = function isWindow2(obj) { 89 return obj != null && obj === obj.window; 90 }; 91 var document2 = window2.document; 92 var preservedScriptAttributes = { 93 type: true, 94 src: true, 95 nonce: true, 96 noModule: true 97 }; 98 function DOMEval(code, node, doc) { 99 doc = doc || document2; 100 var i2, val, script = doc.createElement("script"); 101 script.text = code; 102 if (node) { 103 for (i2 in preservedScriptAttributes) { 104 val = node[i2] || node.getAttribute && node.getAttribute(i2); 105 if (val) { 106 script.setAttribute(i2, val); 107 } 108 } 109 } 110 doc.head.appendChild(script).parentNode.removeChild(script); 111 } 112 function toType(obj) { 113 if (obj == null) { 114 return obj + ""; 115 } 116 return typeof obj === "object" || typeof obj === "function" ? class2type[toString2.call(obj)] || "object" : typeof obj; 117 } 118 var version = "3.7.0", rhtmlSuffix = /HTML$/i, jQuery3 = function(selector, context) { 119 return new jQuery3.fn.init(selector, context); 120 }; 121 jQuery3.fn = jQuery3.prototype = { 122 jquery: version, 123 constructor: jQuery3, 124 length: 0, 125 toArray: function() { 126 return slice.call(this); 127 }, 128 get: function(num) { 129 if (num == null) { 130 return slice.call(this); 131 } 132 return num < 0 ? this[num + this.length] : this[num]; 133 }, 134 pushStack: function(elems) { 135 var ret = jQuery3.merge(this.constructor(), elems); 136 ret.prevObject = this; 137 return ret; 138 }, 139 each: function(callback) { 140 return jQuery3.each(this, callback); 141 }, 142 map: function(callback) { 143 return this.pushStack(jQuery3.map(this, function(elem, i2) { 144 return callback.call(elem, i2, elem); 145 })); 146 }, 147 slice: function() { 148 return this.pushStack(slice.apply(this, arguments)); 149 }, 150 first: function() { 151 return this.eq(0); 152 }, 153 last: function() { 154 return this.eq(-1); 155 }, 156 even: function() { 157 return this.pushStack(jQuery3.grep(this, function(_elem, i2) { 158 return (i2 + 1) % 2; 159 })); 160 }, 161 odd: function() { 162 return this.pushStack(jQuery3.grep(this, function(_elem, i2) { 163 return i2 % 2; 164 })); 165 }, 166 eq: function(i2) { 167 var len = this.length, j = +i2 + (i2 < 0 ? len : 0); 168 return this.pushStack(j >= 0 && j < len ? [this[j]] : []); 169 }, 170 end: function() { 171 return this.prevObject || this.constructor(); 172 }, 173 push, 174 sort: arr.sort, 175 splice: arr.splice 176 }; 177 jQuery3.extend = jQuery3.fn.extend = function() { 178 var options, name2, src, copy, copyIsArray, clone, target = arguments[0] || {}, i2 = 1, length2 = arguments.length, deep = false; 179 if (typeof target === "boolean") { 180 deep = target; 181 target = arguments[i2] || {}; 182 i2++; 183 } 184 if (typeof target !== "object" && !isFunction(target)) { 185 target = {}; 186 } 187 if (i2 === length2) { 188 target = this; 189 i2--; 190 } 191 for (; i2 < length2; i2++) { 192 if ((options = arguments[i2]) != null) { 193 for (name2 in options) { 194 copy = options[name2]; 195 if (name2 === "__proto__" || target === copy) { 196 continue; 197 } 198 if (deep && copy && (jQuery3.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) { 199 src = target[name2]; 200 if (copyIsArray && !Array.isArray(src)) { 201 clone = []; 202 } else if (!copyIsArray && !jQuery3.isPlainObject(src)) { 203 clone = {}; 204 } else { 205 clone = src; 206 } 207 copyIsArray = false; 208 target[name2] = jQuery3.extend(deep, clone, copy); 209 } else if (copy !== void 0) { 210 target[name2] = copy; 211 } 212 } 213 } 214 } 215 return target; 216 }; 217 jQuery3.extend({ 218 expando: "jQuery" + (version + Math.random()).replace(/\D/g, ""), 219 isReady: true, 220 error: function(msg) { 221 throw new Error(msg); 222 }, 223 noop: function() { 224 }, 225 isPlainObject: function(obj) { 226 var proto, Ctor; 227 if (!obj || toString2.call(obj) !== "[object Object]") { 228 return false; 229 } 230 proto = getProto(obj); 231 if (!proto) { 232 return true; 233 } 234 Ctor = hasOwn.call(proto, "constructor") && proto.constructor; 235 return typeof Ctor === "function" && fnToString.call(Ctor) === ObjectFunctionString; 236 }, 237 isEmptyObject: function(obj) { 238 var name2; 239 for (name2 in obj) { 240 return false; 241 } 242 return true; 243 }, 244 globalEval: function(code, options, doc) { 245 DOMEval(code, { nonce: options && options.nonce }, doc); 246 }, 247 each: function(obj, callback) { 248 var length2, i2 = 0; 249 if (isArrayLike(obj)) { 250 length2 = obj.length; 251 for (; i2 < length2; i2++) { 252 if (callback.call(obj[i2], i2, obj[i2]) === false) { 253 break; 254 } 255 } 256 } else { 257 for (i2 in obj) { 258 if (callback.call(obj[i2], i2, obj[i2]) === false) { 259 break; 260 } 261 } 262 } 263 return obj; 264 }, 265 text: function(elem) { 266 var node, ret = "", i2 = 0, nodeType = elem.nodeType; 267 if (!nodeType) { 268 while (node = elem[i2++]) { 269 ret += jQuery3.text(node); 270 } 271 } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) { 272 return elem.textContent; 273 } else if (nodeType === 3 || nodeType === 4) { 274 return elem.nodeValue; 275 } 276 return ret; 277 }, 278 makeArray: function(arr2, results) { 279 var ret = results || []; 280 if (arr2 != null) { 281 if (isArrayLike(Object(arr2))) { 282 jQuery3.merge( 283 ret, 284 typeof arr2 === "string" ? [arr2] : arr2 285 ); 286 } else { 287 push.call(ret, arr2); 288 } 289 } 290 return ret; 291 }, 292 inArray: function(elem, arr2, i2) { 293 return arr2 == null ? -1 : indexOf.call(arr2, elem, i2); 294 }, 295 isXMLDoc: function(elem) { 296 var namespace = elem && elem.namespaceURI, docElem = elem && (elem.ownerDocument || elem).documentElement; 297 return !rhtmlSuffix.test(namespace || docElem && docElem.nodeName || "HTML"); 298 }, 299 merge: function(first, second) { 300 var len = +second.length, j = 0, i2 = first.length; 301 for (; j < len; j++) { 302 first[i2++] = second[j]; 303 } 304 first.length = i2; 305 return first; 306 }, 307 grep: function(elems, callback, invert) { 308 var callbackInverse, matches = [], i2 = 0, length2 = elems.length, callbackExpect = !invert; 309 for (; i2 < length2; i2++) { 310 callbackInverse = !callback(elems[i2], i2); 311 if (callbackInverse !== callbackExpect) { 312 matches.push(elems[i2]); 313 } 314 } 315 return matches; 316 }, 317 map: function(elems, callback, arg) { 318 var length2, value2, i2 = 0, ret = []; 319 if (isArrayLike(elems)) { 320 length2 = elems.length; 321 for (; i2 < length2; i2++) { 322 value2 = callback(elems[i2], i2, arg); 323 if (value2 != null) { 324 ret.push(value2); 325 } 326 } 327 } else { 328 for (i2 in elems) { 329 value2 = callback(elems[i2], i2, arg); 330 if (value2 != null) { 331 ret.push(value2); 332 } 333 } 334 } 335 return flat(ret); 336 }, 337 guid: 1, 338 support 339 }); 340 if (typeof Symbol === "function") { 341 jQuery3.fn[Symbol.iterator] = arr[Symbol.iterator]; 342 } 343 jQuery3.each( 344 "Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), 345 function(_i, name2) { 346 class2type["[object " + name2 + "]"] = name2.toLowerCase(); 347 } 348 ); 349 function isArrayLike(obj) { 350 var length2 = !!obj && "length" in obj && obj.length, type2 = toType(obj); 351 if (isFunction(obj) || isWindow(obj)) { 352 return false; 353 } 354 return type2 === "array" || length2 === 0 || typeof length2 === "number" && length2 > 0 && length2 - 1 in obj; 355 } 356 function nodeName(elem, name2) { 357 return elem.nodeName && elem.nodeName.toLowerCase() === name2.toLowerCase(); 358 } 359 var pop = arr.pop; 360 var sort = arr.sort; 361 var splice = arr.splice; 362 var whitespace = "[\\x20\\t\\r\\n\\f]"; 363 var rtrimCSS = new RegExp( 364 "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", 365 "g" 366 ); 367 jQuery3.contains = function(a, b) { 368 var bup = b && b.parentNode; 369 return a === bup || !!(bup && bup.nodeType === 1 && (a.contains ? a.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16)); 370 }; 371 var rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g; 372 function fcssescape(ch, asCodePoint) { 373 if (asCodePoint) { 374 if (ch === "\0") { 375 return "\uFFFD"; 376 } 377 return ch.slice(0, -1) + "\\" + ch.charCodeAt(ch.length - 1).toString(16) + " "; 378 } 379 return "\\" + ch; 380 } 381 jQuery3.escapeSelector = function(sel) { 382 return (sel + "").replace(rcssescape, fcssescape); 383 }; 384 var preferredDoc = document2, pushNative = push; 385 (function() { 386 var i2, Expr, outermostContext, sortInput, hasDuplicate, push2 = pushNative, document3, documentElement2, documentIsHTML, rbuggyQSA, matches, expando = jQuery3.expando, dirruns = 0, done = 0, classCache = createCache(), tokenCache = createCache(), compilerCache = createCache(), nonnativeSelectorCache = createCache(), sortOrder = function(a, b) { 387 if (a === b) { 388 hasDuplicate = true; 389 } 390 return 0; 391 }, booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + "*([*^$|!~]?=)" + whitespace + `*(?:'((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)"|(` + identifier + "))|)" + whitespace + "*\\]", pseudos = ":(" + identifier + `)(?:\\((('((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)")|((?:\\\\.|[^\\\\()[\\]]|` + attributes + ")*)|.*)\\)|)", rwhitespace = new RegExp(whitespace + "+", "g"), rcomma = new RegExp("^" + whitespace + "*," + whitespace + "*"), rleadingCombinator = new RegExp("^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*"), rdescend = new RegExp(whitespace + "|>"), rpseudo = new RegExp(pseudos), ridentifier = new RegExp("^" + identifier + "$"), matchExpr = { 392 ID: new RegExp("^#(" + identifier + ")"), 393 CLASS: new RegExp("^\\.(" + identifier + ")"), 394 TAG: new RegExp("^(" + identifier + "|[*])"), 395 ATTR: new RegExp("^" + attributes), 396 PSEUDO: new RegExp("^" + pseudos), 397 CHILD: new RegExp( 398 "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", 399 "i" 400 ), 401 bool: new RegExp("^(?:" + booleans + ")$", "i"), 402 needsContext: new RegExp("^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i") 403 }, rinputs = /^(?:input|select|textarea|button)$/i, rheader = /^h\d$/i, rquickExpr2 = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, rsibling = /[+~]/, runescape = new RegExp("\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g"), funescape = function(escape2, nonHex) { 404 var high = "0x" + escape2.slice(1) - 65536; 405 if (nonHex) { 406 return nonHex; 407 } 408 return high < 0 ? String.fromCharCode(high + 65536) : String.fromCharCode(high >> 10 | 55296, high & 1023 | 56320); 409 }, unloadHandler2 = function() { 410 setDocument(); 411 }, inDisabledFieldset = addCombinator( 412 function(elem) { 413 return elem.disabled === true && nodeName(elem, "fieldset"); 414 }, 415 { dir: "parentNode", next: "legend" } 416 ); 417 function safeActiveElement() { 418 try { 419 return document3.activeElement; 420 } catch (err) { 421 } 422 } 423 try { 424 push2.apply( 425 arr = slice.call(preferredDoc.childNodes), 426 preferredDoc.childNodes 427 ); 428 arr[preferredDoc.childNodes.length].nodeType; 429 } catch (e) { 430 push2 = { 431 apply: function(target, els) { 432 pushNative.apply(target, slice.call(els)); 433 }, 434 call: function(target) { 435 pushNative.apply(target, slice.call(arguments, 1)); 436 } 437 }; 438 } 439 function find(selector, context, results, seed2) { 440 var m, i3, elem, nid, match, groups, newSelector, newContext = context && context.ownerDocument, nodeType = context ? context.nodeType : 9; 441 results = results || []; 442 if (typeof selector !== "string" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) { 443 return results; 444 } 445 if (!seed2) { 446 setDocument(context); 447 context = context || document3; 448 if (documentIsHTML) { 449 if (nodeType !== 11 && (match = rquickExpr2.exec(selector))) { 450 if (m = match[1]) { 451 if (nodeType === 9) { 452 if (elem = context.getElementById(m)) { 453 if (elem.id === m) { 454 push2.call(results, elem); 455 return results; 456 } 457 } else { 458 return results; 459 } 460 } else { 461 if (newContext && (elem = newContext.getElementById(m)) && find.contains(context, elem) && elem.id === m) { 462 push2.call(results, elem); 463 return results; 464 } 465 } 466 } else if (match[2]) { 467 push2.apply(results, context.getElementsByTagName(selector)); 468 return results; 469 } else if ((m = match[3]) && context.getElementsByClassName) { 470 push2.apply(results, context.getElementsByClassName(m)); 471 return results; 472 } 473 } 474 if (!nonnativeSelectorCache[selector + " "] && (!rbuggyQSA || !rbuggyQSA.test(selector))) { 475 newSelector = selector; 476 newContext = context; 477 if (nodeType === 1 && (rdescend.test(selector) || rleadingCombinator.test(selector))) { 478 newContext = rsibling.test(selector) && testContext(context.parentNode) || context; 479 if (newContext != context || !support.scope) { 480 if (nid = context.getAttribute("id")) { 481 nid = jQuery3.escapeSelector(nid); 482 } else { 483 context.setAttribute("id", nid = expando); 484 } 485 } 486 groups = tokenize(selector); 487 i3 = groups.length; 488 while (i3--) { 489 groups[i3] = (nid ? "#" + nid : ":scope") + " " + toSelector(groups[i3]); 490 } 491 newSelector = groups.join(","); 492 } 493 try { 494 push2.apply( 495 results, 496 newContext.querySelectorAll(newSelector) 497 ); 498 return results; 499 } catch (qsaError) { 500 nonnativeSelectorCache(selector, true); 501 } finally { 502 if (nid === expando) { 503 context.removeAttribute("id"); 504 } 505 } 506 } 507 } 508 } 509 return select(selector.replace(rtrimCSS, "$1"), context, results, seed2); 510 } 511 function createCache() { 512 var keys = []; 513 function cache2(key, value2) { 514 if (keys.push(key + " ") > Expr.cacheLength) { 515 delete cache2[keys.shift()]; 516 } 517 return cache2[key + " "] = value2; 518 } 519 return cache2; 520 } 521 function markFunction(fn) { 522 fn[expando] = true; 523 return fn; 524 } 525 function assert(fn) { 526 var el = document3.createElement("fieldset"); 527 try { 528 return !!fn(el); 529 } catch (e) { 530 return false; 531 } finally { 532 if (el.parentNode) { 533 el.parentNode.removeChild(el); 534 } 535 el = null; 536 } 537 } 538 function createInputPseudo(type2) { 539 return function(elem) { 540 return nodeName(elem, "input") && elem.type === type2; 541 }; 542 } 543 function createButtonPseudo(type2) { 544 return function(elem) { 545 return (nodeName(elem, "input") || nodeName(elem, "button")) && elem.type === type2; 546 }; 547 } 548 function createDisabledPseudo(disabled) { 549 return function(elem) { 550 if ("form" in elem) { 551 if (elem.parentNode && elem.disabled === false) { 552 if ("label" in elem) { 553 if ("label" in elem.parentNode) { 554 return elem.parentNode.disabled === disabled; 555 } else { 556 return elem.disabled === disabled; 557 } 558 } 559 return elem.isDisabled === disabled || elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled; 560 } 561 return elem.disabled === disabled; 562 } else if ("label" in elem) { 563 return elem.disabled === disabled; 564 } 565 return false; 566 }; 567 } 568 function createPositionalPseudo(fn) { 569 return markFunction(function(argument) { 570 argument = +argument; 571 return markFunction(function(seed2, matches2) { 572 var j, matchIndexes = fn([], seed2.length, argument), i3 = matchIndexes.length; 573 while (i3--) { 574 if (seed2[j = matchIndexes[i3]]) { 575 seed2[j] = !(matches2[j] = seed2[j]); 576 } 577 } 578 }); 579 }); 580 } 581 function testContext(context) { 582 return context && typeof context.getElementsByTagName !== "undefined" && context; 583 } 584 function setDocument(node) { 585 var subWindow, doc = node ? node.ownerDocument || node : preferredDoc; 586 if (doc == document3 || doc.nodeType !== 9 || !doc.documentElement) { 587 return document3; 588 } 589 document3 = doc; 590 documentElement2 = document3.documentElement; 591 documentIsHTML = !jQuery3.isXMLDoc(document3); 592 matches = documentElement2.matches || documentElement2.webkitMatchesSelector || documentElement2.msMatchesSelector; 593 if (preferredDoc != document3 && (subWindow = document3.defaultView) && subWindow.top !== subWindow) { 594 subWindow.addEventListener("unload", unloadHandler2); 595 } 596 support.getById = assert(function(el) { 597 documentElement2.appendChild(el).id = jQuery3.expando; 598 return !document3.getElementsByName || !document3.getElementsByName(jQuery3.expando).length; 599 }); 600 support.disconnectedMatch = assert(function(el) { 601 return matches.call(el, "*"); 602 }); 603 support.scope = assert(function() { 604 return document3.querySelectorAll(":scope"); 605 }); 606 support.cssHas = assert(function() { 607 try { 608 document3.querySelector(":has(*,:jqfake)"); 609 return false; 610 } catch (e) { 611 return true; 612 } 613 }); 614 if (support.getById) { 615 Expr.filter.ID = function(id) { 616 var attrId = id.replace(runescape, funescape); 617 return function(elem) { 618 return elem.getAttribute("id") === attrId; 619 }; 620 }; 621 Expr.find.ID = function(id, context) { 622 if (typeof context.getElementById !== "undefined" && documentIsHTML) { 623 var elem = context.getElementById(id); 624 return elem ? [elem] : []; 625 } 626 }; 627 } else { 628 Expr.filter.ID = function(id) { 629 var attrId = id.replace(runescape, funescape); 630 return function(elem) { 631 var node2 = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); 632 return node2 && node2.value === attrId; 633 }; 634 }; 635 Expr.find.ID = function(id, context) { 636 if (typeof context.getElementById !== "undefined" && documentIsHTML) { 637 var node2, i3, elems, elem = context.getElementById(id); 638 if (elem) { 639 node2 = elem.getAttributeNode("id"); 640 if (node2 && node2.value === id) { 641 return [elem]; 642 } 643 elems = context.getElementsByName(id); 644 i3 = 0; 645 while (elem = elems[i3++]) { 646 node2 = elem.getAttributeNode("id"); 647 if (node2 && node2.value === id) { 648 return [elem]; 649 } 650 } 651 } 652 return []; 653 } 654 }; 655 } 656 Expr.find.TAG = function(tag, context) { 657 if (typeof context.getElementsByTagName !== "undefined") { 658 return context.getElementsByTagName(tag); 659 } else { 660 return context.querySelectorAll(tag); 661 } 662 }; 663 Expr.find.CLASS = function(className, context) { 664 if (typeof context.getElementsByClassName !== "undefined" && documentIsHTML) { 665 return context.getElementsByClassName(className); 666 } 667 }; 668 rbuggyQSA = []; 669 assert(function(el) { 670 var input; 671 documentElement2.appendChild(el).innerHTML = "<a id='" + expando + "' href='' disabled='disabled'></a><select id='" + expando + "-\r\\' disabled='disabled'><option selected=''></option></select>"; 672 if (!el.querySelectorAll("[selected]").length) { 673 rbuggyQSA.push("\\[" + whitespace + "*(?:value|" + booleans + ")"); 674 } 675 if (!el.querySelectorAll("[id~=" + expando + "-]").length) { 676 rbuggyQSA.push("~="); 677 } 678 if (!el.querySelectorAll("a#" + expando + "+*").length) { 679 rbuggyQSA.push(".#.+[+~]"); 680 } 681 if (!el.querySelectorAll(":checked").length) { 682 rbuggyQSA.push(":checked"); 683 } 684 input = document3.createElement("input"); 685 input.setAttribute("type", "hidden"); 686 el.appendChild(input).setAttribute("name", "D"); 687 documentElement2.appendChild(el).disabled = true; 688 if (el.querySelectorAll(":disabled").length !== 2) { 689 rbuggyQSA.push(":enabled", ":disabled"); 690 } 691 input = document3.createElement("input"); 692 input.setAttribute("name", ""); 693 el.appendChild(input); 694 if (!el.querySelectorAll("[name='']").length) { 695 rbuggyQSA.push("\\[" + whitespace + "*name" + whitespace + "*=" + whitespace + `*(?:''|"")`); 696 } 697 }); 698 if (!support.cssHas) { 699 rbuggyQSA.push(":has"); 700 } 701 rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join("|")); 702 sortOrder = function(a, b) { 703 if (a === b) { 704 hasDuplicate = true; 705 return 0; 706 } 707 var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; 708 if (compare) { 709 return compare; 710 } 711 compare = (a.ownerDocument || a) == (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1; 712 if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) { 713 if (a === document3 || a.ownerDocument == preferredDoc && find.contains(preferredDoc, a)) { 714 return -1; 715 } 716 if (b === document3 || b.ownerDocument == preferredDoc && find.contains(preferredDoc, b)) { 717 return 1; 718 } 719 return sortInput ? indexOf.call(sortInput, a) - indexOf.call(sortInput, b) : 0; 720 } 721 return compare & 4 ? -1 : 1; 722 }; 723 return document3; 724 } 725 find.matches = function(expr, elements) { 726 return find(expr, null, null, elements); 727 }; 728 find.matchesSelector = function(elem, expr) { 729 setDocument(elem); 730 if (documentIsHTML && !nonnativeSelectorCache[expr + " "] && (!rbuggyQSA || !rbuggyQSA.test(expr))) { 731 try { 732 var ret = matches.call(elem, expr); 733 if (ret || support.disconnectedMatch || elem.document && elem.document.nodeType !== 11) { 734 return ret; 735 } 736 } catch (e) { 737 nonnativeSelectorCache(expr, true); 738 } 739 } 740 return find(expr, document3, null, [elem]).length > 0; 741 }; 742 find.contains = function(context, elem) { 743 if ((context.ownerDocument || context) != document3) { 744 setDocument(context); 745 } 746 return jQuery3.contains(context, elem); 747 }; 748 find.attr = function(elem, name2) { 749 if ((elem.ownerDocument || elem) != document3) { 750 setDocument(elem); 751 } 752 var fn = Expr.attrHandle[name2.toLowerCase()], val = fn && hasOwn.call(Expr.attrHandle, name2.toLowerCase()) ? fn(elem, name2, !documentIsHTML) : void 0; 753 if (val !== void 0) { 754 return val; 755 } 756 return elem.getAttribute(name2); 757 }; 758 find.error = function(msg) { 759 throw new Error("Syntax error, unrecognized expression: " + msg); 760 }; 761 jQuery3.uniqueSort = function(results) { 762 var elem, duplicates = [], j = 0, i3 = 0; 763 hasDuplicate = !support.sortStable; 764 sortInput = !support.sortStable && slice.call(results, 0); 765 sort.call(results, sortOrder); 766 if (hasDuplicate) { 767 while (elem = results[i3++]) { 768 if (elem === results[i3]) { 769 j = duplicates.push(i3); 770 } 771 } 772 while (j--) { 773 splice.call(results, duplicates[j], 1); 774 } 775 } 776 sortInput = null; 777 return results; 778 }; 779 jQuery3.fn.uniqueSort = function() { 780 return this.pushStack(jQuery3.uniqueSort(slice.apply(this))); 781 }; 782 Expr = jQuery3.expr = { 783 cacheLength: 50, 784 createPseudo: markFunction, 785 match: matchExpr, 786 attrHandle: {}, 787 find: {}, 788 relative: { 789 ">": { dir: "parentNode", first: true }, 790 " ": { dir: "parentNode" }, 791 "+": { dir: "previousSibling", first: true }, 792 "~": { dir: "previousSibling" } 793 }, 794 preFilter: { 795 ATTR: function(match) { 796 match[1] = match[1].replace(runescape, funescape); 797 match[3] = (match[3] || match[4] || match[5] || "").replace(runescape, funescape); 798 if (match[2] === "~=") { 799 match[3] = " " + match[3] + " "; 800 } 801 return match.slice(0, 4); 802 }, 803 CHILD: function(match) { 804 match[1] = match[1].toLowerCase(); 805 if (match[1].slice(0, 3) === "nth") { 806 if (!match[3]) { 807 find.error(match[0]); 808 } 809 match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === "even" || match[3] === "odd")); 810 match[5] = +(match[7] + match[8] || match[3] === "odd"); 811 } else if (match[3]) { 812 find.error(match[0]); 813 } 814 return match; 815 }, 816 PSEUDO: function(match) { 817 var excess, unquoted = !match[6] && match[2]; 818 if (matchExpr.CHILD.test(match[0])) { 819 return null; 820 } 821 if (match[3]) { 822 match[2] = match[4] || match[5] || ""; 823 } else if (unquoted && rpseudo.test(unquoted) && (excess = tokenize(unquoted, true)) && (excess = unquoted.indexOf(")", unquoted.length - excess) - unquoted.length)) { 824 match[0] = match[0].slice(0, excess); 825 match[2] = unquoted.slice(0, excess); 826 } 827 return match.slice(0, 3); 828 } 829 }, 830 filter: { 831 TAG: function(nodeNameSelector) { 832 var expectedNodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase(); 833 return nodeNameSelector === "*" ? function() { 834 return true; 835 } : function(elem) { 836 return nodeName(elem, expectedNodeName); 837 }; 838 }, 839 CLASS: function(className) { 840 var pattern = classCache[className + " "]; 841 return pattern || (pattern = new RegExp("(^|" + whitespace + ")" + className + "(" + whitespace + "|$)")) && classCache(className, function(elem) { 842 return pattern.test( 843 typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" 844 ); 845 }); 846 }, 847 ATTR: function(name2, operator, check) { 848 return function(elem) { 849 var result = find.attr(elem, name2); 850 if (result == null) { 851 return operator === "!="; 852 } 853 if (!operator) { 854 return true; 855 } 856 result += ""; 857 if (operator === "=") { 858 return result === check; 859 } 860 if (operator === "!=") { 861 return result !== check; 862 } 863 if (operator === "^=") { 864 return check && result.indexOf(check) === 0; 865 } 866 if (operator === "*=") { 867 return check && result.indexOf(check) > -1; 868 } 869 if (operator === "$=") { 870 return check && result.slice(-check.length) === check; 871 } 872 if (operator === "~=") { 873 return (" " + result.replace(rwhitespace, " ") + " ").indexOf(check) > -1; 874 } 875 if (operator === "|=") { 876 return result === check || result.slice(0, check.length + 1) === check + "-"; 877 } 878 return false; 879 }; 880 }, 881 CHILD: function(type2, what, _argument, first, last) { 882 var simple = type2.slice(0, 3) !== "nth", forward = type2.slice(-4) !== "last", ofType = what === "of-type"; 883 return first === 1 && last === 0 ? function(elem) { 884 return !!elem.parentNode; 885 } : function(elem, _context, xml) { 886 var cache2, outerCache, node, nodeIndex, start, dir2 = simple !== forward ? "nextSibling" : "previousSibling", parent = elem.parentNode, name2 = ofType && elem.nodeName.toLowerCase(), useCache = !xml && !ofType, diff = false; 887 if (parent) { 888 if (simple) { 889 while (dir2) { 890 node = elem; 891 while (node = node[dir2]) { 892 if (ofType ? nodeName(node, name2) : node.nodeType === 1) { 893 return false; 894 } 895 } 896 start = dir2 = type2 === "only" && !start && "nextSibling"; 897 } 898 return true; 899 } 900 start = [forward ? parent.firstChild : parent.lastChild]; 901 if (forward && useCache) { 902 outerCache = parent[expando] || (parent[expando] = {}); 903 cache2 = outerCache[type2] || []; 904 nodeIndex = cache2[0] === dirruns && cache2[1]; 905 diff = nodeIndex && cache2[2]; 906 node = nodeIndex && parent.childNodes[nodeIndex]; 907 while (node = ++nodeIndex && node && node[dir2] || (diff = nodeIndex = 0) || start.pop()) { 908 if (node.nodeType === 1 && ++diff && node === elem) { 909 outerCache[type2] = [dirruns, nodeIndex, diff]; 910 break; 911 } 912 } 913 } else { 914 if (useCache) { 915 outerCache = elem[expando] || (elem[expando] = {}); 916 cache2 = outerCache[type2] || []; 917 nodeIndex = cache2[0] === dirruns && cache2[1]; 918 diff = nodeIndex; 919 } 920 if (diff === false) { 921 while (node = ++nodeIndex && node && node[dir2] || (diff = nodeIndex = 0) || start.pop()) { 922 if ((ofType ? nodeName(node, name2) : node.nodeType === 1) && ++diff) { 923 if (useCache) { 924 outerCache = node[expando] || (node[expando] = {}); 925 outerCache[type2] = [dirruns, diff]; 926 } 927 if (node === elem) { 928 break; 929 } 930 } 931 } 932 } 933 } 934 diff -= last; 935 return diff === first || diff % first === 0 && diff / first >= 0; 936 } 937 }; 938 }, 939 PSEUDO: function(pseudo, argument) { 940 var args, fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || find.error("unsupported pseudo: " + pseudo); 941 if (fn[expando]) { 942 return fn(argument); 943 } 944 if (fn.length > 1) { 945 args = [pseudo, pseudo, "", argument]; 946 return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function(seed2, matches2) { 947 var idx, matched = fn(seed2, argument), i3 = matched.length; 948 while (i3--) { 949 idx = indexOf.call(seed2, matched[i3]); 950 seed2[idx] = !(matches2[idx] = matched[i3]); 951 } 952 }) : function(elem) { 953 return fn(elem, 0, args); 954 }; 955 } 956 return fn; 957 } 958 }, 959 pseudos: { 960 not: markFunction(function(selector) { 961 var input = [], results = [], matcher = compile(selector.replace(rtrimCSS, "$1")); 962 return matcher[expando] ? markFunction(function(seed2, matches2, _context, xml) { 963 var elem, unmatched = matcher(seed2, null, xml, []), i3 = seed2.length; 964 while (i3--) { 965 if (elem = unmatched[i3]) { 966 seed2[i3] = !(matches2[i3] = elem); 967 } 968 } 969 }) : function(elem, _context, xml) { 970 input[0] = elem; 971 matcher(input, null, xml, results); 972 input[0] = null; 973 return !results.pop(); 974 }; 975 }), 976 has: markFunction(function(selector) { 977 return function(elem) { 978 return find(selector, elem).length > 0; 979 }; 980 }), 981 contains: markFunction(function(text) { 982 text = text.replace(runescape, funescape); 983 return function(elem) { 984 return (elem.textContent || jQuery3.text(elem)).indexOf(text) > -1; 985 }; 986 }), 987 lang: markFunction(function(lang) { 988 if (!ridentifier.test(lang || "")) { 989 find.error("unsupported lang: " + lang); 990 } 991 lang = lang.replace(runescape, funescape).toLowerCase(); 992 return function(elem) { 993 var elemLang; 994 do { 995 if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute("xml:lang") || elem.getAttribute("lang")) { 996 elemLang = elemLang.toLowerCase(); 997 return elemLang === lang || elemLang.indexOf(lang + "-") === 0; 998 } 999 } while ((elem = elem.parentNode) && elem.nodeType === 1); 1000 return false; 1001 }; 1002 }), 1003 target: function(elem) { 1004 var hash = window2.location && window2.location.hash; 1005 return hash && hash.slice(1) === elem.id; 1006 }, 1007 root: function(elem) { 1008 return elem === documentElement2; 1009 }, 1010 focus: function(elem) { 1011 return elem === safeActiveElement() && document3.hasFocus() && !!(elem.type || elem.href || ~elem.tabIndex); 1012 }, 1013 enabled: createDisabledPseudo(false), 1014 disabled: createDisabledPseudo(true), 1015 checked: function(elem) { 1016 return nodeName(elem, "input") && !!elem.checked || nodeName(elem, "option") && !!elem.selected; 1017 }, 1018 selected: function(elem) { 1019 if (elem.parentNode) { 1020 elem.parentNode.selectedIndex; 1021 } 1022 return elem.selected === true; 1023 }, 1024 empty: function(elem) { 1025 for (elem = elem.firstChild; elem; elem = elem.nextSibling) { 1026 if (elem.nodeType < 6) { 1027 return false; 1028 } 1029 } 1030 return true; 1031 }, 1032 parent: function(elem) { 1033 return !Expr.pseudos.empty(elem); 1034 }, 1035 header: function(elem) { 1036 return rheader.test(elem.nodeName); 1037 }, 1038 input: function(elem) { 1039 return rinputs.test(elem.nodeName); 1040 }, 1041 button: function(elem) { 1042 return nodeName(elem, "input") && elem.type === "button" || nodeName(elem, "button"); 1043 }, 1044 text: function(elem) { 1045 var attr; 1046 return nodeName(elem, "input") && elem.type === "text" && ((attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text"); 1047 }, 1048 first: createPositionalPseudo(function() { 1049 return [0]; 1050 }), 1051 last: createPositionalPseudo(function(_matchIndexes, length2) { 1052 return [length2 - 1]; 1053 }), 1054 eq: createPositionalPseudo(function(_matchIndexes, length2, argument) { 1055 return [argument < 0 ? argument + length2 : argument]; 1056 }), 1057 even: createPositionalPseudo(function(matchIndexes, length2) { 1058 var i3 = 0; 1059 for (; i3 < length2; i3 += 2) { 1060 matchIndexes.push(i3); 1061 } 1062 return matchIndexes; 1063 }), 1064 odd: createPositionalPseudo(function(matchIndexes, length2) { 1065 var i3 = 1; 1066 for (; i3 < length2; i3 += 2) { 1067 matchIndexes.push(i3); 1068 } 1069 return matchIndexes; 1070 }), 1071 lt: createPositionalPseudo(function(matchIndexes, length2, argument) { 1072 var i3; 1073 if (argument < 0) { 1074 i3 = argument + length2; 1075 } else if (argument > length2) { 1076 i3 = length2; 1077 } else { 1078 i3 = argument; 1079 } 1080 for (; --i3 >= 0; ) { 1081 matchIndexes.push(i3); 1082 } 1083 return matchIndexes; 1084 }), 1085 gt: createPositionalPseudo(function(matchIndexes, length2, argument) { 1086 var i3 = argument < 0 ? argument + length2 : argument; 1087 for (; ++i3 < length2; ) { 1088 matchIndexes.push(i3); 1089 } 1090 return matchIndexes; 1091 }) 1092 } 1093 }; 1094 Expr.pseudos.nth = Expr.pseudos.eq; 1095 for (i2 in { radio: true, checkbox: true, file: true, password: true, image: true }) { 1096 Expr.pseudos[i2] = createInputPseudo(i2); 1097 } 1098 for (i2 in { submit: true, reset: true }) { 1099 Expr.pseudos[i2] = createButtonPseudo(i2); 1100 } 1101 function setFilters() { 1102 } 1103 setFilters.prototype = Expr.filters = Expr.pseudos; 1104 Expr.setFilters = new setFilters(); 1105 function tokenize(selector, parseOnly) { 1106 var matched, match, tokens, type2, soFar, groups, preFilters, cached = tokenCache[selector + " "]; 1107 if (cached) { 1108 return parseOnly ? 0 : cached.slice(0); 1109 } 1110 soFar = selector; 1111 groups = []; 1112 preFilters = Expr.preFilter; 1113 while (soFar) { 1114 if (!matched || (match = rcomma.exec(soFar))) { 1115 if (match) { 1116 soFar = soFar.slice(match[0].length) || soFar; 1117 } 1118 groups.push(tokens = []); 1119 } 1120 matched = false; 1121 if (match = rleadingCombinator.exec(soFar)) { 1122 matched = match.shift(); 1123 tokens.push({ 1124 value: matched, 1125 type: match[0].replace(rtrimCSS, " ") 1126 }); 1127 soFar = soFar.slice(matched.length); 1128 } 1129 for (type2 in Expr.filter) { 1130 if ((match = matchExpr[type2].exec(soFar)) && (!preFilters[type2] || (match = preFilters[type2](match)))) { 1131 matched = match.shift(); 1132 tokens.push({ 1133 value: matched, 1134 type: type2, 1135 matches: match 1136 }); 1137 soFar = soFar.slice(matched.length); 1138 } 1139 } 1140 if (!matched) { 1141 break; 1142 } 1143 } 1144 if (parseOnly) { 1145 return soFar.length; 1146 } 1147 return soFar ? find.error(selector) : tokenCache(selector, groups).slice(0); 1148 } 1149 function toSelector(tokens) { 1150 var i3 = 0, len = tokens.length, selector = ""; 1151 for (; i3 < len; i3++) { 1152 selector += tokens[i3].value; 1153 } 1154 return selector; 1155 } 1156 function addCombinator(matcher, combinator, base) { 1157 var dir2 = combinator.dir, skip = combinator.next, key = skip || dir2, checkNonElements = base && key === "parentNode", doneName = done++; 1158 return combinator.first ? function(elem, context, xml) { 1159 while (elem = elem[dir2]) { 1160 if (elem.nodeType === 1 || checkNonElements) { 1161 return matcher(elem, context, xml); 1162 } 1163 } 1164 return false; 1165 } : function(elem, context, xml) { 1166 var oldCache, outerCache, newCache = [dirruns, doneName]; 1167 if (xml) { 1168 while (elem = elem[dir2]) { 1169 if (elem.nodeType === 1 || checkNonElements) { 1170 if (matcher(elem, context, xml)) { 1171 return true; 1172 } 1173 } 1174 } 1175 } else { 1176 while (elem = elem[dir2]) { 1177 if (elem.nodeType === 1 || checkNonElements) { 1178 outerCache = elem[expando] || (elem[expando] = {}); 1179 if (skip && nodeName(elem, skip)) { 1180 elem = elem[dir2] || elem; 1181 } else if ((oldCache = outerCache[key]) && oldCache[0] === dirruns && oldCache[1] === doneName) { 1182 return newCache[2] = oldCache[2]; 1183 } else { 1184 outerCache[key] = newCache; 1185 if (newCache[2] = matcher(elem, context, xml)) { 1186 return true; 1187 } 1188 } 1189 } 1190 } 1191 } 1192 return false; 1193 }; 1194 } 1195 function elementMatcher(matchers) { 1196 return matchers.length > 1 ? function(elem, context, xml) { 1197 var i3 = matchers.length; 1198 while (i3--) { 1199 if (!matchers[i3](elem, context, xml)) { 1200 return false; 1201 } 1202 } 1203 return true; 1204 } : matchers[0]; 1205 } 1206 function multipleContexts(selector, contexts, results) { 1207 var i3 = 0, len = contexts.length; 1208 for (; i3 < len; i3++) { 1209 find(selector, contexts[i3], results); 1210 } 1211 return results; 1212 } 1213 function condense(unmatched, map2, filter, context, xml) { 1214 var elem, newUnmatched = [], i3 = 0, len = unmatched.length, mapped = map2 != null; 1215 for (; i3 < len; i3++) { 1216 if (elem = unmatched[i3]) { 1217 if (!filter || filter(elem, context, xml)) { 1218 newUnmatched.push(elem); 1219 if (mapped) { 1220 map2.push(i3); 1221 } 1222 } 1223 } 1224 } 1225 return newUnmatched; 1226 } 1227 function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) { 1228 if (postFilter && !postFilter[expando]) { 1229 postFilter = setMatcher(postFilter); 1230 } 1231 if (postFinder && !postFinder[expando]) { 1232 postFinder = setMatcher(postFinder, postSelector); 1233 } 1234 return markFunction(function(seed2, results, context, xml) { 1235 var temp, i3, elem, matcherOut, preMap = [], postMap = [], preexisting = results.length, elems = seed2 || multipleContexts( 1236 selector || "*", 1237 context.nodeType ? [context] : context, 1238 [] 1239 ), matcherIn = preFilter && (seed2 || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems; 1240 if (matcher) { 1241 matcherOut = postFinder || (seed2 ? preFilter : preexisting || postFilter) ? [] : results; 1242 matcher(matcherIn, matcherOut, context, xml); 1243 } else { 1244 matcherOut = matcherIn; 1245 } 1246 if (postFilter) { 1247 temp = condense(matcherOut, postMap); 1248 postFilter(temp, [], context, xml); 1249 i3 = temp.length; 1250 while (i3--) { 1251 if (elem = temp[i3]) { 1252 matcherOut[postMap[i3]] = !(matcherIn[postMap[i3]] = elem); 1253 } 1254 } 1255 } 1256 if (seed2) { 1257 if (postFinder || preFilter) { 1258 if (postFinder) { 1259 temp = []; 1260 i3 = matcherOut.length; 1261 while (i3--) { 1262 if (elem = matcherOut[i3]) { 1263 temp.push(matcherIn[i3] = elem); 1264 } 1265 } 1266 postFinder(null, matcherOut = [], temp, xml); 1267 } 1268 i3 = matcherOut.length; 1269 while (i3--) { 1270 if ((elem = matcherOut[i3]) && (temp = postFinder ? indexOf.call(seed2, elem) : preMap[i3]) > -1) { 1271 seed2[temp] = !(results[temp] = elem); 1272 } 1273 } 1274 } 1275 } else { 1276 matcherOut = condense( 1277 matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut 1278 ); 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[" "], i3 = leadingRelative ? 1 : 0, matchContext = addCombinator(function(elem) { 1289 return elem === checkContext; 1290 }, implicitRelative, true), matchAnyContext = addCombinator(function(elem) { 1291 return indexOf.call(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 (; i3 < len; i3++) { 1298 if (matcher = Expr.relative[tokens[i3].type]) { 1299 matchers = [addCombinator(elementMatcher(matchers), matcher)]; 1300 } else { 1301 matcher = Expr.filter[tokens[i3].type].apply(null, tokens[i3].matches); 1302 if (matcher[expando]) { 1303 j = ++i3; 1304 for (; j < len; j++) { 1305 if (Expr.relative[tokens[j].type]) { 1306 break; 1307 } 1308 } 1309 return setMatcher( 1310 i3 > 1 && elementMatcher(matchers), 1311 i3 > 1 && toSelector( 1312 tokens.slice(0, i3 - 1).concat({ value: tokens[i3 - 2].type === " " ? "*" : "" }) 1313 ).replace(rtrimCSS, "$1"), 1314 matcher, 1315 i3 < j && matcherFromTokens(tokens.slice(i3, j)), 1316 j < len && matcherFromTokens(tokens = tokens.slice(j)), 1317 j < len && toSelector(tokens) 1318 ); 1319 } 1320 matchers.push(matcher); 1321 } 1322 } 1323 return elementMatcher(matchers); 1324 } 1325 function matcherFromGroupMatchers(elementMatchers, setMatchers) { 1326 var bySet = setMatchers.length > 0, byElement = elementMatchers.length > 0, superMatcher = function(seed2, context, xml, results, outermost) { 1327 var elem, j, matcher, matchedCount = 0, i3 = "0", unmatched = seed2 && [], setMatched = [], contextBackup = outermostContext, elems = seed2 || byElement && Expr.find.TAG("*", outermost), dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1, len = elems.length; 1328 if (outermost) { 1329 outermostContext = context == document3 || context || outermost; 1330 } 1331 for (; i3 !== len && (elem = elems[i3]) != null; i3++) { 1332 if (byElement && elem) { 1333 j = 0; 1334 if (!context && elem.ownerDocument != document3) { 1335 setDocument(elem); 1336 xml = !documentIsHTML; 1337 } 1338 while (matcher = elementMatchers[j++]) { 1339 if (matcher(elem, context || document3, xml)) { 1340 push2.call(results, elem); 1341 break; 1342 } 1343 } 1344 if (outermost) { 1345 dirruns = dirrunsUnique; 1346 } 1347 } 1348 if (bySet) { 1349 if (elem = !matcher && elem) { 1350 matchedCount--; 1351 } 1352 if (seed2) { 1353 unmatched.push(elem); 1354 } 1355 } 1356 } 1357 matchedCount += i3; 1358 if (bySet && i3 !== matchedCount) { 1359 j = 0; 1360 while (matcher = setMatchers[j++]) { 1361 matcher(unmatched, setMatched, context, xml); 1362 } 1363 if (seed2) { 1364 if (matchedCount > 0) { 1365 while (i3--) { 1366 if (!(unmatched[i3] || setMatched[i3])) { 1367 setMatched[i3] = pop.call(results); 1368 } 1369 } 1370 } 1371 setMatched = condense(setMatched); 1372 } 1373 push2.apply(results, setMatched); 1374 if (outermost && !seed2 && setMatched.length > 0 && matchedCount + setMatchers.length > 1) { 1375 jQuery3.uniqueSort(results); 1376 } 1377 } 1378 if (outermost) { 1379 dirruns = dirrunsUnique; 1380 outermostContext = contextBackup; 1381 } 1382 return unmatched; 1383 }; 1384 return bySet ? markFunction(superMatcher) : superMatcher; 1385 } 1386 function compile(selector, match) { 1387 var i3, setMatchers = [], elementMatchers = [], cached = compilerCache[selector + " "]; 1388 if (!cached) { 1389 if (!match) { 1390 match = tokenize(selector); 1391 } 1392 i3 = match.length; 1393 while (i3--) { 1394 cached = matcherFromTokens(match[i3]); 1395 if (cached[expando]) { 1396 setMatchers.push(cached); 1397 } else { 1398 elementMatchers.push(cached); 1399 } 1400 } 1401 cached = compilerCache( 1402 selector, 1403 matcherFromGroupMatchers(elementMatchers, setMatchers) 1404 ); 1405 cached.selector = selector; 1406 } 1407 return cached; 1408 } 1409 function select(selector, context, results, seed2) { 1410 var i3, tokens, token, type2, find2, compiled = typeof selector === "function" && selector, match = !seed2 && tokenize(selector = compiled.selector || selector); 1411 results = results || []; 1412 if (match.length === 1) { 1413 tokens = match[0] = match[0].slice(0); 1414 if (tokens.length > 2 && (token = tokens[0]).type === "ID" && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) { 1415 context = (Expr.find.ID( 1416 token.matches[0].replace(runescape, funescape), 1417 context 1418 ) || [])[0]; 1419 if (!context) { 1420 return results; 1421 } else if (compiled) { 1422 context = context.parentNode; 1423 } 1424 selector = selector.slice(tokens.shift().value.length); 1425 } 1426 i3 = matchExpr.needsContext.test(selector) ? 0 : tokens.length; 1427 while (i3--) { 1428 token = tokens[i3]; 1429 if (Expr.relative[type2 = token.type]) { 1430 break; 1431 } 1432 if (find2 = Expr.find[type2]) { 1433 if (seed2 = find2( 1434 token.matches[0].replace(runescape, funescape), 1435 rsibling.test(tokens[0].type) && testContext(context.parentNode) || context 1436 )) { 1437 tokens.splice(i3, 1); 1438 selector = seed2.length && toSelector(tokens); 1439 if (!selector) { 1440 push2.apply(results, seed2); 1441 return results; 1442 } 1443 break; 1444 } 1445 } 1446 } 1447 } 1448 (compiled || compile(selector, match))( 1449 seed2, 1450 context, 1451 !documentIsHTML, 1452 results, 1453 !context || rsibling.test(selector) && testContext(context.parentNode) || context 1454 ); 1455 return results; 1456 } 1457 support.sortStable = expando.split("").sort(sortOrder).join("") === expando; 1458 setDocument(); 1459 support.sortDetached = assert(function(el) { 1460 return el.compareDocumentPosition(document3.createElement("fieldset")) & 1; 1461 }); 1462 jQuery3.find = find; 1463 jQuery3.expr[":"] = jQuery3.expr.pseudos; 1464 jQuery3.unique = jQuery3.uniqueSort; 1465 find.compile = compile; 1466 find.select = select; 1467 find.setDocument = setDocument; 1468 find.escape = jQuery3.escapeSelector; 1469 find.getText = jQuery3.text; 1470 find.isXML = jQuery3.isXMLDoc; 1471 find.selectors = jQuery3.expr; 1472 find.support = jQuery3.support; 1473 find.uniqueSort = jQuery3.uniqueSort; 1474 })(); 1475 var dir = function(elem, dir2, until) { 1476 var matched = [], truncate = until !== void 0; 1477 while ((elem = elem[dir2]) && elem.nodeType !== 9) { 1478 if (elem.nodeType === 1) { 1479 if (truncate && jQuery3(elem).is(until)) { 1480 break; 1481 } 1482 matched.push(elem); 1483 } 1484 } 1485 return matched; 1486 }; 1487 var siblings = function(n, elem) { 1488 var matched = []; 1489 for (; n; n = n.nextSibling) { 1490 if (n.nodeType === 1 && n !== elem) { 1491 matched.push(n); 1492 } 1493 } 1494 return matched; 1495 }; 1496 var rneedsContext = jQuery3.expr.match.needsContext; 1497 var rsingleTag = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; 1498 function winnow(elements, qualifier, not) { 1499 if (isFunction(qualifier)) { 1500 return jQuery3.grep(elements, function(elem, i2) { 1501 return !!qualifier.call(elem, i2, elem) !== not; 1502 }); 1503 } 1504 if (qualifier.nodeType) { 1505 return jQuery3.grep(elements, function(elem) { 1506 return elem === qualifier !== not; 1507 }); 1508 } 1509 if (typeof qualifier !== "string") { 1510 return jQuery3.grep(elements, function(elem) { 1511 return indexOf.call(qualifier, elem) > -1 !== not; 1512 }); 1513 } 1514 return jQuery3.filter(qualifier, elements, not); 1515 } 1516 jQuery3.filter = function(expr, elems, not) { 1517 var elem = elems[0]; 1518 if (not) { 1519 expr = ":not(" + expr + ")"; 1520 } 1521 if (elems.length === 1 && elem.nodeType === 1) { 1522 return jQuery3.find.matchesSelector(elem, expr) ? [elem] : []; 1523 } 1524 return jQuery3.find.matches(expr, jQuery3.grep(elems, function(elem2) { 1525 return elem2.nodeType === 1; 1526 })); 1527 }; 1528 jQuery3.fn.extend({ 1529 find: function(selector) { 1530 var i2, ret, len = this.length, self2 = this; 1531 if (typeof selector !== "string") { 1532 return this.pushStack(jQuery3(selector).filter(function() { 1533 for (i2 = 0; i2 < len; i2++) { 1534 if (jQuery3.contains(self2[i2], this)) { 1535 return true; 1536 } 1537 } 1538 })); 1539 } 1540 ret = this.pushStack([]); 1541 for (i2 = 0; i2 < len; i2++) { 1542 jQuery3.find(selector, self2[i2], ret); 1543 } 1544 return len > 1 ? jQuery3.uniqueSort(ret) : ret; 1545 }, 1546 filter: function(selector) { 1547 return this.pushStack(winnow(this, selector || [], false)); 1548 }, 1549 not: function(selector) { 1550 return this.pushStack(winnow(this, selector || [], true)); 1551 }, 1552 is: function(selector) { 1553 return !!winnow( 1554 this, 1555 typeof selector === "string" && rneedsContext.test(selector) ? jQuery3(selector) : selector || [], 1556 false 1557 ).length; 1558 } 1559 }); 1560 var rootjQuery, rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, init = jQuery3.fn.init = function(selector, context, root) { 1561 var match, elem; 1562 if (!selector) { 1563 return this; 1564 } 1565 root = root || rootjQuery; 1566 if (typeof selector === "string") { 1567 if (selector[0] === "<" && selector[selector.length - 1] === ">" && selector.length >= 3) { 1568 match = [null, selector, null]; 1569 } else { 1570 match = rquickExpr.exec(selector); 1571 } 1572 if (match && (match[1] || !context)) { 1573 if (match[1]) { 1574 context = context instanceof jQuery3 ? context[0] : context; 1575 jQuery3.merge(this, jQuery3.parseHTML( 1576 match[1], 1577 context && context.nodeType ? context.ownerDocument || context : document2, 1578 true 1579 )); 1580 if (rsingleTag.test(match[1]) && jQuery3.isPlainObject(context)) { 1581 for (match in context) { 1582 if (isFunction(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(selector); 1600 } else { 1601 return this.constructor(context).find(selector); 1602 } 1603 } else if (selector.nodeType) { 1604 this[0] = selector; 1605 this.length = 1; 1606 return this; 1607 } else if (isFunction(selector)) { 1608 return root.ready !== void 0 ? root.ready(selector) : selector(jQuery3); 1609 } 1610 return jQuery3.makeArray(selector, this); 1611 }; 1612 init.prototype = jQuery3.fn; 1613 rootjQuery = jQuery3(document2); 1614 var rparentsprev = /^(?:parents|prev(?:Until|All))/, guaranteedUnique = { 1615 children: true, 1616 contents: true, 1617 next: true, 1618 prev: true 1619 }; 1620 jQuery3.fn.extend({ 1621 has: function(target) { 1622 var targets = jQuery3(target, this), l = targets.length; 1623 return this.filter(function() { 1624 var i2 = 0; 1625 for (; i2 < l; i2++) { 1626 if (jQuery3.contains(this, targets[i2])) { 1627 return true; 1628 } 1629 } 1630 }); 1631 }, 1632 closest: function(selectors, context) { 1633 var cur, i2 = 0, l = this.length, matched = [], targets = typeof selectors !== "string" && jQuery3(selectors); 1634 if (!rneedsContext.test(selectors)) { 1635 for (; i2 < l; i2++) { 1636 for (cur = this[i2]; cur && cur !== context; cur = cur.parentNode) { 1637 if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 : cur.nodeType === 1 && jQuery3.find.matchesSelector(cur, selectors))) { 1638 matched.push(cur); 1639 break; 1640 } 1641 } 1642 } 1643 } 1644 return this.pushStack(matched.length > 1 ? jQuery3.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(jQuery3(elem), this[0]); 1652 } 1653 return indexOf.call( 1654 this, 1655 elem.jquery ? elem[0] : elem 1656 ); 1657 }, 1658 add: function(selector, context) { 1659 return this.pushStack( 1660 jQuery3.uniqueSort( 1661 jQuery3.merge(this.get(), jQuery3(selector, context)) 1662 ) 1663 ); 1664 }, 1665 addBack: function(selector) { 1666 return this.add( 1667 selector == null ? this.prevObject : this.prevObject.filter(selector) 1668 ); 1669 } 1670 }); 1671 function sibling(cur, dir2) { 1672 while ((cur = cur[dir2]) && cur.nodeType !== 1) { 1673 } 1674 return cur; 1675 } 1676 jQuery3.each({ 1677 parent: function(elem) { 1678 var parent = elem.parentNode; 1679 return parent && parent.nodeType !== 11 ? parent : null; 1680 }, 1681 parents: function(elem) { 1682 return dir(elem, "parentNode"); 1683 }, 1684 parentsUntil: function(elem, _i, until) { 1685 return dir(elem, "parentNode", until); 1686 }, 1687 next: function(elem) { 1688 return sibling(elem, "nextSibling"); 1689 }, 1690 prev: function(elem) { 1691 return sibling(elem, "previousSibling"); 1692 }, 1693 nextAll: function(elem) { 1694 return dir(elem, "nextSibling"); 1695 }, 1696 prevAll: function(elem) { 1697 return dir(elem, "previousSibling"); 1698 }, 1699 nextUntil: function(elem, _i, until) { 1700 return dir(elem, "nextSibling", until); 1701 }, 1702 prevUntil: function(elem, _i, until) { 1703 return dir(elem, "previousSibling", until); 1704 }, 1705 siblings: function(elem) { 1706 return siblings((elem.parentNode || {}).firstChild, elem); 1707 }, 1708 children: function(elem) { 1709 return siblings(elem.firstChild); 1710 }, 1711 contents: function(elem) { 1712 if (elem.contentDocument != null && getProto(elem.contentDocument)) { 1713 return elem.contentDocument; 1714 } 1715 if (nodeName(elem, "template")) { 1716 elem = elem.content || elem; 1717 } 1718 return jQuery3.merge([], elem.childNodes); 1719 } 1720 }, function(name2, fn) { 1721 jQuery3.fn[name2] = function(until, selector) { 1722 var matched = jQuery3.map(this, fn, until); 1723 if (name2.slice(-5) !== "Until") { 1724 selector = until; 1725 } 1726 if (selector && typeof selector === "string") { 1727 matched = jQuery3.filter(selector, matched); 1728 } 1729 if (this.length > 1) { 1730 if (!guaranteedUnique[name2]) { 1731 jQuery3.uniqueSort(matched); 1732 } 1733 if (rparentsprev.test(name2)) { 1734 matched.reverse(); 1735 } 1736 } 1737 return this.pushStack(matched); 1738 }; 1739 }); 1740 var rnothtmlwhite = /[^\x20\t\r\n\f]+/g; 1741 function createOptions(options) { 1742 var object = {}; 1743 jQuery3.each(options.match(rnothtmlwhite) || [], function(_, flag) { 1744 object[flag] = true; 1745 }); 1746 return object; 1747 } 1748 jQuery3.Callbacks = function(options) { 1749 options = typeof options === "string" ? createOptions(options) : jQuery3.extend({}, options); 1750 var firing, memory, fired, locked, list = [], queue = [], firingIndex = -1, fire = function() { 1751 locked = locked || options.once; 1752 fired = firing = true; 1753 for (; queue.length; firingIndex = -1) { 1754 memory = queue.shift(); 1755 while (++firingIndex < list.length) { 1756 if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) { 1757 firingIndex = list.length; 1758 memory = false; 1759 } 1760 } 1761 } 1762 if (!options.memory) { 1763 memory = false; 1764 } 1765 firing = false; 1766 if (locked) { 1767 if (memory) { 1768 list = []; 1769 } else { 1770 list = ""; 1771 } 1772 } 1773 }, self2 = { 1774 add: function() { 1775 if (list) { 1776 if (memory && !firing) { 1777 firingIndex = list.length - 1; 1778 queue.push(memory); 1779 } 1780 (function add(args) { 1781 jQuery3.each(args, function(_, arg) { 1782 if (isFunction(arg)) { 1783 if (!options.unique || !self2.has(arg)) { 1784 list.push(arg); 1785 } 1786 } else if (arg && arg.length && toType(arg) !== "string") { 1787 add(arg); 1788 } 1789 }); 1790 })(arguments); 1791 if (memory && !firing) { 1792 fire(); 1793 } 1794 } 1795 return this; 1796 }, 1797 remove: function() { 1798 jQuery3.each(arguments, function(_, arg) { 1799 var index; 1800 while ((index = jQuery3.inArray(arg, list, index)) > -1) { 1801 list.splice(index, 1); 1802 if (index <= firingIndex) { 1803 firingIndex--; 1804 } 1805 } 1806 }); 1807 return this; 1808 }, 1809 has: function(fn) { 1810 return fn ? jQuery3.inArray(fn, list) > -1 : list.length > 0; 1811 }, 1812 empty: function() { 1813 if (list) { 1814 list = []; 1815 } 1816 return this; 1817 }, 1818 disable: function() { 1819 locked = queue = []; 1820 list = memory = ""; 1821 return this; 1822 }, 1823 disabled: function() { 1824 return !list; 1825 }, 1826 lock: function() { 1827 locked = queue = []; 1828 if (!memory && !firing) { 1829 list = memory = ""; 1830 } 1831 return this; 1832 }, 1833 locked: function() { 1834 return !!locked; 1835 }, 1836 fireWith: function(context, args) { 1837 if (!locked) { 1838 args = args || []; 1839 args = [context, args.slice ? args.slice() : args]; 1840 queue.push(args); 1841 if (!firing) { 1842 fire(); 1843 } 1844 } 1845 return this; 1846 }, 1847 fire: function() { 1848 self2.fireWith(this, arguments); 1849 return this; 1850 }, 1851 fired: function() { 1852 return !!fired; 1853 } 1854 }; 1855 return self2; 1856 }; 1857 function Identity(v) { 1858 return v; 1859 } 1860 function Thrower(ex) { 1861 throw ex; 1862 } 1863 function adoptValue(value2, resolve, reject, noValue) { 1864 var method; 1865 try { 1866 if (value2 && isFunction(method = value2.promise)) { 1867 method.call(value2).done(resolve).fail(reject); 1868 } else if (value2 && isFunction(method = value2.then)) { 1869 method.call(value2, resolve, reject); 1870 } else { 1871 resolve.apply(void 0, [value2].slice(noValue)); 1872 } 1873 } catch (value3) { 1874 reject.apply(void 0, [value3]); 1875 } 1876 } 1877 jQuery3.extend({ 1878 Deferred: function(func) { 1879 var tuples = [ 1880 [ 1881 "notify", 1882 "progress", 1883 jQuery3.Callbacks("memory"), 1884 jQuery3.Callbacks("memory"), 1885 2 1886 ], 1887 [ 1888 "resolve", 1889 "done", 1890 jQuery3.Callbacks("once memory"), 1891 jQuery3.Callbacks("once memory"), 1892 0, 1893 "resolved" 1894 ], 1895 [ 1896 "reject", 1897 "fail", 1898 jQuery3.Callbacks("once memory"), 1899 jQuery3.Callbacks("once memory"), 1900 1, 1901 "rejected" 1902 ] 1903 ], state = "pending", promise = { 1904 state: function() { 1905 return state; 1906 }, 1907 always: function() { 1908 deferred.done(arguments).fail(arguments); 1909 return this; 1910 }, 1911 "catch": function(fn) { 1912 return promise.then(null, fn); 1913 }, 1914 pipe: function() { 1915 var fns = arguments; 1916 return jQuery3.Deferred(function(newDefer) { 1917 jQuery3.each(tuples, function(_i, tuple) { 1918 var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]]; 1919 deferred[tuple[1]](function() { 1920 var returned = fn && fn.apply(this, arguments); 1921 if (returned && isFunction(returned.promise)) { 1922 returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject); 1923 } else { 1924 newDefer[tuple[0] + "With"]( 1925 this, 1926 fn ? [returned] : arguments 1927 ); 1928 } 1929 }); 1930 }); 1931 fns = null; 1932 }).promise(); 1933 }, 1934 then: function(onFulfilled, onRejected, onProgress) { 1935 var maxDepth = 0; 1936 function resolve(depth, deferred2, handler, special) { 1937 return function() { 1938 var that = this, args = arguments, mightThrow = function() { 1939 var returned, then; 1940 if (depth < maxDepth) { 1941 return; 1942 } 1943 returned = handler.apply(that, args); 1944 if (returned === deferred2.promise()) { 1945 throw new TypeError("Thenable self-resolution"); 1946 } 1947 then = returned && (typeof returned === "object" || typeof returned === "function") && returned.then; 1948 if (isFunction(then)) { 1949 if (special) { 1950 then.call( 1951 returned, 1952 resolve(maxDepth, deferred2, Identity, special), 1953 resolve(maxDepth, deferred2, Thrower, special) 1954 ); 1955 } else { 1956 maxDepth++; 1957 then.call( 1958 returned, 1959 resolve(maxDepth, deferred2, Identity, special), 1960 resolve(maxDepth, deferred2, Thrower, special), 1961 resolve( 1962 maxDepth, 1963 deferred2, 1964 Identity, 1965 deferred2.notifyWith 1966 ) 1967 ); 1968 } 1969 } else { 1970 if (handler !== Identity) { 1971 that = void 0; 1972 args = [returned]; 1973 } 1974 (special || deferred2.resolveWith)(that, args); 1975 } 1976 }, process = special ? mightThrow : function() { 1977 try { 1978 mightThrow(); 1979 } catch (e) { 1980 if (jQuery3.Deferred.exceptionHook) { 1981 jQuery3.Deferred.exceptionHook( 1982 e, 1983 process.error 1984 ); 1985 } 1986 if (depth + 1 >= maxDepth) { 1987 if (handler !== Thrower) { 1988 that = void 0; 1989 args = [e]; 1990 } 1991 deferred2.rejectWith(that, args); 1992 } 1993 } 1994 }; 1995 if (depth) { 1996 process(); 1997 } else { 1998 if (jQuery3.Deferred.getErrorHook) { 1999 process.error = jQuery3.Deferred.getErrorHook(); 2000 } else if (jQuery3.Deferred.getStackHook) { 2001 process.error = jQuery3.Deferred.getStackHook(); 2002 } 2003 window2.setTimeout(process); 2004 } 2005 }; 2006 } 2007 return jQuery3.Deferred(function(newDefer) { 2008 tuples[0][3].add( 2009 resolve( 2010 0, 2011 newDefer, 2012 isFunction(onProgress) ? onProgress : Identity, 2013 newDefer.notifyWith 2014 ) 2015 ); 2016 tuples[1][3].add( 2017 resolve( 2018 0, 2019 newDefer, 2020 isFunction(onFulfilled) ? onFulfilled : Identity 2021 ) 2022 ); 2023 tuples[2][3].add( 2024 resolve( 2025 0, 2026 newDefer, 2027 isFunction(onRejected) ? onRejected : Thrower 2028 ) 2029 ); 2030 }).promise(); 2031 }, 2032 promise: function(obj) { 2033 return obj != null ? jQuery3.extend(obj, promise) : promise; 2034 } 2035 }, deferred = {}; 2036 jQuery3.each(tuples, function(i2, tuple) { 2037 var list = tuple[2], stateString = tuple[5]; 2038 promise[tuple[1]] = list.add; 2039 if (stateString) { 2040 list.add( 2041 function() { 2042 state = stateString; 2043 }, 2044 tuples[3 - i2][2].disable, 2045 tuples[3 - i2][3].disable, 2046 tuples[0][2].lock, 2047 tuples[0][3].lock 2048 ); 2049 } 2050 list.add(tuple[3].fire); 2051 deferred[tuple[0]] = function() { 2052 deferred[tuple[0] + "With"](this === deferred ? void 0 : this, arguments); 2053 return this; 2054 }; 2055 deferred[tuple[0] + "With"] = list.fireWith; 2056 }); 2057 promise.promise(deferred); 2058 if (func) { 2059 func.call(deferred, deferred); 2060 } 2061 return deferred; 2062 }, 2063 when: function(singleValue) { 2064 var remaining = arguments.length, i2 = remaining, resolveContexts = Array(i2), resolveValues = slice.call(arguments), primary = jQuery3.Deferred(), updateFunc = function(i3) { 2065 return function(value2) { 2066 resolveContexts[i3] = this; 2067 resolveValues[i3] = arguments.length > 1 ? slice.call(arguments) : value2; 2068 if (!--remaining) { 2069 primary.resolveWith(resolveContexts, resolveValues); 2070 } 2071 }; 2072 }; 2073 if (remaining <= 1) { 2074 adoptValue( 2075 singleValue, 2076 primary.done(updateFunc(i2)).resolve, 2077 primary.reject, 2078 !remaining 2079 ); 2080 if (primary.state() === "pending" || isFunction(resolveValues[i2] && resolveValues[i2].then)) { 2081 return primary.then(); 2082 } 2083 } 2084 while (i2--) { 2085 adoptValue(resolveValues[i2], updateFunc(i2), primary.reject); 2086 } 2087 return primary.promise(); 2088 } 2089 }); 2090 var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; 2091 jQuery3.Deferred.exceptionHook = function(error, asyncError) { 2092 if (window2.console && window2.console.warn && error && rerrorNames.test(error.name)) { 2093 window2.console.warn( 2094 "jQuery.Deferred exception: " + error.message, 2095 error.stack, 2096 asyncError 2097 ); 2098 } 2099 }; 2100 jQuery3.readyException = function(error) { 2101 window2.setTimeout(function() { 2102 throw error; 2103 }); 2104 }; 2105 var readyList = jQuery3.Deferred(); 2106 jQuery3.fn.ready = function(fn) { 2107 readyList.then(fn).catch(function(error) { 2108 jQuery3.readyException(error); 2109 }); 2110 return this; 2111 }; 2112 jQuery3.extend({ 2113 isReady: false, 2114 readyWait: 1, 2115 ready: function(wait) { 2116 if (wait === true ? --jQuery3.readyWait : jQuery3.isReady) { 2117 return; 2118 } 2119 jQuery3.isReady = true; 2120 if (wait !== true && --jQuery3.readyWait > 0) { 2121 return; 2122 } 2123 readyList.resolveWith(document2, [jQuery3]); 2124 } 2125 }); 2126 jQuery3.ready.then = readyList.then; 2127 function completed() { 2128 document2.removeEventListener("DOMContentLoaded", completed); 2129 window2.removeEventListener("load", completed); 2130 jQuery3.ready(); 2131 } 2132 if (document2.readyState === "complete" || document2.readyState !== "loading" && !document2.documentElement.doScroll) { 2133 window2.setTimeout(jQuery3.ready); 2134 } else { 2135 document2.addEventListener("DOMContentLoaded", completed); 2136 window2.addEventListener("load", completed); 2137 } 2138 var access = function(elems, fn, key, value2, chainable, emptyGet, raw) { 2139 var i2 = 0, len = elems.length, bulk = key == null; 2140 if (toType(key) === "object") { 2141 chainable = true; 2142 for (i2 in key) { 2143 access(elems, fn, i2, key[i2], true, emptyGet, raw); 2144 } 2145 } else if (value2 !== void 0) { 2146 chainable = true; 2147 if (!isFunction(value2)) { 2148 raw = true; 2149 } 2150 if (bulk) { 2151 if (raw) { 2152 fn.call(elems, value2); 2153 fn = null; 2154 } else { 2155 bulk = fn; 2156 fn = function(elem, _key, value3) { 2157 return bulk.call(jQuery3(elem), value3); 2158 }; 2159 } 2160 } 2161 if (fn) { 2162 for (; i2 < len; i2++) { 2163 fn( 2164 elems[i2], 2165 key, 2166 raw ? value2 : value2.call(elems[i2], i2, fn(elems[i2], key)) 2167 ); 2168 } 2169 } 2170 } 2171 if (chainable) { 2172 return elems; 2173 } 2174 if (bulk) { 2175 return fn.call(elems); 2176 } 2177 return len ? fn(elems[0], key) : emptyGet; 2178 }; 2179 var rmsPrefix = /^-ms-/, rdashAlpha = /-([a-z])/g; 2180 function fcamelCase(_all, letter) { 2181 return letter.toUpperCase(); 2182 } 2183 function camelCase(string) { 2184 return string.replace(rmsPrefix, "ms-").replace(rdashAlpha, fcamelCase); 2185 } 2186 var acceptData = function(owner) { 2187 return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType; 2188 }; 2189 function Data() { 2190 this.expando = jQuery3.expando + Data.uid++; 2191 } 2192 Data.uid = 1; 2193 Data.prototype = { 2194 cache: function(owner) { 2195 var value2 = owner[this.expando]; 2196 if (!value2) { 2197 value2 = {}; 2198 if (acceptData(owner)) { 2199 if (owner.nodeType) { 2200 owner[this.expando] = value2; 2201 } else { 2202 Object.defineProperty(owner, this.expando, { 2203 value: value2, 2204 configurable: true 2205 }); 2206 } 2207 } 2208 } 2209 return value2; 2210 }, 2211 set: function(owner, data, value2) { 2212 var prop, cache2 = this.cache(owner); 2213 if (typeof data === "string") { 2214 cache2[camelCase(data)] = value2; 2215 } else { 2216 for (prop in data) { 2217 cache2[camelCase(prop)] = data[prop]; 2218 } 2219 } 2220 return cache2; 2221 }, 2222 get: function(owner, key) { 2223 return key === void 0 ? this.cache(owner) : owner[this.expando] && owner[this.expando][camelCase(key)]; 2224 }, 2225 access: function(owner, key, value2) { 2226 if (key === void 0 || key && typeof key === "string" && value2 === void 0) { 2227 return this.get(owner, key); 2228 } 2229 this.set(owner, key, value2); 2230 return value2 !== void 0 ? value2 : key; 2231 }, 2232 remove: function(owner, key) { 2233 var i2, cache2 = owner[this.expando]; 2234 if (cache2 === void 0) { 2235 return; 2236 } 2237 if (key !== void 0) { 2238 if (Array.isArray(key)) { 2239 key = key.map(camelCase); 2240 } else { 2241 key = camelCase(key); 2242 key = key in cache2 ? [key] : key.match(rnothtmlwhite) || []; 2243 } 2244 i2 = key.length; 2245 while (i2--) { 2246 delete cache2[key[i2]]; 2247 } 2248 } 2249 if (key === void 0 || jQuery3.isEmptyObject(cache2)) { 2250 if (owner.nodeType) { 2251 owner[this.expando] = void 0; 2252 } else { 2253 delete owner[this.expando]; 2254 } 2255 } 2256 }, 2257 hasData: function(owner) { 2258 var cache2 = owner[this.expando]; 2259 return cache2 !== void 0 && !jQuery3.isEmptyObject(cache2); 2260 } 2261 }; 2262 var dataPriv = new Data(); 2263 var dataUser = new Data(); 2264 var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, rmultiDash = /[A-Z]/g; 2265 function getData(data) { 2266 if (data === "true") { 2267 return true; 2268 } 2269 if (data === "false") { 2270 return false; 2271 } 2272 if (data === "null") { 2273 return null; 2274 } 2275 if (data === +data + "") { 2276 return +data; 2277 } 2278 if (rbrace.test(data)) { 2279 return JSON.parse(data); 2280 } 2281 return data; 2282 } 2283 function dataAttr(elem, key, data) { 2284 var name2; 2285 if (data === void 0 && elem.nodeType === 1) { 2286 name2 = "data-" + key.replace(rmultiDash, "-$&").toLowerCase(); 2287 data = elem.getAttribute(name2); 2288 if (typeof data === "string") { 2289 try { 2290 data = getData(data); 2291 } catch (e) { 2292 } 2293 dataUser.set(elem, key, data); 2294 } else { 2295 data = void 0; 2296 } 2297 } 2298 return data; 2299 } 2300 jQuery3.extend({ 2301 hasData: function(elem) { 2302 return dataUser.hasData(elem) || dataPriv.hasData(elem); 2303 }, 2304 data: function(elem, name2, data) { 2305 return dataUser.access(elem, name2, data); 2306 }, 2307 removeData: function(elem, name2) { 2308 dataUser.remove(elem, name2); 2309 }, 2310 _data: function(elem, name2, data) { 2311 return dataPriv.access(elem, name2, data); 2312 }, 2313 _removeData: function(elem, name2) { 2314 dataPriv.remove(elem, name2); 2315 } 2316 }); 2317 jQuery3.fn.extend({ 2318 data: function(key, value2) { 2319 var i2, name2, data, elem = this[0], attrs = elem && elem.attributes; 2320 if (key === void 0) { 2321 if (this.length) { 2322 data = dataUser.get(elem); 2323 if (elem.nodeType === 1 && !dataPriv.get(elem, "hasDataAttrs")) { 2324 i2 = attrs.length; 2325 while (i2--) { 2326 if (attrs[i2]) { 2327 name2 = attrs[i2].name; 2328 if (name2.indexOf("data-") === 0) { 2329 name2 = camelCase(name2.slice(5)); 2330 dataAttr(elem, name2, data[name2]); 2331 } 2332 } 2333 } 2334 dataPriv.set(elem, "hasDataAttrs", true); 2335 } 2336 } 2337 return data; 2338 } 2339 if (typeof key === "object") { 2340 return this.each(function() { 2341 dataUser.set(this, key); 2342 }); 2343 } 2344 return access(this, function(value3) { 2345 var data2; 2346 if (elem && value3 === void 0) { 2347 data2 = dataUser.get(elem, key); 2348 if (data2 !== void 0) { 2349 return data2; 2350 } 2351 data2 = dataAttr(elem, key); 2352 if (data2 !== void 0) { 2353 return data2; 2354 } 2355 return; 2356 } 2357 this.each(function() { 2358 dataUser.set(this, key, value3); 2359 }); 2360 }, null, value2, arguments.length > 1, null, true); 2361 }, 2362 removeData: function(key) { 2363 return this.each(function() { 2364 dataUser.remove(this, key); 2365 }); 2366 } 2367 }); 2368 jQuery3.extend({ 2369 queue: function(elem, type2, data) { 2370 var queue; 2371 if (elem) { 2372 type2 = (type2 || "fx") + "queue"; 2373 queue = dataPriv.get(elem, type2); 2374 if (data) { 2375 if (!queue || Array.isArray(data)) { 2376 queue = dataPriv.access(elem, type2, jQuery3.makeArray(data)); 2377 } else { 2378 queue.push(data); 2379 } 2380 } 2381 return queue || []; 2382 } 2383 }, 2384 dequeue: function(elem, type2) { 2385 type2 = type2 || "fx"; 2386 var queue = jQuery3.queue(elem, type2), startLength = queue.length, fn = queue.shift(), hooks = jQuery3._queueHooks(elem, type2), next = function() { 2387 jQuery3.dequeue(elem, type2); 2388 }; 2389 if (fn === "inprogress") { 2390 fn = queue.shift(); 2391 startLength--; 2392 } 2393 if (fn) { 2394 if (type2 === "fx") { 2395 queue.unshift("inprogress"); 2396 } 2397 delete hooks.stop; 2398 fn.call(elem, next, hooks); 2399 } 2400 if (!startLength && hooks) { 2401 hooks.empty.fire(); 2402 } 2403 }, 2404 _queueHooks: function(elem, type2) { 2405 var key = type2 + "queueHooks"; 2406 return dataPriv.get(elem, key) || dataPriv.access(elem, key, { 2407 empty: jQuery3.Callbacks("once memory").add(function() { 2408 dataPriv.remove(elem, [type2 + "queue", key]); 2409 }) 2410 }); 2411 } 2412 }); 2413 jQuery3.fn.extend({ 2414 queue: function(type2, data) { 2415 var setter = 2; 2416 if (typeof type2 !== "string") { 2417 data = type2; 2418 type2 = "fx"; 2419 setter--; 2420 } 2421 if (arguments.length < setter) { 2422 return jQuery3.queue(this[0], type2); 2423 } 2424 return data === void 0 ? this : this.each(function() { 2425 var queue = jQuery3.queue(this, type2, data); 2426 jQuery3._queueHooks(this, type2); 2427 if (type2 === "fx" && queue[0] !== "inprogress") { 2428 jQuery3.dequeue(this, type2); 2429 } 2430 }); 2431 }, 2432 dequeue: function(type2) { 2433 return this.each(function() { 2434 jQuery3.dequeue(this, type2); 2435 }); 2436 }, 2437 clearQueue: function(type2) { 2438 return this.queue(type2 || "fx", []); 2439 }, 2440 promise: function(type2, obj) { 2441 var tmp, count = 1, defer = jQuery3.Deferred(), elements = this, i2 = this.length, resolve = function() { 2442 if (!--count) { 2443 defer.resolveWith(elements, [elements]); 2444 } 2445 }; 2446 if (typeof type2 !== "string") { 2447 obj = type2; 2448 type2 = void 0; 2449 } 2450 type2 = type2 || "fx"; 2451 while (i2--) { 2452 tmp = dataPriv.get(elements[i2], type2 + "queueHooks"); 2453 if (tmp && tmp.empty) { 2454 count++; 2455 tmp.empty.add(resolve); 2456 } 2457 } 2458 resolve(); 2459 return defer.promise(obj); 2460 } 2461 }); 2462 var pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source; 2463 var rcssNum = new RegExp("^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i"); 2464 var cssExpand = ["Top", "Right", "Bottom", "Left"]; 2465 var documentElement = document2.documentElement; 2466 var isAttached = function(elem) { 2467 return jQuery3.contains(elem.ownerDocument, elem); 2468 }, composed = { composed: true }; 2469 if (documentElement.getRootNode) { 2470 isAttached = function(elem) { 2471 return jQuery3.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument; 2472 }; 2473 } 2474 var isHiddenWithinTree = function(elem, el) { 2475 elem = el || elem; 2476 return elem.style.display === "none" || elem.style.display === "" && isAttached(elem) && jQuery3.css(elem, "display") === "none"; 2477 }; 2478 function adjustCSS(elem, prop, valueParts, tween) { 2479 var adjusted, scale, maxIterations = 20, currentValue = tween ? function() { 2480 return tween.cur(); 2481 } : function() { 2482 return jQuery3.css(elem, prop, ""); 2483 }, initial = currentValue(), unit = valueParts && valueParts[3] || (jQuery3.cssNumber[prop] ? "" : "px"), initialInUnit = elem.nodeType && (jQuery3.cssNumber[prop] || unit !== "px" && +initial) && rcssNum.exec(jQuery3.css(elem, prop)); 2484 if (initialInUnit && initialInUnit[3] !== unit) { 2485 initial = initial / 2; 2486 unit = unit || initialInUnit[3]; 2487 initialInUnit = +initial || 1; 2488 while (maxIterations--) { 2489 jQuery3.style(elem, prop, initialInUnit + unit); 2490 if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) { 2491 maxIterations = 0; 2492 } 2493 initialInUnit = initialInUnit / scale; 2494 } 2495 initialInUnit = initialInUnit * 2; 2496 jQuery3.style(elem, prop, initialInUnit + unit); 2497 valueParts = valueParts || []; 2498 } 2499 if (valueParts) { 2500 initialInUnit = +initialInUnit || +initial || 0; 2501 adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2]; 2502 if (tween) { 2503 tween.unit = unit; 2504 tween.start = initialInUnit; 2505 tween.end = adjusted; 2506 } 2507 } 2508 return adjusted; 2509 } 2510 var defaultDisplayMap = {}; 2511 function getDefaultDisplay(elem) { 2512 var temp, doc = elem.ownerDocument, nodeName2 = elem.nodeName, display = defaultDisplayMap[nodeName2]; 2513 if (display) { 2514 return display; 2515 } 2516 temp = doc.body.appendChild(doc.createElement(nodeName2)); 2517 display = jQuery3.css(temp, "display"); 2518 temp.parentNode.removeChild(temp); 2519 if (display === "none") { 2520 display = "block"; 2521 } 2522 defaultDisplayMap[nodeName2] = display; 2523 return display; 2524 } 2525 function showHide(elements, show) { 2526 var display, elem, values = [], index = 0, length2 = elements.length; 2527 for (; index < length2; index++) { 2528 elem = elements[index]; 2529 if (!elem.style) { 2530 continue; 2531 } 2532 display = elem.style.display; 2533 if (show) { 2534 if (display === "none") { 2535 values[index] = dataPriv.get(elem, "display") || null; 2536 if (!values[index]) { 2537 elem.style.display = ""; 2538 } 2539 } 2540 if (elem.style.display === "" && isHiddenWithinTree(elem)) { 2541 values[index] = getDefaultDisplay(elem); 2542 } 2543 } else { 2544 if (display !== "none") { 2545 values[index] = "none"; 2546 dataPriv.set(elem, "display", display); 2547 } 2548 } 2549 } 2550 for (index = 0; index < length2; index++) { 2551 if (values[index] != null) { 2552 elements[index].style.display = values[index]; 2553 } 2554 } 2555 return elements; 2556 } 2557 jQuery3.fn.extend({ 2558 show: function() { 2559 return showHide(this, true); 2560 }, 2561 hide: function() { 2562 return showHide(this); 2563 }, 2564 toggle: function(state) { 2565 if (typeof state === "boolean") { 2566 return state ? this.show() : this.hide(); 2567 } 2568 return this.each(function() { 2569 if (isHiddenWithinTree(this)) { 2570 jQuery3(this).show(); 2571 } else { 2572 jQuery3(this).hide(); 2573 } 2574 }); 2575 } 2576 }); 2577 var rcheckableType = /^(?:checkbox|radio)$/i; 2578 var rtagName = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i; 2579 var rscriptType = /^$|^module$|\/(?:java|ecma)script/i; 2580 (function() { 2581 var fragment = document2.createDocumentFragment(), div = fragment.appendChild(document2.createElement("div")), input = document2.createElement("input"); 2582 input.setAttribute("type", "radio"); 2583 input.setAttribute("checked", "checked"); 2584 input.setAttribute("name", "t"); 2585 div.appendChild(input); 2586 support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked; 2587 div.innerHTML = "<textarea>x</textarea>"; 2588 support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue; 2589 div.innerHTML = "<option></option>"; 2590 support.option = !!div.lastChild; 2591 })(); 2592 var wrapMap = { 2593 thead: [1, "<table>", "</table>"], 2594 col: [2, "<table><colgroup>", "</colgroup></table>"], 2595 tr: [2, "<table><tbody>", "</tbody></table>"], 2596 td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], 2597 _default: [0, "", ""] 2598 }; 2599 wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; 2600 wrapMap.th = wrapMap.td; 2601 if (!support.option) { 2602 wrapMap.optgroup = wrapMap.option = [1, "<select multiple='multiple'>", "</select>"]; 2603 } 2604 function getAll(context, tag) { 2605 var ret; 2606 if (typeof context.getElementsByTagName !== "undefined") { 2607 ret = context.getElementsByTagName(tag || "*"); 2608 } else if (typeof context.querySelectorAll !== "undefined") { 2609 ret = context.querySelectorAll(tag || "*"); 2610 } else { 2611 ret = []; 2612 } 2613 if (tag === void 0 || tag && nodeName(context, tag)) { 2614 return jQuery3.merge([context], ret); 2615 } 2616 return ret; 2617 } 2618 function setGlobalEval(elems, refElements) { 2619 var i2 = 0, l = elems.length; 2620 for (; i2 < l; i2++) { 2621 dataPriv.set( 2622 elems[i2], 2623 "globalEval", 2624 !refElements || dataPriv.get(refElements[i2], "globalEval") 2625 ); 2626 } 2627 } 2628 var rhtml = /<|&#?\w+;/; 2629 function buildFragment(elems, context, scripts, selection, ignored) { 2630 var elem, tmp, tag, wrap, attached, j, fragment = context.createDocumentFragment(), nodes = [], i2 = 0, l = elems.length; 2631 for (; i2 < l; i2++) { 2632 elem = elems[i2]; 2633 if (elem || elem === 0) { 2634 if (toType(elem) === "object") { 2635 jQuery3.merge(nodes, elem.nodeType ? [elem] : elem); 2636 } else if (!rhtml.test(elem)) { 2637 nodes.push(context.createTextNode(elem)); 2638 } else { 2639 tmp = tmp || fragment.appendChild(context.createElement("div")); 2640 tag = (rtagName.exec(elem) || ["", ""])[1].toLowerCase(); 2641 wrap = wrapMap[tag] || wrapMap._default; 2642 tmp.innerHTML = wrap[1] + jQuery3.htmlPrefilter(elem) + wrap[2]; 2643 j = wrap[0]; 2644 while (j--) { 2645 tmp = tmp.lastChild; 2646 } 2647 jQuery3.merge(nodes, tmp.childNodes); 2648 tmp = fragment.firstChild; 2649 tmp.textContent = ""; 2650 } 2651 } 2652 } 2653 fragment.textContent = ""; 2654 i2 = 0; 2655 while (elem = nodes[i2++]) { 2656 if (selection && jQuery3.inArray(elem, selection) > -1) { 2657 if (ignored) { 2658 ignored.push(elem); 2659 } 2660 continue; 2661 } 2662 attached = isAttached(elem); 2663 tmp = getAll(fragment.appendChild(elem), "script"); 2664 if (attached) { 2665 setGlobalEval(tmp); 2666 } 2667 if (scripts) { 2668 j = 0; 2669 while (elem = tmp[j++]) { 2670 if (rscriptType.test(elem.type || "")) { 2671 scripts.push(elem); 2672 } 2673 } 2674 } 2675 } 2676 return fragment; 2677 } 2678 var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; 2679 function returnTrue() { 2680 return true; 2681 } 2682 function returnFalse() { 2683 return false; 2684 } 2685 function on2(elem, types, selector, data, fn, one) { 2686 var origFn, type2; 2687 if (typeof types === "object") { 2688 if (typeof selector !== "string") { 2689 data = data || selector; 2690 selector = void 0; 2691 } 2692 for (type2 in types) { 2693 on2(elem, type2, selector, data, types[type2], one); 2694 } 2695 return elem; 2696 } 2697 if (data == null && fn == null) { 2698 fn = selector; 2699 data = selector = void 0; 2700 } else if (fn == null) { 2701 if (typeof selector === "string") { 2702 fn = data; 2703 data = void 0; 2704 } else { 2705 fn = data; 2706 data = selector; 2707 selector = void 0; 2708 } 2709 } 2710 if (fn === false) { 2711 fn = returnFalse; 2712 } else if (!fn) { 2713 return elem; 2714 } 2715 if (one === 1) { 2716 origFn = fn; 2717 fn = function(event) { 2718 jQuery3().off(event); 2719 return origFn.apply(this, arguments); 2720 }; 2721 fn.guid = origFn.guid || (origFn.guid = jQuery3.guid++); 2722 } 2723 return elem.each(function() { 2724 jQuery3.event.add(this, types, fn, data, selector); 2725 }); 2726 } 2727 jQuery3.event = { 2728 global: {}, 2729 add: function(elem, types, handler, data, selector) { 2730 var handleObjIn, eventHandle, tmp, events, t, handleObj, special, handlers, type2, namespaces, origType, elemData = dataPriv.get(elem); 2731 if (!acceptData(elem)) { 2732 return; 2733 } 2734 if (handler.handler) { 2735 handleObjIn = handler; 2736 handler = handleObjIn.handler; 2737 selector = handleObjIn.selector; 2738 } 2739 if (selector) { 2740 jQuery3.find.matchesSelector(documentElement, selector); 2741 } 2742 if (!handler.guid) { 2743 handler.guid = jQuery3.guid++; 2744 } 2745 if (!(events = elemData.events)) { 2746 events = elemData.events = /* @__PURE__ */ Object.create(null); 2747 } 2748 if (!(eventHandle = elemData.handle)) { 2749 eventHandle = elemData.handle = function(e) { 2750 return typeof jQuery3 !== "undefined" && jQuery3.event.triggered !== e.type ? jQuery3.event.dispatch.apply(elem, arguments) : void 0; 2751 }; 2752 } 2753 types = (types || "").match(rnothtmlwhite) || [""]; 2754 t = types.length; 2755 while (t--) { 2756 tmp = rtypenamespace.exec(types[t]) || []; 2757 type2 = origType = tmp[1]; 2758 namespaces = (tmp[2] || "").split(".").sort(); 2759 if (!type2) { 2760 continue; 2761 } 2762 special = jQuery3.event.special[type2] || {}; 2763 type2 = (selector ? special.delegateType : special.bindType) || type2; 2764 special = jQuery3.event.special[type2] || {}; 2765 handleObj = jQuery3.extend({ 2766 type: type2, 2767 origType, 2768 data, 2769 handler, 2770 guid: handler.guid, 2771 selector, 2772 needsContext: selector && jQuery3.expr.match.needsContext.test(selector), 2773 namespace: namespaces.join(".") 2774 }, handleObjIn); 2775 if (!(handlers = events[type2])) { 2776 handlers = events[type2] = []; 2777 handlers.delegateCount = 0; 2778 if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) { 2779 if (elem.addEventListener) { 2780 elem.addEventListener(type2, eventHandle); 2781 } 2782 } 2783 } 2784 if (special.add) { 2785 special.add.call(elem, handleObj); 2786 if (!handleObj.handler.guid) { 2787 handleObj.handler.guid = handler.guid; 2788 } 2789 } 2790 if (selector) { 2791 handlers.splice(handlers.delegateCount++, 0, handleObj); 2792 } else { 2793 handlers.push(handleObj); 2794 } 2795 jQuery3.event.global[type2] = true; 2796 } 2797 }, 2798 remove: function(elem, types, handler, selector, mappedTypes) { 2799 var j, origCount, tmp, events, t, handleObj, special, handlers, type2, namespaces, origType, elemData = dataPriv.hasData(elem) && dataPriv.get(elem); 2800 if (!elemData || !(events = elemData.events)) { 2801 return; 2802 } 2803 types = (types || "").match(rnothtmlwhite) || [""]; 2804 t = types.length; 2805 while (t--) { 2806 tmp = rtypenamespace.exec(types[t]) || []; 2807 type2 = origType = tmp[1]; 2808 namespaces = (tmp[2] || "").split(".").sort(); 2809 if (!type2) { 2810 for (type2 in events) { 2811 jQuery3.event.remove(elem, type2 + types[t], handler, selector, true); 2812 } 2813 continue; 2814 } 2815 special = jQuery3.event.special[type2] || {}; 2816 type2 = (selector ? special.delegateType : special.bindType) || type2; 2817 handlers = events[type2] || []; 2818 tmp = tmp[2] && new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)"); 2819 origCount = j = handlers.length; 2820 while (j--) { 2821 handleObj = handlers[j]; 2822 if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === "**" && handleObj.selector)) { 2823 handlers.splice(j, 1); 2824 if (handleObj.selector) { 2825 handlers.delegateCount--; 2826 } 2827 if (special.remove) { 2828 special.remove.call(elem, handleObj); 2829 } 2830 } 2831 } 2832 if (origCount && !handlers.length) { 2833 if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) { 2834 jQuery3.removeEvent(elem, type2, elemData.handle); 2835 } 2836 delete events[type2]; 2837 } 2838 } 2839 if (jQuery3.isEmptyObject(events)) { 2840 dataPriv.remove(elem, "handle events"); 2841 } 2842 }, 2843 dispatch: function(nativeEvent) { 2844 var i2, j, ret, matched, handleObj, handlerQueue, args = new Array(arguments.length), event = jQuery3.event.fix(nativeEvent), handlers = (dataPriv.get(this, "events") || /* @__PURE__ */ Object.create(null))[event.type] || [], special = jQuery3.event.special[event.type] || {}; 2845 args[0] = event; 2846 for (i2 = 1; i2 < arguments.length; i2++) { 2847 args[i2] = arguments[i2]; 2848 } 2849 event.delegateTarget = this; 2850 if (special.preDispatch && special.preDispatch.call(this, event) === false) { 2851 return; 2852 } 2853 handlerQueue = jQuery3.event.handlers.call(this, event, handlers); 2854 i2 = 0; 2855 while ((matched = handlerQueue[i2++]) && !event.isPropagationStopped()) { 2856 event.currentTarget = matched.elem; 2857 j = 0; 2858 while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) { 2859 if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) { 2860 event.handleObj = handleObj; 2861 event.data = handleObj.data; 2862 ret = ((jQuery3.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args); 2863 if (ret !== void 0) { 2864 if ((event.result = ret) === false) { 2865 event.preventDefault(); 2866 event.stopPropagation(); 2867 } 2868 } 2869 } 2870 } 2871 } 2872 if (special.postDispatch) { 2873 special.postDispatch.call(this, event); 2874 } 2875 return event.result; 2876 }, 2877 handlers: function(event, handlers) { 2878 var i2, handleObj, sel, matchedHandlers, matchedSelectors, handlerQueue = [], delegateCount = handlers.delegateCount, cur = event.target; 2879 if (delegateCount && cur.nodeType && !(event.type === "click" && event.button >= 1)) { 2880 for (; cur !== this; cur = cur.parentNode || this) { 2881 if (cur.nodeType === 1 && !(event.type === "click" && cur.disabled === true)) { 2882 matchedHandlers = []; 2883 matchedSelectors = {}; 2884 for (i2 = 0; i2 < delegateCount; i2++) { 2885 handleObj = handlers[i2]; 2886 sel = handleObj.selector + " "; 2887 if (matchedSelectors[sel] === void 0) { 2888 matchedSelectors[sel] = handleObj.needsContext ? jQuery3(sel, this).index(cur) > -1 : jQuery3.find(sel, this, null, [cur]).length; 2889 } 2890 if (matchedSelectors[sel]) { 2891 matchedHandlers.push(handleObj); 2892 } 2893 } 2894 if (matchedHandlers.length) { 2895 handlerQueue.push({ elem: cur, handlers: matchedHandlers }); 2896 } 2897 } 2898 } 2899 } 2900 cur = this; 2901 if (delegateCount < handlers.length) { 2902 handlerQueue.push({ elem: cur, handlers: handlers.slice(delegateCount) }); 2903 } 2904 return handlerQueue; 2905 }, 2906 addProp: function(name2, hook) { 2907 Object.defineProperty(jQuery3.Event.prototype, name2, { 2908 enumerable: true, 2909 configurable: true, 2910 get: isFunction(hook) ? function() { 2911 if (this.originalEvent) { 2912 return hook(this.originalEvent); 2913 } 2914 } : function() { 2915 if (this.originalEvent) { 2916 return this.originalEvent[name2]; 2917 } 2918 }, 2919 set: function(value2) { 2920 Object.defineProperty(this, name2, { 2921 enumerable: true, 2922 configurable: true, 2923 writable: true, 2924 value: value2 2925 }); 2926 } 2927 }); 2928 }, 2929 fix: function(originalEvent) { 2930 return originalEvent[jQuery3.expando] ? originalEvent : new jQuery3.Event(originalEvent); 2931 }, 2932 special: { 2933 load: { 2934 noBubble: true 2935 }, 2936 click: { 2937 setup: function(data) { 2938 var el = this || data; 2939 if (rcheckableType.test(el.type) && el.click && nodeName(el, "input")) { 2940 leverageNative(el, "click", true); 2941 } 2942 return false; 2943 }, 2944 trigger: function(data) { 2945 var el = this || data; 2946 if (rcheckableType.test(el.type) && el.click && nodeName(el, "input")) { 2947 leverageNative(el, "click"); 2948 } 2949 return true; 2950 }, 2951 _default: function(event) { 2952 var target = event.target; 2953 return rcheckableType.test(target.type) && target.click && nodeName(target, "input") && dataPriv.get(target, "click") || nodeName(target, "a"); 2954 } 2955 }, 2956 beforeunload: { 2957 postDispatch: function(event) { 2958 if (event.result !== void 0 && event.originalEvent) { 2959 event.originalEvent.returnValue = event.result; 2960 } 2961 } 2962 } 2963 } 2964 }; 2965 function leverageNative(el, type2, isSetup) { 2966 if (!isSetup) { 2967 if (dataPriv.get(el, type2) === void 0) { 2968 jQuery3.event.add(el, type2, returnTrue); 2969 } 2970 return; 2971 } 2972 dataPriv.set(el, type2, false); 2973 jQuery3.event.add(el, type2, { 2974 namespace: false, 2975 handler: function(event) { 2976 var result, saved = dataPriv.get(this, type2); 2977 if (event.isTrigger & 1 && this[type2]) { 2978 if (!saved) { 2979 saved = slice.call(arguments); 2980 dataPriv.set(this, type2, saved); 2981 this[type2](); 2982 result = dataPriv.get(this, type2); 2983 dataPriv.set(this, type2, false); 2984 if (saved !== result) { 2985 event.stopImmediatePropagation(); 2986 event.preventDefault(); 2987 return result; 2988 } 2989 } else if ((jQuery3.event.special[type2] || {}).delegateType) { 2990 event.stopPropagation(); 2991 } 2992 } else if (saved) { 2993 dataPriv.set(this, type2, jQuery3.event.trigger( 2994 saved[0], 2995 saved.slice(1), 2996 this 2997 )); 2998 event.stopPropagation(); 2999 event.isImmediatePropagationStopped = returnTrue; 3000 } 3001 } 3002 }); 3003 } 3004 jQuery3.removeEvent = function(elem, type2, handle) { 3005 if (elem.removeEventListener) { 3006 elem.removeEventListener(type2, handle); 3007 } 3008 }; 3009 jQuery3.Event = function(src, props) { 3010 if (!(this instanceof jQuery3.Event)) { 3011 return new jQuery3.Event(src, props); 3012 } 3013 if (src && src.type) { 3014 this.originalEvent = src; 3015 this.type = src.type; 3016 this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === void 0 && src.returnValue === false ? returnTrue : returnFalse; 3017 this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target; 3018 this.currentTarget = src.currentTarget; 3019 this.relatedTarget = src.relatedTarget; 3020 } else { 3021 this.type = src; 3022 } 3023 if (props) { 3024 jQuery3.extend(this, props); 3025 } 3026 this.timeStamp = src && src.timeStamp || Date.now(); 3027 this[jQuery3.expando] = true; 3028 }; 3029 jQuery3.Event.prototype = { 3030 constructor: jQuery3.Event, 3031 isDefaultPrevented: returnFalse, 3032 isPropagationStopped: returnFalse, 3033 isImmediatePropagationStopped: returnFalse, 3034 isSimulated: false, 3035 preventDefault: function() { 3036 var e = this.originalEvent; 3037 this.isDefaultPrevented = returnTrue; 3038 if (e && !this.isSimulated) { 3039 e.preventDefault(); 3040 } 3041 }, 3042 stopPropagation: function() { 3043 var e = this.originalEvent; 3044 this.isPropagationStopped = returnTrue; 3045 if (e && !this.isSimulated) { 3046 e.stopPropagation(); 3047 } 3048 }, 3049 stopImmediatePropagation: function() { 3050 var e = this.originalEvent; 3051 this.isImmediatePropagationStopped = returnTrue; 3052 if (e && !this.isSimulated) { 3053 e.stopImmediatePropagation(); 3054 } 3055 this.stopPropagation(); 3056 } 3057 }; 3058 jQuery3.each({ 3059 altKey: true, 3060 bubbles: true, 3061 cancelable: true, 3062 changedTouches: true, 3063 ctrlKey: true, 3064 detail: true, 3065 eventPhase: true, 3066 metaKey: true, 3067 pageX: true, 3068 pageY: true, 3069 shiftKey: true, 3070 view: true, 3071 "char": true, 3072 code: true, 3073 charCode: true, 3074 key: true, 3075 keyCode: true, 3076 button: true, 3077 buttons: true, 3078 clientX: true, 3079 clientY: true, 3080 offsetX: true, 3081 offsetY: true, 3082 pointerId: true, 3083 pointerType: true, 3084 screenX: true, 3085 screenY: true, 3086 targetTouches: true, 3087 toElement: true, 3088 touches: true, 3089 which: true 3090 }, jQuery3.event.addProp); 3091 jQuery3.each({ focus: "focusin", blur: "focusout" }, function(type2, delegateType) { 3092 function focusMappedHandler(nativeEvent) { 3093 if (document2.documentMode) { 3094 var handle = dataPriv.get(this, "handle"), event = jQuery3.event.fix(nativeEvent); 3095 event.type = nativeEvent.type === "focusin" ? "focus" : "blur"; 3096 event.isSimulated = true; 3097 handle(nativeEvent); 3098 if (event.target === event.currentTarget) { 3099 handle(event); 3100 } 3101 } else { 3102 jQuery3.event.simulate( 3103 delegateType, 3104 nativeEvent.target, 3105 jQuery3.event.fix(nativeEvent) 3106 ); 3107 } 3108 } 3109 jQuery3.event.special[type2] = { 3110 setup: function() { 3111 var attaches; 3112 leverageNative(this, type2, true); 3113 if (document2.documentMode) { 3114 attaches = dataPriv.get(this, delegateType); 3115 if (!attaches) { 3116 this.addEventListener(delegateType, focusMappedHandler); 3117 } 3118 dataPriv.set(this, delegateType, (attaches || 0) + 1); 3119 } else { 3120 return false; 3121 } 3122 }, 3123 trigger: function() { 3124 leverageNative(this, type2); 3125 return true; 3126 }, 3127 teardown: function() { 3128 var attaches; 3129 if (document2.documentMode) { 3130 attaches = dataPriv.get(this, delegateType) - 1; 3131 if (!attaches) { 3132 this.removeEventListener(delegateType, focusMappedHandler); 3133 dataPriv.remove(this, delegateType); 3134 } else { 3135 dataPriv.set(this, delegateType, attaches); 3136 } 3137 } else { 3138 return false; 3139 } 3140 }, 3141 _default: function(event) { 3142 return dataPriv.get(event.target, type2); 3143 }, 3144 delegateType 3145 }; 3146 jQuery3.event.special[delegateType] = { 3147 setup: function() { 3148 var doc = this.ownerDocument || this.document || this, dataHolder = document2.documentMode ? this : doc, attaches = dataPriv.get(dataHolder, delegateType); 3149 if (!attaches) { 3150 if (document2.documentMode) { 3151 this.addEventListener(delegateType, focusMappedHandler); 3152 } else { 3153 doc.addEventListener(type2, focusMappedHandler, true); 3154 } 3155 } 3156 dataPriv.set(dataHolder, delegateType, (attaches || 0) + 1); 3157 }, 3158 teardown: function() { 3159 var doc = this.ownerDocument || this.document || this, dataHolder = document2.documentMode ? this : doc, attaches = dataPriv.get(dataHolder, delegateType) - 1; 3160 if (!attaches) { 3161 if (document2.documentMode) { 3162 this.removeEventListener(delegateType, focusMappedHandler); 3163 } else { 3164 doc.removeEventListener(type2, focusMappedHandler, true); 3165 } 3166 dataPriv.remove(dataHolder, delegateType); 3167 } else { 3168 dataPriv.set(dataHolder, delegateType, attaches); 3169 } 3170 } 3171 }; 3172 }); 3173 jQuery3.each({ 3174 mouseenter: "mouseover", 3175 mouseleave: "mouseout", 3176 pointerenter: "pointerover", 3177 pointerleave: "pointerout" 3178 }, function(orig, fix) { 3179 jQuery3.event.special[orig] = { 3180 delegateType: fix, 3181 bindType: fix, 3182 handle: function(event) { 3183 var ret, target = this, related = event.relatedTarget, handleObj = event.handleObj; 3184 if (!related || related !== target && !jQuery3.contains(target, related)) { 3185 event.type = handleObj.origType; 3186 ret = handleObj.handler.apply(this, arguments); 3187 event.type = fix; 3188 } 3189 return ret; 3190 } 3191 }; 3192 }); 3193 jQuery3.fn.extend({ 3194 on: function(types, selector, data, fn) { 3195 return on2(this, types, selector, data, fn); 3196 }, 3197 one: function(types, selector, data, fn) { 3198 return on2(this, types, selector, data, fn, 1); 3199 }, 3200 off: function(types, selector, fn) { 3201 var handleObj, type2; 3202 if (types && types.preventDefault && types.handleObj) { 3203 handleObj = types.handleObj; 3204 jQuery3(types.delegateTarget).off( 3205 handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, 3206 handleObj.selector, 3207 handleObj.handler 3208 ); 3209 return this; 3210 } 3211 if (typeof types === "object") { 3212 for (type2 in types) { 3213 this.off(type2, selector, types[type2]); 3214 } 3215 return this; 3216 } 3217 if (selector === false || typeof selector === "function") { 3218 fn = selector; 3219 selector = void 0; 3220 } 3221 if (fn === false) { 3222 fn = returnFalse; 3223 } 3224 return this.each(function() { 3225 jQuery3.event.remove(this, types, fn, selector); 3226 }); 3227 } 3228 }); 3229 var rnoInnerhtml = /<script|<style|<link/i, rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, rcleanScript = /^\s*<!\[CDATA\[|\]\]>\s*$/g; 3230 function manipulationTarget(elem, content) { 3231 if (nodeName(elem, "table") && nodeName(content.nodeType !== 11 ? content : content.firstChild, "tr")) { 3232 return jQuery3(elem).children("tbody")[0] || elem; 3233 } 3234 return elem; 3235 } 3236 function disableScript(elem) { 3237 elem.type = (elem.getAttribute("type") !== null) + "/" + elem.type; 3238 return elem; 3239 } 3240 function restoreScript(elem) { 3241 if ((elem.type || "").slice(0, 5) === "true/") { 3242 elem.type = elem.type.slice(5); 3243 } else { 3244 elem.removeAttribute("type"); 3245 } 3246 return elem; 3247 } 3248 function cloneCopyEvent(src, dest) { 3249 var i2, l, type2, pdataOld, udataOld, udataCur, events; 3250 if (dest.nodeType !== 1) { 3251 return; 3252 } 3253 if (dataPriv.hasData(src)) { 3254 pdataOld = dataPriv.get(src); 3255 events = pdataOld.events; 3256 if (events) { 3257 dataPriv.remove(dest, "handle events"); 3258 for (type2 in events) { 3259 for (i2 = 0, l = events[type2].length; i2 < l; i2++) { 3260 jQuery3.event.add(dest, type2, events[type2][i2]); 3261 } 3262 } 3263 } 3264 } 3265 if (dataUser.hasData(src)) { 3266 udataOld = dataUser.access(src); 3267 udataCur = jQuery3.extend({}, udataOld); 3268 dataUser.set(dest, udataCur); 3269 } 3270 } 3271 function fixInput(src, dest) { 3272 var nodeName2 = dest.nodeName.toLowerCase(); 3273 if (nodeName2 === "input" && rcheckableType.test(src.type)) { 3274 dest.checked = src.checked; 3275 } else if (nodeName2 === "input" || nodeName2 === "textarea") { 3276 dest.defaultValue = src.defaultValue; 3277 } 3278 } 3279 function domManip(collection, args, callback, ignored) { 3280 args = flat(args); 3281 var fragment, first, scripts, hasScripts, node, doc, i2 = 0, l = collection.length, iNoClone = l - 1, value2 = args[0], valueIsFunction = isFunction(value2); 3282 if (valueIsFunction || l > 1 && typeof value2 === "string" && !support.checkClone && rchecked.test(value2)) { 3283 return collection.each(function(index) { 3284 var self2 = collection.eq(index); 3285 if (valueIsFunction) { 3286 args[0] = value2.call(this, index, self2.html()); 3287 } 3288 domManip(self2, args, callback, ignored); 3289 }); 3290 } 3291 if (l) { 3292 fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored); 3293 first = fragment.firstChild; 3294 if (fragment.childNodes.length === 1) { 3295 fragment = first; 3296 } 3297 if (first || ignored) { 3298 scripts = jQuery3.map(getAll(fragment, "script"), disableScript); 3299 hasScripts = scripts.length; 3300 for (; i2 < l; i2++) { 3301 node = fragment; 3302 if (i2 !== iNoClone) { 3303 node = jQuery3.clone(node, true, true); 3304 if (hasScripts) { 3305 jQuery3.merge(scripts, getAll(node, "script")); 3306 } 3307 } 3308 callback.call(collection[i2], node, i2); 3309 } 3310 if (hasScripts) { 3311 doc = scripts[scripts.length - 1].ownerDocument; 3312 jQuery3.map(scripts, restoreScript); 3313 for (i2 = 0; i2 < hasScripts; i2++) { 3314 node = scripts[i2]; 3315 if (rscriptType.test(node.type || "") && !dataPriv.access(node, "globalEval") && jQuery3.contains(doc, node)) { 3316 if (node.src && (node.type || "").toLowerCase() !== "module") { 3317 if (jQuery3._evalUrl && !node.noModule) { 3318 jQuery3._evalUrl(node.src, { 3319 nonce: node.nonce || node.getAttribute("nonce") 3320 }, doc); 3321 } 3322 } else { 3323 DOMEval(node.textContent.replace(rcleanScript, ""), node, doc); 3324 } 3325 } 3326 } 3327 } 3328 } 3329 } 3330 return collection; 3331 } 3332 function remove(elem, selector, keepData) { 3333 var node, nodes = selector ? jQuery3.filter(selector, elem) : elem, i2 = 0; 3334 for (; (node = nodes[i2]) != null; i2++) { 3335 if (!keepData && node.nodeType === 1) { 3336 jQuery3.cleanData(getAll(node)); 3337 } 3338 if (node.parentNode) { 3339 if (keepData && isAttached(node)) { 3340 setGlobalEval(getAll(node, "script")); 3341 } 3342 node.parentNode.removeChild(node); 3343 } 3344 } 3345 return elem; 3346 } 3347 jQuery3.extend({ 3348 htmlPrefilter: function(html) { 3349 return html; 3350 }, 3351 clone: function(elem, dataAndEvents, deepDataAndEvents) { 3352 var i2, l, srcElements, destElements, clone = elem.cloneNode(true), inPage = isAttached(elem); 3353 if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery3.isXMLDoc(elem)) { 3354 destElements = getAll(clone); 3355 srcElements = getAll(elem); 3356 for (i2 = 0, l = srcElements.length; i2 < l; i2++) { 3357 fixInput(srcElements[i2], destElements[i2]); 3358 } 3359 } 3360 if (dataAndEvents) { 3361 if (deepDataAndEvents) { 3362 srcElements = srcElements || getAll(elem); 3363 destElements = destElements || getAll(clone); 3364 for (i2 = 0, l = srcElements.length; i2 < l; i2++) { 3365 cloneCopyEvent(srcElements[i2], destElements[i2]); 3366 } 3367 } else { 3368 cloneCopyEvent(elem, clone); 3369 } 3370 } 3371 destElements = getAll(clone, "script"); 3372 if (destElements.length > 0) { 3373 setGlobalEval(destElements, !inPage && getAll(elem, "script")); 3374 } 3375 return clone; 3376 }, 3377 cleanData: function(elems) { 3378 var data, elem, type2, special = jQuery3.event.special, i2 = 0; 3379 for (; (elem = elems[i2]) !== void 0; i2++) { 3380 if (acceptData(elem)) { 3381 if (data = elem[dataPriv.expando]) { 3382 if (data.events) { 3383 for (type2 in data.events) { 3384 if (special[type2]) { 3385 jQuery3.event.remove(elem, type2); 3386 } else { 3387 jQuery3.removeEvent(elem, type2, data.handle); 3388 } 3389 } 3390 } 3391 elem[dataPriv.expando] = void 0; 3392 } 3393 if (elem[dataUser.expando]) { 3394 elem[dataUser.expando] = void 0; 3395 } 3396 } 3397 } 3398 } 3399 }); 3400 jQuery3.fn.extend({ 3401 detach: function(selector) { 3402 return remove(this, selector, true); 3403 }, 3404 remove: function(selector) { 3405 return remove(this, selector); 3406 }, 3407 text: function(value2) { 3408 return access(this, function(value3) { 3409 return value3 === void 0 ? jQuery3.text(this) : this.empty().each(function() { 3410 if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { 3411 this.textContent = value3; 3412 } 3413 }); 3414 }, null, value2, arguments.length); 3415 }, 3416 append: function() { 3417 return domManip(this, arguments, function(elem) { 3418 if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { 3419 var target = manipulationTarget(this, elem); 3420 target.appendChild(elem); 3421 } 3422 }); 3423 }, 3424 prepend: function() { 3425 return domManip(this, arguments, function(elem) { 3426 if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { 3427 var target = manipulationTarget(this, elem); 3428 target.insertBefore(elem, target.firstChild); 3429 } 3430 }); 3431 }, 3432 before: function() { 3433 return domManip(this, arguments, function(elem) { 3434 if (this.parentNode) { 3435 this.parentNode.insertBefore(elem, this); 3436 } 3437 }); 3438 }, 3439 after: function() { 3440 return domManip(this, arguments, function(elem) { 3441 if (this.parentNode) { 3442 this.parentNode.insertBefore(elem, this.nextSibling); 3443 } 3444 }); 3445 }, 3446 empty: function() { 3447 var elem, i2 = 0; 3448 for (; (elem = this[i2]) != null; i2++) { 3449 if (elem.nodeType === 1) { 3450 jQuery3.cleanData(getAll(elem, false)); 3451 elem.textContent = ""; 3452 } 3453 } 3454 return this; 3455 }, 3456 clone: function(dataAndEvents, deepDataAndEvents) { 3457 dataAndEvents = dataAndEvents == null ? false : dataAndEvents; 3458 deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; 3459 return this.map(function() { 3460 return jQuery3.clone(this, dataAndEvents, deepDataAndEvents); 3461 }); 3462 }, 3463 html: function(value2) { 3464 return access(this, function(value3) { 3465 var elem = this[0] || {}, i2 = 0, l = this.length; 3466 if (value3 === void 0 && elem.nodeType === 1) { 3467 return elem.innerHTML; 3468 } 3469 if (typeof value3 === "string" && !rnoInnerhtml.test(value3) && !wrapMap[(rtagName.exec(value3) || ["", ""])[1].toLowerCase()]) { 3470 value3 = jQuery3.htmlPrefilter(value3); 3471 try { 3472 for (; i2 < l; i2++) { 3473 elem = this[i2] || {}; 3474 if (elem.nodeType === 1) { 3475 jQuery3.cleanData(getAll(elem, false)); 3476 elem.innerHTML = value3; 3477 } 3478 } 3479 elem = 0; 3480 } catch (e) { 3481 } 3482 } 3483 if (elem) { 3484 this.empty().append(value3); 3485 } 3486 }, null, value2, arguments.length); 3487 }, 3488 replaceWith: function() { 3489 var ignored = []; 3490 return domManip(this, arguments, function(elem) { 3491 var parent = this.parentNode; 3492 if (jQuery3.inArray(this, ignored) < 0) { 3493 jQuery3.cleanData(getAll(this)); 3494 if (parent) { 3495 parent.replaceChild(elem, this); 3496 } 3497 } 3498 }, ignored); 3499 } 3500 }); 3501 jQuery3.each({ 3502 appendTo: "append", 3503 prependTo: "prepend", 3504 insertBefore: "before", 3505 insertAfter: "after", 3506 replaceAll: "replaceWith" 3507 }, function(name2, original) { 3508 jQuery3.fn[name2] = function(selector) { 3509 var elems, ret = [], insert = jQuery3(selector), last = insert.length - 1, i2 = 0; 3510 for (; i2 <= last; i2++) { 3511 elems = i2 === last ? this : this.clone(true); 3512 jQuery3(insert[i2])[original](elems); 3513 push.apply(ret, elems.get()); 3514 } 3515 return this.pushStack(ret); 3516 }; 3517 }); 3518 var rnumnonpx = new RegExp("^(" + pnum + ")(?!px)[a-z%]+$", "i"); 3519 var rcustomProp = /^--/; 3520 var getStyles = function(elem) { 3521 var view = elem.ownerDocument.defaultView; 3522 if (!view || !view.opener) { 3523 view = window2; 3524 } 3525 return view.getComputedStyle(elem); 3526 }; 3527 var swap = function(elem, options, callback) { 3528 var ret, name2, old = {}; 3529 for (name2 in options) { 3530 old[name2] = elem.style[name2]; 3531 elem.style[name2] = options[name2]; 3532 } 3533 ret = callback.call(elem); 3534 for (name2 in options) { 3535 elem.style[name2] = old[name2]; 3536 } 3537 return ret; 3538 }; 3539 var rboxStyle = new RegExp(cssExpand.join("|"), "i"); 3540 (function() { 3541 function computeStyleTests() { 3542 if (!div) { 3543 return; 3544 } 3545 container.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0"; 3546 div.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%"; 3547 documentElement.appendChild(container).appendChild(div); 3548 var divStyle = window2.getComputedStyle(div); 3549 pixelPositionVal = divStyle.top !== "1%"; 3550 reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12; 3551 div.style.right = "60%"; 3552 pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36; 3553 boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36; 3554 div.style.position = "absolute"; 3555 scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12; 3556 documentElement.removeChild(container); 3557 div = null; 3558 } 3559 function roundPixelMeasures(measure) { 3560 return Math.round(parseFloat(measure)); 3561 } 3562 var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, reliableTrDimensionsVal, reliableMarginLeftVal, container = document2.createElement("div"), div = document2.createElement("div"); 3563 if (!div.style) { 3564 return; 3565 } 3566 div.style.backgroundClip = "content-box"; 3567 div.cloneNode(true).style.backgroundClip = ""; 3568 support.clearCloneStyle = div.style.backgroundClip === "content-box"; 3569 jQuery3.extend(support, { 3570 boxSizingReliable: function() { 3571 computeStyleTests(); 3572 return boxSizingReliableVal; 3573 }, 3574 pixelBoxStyles: function() { 3575 computeStyleTests(); 3576 return pixelBoxStylesVal; 3577 }, 3578 pixelPosition: function() { 3579 computeStyleTests(); 3580 return pixelPositionVal; 3581 }, 3582 reliableMarginLeft: function() { 3583 computeStyleTests(); 3584 return reliableMarginLeftVal; 3585 }, 3586 scrollboxSize: function() { 3587 computeStyleTests(); 3588 return scrollboxSizeVal; 3589 }, 3590 reliableTrDimensions: function() { 3591 var table, tr, trChild, trStyle; 3592 if (reliableTrDimensionsVal == null) { 3593 table = document2.createElement("table"); 3594 tr = document2.createElement("tr"); 3595 trChild = document2.createElement("div"); 3596 table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; 3597 tr.style.cssText = "border:1px solid"; 3598 tr.style.height = "1px"; 3599 trChild.style.height = "9px"; 3600 trChild.style.display = "block"; 3601 documentElement.appendChild(table).appendChild(tr).appendChild(trChild); 3602 trStyle = window2.getComputedStyle(tr); 3603 reliableTrDimensionsVal = parseInt(trStyle.height, 10) + parseInt(trStyle.borderTopWidth, 10) + parseInt(trStyle.borderBottomWidth, 10) === tr.offsetHeight; 3604 documentElement.removeChild(table); 3605 } 3606 return reliableTrDimensionsVal; 3607 } 3608 }); 3609 })(); 3610 function curCSS(elem, name2, computed) { 3611 var width, minWidth, maxWidth, ret, isCustomProp = rcustomProp.test(name2), style = elem.style; 3612 computed = computed || getStyles(elem); 3613 if (computed) { 3614 ret = computed.getPropertyValue(name2) || computed[name2]; 3615 if (isCustomProp && ret) { 3616 ret = ret.replace(rtrimCSS, "$1") || void 0; 3617 } 3618 if (ret === "" && !isAttached(elem)) { 3619 ret = jQuery3.style(elem, name2); 3620 } 3621 if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name2)) { 3622 width = style.width; 3623 minWidth = style.minWidth; 3624 maxWidth = style.maxWidth; 3625 style.minWidth = style.maxWidth = style.width = ret; 3626 ret = computed.width; 3627 style.width = width; 3628 style.minWidth = minWidth; 3629 style.maxWidth = maxWidth; 3630 } 3631 } 3632 return ret !== void 0 ? ret + "" : ret; 3633 } 3634 function addGetHookIf(conditionFn, hookFn) { 3635 return { 3636 get: function() { 3637 if (conditionFn()) { 3638 delete this.get; 3639 return; 3640 } 3641 return (this.get = hookFn).apply(this, arguments); 3642 } 3643 }; 3644 } 3645 var cssPrefixes = ["Webkit", "Moz", "ms"], emptyStyle = document2.createElement("div").style, vendorProps = {}; 3646 function vendorPropName(name2) { 3647 var capName = name2[0].toUpperCase() + name2.slice(1), i2 = cssPrefixes.length; 3648 while (i2--) { 3649 name2 = cssPrefixes[i2] + capName; 3650 if (name2 in emptyStyle) { 3651 return name2; 3652 } 3653 } 3654 } 3655 function finalPropName(name2) { 3656 var final = jQuery3.cssProps[name2] || vendorProps[name2]; 3657 if (final) { 3658 return final; 3659 } 3660 if (name2 in emptyStyle) { 3661 return name2; 3662 } 3663 return vendorProps[name2] = vendorPropName(name2) || name2; 3664 } 3665 var rdisplayswap = /^(none|table(?!-c[ea]).+)/, cssShow = { position: "absolute", visibility: "hidden", display: "block" }, cssNormalTransform = { 3666 letterSpacing: "0", 3667 fontWeight: "400" 3668 }; 3669 function setPositiveNumber(_elem, value2, subtract) { 3670 var matches = rcssNum.exec(value2); 3671 return matches ? Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || "px") : value2; 3672 } 3673 function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) { 3674 var i2 = dimension === "width" ? 1 : 0, extra = 0, delta = 0, marginDelta = 0; 3675 if (box === (isBorderBox ? "border" : "content")) { 3676 return 0; 3677 } 3678 for (; i2 < 4; i2 += 2) { 3679 if (box === "margin") { 3680 marginDelta += jQuery3.css(elem, box + cssExpand[i2], true, styles); 3681 } 3682 if (!isBorderBox) { 3683 delta += jQuery3.css(elem, "padding" + cssExpand[i2], true, styles); 3684 if (box !== "padding") { 3685 delta += jQuery3.css(elem, "border" + cssExpand[i2] + "Width", true, styles); 3686 } else { 3687 extra += jQuery3.css(elem, "border" + cssExpand[i2] + "Width", true, styles); 3688 } 3689 } else { 3690 if (box === "content") { 3691 delta -= jQuery3.css(elem, "padding" + cssExpand[i2], true, styles); 3692 } 3693 if (box !== "margin") { 3694 delta -= jQuery3.css(elem, "border" + cssExpand[i2] + "Width", true, styles); 3695 } 3696 } 3697 } 3698 if (!isBorderBox && computedVal >= 0) { 3699 delta += Math.max(0, Math.ceil( 3700 elem["offset" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5 3701 )) || 0; 3702 } 3703 return delta + marginDelta; 3704 } 3705 function getWidthOrHeight(elem, dimension, extra) { 3706 var styles = getStyles(elem), boxSizingNeeded = !support.boxSizingReliable() || extra, isBorderBox = boxSizingNeeded && jQuery3.css(elem, "boxSizing", false, styles) === "border-box", valueIsBorderBox = isBorderBox, val = curCSS(elem, dimension, styles), offsetProp = "offset" + dimension[0].toUpperCase() + dimension.slice(1); 3707 if (rnumnonpx.test(val)) { 3708 if (!extra) { 3709 return val; 3710 } 3711 val = "auto"; 3712 } 3713 if ((!support.boxSizingReliable() && isBorderBox || !support.reliableTrDimensions() && nodeName(elem, "tr") || val === "auto" || !parseFloat(val) && jQuery3.css(elem, "display", false, styles) === "inline") && elem.getClientRects().length) { 3714 isBorderBox = jQuery3.css(elem, "boxSizing", false, styles) === "border-box"; 3715 valueIsBorderBox = offsetProp in elem; 3716 if (valueIsBorderBox) { 3717 val = elem[offsetProp]; 3718 } 3719 } 3720 val = parseFloat(val) || 0; 3721 return val + boxModelAdjustment( 3722 elem, 3723 dimension, 3724 extra || (isBorderBox ? "border" : "content"), 3725 valueIsBorderBox, 3726 styles, 3727 val 3728 ) + "px"; 3729 } 3730 jQuery3.extend({ 3731 cssHooks: { 3732 opacity: { 3733 get: function(elem, computed) { 3734 if (computed) { 3735 var ret = curCSS(elem, "opacity"); 3736 return ret === "" ? "1" : ret; 3737 } 3738 } 3739 } 3740 }, 3741 cssNumber: { 3742 animationIterationCount: true, 3743 aspectRatio: true, 3744 borderImageSlice: true, 3745 columnCount: true, 3746 flexGrow: true, 3747 flexShrink: true, 3748 fontWeight: true, 3749 gridArea: true, 3750 gridColumn: true, 3751 gridColumnEnd: true, 3752 gridColumnStart: true, 3753 gridRow: true, 3754 gridRowEnd: true, 3755 gridRowStart: true, 3756 lineHeight: true, 3757 opacity: true, 3758 order: true, 3759 orphans: true, 3760 scale: true, 3761 widows: true, 3762 zIndex: true, 3763 zoom: true, 3764 fillOpacity: true, 3765 floodOpacity: true, 3766 stopOpacity: true, 3767 strokeMiterlimit: true, 3768 strokeOpacity: true 3769 }, 3770 cssProps: {}, 3771 style: function(elem, name2, value2, extra) { 3772 if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) { 3773 return; 3774 } 3775 var ret, type2, hooks, origName = camelCase(name2), isCustomProp = rcustomProp.test(name2), style = elem.style; 3776 if (!isCustomProp) { 3777 name2 = finalPropName(origName); 3778 } 3779 hooks = jQuery3.cssHooks[name2] || jQuery3.cssHooks[origName]; 3780 if (value2 !== void 0) { 3781 type2 = typeof value2; 3782 if (type2 === "string" && (ret = rcssNum.exec(value2)) && ret[1]) { 3783 value2 = adjustCSS(elem, name2, ret); 3784 type2 = "number"; 3785 } 3786 if (value2 == null || value2 !== value2) { 3787 return; 3788 } 3789 if (type2 === "number" && !isCustomProp) { 3790 value2 += ret && ret[3] || (jQuery3.cssNumber[origName] ? "" : "px"); 3791 } 3792 if (!support.clearCloneStyle && value2 === "" && name2.indexOf("background") === 0) { 3793 style[name2] = "inherit"; 3794 } 3795 if (!hooks || !("set" in hooks) || (value2 = hooks.set(elem, value2, extra)) !== void 0) { 3796 if (isCustomProp) { 3797 style.setProperty(name2, value2); 3798 } else { 3799 style[name2] = value2; 3800 } 3801 } 3802 } else { 3803 if (hooks && "get" in hooks && (ret = hooks.get(elem, false, extra)) !== void 0) { 3804 return ret; 3805 } 3806 return style[name2]; 3807 } 3808 }, 3809 css: function(elem, name2, extra, styles) { 3810 var val, num, hooks, origName = camelCase(name2), isCustomProp = rcustomProp.test(name2); 3811 if (!isCustomProp) { 3812 name2 = finalPropName(origName); 3813 } 3814 hooks = jQuery3.cssHooks[name2] || jQuery3.cssHooks[origName]; 3815 if (hooks && "get" in hooks) { 3816 val = hooks.get(elem, true, extra); 3817 } 3818 if (val === void 0) { 3819 val = curCSS(elem, name2, styles); 3820 } 3821 if (val === "normal" && name2 in cssNormalTransform) { 3822 val = cssNormalTransform[name2]; 3823 } 3824 if (extra === "" || extra) { 3825 num = parseFloat(val); 3826 return extra === true || isFinite(num) ? num || 0 : val; 3827 } 3828 return val; 3829 } 3830 }); 3831 jQuery3.each(["height", "width"], function(_i, dimension) { 3832 jQuery3.cssHooks[dimension] = { 3833 get: function(elem, computed, extra) { 3834 if (computed) { 3835 return rdisplayswap.test(jQuery3.css(elem, "display")) && (!elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function() { 3836 return getWidthOrHeight(elem, dimension, extra); 3837 }) : getWidthOrHeight(elem, dimension, extra); 3838 } 3839 }, 3840 set: function(elem, value2, extra) { 3841 var matches, styles = getStyles(elem), scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === "absolute", boxSizingNeeded = scrollboxSizeBuggy || extra, isBorderBox = boxSizingNeeded && jQuery3.css(elem, "boxSizing", false, styles) === "border-box", subtract = extra ? boxModelAdjustment( 3842 elem, 3843 dimension, 3844 extra, 3845 isBorderBox, 3846 styles 3847 ) : 0; 3848 if (isBorderBox && scrollboxSizeBuggy) { 3849 subtract -= Math.ceil( 3850 elem["offset" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, "border", false, styles) - 0.5 3851 ); 3852 } 3853 if (subtract && (matches = rcssNum.exec(value2)) && (matches[3] || "px") !== "px") { 3854 elem.style[dimension] = value2; 3855 value2 = jQuery3.css(elem, dimension); 3856 } 3857 return setPositiveNumber(elem, value2, subtract); 3858 } 3859 }; 3860 }); 3861 jQuery3.cssHooks.marginLeft = addGetHookIf( 3862 support.reliableMarginLeft, 3863 function(elem, computed) { 3864 if (computed) { 3865 return (parseFloat(curCSS(elem, "marginLeft")) || elem.getBoundingClientRect().left - swap(elem, { marginLeft: 0 }, function() { 3866 return elem.getBoundingClientRect().left; 3867 })) + "px"; 3868 } 3869 } 3870 ); 3871 jQuery3.each({ 3872 margin: "", 3873 padding: "", 3874 border: "Width" 3875 }, function(prefix, suffix) { 3876 jQuery3.cssHooks[prefix + suffix] = { 3877 expand: function(value2) { 3878 var i2 = 0, expanded = {}, parts2 = typeof value2 === "string" ? value2.split(" ") : [value2]; 3879 for (; i2 < 4; i2++) { 3880 expanded[prefix + cssExpand[i2] + suffix] = parts2[i2] || parts2[i2 - 2] || parts2[0]; 3881 } 3882 return expanded; 3883 } 3884 }; 3885 if (prefix !== "margin") { 3886 jQuery3.cssHooks[prefix + suffix].set = setPositiveNumber; 3887 } 3888 }); 3889 jQuery3.fn.extend({ 3890 css: function(name2, value2) { 3891 return access(this, function(elem, name3, value3) { 3892 var styles, len, map2 = {}, i2 = 0; 3893 if (Array.isArray(name3)) { 3894 styles = getStyles(elem); 3895 len = name3.length; 3896 for (; i2 < len; i2++) { 3897 map2[name3[i2]] = jQuery3.css(elem, name3[i2], false, styles); 3898 } 3899 return map2; 3900 } 3901 return value3 !== void 0 ? jQuery3.style(elem, name3, value3) : jQuery3.css(elem, name3); 3902 }, name2, value2, arguments.length > 1); 3903 } 3904 }); 3905 function Tween(elem, options, prop, end, easing) { 3906 return new Tween.prototype.init(elem, options, prop, end, easing); 3907 } 3908 jQuery3.Tween = Tween; 3909 Tween.prototype = { 3910 constructor: Tween, 3911 init: function(elem, options, prop, end, easing, unit) { 3912 this.elem = elem; 3913 this.prop = prop; 3914 this.easing = easing || jQuery3.easing._default; 3915 this.options = options; 3916 this.start = this.now = this.cur(); 3917 this.end = end; 3918 this.unit = unit || (jQuery3.cssNumber[prop] ? "" : "px"); 3919 }, 3920 cur: function() { 3921 var hooks = Tween.propHooks[this.prop]; 3922 return hooks && hooks.get ? hooks.get(this) : Tween.propHooks._default.get(this); 3923 }, 3924 run: function(percent) { 3925 var eased, hooks = Tween.propHooks[this.prop]; 3926 if (this.options.duration) { 3927 this.pos = eased = jQuery3.easing[this.easing]( 3928 percent, 3929 this.options.duration * percent, 3930 0, 3931 1, 3932 this.options.duration 3933 ); 3934 } else { 3935 this.pos = eased = percent; 3936 } 3937 this.now = (this.end - this.start) * eased + this.start; 3938 if (this.options.step) { 3939 this.options.step.call(this.elem, this.now, this); 3940 } 3941 if (hooks && hooks.set) { 3942 hooks.set(this); 3943 } else { 3944 Tween.propHooks._default.set(this); 3945 } 3946 return this; 3947 } 3948 }; 3949 Tween.prototype.init.prototype = Tween.prototype; 3950 Tween.propHooks = { 3951 _default: { 3952 get: function(tween) { 3953 var result; 3954 if (tween.elem.nodeType !== 1 || tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) { 3955 return tween.elem[tween.prop]; 3956 } 3957 result = jQuery3.css(tween.elem, tween.prop, ""); 3958 return !result || result === "auto" ? 0 : result; 3959 }, 3960 set: function(tween) { 3961 if (jQuery3.fx.step[tween.prop]) { 3962 jQuery3.fx.step[tween.prop](tween); 3963 } else if (tween.elem.nodeType === 1 && (jQuery3.cssHooks[tween.prop] || tween.elem.style[finalPropName(tween.prop)] != null)) { 3964 jQuery3.style(tween.elem, tween.prop, tween.now + tween.unit); 3965 } else { 3966 tween.elem[tween.prop] = tween.now; 3967 } 3968 } 3969 } 3970 }; 3971 Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { 3972 set: function(tween) { 3973 if (tween.elem.nodeType && tween.elem.parentNode) { 3974 tween.elem[tween.prop] = tween.now; 3975 } 3976 } 3977 }; 3978 jQuery3.easing = { 3979 linear: function(p) { 3980 return p; 3981 }, 3982 swing: function(p) { 3983 return 0.5 - Math.cos(p * Math.PI) / 2; 3984 }, 3985 _default: "swing" 3986 }; 3987 jQuery3.fx = Tween.prototype.init; 3988 jQuery3.fx.step = {}; 3989 var fxNow, inProgress, rfxtypes = /^(?:toggle|show|hide)$/, rrun = /queueHooks$/; 3990 function schedule() { 3991 if (inProgress) { 3992 if (document2.hidden === false && window2.requestAnimationFrame) { 3993 window2.requestAnimationFrame(schedule); 3994 } else { 3995 window2.setTimeout(schedule, jQuery3.fx.interval); 3996 } 3997 jQuery3.fx.tick(); 3998 } 3999 } 4000 function createFxNow() { 4001 window2.setTimeout(function() { 4002 fxNow = void 0; 4003 }); 4004 return fxNow = Date.now(); 4005 } 4006 function genFx(type2, includeWidth) { 4007 var which, i2 = 0, attrs = { height: type2 }; 4008 includeWidth = includeWidth ? 1 : 0; 4009 for (; i2 < 4; i2 += 2 - includeWidth) { 4010 which = cssExpand[i2]; 4011 attrs["margin" + which] = attrs["padding" + which] = type2; 4012 } 4013 if (includeWidth) { 4014 attrs.opacity = attrs.width = type2; 4015 } 4016 return attrs; 4017 } 4018 function createTween(value2, prop, animation) { 4019 var tween, collection = (Animation.tweeners[prop] || []).concat(Animation.tweeners["*"]), index = 0, length2 = collection.length; 4020 for (; index < length2; index++) { 4021 if (tween = collection[index].call(animation, prop, value2)) { 4022 return tween; 4023 } 4024 } 4025 } 4026 function defaultPrefilter(elem, props, opts) { 4027 var prop, value2, 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"); 4028 if (!opts.queue) { 4029 hooks = jQuery3._queueHooks(elem, "fx"); 4030 if (hooks.unqueued == null) { 4031 hooks.unqueued = 0; 4032 oldfire = hooks.empty.fire; 4033 hooks.empty.fire = function() { 4034 if (!hooks.unqueued) { 4035 oldfire(); 4036 } 4037 }; 4038 } 4039 hooks.unqueued++; 4040 anim.always(function() { 4041 anim.always(function() { 4042 hooks.unqueued--; 4043 if (!jQuery3.queue(elem, "fx").length) { 4044 hooks.empty.fire(); 4045 } 4046 }); 4047 }); 4048 } 4049 for (prop in props) { 4050 value2 = props[prop]; 4051 if (rfxtypes.test(value2)) { 4052 delete props[prop]; 4053 toggle = toggle || value2 === "toggle"; 4054 if (value2 === (hidden ? "hide" : "show")) { 4055 if (value2 === "show" && dataShow && dataShow[prop] !== void 0) { 4056 hidden = true; 4057 } else { 4058 continue; 4059 } 4060 } 4061 orig[prop] = dataShow && dataShow[prop] || jQuery3.style(elem, prop); 4062 } 4063 } 4064 propTween = !jQuery3.isEmptyObject(props); 4065 if (!propTween && jQuery3.isEmptyObject(orig)) { 4066 return; 4067 } 4068 if (isBox && elem.nodeType === 1) { 4069 opts.overflow = [style.overflow, style.overflowX, style.overflowY]; 4070 restoreDisplay = dataShow && dataShow.display; 4071 if (restoreDisplay == null) { 4072 restoreDisplay = dataPriv.get(elem, "display"); 4073 } 4074 display = jQuery3.css(elem, "display"); 4075 if (display === "none") { 4076 if (restoreDisplay) { 4077 display = restoreDisplay; 4078 } else { 4079 showHide([elem], true); 4080 restoreDisplay = elem.style.display || restoreDisplay; 4081 display = jQuery3.css(elem, "display"); 4082 showHide([elem]); 4083 } 4084 } 4085 if (display === "inline" || display === "inline-block" && restoreDisplay != null) { 4086 if (jQuery3.css(elem, "float") === "none") { 4087 if (!propTween) { 4088 anim.done(function() { 4089 style.display = restoreDisplay; 4090 }); 4091 if (restoreDisplay == null) { 4092 display = style.display; 4093 restoreDisplay = display === "none" ? "" : display; 4094 } 4095 } 4096 style.display = "inline-block"; 4097 } 4098 } 4099 } 4100 if (opts.overflow) { 4101 style.overflow = "hidden"; 4102 anim.always(function() { 4103 style.overflow = opts.overflow[0]; 4104 style.overflowX = opts.overflow[1]; 4105 style.overflowY = opts.overflow[2]; 4106 }); 4107 } 4108 propTween = false; 4109 for (prop in orig) { 4110 if (!propTween) { 4111 if (dataShow) { 4112 if ("hidden" in dataShow) { 4113 hidden = dataShow.hidden; 4114 } 4115 } else { 4116 dataShow = dataPriv.access(elem, "fxshow", { display: restoreDisplay }); 4117 } 4118 if (toggle) { 4119 dataShow.hidden = !hidden; 4120 } 4121 if (hidden) { 4122 showHide([elem], true); 4123 } 4124 anim.done(function() { 4125 if (!hidden) { 4126 showHide([elem]); 4127 } 4128 dataPriv.remove(elem, "fxshow"); 4129 for (prop in orig) { 4130 jQuery3.style(elem, prop, orig[prop]); 4131 } 4132 }); 4133 } 4134 propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim); 4135 if (!(prop in dataShow)) { 4136 dataShow[prop] = propTween.start; 4137 if (hidden) { 4138 propTween.end = propTween.start; 4139 propTween.start = 0; 4140 } 4141 } 4142 } 4143 } 4144 function propFilter(props, specialEasing) { 4145 var index, name2, easing, value2, hooks; 4146 for (index in props) { 4147 name2 = camelCase(index); 4148 easing = specialEasing[name2]; 4149 value2 = props[index]; 4150 if (Array.isArray(value2)) { 4151 easing = value2[1]; 4152 value2 = props[index] = value2[0]; 4153 } 4154 if (index !== name2) { 4155 props[name2] = value2; 4156 delete props[index]; 4157 } 4158 hooks = jQuery3.cssHooks[name2]; 4159 if (hooks && "expand" in hooks) { 4160 value2 = hooks.expand(value2); 4161 delete props[name2]; 4162 for (index in value2) { 4163 if (!(index in props)) { 4164 props[index] = value2[index]; 4165 specialEasing[index] = easing; 4166 } 4167 } 4168 } else { 4169 specialEasing[name2] = easing; 4170 } 4171 } 4172 } 4173 function Animation(elem, properties, options) { 4174 var result, stopped, index = 0, length2 = Animation.prefilters.length, deferred = jQuery3.Deferred().always(function() { 4175 delete tick.elem; 4176 }), tick = function() { 4177 if (stopped) { 4178 return false; 4179 } 4180 var currentTime = fxNow || createFxNow(), remaining = Math.max(0, animation.startTime + animation.duration - currentTime), temp = remaining / animation.duration || 0, percent = 1 - temp, index2 = 0, length3 = animation.tweens.length; 4181 for (; index2 < length3; index2++) { 4182 animation.tweens[index2].run(percent); 4183 } 4184 deferred.notifyWith(elem, [animation, percent, remaining]); 4185 if (percent < 1 && length3) { 4186 return remaining; 4187 } 4188 if (!length3) { 4189 deferred.notifyWith(elem, [animation, 1, 0]); 4190 } 4191 deferred.resolveWith(elem, [animation]); 4192 return false; 4193 }, animation = deferred.promise({ 4194 elem, 4195 props: jQuery3.extend({}, properties), 4196 opts: jQuery3.extend(true, { 4197 specialEasing: {}, 4198 easing: jQuery3.easing._default 4199 }, options), 4200 originalProperties: properties, 4201 originalOptions: options, 4202 startTime: fxNow || createFxNow(), 4203 duration: options.duration, 4204 tweens: [], 4205 createTween: function(prop, end) { 4206 var tween = jQuery3.Tween( 4207 elem, 4208 animation.opts, 4209 prop, 4210 end, 4211 animation.opts.specialEasing[prop] || animation.opts.easing 4212 ); 4213 animation.tweens.push(tween); 4214 return tween; 4215 }, 4216 stop: function(gotoEnd) { 4217 var index2 = 0, length3 = gotoEnd ? animation.tweens.length : 0; 4218 if (stopped) { 4219 return this; 4220 } 4221 stopped = true; 4222 for (; index2 < length3; index2++) { 4223 animation.tweens[index2].run(1); 4224 } 4225 if (gotoEnd) { 4226 deferred.notifyWith(elem, [animation, 1, 0]); 4227 deferred.resolveWith(elem, [animation, gotoEnd]); 4228 } else { 4229 deferred.rejectWith(elem, [animation, gotoEnd]); 4230 } 4231 return this; 4232 } 4233 }), props = animation.props; 4234 propFilter(props, animation.opts.specialEasing); 4235 for (; index < length2; index++) { 4236 result = Animation.prefilters[index].call(animation, elem, props, animation.opts); 4237 if (result) { 4238 if (isFunction(result.stop)) { 4239 jQuery3._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result); 4240 } 4241 return result; 4242 } 4243 } 4244 jQuery3.map(props, createTween, animation); 4245 if (isFunction(animation.opts.start)) { 4246 animation.opts.start.call(elem, animation); 4247 } 4248 animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always); 4249 jQuery3.fx.timer( 4250 jQuery3.extend(tick, { 4251 elem, 4252 anim: animation, 4253 queue: animation.opts.queue 4254 }) 4255 ); 4256 return animation; 4257 } 4258 jQuery3.Animation = jQuery3.extend(Animation, { 4259 tweeners: { 4260 "*": [function(prop, value2) { 4261 var tween = this.createTween(prop, value2); 4262 adjustCSS(tween.elem, prop, rcssNum.exec(value2), tween); 4263 return tween; 4264 }] 4265 }, 4266 tweener: function(props, callback) { 4267 if (isFunction(props)) { 4268 callback = props; 4269 props = ["*"]; 4270 } else { 4271 props = props.match(rnothtmlwhite); 4272 } 4273 var prop, index = 0, length2 = props.length; 4274 for (; index < length2; index++) { 4275 prop = props[index]; 4276 Animation.tweeners[prop] = Animation.tweeners[prop] || []; 4277 Animation.tweeners[prop].unshift(callback); 4278 } 4279 }, 4280 prefilters: [defaultPrefilter], 4281 prefilter: function(callback, prepend) { 4282 if (prepend) { 4283 Animation.prefilters.unshift(callback); 4284 } else { 4285 Animation.prefilters.push(callback); 4286 } 4287 } 4288 }); 4289 jQuery3.speed = function(speed, easing, fn) { 4290 var opt = speed && typeof speed === "object" ? jQuery3.extend({}, speed) : { 4291 complete: fn || !fn && easing || isFunction(speed) && speed, 4292 duration: speed, 4293 easing: fn && easing || easing && !isFunction(easing) && easing 4294 }; 4295 if (jQuery3.fx.off) { 4296 opt.duration = 0; 4297 } else { 4298 if (typeof opt.duration !== "number") { 4299 if (opt.duration in jQuery3.fx.speeds) { 4300 opt.duration = jQuery3.fx.speeds[opt.duration]; 4301 } else { 4302 opt.duration = jQuery3.fx.speeds._default; 4303 } 4304 } 4305 } 4306 if (opt.queue == null || opt.queue === true) { 4307 opt.queue = "fx"; 4308 } 4309 opt.old = opt.complete; 4310 opt.complete = function() { 4311 if (isFunction(opt.old)) { 4312 opt.old.call(this); 4313 } 4314 if (opt.queue) { 4315 jQuery3.dequeue(this, opt.queue); 4316 } 4317 }; 4318 return opt; 4319 }; 4320 jQuery3.fn.extend({ 4321 fadeTo: function(speed, to, easing, callback) { 4322 return this.filter(isHiddenWithinTree).css("opacity", 0).show().end().animate({ opacity: to }, speed, easing, callback); 4323 }, 4324 animate: function(prop, speed, easing, callback) { 4325 var empty2 = jQuery3.isEmptyObject(prop), optall = jQuery3.speed(speed, easing, callback), doAnimation = function() { 4326 var anim = Animation(this, jQuery3.extend({}, prop), optall); 4327 if (empty2 || dataPriv.get(this, "finish")) { 4328 anim.stop(true); 4329 } 4330 }; 4331 doAnimation.finish = doAnimation; 4332 return empty2 || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation); 4333 }, 4334 stop: function(type2, clearQueue, gotoEnd) { 4335 var stopQueue = function(hooks) { 4336 var stop = hooks.stop; 4337 delete hooks.stop; 4338 stop(gotoEnd); 4339 }; 4340 if (typeof type2 !== "string") { 4341 gotoEnd = clearQueue; 4342 clearQueue = type2; 4343 type2 = void 0; 4344 } 4345 if (clearQueue) { 4346 this.queue(type2 || "fx", []); 4347 } 4348 return this.each(function() { 4349 var dequeue = true, index = type2 != null && type2 + "queueHooks", timers = jQuery3.timers, data = dataPriv.get(this); 4350 if (index) { 4351 if (data[index] && data[index].stop) { 4352 stopQueue(data[index]); 4353 } 4354 } else { 4355 for (index in data) { 4356 if (data[index] && data[index].stop && rrun.test(index)) { 4357 stopQueue(data[index]); 4358 } 4359 } 4360 } 4361 for (index = timers.length; index--; ) { 4362 if (timers[index].elem === this && (type2 == null || timers[index].queue === type2)) { 4363 timers[index].anim.stop(gotoEnd); 4364 dequeue = false; 4365 timers.splice(index, 1); 4366 } 4367 } 4368 if (dequeue || !gotoEnd) { 4369 jQuery3.dequeue(this, type2); 4370 } 4371 }); 4372 }, 4373 finish: function(type2) { 4374 if (type2 !== false) { 4375 type2 = type2 || "fx"; 4376 } 4377 return this.each(function() { 4378 var index, data = dataPriv.get(this), queue = data[type2 + "queue"], hooks = data[type2 + "queueHooks"], timers = jQuery3.timers, length2 = queue ? queue.length : 0; 4379 data.finish = true; 4380 jQuery3.queue(this, type2, []); 4381 if (hooks && hooks.stop) { 4382 hooks.stop.call(this, true); 4383 } 4384 for (index = timers.length; index--; ) { 4385 if (timers[index].elem === this && timers[index].queue === type2) { 4386 timers[index].anim.stop(true); 4387 timers.splice(index, 1); 4388 } 4389 } 4390 for (index = 0; index < length2; index++) { 4391 if (queue[index] && queue[index].finish) { 4392 queue[index].finish.call(this); 4393 } 4394 } 4395 delete data.finish; 4396 }); 4397 } 4398 }); 4399 jQuery3.each(["toggle", "show", "hide"], function(_i, name2) { 4400 var cssFn = jQuery3.fn[name2]; 4401 jQuery3.fn[name2] = function(speed, easing, callback) { 4402 return speed == null || typeof speed === "boolean" ? cssFn.apply(this, arguments) : this.animate(genFx(name2, true), speed, easing, callback); 4403 }; 4404 }); 4405 jQuery3.each({ 4406 slideDown: genFx("show"), 4407 slideUp: genFx("hide"), 4408 slideToggle: genFx("toggle"), 4409 fadeIn: { opacity: "show" }, 4410 fadeOut: { opacity: "hide" }, 4411 fadeToggle: { opacity: "toggle" } 4412 }, function(name2, props) { 4413 jQuery3.fn[name2] = function(speed, easing, callback) { 4414 return this.animate(props, speed, easing, callback); 4415 }; 4416 }); 4417 jQuery3.timers = []; 4418 jQuery3.fx.tick = function() { 4419 var timer, i2 = 0, timers = jQuery3.timers; 4420 fxNow = Date.now(); 4421 for (; i2 < timers.length; i2++) { 4422 timer = timers[i2]; 4423 if (!timer() && timers[i2] === timer) { 4424 timers.splice(i2--, 1); 4425 } 4426 } 4427 if (!timers.length) { 4428 jQuery3.fx.stop(); 4429 } 4430 fxNow = void 0; 4431 }; 4432 jQuery3.fx.timer = function(timer) { 4433 jQuery3.timers.push(timer); 4434 jQuery3.fx.start(); 4435 }; 4436 jQuery3.fx.interval = 13; 4437 jQuery3.fx.start = function() { 4438 if (inProgress) { 4439 return; 4440 } 4441 inProgress = true; 4442 schedule(); 4443 }; 4444 jQuery3.fx.stop = function() { 4445 inProgress = null; 4446 }; 4447 jQuery3.fx.speeds = { 4448 slow: 600, 4449 fast: 200, 4450 _default: 400 4451 }; 4452 jQuery3.fn.delay = function(time, type2) { 4453 time = jQuery3.fx ? jQuery3.fx.speeds[time] || time : time; 4454 type2 = type2 || "fx"; 4455 return this.queue(type2, function(next, hooks) { 4456 var timeout = window2.setTimeout(next, time); 4457 hooks.stop = function() { 4458 window2.clearTimeout(timeout); 4459 }; 4460 }); 4461 }; 4462 (function() { 4463 var input = document2.createElement("input"), select = document2.createElement("select"), opt = select.appendChild(document2.createElement("option")); 4464 input.type = "checkbox"; 4465 support.checkOn = input.value !== ""; 4466 support.optSelected = opt.selected; 4467 input = document2.createElement("input"); 4468 input.value = "t"; 4469 input.type = "radio"; 4470 support.radioValue = input.value === "t"; 4471 })(); 4472 var boolHook, attrHandle = jQuery3.expr.attrHandle; 4473 jQuery3.fn.extend({ 4474 attr: function(name2, value2) { 4475 return access(this, jQuery3.attr, name2, value2, arguments.length > 1); 4476 }, 4477 removeAttr: function(name2) { 4478 return this.each(function() { 4479 jQuery3.removeAttr(this, name2); 4480 }); 4481 } 4482 }); 4483 jQuery3.extend({ 4484 attr: function(elem, name2, value2) { 4485 var ret, hooks, nType = elem.nodeType; 4486 if (nType === 3 || nType === 8 || nType === 2) { 4487 return; 4488 } 4489 if (typeof elem.getAttribute === "undefined") { 4490 return jQuery3.prop(elem, name2, value2); 4491 } 4492 if (nType !== 1 || !jQuery3.isXMLDoc(elem)) { 4493 hooks = jQuery3.attrHooks[name2.toLowerCase()] || (jQuery3.expr.match.bool.test(name2) ? boolHook : void 0); 4494 } 4495 if (value2 !== void 0) { 4496 if (value2 === null) { 4497 jQuery3.removeAttr(elem, name2); 4498 return; 4499 } 4500 if (hooks && "set" in hooks && (ret = hooks.set(elem, value2, name2)) !== void 0) { 4501 return ret; 4502 } 4503 elem.setAttribute(name2, value2 + ""); 4504 return value2; 4505 } 4506 if (hooks && "get" in hooks && (ret = hooks.get(elem, name2)) !== null) { 4507 return ret; 4508 } 4509 ret = jQuery3.find.attr(elem, name2); 4510 return ret == null ? void 0 : ret; 4511 }, 4512 attrHooks: { 4513 type: { 4514 set: function(elem, value2) { 4515 if (!support.radioValue && value2 === "radio" && nodeName(elem, "input")) { 4516 var val = elem.value; 4517 elem.setAttribute("type", value2); 4518 if (val) { 4519 elem.value = val; 4520 } 4521 return value2; 4522 } 4523 } 4524 } 4525 }, 4526 removeAttr: function(elem, value2) { 4527 var name2, i2 = 0, attrNames = value2 && value2.match(rnothtmlwhite); 4528 if (attrNames && elem.nodeType === 1) { 4529 while (name2 = attrNames[i2++]) { 4530 elem.removeAttribute(name2); 4531 } 4532 } 4533 } 4534 }); 4535 boolHook = { 4536 set: function(elem, value2, name2) { 4537 if (value2 === false) { 4538 jQuery3.removeAttr(elem, name2); 4539 } else { 4540 elem.setAttribute(name2, name2); 4541 } 4542 return name2; 4543 } 4544 }; 4545 jQuery3.each(jQuery3.expr.match.bool.source.match(/\w+/g), function(_i, name2) { 4546 var getter = attrHandle[name2] || jQuery3.find.attr; 4547 attrHandle[name2] = function(elem, name3, isXML) { 4548 var ret, handle, lowercaseName = name3.toLowerCase(); 4549 if (!isXML) { 4550 handle = attrHandle[lowercaseName]; 4551 attrHandle[lowercaseName] = ret; 4552 ret = getter(elem, name3, isXML) != null ? lowercaseName : null; 4553 attrHandle[lowercaseName] = handle; 4554 } 4555 return ret; 4556 }; 4557 }); 4558 var rfocusable = /^(?:input|select|textarea|button)$/i, rclickable = /^(?:a|area)$/i; 4559 jQuery3.fn.extend({ 4560 prop: function(name2, value2) { 4561 return access(this, jQuery3.prop, name2, value2, arguments.length > 1); 4562 }, 4563 removeProp: function(name2) { 4564 return this.each(function() { 4565 delete this[jQuery3.propFix[name2] || name2]; 4566 }); 4567 } 4568 }); 4569 jQuery3.extend({ 4570 prop: function(elem, name2, value2) { 4571 var ret, hooks, nType = elem.nodeType; 4572 if (nType === 3 || nType === 8 || nType === 2) { 4573 return; 4574 } 4575 if (nType !== 1 || !jQuery3.isXMLDoc(elem)) { 4576 name2 = jQuery3.propFix[name2] || name2; 4577 hooks = jQuery3.propHooks[name2]; 4578 } 4579 if (value2 !== void 0) { 4580 if (hooks && "set" in hooks && (ret = hooks.set(elem, value2, name2)) !== void 0) { 4581 return ret; 4582 } 4583 return elem[name2] = value2; 4584 } 4585 if (hooks && "get" in hooks && (ret = hooks.get(elem, name2)) !== null) { 4586 return ret; 4587 } 4588 return elem[name2]; 4589 }, 4590 propHooks: { 4591 tabIndex: { 4592 get: function(elem) { 4593 var tabindex = jQuery3.find.attr(elem, "tabindex"); 4594 if (tabindex) { 4595 return parseInt(tabindex, 10); 4596 } 4597 if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) { 4598 return 0; 4599 } 4600 return -1; 4601 } 4602 } 4603 }, 4604 propFix: { 4605 "for": "htmlFor", 4606 "class": "className" 4607 } 4608 }); 4609 if (!support.optSelected) { 4610 jQuery3.propHooks.selected = { 4611 get: function(elem) { 4612 var parent = elem.parentNode; 4613 if (parent && parent.parentNode) { 4614 parent.parentNode.selectedIndex; 4615 } 4616 return null; 4617 }, 4618 set: function(elem) { 4619 var parent = elem.parentNode; 4620 if (parent) { 4621 parent.selectedIndex; 4622 if (parent.parentNode) { 4623 parent.parentNode.selectedIndex; 4624 } 4625 } 4626 } 4627 }; 4628 } 4629 jQuery3.each([ 4630 "tabIndex", 4631 "readOnly", 4632 "maxLength", 4633 "cellSpacing", 4634 "cellPadding", 4635 "rowSpan", 4636 "colSpan", 4637 "useMap", 4638 "frameBorder", 4639 "contentEditable" 4640 ], function() { 4641 jQuery3.propFix[this.toLowerCase()] = this; 4642 }); 4643 function stripAndCollapse(value2) { 4644 var tokens = value2.match(rnothtmlwhite) || []; 4645 return tokens.join(" "); 4646 } 4647 function getClass(elem) { 4648 return elem.getAttribute && elem.getAttribute("class") || ""; 4649 } 4650 function classesToArray(value2) { 4651 if (Array.isArray(value2)) { 4652 return value2; 4653 } 4654 if (typeof value2 === "string") { 4655 return value2.match(rnothtmlwhite) || []; 4656 } 4657 return []; 4658 } 4659 jQuery3.fn.extend({ 4660 addClass: function(value2) { 4661 var classNames, cur, curValue, className, i2, finalValue; 4662 if (isFunction(value2)) { 4663 return this.each(function(j) { 4664 jQuery3(this).addClass(value2.call(this, j, getClass(this))); 4665 }); 4666 } 4667 classNames = classesToArray(value2); 4668 if (classNames.length) { 4669 return this.each(function() { 4670 curValue = getClass(this); 4671 cur = this.nodeType === 1 && " " + stripAndCollapse(curValue) + " "; 4672 if (cur) { 4673 for (i2 = 0; i2 < classNames.length; i2++) { 4674 className = classNames[i2]; 4675 if (cur.indexOf(" " + className + " ") < 0) { 4676 cur += className + " "; 4677 } 4678 } 4679 finalValue = stripAndCollapse(cur); 4680 if (curValue !== finalValue) { 4681 this.setAttribute("class", finalValue); 4682 } 4683 } 4684 }); 4685 } 4686 return this; 4687 }, 4688 removeClass: function(value2) { 4689 var classNames, cur, curValue, className, i2, finalValue; 4690 if (isFunction(value2)) { 4691 return this.each(function(j) { 4692 jQuery3(this).removeClass(value2.call(this, j, getClass(this))); 4693 }); 4694 } 4695 if (!arguments.length) { 4696 return this.attr("class", ""); 4697 } 4698 classNames = classesToArray(value2); 4699 if (classNames.length) { 4700 return this.each(function() { 4701 curValue = getClass(this); 4702 cur = this.nodeType === 1 && " " + stripAndCollapse(curValue) + " "; 4703 if (cur) { 4704 for (i2 = 0; i2 < classNames.length; i2++) { 4705 className = classNames[i2]; 4706 while (cur.indexOf(" " + className + " ") > -1) { 4707 cur = cur.replace(" " + className + " ", " "); 4708 } 4709 } 4710 finalValue = stripAndCollapse(cur); 4711 if (curValue !== finalValue) { 4712 this.setAttribute("class", finalValue); 4713 } 4714 } 4715 }); 4716 } 4717 return this; 4718 }, 4719 toggleClass: function(value2, stateVal) { 4720 var classNames, className, i2, self2, type2 = typeof value2, isValidValue = type2 === "string" || Array.isArray(value2); 4721 if (isFunction(value2)) { 4722 return this.each(function(i3) { 4723 jQuery3(this).toggleClass( 4724 value2.call(this, i3, getClass(this), stateVal), 4725 stateVal 4726 ); 4727 }); 4728 } 4729 if (typeof stateVal === "boolean" && isValidValue) { 4730 return stateVal ? this.addClass(value2) : this.removeClass(value2); 4731 } 4732 classNames = classesToArray(value2); 4733 return this.each(function() { 4734 if (isValidValue) { 4735 self2 = jQuery3(this); 4736 for (i2 = 0; i2 < classNames.length; i2++) { 4737 className = classNames[i2]; 4738 if (self2.hasClass(className)) { 4739 self2.removeClass(className); 4740 } else { 4741 self2.addClass(className); 4742 } 4743 } 4744 } else if (value2 === void 0 || type2 === "boolean") { 4745 className = getClass(this); 4746 if (className) { 4747 dataPriv.set(this, "__className__", className); 4748 } 4749 if (this.setAttribute) { 4750 this.setAttribute( 4751 "class", 4752 className || value2 === false ? "" : dataPriv.get(this, "__className__") || "" 4753 ); 4754 } 4755 } 4756 }); 4757 }, 4758 hasClass: function(selector) { 4759 var className, elem, i2 = 0; 4760 className = " " + selector + " "; 4761 while (elem = this[i2++]) { 4762 if (elem.nodeType === 1 && (" " + stripAndCollapse(getClass(elem)) + " ").indexOf(className) > -1) { 4763 return true; 4764 } 4765 } 4766 return false; 4767 } 4768 }); 4769 var rreturn = /\r/g; 4770 jQuery3.fn.extend({ 4771 val: function(value2) { 4772 var hooks, ret, valueIsFunction, elem = this[0]; 4773 if (!arguments.length) { 4774 if (elem) { 4775 hooks = jQuery3.valHooks[elem.type] || jQuery3.valHooks[elem.nodeName.toLowerCase()]; 4776 if (hooks && "get" in hooks && (ret = hooks.get(elem, "value")) !== void 0) { 4777 return ret; 4778 } 4779 ret = elem.value; 4780 if (typeof ret === "string") { 4781 return ret.replace(rreturn, ""); 4782 } 4783 return ret == null ? "" : ret; 4784 } 4785 return; 4786 } 4787 valueIsFunction = isFunction(value2); 4788 return this.each(function(i2) { 4789 var val; 4790 if (this.nodeType !== 1) { 4791 return; 4792 } 4793 if (valueIsFunction) { 4794 val = value2.call(this, i2, jQuery3(this).val()); 4795 } else { 4796 val = value2; 4797 } 4798 if (val == null) { 4799 val = ""; 4800 } else if (typeof val === "number") { 4801 val += ""; 4802 } else if (Array.isArray(val)) { 4803 val = jQuery3.map(val, function(value3) { 4804 return value3 == null ? "" : value3 + ""; 4805 }); 4806 } 4807 hooks = jQuery3.valHooks[this.type] || jQuery3.valHooks[this.nodeName.toLowerCase()]; 4808 if (!hooks || !("set" in hooks) || hooks.set(this, val, "value") === void 0) { 4809 this.value = val; 4810 } 4811 }); 4812 } 4813 }); 4814 jQuery3.extend({ 4815 valHooks: { 4816 option: { 4817 get: function(elem) { 4818 var val = jQuery3.find.attr(elem, "value"); 4819 return val != null ? val : stripAndCollapse(jQuery3.text(elem)); 4820 } 4821 }, 4822 select: { 4823 get: function(elem) { 4824 var value2, option, i2, options = elem.options, index = elem.selectedIndex, one = elem.type === "select-one", values = one ? null : [], max = one ? index + 1 : options.length; 4825 if (index < 0) { 4826 i2 = max; 4827 } else { 4828 i2 = one ? index : 0; 4829 } 4830 for (; i2 < max; i2++) { 4831 option = options[i2]; 4832 if ((option.selected || i2 === index) && !option.disabled && (!option.parentNode.disabled || !nodeName(option.parentNode, "optgroup"))) { 4833 value2 = jQuery3(option).val(); 4834 if (one) { 4835 return value2; 4836 } 4837 values.push(value2); 4838 } 4839 } 4840 return values; 4841 }, 4842 set: function(elem, value2) { 4843 var optionSet, option, options = elem.options, values = jQuery3.makeArray(value2), i2 = options.length; 4844 while (i2--) { 4845 option = options[i2]; 4846 if (option.selected = jQuery3.inArray(jQuery3.valHooks.option.get(option), values) > -1) { 4847 optionSet = true; 4848 } 4849 } 4850 if (!optionSet) { 4851 elem.selectedIndex = -1; 4852 } 4853 return values; 4854 } 4855 } 4856 } 4857 }); 4858 jQuery3.each(["radio", "checkbox"], function() { 4859 jQuery3.valHooks[this] = { 4860 set: function(elem, value2) { 4861 if (Array.isArray(value2)) { 4862 return elem.checked = jQuery3.inArray(jQuery3(elem).val(), value2) > -1; 4863 } 4864 } 4865 }; 4866 if (!support.checkOn) { 4867 jQuery3.valHooks[this].get = function(elem) { 4868 return elem.getAttribute("value") === null ? "on" : elem.value; 4869 }; 4870 } 4871 }); 4872 var location2 = window2.location; 4873 var nonce = { guid: Date.now() }; 4874 var rquery = /\?/; 4875 jQuery3.parseXML = function(data) { 4876 var xml, parserErrorElem; 4877 if (!data || typeof data !== "string") { 4878 return null; 4879 } 4880 try { 4881 xml = new window2.DOMParser().parseFromString(data, "text/xml"); 4882 } catch (e) { 4883 } 4884 parserErrorElem = xml && xml.getElementsByTagName("parsererror")[0]; 4885 if (!xml || parserErrorElem) { 4886 jQuery3.error("Invalid XML: " + (parserErrorElem ? jQuery3.map(parserErrorElem.childNodes, function(el) { 4887 return el.textContent; 4888 }).join("\n") : data)); 4889 } 4890 return xml; 4891 }; 4892 var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, stopPropagationCallback = function(e) { 4893 e.stopPropagation(); 4894 }; 4895 jQuery3.extend(jQuery3.event, { 4896 trigger: function(event, data, elem, onlyHandlers) { 4897 var i2, cur, tmp, bubbleType, ontype, handle, special, lastElement, eventPath = [elem || document2], type2 = hasOwn.call(event, "type") ? event.type : event, namespaces = hasOwn.call(event, "namespace") ? event.namespace.split(".") : []; 4898 cur = lastElement = tmp = elem = elem || document2; 4899 if (elem.nodeType === 3 || elem.nodeType === 8) { 4900 return; 4901 } 4902 if (rfocusMorph.test(type2 + jQuery3.event.triggered)) { 4903 return; 4904 } 4905 if (type2.indexOf(".") > -1) { 4906 namespaces = type2.split("."); 4907 type2 = namespaces.shift(); 4908 namespaces.sort(); 4909 } 4910 ontype = type2.indexOf(":") < 0 && "on" + type2; 4911 event = event[jQuery3.expando] ? event : new jQuery3.Event(type2, typeof event === "object" && event); 4912 event.isTrigger = onlyHandlers ? 2 : 3; 4913 event.namespace = namespaces.join("."); 4914 event.rnamespace = event.namespace ? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)") : null; 4915 event.result = void 0; 4916 if (!event.target) { 4917 event.target = elem; 4918 } 4919 data = data == null ? [event] : jQuery3.makeArray(data, [event]); 4920 special = jQuery3.event.special[type2] || {}; 4921 if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) { 4922 return; 4923 } 4924 if (!onlyHandlers && !special.noBubble && !isWindow(elem)) { 4925 bubbleType = special.delegateType || type2; 4926 if (!rfocusMorph.test(bubbleType + type2)) { 4927 cur = cur.parentNode; 4928 } 4929 for (; cur; cur = cur.parentNode) { 4930 eventPath.push(cur); 4931 tmp = cur; 4932 } 4933 if (tmp === (elem.ownerDocument || document2)) { 4934 eventPath.push(tmp.defaultView || tmp.parentWindow || window2); 4935 } 4936 } 4937 i2 = 0; 4938 while ((cur = eventPath[i2++]) && !event.isPropagationStopped()) { 4939 lastElement = cur; 4940 event.type = i2 > 1 ? bubbleType : special.bindType || type2; 4941 handle = (dataPriv.get(cur, "events") || /* @__PURE__ */ Object.create(null))[event.type] && dataPriv.get(cur, "handle"); 4942 if (handle) { 4943 handle.apply(cur, data); 4944 } 4945 handle = ontype && cur[ontype]; 4946 if (handle && handle.apply && acceptData(cur)) { 4947 event.result = handle.apply(cur, data); 4948 if (event.result === false) { 4949 event.preventDefault(); 4950 } 4951 } 4952 } 4953 event.type = type2; 4954 if (!onlyHandlers && !event.isDefaultPrevented()) { 4955 if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) { 4956 if (ontype && isFunction(elem[type2]) && !isWindow(elem)) { 4957 tmp = elem[ontype]; 4958 if (tmp) { 4959 elem[ontype] = null; 4960 } 4961 jQuery3.event.triggered = type2; 4962 if (event.isPropagationStopped()) { 4963 lastElement.addEventListener(type2, stopPropagationCallback); 4964 } 4965 elem[type2](); 4966 if (event.isPropagationStopped()) { 4967 lastElement.removeEventListener(type2, stopPropagationCallback); 4968 } 4969 jQuery3.event.triggered = void 0; 4970 if (tmp) { 4971 elem[ontype] = tmp; 4972 } 4973 } 4974 } 4975 } 4976 return event.result; 4977 }, 4978 simulate: function(type2, elem, event) { 4979 var e = jQuery3.extend( 4980 new jQuery3.Event(), 4981 event, 4982 { 4983 type: type2, 4984 isSimulated: true 4985 } 4986 ); 4987 jQuery3.event.trigger(e, null, elem); 4988 } 4989 }); 4990 jQuery3.fn.extend({ 4991 trigger: function(type2, data) { 4992 return this.each(function() { 4993 jQuery3.event.trigger(type2, data, this); 4994 }); 4995 }, 4996 triggerHandler: function(type2, data) { 4997 var elem = this[0]; 4998 if (elem) { 4999 return jQuery3.event.trigger(type2, data, elem, true); 5000 } 5001 } 5002 }); 5003 var rbracket = /\[\]$/, rCRLF = /\r?\n/g, rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, rsubmittable = /^(?:input|select|textarea|keygen)/i; 5004 function buildParams(prefix, obj, traditional, add) { 5005 var name2; 5006 if (Array.isArray(obj)) { 5007 jQuery3.each(obj, function(i2, v) { 5008 if (traditional || rbracket.test(prefix)) { 5009 add(prefix, v); 5010 } else { 5011 buildParams( 5012 prefix + "[" + (typeof v === "object" && v != null ? i2 : "") + "]", 5013 v, 5014 traditional, 5015 add 5016 ); 5017 } 5018 }); 5019 } else if (!traditional && toType(obj) === "object") { 5020 for (name2 in obj) { 5021 buildParams(prefix + "[" + name2 + "]", obj[name2], traditional, add); 5022 } 5023 } else { 5024 add(prefix, obj); 5025 } 5026 } 5027 jQuery3.param = function(a, traditional) { 5028 var prefix, s = [], add = function(key, valueOrFunction) { 5029 var value2 = isFunction(valueOrFunction) ? valueOrFunction() : valueOrFunction; 5030 s[s.length] = encodeURIComponent(key) + "=" + encodeURIComponent(value2 == null ? "" : value2); 5031 }; 5032 if (a == null) { 5033 return ""; 5034 } 5035 if (Array.isArray(a) || a.jquery && !jQuery3.isPlainObject(a)) { 5036 jQuery3.each(a, function() { 5037 add(this.name, this.value); 5038 }); 5039 } else { 5040 for (prefix in a) { 5041 buildParams(prefix, a[prefix], traditional, add); 5042 } 5043 } 5044 return s.join("&"); 5045 }; 5046 jQuery3.fn.extend({ 5047 serialize: function() { 5048 return jQuery3.param(this.serializeArray()); 5049 }, 5050 serializeArray: function() { 5051 return this.map(function() { 5052 var elements = jQuery3.prop(this, "elements"); 5053 return elements ? jQuery3.makeArray(elements) : this; 5054 }).filter(function() { 5055 var type2 = this.type; 5056 return this.name && !jQuery3(this).is(":disabled") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type2) && (this.checked || !rcheckableType.test(type2)); 5057 }).map(function(_i, elem) { 5058 var val = jQuery3(this).val(); 5059 if (val == null) { 5060 return null; 5061 } 5062 if (Array.isArray(val)) { 5063 return jQuery3.map(val, function(val2) { 5064 return { name: elem.name, value: val2.replace(rCRLF, "\r\n") }; 5065 }); 5066 } 5067 return { name: elem.name, value: val.replace(rCRLF, "\r\n") }; 5068 }).get(); 5069 } 5070 }); 5071 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 = {}, transports2 = {}, allTypes = "*/".concat("*"), originAnchor = document2.createElement("a"); 5072 originAnchor.href = location2.href; 5073 function addToPrefiltersOrTransports(structure) { 5074 return function(dataTypeExpression, func) { 5075 if (typeof dataTypeExpression !== "string") { 5076 func = dataTypeExpression; 5077 dataTypeExpression = "*"; 5078 } 5079 var dataType, i2 = 0, dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || []; 5080 if (isFunction(func)) { 5081 while (dataType = dataTypes[i2++]) { 5082 if (dataType[0] === "+") { 5083 dataType = dataType.slice(1) || "*"; 5084 (structure[dataType] = structure[dataType] || []).unshift(func); 5085 } else { 5086 (structure[dataType] = structure[dataType] || []).push(func); 5087 } 5088 } 5089 } 5090 }; 5091 } 5092 function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) { 5093 var inspected = {}, seekingTransport = structure === transports2; 5094 function inspect(dataType) { 5095 var selected; 5096 inspected[dataType] = true; 5097 jQuery3.each(structure[dataType] || [], function(_, prefilterOrFactory) { 5098 var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR); 5099 if (typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[dataTypeOrTransport]) { 5100 options.dataTypes.unshift(dataTypeOrTransport); 5101 inspect(dataTypeOrTransport); 5102 return false; 5103 } else if (seekingTransport) { 5104 return !(selected = dataTypeOrTransport); 5105 } 5106 }); 5107 return selected; 5108 } 5109 return inspect(options.dataTypes[0]) || !inspected["*"] && inspect("*"); 5110 } 5111 function ajaxExtend(target, src) { 5112 var key, deep, flatOptions = jQuery3.ajaxSettings.flatOptions || {}; 5113 for (key in src) { 5114 if (src[key] !== void 0) { 5115 (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key]; 5116 } 5117 } 5118 if (deep) { 5119 jQuery3.extend(true, target, deep); 5120 } 5121 return target; 5122 } 5123 function ajaxHandleResponses(s, jqXHR, responses) { 5124 var ct, type2, finalDataType, firstDataType, contents = s.contents, dataTypes = s.dataTypes; 5125 while (dataTypes[0] === "*") { 5126 dataTypes.shift(); 5127 if (ct === void 0) { 5128 ct = s.mimeType || jqXHR.getResponseHeader("Content-Type"); 5129 } 5130 } 5131 if (ct) { 5132 for (type2 in contents) { 5133 if (contents[type2] && contents[type2].test(ct)) { 5134 dataTypes.unshift(type2); 5135 break; 5136 } 5137 } 5138 } 5139 if (dataTypes[0] in responses) { 5140 finalDataType = dataTypes[0]; 5141 } else { 5142 for (type2 in responses) { 5143 if (!dataTypes[0] || s.converters[type2 + " " + dataTypes[0]]) { 5144 finalDataType = type2; 5145 break; 5146 } 5147 if (!firstDataType) { 5148 firstDataType = type2; 5149 } 5150 } 5151 finalDataType = finalDataType || firstDataType; 5152 } 5153 if (finalDataType) { 5154 if (finalDataType !== dataTypes[0]) { 5155 dataTypes.unshift(finalDataType); 5156 } 5157 return responses[finalDataType]; 5158 } 5159 } 5160 function ajaxConvert(s, response, jqXHR, isSuccess) { 5161 var conv2, current, conv, tmp, prev2, converters = {}, dataTypes = s.dataTypes.slice(); 5162 if (dataTypes[1]) { 5163 for (conv in s.converters) { 5164 converters[conv.toLowerCase()] = s.converters[conv]; 5165 } 5166 } 5167 current = dataTypes.shift(); 5168 while (current) { 5169 if (s.responseFields[current]) { 5170 jqXHR[s.responseFields[current]] = response; 5171 } 5172 if (!prev2 && isSuccess && s.dataFilter) { 5173 response = s.dataFilter(response, s.dataType); 5174 } 5175 prev2 = current; 5176 current = dataTypes.shift(); 5177 if (current) { 5178 if (current === "*") { 5179 current = prev2; 5180 } else if (prev2 !== "*" && prev2 !== current) { 5181 conv = converters[prev2 + " " + current] || converters["* " + current]; 5182 if (!conv) { 5183 for (conv2 in converters) { 5184 tmp = conv2.split(" "); 5185 if (tmp[1] === current) { 5186 conv = converters[prev2 + " " + tmp[0]] || converters["* " + tmp[0]]; 5187 if (conv) { 5188 if (conv === true) { 5189 conv = converters[conv2]; 5190 } else if (converters[conv2] !== true) { 5191 current = tmp[0]; 5192 dataTypes.unshift(tmp[1]); 5193 } 5194 break; 5195 } 5196 } 5197 } 5198 } 5199 if (conv !== true) { 5200 if (conv && s.throws) { 5201 response = conv(response); 5202 } else { 5203 try { 5204 response = conv(response); 5205 } catch (e) { 5206 return { 5207 state: "parsererror", 5208 error: conv ? e : "No conversion from " + prev2 + " to " + current 5209 }; 5210 } 5211 } 5212 } 5213 } 5214 } 5215 } 5216 return { state: "success", data: response }; 5217 } 5218 jQuery3.extend({ 5219 active: 0, 5220 lastModified: {}, 5221 etag: {}, 5222 ajaxSettings: { 5223 url: location2.href, 5224 type: "GET", 5225 isLocal: rlocalProtocol.test(location2.protocol), 5226 global: true, 5227 processData: true, 5228 async: true, 5229 contentType: "application/x-www-form-urlencoded; charset=UTF-8", 5230 accepts: { 5231 "*": allTypes, 5232 text: "text/plain", 5233 html: "text/html", 5234 xml: "application/xml, text/xml", 5235 json: "application/json, text/javascript" 5236 }, 5237 contents: { 5238 xml: /\bxml\b/, 5239 html: /\bhtml/, 5240 json: /\bjson\b/ 5241 }, 5242 responseFields: { 5243 xml: "responseXML", 5244 text: "responseText", 5245 json: "responseJSON" 5246 }, 5247 converters: { 5248 "* text": String, 5249 "text html": true, 5250 "text json": JSON.parse, 5251 "text xml": jQuery3.parseXML 5252 }, 5253 flatOptions: { 5254 url: true, 5255 context: true 5256 } 5257 }, 5258 ajaxSetup: function(target, settings) { 5259 return settings ? ajaxExtend(ajaxExtend(target, jQuery3.ajaxSettings), settings) : ajaxExtend(jQuery3.ajaxSettings, target); 5260 }, 5261 ajaxPrefilter: addToPrefiltersOrTransports(prefilters), 5262 ajaxTransport: addToPrefiltersOrTransports(transports2), 5263 ajax: function(url2, options) { 5264 if (typeof url2 === "object") { 5265 options = url2; 5266 url2 = void 0; 5267 } 5268 options = options || {}; 5269 var transport, cacheURL, responseHeadersString, responseHeaders, timeoutTimer, urlAnchor, completed2, fireGlobals, i2, uncached, s = jQuery3.ajaxSetup({}, options), callbackContext = s.context || s, globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery3(callbackContext) : jQuery3.event, deferred = jQuery3.Deferred(), completeDeferred = jQuery3.Callbacks("once memory"), statusCode = s.statusCode || {}, requestHeaders = {}, requestHeadersNames = {}, strAbort = "canceled", jqXHR = { 5270 readyState: 0, 5271 getResponseHeader: function(key) { 5272 var match; 5273 if (completed2) { 5274 if (!responseHeaders) { 5275 responseHeaders = {}; 5276 while (match = rheaders.exec(responseHeadersString)) { 5277 responseHeaders[match[1].toLowerCase() + " "] = (responseHeaders[match[1].toLowerCase() + " "] || []).concat(match[2]); 5278 } 5279 } 5280 match = responseHeaders[key.toLowerCase() + " "]; 5281 } 5282 return match == null ? null : match.join(", "); 5283 }, 5284 getAllResponseHeaders: function() { 5285 return completed2 ? responseHeadersString : null; 5286 }, 5287 setRequestHeader: function(name2, value2) { 5288 if (completed2 == null) { 5289 name2 = requestHeadersNames[name2.toLowerCase()] = requestHeadersNames[name2.toLowerCase()] || name2; 5290 requestHeaders[name2] = value2; 5291 } 5292 return this; 5293 }, 5294 overrideMimeType: function(type2) { 5295 if (completed2 == null) { 5296 s.mimeType = type2; 5297 } 5298 return this; 5299 }, 5300 statusCode: function(map2) { 5301 var code; 5302 if (map2) { 5303 if (completed2) { 5304 jqXHR.always(map2[jqXHR.status]); 5305 } else { 5306 for (code in map2) { 5307 statusCode[code] = [statusCode[code], map2[code]]; 5308 } 5309 } 5310 } 5311 return this; 5312 }, 5313 abort: function(statusText) { 5314 var finalText = statusText || strAbort; 5315 if (transport) { 5316 transport.abort(finalText); 5317 } 5318 done(0, finalText); 5319 return this; 5320 } 5321 }; 5322 deferred.promise(jqXHR); 5323 s.url = ((url2 || s.url || location2.href) + "").replace(rprotocol, location2.protocol + "//"); 5324 s.type = options.method || options.type || s.method || s.type; 5325 s.dataTypes = (s.dataType || "*").toLowerCase().match(rnothtmlwhite) || [""]; 5326 if (s.crossDomain == null) { 5327 urlAnchor = document2.createElement("a"); 5328 try { 5329 urlAnchor.href = s.url; 5330 urlAnchor.href = urlAnchor.href; 5331 s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== urlAnchor.protocol + "//" + urlAnchor.host; 5332 } catch (e) { 5333 s.crossDomain = true; 5334 } 5335 } 5336 if (s.data && s.processData && typeof s.data !== "string") { 5337 s.data = jQuery3.param(s.data, s.traditional); 5338 } 5339 inspectPrefiltersOrTransports(prefilters, s, options, jqXHR); 5340 if (completed2) { 5341 return jqXHR; 5342 } 5343 fireGlobals = jQuery3.event && s.global; 5344 if (fireGlobals && jQuery3.active++ === 0) { 5345 jQuery3.event.trigger("ajaxStart"); 5346 } 5347 s.type = s.type.toUpperCase(); 5348 s.hasContent = !rnoContent.test(s.type); 5349 cacheURL = s.url.replace(rhash, ""); 5350 if (!s.hasContent) { 5351 uncached = s.url.slice(cacheURL.length); 5352 if (s.data && (s.processData || typeof s.data === "string")) { 5353 cacheURL += (rquery.test(cacheURL) ? "&" : "?") + s.data; 5354 delete s.data; 5355 } 5356 if (s.cache === false) { 5357 cacheURL = cacheURL.replace(rantiCache, "$1"); 5358 uncached = (rquery.test(cacheURL) ? "&" : "?") + "_=" + nonce.guid++ + uncached; 5359 } 5360 s.url = cacheURL + uncached; 5361 } else if (s.data && s.processData && (s.contentType || "").indexOf("application/x-www-form-urlencoded") === 0) { 5362 s.data = s.data.replace(r20, "+"); 5363 } 5364 if (s.ifModified) { 5365 if (jQuery3.lastModified[cacheURL]) { 5366 jqXHR.setRequestHeader("If-Modified-Since", jQuery3.lastModified[cacheURL]); 5367 } 5368 if (jQuery3.etag[cacheURL]) { 5369 jqXHR.setRequestHeader("If-None-Match", jQuery3.etag[cacheURL]); 5370 } 5371 } 5372 if (s.data && s.hasContent && s.contentType !== false || options.contentType) { 5373 jqXHR.setRequestHeader("Content-Type", s.contentType); 5374 } 5375 jqXHR.setRequestHeader( 5376 "Accept", 5377 s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== "*" ? ", " + allTypes + "; q=0.01" : "") : s.accepts["*"] 5378 ); 5379 for (i2 in s.headers) { 5380 jqXHR.setRequestHeader(i2, s.headers[i2]); 5381 } 5382 if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || completed2)) { 5383 return jqXHR.abort(); 5384 } 5385 strAbort = "abort"; 5386 completeDeferred.add(s.complete); 5387 jqXHR.done(s.success); 5388 jqXHR.fail(s.error); 5389 transport = inspectPrefiltersOrTransports(transports2, s, options, jqXHR); 5390 if (!transport) { 5391 done(-1, "No Transport"); 5392 } else { 5393 jqXHR.readyState = 1; 5394 if (fireGlobals) { 5395 globalEventContext.trigger("ajaxSend", [jqXHR, s]); 5396 } 5397 if (completed2) { 5398 return jqXHR; 5399 } 5400 if (s.async && s.timeout > 0) { 5401 timeoutTimer = window2.setTimeout(function() { 5402 jqXHR.abort("timeout"); 5403 }, s.timeout); 5404 } 5405 try { 5406 completed2 = false; 5407 transport.send(requestHeaders, done); 5408 } catch (e) { 5409 if (completed2) { 5410 throw e; 5411 } 5412 done(-1, e); 5413 } 5414 } 5415 function done(status, nativeStatusText, responses, headers) { 5416 var isSuccess, success, error, response, modified, statusText = nativeStatusText; 5417 if (completed2) { 5418 return; 5419 } 5420 completed2 = true; 5421 if (timeoutTimer) { 5422 window2.clearTimeout(timeoutTimer); 5423 } 5424 transport = void 0; 5425 responseHeadersString = headers || ""; 5426 jqXHR.readyState = status > 0 ? 4 : 0; 5427 isSuccess = status >= 200 && status < 300 || status === 304; 5428 if (responses) { 5429 response = ajaxHandleResponses(s, jqXHR, responses); 5430 } 5431 if (!isSuccess && jQuery3.inArray("script", s.dataTypes) > -1 && jQuery3.inArray("json", s.dataTypes) < 0) { 5432 s.converters["text script"] = function() { 5433 }; 5434 } 5435 response = ajaxConvert(s, response, jqXHR, isSuccess); 5436 if (isSuccess) { 5437 if (s.ifModified) { 5438 modified = jqXHR.getResponseHeader("Last-Modified"); 5439 if (modified) { 5440 jQuery3.lastModified[cacheURL] = modified; 5441 } 5442 modified = jqXHR.getResponseHeader("etag"); 5443 if (modified) { 5444 jQuery3.etag[cacheURL] = modified; 5445 } 5446 } 5447 if (status === 204 || s.type === "HEAD") { 5448 statusText = "nocontent"; 5449 } else if (status === 304) { 5450 statusText = "notmodified"; 5451 } else { 5452 statusText = response.state; 5453 success = response.data; 5454 error = response.error; 5455 isSuccess = !error; 5456 } 5457 } else { 5458 error = statusText; 5459 if (status || !statusText) { 5460 statusText = "error"; 5461 if (status < 0) { 5462 status = 0; 5463 } 5464 } 5465 } 5466 jqXHR.status = status; 5467 jqXHR.statusText = (nativeStatusText || statusText) + ""; 5468 if (isSuccess) { 5469 deferred.resolveWith(callbackContext, [success, statusText, jqXHR]); 5470 } else { 5471 deferred.rejectWith(callbackContext, [jqXHR, statusText, error]); 5472 } 5473 jqXHR.statusCode(statusCode); 5474 statusCode = void 0; 5475 if (fireGlobals) { 5476 globalEventContext.trigger( 5477 isSuccess ? "ajaxSuccess" : "ajaxError", 5478 [jqXHR, s, isSuccess ? success : error] 5479 ); 5480 } 5481 completeDeferred.fireWith(callbackContext, [jqXHR, statusText]); 5482 if (fireGlobals) { 5483 globalEventContext.trigger("ajaxComplete", [jqXHR, s]); 5484 if (!--jQuery3.active) { 5485 jQuery3.event.trigger("ajaxStop"); 5486 } 5487 } 5488 } 5489 return jqXHR; 5490 }, 5491 getJSON: function(url2, data, callback) { 5492 return jQuery3.get(url2, data, callback, "json"); 5493 }, 5494 getScript: function(url2, callback) { 5495 return jQuery3.get(url2, void 0, callback, "script"); 5496 } 5497 }); 5498 jQuery3.each(["get", "post"], function(_i, method) { 5499 jQuery3[method] = function(url2, data, callback, type2) { 5500 if (isFunction(data)) { 5501 type2 = type2 || callback; 5502 callback = data; 5503 data = void 0; 5504 } 5505 return jQuery3.ajax(jQuery3.extend({ 5506 url: url2, 5507 type: method, 5508 dataType: type2, 5509 data, 5510 success: callback 5511 }, jQuery3.isPlainObject(url2) && url2)); 5512 }; 5513 }); 5514 jQuery3.ajaxPrefilter(function(s) { 5515 var i2; 5516 for (i2 in s.headers) { 5517 if (i2.toLowerCase() === "content-type") { 5518 s.contentType = s.headers[i2] || ""; 5519 } 5520 } 5521 }); 5522 jQuery3._evalUrl = function(url2, options, doc) { 5523 return jQuery3.ajax({ 5524 url: url2, 5525 type: "GET", 5526 dataType: "script", 5527 cache: true, 5528 async: false, 5529 global: false, 5530 converters: { 5531 "text script": function() { 5532 } 5533 }, 5534 dataFilter: function(response) { 5535 jQuery3.globalEval(response, options, doc); 5536 } 5537 }); 5538 }; 5539 jQuery3.fn.extend({ 5540 wrapAll: function(html) { 5541 var wrap; 5542 if (this[0]) { 5543 if (isFunction(html)) { 5544 html = html.call(this[0]); 5545 } 5546 wrap = jQuery3(html, this[0].ownerDocument).eq(0).clone(true); 5547 if (this[0].parentNode) { 5548 wrap.insertBefore(this[0]); 5549 } 5550 wrap.map(function() { 5551 var elem = this; 5552 while (elem.firstElementChild) { 5553 elem = elem.firstElementChild; 5554 } 5555 return elem; 5556 }).append(this); 5557 } 5558 return this; 5559 }, 5560 wrapInner: function(html) { 5561 if (isFunction(html)) { 5562 return this.each(function(i2) { 5563 jQuery3(this).wrapInner(html.call(this, i2)); 5564 }); 5565 } 5566 return this.each(function() { 5567 var self2 = jQuery3(this), contents = self2.contents(); 5568 if (contents.length) { 5569 contents.wrapAll(html); 5570 } else { 5571 self2.append(html); 5572 } 5573 }); 5574 }, 5575 wrap: function(html) { 5576 var htmlIsFunction = isFunction(html); 5577 return this.each(function(i2) { 5578 jQuery3(this).wrapAll(htmlIsFunction ? html.call(this, i2) : html); 5579 }); 5580 }, 5581 unwrap: function(selector) { 5582 this.parent(selector).not("body").each(function() { 5583 jQuery3(this).replaceWith(this.childNodes); 5584 }); 5585 return this; 5586 } 5587 }); 5588 jQuery3.expr.pseudos.hidden = function(elem) { 5589 return !jQuery3.expr.pseudos.visible(elem); 5590 }; 5591 jQuery3.expr.pseudos.visible = function(elem) { 5592 return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length); 5593 }; 5594 jQuery3.ajaxSettings.xhr = function() { 5595 try { 5596 return new window2.XMLHttpRequest(); 5597 } catch (e) { 5598 } 5599 }; 5600 var xhrSuccessStatus = { 5601 0: 200, 5602 1223: 204 5603 }, xhrSupported = jQuery3.ajaxSettings.xhr(); 5604 support.cors = !!xhrSupported && "withCredentials" in xhrSupported; 5605 support.ajax = xhrSupported = !!xhrSupported; 5606 jQuery3.ajaxTransport(function(options) { 5607 var callback, errorCallback; 5608 if (support.cors || xhrSupported && !options.crossDomain) { 5609 return { 5610 send: function(headers, complete) { 5611 var i2, xhr = options.xhr(); 5612 xhr.open( 5613 options.type, 5614 options.url, 5615 options.async, 5616 options.username, 5617 options.password 5618 ); 5619 if (options.xhrFields) { 5620 for (i2 in options.xhrFields) { 5621 xhr[i2] = options.xhrFields[i2]; 5622 } 5623 } 5624 if (options.mimeType && xhr.overrideMimeType) { 5625 xhr.overrideMimeType(options.mimeType); 5626 } 5627 if (!options.crossDomain && !headers["X-Requested-With"]) { 5628 headers["X-Requested-With"] = "XMLHttpRequest"; 5629 } 5630 for (i2 in headers) { 5631 xhr.setRequestHeader(i2, headers[i2]); 5632 } 5633 callback = function(type2) { 5634 return function() { 5635 if (callback) { 5636 callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null; 5637 if (type2 === "abort") { 5638 xhr.abort(); 5639 } else if (type2 === "error") { 5640 if (typeof xhr.status !== "number") { 5641 complete(0, "error"); 5642 } else { 5643 complete( 5644 xhr.status, 5645 xhr.statusText 5646 ); 5647 } 5648 } else { 5649 complete( 5650 xhrSuccessStatus[xhr.status] || xhr.status, 5651 xhr.statusText, 5652 (xhr.responseType || "text") !== "text" || typeof xhr.responseText !== "string" ? { binary: xhr.response } : { text: xhr.responseText }, 5653 xhr.getAllResponseHeaders() 5654 ); 5655 } 5656 } 5657 }; 5658 }; 5659 xhr.onload = callback(); 5660 errorCallback = xhr.onerror = xhr.ontimeout = callback("error"); 5661 if (xhr.onabort !== void 0) { 5662 xhr.onabort = errorCallback; 5663 } else { 5664 xhr.onreadystatechange = function() { 5665 if (xhr.readyState === 4) { 5666 window2.setTimeout(function() { 5667 if (callback) { 5668 errorCallback(); 5669 } 5670 }); 5671 } 5672 }; 5673 } 5674 callback = callback("abort"); 5675 try { 5676 xhr.send(options.hasContent && options.data || null); 5677 } catch (e) { 5678 if (callback) { 5679 throw e; 5680 } 5681 } 5682 }, 5683 abort: function() { 5684 if (callback) { 5685 callback(); 5686 } 5687 } 5688 }; 5689 } 5690 }); 5691 jQuery3.ajaxPrefilter(function(s) { 5692 if (s.crossDomain) { 5693 s.contents.script = false; 5694 } 5695 }); 5696 jQuery3.ajaxSetup({ 5697 accepts: { 5698 script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" 5699 }, 5700 contents: { 5701 script: /\b(?:java|ecma)script\b/ 5702 }, 5703 converters: { 5704 "text script": function(text) { 5705 jQuery3.globalEval(text); 5706 return text; 5707 } 5708 } 5709 }); 5710 jQuery3.ajaxPrefilter("script", function(s) { 5711 if (s.cache === void 0) { 5712 s.cache = false; 5713 } 5714 if (s.crossDomain) { 5715 s.type = "GET"; 5716 } 5717 }); 5718 jQuery3.ajaxTransport("script", function(s) { 5719 if (s.crossDomain || s.scriptAttrs) { 5720 var script, callback; 5721 return { 5722 send: function(_, complete) { 5723 script = jQuery3("<script>").attr(s.scriptAttrs || {}).prop({ charset: s.scriptCharset, src: s.url }).on("load error", callback = function(evt) { 5724 script.remove(); 5725 callback = null; 5726 if (evt) { 5727 complete(evt.type === "error" ? 404 : 200, evt.type); 5728 } 5729 }); 5730 document2.head.appendChild(script[0]); 5731 }, 5732 abort: function() { 5733 if (callback) { 5734 callback(); 5735 } 5736 } 5737 }; 5738 } 5739 }); 5740 var oldCallbacks = [], rjsonp = /(=)\?(?=&|$)|\?\?/; 5741 jQuery3.ajaxSetup({ 5742 jsonp: "callback", 5743 jsonpCallback: function() { 5744 var callback = oldCallbacks.pop() || jQuery3.expando + "_" + nonce.guid++; 5745 this[callback] = true; 5746 return callback; 5747 } 5748 }); 5749 jQuery3.ajaxPrefilter("json jsonp", function(s, originalSettings, jqXHR) { 5750 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"); 5751 if (jsonProp || s.dataTypes[0] === "jsonp") { 5752 callbackName = s.jsonpCallback = isFunction(s.jsonpCallback) ? s.jsonpCallback() : s.jsonpCallback; 5753 if (jsonProp) { 5754 s[jsonProp] = s[jsonProp].replace(rjsonp, "$1" + callbackName); 5755 } else if (s.jsonp !== false) { 5756 s.url += (rquery.test(s.url) ? "&" : "?") + s.jsonp + "=" + callbackName; 5757 } 5758 s.converters["script json"] = function() { 5759 if (!responseContainer) { 5760 jQuery3.error(callbackName + " was not called"); 5761 } 5762 return responseContainer[0]; 5763 }; 5764 s.dataTypes[0] = "json"; 5765 overwritten = window2[callbackName]; 5766 window2[callbackName] = function() { 5767 responseContainer = arguments; 5768 }; 5769 jqXHR.always(function() { 5770 if (overwritten === void 0) { 5771 jQuery3(window2).removeProp(callbackName); 5772 } else { 5773 window2[callbackName] = overwritten; 5774 } 5775 if (s[callbackName]) { 5776 s.jsonpCallback = originalSettings.jsonpCallback; 5777 oldCallbacks.push(callbackName); 5778 } 5779 if (responseContainer && isFunction(overwritten)) { 5780 overwritten(responseContainer[0]); 5781 } 5782 responseContainer = overwritten = void 0; 5783 }); 5784 return "script"; 5785 } 5786 }); 5787 support.createHTMLDocument = function() { 5788 var body = document2.implementation.createHTMLDocument("").body; 5789 body.innerHTML = "<form></form><form></form>"; 5790 return body.childNodes.length === 2; 5791 }(); 5792 jQuery3.parseHTML = function(data, context, keepScripts) { 5793 if (typeof data !== "string") { 5794 return []; 5795 } 5796 if (typeof context === "boolean") { 5797 keepScripts = context; 5798 context = false; 5799 } 5800 var base, parsed, scripts; 5801 if (!context) { 5802 if (support.createHTMLDocument) { 5803 context = document2.implementation.createHTMLDocument(""); 5804 base = context.createElement("base"); 5805 base.href = document2.location.href; 5806 context.head.appendChild(base); 5807 } else { 5808 context = document2; 5809 } 5810 } 5811 parsed = rsingleTag.exec(data); 5812 scripts = !keepScripts && []; 5813 if (parsed) { 5814 return [context.createElement(parsed[1])]; 5815 } 5816 parsed = buildFragment([data], context, scripts); 5817 if (scripts && scripts.length) { 5818 jQuery3(scripts).remove(); 5819 } 5820 return jQuery3.merge([], parsed.childNodes); 5821 }; 5822 jQuery3.fn.load = function(url2, params, callback) { 5823 var selector, type2, response, self2 = this, off = url2.indexOf(" "); 5824 if (off > -1) { 5825 selector = stripAndCollapse(url2.slice(off)); 5826 url2 = url2.slice(0, off); 5827 } 5828 if (isFunction(params)) { 5829 callback = params; 5830 params = void 0; 5831 } else if (params && typeof params === "object") { 5832 type2 = "POST"; 5833 } 5834 if (self2.length > 0) { 5835 jQuery3.ajax({ 5836 url: url2, 5837 type: type2 || "GET", 5838 dataType: "html", 5839 data: params 5840 }).done(function(responseText) { 5841 response = arguments; 5842 self2.html(selector ? jQuery3("<div>").append(jQuery3.parseHTML(responseText)).find(selector) : responseText); 5843 }).always(callback && function(jqXHR, status) { 5844 self2.each(function() { 5845 callback.apply(this, response || [jqXHR.responseText, status, jqXHR]); 5846 }); 5847 }); 5848 } 5849 return this; 5850 }; 5851 jQuery3.expr.pseudos.animated = function(elem) { 5852 return jQuery3.grep(jQuery3.timers, function(fn) { 5853 return elem === fn.elem; 5854 }).length; 5855 }; 5856 jQuery3.offset = { 5857 setOffset: function(elem, options, i2) { 5858 var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition, position = jQuery3.css(elem, "position"), curElem = jQuery3(elem), props = {}; 5859 if (position === "static") { 5860 elem.style.position = "relative"; 5861 } 5862 curOffset = curElem.offset(); 5863 curCSSTop = jQuery3.css(elem, "top"); 5864 curCSSLeft = jQuery3.css(elem, "left"); 5865 calculatePosition = (position === "absolute" || position === "fixed") && (curCSSTop + curCSSLeft).indexOf("auto") > -1; 5866 if (calculatePosition) { 5867 curPosition = curElem.position(); 5868 curTop = curPosition.top; 5869 curLeft = curPosition.left; 5870 } else { 5871 curTop = parseFloat(curCSSTop) || 0; 5872 curLeft = parseFloat(curCSSLeft) || 0; 5873 } 5874 if (isFunction(options)) { 5875 options = options.call(elem, i2, jQuery3.extend({}, curOffset)); 5876 } 5877 if (options.top != null) { 5878 props.top = options.top - curOffset.top + curTop; 5879 } 5880 if (options.left != null) { 5881 props.left = options.left - curOffset.left + curLeft; 5882 } 5883 if ("using" in options) { 5884 options.using.call(elem, props); 5885 } else { 5886 curElem.css(props); 5887 } 5888 } 5889 }; 5890 jQuery3.fn.extend({ 5891 offset: function(options) { 5892 if (arguments.length) { 5893 return options === void 0 ? this : this.each(function(i2) { 5894 jQuery3.offset.setOffset(this, options, i2); 5895 }); 5896 } 5897 var rect, win, elem = this[0]; 5898 if (!elem) { 5899 return; 5900 } 5901 if (!elem.getClientRects().length) { 5902 return { top: 0, left: 0 }; 5903 } 5904 rect = elem.getBoundingClientRect(); 5905 win = elem.ownerDocument.defaultView; 5906 return { 5907 top: rect.top + win.pageYOffset, 5908 left: rect.left + win.pageXOffset 5909 }; 5910 }, 5911 position: function() { 5912 if (!this[0]) { 5913 return; 5914 } 5915 var offsetParent, offset, doc, elem = this[0], parentOffset = { top: 0, left: 0 }; 5916 if (jQuery3.css(elem, "position") === "fixed") { 5917 offset = elem.getBoundingClientRect(); 5918 } else { 5919 offset = this.offset(); 5920 doc = elem.ownerDocument; 5921 offsetParent = elem.offsetParent || doc.documentElement; 5922 while (offsetParent && (offsetParent === doc.body || offsetParent === doc.documentElement) && jQuery3.css(offsetParent, "position") === "static") { 5923 offsetParent = offsetParent.parentNode; 5924 } 5925 if (offsetParent && offsetParent !== elem && offsetParent.nodeType === 1) { 5926 parentOffset = jQuery3(offsetParent).offset(); 5927 parentOffset.top += jQuery3.css(offsetParent, "borderTopWidth", true); 5928 parentOffset.left += jQuery3.css(offsetParent, "borderLeftWidth", true); 5929 } 5930 } 5931 return { 5932 top: offset.top - parentOffset.top - jQuery3.css(elem, "marginTop", true), 5933 left: offset.left - parentOffset.left - jQuery3.css(elem, "marginLeft", true) 5934 }; 5935 }, 5936 offsetParent: function() { 5937 return this.map(function() { 5938 var offsetParent = this.offsetParent; 5939 while (offsetParent && jQuery3.css(offsetParent, "position") === "static") { 5940 offsetParent = offsetParent.offsetParent; 5941 } 5942 return offsetParent || documentElement; 5943 }); 5944 } 5945 }); 5946 jQuery3.each({ scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function(method, prop) { 5947 var top = "pageYOffset" === prop; 5948 jQuery3.fn[method] = function(val) { 5949 return access(this, function(elem, method2, val2) { 5950 var win; 5951 if (isWindow(elem)) { 5952 win = elem; 5953 } else if (elem.nodeType === 9) { 5954 win = elem.defaultView; 5955 } 5956 if (val2 === void 0) { 5957 return win ? win[prop] : elem[method2]; 5958 } 5959 if (win) { 5960 win.scrollTo( 5961 !top ? val2 : win.pageXOffset, 5962 top ? val2 : win.pageYOffset 5963 ); 5964 } else { 5965 elem[method2] = val2; 5966 } 5967 }, method, val, arguments.length); 5968 }; 5969 }); 5970 jQuery3.each(["top", "left"], function(_i, prop) { 5971 jQuery3.cssHooks[prop] = addGetHookIf( 5972 support.pixelPosition, 5973 function(elem, computed) { 5974 if (computed) { 5975 computed = curCSS(elem, prop); 5976 return rnumnonpx.test(computed) ? jQuery3(elem).position()[prop] + "px" : computed; 5977 } 5978 } 5979 ); 5980 }); 5981 jQuery3.each({ Height: "height", Width: "width" }, function(name2, type2) { 5982 jQuery3.each({ 5983 padding: "inner" + name2, 5984 content: type2, 5985 "": "outer" + name2 5986 }, function(defaultExtra, funcName) { 5987 jQuery3.fn[funcName] = function(margin, value2) { 5988 var chainable = arguments.length && (defaultExtra || typeof margin !== "boolean"), extra = defaultExtra || (margin === true || value2 === true ? "margin" : "border"); 5989 return access(this, function(elem, type3, value3) { 5990 var doc; 5991 if (isWindow(elem)) { 5992 return funcName.indexOf("outer") === 0 ? elem["inner" + name2] : elem.document.documentElement["client" + name2]; 5993 } 5994 if (elem.nodeType === 9) { 5995 doc = elem.documentElement; 5996 return Math.max( 5997 elem.body["scroll" + name2], 5998 doc["scroll" + name2], 5999 elem.body["offset" + name2], 6000 doc["offset" + name2], 6001 doc["client" + name2] 6002 ); 6003 } 6004 return value3 === void 0 ? jQuery3.css(elem, type3, extra) : jQuery3.style(elem, type3, value3, extra); 6005 }, type2, chainable ? margin : void 0, chainable); 6006 }; 6007 }); 6008 }); 6009 jQuery3.each([ 6010 "ajaxStart", 6011 "ajaxStop", 6012 "ajaxComplete", 6013 "ajaxError", 6014 "ajaxSuccess", 6015 "ajaxSend" 6016 ], function(_i, type2) { 6017 jQuery3.fn[type2] = function(fn) { 6018 return this.on(type2, fn); 6019 }; 6020 }); 6021 jQuery3.fn.extend({ 6022 bind: function(types, data, fn) { 6023 return this.on(types, null, data, fn); 6024 }, 6025 unbind: function(types, fn) { 6026 return this.off(types, null, fn); 6027 }, 6028 delegate: function(selector, types, data, fn) { 6029 return this.on(types, selector, data, fn); 6030 }, 6031 undelegate: function(selector, types, fn) { 6032 return arguments.length === 1 ? this.off(selector, "**") : this.off(types, selector || "**", fn); 6033 }, 6034 hover: function(fnOver, fnOut) { 6035 return this.mouseenter(fnOver).mouseleave(fnOut || fnOver); 6036 } 6037 }); 6038 jQuery3.each( 6039 "blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), 6040 function(_i, name2) { 6041 jQuery3.fn[name2] = function(data, fn) { 6042 return arguments.length > 0 ? this.on(name2, null, data, fn) : this.trigger(name2); 6043 }; 6044 } 6045 ); 6046 var rtrim = /^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g; 6047 jQuery3.proxy = function(fn, context) { 6048 var tmp, args, proxy; 6049 if (typeof context === "string") { 6050 tmp = fn[context]; 6051 context = fn; 6052 fn = tmp; 6053 } 6054 if (!isFunction(fn)) { 6055 return void 0; 6056 } 6057 args = slice.call(arguments, 2); 6058 proxy = function() { 6059 return fn.apply(context || this, args.concat(slice.call(arguments))); 6060 }; 6061 proxy.guid = fn.guid = fn.guid || jQuery3.guid++; 6062 return proxy; 6063 }; 6064 jQuery3.holdReady = function(hold) { 6065 if (hold) { 6066 jQuery3.readyWait++; 6067 } else { 6068 jQuery3.ready(true); 6069 } 6070 }; 6071 jQuery3.isArray = Array.isArray; 6072 jQuery3.parseJSON = JSON.parse; 6073 jQuery3.nodeName = nodeName; 6074 jQuery3.isFunction = isFunction; 6075 jQuery3.isWindow = isWindow; 6076 jQuery3.camelCase = camelCase; 6077 jQuery3.type = toType; 6078 jQuery3.now = Date.now; 6079 jQuery3.isNumeric = function(obj) { 6080 var type2 = jQuery3.type(obj); 6081 return (type2 === "number" || type2 === "string") && !isNaN(obj - parseFloat(obj)); 6082 }; 6083 jQuery3.trim = function(text) { 6084 return text == null ? "" : (text + "").replace(rtrim, "$1"); 6085 }; 6086 if (typeof define === "function" && define.amd) { 6087 define("jquery", [], function() { 6088 return jQuery3; 6089 }); 6090 } 6091 var _jQuery = window2.jQuery, _$ = window2.$; 6092 jQuery3.noConflict = function(deep) { 6093 if (window2.$ === jQuery3) { 6094 window2.$ = _$; 6095 } 6096 if (deep && window2.jQuery === jQuery3) { 6097 window2.jQuery = _jQuery; 6098 } 6099 return jQuery3; 6100 }; 6101 if (typeof noGlobal === "undefined") { 6102 window2.jQuery = window2.$ = jQuery3; 6103 } 6104 return jQuery3; 6105 }); 6106 } 6107 }); 6108 6109
vendor: 6,522 bytes, lines 6109-6255
6109// node_modules/bootstrap/js/dist/util.js 6110 var require_util = __commonJS({ 6111 "node_modules/bootstrap/js/dist/util.js"(exports, module) { 6112 (function(global2, factory) { 6113 typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory(require_jquery()) : typeof define === "function" && define.amd ? define(["jquery"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, global2.Util = factory(global2.jQuery)); 6114 })(exports, function($2) { 6115 "use strict"; 6116 function _interopDefaultLegacy(e) { 6117 return e && typeof e === "object" && "default" in e ? e : { "default": e }; 6118 } 6119 var $__default = /* @__PURE__ */ _interopDefaultLegacy($2); 6120 var TRANSITION_END = "transitionend"; 6121 var MAX_UID = 1e6; 6122 var MILLISECONDS_MULTIPLIER = 1e3; 6123 function toType(obj) { 6124 if (obj === null || typeof obj === "undefined") { 6125 return "" + obj; 6126 } 6127 return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase(); 6128 } 6129 function getSpecialTransitionEndEvent() { 6130 return { 6131 bindType: TRANSITION_END, 6132 delegateType: TRANSITION_END, 6133 handle: function handle(event) { 6134 if ($__default["default"](event.target).is(this)) { 6135 return event.handleObj.handler.apply(this, arguments); 6136 } 6137 return void 0; 6138 } 6139 }; 6140 } 6141 function transitionEndEmulator(duration) { 6142 var _this = this; 6143 var called = false; 6144 $__default["default"](this).one(Util2.TRANSITION_END, function() { 6145 called = true; 6146 }); 6147 setTimeout(function() { 6148 if (!called) { 6149 Util2.triggerTransitionEnd(_this); 6150 } 6151 }, duration); 6152 return this; 6153 } 6154 function setTransitionEndSupport() { 6155 $__default["default"].fn.emulateTransitionEnd = transitionEndEmulator; 6156 $__default["default"].event.special[Util2.TRANSITION_END] = getSpecialTransitionEndEvent(); 6157 } 6158 var Util2 = { 6159 TRANSITION_END: "bsTransitionEnd", 6160 getUID: function getUID(prefix) { 6161 do { 6162 prefix += ~~(Math.random() * MAX_UID); 6163 } while (document.getElementById(prefix)); 6164 return prefix; 6165 }, 6166 getSelectorFromElement: function getSelectorFromElement(element) { 6167 var selector = element.getAttribute("data-target"); 6168 if (!selector || selector === "#") { 6169 var hrefAttr = element.getAttribute("href"); 6170 selector = hrefAttr && hrefAttr !== "#" ? hrefAttr.trim() : ""; 6171 } 6172 try { 6173 return document.querySelector(selector) ? selector : null; 6174 } catch (_) { 6175 return null; 6176 } 6177 }, 6178 getTransitionDurationFromElement: function getTransitionDurationFromElement(element) { 6179 if (!element) { 6180 return 0; 6181 } 6182 var transitionDuration = $__default["default"](element).css("transition-duration"); 6183 var transitionDelay = $__default["default"](element).css("transition-delay"); 6184 var floatTransitionDuration = parseFloat(transitionDuration); 6185 var floatTransitionDelay = parseFloat(transitionDelay); 6186 if (!floatTransitionDuration && !floatTransitionDelay) { 6187 return 0; 6188 } 6189 transitionDuration = transitionDuration.split(",")[0]; 6190 transitionDelay = transitionDelay.split(",")[0]; 6191 return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER; 6192 }, 6193 reflow: function reflow(element) { 6194 return element.offsetHeight; 6195 }, 6196 triggerTransitionEnd: function triggerTransitionEnd(element) { 6197 $__default["default"](element).trigger(TRANSITION_END); 6198 }, 6199 supportsTransitionEnd: function supportsTransitionEnd() { 6200 return Boolean(TRANSITION_END); 6201 }, 6202 isElement: function isElement(obj) { 6203 return (obj[0] || obj).nodeType; 6204 }, 6205 typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) { 6206 for (var property in configTypes) { 6207 if (Object.prototype.hasOwnProperty.call(configTypes, property)) { 6208 var expectedTypes = configTypes[property]; 6209 var value2 = config[property]; 6210 var valueType = value2 && Util2.isElement(value2) ? "element" : toType(value2); 6211 if (!new RegExp(expectedTypes).test(valueType)) { 6212 throw new Error(componentName.toUpperCase() + ": " + ('Option "' + property + '" provided type "' + valueType + '" ') + ('but expected type "' + expectedTypes + '".')); 6213 } 6214 } 6215 } 6216 }, 6217 findShadowRoot: function findShadowRoot(element) { 6218 if (!document.documentElement.attachShadow) { 6219 return null; 6220 } 6221 if (typeof element.getRootNode === "function") { 6222 var root = element.getRootNode(); 6223 return root instanceof ShadowRoot ? root : null; 6224 } 6225 if (element instanceof ShadowRoot) { 6226 return element; 6227 } 6228 if (!element.parentNode) { 6229 return null; 6230 } 6231 return Util2.findShadowRoot(element.parentNode); 6232 }, 6233 jQueryDetection: function jQueryDetection() { 6234 if (typeof $__default["default"] === "undefined") { 6235 throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript."); 6236 } 6237 var version = $__default["default"].fn.jquery.split(" ")[0].split("."); 6238 var minMajor = 1; 6239 var ltMajor = 2; 6240 var minMinor = 9; 6241 var minPatch = 1; 6242 var maxMajor = 4; 6243 if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) { 6244 throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0"); 6245 } 6246 } 6247 }; 6248 Util2.jQueryDetection(); 6249 setTransitionEndSupport(); 6250 return Util2; 6251 }); 6252 } 6253 }); 6254 6255
vendor: 5,993 bytes, lines 6255-6392
6255// node_modules/bootstrap/js/dist/alert.js 6256 var require_alert = __commonJS({ 6257 "node_modules/bootstrap/js/dist/alert.js"(exports, module) { 6258 (function(global2, factory) { 6259 typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory(require_jquery(), require_util()) : typeof define === "function" && define.amd ? define(["jquery", "./util"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, global2.Alert = factory(global2.jQuery, global2.Util)); 6260 })(exports, function($2, Util2) { 6261 "use strict"; 6262 function _interopDefaultLegacy(e) { 6263 return e && typeof e === "object" && "default" in e ? e : { "default": e }; 6264 } 6265 var $__default = /* @__PURE__ */ _interopDefaultLegacy($2); 6266 var Util__default = /* @__PURE__ */ _interopDefaultLegacy(Util2); 6267 function _defineProperties(target, props) { 6268 for (var i2 = 0; i2 < props.length; i2++) { 6269 var descriptor = props[i2]; 6270 descriptor.enumerable = descriptor.enumerable || false; 6271 descriptor.configurable = true; 6272 if ("value" in descriptor) 6273 descriptor.writable = true; 6274 Object.defineProperty(target, descriptor.key, descriptor); 6275 } 6276 } 6277 function _createClass(Constructor, protoProps, staticProps) { 6278 if (protoProps) 6279 _defineProperties(Constructor.prototype, protoProps); 6280 if (staticProps) 6281 _defineProperties(Constructor, staticProps); 6282 Object.defineProperty(Constructor, "prototype", { 6283 writable: false 6284 }); 6285 return Constructor; 6286 } 6287 var NAME = "alert"; 6288 var VERSION = "4.6.2"; 6289 var DATA_KEY = "bs.alert"; 6290 var EVENT_KEY = "." + DATA_KEY; 6291 var DATA_API_KEY = ".data-api"; 6292 var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME]; 6293 var CLASS_NAME_ALERT = "alert"; 6294 var CLASS_NAME_FADE = "fade"; 6295 var CLASS_NAME_SHOW = "show"; 6296 var EVENT_CLOSE = "close" + EVENT_KEY; 6297 var EVENT_CLOSED = "closed" + EVENT_KEY; 6298 var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY; 6299 var SELECTOR_DISMISS = '[data-dismiss="alert"]'; 6300 var Alert2 = /* @__PURE__ */ function() { 6301 function Alert3(element) { 6302 this._element = element; 6303 } 6304 var _proto = Alert3.prototype; 6305 _proto.close = function close(element) { 6306 var rootElement = this._element; 6307 if (element) { 6308 rootElement = this._getRootElement(element); 6309 } 6310 var customEvent = this._triggerCloseEvent(rootElement); 6311 if (customEvent.isDefaultPrevented()) { 6312 return; 6313 } 6314 this._removeElement(rootElement); 6315 }; 6316 _proto.dispose = function dispose() { 6317 $__default["default"].removeData(this._element, DATA_KEY); 6318 this._element = null; 6319 }; 6320 _proto._getRootElement = function _getRootElement(element) { 6321 var selector = Util__default["default"].getSelectorFromElement(element); 6322 var parent = false; 6323 if (selector) { 6324 parent = document.querySelector(selector); 6325 } 6326 if (!parent) { 6327 parent = $__default["default"](element).closest("." + CLASS_NAME_ALERT)[0]; 6328 } 6329 return parent; 6330 }; 6331 _proto._triggerCloseEvent = function _triggerCloseEvent(element) { 6332 var closeEvent = $__default["default"].Event(EVENT_CLOSE); 6333 $__default["default"](element).trigger(closeEvent); 6334 return closeEvent; 6335 }; 6336 _proto._removeElement = function _removeElement(element) { 6337 var _this = this; 6338 $__default["default"](element).removeClass(CLASS_NAME_SHOW); 6339 if (!$__default["default"](element).hasClass(CLASS_NAME_FADE)) { 6340 this._destroyElement(element); 6341 return; 6342 } 6343 var transitionDuration = Util__default["default"].getTransitionDurationFromElement(element); 6344 $__default["default"](element).one(Util__default["default"].TRANSITION_END, function(event) { 6345 return _this._destroyElement(element, event); 6346 }).emulateTransitionEnd(transitionDuration); 6347 }; 6348 _proto._destroyElement = function _destroyElement(element) { 6349 $__default["default"](element).detach().trigger(EVENT_CLOSED).remove(); 6350 }; 6351 Alert3._jQueryInterface = function _jQueryInterface(config) { 6352 return this.each(function() { 6353 var $element = $__default["default"](this); 6354 var data = $element.data(DATA_KEY); 6355 if (!data) { 6356 data = new Alert3(this); 6357 $element.data(DATA_KEY, data); 6358 } 6359 if (config === "close") { 6360 data[config](this); 6361 } 6362 }); 6363 }; 6364 Alert3._handleDismiss = function _handleDismiss(alertInstance) { 6365 return function(event) { 6366 if (event) { 6367 event.preventDefault(); 6368 } 6369 alertInstance.close(this); 6370 }; 6371 }; 6372 _createClass(Alert3, null, [{ 6373 key: "VERSION", 6374 get: function get() { 6375 return VERSION; 6376 } 6377 }]); 6378 return Alert3; 6379 }(); 6380 $__default["default"](document).on(EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert2._handleDismiss(new Alert2())); 6381 $__default["default"].fn[NAME] = Alert2._jQueryInterface; 6382 $__default["default"].fn[NAME].Constructor = Alert2; 6383 $__default["default"].fn[NAME].noConflict = function() { 6384 $__default["default"].fn[NAME] = JQUERY_NO_CONFLICT; 6385 return Alert2._jQueryInterface; 6386 }; 6387 return Alert2; 6388 }); 6389 } 6390 }); 6391 6392
vendor: 8,187 bytes, lines 6392-6566
6392// node_modules/bootstrap/js/dist/button.js 6393 var require_button = __commonJS({ 6394 "node_modules/bootstrap/js/dist/button.js"(exports, module) { 6395 (function(global2, factory) { 6396 typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory(require_jquery()) : typeof define === "function" && define.amd ? define(["jquery"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, global2.Button = factory(global2.jQuery)); 6397 })(exports, function($2) { 6398 "use strict"; 6399 function _interopDefaultLegacy(e) { 6400 return e && typeof e === "object" && "default" in e ? e : { "default": e }; 6401 } 6402 var $__default = /* @__PURE__ */ _interopDefaultLegacy($2); 6403 function _defineProperties(target, props) { 6404 for (var i2 = 0; i2 < props.length; i2++) { 6405 var descriptor = props[i2]; 6406 descriptor.enumerable = descriptor.enumerable || false; 6407 descriptor.configurable = true; 6408 if ("value" in descriptor) 6409 descriptor.writable = true; 6410 Object.defineProperty(target, descriptor.key, descriptor); 6411 } 6412 } 6413 function _createClass(Constructor, protoProps, staticProps) { 6414 if (protoProps) 6415 _defineProperties(Constructor.prototype, protoProps); 6416 if (staticProps) 6417 _defineProperties(Constructor, staticProps); 6418 Object.defineProperty(Constructor, "prototype", { 6419 writable: false 6420 }); 6421 return Constructor; 6422 } 6423 var NAME = "button"; 6424 var VERSION = "4.6.2"; 6425 var DATA_KEY = "bs.button"; 6426 var EVENT_KEY = "." + DATA_KEY; 6427 var DATA_API_KEY = ".data-api"; 6428 var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME]; 6429 var CLASS_NAME_ACTIVE = "active"; 6430 var CLASS_NAME_BUTTON = "btn"; 6431 var CLASS_NAME_FOCUS = "focus"; 6432 var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY; 6433 var EVENT_FOCUS_BLUR_DATA_API = "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY); 6434 var EVENT_LOAD_DATA_API = "load" + EVENT_KEY + DATA_API_KEY; 6435 var SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^="button"]'; 6436 var SELECTOR_DATA_TOGGLES = '[data-toggle="buttons"]'; 6437 var SELECTOR_DATA_TOGGLE = '[data-toggle="button"]'; 6438 var SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle="buttons"] .btn'; 6439 var SELECTOR_INPUT = 'input:not([type="hidden"])'; 6440 var SELECTOR_ACTIVE = ".active"; 6441 var SELECTOR_BUTTON = ".btn"; 6442 var Button2 = /* @__PURE__ */ function() { 6443 function Button3(element) { 6444 this._element = element; 6445 this.shouldAvoidTriggerChange = false; 6446 } 6447 var _proto = Button3.prototype; 6448 _proto.toggle = function toggle() { 6449 var triggerChangeEvent = true; 6450 var addAriaPressed = true; 6451 var rootElement = $__default["default"](this._element).closest(SELECTOR_DATA_TOGGLES)[0]; 6452 if (rootElement) { 6453 var input = this._element.querySelector(SELECTOR_INPUT); 6454 if (input) { 6455 if (input.type === "radio") { 6456 if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE)) { 6457 triggerChangeEvent = false; 6458 } else { 6459 var activeElement = rootElement.querySelector(SELECTOR_ACTIVE); 6460 if (activeElement) { 6461 $__default["default"](activeElement).removeClass(CLASS_NAME_ACTIVE); 6462 } 6463 } 6464 } 6465 if (triggerChangeEvent) { 6466 if (input.type === "checkbox" || input.type === "radio") { 6467 input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE); 6468 } 6469 if (!this.shouldAvoidTriggerChange) { 6470 $__default["default"](input).trigger("change"); 6471 } 6472 } 6473 input.focus(); 6474 addAriaPressed = false; 6475 } 6476 } 6477 if (!(this._element.hasAttribute("disabled") || this._element.classList.contains("disabled"))) { 6478 if (addAriaPressed) { 6479 this._element.setAttribute("aria-pressed", !this._element.classList.contains(CLASS_NAME_ACTIVE)); 6480 } 6481 if (triggerChangeEvent) { 6482 $__default["default"](this._element).toggleClass(CLASS_NAME_ACTIVE); 6483 } 6484 } 6485 }; 6486 _proto.dispose = function dispose() { 6487 $__default["default"].removeData(this._element, DATA_KEY); 6488 this._element = null; 6489 }; 6490 Button3._jQueryInterface = function _jQueryInterface(config, avoidTriggerChange) { 6491 return this.each(function() { 6492 var $element = $__default["default"](this); 6493 var data = $element.data(DATA_KEY); 6494 if (!data) { 6495 data = new Button3(this); 6496 $element.data(DATA_KEY, data); 6497 } 6498 data.shouldAvoidTriggerChange = avoidTriggerChange; 6499 if (config === "toggle") { 6500 data[config](); 6501 } 6502 }); 6503 }; 6504 _createClass(Button3, null, [{ 6505 key: "VERSION", 6506 get: function get() { 6507 return VERSION; 6508 } 6509 }]); 6510 return Button3; 6511 }(); 6512 $__default["default"](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function(event) { 6513 var button = event.target; 6514 var initialButton = button; 6515 if (!$__default["default"](button).hasClass(CLASS_NAME_BUTTON)) { 6516 button = $__default["default"](button).closest(SELECTOR_BUTTON)[0]; 6517 } 6518 if (!button || button.hasAttribute("disabled") || button.classList.contains("disabled")) { 6519 event.preventDefault(); 6520 } else { 6521 var inputBtn = button.querySelector(SELECTOR_INPUT); 6522 if (inputBtn && (inputBtn.hasAttribute("disabled") || inputBtn.classList.contains("disabled"))) { 6523 event.preventDefault(); 6524 return; 6525 } 6526 if (initialButton.tagName === "INPUT" || button.tagName !== "LABEL") { 6527 Button2._jQueryInterface.call($__default["default"](button), "toggle", initialButton.tagName === "INPUT"); 6528 } 6529 } 6530 }).on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function(event) { 6531 var button = $__default["default"](event.target).closest(SELECTOR_BUTTON)[0]; 6532 $__default["default"](button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type)); 6533 }); 6534 $__default["default"](window).on(EVENT_LOAD_DATA_API, function() { 6535 var buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS)); 6536 for (var i2 = 0, len = buttons.length; i2 < len; i2++) { 6537 var button = buttons[i2]; 6538 var input = button.querySelector(SELECTOR_INPUT); 6539 if (input.checked || input.hasAttribute("checked")) { 6540 button.classList.add(CLASS_NAME_ACTIVE); 6541 } else { 6542 button.classList.remove(CLASS_NAME_ACTIVE); 6543 } 6544 } 6545 buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE)); 6546 for (var _i = 0, _len = buttons.length; _i < _len; _i++) { 6547 var _button = buttons[_i]; 6548 if (_button.getAttribute("aria-pressed") === "true") { 6549 _button.classList.add(CLASS_NAME_ACTIVE); 6550 } else { 6551 _button.classList.remove(CLASS_NAME_ACTIVE); 6552 } 6553 } 6554 }); 6555 $__default["default"].fn[NAME] = Button2._jQueryInterface; 6556 $__default["default"].fn[NAME].Constructor = Button2; 6557 $__default["default"].fn[NAME].noConflict = function() { 6558 $__default["default"].fn[NAME] = JQUERY_NO_CONFLICT; 6559 return Button2._jQueryInterface; 6560 }; 6561 return Button2; 6562 }); 6563 } 6564 }); 6565 6566
vendor: 22,548 bytes, lines 6566-7066
6566// node_modules/bootstrap/js/dist/carousel.js 6567 var require_carousel = __commonJS({ 6568 "node_modules/bootstrap/js/dist/carousel.js"(exports, module) { 6569 (function(global2, factory) { 6570 typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory(require_jquery(), require_util()) : typeof define === "function" && define.amd ? define(["jquery", "./util"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, global2.Carousel = factory(global2.jQuery, global2.Util)); 6571 })(exports, function($2, Util2) { 6572 "use strict"; 6573 function _interopDefaultLegacy(e) { 6574 return e && typeof e === "object" && "default" in e ? e : { "default": e }; 6575 } 6576 var $__default = /* @__PURE__ */ _interopDefaultLegacy($2); 6577 var Util__default = /* @__PURE__ */ _interopDefaultLegacy(Util2); 6578 function _defineProperties(target, props) { 6579 for (var i2 = 0; i2 < props.length; i2++) { 6580 var descriptor = props[i2]; 6581 descriptor.enumerable = descriptor.enumerable || false; 6582 descriptor.configurable = true; 6583 if ("value" in descriptor) 6584 descriptor.writable = true; 6585 Object.defineProperty(target, descriptor.key, descriptor); 6586 } 6587 } 6588 function _createClass(Constructor, protoProps, staticProps) { 6589 if (protoProps) 6590 _defineProperties(Constructor.prototype, protoProps); 6591 if (staticProps) 6592 _defineProperties(Constructor, staticProps); 6593 Object.defineProperty(Constructor, "prototype", { 6594 writable: false 6595 }); 6596 return Constructor; 6597 } 6598 function _extends() { 6599 _extends = Object.assign ? Object.assign.bind() : function(target) { 6600 for (var i2 = 1; i2 < arguments.length; i2++) { 6601 var source = arguments[i2]; 6602 for (var key in source) { 6603 if (Object.prototype.hasOwnProperty.call(source, key)) { 6604 target[key] = source[key]; 6605 } 6606 } 6607 } 6608 return target; 6609 }; 6610 return _extends.apply(this, arguments); 6611 } 6612 var NAME = "carousel"; 6613 var VERSION = "4.6.2"; 6614 var DATA_KEY = "bs.carousel"; 6615 var EVENT_KEY = "." + DATA_KEY; 6616 var DATA_API_KEY = ".data-api"; 6617 var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME]; 6618 var ARROW_LEFT_KEYCODE = 37; 6619 var ARROW_RIGHT_KEYCODE = 39; 6620 var TOUCHEVENT_COMPAT_WAIT = 500; 6621 var SWIPE_THRESHOLD = 40; 6622 var CLASS_NAME_CAROUSEL = "carousel"; 6623 var CLASS_NAME_ACTIVE = "active"; 6624 var CLASS_NAME_SLIDE = "slide"; 6625 var CLASS_NAME_RIGHT = "carousel-item-right"; 6626 var CLASS_NAME_LEFT = "carousel-item-left"; 6627 var CLASS_NAME_NEXT = "carousel-item-next"; 6628 var CLASS_NAME_PREV = "carousel-item-prev"; 6629 var CLASS_NAME_POINTER_EVENT = "pointer-event"; 6630 var DIRECTION_NEXT = "next"; 6631 var DIRECTION_PREV = "prev"; 6632 var DIRECTION_LEFT = "left"; 6633 var DIRECTION_RIGHT = "right"; 6634 var EVENT_SLIDE = "slide" + EVENT_KEY; 6635 var EVENT_SLID = "slid" + EVENT_KEY; 6636 var EVENT_KEYDOWN = "keydown" + EVENT_KEY; 6637 var EVENT_MOUSEENTER = "mouseenter" + EVENT_KEY; 6638 var EVENT_MOUSELEAVE = "mouseleave" + EVENT_KEY; 6639 var EVENT_TOUCHSTART = "touchstart" + EVENT_KEY; 6640 var EVENT_TOUCHMOVE = "touchmove" + EVENT_KEY; 6641 var EVENT_TOUCHEND = "touchend" + EVENT_KEY; 6642 var EVENT_POINTERDOWN = "pointerdown" + EVENT_KEY; 6643 var EVENT_POINTERUP = "pointerup" + EVENT_KEY; 6644 var EVENT_DRAG_START = "dragstart" + EVENT_KEY; 6645 var EVENT_LOAD_DATA_API = "load" + EVENT_KEY + DATA_API_KEY; 6646 var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY; 6647 var SELECTOR_ACTIVE = ".active"; 6648 var SELECTOR_ACTIVE_ITEM = ".active.carousel-item"; 6649 var SELECTOR_ITEM = ".carousel-item"; 6650 var SELECTOR_ITEM_IMG = ".carousel-item img"; 6651 var SELECTOR_NEXT_PREV = ".carousel-item-next, .carousel-item-prev"; 6652 var SELECTOR_INDICATORS = ".carousel-indicators"; 6653 var SELECTOR_DATA_SLIDE = "[data-slide], [data-slide-to]"; 6654 var SELECTOR_DATA_RIDE = '[data-ride="carousel"]'; 6655 var Default = { 6656 interval: 5e3, 6657 keyboard: true, 6658 slide: false, 6659 pause: "hover", 6660 wrap: true, 6661 touch: true 6662 }; 6663 var DefaultType = { 6664 interval: "(number|boolean)", 6665 keyboard: "boolean", 6666 slide: "(boolean|string)", 6667 pause: "(string|boolean)", 6668 wrap: "boolean", 6669 touch: "boolean" 6670 }; 6671 var PointerType = { 6672 TOUCH: "touch", 6673 PEN: "pen" 6674 }; 6675 var Carousel2 = /* @__PURE__ */ function() { 6676 function Carousel3(element, config) { 6677 this._items = null; 6678 this._interval = null; 6679 this._activeElement = null; 6680 this._isPaused = false; 6681 this._isSliding = false; 6682 this.touchTimeout = null; 6683 this.touchStartX = 0; 6684 this.touchDeltaX = 0; 6685 this._config = this._getConfig(config); 6686 this._element = element; 6687 this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS); 6688 this._touchSupported = "ontouchstart" in document.documentElement || navigator.maxTouchPoints > 0; 6689 this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent); 6690 this._addEventListeners(); 6691 } 6692 var _proto = Carousel3.prototype; 6693 _proto.next = function next() { 6694 if (!this._isSliding) { 6695 this._slide(DIRECTION_NEXT); 6696 } 6697 }; 6698 _proto.nextWhenVisible = function nextWhenVisible() { 6699 var $element = $__default["default"](this._element); 6700 if (!document.hidden && $element.is(":visible") && $element.css("visibility") !== "hidden") { 6701 this.next(); 6702 } 6703 }; 6704 _proto.prev = function prev2() { 6705 if (!this._isSliding) { 6706 this._slide(DIRECTION_PREV); 6707 } 6708 }; 6709 _proto.pause = function pause(event) { 6710 if (!event) { 6711 this._isPaused = true; 6712 } 6713 if (this._element.querySelector(SELECTOR_NEXT_PREV)) { 6714 Util__default["default"].triggerTransitionEnd(this._element); 6715 this.cycle(true); 6716 } 6717 clearInterval(this._interval); 6718 this._interval = null; 6719 }; 6720 _proto.cycle = function cycle(event) { 6721 if (!event) { 6722 this._isPaused = false; 6723 } 6724 if (this._interval) { 6725 clearInterval(this._interval); 6726 this._interval = null; 6727 } 6728 if (this._config.interval && !this._isPaused) { 6729 this._updateInterval(); 6730 this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval); 6731 } 6732 }; 6733 _proto.to = function to(index) { 6734 var _this = this; 6735 this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM); 6736 var activeIndex = this._getItemIndex(this._activeElement); 6737 if (index > this._items.length - 1 || index < 0) { 6738 return; 6739 } 6740 if (this._isSliding) { 6741 $__default["default"](this._element).one(EVENT_SLID, function() { 6742 return _this.to(index); 6743 }); 6744 return; 6745 } 6746 if (activeIndex === index) { 6747 this.pause(); 6748 this.cycle(); 6749 return; 6750 } 6751 var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV; 6752 this._slide(direction, this._items[index]); 6753 }; 6754 _proto.dispose = function dispose() { 6755 $__default["default"](this._element).off(EVENT_KEY); 6756 $__default["default"].removeData(this._element, DATA_KEY); 6757 this._items = null; 6758 this._config = null; 6759 this._element = null; 6760 this._interval = null; 6761 this._isPaused = null; 6762 this._isSliding = null; 6763 this._activeElement = null; 6764 this._indicatorsElement = null; 6765 }; 6766 _proto._getConfig = function _getConfig(config) { 6767 config = _extends({}, Default, config); 6768 Util__default["default"].typeCheckConfig(NAME, config, DefaultType); 6769 return config; 6770 }; 6771 _proto._handleSwipe = function _handleSwipe() { 6772 var absDeltax = Math.abs(this.touchDeltaX); 6773 if (absDeltax <= SWIPE_THRESHOLD) { 6774 return; 6775 } 6776 var direction = absDeltax / this.touchDeltaX; 6777 this.touchDeltaX = 0; 6778 if (direction > 0) { 6779 this.prev(); 6780 } 6781 if (direction < 0) { 6782 this.next(); 6783 } 6784 }; 6785 _proto._addEventListeners = function _addEventListeners() { 6786 var _this2 = this; 6787 if (this._config.keyboard) { 6788 $__default["default"](this._element).on(EVENT_KEYDOWN, function(event) { 6789 return _this2._keydown(event); 6790 }); 6791 } 6792 if (this._config.pause === "hover") { 6793 $__default["default"](this._element).on(EVENT_MOUSEENTER, function(event) { 6794 return _this2.pause(event); 6795 }).on(EVENT_MOUSELEAVE, function(event) { 6796 return _this2.cycle(event); 6797 }); 6798 } 6799 if (this._config.touch) { 6800 this._addTouchEventListeners(); 6801 } 6802 }; 6803 _proto._addTouchEventListeners = function _addTouchEventListeners() { 6804 var _this3 = this; 6805 if (!this._touchSupported) { 6806 return; 6807 } 6808 var start = function start2(event) { 6809 if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) { 6810 _this3.touchStartX = event.originalEvent.clientX; 6811 } else if (!_this3._pointerEvent) { 6812 _this3.touchStartX = event.originalEvent.touches[0].clientX; 6813 } 6814 }; 6815 var move = function move2(event) { 6816 _this3.touchDeltaX = event.originalEvent.touches && event.originalEvent.touches.length > 1 ? 0 : event.originalEvent.touches[0].clientX - _this3.touchStartX; 6817 }; 6818 var end = function end2(event) { 6819 if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) { 6820 _this3.touchDeltaX = event.originalEvent.clientX - _this3.touchStartX; 6821 } 6822 _this3._handleSwipe(); 6823 if (_this3._config.pause === "hover") { 6824 _this3.pause(); 6825 if (_this3.touchTimeout) { 6826 clearTimeout(_this3.touchTimeout); 6827 } 6828 _this3.touchTimeout = setTimeout(function(event2) { 6829 return _this3.cycle(event2); 6830 }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval); 6831 } 6832 }; 6833 $__default["default"](this._element.querySelectorAll(SELECTOR_ITEM_IMG)).on(EVENT_DRAG_START, function(e) { 6834 return e.preventDefault(); 6835 }); 6836 if (this._pointerEvent) { 6837 $__default["default"](this._element).on(EVENT_POINTERDOWN, function(event) { 6838 return start(event); 6839 }); 6840 $__default["default"](this._element).on(EVENT_POINTERUP, function(event) { 6841 return end(event); 6842 }); 6843 this._element.classList.add(CLASS_NAME_POINTER_EVENT); 6844 } else { 6845 $__default["default"](this._element).on(EVENT_TOUCHSTART, function(event) { 6846 return start(event); 6847 }); 6848 $__default["default"](this._element).on(EVENT_TOUCHMOVE, function(event) { 6849 return move(event); 6850 }); 6851 $__default["default"](this._element).on(EVENT_TOUCHEND, function(event) { 6852 return end(event); 6853 }); 6854 } 6855 }; 6856 _proto._keydown = function _keydown(event) { 6857 if (/input|textarea/i.test(event.target.tagName)) { 6858 return; 6859 } 6860 switch (event.which) { 6861 case ARROW_LEFT_KEYCODE: 6862 event.preventDefault(); 6863 this.prev(); 6864 break; 6865 case ARROW_RIGHT_KEYCODE: 6866 event.preventDefault(); 6867 this.next(); 6868 break; 6869 } 6870 }; 6871 _proto._getItemIndex = function _getItemIndex(element) { 6872 this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) : []; 6873 return this._items.indexOf(element); 6874 }; 6875 _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) { 6876 var isNextDirection = direction === DIRECTION_NEXT; 6877 var isPrevDirection = direction === DIRECTION_PREV; 6878 var activeIndex = this._getItemIndex(activeElement); 6879 var lastItemIndex = this._items.length - 1; 6880 var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex; 6881 if (isGoingToWrap && !this._config.wrap) { 6882 return activeElement; 6883 } 6884 var delta = direction === DIRECTION_PREV ? -1 : 1; 6885 var itemIndex = (activeIndex + delta) % this._items.length; 6886 return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex]; 6887 }; 6888 _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) { 6889 var targetIndex = this._getItemIndex(relatedTarget); 6890 var fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM)); 6891 var slideEvent = $__default["default"].Event(EVENT_SLIDE, { 6892 relatedTarget, 6893 direction: eventDirectionName, 6894 from: fromIndex, 6895 to: targetIndex 6896 }); 6897 $__default["default"](this._element).trigger(slideEvent); 6898 return slideEvent; 6899 }; 6900 _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) { 6901 if (this._indicatorsElement) { 6902 var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE)); 6903 $__default["default"](indicators).removeClass(CLASS_NAME_ACTIVE); 6904 var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)]; 6905 if (nextIndicator) { 6906 $__default["default"](nextIndicator).addClass(CLASS_NAME_ACTIVE); 6907 } 6908 } 6909 }; 6910 _proto._updateInterval = function _updateInterval() { 6911 var element = this._activeElement || this._element.querySelector(SELECTOR_ACTIVE_ITEM); 6912 if (!element) { 6913 return; 6914 } 6915 var elementInterval = parseInt(element.getAttribute("data-interval"), 10); 6916 if (elementInterval) { 6917 this._config.defaultInterval = this._config.defaultInterval || this._config.interval; 6918 this._config.interval = elementInterval; 6919 } else { 6920 this._config.interval = this._config.defaultInterval || this._config.interval; 6921 } 6922 }; 6923 _proto._slide = function _slide(direction, element) { 6924 var _this4 = this; 6925 var activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM); 6926 var activeElementIndex = this._getItemIndex(activeElement); 6927 var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement); 6928 var nextElementIndex = this._getItemIndex(nextElement); 6929 var isCycling = Boolean(this._interval); 6930 var directionalClassName; 6931 var orderClassName; 6932 var eventDirectionName; 6933 if (direction === DIRECTION_NEXT) { 6934 directionalClassName = CLASS_NAME_LEFT; 6935 orderClassName = CLASS_NAME_NEXT; 6936 eventDirectionName = DIRECTION_LEFT; 6937 } else { 6938 directionalClassName = CLASS_NAME_RIGHT; 6939 orderClassName = CLASS_NAME_PREV; 6940 eventDirectionName = DIRECTION_RIGHT; 6941 } 6942 if (nextElement && $__default["default"](nextElement).hasClass(CLASS_NAME_ACTIVE)) { 6943 this._isSliding = false; 6944 return; 6945 } 6946 var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName); 6947 if (slideEvent.isDefaultPrevented()) { 6948 return; 6949 } 6950 if (!activeElement || !nextElement) { 6951 return; 6952 } 6953 this._isSliding = true; 6954 if (isCycling) { 6955 this.pause(); 6956 } 6957 this._setActiveIndicatorElement(nextElement); 6958 this._activeElement = nextElement; 6959 var slidEvent = $__default["default"].Event(EVENT_SLID, { 6960 relatedTarget: nextElement, 6961 direction: eventDirectionName, 6962 from: activeElementIndex, 6963 to: nextElementIndex 6964 }); 6965 if ($__default["default"](this._element).hasClass(CLASS_NAME_SLIDE)) { 6966 $__default["default"](nextElement).addClass(orderClassName); 6967 Util__default["default"].reflow(nextElement); 6968 $__default["default"](activeElement).addClass(directionalClassName); 6969 $__default["default"](nextElement).addClass(directionalClassName); 6970 var transitionDuration = Util__default["default"].getTransitionDurationFromElement(activeElement); 6971 $__default["default"](activeElement).one(Util__default["default"].TRANSITION_END, function() { 6972 $__default["default"](nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(CLASS_NAME_ACTIVE); 6973 $__default["default"](activeElement).removeClass(CLASS_NAME_ACTIVE + " " + orderClassName + " " + directionalClassName); 6974 _this4._isSliding = false; 6975 setTimeout(function() { 6976 return $__default["default"](_this4._element).trigger(slidEvent); 6977 }, 0); 6978 }).emulateTransitionEnd(transitionDuration); 6979 } else { 6980 $__default["default"](activeElement).removeClass(CLASS_NAME_ACTIVE); 6981 $__default["default"](nextElement).addClass(CLASS_NAME_ACTIVE); 6982 this._isSliding = false; 6983 $__default["default"](this._element).trigger(slidEvent); 6984 } 6985 if (isCycling) { 6986 this.cycle(); 6987 } 6988 }; 6989 Carousel3._jQueryInterface = function _jQueryInterface(config) { 6990 return this.each(function() { 6991 var data = $__default["default"](this).data(DATA_KEY); 6992 var _config = _extends({}, Default, $__default["default"](this).data()); 6993 if (typeof config === "object") { 6994 _config = _extends({}, _config, config); 6995 } 6996 var action = typeof config === "string" ? config : _config.slide; 6997 if (!data) { 6998 data = new Carousel3(this, _config); 6999 $__default["default"](this).data(DATA_KEY, data); 7000 } 7001 if (typeof config === "number") { 7002 data.to(config); 7003 } else if (typeof action === "string") { 7004 if (typeof data[action] === "undefined") { 7005 throw new TypeError('No method named "' + action + '"'); 7006 } 7007 data[action](); 7008 } else if (_config.interval && _config.ride) { 7009 data.pause(); 7010 data.cycle(); 7011 } 7012 }); 7013 }; 7014 Carousel3._dataApiClickHandler = function _dataApiClickHandler(event) { 7015 var selector = Util__default["default"].getSelectorFromElement(this); 7016 if (!selector) { 7017 return; 7018 } 7019 var target = $__default["default"](selector)[0]; 7020 if (!target || !$__default["default"](target).hasClass(CLASS_NAME_CAROUSEL)) { 7021 return; 7022 } 7023 var config = _extends({}, $__default["default"](target).data(), $__default["default"](this).data()); 7024 var slideIndex = this.getAttribute("data-slide-to"); 7025 if (slideIndex) { 7026 config.interval = false; 7027 } 7028 Carousel3._jQueryInterface.call($__default["default"](target), config); 7029 if (slideIndex) { 7030 $__default["default"](target).data(DATA_KEY).to(slideIndex); 7031 } 7032 event.preventDefault(); 7033 }; 7034 _createClass(Carousel3, null, [{ 7035 key: "VERSION", 7036 get: function get() { 7037 return VERSION; 7038 } 7039 }, { 7040 key: "Default", 7041 get: function get() { 7042 return Default; 7043 } 7044 }]); 7045 return Carousel3; 7046 }(); 7047 $__default["default"](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel2._dataApiClickHandler); 7048 $__default["default"](window).on(EVENT_LOAD_DATA_API, function() { 7049 var carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE)); 7050 for (var i2 = 0, len = carousels.length; i2 < len; i2++) { 7051 var $carousel = $__default["default"](carousels[i2]); 7052 Carousel2._jQueryInterface.call($carousel, $carousel.data()); 7053 } 7054 }); 7055 $__default["default"].fn[NAME] = Carousel2._jQueryInterface; 7056 $__default["default"].fn[NAME].Constructor = Carousel2; 7057 $__default["default"].fn[NAME].noConflict = function() { 7058 $__default["default"].fn[NAME] = JQUERY_NO_CONFLICT; 7059 return Carousel2._jQueryInterface; 7060 }; 7061 return Carousel2; 7062 }); 7063 } 7064 }); 7065 7066
vendor: 14,695 bytes, lines 7066-7370
7066// node_modules/bootstrap/js/dist/collapse.js 7067 var require_collapse = __commonJS({ 7068 "node_modules/bootstrap/js/dist/collapse.js"(exports, module) { 7069 (function(global2, factory) { 7070 typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory(require_jquery(), require_util()) : typeof define === "function" && define.amd ? define(["jquery", "./util"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, global2.Collapse = factory(global2.jQuery, global2.Util)); 7071 })(exports, function($2, Util2) { 7072 "use strict"; 7073 function _interopDefaultLegacy(e) { 7074 return e && typeof e === "object" && "default" in e ? e : { "default": e }; 7075 } 7076 var $__default = /* @__PURE__ */ _interopDefaultLegacy($2); 7077 var Util__default = /* @__PURE__ */ _interopDefaultLegacy(Util2); 7078 function _defineProperties(target, props) { 7079 for (var i2 = 0; i2 < props.length; i2++) { 7080 var descriptor = props[i2]; 7081 descriptor.enumerable = descriptor.enumerable || false; 7082 descriptor.configurable = true; 7083 if ("value" in descriptor) 7084 descriptor.writable = true; 7085 Object.defineProperty(target, descriptor.key, descriptor); 7086 } 7087 } 7088 function _createClass(Constructor, protoProps, staticProps) { 7089 if (protoProps) 7090 _defineProperties(Constructor.prototype, protoProps); 7091 if (staticProps) 7092 _defineProperties(Constructor, staticProps); 7093 Object.defineProperty(Constructor, "prototype", { 7094 writable: false 7095 }); 7096 return Constructor; 7097 } 7098 function _extends() { 7099 _extends = Object.assign ? Object.assign.bind() : function(target) { 7100 for (var i2 = 1; i2 < arguments.length; i2++) { 7101 var source = arguments[i2]; 7102 for (var key in source) { 7103 if (Object.prototype.hasOwnProperty.call(source, key)) { 7104 target[key] = source[key]; 7105 } 7106 } 7107 } 7108 return target; 7109 }; 7110 return _extends.apply(this, arguments); 7111 } 7112 var NAME = "collapse"; 7113 var VERSION = "4.6.2"; 7114 var DATA_KEY = "bs.collapse"; 7115 var EVENT_KEY = "." + DATA_KEY; 7116 var DATA_API_KEY = ".data-api"; 7117 var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME]; 7118 var CLASS_NAME_SHOW = "show"; 7119 var CLASS_NAME_COLLAPSE = "collapse"; 7120 var CLASS_NAME_COLLAPSING = "collapsing"; 7121 var CLASS_NAME_COLLAPSED = "collapsed"; 7122 var DIMENSION_WIDTH = "width"; 7123 var DIMENSION_HEIGHT = "height"; 7124 var EVENT_SHOW = "show" + EVENT_KEY; 7125 var EVENT_SHOWN = "shown" + EVENT_KEY; 7126 var EVENT_HIDE = "hide" + EVENT_KEY; 7127 var EVENT_HIDDEN = "hidden" + EVENT_KEY; 7128 var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY; 7129 var SELECTOR_ACTIVES = ".show, .collapsing"; 7130 var SELECTOR_DATA_TOGGLE = '[data-toggle="collapse"]'; 7131 var Default = { 7132 toggle: true, 7133 parent: "" 7134 }; 7135 var DefaultType = { 7136 toggle: "boolean", 7137 parent: "(string|element)" 7138 }; 7139 var Collapse2 = /* @__PURE__ */ function() { 7140 function Collapse3(element, config) { 7141 this._isTransitioning = false; 7142 this._element = element; 7143 this._config = this._getConfig(config); 7144 this._triggerArray = [].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#' + element.id + '"],' + ('[data-toggle="collapse"][data-target="#' + element.id + '"]'))); 7145 var toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE)); 7146 for (var i2 = 0, len = toggleList.length; i2 < len; i2++) { 7147 var elem = toggleList[i2]; 7148 var selector = Util__default["default"].getSelectorFromElement(elem); 7149 var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function(foundElem) { 7150 return foundElem === element; 7151 }); 7152 if (selector !== null && filterElement.length > 0) { 7153 this._selector = selector; 7154 this._triggerArray.push(elem); 7155 } 7156 } 7157 this._parent = this._config.parent ? this._getParent() : null; 7158 if (!this._config.parent) { 7159 this._addAriaAndCollapsedClass(this._element, this._triggerArray); 7160 } 7161 if (this._config.toggle) { 7162 this.toggle(); 7163 } 7164 } 7165 var _proto = Collapse3.prototype; 7166 _proto.toggle = function toggle() { 7167 if ($__default["default"](this._element).hasClass(CLASS_NAME_SHOW)) { 7168 this.hide(); 7169 } else { 7170 this.show(); 7171 } 7172 }; 7173 _proto.show = function show() { 7174 var _this = this; 7175 if (this._isTransitioning || $__default["default"](this._element).hasClass(CLASS_NAME_SHOW)) { 7176 return; 7177 } 7178 var actives; 7179 var activesData; 7180 if (this._parent) { 7181 actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES)).filter(function(elem) { 7182 if (typeof _this._config.parent === "string") { 7183 return elem.getAttribute("data-parent") === _this._config.parent; 7184 } 7185 return elem.classList.contains(CLASS_NAME_COLLAPSE); 7186 }); 7187 if (actives.length === 0) { 7188 actives = null; 7189 } 7190 } 7191 if (actives) { 7192 activesData = $__default["default"](actives).not(this._selector).data(DATA_KEY); 7193 if (activesData && activesData._isTransitioning) { 7194 return; 7195 } 7196 } 7197 var startEvent = $__default["default"].Event(EVENT_SHOW); 7198 $__default["default"](this._element).trigger(startEvent); 7199 if (startEvent.isDefaultPrevented()) { 7200 return; 7201 } 7202 if (actives) { 7203 Collapse3._jQueryInterface.call($__default["default"](actives).not(this._selector), "hide"); 7204 if (!activesData) { 7205 $__default["default"](actives).data(DATA_KEY, null); 7206 } 7207 } 7208 var dimension = this._getDimension(); 7209 $__default["default"](this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING); 7210 this._element.style[dimension] = 0; 7211 if (this._triggerArray.length) { 7212 $__default["default"](this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr("aria-expanded", true); 7213 } 7214 this.setTransitioning(true); 7215 var complete = function complete2() { 7216 $__default["default"](_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW); 7217 _this._element.style[dimension] = ""; 7218 _this.setTransitioning(false); 7219 $__default["default"](_this._element).trigger(EVENT_SHOWN); 7220 }; 7221 var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); 7222 var scrollSize = "scroll" + capitalizedDimension; 7223 var transitionDuration = Util__default["default"].getTransitionDurationFromElement(this._element); 7224 $__default["default"](this._element).one(Util__default["default"].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); 7225 this._element.style[dimension] = this._element[scrollSize] + "px"; 7226 }; 7227 _proto.hide = function hide() { 7228 var _this2 = this; 7229 if (this._isTransitioning || !$__default["default"](this._element).hasClass(CLASS_NAME_SHOW)) { 7230 return; 7231 } 7232 var startEvent = $__default["default"].Event(EVENT_HIDE); 7233 $__default["default"](this._element).trigger(startEvent); 7234 if (startEvent.isDefaultPrevented()) { 7235 return; 7236 } 7237 var dimension = this._getDimension(); 7238 this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px"; 7239 Util__default["default"].reflow(this._element); 7240 $__default["default"](this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW); 7241 var triggerArrayLength = this._triggerArray.length; 7242 if (triggerArrayLength > 0) { 7243 for (var i2 = 0; i2 < triggerArrayLength; i2++) { 7244 var trigger = this._triggerArray[i2]; 7245 var selector = Util__default["default"].getSelectorFromElement(trigger); 7246 if (selector !== null) { 7247 var $elem = $__default["default"]([].slice.call(document.querySelectorAll(selector))); 7248 if (!$elem.hasClass(CLASS_NAME_SHOW)) { 7249 $__default["default"](trigger).addClass(CLASS_NAME_COLLAPSED).attr("aria-expanded", false); 7250 } 7251 } 7252 } 7253 } 7254 this.setTransitioning(true); 7255 var complete = function complete2() { 7256 _this2.setTransitioning(false); 7257 $__default["default"](_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN); 7258 }; 7259 this._element.style[dimension] = ""; 7260 var transitionDuration = Util__default["default"].getTransitionDurationFromElement(this._element); 7261 $__default["default"](this._element).one(Util__default["default"].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); 7262 }; 7263 _proto.setTransitioning = function setTransitioning(isTransitioning) { 7264 this._isTransitioning = isTransitioning; 7265 }; 7266 _proto.dispose = function dispose() { 7267 $__default["default"].removeData(this._element, DATA_KEY); 7268 this._config = null; 7269 this._parent = null; 7270 this._element = null; 7271 this._triggerArray = null; 7272 this._isTransitioning = null; 7273 }; 7274 _proto._getConfig = function _getConfig(config) { 7275 config = _extends({}, Default, config); 7276 config.toggle = Boolean(config.toggle); 7277 Util__default["default"].typeCheckConfig(NAME, config, DefaultType); 7278 return config; 7279 }; 7280 _proto._getDimension = function _getDimension() { 7281 var hasWidth = $__default["default"](this._element).hasClass(DIMENSION_WIDTH); 7282 return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT; 7283 }; 7284 _proto._getParent = function _getParent() { 7285 var _this3 = this; 7286 var parent; 7287 if (Util__default["default"].isElement(this._config.parent)) { 7288 parent = this._config.parent; 7289 if (typeof this._config.parent.jquery !== "undefined") { 7290 parent = this._config.parent[0]; 7291 } 7292 } else { 7293 parent = document.querySelector(this._config.parent); 7294 } 7295 var selector = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]'; 7296 var children = [].slice.call(parent.querySelectorAll(selector)); 7297 $__default["default"](children).each(function(i2, element) { 7298 _this3._addAriaAndCollapsedClass(Collapse3._getTargetFromElement(element), [element]); 7299 }); 7300 return parent; 7301 }; 7302 _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) { 7303 var isOpen = $__default["default"](element).hasClass(CLASS_NAME_SHOW); 7304 if (triggerArray.length) { 7305 $__default["default"](triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr("aria-expanded", isOpen); 7306 } 7307 }; 7308 Collapse3._getTargetFromElement = function _getTargetFromElement(element) { 7309 var selector = Util__default["default"].getSelectorFromElement(element); 7310 return selector ? document.querySelector(selector) : null; 7311 }; 7312 Collapse3._jQueryInterface = function _jQueryInterface(config) { 7313 return this.each(function() { 7314 var $element = $__default["default"](this); 7315 var data = $element.data(DATA_KEY); 7316 var _config = _extends({}, Default, $element.data(), typeof config === "object" && config ? config : {}); 7317 if (!data && _config.toggle && typeof config === "string" && /show|hide/.test(config)) { 7318 _config.toggle = false; 7319 } 7320 if (!data) { 7321 data = new Collapse3(this, _config); 7322 $element.data(DATA_KEY, data); 7323 } 7324 if (typeof config === "string") { 7325 if (typeof data[config] === "undefined") { 7326 throw new TypeError('No method named "' + config + '"'); 7327 } 7328 data[config](); 7329 } 7330 }); 7331 }; 7332 _createClass(Collapse3, null, [{ 7333 key: "VERSION", 7334 get: function get() { 7335 return VERSION; 7336 } 7337 }, { 7338 key: "Default", 7339 get: function get() { 7340 return Default; 7341 } 7342 }]); 7343 return Collapse3; 7344 }(); 7345 $__default["default"](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function(event) { 7346 if (event.currentTarget.tagName === "A") { 7347 event.preventDefault(); 7348 } 7349 var $trigger = $__default["default"](this); 7350 var selector = Util__default["default"].getSelectorFromElement(this); 7351 var selectors = [].slice.call(document.querySelectorAll(selector)); 7352 $__default["default"](selectors).each(function() { 7353 var $target = $__default["default"](this); 7354 var data = $target.data(DATA_KEY); 7355 var config = data ? "toggle" : $trigger.data(); 7356 Collapse2._jQueryInterface.call($target, config); 7357 }); 7358 }); 7359 $__default["default"].fn[NAME] = Collapse2._jQueryInterface; 7360 $__default["default"].fn[NAME].Constructor = Collapse2; 7361 $__default["default"].fn[NAME].noConflict = function() { 7362 $__default["default"].fn[NAME] = JQUERY_NO_CONFLICT; 7363 return Collapse2._jQueryInterface; 7364 }; 7365 return Collapse2; 7366 }); 7367 } 7368 }); 7369 7370
vendor: 55,884 bytes, lines 7370-8599
7370// node_modules/popper.js/dist/umd/popper.js 7371 var require_popper = __commonJS({ 7372 "node_modules/popper.js/dist/umd/popper.js"(exports, module) { 7373 (function(global2, factory) { 7374 typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory() : typeof define === "function" && define.amd ? define(factory) : global2.Popper = factory(); 7375 })(exports, function() { 7376 "use strict"; 7377 var isBrowser = typeof window !== "undefined" && typeof document !== "undefined" && typeof navigator !== "undefined"; 7378 var timeoutDuration = function() { 7379 var longerTimeoutBrowsers = ["Edge", "Trident", "Firefox"]; 7380 for (var i2 = 0; i2 < longerTimeoutBrowsers.length; i2 += 1) { 7381 if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i2]) >= 0) { 7382 return 1; 7383 } 7384 } 7385 return 0; 7386 }(); 7387 function microtaskDebounce(fn) { 7388 var called = false; 7389 return function() { 7390 if (called) { 7391 return; 7392 } 7393 called = true; 7394 window.Promise.resolve().then(function() { 7395 called = false; 7396 fn(); 7397 }); 7398 }; 7399 } 7400 function taskDebounce(fn) { 7401 var scheduled = false; 7402 return function() { 7403 if (!scheduled) { 7404 scheduled = true; 7405 setTimeout(function() { 7406 scheduled = false; 7407 fn(); 7408 }, timeoutDuration); 7409 } 7410 }; 7411 } 7412 var supportsMicroTasks = isBrowser && window.Promise; 7413 var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce; 7414 function isFunction(functionToCheck) { 7415 var getType = {}; 7416 return functionToCheck && getType.toString.call(functionToCheck) === "[object Function]"; 7417 } 7418 function getStyleComputedProperty(element, property) { 7419 if (element.nodeType !== 1) { 7420 return []; 7421 } 7422 var window2 = element.ownerDocument.defaultView; 7423 var css = window2.getComputedStyle(element, null); 7424 return property ? css[property] : css; 7425 } 7426 function getParentNode(element) { 7427 if (element.nodeName === "HTML") { 7428 return element; 7429 } 7430 return element.parentNode || element.host; 7431 } 7432 function getScrollParent(element) { 7433 if (!element) { 7434 return document.body; 7435 } 7436 switch (element.nodeName) { 7437 case "HTML": 7438 case "BODY": 7439 return element.ownerDocument.body; 7440 case "#document": 7441 return element.body; 7442 } 7443 var _getStyleComputedProp = getStyleComputedProperty(element), overflow = _getStyleComputedProp.overflow, overflowX = _getStyleComputedProp.overflowX, overflowY = _getStyleComputedProp.overflowY; 7444 if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) { 7445 return element; 7446 } 7447 return getScrollParent(getParentNode(element)); 7448 } 7449 function getReferenceNode(reference) { 7450 return reference && reference.referenceNode ? reference.referenceNode : reference; 7451 } 7452 var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode); 7453 var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent); 7454 function isIE(version) { 7455 if (version === 11) { 7456 return isIE11; 7457 } 7458 if (version === 10) { 7459 return isIE10; 7460 } 7461 return isIE11 || isIE10; 7462 } 7463 function getOffsetParent(element) { 7464 if (!element) { 7465 return document.documentElement; 7466 } 7467 var noOffsetParent = isIE(10) ? document.body : null; 7468 var offsetParent = element.offsetParent || null; 7469 while (offsetParent === noOffsetParent && element.nextElementSibling) { 7470 offsetParent = (element = element.nextElementSibling).offsetParent; 7471 } 7472 var nodeName = offsetParent && offsetParent.nodeName; 7473 if (!nodeName || nodeName === "BODY" || nodeName === "HTML") { 7474 return element ? element.ownerDocument.documentElement : document.documentElement; 7475 } 7476 if (["TH", "TD", "TABLE"].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, "position") === "static") { 7477 return getOffsetParent(offsetParent); 7478 } 7479 return offsetParent; 7480 } 7481 function isOffsetContainer(element) { 7482 var nodeName = element.nodeName; 7483 if (nodeName === "BODY") { 7484 return false; 7485 } 7486 return nodeName === "HTML" || getOffsetParent(element.firstElementChild) === element; 7487 } 7488 function getRoot(node) { 7489 if (node.parentNode !== null) { 7490 return getRoot(node.parentNode); 7491 } 7492 return node; 7493 } 7494 function findCommonOffsetParent(element1, element2) { 7495 if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) { 7496 return document.documentElement; 7497 } 7498 var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING; 7499 var start = order ? element1 : element2; 7500 var end = order ? element2 : element1; 7501 var range = document.createRange(); 7502 range.setStart(start, 0); 7503 range.setEnd(end, 0); 7504 var commonAncestorContainer = range.commonAncestorContainer; 7505 if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) { 7506 if (isOffsetContainer(commonAncestorContainer)) { 7507 return commonAncestorContainer; 7508 } 7509 return getOffsetParent(commonAncestorContainer); 7510 } 7511 var element1root = getRoot(element1); 7512 if (element1root.host) { 7513 return findCommonOffsetParent(element1root.host, element2); 7514 } else { 7515 return findCommonOffsetParent(element1, getRoot(element2).host); 7516 } 7517 } 7518 function getScroll(element) { 7519 var side = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "top"; 7520 var upperSide = side === "top" ? "scrollTop" : "scrollLeft"; 7521 var nodeName = element.nodeName; 7522 if (nodeName === "BODY" || nodeName === "HTML") { 7523 var html = element.ownerDocument.documentElement; 7524 var scrollingElement = element.ownerDocument.scrollingElement || html; 7525 return scrollingElement[upperSide]; 7526 } 7527 return element[upperSide]; 7528 } 7529 function includeScroll(rect, element) { 7530 var subtract = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false; 7531 var scrollTop = getScroll(element, "top"); 7532 var scrollLeft = getScroll(element, "left"); 7533 var modifier = subtract ? -1 : 1; 7534 rect.top += scrollTop * modifier; 7535 rect.bottom += scrollTop * modifier; 7536 rect.left += scrollLeft * modifier; 7537 rect.right += scrollLeft * modifier; 7538 return rect; 7539 } 7540 function getBordersSize(styles, axis) { 7541 var sideA = axis === "x" ? "Left" : "Top"; 7542 var sideB = sideA === "Left" ? "Right" : "Bottom"; 7543 return parseFloat(styles["border" + sideA + "Width"]) + parseFloat(styles["border" + sideB + "Width"]); 7544 } 7545 function getSize(axis, body, html, computedStyle) { 7546 return Math.max(body["offset" + axis], body["scroll" + axis], html["client" + axis], html["offset" + axis], html["scroll" + axis], isIE(10) ? parseInt(html["offset" + axis]) + parseInt(computedStyle["margin" + (axis === "Height" ? "Top" : "Left")]) + parseInt(computedStyle["margin" + (axis === "Height" ? "Bottom" : "Right")]) : 0); 7547 } 7548 function getWindowSizes(document2) { 7549 var body = document2.body; 7550 var html = document2.documentElement; 7551 var computedStyle = isIE(10) && getComputedStyle(html); 7552 return { 7553 height: getSize("Height", body, html, computedStyle), 7554 width: getSize("Width", body, html, computedStyle) 7555 }; 7556 } 7557 var classCallCheck = function(instance, Constructor) { 7558 if (!(instance instanceof Constructor)) { 7559 throw new TypeError("Cannot call a class as a function"); 7560 } 7561 }; 7562 var createClass = function() { 7563 function defineProperties(target, props) { 7564 for (var i2 = 0; i2 < props.length; i2++) { 7565 var descriptor = props[i2]; 7566 descriptor.enumerable = descriptor.enumerable || false; 7567 descriptor.configurable = true; 7568 if ("value" in descriptor) 7569 descriptor.writable = true; 7570 Object.defineProperty(target, descriptor.key, descriptor); 7571 } 7572 } 7573 return function(Constructor, protoProps, staticProps) { 7574 if (protoProps) 7575 defineProperties(Constructor.prototype, protoProps); 7576 if (staticProps) 7577 defineProperties(Constructor, staticProps); 7578 return Constructor; 7579 }; 7580 }(); 7581 var defineProperty = function(obj, key, value2) { 7582 if (key in obj) { 7583 Object.defineProperty(obj, key, { 7584 value: value2, 7585 enumerable: true, 7586 configurable: true, 7587 writable: true 7588 }); 7589 } else { 7590 obj[key] = value2; 7591 } 7592 return obj; 7593 }; 7594 var _extends = Object.assign || function(target) { 7595 for (var i2 = 1; i2 < arguments.length; i2++) { 7596 var source = arguments[i2]; 7597 for (var key in source) { 7598 if (Object.prototype.hasOwnProperty.call(source, key)) { 7599 target[key] = source[key]; 7600 } 7601 } 7602 } 7603 return target; 7604 }; 7605 function getClientRect(offsets) { 7606 return _extends({}, offsets, { 7607 right: offsets.left + offsets.width, 7608 bottom: offsets.top + offsets.height 7609 }); 7610 } 7611 function getBoundingClientRect(element) { 7612 var rect = {}; 7613 try { 7614 if (isIE(10)) { 7615 rect = element.getBoundingClientRect(); 7616 var scrollTop = getScroll(element, "top"); 7617 var scrollLeft = getScroll(element, "left"); 7618 rect.top += scrollTop; 7619 rect.left += scrollLeft; 7620 rect.bottom += scrollTop; 7621 rect.right += scrollLeft; 7622 } else { 7623 rect = element.getBoundingClientRect(); 7624 } 7625 } catch (e) { 7626 } 7627 var result = { 7628 left: rect.left, 7629 top: rect.top, 7630 width: rect.right - rect.left, 7631 height: rect.bottom - rect.top 7632 }; 7633 var sizes = element.nodeName === "HTML" ? getWindowSizes(element.ownerDocument) : {}; 7634 var width = sizes.width || element.clientWidth || result.width; 7635 var height = sizes.height || element.clientHeight || result.height; 7636 var horizScrollbar = element.offsetWidth - width; 7637 var vertScrollbar = element.offsetHeight - height; 7638 if (horizScrollbar || vertScrollbar) { 7639 var styles = getStyleComputedProperty(element); 7640 horizScrollbar -= getBordersSize(styles, "x"); 7641 vertScrollbar -= getBordersSize(styles, "y"); 7642 result.width -= horizScrollbar; 7643 result.height -= vertScrollbar; 7644 } 7645 return getClientRect(result); 7646 } 7647 function getOffsetRectRelativeToArbitraryNode(children, parent) { 7648 var fixedPosition = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false; 7649 var isIE102 = isIE(10); 7650 var isHTML = parent.nodeName === "HTML"; 7651 var childrenRect = getBoundingClientRect(children); 7652 var parentRect = getBoundingClientRect(parent); 7653 var scrollParent = getScrollParent(children); 7654 var styles = getStyleComputedProperty(parent); 7655 var borderTopWidth = parseFloat(styles.borderTopWidth); 7656 var borderLeftWidth = parseFloat(styles.borderLeftWidth); 7657 if (fixedPosition && isHTML) { 7658 parentRect.top = Math.max(parentRect.top, 0); 7659 parentRect.left = Math.max(parentRect.left, 0); 7660 } 7661 var offsets = getClientRect({ 7662 top: childrenRect.top - parentRect.top - borderTopWidth, 7663 left: childrenRect.left - parentRect.left - borderLeftWidth, 7664 width: childrenRect.width, 7665 height: childrenRect.height 7666 }); 7667 offsets.marginTop = 0; 7668 offsets.marginLeft = 0; 7669 if (!isIE102 && isHTML) { 7670 var marginTop = parseFloat(styles.marginTop); 7671 var marginLeft = parseFloat(styles.marginLeft); 7672 offsets.top -= borderTopWidth - marginTop; 7673 offsets.bottom -= borderTopWidth - marginTop; 7674 offsets.left -= borderLeftWidth - marginLeft; 7675 offsets.right -= borderLeftWidth - marginLeft; 7676 offsets.marginTop = marginTop; 7677 offsets.marginLeft = marginLeft; 7678 } 7679 if (isIE102 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== "BODY") { 7680 offsets = includeScroll(offsets, parent); 7681 } 7682 return offsets; 7683 } 7684 function getViewportOffsetRectRelativeToArtbitraryNode(element) { 7685 var excludeScroll = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false; 7686 var html = element.ownerDocument.documentElement; 7687 var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html); 7688 var width = Math.max(html.clientWidth, window.innerWidth || 0); 7689 var height = Math.max(html.clientHeight, window.innerHeight || 0); 7690 var scrollTop = !excludeScroll ? getScroll(html) : 0; 7691 var scrollLeft = !excludeScroll ? getScroll(html, "left") : 0; 7692 var offset2 = { 7693 top: scrollTop - relativeOffset.top + relativeOffset.marginTop, 7694 left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft, 7695 width, 7696 height 7697 }; 7698 return getClientRect(offset2); 7699 } 7700 function isFixed(element) { 7701 var nodeName = element.nodeName; 7702 if (nodeName === "BODY" || nodeName === "HTML") { 7703 return false; 7704 } 7705 if (getStyleComputedProperty(element, "position") === "fixed") { 7706 return true; 7707 } 7708 var parentNode = getParentNode(element); 7709 if (!parentNode) { 7710 return false; 7711 } 7712 return isFixed(parentNode); 7713 } 7714 function getFixedPositionOffsetParent(element) { 7715 if (!element || !element.parentElement || isIE()) { 7716 return document.documentElement; 7717 } 7718 var el = element.parentElement; 7719 while (el && getStyleComputedProperty(el, "transform") === "none") { 7720 el = el.parentElement; 7721 } 7722 return el || document.documentElement; 7723 } 7724 function getBoundaries(popper, reference, padding, boundariesElement) { 7725 var fixedPosition = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : false; 7726 var boundaries = { top: 0, left: 0 }; 7727 var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference)); 7728 if (boundariesElement === "viewport") { 7729 boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition); 7730 } else { 7731 var boundariesNode = void 0; 7732 if (boundariesElement === "scrollParent") { 7733 boundariesNode = getScrollParent(getParentNode(reference)); 7734 if (boundariesNode.nodeName === "BODY") { 7735 boundariesNode = popper.ownerDocument.documentElement; 7736 } 7737 } else if (boundariesElement === "window") { 7738 boundariesNode = popper.ownerDocument.documentElement; 7739 } else { 7740 boundariesNode = boundariesElement; 7741 } 7742 var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition); 7743 if (boundariesNode.nodeName === "HTML" && !isFixed(offsetParent)) { 7744 var _getWindowSizes = getWindowSizes(popper.ownerDocument), height = _getWindowSizes.height, width = _getWindowSizes.width; 7745 boundaries.top += offsets.top - offsets.marginTop; 7746 boundaries.bottom = height + offsets.top; 7747 boundaries.left += offsets.left - offsets.marginLeft; 7748 boundaries.right = width + offsets.left; 7749 } else { 7750 boundaries = offsets; 7751 } 7752 } 7753 padding = padding || 0; 7754 var isPaddingNumber = typeof padding === "number"; 7755 boundaries.left += isPaddingNumber ? padding : padding.left || 0; 7756 boundaries.top += isPaddingNumber ? padding : padding.top || 0; 7757 boundaries.right -= isPaddingNumber ? padding : padding.right || 0; 7758 boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0; 7759 return boundaries; 7760 } 7761 function getArea(_ref) { 7762 var width = _ref.width, height = _ref.height; 7763 return width * height; 7764 } 7765 function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) { 7766 var padding = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : 0; 7767 if (placement.indexOf("auto") === -1) { 7768 return placement; 7769 } 7770 var boundaries = getBoundaries(popper, reference, padding, boundariesElement); 7771 var rects = { 7772 top: { 7773 width: boundaries.width, 7774 height: refRect.top - boundaries.top 7775 }, 7776 right: { 7777 width: boundaries.right - refRect.right, 7778 height: boundaries.height 7779 }, 7780 bottom: { 7781 width: boundaries.width, 7782 height: boundaries.bottom - refRect.bottom 7783 }, 7784 left: { 7785 width: refRect.left - boundaries.left, 7786 height: boundaries.height 7787 } 7788 }; 7789 var sortedAreas = Object.keys(rects).map(function(key) { 7790 return _extends({ 7791 key 7792 }, rects[key], { 7793 area: getArea(rects[key]) 7794 }); 7795 }).sort(function(a, b) { 7796 return b.area - a.area; 7797 }); 7798 var filteredAreas = sortedAreas.filter(function(_ref2) { 7799 var width = _ref2.width, height = _ref2.height; 7800 return width >= popper.clientWidth && height >= popper.clientHeight; 7801 }); 7802 var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key; 7803 var variation = placement.split("-")[1]; 7804 return computedPlacement + (variation ? "-" + variation : ""); 7805 } 7806 function getReferenceOffsets(state, popper, reference) { 7807 var fixedPosition = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : null; 7808 var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference)); 7809 return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition); 7810 } 7811 function getOuterSizes(element) { 7812 var window2 = element.ownerDocument.defaultView; 7813 var styles = window2.getComputedStyle(element); 7814 var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0); 7815 var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0); 7816 var result = { 7817 width: element.offsetWidth + y, 7818 height: element.offsetHeight + x 7819 }; 7820 return result; 7821 } 7822 function getOppositePlacement(placement) { 7823 var hash = { left: "right", right: "left", bottom: "top", top: "bottom" }; 7824 return placement.replace(/left|right|bottom|top/g, function(matched) { 7825 return hash[matched]; 7826 }); 7827 } 7828 function getPopperOffsets(popper, referenceOffsets, placement) { 7829 placement = placement.split("-")[0]; 7830 var popperRect = getOuterSizes(popper); 7831 var popperOffsets = { 7832 width: popperRect.width, 7833 height: popperRect.height 7834 }; 7835 var isHoriz = ["right", "left"].indexOf(placement) !== -1; 7836 var mainSide = isHoriz ? "top" : "left"; 7837 var secondarySide = isHoriz ? "left" : "top"; 7838 var measurement = isHoriz ? "height" : "width"; 7839 var secondaryMeasurement = !isHoriz ? "height" : "width"; 7840 popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2; 7841 if (placement === secondarySide) { 7842 popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement]; 7843 } else { 7844 popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)]; 7845 } 7846 return popperOffsets; 7847 } 7848 function find(arr, check) { 7849 if (Array.prototype.find) { 7850 return arr.find(check); 7851 } 7852 return arr.filter(check)[0]; 7853 } 7854 function findIndex(arr, prop, value2) { 7855 if (Array.prototype.findIndex) { 7856 return arr.findIndex(function(cur) { 7857 return cur[prop] === value2; 7858 }); 7859 } 7860 var match = find(arr, function(obj) { 7861 return obj[prop] === value2; 7862 }); 7863 return arr.indexOf(match); 7864 } 7865 function runModifiers(modifiers2, data, ends) { 7866 var modifiersToRun = ends === void 0 ? modifiers2 : modifiers2.slice(0, findIndex(modifiers2, "name", ends)); 7867 modifiersToRun.forEach(function(modifier) { 7868 if (modifier["function"]) { 7869 console.warn("`modifier.function` is deprecated, use `modifier.fn`!"); 7870 } 7871 var fn = modifier["function"] || modifier.fn; 7872 if (modifier.enabled && isFunction(fn)) { 7873 data.offsets.popper = getClientRect(data.offsets.popper); 7874 data.offsets.reference = getClientRect(data.offsets.reference); 7875 data = fn(data, modifier); 7876 } 7877 }); 7878 return data; 7879 } 7880 function update() { 7881 if (this.state.isDestroyed) { 7882 return; 7883 } 7884 var data = { 7885 instance: this, 7886 styles: {}, 7887 arrowStyles: {}, 7888 attributes: {}, 7889 flipped: false, 7890 offsets: {} 7891 }; 7892 data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed); 7893 data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding); 7894 data.originalPlacement = data.placement; 7895 data.positionFixed = this.options.positionFixed; 7896 data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement); 7897 data.offsets.popper.position = this.options.positionFixed ? "fixed" : "absolute"; 7898 data = runModifiers(this.modifiers, data); 7899 if (!this.state.isCreated) { 7900 this.state.isCreated = true; 7901 this.options.onCreate(data); 7902 } else { 7903 this.options.onUpdate(data); 7904 } 7905 } 7906 function isModifierEnabled(modifiers2, modifierName) { 7907 return modifiers2.some(function(_ref) { 7908 var name2 = _ref.name, enabled = _ref.enabled; 7909 return enabled && name2 === modifierName; 7910 }); 7911 } 7912 function getSupportedPropertyName(property) { 7913 var prefixes = [false, "ms", "Webkit", "Moz", "O"]; 7914 var upperProp = property.charAt(0).toUpperCase() + property.slice(1); 7915 for (var i2 = 0; i2 < prefixes.length; i2++) { 7916 var prefix = prefixes[i2]; 7917 var toCheck = prefix ? "" + prefix + upperProp : property; 7918 if (typeof document.body.style[toCheck] !== "undefined") { 7919 return toCheck; 7920 } 7921 } 7922 return null; 7923 } 7924 function destroy() { 7925 this.state.isDestroyed = true; 7926 if (isModifierEnabled(this.modifiers, "applyStyle")) { 7927 this.popper.removeAttribute("x-placement"); 7928 this.popper.style.position = ""; 7929 this.popper.style.top = ""; 7930 this.popper.style.left = ""; 7931 this.popper.style.right = ""; 7932 this.popper.style.bottom = ""; 7933 this.popper.style.willChange = ""; 7934 this.popper.style[getSupportedPropertyName("transform")] = ""; 7935 } 7936 this.disableEventListeners(); 7937 if (this.options.removeOnDestroy) { 7938 this.popper.parentNode.removeChild(this.popper); 7939 } 7940 return this; 7941 } 7942 function getWindow(element) { 7943 var ownerDocument = element.ownerDocument; 7944 return ownerDocument ? ownerDocument.defaultView : window; 7945 } 7946 function attachToScrollParents(scrollParent, event, callback, scrollParents) { 7947 var isBody = scrollParent.nodeName === "BODY"; 7948 var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent; 7949 target.addEventListener(event, callback, { passive: true }); 7950 if (!isBody) { 7951 attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents); 7952 } 7953 scrollParents.push(target); 7954 } 7955 function setupEventListeners(reference, options, state, updateBound) { 7956 state.updateBound = updateBound; 7957 getWindow(reference).addEventListener("resize", state.updateBound, { passive: true }); 7958 var scrollElement = getScrollParent(reference); 7959 attachToScrollParents(scrollElement, "scroll", state.updateBound, state.scrollParents); 7960 state.scrollElement = scrollElement; 7961 state.eventsEnabled = true; 7962 return state; 7963 } 7964 function enableEventListeners() { 7965 if (!this.state.eventsEnabled) { 7966 this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate); 7967 } 7968 } 7969 function removeEventListeners(reference, state) { 7970 getWindow(reference).removeEventListener("resize", state.updateBound); 7971 state.scrollParents.forEach(function(target) { 7972 target.removeEventListener("scroll", state.updateBound); 7973 }); 7974 state.updateBound = null; 7975 state.scrollParents = []; 7976 state.scrollElement = null; 7977 state.eventsEnabled = false; 7978 return state; 7979 } 7980 function disableEventListeners() { 7981 if (this.state.eventsEnabled) { 7982 cancelAnimationFrame(this.scheduleUpdate); 7983 this.state = removeEventListeners(this.reference, this.state); 7984 } 7985 } 7986 function isNumeric(n) { 7987 return n !== "" && !isNaN(parseFloat(n)) && isFinite(n); 7988 } 7989 function setStyles(element, styles) { 7990 Object.keys(styles).forEach(function(prop) { 7991 var unit = ""; 7992 if (["width", "height", "top", "right", "bottom", "left"].indexOf(prop) !== -1 && isNumeric(styles[prop])) { 7993 unit = "px"; 7994 } 7995 element.style[prop] = styles[prop] + unit; 7996 }); 7997 } 7998 function setAttributes(element, attributes) { 7999 Object.keys(attributes).forEach(function(prop) { 8000 var value2 = attributes[prop]; 8001 if (value2 !== false) { 8002 element.setAttribute(prop, attributes[prop]); 8003 } else { 8004 element.removeAttribute(prop); 8005 } 8006 }); 8007 } 8008 function applyStyle(data) { 8009 setStyles(data.instance.popper, data.styles); 8010 setAttributes(data.instance.popper, data.attributes); 8011 if (data.arrowElement && Object.keys(data.arrowStyles).length) { 8012 setStyles(data.arrowElement, data.arrowStyles); 8013 } 8014 return data; 8015 } 8016 function applyStyleOnLoad(reference, popper, options, modifierOptions, state) { 8017 var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed); 8018 var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding); 8019 popper.setAttribute("x-placement", placement); 8020 setStyles(popper, { position: options.positionFixed ? "fixed" : "absolute" }); 8021 return options; 8022 } 8023 function getRoundedOffsets(data, shouldRound) { 8024 var _data$offsets = data.offsets, popper = _data$offsets.popper, reference = _data$offsets.reference; 8025 var round = Math.round, floor = Math.floor; 8026 var noRound = function noRound2(v) { 8027 return v; 8028 }; 8029 var referenceWidth = round(reference.width); 8030 var popperWidth = round(popper.width); 8031 var isVertical = ["left", "right"].indexOf(data.placement) !== -1; 8032 var isVariation = data.placement.indexOf("-") !== -1; 8033 var sameWidthParity = referenceWidth % 2 === popperWidth % 2; 8034 var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1; 8035 var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor; 8036 var verticalToInteger = !shouldRound ? noRound : round; 8037 return { 8038 left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left), 8039 top: verticalToInteger(popper.top), 8040 bottom: verticalToInteger(popper.bottom), 8041 right: horizontalToInteger(popper.right) 8042 }; 8043 } 8044 var isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent); 8045 function computeStyle(data, options) { 8046 var x = options.x, y = options.y; 8047 var popper = data.offsets.popper; 8048 var legacyGpuAccelerationOption = find(data.instance.modifiers, function(modifier) { 8049 return modifier.name === "applyStyle"; 8050 }).gpuAcceleration; 8051 if (legacyGpuAccelerationOption !== void 0) { 8052 console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!"); 8053 } 8054 var gpuAcceleration = legacyGpuAccelerationOption !== void 0 ? legacyGpuAccelerationOption : options.gpuAcceleration; 8055 var offsetParent = getOffsetParent(data.instance.popper); 8056 var offsetParentRect = getBoundingClientRect(offsetParent); 8057 var styles = { 8058 position: popper.position 8059 }; 8060 var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox); 8061 var sideA = x === "bottom" ? "top" : "bottom"; 8062 var sideB = y === "right" ? "left" : "right"; 8063 var prefixedProperty = getSupportedPropertyName("transform"); 8064 var left = void 0, top = void 0; 8065 if (sideA === "bottom") { 8066 if (offsetParent.nodeName === "HTML") { 8067 top = -offsetParent.clientHeight + offsets.bottom; 8068 } else { 8069 top = -offsetParentRect.height + offsets.bottom; 8070 } 8071 } else { 8072 top = offsets.top; 8073 } 8074 if (sideB === "right") { 8075 if (offsetParent.nodeName === "HTML") { 8076 left = -offsetParent.clientWidth + offsets.right; 8077 } else { 8078 left = -offsetParentRect.width + offsets.right; 8079 } 8080 } else { 8081 left = offsets.left; 8082 } 8083 if (gpuAcceleration && prefixedProperty) { 8084 styles[prefixedProperty] = "translate3d(" + left + "px, " + top + "px, 0)"; 8085 styles[sideA] = 0; 8086 styles[sideB] = 0; 8087 styles.willChange = "transform"; 8088 } else { 8089 var invertTop = sideA === "bottom" ? -1 : 1; 8090 var invertLeft = sideB === "right" ? -1 : 1; 8091 styles[sideA] = top * invertTop; 8092 styles[sideB] = left * invertLeft; 8093 styles.willChange = sideA + ", " + sideB; 8094 } 8095 var attributes = { 8096 "x-placement": data.placement 8097 }; 8098 data.attributes = _extends({}, attributes, data.attributes); 8099 data.styles = _extends({}, styles, data.styles); 8100 data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles); 8101 return data; 8102 } 8103 function isModifierRequired(modifiers2, requestingName, requestedName) { 8104 var requesting = find(modifiers2, function(_ref) { 8105 var name2 = _ref.name; 8106 return name2 === requestingName; 8107 }); 8108 var isRequired = !!requesting && modifiers2.some(function(modifier) { 8109 return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order; 8110 }); 8111 if (!isRequired) { 8112 var _requesting = "`" + requestingName + "`"; 8113 var requested = "`" + requestedName + "`"; 8114 console.warn(requested + " modifier is required by " + _requesting + " modifier in order to work, be sure to include it before " + _requesting + "!"); 8115 } 8116 return isRequired; 8117 } 8118 function arrow(data, options) { 8119 var _data$offsets$arrow; 8120 if (!isModifierRequired(data.instance.modifiers, "arrow", "keepTogether")) { 8121 return data; 8122 } 8123 var arrowElement = options.element; 8124 if (typeof arrowElement === "string") { 8125 arrowElement = data.instance.popper.querySelector(arrowElement); 8126 if (!arrowElement) { 8127 return data; 8128 } 8129 } else { 8130 if (!data.instance.popper.contains(arrowElement)) { 8131 console.warn("WARNING: `arrow.element` must be child of its popper element!"); 8132 return data; 8133 } 8134 } 8135 var placement = data.placement.split("-")[0]; 8136 var _data$offsets = data.offsets, popper = _data$offsets.popper, reference = _data$offsets.reference; 8137 var isVertical = ["left", "right"].indexOf(placement) !== -1; 8138 var len = isVertical ? "height" : "width"; 8139 var sideCapitalized = isVertical ? "Top" : "Left"; 8140 var side = sideCapitalized.toLowerCase(); 8141 var altSide = isVertical ? "left" : "top"; 8142 var opSide = isVertical ? "bottom" : "right"; 8143 var arrowElementSize = getOuterSizes(arrowElement)[len]; 8144 if (reference[opSide] - arrowElementSize < popper[side]) { 8145 data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize); 8146 } 8147 if (reference[side] + arrowElementSize > popper[opSide]) { 8148 data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide]; 8149 } 8150 data.offsets.popper = getClientRect(data.offsets.popper); 8151 var center = reference[side] + reference[len] / 2 - arrowElementSize / 2; 8152 var css = getStyleComputedProperty(data.instance.popper); 8153 var popperMarginSide = parseFloat(css["margin" + sideCapitalized]); 8154 var popperBorderSide = parseFloat(css["border" + sideCapitalized + "Width"]); 8155 var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; 8156 sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0); 8157 data.arrowElement = arrowElement; 8158 data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ""), _data$offsets$arrow); 8159 return data; 8160 } 8161 function getOppositeVariation(variation) { 8162 if (variation === "end") { 8163 return "start"; 8164 } else if (variation === "start") { 8165 return "end"; 8166 } 8167 return variation; 8168 } 8169 var placements = ["auto-start", "auto", "auto-end", "top-start", "top", "top-end", "right-start", "right", "right-end", "bottom-end", "bottom", "bottom-start", "left-end", "left", "left-start"]; 8170 var validPlacements = placements.slice(3); 8171 function clockwise(placement) { 8172 var counter = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false; 8173 var index = validPlacements.indexOf(placement); 8174 var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index)); 8175 return counter ? arr.reverse() : arr; 8176 } 8177 var BEHAVIORS = { 8178 FLIP: "flip", 8179 CLOCKWISE: "clockwise", 8180 COUNTERCLOCKWISE: "counterclockwise" 8181 }; 8182 function flip(data, options) { 8183 if (isModifierEnabled(data.instance.modifiers, "inner")) { 8184 return data; 8185 } 8186 if (data.flipped && data.placement === data.originalPlacement) { 8187 return data; 8188 } 8189 var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed); 8190 var placement = data.placement.split("-")[0]; 8191 var placementOpposite = getOppositePlacement(placement); 8192 var variation = data.placement.split("-")[1] || ""; 8193 var flipOrder = []; 8194 switch (options.behavior) { 8195 case BEHAVIORS.FLIP: 8196 flipOrder = [placement, placementOpposite]; 8197 break; 8198 case BEHAVIORS.CLOCKWISE: 8199 flipOrder = clockwise(placement); 8200 break; 8201 case BEHAVIORS.COUNTERCLOCKWISE: 8202 flipOrder = clockwise(placement, true); 8203 break; 8204 default: 8205 flipOrder = options.behavior; 8206 } 8207 flipOrder.forEach(function(step, index) { 8208 if (placement !== step || flipOrder.length === index + 1) { 8209 return data; 8210 } 8211 placement = data.placement.split("-")[0]; 8212 placementOpposite = getOppositePlacement(placement); 8213 var popperOffsets = data.offsets.popper; 8214 var refOffsets = data.offsets.reference; 8215 var floor = Math.floor; 8216 var overlapsRef = placement === "left" && floor(popperOffsets.right) > floor(refOffsets.left) || placement === "right" && floor(popperOffsets.left) < floor(refOffsets.right) || placement === "top" && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === "bottom" && floor(popperOffsets.top) < floor(refOffsets.bottom); 8217 var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left); 8218 var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right); 8219 var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top); 8220 var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom); 8221 var overflowsBoundaries = placement === "left" && overflowsLeft || placement === "right" && overflowsRight || placement === "top" && overflowsTop || placement === "bottom" && overflowsBottom; 8222 var isVertical = ["top", "bottom"].indexOf(placement) !== -1; 8223 var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === "start" && overflowsLeft || isVertical && variation === "end" && overflowsRight || !isVertical && variation === "start" && overflowsTop || !isVertical && variation === "end" && overflowsBottom); 8224 var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === "start" && overflowsRight || isVertical && variation === "end" && overflowsLeft || !isVertical && variation === "start" && overflowsBottom || !isVertical && variation === "end" && overflowsTop); 8225 var flippedVariation = flippedVariationByRef || flippedVariationByContent; 8226 if (overlapsRef || overflowsBoundaries || flippedVariation) { 8227 data.flipped = true; 8228 if (overlapsRef || overflowsBoundaries) { 8229 placement = flipOrder[index + 1]; 8230 } 8231 if (flippedVariation) { 8232 variation = getOppositeVariation(variation); 8233 } 8234 data.placement = placement + (variation ? "-" + variation : ""); 8235 data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement)); 8236 data = runModifiers(data.instance.modifiers, data, "flip"); 8237 } 8238 }); 8239 return data; 8240 } 8241 function keepTogether(data) { 8242 var _data$offsets = data.offsets, popper = _data$offsets.popper, reference = _data$offsets.reference; 8243 var placement = data.placement.split("-")[0]; 8244 var floor = Math.floor; 8245 var isVertical = ["top", "bottom"].indexOf(placement) !== -1; 8246 var side = isVertical ? "right" : "bottom"; 8247 var opSide = isVertical ? "left" : "top"; 8248 var measurement = isVertical ? "width" : "height"; 8249 if (popper[side] < floor(reference[opSide])) { 8250 data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement]; 8251 } 8252 if (popper[opSide] > floor(reference[side])) { 8253 data.offsets.popper[opSide] = floor(reference[side]); 8254 } 8255 return data; 8256 } 8257 function toValue(str, measurement, popperOffsets, referenceOffsets) { 8258 var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/); 8259 var value2 = +split[1]; 8260 var unit = split[2]; 8261 if (!value2) { 8262 return str; 8263 } 8264 if (unit.indexOf("%") === 0) { 8265 var element = void 0; 8266 switch (unit) { 8267 case "%p": 8268 element = popperOffsets; 8269 break; 8270 case "%": 8271 case "%r": 8272 default: 8273 element = referenceOffsets; 8274 } 8275 var rect = getClientRect(element); 8276 return rect[measurement] / 100 * value2; 8277 } else if (unit === "vh" || unit === "vw") { 8278 var size = void 0; 8279 if (unit === "vh") { 8280 size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0); 8281 } else { 8282 size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0); 8283 } 8284 return size / 100 * value2; 8285 } else { 8286 return value2; 8287 } 8288 } 8289 function parseOffset(offset2, popperOffsets, referenceOffsets, basePlacement) { 8290 var offsets = [0, 0]; 8291 var useHeight = ["right", "left"].indexOf(basePlacement) !== -1; 8292 var fragments = offset2.split(/(\+|\-)/).map(function(frag) { 8293 return frag.trim(); 8294 }); 8295 var divider = fragments.indexOf(find(fragments, function(frag) { 8296 return frag.search(/,|\s/) !== -1; 8297 })); 8298 if (fragments[divider] && fragments[divider].indexOf(",") === -1) { 8299 console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead."); 8300 } 8301 var splitRegex = /\s*,\s*|\s+/; 8302 var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments]; 8303 ops = ops.map(function(op, index) { 8304 var measurement = (index === 1 ? !useHeight : useHeight) ? "height" : "width"; 8305 var mergeWithPrevious = false; 8306 return op.reduce(function(a, b) { 8307 if (a[a.length - 1] === "" && ["+", "-"].indexOf(b) !== -1) { 8308 a[a.length - 1] = b; 8309 mergeWithPrevious = true; 8310 return a; 8311 } else if (mergeWithPrevious) { 8312 a[a.length - 1] += b; 8313 mergeWithPrevious = false; 8314 return a; 8315 } else { 8316 return a.concat(b); 8317 } 8318 }, []).map(function(str) { 8319 return toValue(str, measurement, popperOffsets, referenceOffsets); 8320 }); 8321 }); 8322 ops.forEach(function(op, index) { 8323 op.forEach(function(frag, index2) { 8324 if (isNumeric(frag)) { 8325 offsets[index] += frag * (op[index2 - 1] === "-" ? -1 : 1); 8326 } 8327 }); 8328 }); 8329 return offsets; 8330 } 8331 function offset(data, _ref) { 8332 var offset2 = _ref.offset; 8333 var placement = data.placement, _data$offsets = data.offsets, popper = _data$offsets.popper, reference = _data$offsets.reference; 8334 var basePlacement = placement.split("-")[0]; 8335 var offsets = void 0; 8336 if (isNumeric(+offset2)) { 8337 offsets = [+offset2, 0]; 8338 } else { 8339 offsets = parseOffset(offset2, popper, reference, basePlacement); 8340 } 8341 if (basePlacement === "left") { 8342 popper.top += offsets[0]; 8343 popper.left -= offsets[1]; 8344 } else if (basePlacement === "right") { 8345 popper.top += offsets[0]; 8346 popper.left += offsets[1]; 8347 } else if (basePlacement === "top") { 8348 popper.left += offsets[0]; 8349 popper.top -= offsets[1]; 8350 } else if (basePlacement === "bottom") { 8351 popper.left += offsets[0]; 8352 popper.top += offsets[1]; 8353 } 8354 data.popper = popper; 8355 return data; 8356 } 8357 function preventOverflow(data, options) { 8358 var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper); 8359 if (data.instance.reference === boundariesElement) { 8360 boundariesElement = getOffsetParent(boundariesElement); 8361 } 8362 var transformProp = getSupportedPropertyName("transform"); 8363 var popperStyles = data.instance.popper.style; 8364 var top = popperStyles.top, left = popperStyles.left, transform = popperStyles[transformProp]; 8365 popperStyles.top = ""; 8366 popperStyles.left = ""; 8367 popperStyles[transformProp] = ""; 8368 var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed); 8369 popperStyles.top = top; 8370 popperStyles.left = left; 8371 popperStyles[transformProp] = transform; 8372 options.boundaries = boundaries; 8373 var order = options.priority; 8374 var popper = data.offsets.popper; 8375 var check = { 8376 primary: function primary(placement) { 8377 var value2 = popper[placement]; 8378 if (popper[placement] < boundaries[placement] && !options.escapeWithReference) { 8379 value2 = Math.max(popper[placement], boundaries[placement]); 8380 } 8381 return defineProperty({}, placement, value2); 8382 }, 8383 secondary: function secondary(placement) { 8384 var mainSide = placement === "right" ? "left" : "top"; 8385 var value2 = popper[mainSide]; 8386 if (popper[placement] > boundaries[placement] && !options.escapeWithReference) { 8387 value2 = Math.min(popper[mainSide], boundaries[placement] - (placement === "right" ? popper.width : popper.height)); 8388 } 8389 return defineProperty({}, mainSide, value2); 8390 } 8391 }; 8392 order.forEach(function(placement) { 8393 var side = ["left", "top"].indexOf(placement) !== -1 ? "primary" : "secondary"; 8394 popper = _extends({}, popper, check[side](placement)); 8395 }); 8396 data.offsets.popper = popper; 8397 return data; 8398 } 8399 function shift(data) { 8400 var placement = data.placement; 8401 var basePlacement = placement.split("-")[0]; 8402 var shiftvariation = placement.split("-")[1]; 8403 if (shiftvariation) { 8404 var _data$offsets = data.offsets, reference = _data$offsets.reference, popper = _data$offsets.popper; 8405 var isVertical = ["bottom", "top"].indexOf(basePlacement) !== -1; 8406 var side = isVertical ? "left" : "top"; 8407 var measurement = isVertical ? "width" : "height"; 8408 var shiftOffsets = { 8409 start: defineProperty({}, side, reference[side]), 8410 end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement]) 8411 }; 8412 data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]); 8413 } 8414 return data; 8415 } 8416 function hide(data) { 8417 if (!isModifierRequired(data.instance.modifiers, "hide", "preventOverflow")) { 8418 return data; 8419 } 8420 var refRect = data.offsets.reference; 8421 var bound = find(data.instance.modifiers, function(modifier) { 8422 return modifier.name === "preventOverflow"; 8423 }).boundaries; 8424 if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) { 8425 if (data.hide === true) { 8426 return data; 8427 } 8428 data.hide = true; 8429 data.attributes["x-out-of-boundaries"] = ""; 8430 } else { 8431 if (data.hide === false) { 8432 return data; 8433 } 8434 data.hide = false; 8435 data.attributes["x-out-of-boundaries"] = false; 8436 } 8437 return data; 8438 } 8439 function inner(data) { 8440 var placement = data.placement; 8441 var basePlacement = placement.split("-")[0]; 8442 var _data$offsets = data.offsets, popper = _data$offsets.popper, reference = _data$offsets.reference; 8443 var isHoriz = ["left", "right"].indexOf(basePlacement) !== -1; 8444 var subtractLength = ["top", "left"].indexOf(basePlacement) === -1; 8445 popper[isHoriz ? "left" : "top"] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? "width" : "height"] : 0); 8446 data.placement = getOppositePlacement(placement); 8447 data.offsets.popper = getClientRect(popper); 8448 return data; 8449 } 8450 var modifiers = { 8451 shift: { 8452 order: 100, 8453 enabled: true, 8454 fn: shift 8455 }, 8456 offset: { 8457 order: 200, 8458 enabled: true, 8459 fn: offset, 8460 offset: 0 8461 }, 8462 preventOverflow: { 8463 order: 300, 8464 enabled: true, 8465 fn: preventOverflow, 8466 priority: ["left", "right", "top", "bottom"], 8467 padding: 5, 8468 boundariesElement: "scrollParent" 8469 }, 8470 keepTogether: { 8471 order: 400, 8472 enabled: true, 8473 fn: keepTogether 8474 }, 8475 arrow: { 8476 order: 500, 8477 enabled: true, 8478 fn: arrow, 8479 element: "[x-arrow]" 8480 }, 8481 flip: { 8482 order: 600, 8483 enabled: true, 8484 fn: flip, 8485 behavior: "flip", 8486 padding: 5, 8487 boundariesElement: "viewport", 8488 flipVariations: false, 8489 flipVariationsByContent: false 8490 }, 8491 inner: { 8492 order: 700, 8493 enabled: false, 8494 fn: inner 8495 }, 8496 hide: { 8497 order: 800, 8498 enabled: true, 8499 fn: hide 8500 }, 8501 computeStyle: { 8502 order: 850, 8503 enabled: true, 8504 fn: computeStyle, 8505 gpuAcceleration: true, 8506 x: "bottom", 8507 y: "right" 8508 }, 8509 applyStyle: { 8510 order: 900, 8511 enabled: true, 8512 fn: applyStyle, 8513 onLoad: applyStyleOnLoad, 8514 gpuAcceleration: void 0 8515 } 8516 }; 8517 var Defaults = { 8518 placement: "bottom", 8519 positionFixed: false, 8520 eventsEnabled: true, 8521 removeOnDestroy: false, 8522 onCreate: function onCreate() { 8523 }, 8524 onUpdate: function onUpdate() { 8525 }, 8526 modifiers 8527 }; 8528 var Popper = function() { 8529 function Popper2(reference, popper) { 8530 var _this = this; 8531 var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; 8532 classCallCheck(this, Popper2); 8533 this.scheduleUpdate = function() { 8534 return requestAnimationFrame(_this.update); 8535 }; 8536 this.update = debounce(this.update.bind(this)); 8537 this.options = _extends({}, Popper2.Defaults, options); 8538 this.state = { 8539 isDestroyed: false, 8540 isCreated: false, 8541 scrollParents: [] 8542 }; 8543 this.reference = reference && reference.jquery ? reference[0] : reference; 8544 this.popper = popper && popper.jquery ? popper[0] : popper; 8545 this.options.modifiers = {}; 8546 Object.keys(_extends({}, Popper2.Defaults.modifiers, options.modifiers)).forEach(function(name2) { 8547 _this.options.modifiers[name2] = _extends({}, Popper2.Defaults.modifiers[name2] || {}, options.modifiers ? options.modifiers[name2] : {}); 8548 }); 8549 this.modifiers = Object.keys(this.options.modifiers).map(function(name2) { 8550 return _extends({ 8551 name: name2 8552 }, _this.options.modifiers[name2]); 8553 }).sort(function(a, b) { 8554 return a.order - b.order; 8555 }); 8556 this.modifiers.forEach(function(modifierOptions) { 8557 if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) { 8558 modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state); 8559 } 8560 }); 8561 this.update(); 8562 var eventsEnabled = this.options.eventsEnabled; 8563 if (eventsEnabled) { 8564 this.enableEventListeners(); 8565 } 8566 this.state.eventsEnabled = eventsEnabled; 8567 } 8568 createClass(Popper2, [{ 8569 key: "update", 8570 value: function update$$1() { 8571 return update.call(this); 8572 } 8573 }, { 8574 key: "destroy", 8575 value: function destroy$$1() { 8576 return destroy.call(this); 8577 } 8578 }, { 8579 key: "enableEventListeners", 8580 value: function enableEventListeners$$1() { 8581 return enableEventListeners.call(this); 8582 } 8583 }, { 8584 key: "disableEventListeners", 8585 value: function disableEventListeners$$1() { 8586 return disableEventListeners.call(this); 8587 } 8588 }]); 8589 return Popper2; 8590 }(); 8591 Popper.Utils = (typeof window !== "undefined" ? window : global).PopperUtils; 8592 Popper.placements = placements; 8593 Popper.Defaults = Defaults; 8594 return Popper; 8595 }); 8596 } 8597 }); 8598 8599
vendor: 19,103 bytes, lines 8599-9010
8599// node_modules/bootstrap/js/dist/dropdown.js 8600 var require_dropdown = __commonJS({ 8601 "node_modules/bootstrap/js/dist/dropdown.js"(exports, module) { 8602 (function(global2, factory) { 8603 typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory(require_jquery(), require_popper(), require_util()) : typeof define === "function" && define.amd ? define(["jquery", "popper.js", "./util"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, global2.Dropdown = factory(global2.jQuery, global2.Popper, global2.Util)); 8604 })(exports, function($2, Popper, Util2) { 8605 "use strict"; 8606 function _interopDefaultLegacy(e) { 8607 return e && typeof e === "object" && "default" in e ? e : { "default": e }; 8608 } 8609 var $__default = /* @__PURE__ */ _interopDefaultLegacy($2); 8610 var Popper__default = /* @__PURE__ */ _interopDefaultLegacy(Popper); 8611 var Util__default = /* @__PURE__ */ _interopDefaultLegacy(Util2); 8612 function _defineProperties(target, props) { 8613 for (var i2 = 0; i2 < props.length; i2++) { 8614 var descriptor = props[i2]; 8615 descriptor.enumerable = descriptor.enumerable || false; 8616 descriptor.configurable = true; 8617 if ("value" in descriptor) 8618 descriptor.writable = true; 8619 Object.defineProperty(target, descriptor.key, descriptor); 8620 } 8621 } 8622 function _createClass(Constructor, protoProps, staticProps) { 8623 if (protoProps) 8624 _defineProperties(Constructor.prototype, protoProps); 8625 if (staticProps) 8626 _defineProperties(Constructor, staticProps); 8627 Object.defineProperty(Constructor, "prototype", { 8628 writable: false 8629 }); 8630 return Constructor; 8631 } 8632 function _extends() { 8633 _extends = Object.assign ? Object.assign.bind() : function(target) { 8634 for (var i2 = 1; i2 < arguments.length; i2++) { 8635 var source = arguments[i2]; 8636 for (var key in source) { 8637 if (Object.prototype.hasOwnProperty.call(source, key)) { 8638 target[key] = source[key]; 8639 } 8640 } 8641 } 8642 return target; 8643 }; 8644 return _extends.apply(this, arguments); 8645 } 8646 var NAME = "dropdown"; 8647 var VERSION = "4.6.2"; 8648 var DATA_KEY = "bs.dropdown"; 8649 var EVENT_KEY = "." + DATA_KEY; 8650 var DATA_API_KEY = ".data-api"; 8651 var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME]; 8652 var ESCAPE_KEYCODE = 27; 8653 var SPACE_KEYCODE = 32; 8654 var TAB_KEYCODE = 9; 8655 var ARROW_UP_KEYCODE = 38; 8656 var ARROW_DOWN_KEYCODE = 40; 8657 var RIGHT_MOUSE_BUTTON_WHICH = 3; 8658 var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE); 8659 var CLASS_NAME_DISABLED = "disabled"; 8660 var CLASS_NAME_SHOW = "show"; 8661 var CLASS_NAME_DROPUP = "dropup"; 8662 var CLASS_NAME_DROPRIGHT = "dropright"; 8663 var CLASS_NAME_DROPLEFT = "dropleft"; 8664 var CLASS_NAME_MENURIGHT = "dropdown-menu-right"; 8665 var CLASS_NAME_POSITION_STATIC = "position-static"; 8666 var EVENT_HIDE = "hide" + EVENT_KEY; 8667 var EVENT_HIDDEN = "hidden" + EVENT_KEY; 8668 var EVENT_SHOW = "show" + EVENT_KEY; 8669 var EVENT_SHOWN = "shown" + EVENT_KEY; 8670 var EVENT_CLICK = "click" + EVENT_KEY; 8671 var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY; 8672 var EVENT_KEYDOWN_DATA_API = "keydown" + EVENT_KEY + DATA_API_KEY; 8673 var EVENT_KEYUP_DATA_API = "keyup" + EVENT_KEY + DATA_API_KEY; 8674 var SELECTOR_DATA_TOGGLE = '[data-toggle="dropdown"]'; 8675 var SELECTOR_FORM_CHILD = ".dropdown form"; 8676 var SELECTOR_MENU = ".dropdown-menu"; 8677 var SELECTOR_NAVBAR_NAV = ".navbar-nav"; 8678 var SELECTOR_VISIBLE_ITEMS = ".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)"; 8679 var PLACEMENT_TOP = "top-start"; 8680 var PLACEMENT_TOPEND = "top-end"; 8681 var PLACEMENT_BOTTOM = "bottom-start"; 8682 var PLACEMENT_BOTTOMEND = "bottom-end"; 8683 var PLACEMENT_RIGHT = "right-start"; 8684 var PLACEMENT_LEFT = "left-start"; 8685 var Default = { 8686 offset: 0, 8687 flip: true, 8688 boundary: "scrollParent", 8689 reference: "toggle", 8690 display: "dynamic", 8691 popperConfig: null 8692 }; 8693 var DefaultType = { 8694 offset: "(number|string|function)", 8695 flip: "boolean", 8696 boundary: "(string|element)", 8697 reference: "(string|element)", 8698 display: "string", 8699 popperConfig: "(null|object)" 8700 }; 8701 var Dropdown2 = /* @__PURE__ */ function() { 8702 function Dropdown3(element, config) { 8703 this._element = element; 8704 this._popper = null; 8705 this._config = this._getConfig(config); 8706 this._menu = this._getMenuElement(); 8707 this._inNavbar = this._detectNavbar(); 8708 this._addEventListeners(); 8709 } 8710 var _proto = Dropdown3.prototype; 8711 _proto.toggle = function toggle() { 8712 if (this._element.disabled || $__default["default"](this._element).hasClass(CLASS_NAME_DISABLED)) { 8713 return; 8714 } 8715 var isActive = $__default["default"](this._menu).hasClass(CLASS_NAME_SHOW); 8716 Dropdown3._clearMenus(); 8717 if (isActive) { 8718 return; 8719 } 8720 this.show(true); 8721 }; 8722 _proto.show = function show(usePopper) { 8723 if (usePopper === void 0) { 8724 usePopper = false; 8725 } 8726 if (this._element.disabled || $__default["default"](this._element).hasClass(CLASS_NAME_DISABLED) || $__default["default"](this._menu).hasClass(CLASS_NAME_SHOW)) { 8727 return; 8728 } 8729 var relatedTarget = { 8730 relatedTarget: this._element 8731 }; 8732 var showEvent = $__default["default"].Event(EVENT_SHOW, relatedTarget); 8733 var parent = Dropdown3._getParentFromElement(this._element); 8734 $__default["default"](parent).trigger(showEvent); 8735 if (showEvent.isDefaultPrevented()) { 8736 return; 8737 } 8738 if (!this._inNavbar && usePopper) { 8739 if (typeof Popper__default["default"] === "undefined") { 8740 throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)"); 8741 } 8742 var referenceElement = this._element; 8743 if (this._config.reference === "parent") { 8744 referenceElement = parent; 8745 } else if (Util__default["default"].isElement(this._config.reference)) { 8746 referenceElement = this._config.reference; 8747 if (typeof this._config.reference.jquery !== "undefined") { 8748 referenceElement = this._config.reference[0]; 8749 } 8750 } 8751 if (this._config.boundary !== "scrollParent") { 8752 $__default["default"](parent).addClass(CLASS_NAME_POSITION_STATIC); 8753 } 8754 this._popper = new Popper__default["default"](referenceElement, this._menu, this._getPopperConfig()); 8755 } 8756 if ("ontouchstart" in document.documentElement && $__default["default"](parent).closest(SELECTOR_NAVBAR_NAV).length === 0) { 8757 $__default["default"](document.body).children().on("mouseover", null, $__default["default"].noop); 8758 } 8759 this._element.focus(); 8760 this._element.setAttribute("aria-expanded", true); 8761 $__default["default"](this._menu).toggleClass(CLASS_NAME_SHOW); 8762 $__default["default"](parent).toggleClass(CLASS_NAME_SHOW).trigger($__default["default"].Event(EVENT_SHOWN, relatedTarget)); 8763 }; 8764 _proto.hide = function hide() { 8765 if (this._element.disabled || $__default["default"](this._element).hasClass(CLASS_NAME_DISABLED) || !$__default["default"](this._menu).hasClass(CLASS_NAME_SHOW)) { 8766 return; 8767 } 8768 var relatedTarget = { 8769 relatedTarget: this._element 8770 }; 8771 var hideEvent = $__default["default"].Event(EVENT_HIDE, relatedTarget); 8772 var parent = Dropdown3._getParentFromElement(this._element); 8773 $__default["default"](parent).trigger(hideEvent); 8774 if (hideEvent.isDefaultPrevented()) { 8775 return; 8776 } 8777 if (this._popper) { 8778 this._popper.destroy(); 8779 } 8780 $__default["default"](this._menu).toggleClass(CLASS_NAME_SHOW); 8781 $__default["default"](parent).toggleClass(CLASS_NAME_SHOW).trigger($__default["default"].Event(EVENT_HIDDEN, relatedTarget)); 8782 }; 8783 _proto.dispose = function dispose() { 8784 $__default["default"].removeData(this._element, DATA_KEY); 8785 $__default["default"](this._element).off(EVENT_KEY); 8786 this._element = null; 8787 this._menu = null; 8788 if (this._popper !== null) { 8789 this._popper.destroy(); 8790 this._popper = null; 8791 } 8792 }; 8793 _proto.update = function update() { 8794 this._inNavbar = this._detectNavbar(); 8795 if (this._popper !== null) { 8796 this._popper.scheduleUpdate(); 8797 } 8798 }; 8799 _proto._addEventListeners = function _addEventListeners() { 8800 var _this = this; 8801 $__default["default"](this._element).on(EVENT_CLICK, function(event) { 8802 event.preventDefault(); 8803 event.stopPropagation(); 8804 _this.toggle(); 8805 }); 8806 }; 8807 _proto._getConfig = function _getConfig(config) { 8808 config = _extends({}, this.constructor.Default, $__default["default"](this._element).data(), config); 8809 Util__default["default"].typeCheckConfig(NAME, config, this.constructor.DefaultType); 8810 return config; 8811 }; 8812 _proto._getMenuElement = function _getMenuElement() { 8813 if (!this._menu) { 8814 var parent = Dropdown3._getParentFromElement(this._element); 8815 if (parent) { 8816 this._menu = parent.querySelector(SELECTOR_MENU); 8817 } 8818 } 8819 return this._menu; 8820 }; 8821 _proto._getPlacement = function _getPlacement() { 8822 var $parentDropdown = $__default["default"](this._element.parentNode); 8823 var placement = PLACEMENT_BOTTOM; 8824 if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) { 8825 placement = $__default["default"](this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP; 8826 } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) { 8827 placement = PLACEMENT_RIGHT; 8828 } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) { 8829 placement = PLACEMENT_LEFT; 8830 } else if ($__default["default"](this._menu).hasClass(CLASS_NAME_MENURIGHT)) { 8831 placement = PLACEMENT_BOTTOMEND; 8832 } 8833 return placement; 8834 }; 8835 _proto._detectNavbar = function _detectNavbar() { 8836 return $__default["default"](this._element).closest(".navbar").length > 0; 8837 }; 8838 _proto._getOffset = function _getOffset() { 8839 var _this2 = this; 8840 var offset = {}; 8841 if (typeof this._config.offset === "function") { 8842 offset.fn = function(data) { 8843 data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets, _this2._element)); 8844 return data; 8845 }; 8846 } else { 8847 offset.offset = this._config.offset; 8848 } 8849 return offset; 8850 }; 8851 _proto._getPopperConfig = function _getPopperConfig() { 8852 var popperConfig = { 8853 placement: this._getPlacement(), 8854 modifiers: { 8855 offset: this._getOffset(), 8856 flip: { 8857 enabled: this._config.flip 8858 }, 8859 preventOverflow: { 8860 boundariesElement: this._config.boundary 8861 } 8862 } 8863 }; 8864 if (this._config.display === "static") { 8865 popperConfig.modifiers.applyStyle = { 8866 enabled: false 8867 }; 8868 } 8869 return _extends({}, popperConfig, this._config.popperConfig); 8870 }; 8871 Dropdown3._jQueryInterface = function _jQueryInterface(config) { 8872 return this.each(function() { 8873 var data = $__default["default"](this).data(DATA_KEY); 8874 var _config = typeof config === "object" ? config : null; 8875 if (!data) { 8876 data = new Dropdown3(this, _config); 8877 $__default["default"](this).data(DATA_KEY, data); 8878 } 8879 if (typeof config === "string") { 8880 if (typeof data[config] === "undefined") { 8881 throw new TypeError('No method named "' + config + '"'); 8882 } 8883 data[config](); 8884 } 8885 }); 8886 }; 8887 Dropdown3._clearMenus = function _clearMenus(event) { 8888 if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === "keyup" && event.which !== TAB_KEYCODE)) { 8889 return; 8890 } 8891 var toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE)); 8892 for (var i2 = 0, len = toggles.length; i2 < len; i2++) { 8893 var parent = Dropdown3._getParentFromElement(toggles[i2]); 8894 var context = $__default["default"](toggles[i2]).data(DATA_KEY); 8895 var relatedTarget = { 8896 relatedTarget: toggles[i2] 8897 }; 8898 if (event && event.type === "click") { 8899 relatedTarget.clickEvent = event; 8900 } 8901 if (!context) { 8902 continue; 8903 } 8904 var dropdownMenu = context._menu; 8905 if (!$__default["default"](parent).hasClass(CLASS_NAME_SHOW)) { 8906 continue; 8907 } 8908 if (event && (event.type === "click" && /input|textarea/i.test(event.target.tagName) || event.type === "keyup" && event.which === TAB_KEYCODE) && $__default["default"].contains(parent, event.target)) { 8909 continue; 8910 } 8911 var hideEvent = $__default["default"].Event(EVENT_HIDE, relatedTarget); 8912 $__default["default"](parent).trigger(hideEvent); 8913 if (hideEvent.isDefaultPrevented()) { 8914 continue; 8915 } 8916 if ("ontouchstart" in document.documentElement) { 8917 $__default["default"](document.body).children().off("mouseover", null, $__default["default"].noop); 8918 } 8919 toggles[i2].setAttribute("aria-expanded", "false"); 8920 if (context._popper) { 8921 context._popper.destroy(); 8922 } 8923 $__default["default"](dropdownMenu).removeClass(CLASS_NAME_SHOW); 8924 $__default["default"](parent).removeClass(CLASS_NAME_SHOW).trigger($__default["default"].Event(EVENT_HIDDEN, relatedTarget)); 8925 } 8926 }; 8927 Dropdown3._getParentFromElement = function _getParentFromElement(element) { 8928 var parent; 8929 var selector = Util__default["default"].getSelectorFromElement(element); 8930 if (selector) { 8931 parent = document.querySelector(selector); 8932 } 8933 return parent || element.parentNode; 8934 }; 8935 Dropdown3._dataApiKeydownHandler = function _dataApiKeydownHandler(event) { 8936 if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $__default["default"](event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) { 8937 return; 8938 } 8939 if (this.disabled || $__default["default"](this).hasClass(CLASS_NAME_DISABLED)) { 8940 return; 8941 } 8942 var parent = Dropdown3._getParentFromElement(this); 8943 var isActive = $__default["default"](parent).hasClass(CLASS_NAME_SHOW); 8944 if (!isActive && event.which === ESCAPE_KEYCODE) { 8945 return; 8946 } 8947 event.preventDefault(); 8948 event.stopPropagation(); 8949 if (!isActive || event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE) { 8950 if (event.which === ESCAPE_KEYCODE) { 8951 $__default["default"](parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger("focus"); 8952 } 8953 $__default["default"](this).trigger("click"); 8954 return; 8955 } 8956 var items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS)).filter(function(item) { 8957 return $__default["default"](item).is(":visible"); 8958 }); 8959 if (items.length === 0) { 8960 return; 8961 } 8962 var index = items.indexOf(event.target); 8963 if (event.which === ARROW_UP_KEYCODE && index > 0) { 8964 index--; 8965 } 8966 if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { 8967 index++; 8968 } 8969 if (index < 0) { 8970 index = 0; 8971 } 8972 items[index].focus(); 8973 }; 8974 _createClass(Dropdown3, null, [{ 8975 key: "VERSION", 8976 get: function get() { 8977 return VERSION; 8978 } 8979 }, { 8980 key: "Default", 8981 get: function get() { 8982 return Default; 8983 } 8984 }, { 8985 key: "DefaultType", 8986 get: function get() { 8987 return DefaultType; 8988 } 8989 }]); 8990 return Dropdown3; 8991 }(); 8992 $__default["default"](document).on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown2._dataApiKeydownHandler).on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown2._dataApiKeydownHandler).on(EVENT_CLICK_DATA_API + " " + EVENT_KEYUP_DATA_API, Dropdown2._clearMenus).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function(event) { 8993 event.preventDefault(); 8994 event.stopPropagation(); 8995 Dropdown2._jQueryInterface.call($__default["default"](this), "toggle"); 8996 }).on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, function(e) { 8997 e.stopPropagation(); 8998 }); 8999 $__default["default"].fn[NAME] = Dropdown2._jQueryInterface; 9000 $__default["default"].fn[NAME].Constructor = Dropdown2; 9001 $__default["default"].fn[NAME].noConflict = function() { 9002 $__default["default"].fn[NAME] = JQUERY_NO_CONFLICT; 9003 return Dropdown2._jQueryInterface; 9004 }; 9005 return Dropdown2; 9006 }); 9007 } 9008 }); 9009 9010
vendor: 24,240 bytes, lines 9010-9510
9010// node_modules/bootstrap/js/dist/modal.js 9011 var require_modal = __commonJS({ 9012 "node_modules/bootstrap/js/dist/modal.js"(exports, module) { 9013 (function(global2, factory) { 9014 typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory(require_jquery(), require_util()) : typeof define === "function" && define.amd ? define(["jquery", "./util"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, global2.Modal = factory(global2.jQuery, global2.Util)); 9015 })(exports, function($2, Util2) { 9016 "use strict"; 9017 function _interopDefaultLegacy(e) { 9018 return e && typeof e === "object" && "default" in e ? e : { "default": e }; 9019 } 9020 var $__default = /* @__PURE__ */ _interopDefaultLegacy($2); 9021 var Util__default = /* @__PURE__ */ _interopDefaultLegacy(Util2); 9022 function _defineProperties(target, props) { 9023 for (var i2 = 0; i2 < props.length; i2++) { 9024 var descriptor = props[i2]; 9025 descriptor.enumerable = descriptor.enumerable || false; 9026 descriptor.configurable = true; 9027 if ("value" in descriptor) 9028 descriptor.writable = true; 9029 Object.defineProperty(target, descriptor.key, descriptor); 9030 } 9031 } 9032 function _createClass(Constructor, protoProps, staticProps) { 9033 if (protoProps) 9034 _defineProperties(Constructor.prototype, protoProps); 9035 if (staticProps) 9036 _defineProperties(Constructor, staticProps); 9037 Object.defineProperty(Constructor, "prototype", { 9038 writable: false 9039 }); 9040 return Constructor; 9041 } 9042 function _extends() { 9043 _extends = Object.assign ? Object.assign.bind() : function(target) { 9044 for (var i2 = 1; i2 < arguments.length; i2++) { 9045 var source = arguments[i2]; 9046 for (var key in source) { 9047 if (Object.prototype.hasOwnProperty.call(source, key)) { 9048 target[key] = source[key]; 9049 } 9050 } 9051 } 9052 return target; 9053 }; 9054 return _extends.apply(this, arguments); 9055 } 9056 var NAME = "modal"; 9057 var VERSION = "4.6.2"; 9058 var DATA_KEY = "bs.modal"; 9059 var EVENT_KEY = "." + DATA_KEY; 9060 var DATA_API_KEY = ".data-api"; 9061 var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME]; 9062 var ESCAPE_KEYCODE = 27; 9063 var CLASS_NAME_SCROLLABLE = "modal-dialog-scrollable"; 9064 var CLASS_NAME_SCROLLBAR_MEASURER = "modal-scrollbar-measure"; 9065 var CLASS_NAME_BACKDROP = "modal-backdrop"; 9066 var CLASS_NAME_OPEN = "modal-open"; 9067 var CLASS_NAME_FADE = "fade"; 9068 var CLASS_NAME_SHOW = "show"; 9069 var CLASS_NAME_STATIC = "modal-static"; 9070 var EVENT_HIDE = "hide" + EVENT_KEY; 9071 var EVENT_HIDE_PREVENTED = "hidePrevented" + EVENT_KEY; 9072 var EVENT_HIDDEN = "hidden" + EVENT_KEY; 9073 var EVENT_SHOW = "show" + EVENT_KEY; 9074 var EVENT_SHOWN = "shown" + EVENT_KEY; 9075 var EVENT_FOCUSIN = "focusin" + EVENT_KEY; 9076 var EVENT_RESIZE = "resize" + EVENT_KEY; 9077 var EVENT_CLICK_DISMISS = "click.dismiss" + EVENT_KEY; 9078 var EVENT_KEYDOWN_DISMISS = "keydown.dismiss" + EVENT_KEY; 9079 var EVENT_MOUSEUP_DISMISS = "mouseup.dismiss" + EVENT_KEY; 9080 var EVENT_MOUSEDOWN_DISMISS = "mousedown.dismiss" + EVENT_KEY; 9081 var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY; 9082 var SELECTOR_DIALOG = ".modal-dialog"; 9083 var SELECTOR_MODAL_BODY = ".modal-body"; 9084 var SELECTOR_DATA_TOGGLE = '[data-toggle="modal"]'; 9085 var SELECTOR_DATA_DISMISS = '[data-dismiss="modal"]'; 9086 var SELECTOR_FIXED_CONTENT = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top"; 9087 var SELECTOR_STICKY_CONTENT = ".sticky-top"; 9088 var Default = { 9089 backdrop: true, 9090 keyboard: true, 9091 focus: true, 9092 show: true 9093 }; 9094 var DefaultType = { 9095 backdrop: "(boolean|string)", 9096 keyboard: "boolean", 9097 focus: "boolean", 9098 show: "boolean" 9099 }; 9100 var Modal2 = /* @__PURE__ */ function() { 9101 function Modal3(element, config) { 9102 this._config = this._getConfig(config); 9103 this._element = element; 9104 this._dialog = element.querySelector(SELECTOR_DIALOG); 9105 this._backdrop = null; 9106 this._isShown = false; 9107 this._isBodyOverflowing = false; 9108 this._ignoreBackdropClick = false; 9109 this._isTransitioning = false; 9110 this._scrollbarWidth = 0; 9111 } 9112 var _proto = Modal3.prototype; 9113 _proto.toggle = function toggle(relatedTarget) { 9114 return this._isShown ? this.hide() : this.show(relatedTarget); 9115 }; 9116 _proto.show = function show(relatedTarget) { 9117 var _this = this; 9118 if (this._isShown || this._isTransitioning) { 9119 return; 9120 } 9121 var showEvent = $__default["default"].Event(EVENT_SHOW, { 9122 relatedTarget 9123 }); 9124 $__default["default"](this._element).trigger(showEvent); 9125 if (showEvent.isDefaultPrevented()) { 9126 return; 9127 } 9128 this._isShown = true; 9129 if ($__default["default"](this._element).hasClass(CLASS_NAME_FADE)) { 9130 this._isTransitioning = true; 9131 } 9132 this._checkScrollbar(); 9133 this._setScrollbar(); 9134 this._adjustDialog(); 9135 this._setEscapeEvent(); 9136 this._setResizeEvent(); 9137 $__default["default"](this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function(event) { 9138 return _this.hide(event); 9139 }); 9140 $__default["default"](this._dialog).on(EVENT_MOUSEDOWN_DISMISS, function() { 9141 $__default["default"](_this._element).one(EVENT_MOUSEUP_DISMISS, function(event) { 9142 if ($__default["default"](event.target).is(_this._element)) { 9143 _this._ignoreBackdropClick = true; 9144 } 9145 }); 9146 }); 9147 this._showBackdrop(function() { 9148 return _this._showElement(relatedTarget); 9149 }); 9150 }; 9151 _proto.hide = function hide(event) { 9152 var _this2 = this; 9153 if (event) { 9154 event.preventDefault(); 9155 } 9156 if (!this._isShown || this._isTransitioning) { 9157 return; 9158 } 9159 var hideEvent = $__default["default"].Event(EVENT_HIDE); 9160 $__default["default"](this._element).trigger(hideEvent); 9161 if (!this._isShown || hideEvent.isDefaultPrevented()) { 9162 return; 9163 } 9164 this._isShown = false; 9165 var transition = $__default["default"](this._element).hasClass(CLASS_NAME_FADE); 9166 if (transition) { 9167 this._isTransitioning = true; 9168 } 9169 this._setEscapeEvent(); 9170 this._setResizeEvent(); 9171 $__default["default"](document).off(EVENT_FOCUSIN); 9172 $__default["default"](this._element).removeClass(CLASS_NAME_SHOW); 9173 $__default["default"](this._element).off(EVENT_CLICK_DISMISS); 9174 $__default["default"](this._dialog).off(EVENT_MOUSEDOWN_DISMISS); 9175 if (transition) { 9176 var transitionDuration = Util__default["default"].getTransitionDurationFromElement(this._element); 9177 $__default["default"](this._element).one(Util__default["default"].TRANSITION_END, function(event2) { 9178 return _this2._hideModal(event2); 9179 }).emulateTransitionEnd(transitionDuration); 9180 } else { 9181 this._hideModal(); 9182 } 9183 }; 9184 _proto.dispose = function dispose() { 9185 [window, this._element, this._dialog].forEach(function(htmlElement) { 9186 return $__default["default"](htmlElement).off(EVENT_KEY); 9187 }); 9188 $__default["default"](document).off(EVENT_FOCUSIN); 9189 $__default["default"].removeData(this._element, DATA_KEY); 9190 this._config = null; 9191 this._element = null; 9192 this._dialog = null; 9193 this._backdrop = null; 9194 this._isShown = null; 9195 this._isBodyOverflowing = null; 9196 this._ignoreBackdropClick = null; 9197 this._isTransitioning = null; 9198 this._scrollbarWidth = null; 9199 }; 9200 _proto.handleUpdate = function handleUpdate() { 9201 this._adjustDialog(); 9202 }; 9203 _proto._getConfig = function _getConfig(config) { 9204 config = _extends({}, Default, config); 9205 Util__default["default"].typeCheckConfig(NAME, config, DefaultType); 9206 return config; 9207 }; 9208 _proto._triggerBackdropTransition = function _triggerBackdropTransition() { 9209 var _this3 = this; 9210 var hideEventPrevented = $__default["default"].Event(EVENT_HIDE_PREVENTED); 9211 $__default["default"](this._element).trigger(hideEventPrevented); 9212 if (hideEventPrevented.isDefaultPrevented()) { 9213 return; 9214 } 9215 var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; 9216 if (!isModalOverflowing) { 9217 this._element.style.overflowY = "hidden"; 9218 } 9219 this._element.classList.add(CLASS_NAME_STATIC); 9220 var modalTransitionDuration = Util__default["default"].getTransitionDurationFromElement(this._dialog); 9221 $__default["default"](this._element).off(Util__default["default"].TRANSITION_END); 9222 $__default["default"](this._element).one(Util__default["default"].TRANSITION_END, function() { 9223 _this3._element.classList.remove(CLASS_NAME_STATIC); 9224 if (!isModalOverflowing) { 9225 $__default["default"](_this3._element).one(Util__default["default"].TRANSITION_END, function() { 9226 _this3._element.style.overflowY = ""; 9227 }).emulateTransitionEnd(_this3._element, modalTransitionDuration); 9228 } 9229 }).emulateTransitionEnd(modalTransitionDuration); 9230 this._element.focus(); 9231 }; 9232 _proto._showElement = function _showElement(relatedTarget) { 9233 var _this4 = this; 9234 var transition = $__default["default"](this._element).hasClass(CLASS_NAME_FADE); 9235 var modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null; 9236 if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) { 9237 document.body.appendChild(this._element); 9238 } 9239 this._element.style.display = "block"; 9240 this._element.removeAttribute("aria-hidden"); 9241 this._element.setAttribute("aria-modal", true); 9242 this._element.setAttribute("role", "dialog"); 9243 if ($__default["default"](this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) { 9244 modalBody.scrollTop = 0; 9245 } else { 9246 this._element.scrollTop = 0; 9247 } 9248 if (transition) { 9249 Util__default["default"].reflow(this._element); 9250 } 9251 $__default["default"](this._element).addClass(CLASS_NAME_SHOW); 9252 if (this._config.focus) { 9253 this._enforceFocus(); 9254 } 9255 var shownEvent = $__default["default"].Event(EVENT_SHOWN, { 9256 relatedTarget 9257 }); 9258 var transitionComplete = function transitionComplete2() { 9259 if (_this4._config.focus) { 9260 _this4._element.focus(); 9261 } 9262 _this4._isTransitioning = false; 9263 $__default["default"](_this4._element).trigger(shownEvent); 9264 }; 9265 if (transition) { 9266 var transitionDuration = Util__default["default"].getTransitionDurationFromElement(this._dialog); 9267 $__default["default"](this._dialog).one(Util__default["default"].TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration); 9268 } else { 9269 transitionComplete(); 9270 } 9271 }; 9272 _proto._enforceFocus = function _enforceFocus() { 9273 var _this5 = this; 9274 $__default["default"](document).off(EVENT_FOCUSIN).on(EVENT_FOCUSIN, function(event) { 9275 if (document !== event.target && _this5._element !== event.target && $__default["default"](_this5._element).has(event.target).length === 0) { 9276 _this5._element.focus(); 9277 } 9278 }); 9279 }; 9280 _proto._setEscapeEvent = function _setEscapeEvent() { 9281 var _this6 = this; 9282 if (this._isShown) { 9283 $__default["default"](this._element).on(EVENT_KEYDOWN_DISMISS, function(event) { 9284 if (_this6._config.keyboard && event.which === ESCAPE_KEYCODE) { 9285 event.preventDefault(); 9286 _this6.hide(); 9287 } else if (!_this6._config.keyboard && event.which === ESCAPE_KEYCODE) { 9288 _this6._triggerBackdropTransition(); 9289 } 9290 }); 9291 } else if (!this._isShown) { 9292 $__default["default"](this._element).off(EVENT_KEYDOWN_DISMISS); 9293 } 9294 }; 9295 _proto._setResizeEvent = function _setResizeEvent() { 9296 var _this7 = this; 9297 if (this._isShown) { 9298 $__default["default"](window).on(EVENT_RESIZE, function(event) { 9299 return _this7.handleUpdate(event); 9300 }); 9301 } else { 9302 $__default["default"](window).off(EVENT_RESIZE); 9303 } 9304 }; 9305 _proto._hideModal = function _hideModal() { 9306 var _this8 = this; 9307 this._element.style.display = "none"; 9308 this._element.setAttribute("aria-hidden", true); 9309 this._element.removeAttribute("aria-modal"); 9310 this._element.removeAttribute("role"); 9311 this._isTransitioning = false; 9312 this._showBackdrop(function() { 9313 $__default["default"](document.body).removeClass(CLASS_NAME_OPEN); 9314 _this8._resetAdjustments(); 9315 _this8._resetScrollbar(); 9316 $__default["default"](_this8._element).trigger(EVENT_HIDDEN); 9317 }); 9318 }; 9319 _proto._removeBackdrop = function _removeBackdrop() { 9320 if (this._backdrop) { 9321 $__default["default"](this._backdrop).remove(); 9322 this._backdrop = null; 9323 } 9324 }; 9325 _proto._showBackdrop = function _showBackdrop(callback) { 9326 var _this9 = this; 9327 var animate = $__default["default"](this._element).hasClass(CLASS_NAME_FADE) ? CLASS_NAME_FADE : ""; 9328 if (this._isShown && this._config.backdrop) { 9329 this._backdrop = document.createElement("div"); 9330 this._backdrop.className = CLASS_NAME_BACKDROP; 9331 if (animate) { 9332 this._backdrop.classList.add(animate); 9333 } 9334 $__default["default"](this._backdrop).appendTo(document.body); 9335 $__default["default"](this._element).on(EVENT_CLICK_DISMISS, function(event) { 9336 if (_this9._ignoreBackdropClick) { 9337 _this9._ignoreBackdropClick = false; 9338 return; 9339 } 9340 if (event.target !== event.currentTarget) { 9341 return; 9342 } 9343 if (_this9._config.backdrop === "static") { 9344 _this9._triggerBackdropTransition(); 9345 } else { 9346 _this9.hide(); 9347 } 9348 }); 9349 if (animate) { 9350 Util__default["default"].reflow(this._backdrop); 9351 } 9352 $__default["default"](this._backdrop).addClass(CLASS_NAME_SHOW); 9353 if (!callback) { 9354 return; 9355 } 9356 if (!animate) { 9357 callback(); 9358 return; 9359 } 9360 var backdropTransitionDuration = Util__default["default"].getTransitionDurationFromElement(this._backdrop); 9361 $__default["default"](this._backdrop).one(Util__default["default"].TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration); 9362 } else if (!this._isShown && this._backdrop) { 9363 $__default["default"](this._backdrop).removeClass(CLASS_NAME_SHOW); 9364 var callbackRemove = function callbackRemove2() { 9365 _this9._removeBackdrop(); 9366 if (callback) { 9367 callback(); 9368 } 9369 }; 9370 if ($__default["default"](this._element).hasClass(CLASS_NAME_FADE)) { 9371 var _backdropTransitionDuration = Util__default["default"].getTransitionDurationFromElement(this._backdrop); 9372 $__default["default"](this._backdrop).one(Util__default["default"].TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration); 9373 } else { 9374 callbackRemove(); 9375 } 9376 } else if (callback) { 9377 callback(); 9378 } 9379 }; 9380 _proto._adjustDialog = function _adjustDialog() { 9381 var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; 9382 if (!this._isBodyOverflowing && isModalOverflowing) { 9383 this._element.style.paddingLeft = this._scrollbarWidth + "px"; 9384 } 9385 if (this._isBodyOverflowing && !isModalOverflowing) { 9386 this._element.style.paddingRight = this._scrollbarWidth + "px"; 9387 } 9388 }; 9389 _proto._resetAdjustments = function _resetAdjustments() { 9390 this._element.style.paddingLeft = ""; 9391 this._element.style.paddingRight = ""; 9392 }; 9393 _proto._checkScrollbar = function _checkScrollbar() { 9394 var rect = document.body.getBoundingClientRect(); 9395 this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth; 9396 this._scrollbarWidth = this._getScrollbarWidth(); 9397 }; 9398 _proto._setScrollbar = function _setScrollbar() { 9399 var _this10 = this; 9400 if (this._isBodyOverflowing) { 9401 var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT)); 9402 var stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT)); 9403 $__default["default"](fixedContent).each(function(index, element) { 9404 var actualPadding2 = element.style.paddingRight; 9405 var calculatedPadding2 = $__default["default"](element).css("padding-right"); 9406 $__default["default"](element).data("padding-right", actualPadding2).css("padding-right", parseFloat(calculatedPadding2) + _this10._scrollbarWidth + "px"); 9407 }); 9408 $__default["default"](stickyContent).each(function(index, element) { 9409 var actualMargin = element.style.marginRight; 9410 var calculatedMargin = $__default["default"](element).css("margin-right"); 9411 $__default["default"](element).data("margin-right", actualMargin).css("margin-right", parseFloat(calculatedMargin) - _this10._scrollbarWidth + "px"); 9412 }); 9413 var actualPadding = document.body.style.paddingRight; 9414 var calculatedPadding = $__default["default"](document.body).css("padding-right"); 9415 $__default["default"](document.body).data("padding-right", actualPadding).css("padding-right", parseFloat(calculatedPadding) + this._scrollbarWidth + "px"); 9416 } 9417 $__default["default"](document.body).addClass(CLASS_NAME_OPEN); 9418 }; 9419 _proto._resetScrollbar = function _resetScrollbar() { 9420 var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT)); 9421 $__default["default"](fixedContent).each(function(index, element) { 9422 var padding2 = $__default["default"](element).data("padding-right"); 9423 $__default["default"](element).removeData("padding-right"); 9424 element.style.paddingRight = padding2 ? padding2 : ""; 9425 }); 9426 var elements = [].slice.call(document.querySelectorAll("" + SELECTOR_STICKY_CONTENT)); 9427 $__default["default"](elements).each(function(index, element) { 9428 var margin = $__default["default"](element).data("margin-right"); 9429 if (typeof margin !== "undefined") { 9430 $__default["default"](element).css("margin-right", margin).removeData("margin-right"); 9431 } 9432 }); 9433 var padding = $__default["default"](document.body).data("padding-right"); 9434 $__default["default"](document.body).removeData("padding-right"); 9435 document.body.style.paddingRight = padding ? padding : ""; 9436 }; 9437 _proto._getScrollbarWidth = function _getScrollbarWidth() { 9438 var scrollDiv = document.createElement("div"); 9439 scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER; 9440 document.body.appendChild(scrollDiv); 9441 var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth; 9442 document.body.removeChild(scrollDiv); 9443 return scrollbarWidth; 9444 }; 9445 Modal3._jQueryInterface = function _jQueryInterface(config, relatedTarget) { 9446 return this.each(function() { 9447 var data = $__default["default"](this).data(DATA_KEY); 9448 var _config = _extends({}, Default, $__default["default"](this).data(), typeof config === "object" && config ? config : {}); 9449 if (!data) { 9450 data = new Modal3(this, _config); 9451 $__default["default"](this).data(DATA_KEY, data); 9452 } 9453 if (typeof config === "string") { 9454 if (typeof data[config] === "undefined") { 9455 throw new TypeError('No method named "' + config + '"'); 9456 } 9457 data[config](relatedTarget); 9458 } else if (_config.show) { 9459 data.show(relatedTarget); 9460 } 9461 }); 9462 }; 9463 _createClass(Modal3, null, [{ 9464 key: "VERSION", 9465 get: function get() { 9466 return VERSION; 9467 } 9468 }, { 9469 key: "Default", 9470 get: function get() { 9471 return Default; 9472 } 9473 }]); 9474 return Modal3; 9475 }(); 9476 $__default["default"](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function(event) { 9477 var _this11 = this; 9478 var target; 9479 var selector = Util__default["default"].getSelectorFromElement(this); 9480 if (selector) { 9481 target = document.querySelector(selector); 9482 } 9483 var config = $__default["default"](target).data(DATA_KEY) ? "toggle" : _extends({}, $__default["default"](target).data(), $__default["default"](this).data()); 9484 if (this.tagName === "A" || this.tagName === "AREA") { 9485 event.preventDefault(); 9486 } 9487 var $target = $__default["default"](target).one(EVENT_SHOW, function(showEvent) { 9488 if (showEvent.isDefaultPrevented()) { 9489 return; 9490 } 9491 $target.one(EVENT_HIDDEN, function() { 9492 if ($__default["default"](_this11).is(":visible")) { 9493 _this11.focus(); 9494 } 9495 }); 9496 }); 9497 Modal2._jQueryInterface.call($__default["default"](target), config, this); 9498 }); 9499 $__default["default"].fn[NAME] = Modal2._jQueryInterface; 9500 $__default["default"].fn[NAME].Constructor = Modal2; 9501 $__default["default"].fn[NAME].noConflict = function() { 9502 $__default["default"].fn[NAME] = JQUERY_NO_CONFLICT; 9503 return Modal2._jQueryInterface; 9504 }; 9505 return Modal2; 9506 }); 9507 } 9508 }); 9509 9510
vendor: 29,928 bytes, lines 9510-10209
9510// node_modules/bootstrap/js/dist/tooltip.js 9511 var require_tooltip = __commonJS({ 9512 "node_modules/bootstrap/js/dist/tooltip.js"(exports, module) { 9513 (function(global2, factory) { 9514 typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory(require_jquery(), require_popper(), require_util()) : typeof define === "function" && define.amd ? define(["jquery", "popper.js", "./util"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, global2.Tooltip = factory(global2.jQuery, global2.Popper, global2.Util)); 9515 })(exports, function($2, Popper, Util2) { 9516 "use strict"; 9517 function _interopDefaultLegacy(e) { 9518 return e && typeof e === "object" && "default" in e ? e : { "default": e }; 9519 } 9520 var $__default = /* @__PURE__ */ _interopDefaultLegacy($2); 9521 var Popper__default = /* @__PURE__ */ _interopDefaultLegacy(Popper); 9522 var Util__default = /* @__PURE__ */ _interopDefaultLegacy(Util2); 9523 function _defineProperties(target, props) { 9524 for (var i2 = 0; i2 < props.length; i2++) { 9525 var descriptor = props[i2]; 9526 descriptor.enumerable = descriptor.enumerable || false; 9527 descriptor.configurable = true; 9528 if ("value" in descriptor) 9529 descriptor.writable = true; 9530 Object.defineProperty(target, descriptor.key, descriptor); 9531 } 9532 } 9533 function _createClass(Constructor, protoProps, staticProps) { 9534 if (protoProps) 9535 _defineProperties(Constructor.prototype, protoProps); 9536 if (staticProps) 9537 _defineProperties(Constructor, staticProps); 9538 Object.defineProperty(Constructor, "prototype", { 9539 writable: false 9540 }); 9541 return Constructor; 9542 } 9543 function _extends() { 9544 _extends = Object.assign ? Object.assign.bind() : function(target) { 9545 for (var i2 = 1; i2 < arguments.length; i2++) { 9546 var source = arguments[i2]; 9547 for (var key in source) { 9548 if (Object.prototype.hasOwnProperty.call(source, key)) { 9549 target[key] = source[key]; 9550 } 9551 } 9552 } 9553 return target; 9554 }; 9555 return _extends.apply(this, arguments); 9556 } 9557 var uriAttrs = ["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"]; 9558 var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i; 9559 var DefaultWhitelist = { 9560 "*": ["class", "dir", "id", "lang", "role", ARIA_ATTRIBUTE_PATTERN], 9561 a: ["target", "href", "title", "rel"], 9562 area: [], 9563 b: [], 9564 br: [], 9565 col: [], 9566 code: [], 9567 div: [], 9568 em: [], 9569 hr: [], 9570 h1: [], 9571 h2: [], 9572 h3: [], 9573 h4: [], 9574 h5: [], 9575 h6: [], 9576 i: [], 9577 img: ["src", "srcset", "alt", "title", "width", "height"], 9578 li: [], 9579 ol: [], 9580 p: [], 9581 pre: [], 9582 s: [], 9583 small: [], 9584 span: [], 9585 sub: [], 9586 sup: [], 9587 strong: [], 9588 u: [], 9589 ul: [] 9590 }; 9591 var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i; 9592 var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i; 9593 function allowedAttribute(attr, allowedAttributeList) { 9594 var attrName = attr.nodeName.toLowerCase(); 9595 if (allowedAttributeList.indexOf(attrName) !== -1) { 9596 if (uriAttrs.indexOf(attrName) !== -1) { 9597 return Boolean(SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue)); 9598 } 9599 return true; 9600 } 9601 var regExp = allowedAttributeList.filter(function(attrRegex) { 9602 return attrRegex instanceof RegExp; 9603 }); 9604 for (var i2 = 0, len = regExp.length; i2 < len; i2++) { 9605 if (regExp[i2].test(attrName)) { 9606 return true; 9607 } 9608 } 9609 return false; 9610 } 9611 function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) { 9612 if (unsafeHtml.length === 0) { 9613 return unsafeHtml; 9614 } 9615 if (sanitizeFn && typeof sanitizeFn === "function") { 9616 return sanitizeFn(unsafeHtml); 9617 } 9618 var domParser = new window.DOMParser(); 9619 var createdDocument = domParser.parseFromString(unsafeHtml, "text/html"); 9620 var whitelistKeys = Object.keys(whiteList); 9621 var elements = [].slice.call(createdDocument.body.querySelectorAll("*")); 9622 var _loop = function _loop2(i3, len2) { 9623 var el = elements[i3]; 9624 var elName = el.nodeName.toLowerCase(); 9625 if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) { 9626 el.parentNode.removeChild(el); 9627 return "continue"; 9628 } 9629 var attributeList = [].slice.call(el.attributes); 9630 var whitelistedAttributes = [].concat(whiteList["*"] || [], whiteList[elName] || []); 9631 attributeList.forEach(function(attr) { 9632 if (!allowedAttribute(attr, whitelistedAttributes)) { 9633 el.removeAttribute(attr.nodeName); 9634 } 9635 }); 9636 }; 9637 for (var i2 = 0, len = elements.length; i2 < len; i2++) { 9638 var _ret = _loop(i2); 9639 if (_ret === "continue") 9640 continue; 9641 } 9642 return createdDocument.body.innerHTML; 9643 } 9644 var NAME = "tooltip"; 9645 var VERSION = "4.6.2"; 9646 var DATA_KEY = "bs.tooltip"; 9647 var EVENT_KEY = "." + DATA_KEY; 9648 var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME]; 9649 var CLASS_PREFIX = "bs-tooltip"; 9650 var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", "g"); 9651 var DISALLOWED_ATTRIBUTES = ["sanitize", "whiteList", "sanitizeFn"]; 9652 var CLASS_NAME_FADE = "fade"; 9653 var CLASS_NAME_SHOW = "show"; 9654 var HOVER_STATE_SHOW = "show"; 9655 var HOVER_STATE_OUT = "out"; 9656 var SELECTOR_TOOLTIP_INNER = ".tooltip-inner"; 9657 var SELECTOR_ARROW = ".arrow"; 9658 var TRIGGER_HOVER = "hover"; 9659 var TRIGGER_FOCUS = "focus"; 9660 var TRIGGER_CLICK = "click"; 9661 var TRIGGER_MANUAL = "manual"; 9662 var AttachmentMap = { 9663 AUTO: "auto", 9664 TOP: "top", 9665 RIGHT: "right", 9666 BOTTOM: "bottom", 9667 LEFT: "left" 9668 }; 9669 var Default = { 9670 animation: true, 9671 template: '<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>', 9672 trigger: "hover focus", 9673 title: "", 9674 delay: 0, 9675 html: false, 9676 selector: false, 9677 placement: "top", 9678 offset: 0, 9679 container: false, 9680 fallbackPlacement: "flip", 9681 boundary: "scrollParent", 9682 customClass: "", 9683 sanitize: true, 9684 sanitizeFn: null, 9685 whiteList: DefaultWhitelist, 9686 popperConfig: null 9687 }; 9688 var DefaultType = { 9689 animation: "boolean", 9690 template: "string", 9691 title: "(string|element|function)", 9692 trigger: "string", 9693 delay: "(number|object)", 9694 html: "boolean", 9695 selector: "(string|boolean)", 9696 placement: "(string|function)", 9697 offset: "(number|string|function)", 9698 container: "(string|element|boolean)", 9699 fallbackPlacement: "(string|array)", 9700 boundary: "(string|element)", 9701 customClass: "(string|function)", 9702 sanitize: "boolean", 9703 sanitizeFn: "(null|function)", 9704 whiteList: "object", 9705 popperConfig: "(null|object)" 9706 }; 9707 var Event = { 9708 HIDE: "hide" + EVENT_KEY, 9709 HIDDEN: "hidden" + EVENT_KEY, 9710 SHOW: "show" + EVENT_KEY, 9711 SHOWN: "shown" + EVENT_KEY, 9712 INSERTED: "inserted" + EVENT_KEY, 9713 CLICK: "click" + EVENT_KEY, 9714 FOCUSIN: "focusin" + EVENT_KEY, 9715 FOCUSOUT: "focusout" + EVENT_KEY, 9716 MOUSEENTER: "mouseenter" + EVENT_KEY, 9717 MOUSELEAVE: "mouseleave" + EVENT_KEY 9718 }; 9719 var Tooltip2 = /* @__PURE__ */ function() { 9720 function Tooltip3(element, config) { 9721 if (typeof Popper__default["default"] === "undefined") { 9722 throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)"); 9723 } 9724 this._isEnabled = true; 9725 this._timeout = 0; 9726 this._hoverState = ""; 9727 this._activeTrigger = {}; 9728 this._popper = null; 9729 this.element = element; 9730 this.config = this._getConfig(config); 9731 this.tip = null; 9732 this._setListeners(); 9733 } 9734 var _proto = Tooltip3.prototype; 9735 _proto.enable = function enable() { 9736 this._isEnabled = true; 9737 }; 9738 _proto.disable = function disable() { 9739 this._isEnabled = false; 9740 }; 9741 _proto.toggleEnabled = function toggleEnabled() { 9742 this._isEnabled = !this._isEnabled; 9743 }; 9744 _proto.toggle = function toggle(event) { 9745 if (!this._isEnabled) { 9746 return; 9747 } 9748 if (event) { 9749 var dataKey = this.constructor.DATA_KEY; 9750 var context = $__default["default"](event.currentTarget).data(dataKey); 9751 if (!context) { 9752 context = new this.constructor(event.currentTarget, this._getDelegateConfig()); 9753 $__default["default"](event.currentTarget).data(dataKey, context); 9754 } 9755 context._activeTrigger.click = !context._activeTrigger.click; 9756 if (context._isWithActiveTrigger()) { 9757 context._enter(null, context); 9758 } else { 9759 context._leave(null, context); 9760 } 9761 } else { 9762 if ($__default["default"](this.getTipElement()).hasClass(CLASS_NAME_SHOW)) { 9763 this._leave(null, this); 9764 return; 9765 } 9766 this._enter(null, this); 9767 } 9768 }; 9769 _proto.dispose = function dispose() { 9770 clearTimeout(this._timeout); 9771 $__default["default"].removeData(this.element, this.constructor.DATA_KEY); 9772 $__default["default"](this.element).off(this.constructor.EVENT_KEY); 9773 $__default["default"](this.element).closest(".modal").off("hide.bs.modal", this._hideModalHandler); 9774 if (this.tip) { 9775 $__default["default"](this.tip).remove(); 9776 } 9777 this._isEnabled = null; 9778 this._timeout = null; 9779 this._hoverState = null; 9780 this._activeTrigger = null; 9781 if (this._popper) { 9782 this._popper.destroy(); 9783 } 9784 this._popper = null; 9785 this.element = null; 9786 this.config = null; 9787 this.tip = null; 9788 }; 9789 _proto.show = function show() { 9790 var _this = this; 9791 if ($__default["default"](this.element).css("display") === "none") { 9792 throw new Error("Please use show on visible elements"); 9793 } 9794 var showEvent = $__default["default"].Event(this.constructor.Event.SHOW); 9795 if (this.isWithContent() && this._isEnabled) { 9796 $__default["default"](this.element).trigger(showEvent); 9797 var shadowRoot = Util__default["default"].findShadowRoot(this.element); 9798 var isInTheDom = $__default["default"].contains(shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement, this.element); 9799 if (showEvent.isDefaultPrevented() || !isInTheDom) { 9800 return; 9801 } 9802 var tip = this.getTipElement(); 9803 var tipId = Util__default["default"].getUID(this.constructor.NAME); 9804 tip.setAttribute("id", tipId); 9805 this.element.setAttribute("aria-describedby", tipId); 9806 this.setContent(); 9807 if (this.config.animation) { 9808 $__default["default"](tip).addClass(CLASS_NAME_FADE); 9809 } 9810 var placement = typeof this.config.placement === "function" ? this.config.placement.call(this, tip, this.element) : this.config.placement; 9811 var attachment = this._getAttachment(placement); 9812 this.addAttachmentClass(attachment); 9813 var container = this._getContainer(); 9814 $__default["default"](tip).data(this.constructor.DATA_KEY, this); 9815 if (!$__default["default"].contains(this.element.ownerDocument.documentElement, this.tip)) { 9816 $__default["default"](tip).appendTo(container); 9817 } 9818 $__default["default"](this.element).trigger(this.constructor.Event.INSERTED); 9819 this._popper = new Popper__default["default"](this.element, tip, this._getPopperConfig(attachment)); 9820 $__default["default"](tip).addClass(CLASS_NAME_SHOW); 9821 $__default["default"](tip).addClass(this.config.customClass); 9822 if ("ontouchstart" in document.documentElement) { 9823 $__default["default"](document.body).children().on("mouseover", null, $__default["default"].noop); 9824 } 9825 var complete = function complete2() { 9826 if (_this.config.animation) { 9827 _this._fixTransition(); 9828 } 9829 var prevHoverState = _this._hoverState; 9830 _this._hoverState = null; 9831 $__default["default"](_this.element).trigger(_this.constructor.Event.SHOWN); 9832 if (prevHoverState === HOVER_STATE_OUT) { 9833 _this._leave(null, _this); 9834 } 9835 }; 9836 if ($__default["default"](this.tip).hasClass(CLASS_NAME_FADE)) { 9837 var transitionDuration = Util__default["default"].getTransitionDurationFromElement(this.tip); 9838 $__default["default"](this.tip).one(Util__default["default"].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); 9839 } else { 9840 complete(); 9841 } 9842 } 9843 }; 9844 _proto.hide = function hide(callback) { 9845 var _this2 = this; 9846 var tip = this.getTipElement(); 9847 var hideEvent = $__default["default"].Event(this.constructor.Event.HIDE); 9848 var complete = function complete2() { 9849 if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) { 9850 tip.parentNode.removeChild(tip); 9851 } 9852 _this2._cleanTipClass(); 9853 _this2.element.removeAttribute("aria-describedby"); 9854 $__default["default"](_this2.element).trigger(_this2.constructor.Event.HIDDEN); 9855 if (_this2._popper !== null) { 9856 _this2._popper.destroy(); 9857 } 9858 if (callback) { 9859 callback(); 9860 } 9861 }; 9862 $__default["default"](this.element).trigger(hideEvent); 9863 if (hideEvent.isDefaultPrevented()) { 9864 return; 9865 } 9866 $__default["default"](tip).removeClass(CLASS_NAME_SHOW); 9867 if ("ontouchstart" in document.documentElement) { 9868 $__default["default"](document.body).children().off("mouseover", null, $__default["default"].noop); 9869 } 9870 this._activeTrigger[TRIGGER_CLICK] = false; 9871 this._activeTrigger[TRIGGER_FOCUS] = false; 9872 this._activeTrigger[TRIGGER_HOVER] = false; 9873 if ($__default["default"](this.tip).hasClass(CLASS_NAME_FADE)) { 9874 var transitionDuration = Util__default["default"].getTransitionDurationFromElement(tip); 9875 $__default["default"](tip).one(Util__default["default"].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); 9876 } else { 9877 complete(); 9878 } 9879 this._hoverState = ""; 9880 }; 9881 _proto.update = function update() { 9882 if (this._popper !== null) { 9883 this._popper.scheduleUpdate(); 9884 } 9885 }; 9886 _proto.isWithContent = function isWithContent() { 9887 return Boolean(this.getTitle()); 9888 }; 9889 _proto.addAttachmentClass = function addAttachmentClass(attachment) { 9890 $__default["default"](this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment); 9891 }; 9892 _proto.getTipElement = function getTipElement() { 9893 this.tip = this.tip || $__default["default"](this.config.template)[0]; 9894 return this.tip; 9895 }; 9896 _proto.setContent = function setContent() { 9897 var tip = this.getTipElement(); 9898 this.setElementContent($__default["default"](tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle()); 9899 $__default["default"](tip).removeClass(CLASS_NAME_FADE + " " + CLASS_NAME_SHOW); 9900 }; 9901 _proto.setElementContent = function setElementContent($element, content) { 9902 if (typeof content === "object" && (content.nodeType || content.jquery)) { 9903 if (this.config.html) { 9904 if (!$__default["default"](content).parent().is($element)) { 9905 $element.empty().append(content); 9906 } 9907 } else { 9908 $element.text($__default["default"](content).text()); 9909 } 9910 return; 9911 } 9912 if (this.config.html) { 9913 if (this.config.sanitize) { 9914 content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn); 9915 } 9916 $element.html(content); 9917 } else { 9918 $element.text(content); 9919 } 9920 }; 9921 _proto.getTitle = function getTitle() { 9922 var title = this.element.getAttribute("data-original-title"); 9923 if (!title) { 9924 title = typeof this.config.title === "function" ? this.config.title.call(this.element) : this.config.title; 9925 } 9926 return title; 9927 }; 9928 _proto._getPopperConfig = function _getPopperConfig(attachment) { 9929 var _this3 = this; 9930 var defaultBsConfig = { 9931 placement: attachment, 9932 modifiers: { 9933 offset: this._getOffset(), 9934 flip: { 9935 behavior: this.config.fallbackPlacement 9936 }, 9937 arrow: { 9938 element: SELECTOR_ARROW 9939 }, 9940 preventOverflow: { 9941 boundariesElement: this.config.boundary 9942 } 9943 }, 9944 onCreate: function onCreate(data) { 9945 if (data.originalPlacement !== data.placement) { 9946 _this3._handlePopperPlacementChange(data); 9947 } 9948 }, 9949 onUpdate: function onUpdate(data) { 9950 return _this3._handlePopperPlacementChange(data); 9951 } 9952 }; 9953 return _extends({}, defaultBsConfig, this.config.popperConfig); 9954 }; 9955 _proto._getOffset = function _getOffset() { 9956 var _this4 = this; 9957 var offset = {}; 9958 if (typeof this.config.offset === "function") { 9959 offset.fn = function(data) { 9960 data.offsets = _extends({}, data.offsets, _this4.config.offset(data.offsets, _this4.element)); 9961 return data; 9962 }; 9963 } else { 9964 offset.offset = this.config.offset; 9965 } 9966 return offset; 9967 }; 9968 _proto._getContainer = function _getContainer() { 9969 if (this.config.container === false) { 9970 return document.body; 9971 } 9972 if (Util__default["default"].isElement(this.config.container)) { 9973 return $__default["default"](this.config.container); 9974 } 9975 return $__default["default"](document).find(this.config.container); 9976 }; 9977 _proto._getAttachment = function _getAttachment(placement) { 9978 return AttachmentMap[placement.toUpperCase()]; 9979 }; 9980 _proto._setListeners = function _setListeners() { 9981 var _this5 = this; 9982 var triggers = this.config.trigger.split(" "); 9983 triggers.forEach(function(trigger) { 9984 if (trigger === "click") { 9985 $__default["default"](_this5.element).on(_this5.constructor.Event.CLICK, _this5.config.selector, function(event) { 9986 return _this5.toggle(event); 9987 }); 9988 } else if (trigger !== TRIGGER_MANUAL) { 9989 var eventIn = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSEENTER : _this5.constructor.Event.FOCUSIN; 9990 var eventOut = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSELEAVE : _this5.constructor.Event.FOCUSOUT; 9991 $__default["default"](_this5.element).on(eventIn, _this5.config.selector, function(event) { 9992 return _this5._enter(event); 9993 }).on(eventOut, _this5.config.selector, function(event) { 9994 return _this5._leave(event); 9995 }); 9996 } 9997 }); 9998 this._hideModalHandler = function() { 9999 if (_this5.element) { 10000 _this5.hide(); 10001 } 10002 }; 10003 $__default["default"](this.element).closest(".modal").on("hide.bs.modal", this._hideModalHandler); 10004 if (this.config.selector) { 10005 this.config = _extends({}, this.config, { 10006 trigger: "manual", 10007 selector: "" 10008 }); 10009 } else { 10010 this._fixTitle(); 10011 } 10012 }; 10013 _proto._fixTitle = function _fixTitle() { 10014 var titleType = typeof this.element.getAttribute("data-original-title"); 10015 if (this.element.getAttribute("title") || titleType !== "string") { 10016 this.element.setAttribute("data-original-title", this.element.getAttribute("title") || ""); 10017 this.element.setAttribute("title", ""); 10018 } 10019 }; 10020 _proto._enter = function _enter(event, context) { 10021 var dataKey = this.constructor.DATA_KEY; 10022 context = context || $__default["default"](event.currentTarget).data(dataKey); 10023 if (!context) { 10024 context = new this.constructor(event.currentTarget, this._getDelegateConfig()); 10025 $__default["default"](event.currentTarget).data(dataKey, context); 10026 } 10027 if (event) { 10028 context._activeTrigger[event.type === "focusin" ? TRIGGER_FOCUS : TRIGGER_HOVER] = true; 10029 } 10030 if ($__default["default"](context.getTipElement()).hasClass(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) { 10031 context._hoverState = HOVER_STATE_SHOW; 10032 return; 10033 } 10034 clearTimeout(context._timeout); 10035 context._hoverState = HOVER_STATE_SHOW; 10036 if (!context.config.delay || !context.config.delay.show) { 10037 context.show(); 10038 return; 10039 } 10040 context._timeout = setTimeout(function() { 10041 if (context._hoverState === HOVER_STATE_SHOW) { 10042 context.show(); 10043 } 10044 }, context.config.delay.show); 10045 }; 10046 _proto._leave = function _leave(event, context) { 10047 var dataKey = this.constructor.DATA_KEY; 10048 context = context || $__default["default"](event.currentTarget).data(dataKey); 10049 if (!context) { 10050 context = new this.constructor(event.currentTarget, this._getDelegateConfig()); 10051 $__default["default"](event.currentTarget).data(dataKey, context); 10052 } 10053 if (event) { 10054 context._activeTrigger[event.type === "focusout" ? TRIGGER_FOCUS : TRIGGER_HOVER] = false; 10055 } 10056 if (context._isWithActiveTrigger()) { 10057 return; 10058 } 10059 clearTimeout(context._timeout); 10060 context._hoverState = HOVER_STATE_OUT; 10061 if (!context.config.delay || !context.config.delay.hide) { 10062 context.hide(); 10063 return; 10064 } 10065 context._timeout = setTimeout(function() { 10066 if (context._hoverState === HOVER_STATE_OUT) { 10067 context.hide(); 10068 } 10069 }, context.config.delay.hide); 10070 }; 10071 _proto._isWithActiveTrigger = function _isWithActiveTrigger() { 10072 for (var trigger in this._activeTrigger) { 10073 if (this._activeTrigger[trigger]) { 10074 return true; 10075 } 10076 } 10077 return false; 10078 }; 10079 _proto._getConfig = function _getConfig(config) { 10080 var dataAttributes = $__default["default"](this.element).data(); 10081 Object.keys(dataAttributes).forEach(function(dataAttr) { 10082 if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) { 10083 delete dataAttributes[dataAttr]; 10084 } 10085 }); 10086 config = _extends({}, this.constructor.Default, dataAttributes, typeof config === "object" && config ? config : {}); 10087 if (typeof config.delay === "number") { 10088 config.delay = { 10089 show: config.delay, 10090 hide: config.delay 10091 }; 10092 } 10093 if (typeof config.title === "number") { 10094 config.title = config.title.toString(); 10095 } 10096 if (typeof config.content === "number") { 10097 config.content = config.content.toString(); 10098 } 10099 Util__default["default"].typeCheckConfig(NAME, config, this.constructor.DefaultType); 10100 if (config.sanitize) { 10101 config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn); 10102 } 10103 return config; 10104 }; 10105 _proto._getDelegateConfig = function _getDelegateConfig() { 10106 var config = {}; 10107 if (this.config) { 10108 for (var key in this.config) { 10109 if (this.constructor.Default[key] !== this.config[key]) { 10110 config[key] = this.config[key]; 10111 } 10112 } 10113 } 10114 return config; 10115 }; 10116 _proto._cleanTipClass = function _cleanTipClass() { 10117 var $tip = $__default["default"](this.getTipElement()); 10118 var tabClass = $tip.attr("class").match(BSCLS_PREFIX_REGEX); 10119 if (tabClass !== null && tabClass.length) { 10120 $tip.removeClass(tabClass.join("")); 10121 } 10122 }; 10123 _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) { 10124 this.tip = popperData.instance.popper; 10125 this._cleanTipClass(); 10126 this.addAttachmentClass(this._getAttachment(popperData.placement)); 10127 }; 10128 _proto._fixTransition = function _fixTransition() { 10129 var tip = this.getTipElement(); 10130 var initConfigAnimation = this.config.animation; 10131 if (tip.getAttribute("x-placement") !== null) { 10132 return; 10133 } 10134 $__default["default"](tip).removeClass(CLASS_NAME_FADE); 10135 this.config.animation = false; 10136 this.hide(); 10137 this.show(); 10138 this.config.animation = initConfigAnimation; 10139 }; 10140 Tooltip3._jQueryInterface = function _jQueryInterface(config) { 10141 return this.each(function() { 10142 var $element = $__default["default"](this); 10143 var data = $element.data(DATA_KEY); 10144 var _config = typeof config === "object" && config; 10145 if (!data && /dispose|hide/.test(config)) { 10146 return; 10147 } 10148 if (!data) { 10149 data = new Tooltip3(this, _config); 10150 $element.data(DATA_KEY, data); 10151 } 10152 if (typeof config === "string") { 10153 if (typeof data[config] === "undefined") { 10154 throw new TypeError('No method named "' + config + '"'); 10155 } 10156 data[config](); 10157 } 10158 }); 10159 }; 10160 _createClass(Tooltip3, null, [{ 10161 key: "VERSION", 10162 get: function get() { 10163 return VERSION; 10164 } 10165 }, { 10166 key: "Default", 10167 get: function get() { 10168 return Default; 10169 } 10170 }, { 10171 key: "NAME", 10172 get: function get() { 10173 return NAME; 10174 } 10175 }, { 10176 key: "DATA_KEY", 10177 get: function get() { 10178 return DATA_KEY; 10179 } 10180 }, { 10181 key: "Event", 10182 get: function get() { 10183 return Event; 10184 } 10185 }, { 10186 key: "EVENT_KEY", 10187 get: function get() { 10188 return EVENT_KEY; 10189 } 10190 }, { 10191 key: "DefaultType", 10192 get: function get() { 10193 return DefaultType; 10194 } 10195 }]); 10196 return Tooltip3; 10197 }(); 10198 $__default["default"].fn[NAME] = Tooltip2._jQueryInterface; 10199 $__default["default"].fn[NAME].Constructor = Tooltip2; 10200 $__default["default"].fn[NAME].noConflict = function() { 10201 $__default["default"].fn[NAME] = JQUERY_NO_CONFLICT; 10202 return Tooltip2._jQueryInterface; 10203 }; 10204 return Tooltip2; 10205 }); 10206 } 10207 }); 10208 10209
vendor: 8,052 bytes, lines 10209-10403
10209// node_modules/bootstrap/js/dist/popover.js 10210 var require_popover = __commonJS({ 10211 "node_modules/bootstrap/js/dist/popover.js"(exports, module) { 10212 (function(global2, factory) { 10213 typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory(require_jquery(), require_tooltip()) : typeof define === "function" && define.amd ? define(["jquery", "./tooltip"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, global2.Popover = factory(global2.jQuery, global2.Tooltip)); 10214 })(exports, function($2, Tooltip2) { 10215 "use strict"; 10216 function _interopDefaultLegacy(e) { 10217 return e && typeof e === "object" && "default" in e ? e : { "default": e }; 10218 } 10219 var $__default = /* @__PURE__ */ _interopDefaultLegacy($2); 10220 var Tooltip__default = /* @__PURE__ */ _interopDefaultLegacy(Tooltip2); 10221 function _defineProperties(target, props) { 10222 for (var i2 = 0; i2 < props.length; i2++) { 10223 var descriptor = props[i2]; 10224 descriptor.enumerable = descriptor.enumerable || false; 10225 descriptor.configurable = true; 10226 if ("value" in descriptor) 10227 descriptor.writable = true; 10228 Object.defineProperty(target, descriptor.key, descriptor); 10229 } 10230 } 10231 function _createClass(Constructor, protoProps, staticProps) { 10232 if (protoProps) 10233 _defineProperties(Constructor.prototype, protoProps); 10234 if (staticProps) 10235 _defineProperties(Constructor, staticProps); 10236 Object.defineProperty(Constructor, "prototype", { 10237 writable: false 10238 }); 10239 return Constructor; 10240 } 10241 function _extends() { 10242 _extends = Object.assign ? Object.assign.bind() : function(target) { 10243 for (var i2 = 1; i2 < arguments.length; i2++) { 10244 var source = arguments[i2]; 10245 for (var key in source) { 10246 if (Object.prototype.hasOwnProperty.call(source, key)) { 10247 target[key] = source[key]; 10248 } 10249 } 10250 } 10251 return target; 10252 }; 10253 return _extends.apply(this, arguments); 10254 } 10255 function _inheritsLoose(subClass, superClass) { 10256 subClass.prototype = Object.create(superClass.prototype); 10257 subClass.prototype.constructor = subClass; 10258 _setPrototypeOf(subClass, superClass); 10259 } 10260 function _setPrototypeOf(o, p) { 10261 _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf2(o2, p2) { 10262 o2.__proto__ = p2; 10263 return o2; 10264 }; 10265 return _setPrototypeOf(o, p); 10266 } 10267 var NAME = "popover"; 10268 var VERSION = "4.6.2"; 10269 var DATA_KEY = "bs.popover"; 10270 var EVENT_KEY = "." + DATA_KEY; 10271 var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME]; 10272 var CLASS_PREFIX = "bs-popover"; 10273 var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", "g"); 10274 var CLASS_NAME_FADE = "fade"; 10275 var CLASS_NAME_SHOW = "show"; 10276 var SELECTOR_TITLE = ".popover-header"; 10277 var SELECTOR_CONTENT = ".popover-body"; 10278 var Default = _extends({}, Tooltip__default["default"].Default, { 10279 placement: "right", 10280 trigger: "click", 10281 content: "", 10282 template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>' 10283 }); 10284 var DefaultType = _extends({}, Tooltip__default["default"].DefaultType, { 10285 content: "(string|element|function)" 10286 }); 10287 var Event = { 10288 HIDE: "hide" + EVENT_KEY, 10289 HIDDEN: "hidden" + EVENT_KEY, 10290 SHOW: "show" + EVENT_KEY, 10291 SHOWN: "shown" + EVENT_KEY, 10292 INSERTED: "inserted" + EVENT_KEY, 10293 CLICK: "click" + EVENT_KEY, 10294 FOCUSIN: "focusin" + EVENT_KEY, 10295 FOCUSOUT: "focusout" + EVENT_KEY, 10296 MOUSEENTER: "mouseenter" + EVENT_KEY, 10297 MOUSELEAVE: "mouseleave" + EVENT_KEY 10298 }; 10299 var Popover2 = /* @__PURE__ */ function(_Tooltip) { 10300 _inheritsLoose(Popover3, _Tooltip); 10301 function Popover3() { 10302 return _Tooltip.apply(this, arguments) || this; 10303 } 10304 var _proto = Popover3.prototype; 10305 _proto.isWithContent = function isWithContent() { 10306 return this.getTitle() || this._getContent(); 10307 }; 10308 _proto.addAttachmentClass = function addAttachmentClass(attachment) { 10309 $__default["default"](this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment); 10310 }; 10311 _proto.getTipElement = function getTipElement() { 10312 this.tip = this.tip || $__default["default"](this.config.template)[0]; 10313 return this.tip; 10314 }; 10315 _proto.setContent = function setContent() { 10316 var $tip = $__default["default"](this.getTipElement()); 10317 this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle()); 10318 var content = this._getContent(); 10319 if (typeof content === "function") { 10320 content = content.call(this.element); 10321 } 10322 this.setElementContent($tip.find(SELECTOR_CONTENT), content); 10323 $tip.removeClass(CLASS_NAME_FADE + " " + CLASS_NAME_SHOW); 10324 }; 10325 _proto._getContent = function _getContent() { 10326 return this.element.getAttribute("data-content") || this.config.content; 10327 }; 10328 _proto._cleanTipClass = function _cleanTipClass() { 10329 var $tip = $__default["default"](this.getTipElement()); 10330 var tabClass = $tip.attr("class").match(BSCLS_PREFIX_REGEX); 10331 if (tabClass !== null && tabClass.length > 0) { 10332 $tip.removeClass(tabClass.join("")); 10333 } 10334 }; 10335 Popover3._jQueryInterface = function _jQueryInterface(config) { 10336 return this.each(function() { 10337 var data = $__default["default"](this).data(DATA_KEY); 10338 var _config = typeof config === "object" ? config : null; 10339 if (!data && /dispose|hide/.test(config)) { 10340 return; 10341 } 10342 if (!data) { 10343 data = new Popover3(this, _config); 10344 $__default["default"](this).data(DATA_KEY, data); 10345 } 10346 if (typeof config === "string") { 10347 if (typeof data[config] === "undefined") { 10348 throw new TypeError('No method named "' + config + '"'); 10349 } 10350 data[config](); 10351 } 10352 }); 10353 }; 10354 _createClass(Popover3, null, [{ 10355 key: "VERSION", 10356 get: function get() { 10357 return VERSION; 10358 } 10359 }, { 10360 key: "Default", 10361 get: function get() { 10362 return Default; 10363 } 10364 }, { 10365 key: "NAME", 10366 get: function get() { 10367 return NAME; 10368 } 10369 }, { 10370 key: "DATA_KEY", 10371 get: function get() { 10372 return DATA_KEY; 10373 } 10374 }, { 10375 key: "Event", 10376 get: function get() { 10377 return Event; 10378 } 10379 }, { 10380 key: "EVENT_KEY", 10381 get: function get() { 10382 return EVENT_KEY; 10383 } 10384 }, { 10385 key: "DefaultType", 10386 get: function get() { 10387 return DefaultType; 10388 } 10389 }]); 10390 return Popover3; 10391 }(Tooltip__default["default"]); 10392 $__default["default"].fn[NAME] = Popover2._jQueryInterface; 10393 $__default["default"].fn[NAME].Constructor = Popover2; 10394 $__default["default"].fn[NAME].noConflict = function() { 10395 $__default["default"].fn[NAME] = JQUERY_NO_CONFLICT; 10396 return Popover2._jQueryInterface; 10397 }; 10398 return Popover2; 10399 }); 10400 } 10401 }); 10402 10403
vendor: 12,087 bytes, lines 10403-10661
10403// node_modules/bootstrap/js/dist/scrollspy.js 10404 var require_scrollspy = __commonJS({ 10405 "node_modules/bootstrap/js/dist/scrollspy.js"(exports, module) { 10406 (function(global2, factory) { 10407 typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory(require_jquery(), require_util()) : typeof define === "function" && define.amd ? define(["jquery", "./util"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, global2.ScrollSpy = factory(global2.jQuery, global2.Util)); 10408 })(exports, function($2, Util2) { 10409 "use strict"; 10410 function _interopDefaultLegacy(e) { 10411 return e && typeof e === "object" && "default" in e ? e : { "default": e }; 10412 } 10413 var $__default = /* @__PURE__ */ _interopDefaultLegacy($2); 10414 var Util__default = /* @__PURE__ */ _interopDefaultLegacy(Util2); 10415 function _defineProperties(target, props) { 10416 for (var i2 = 0; i2 < props.length; i2++) { 10417 var descriptor = props[i2]; 10418 descriptor.enumerable = descriptor.enumerable || false; 10419 descriptor.configurable = true; 10420 if ("value" in descriptor) 10421 descriptor.writable = true; 10422 Object.defineProperty(target, descriptor.key, descriptor); 10423 } 10424 } 10425 function _createClass(Constructor, protoProps, staticProps) { 10426 if (protoProps) 10427 _defineProperties(Constructor.prototype, protoProps); 10428 if (staticProps) 10429 _defineProperties(Constructor, staticProps); 10430 Object.defineProperty(Constructor, "prototype", { 10431 writable: false 10432 }); 10433 return Constructor; 10434 } 10435 function _extends() { 10436 _extends = Object.assign ? Object.assign.bind() : function(target) { 10437 for (var i2 = 1; i2 < arguments.length; i2++) { 10438 var source = arguments[i2]; 10439 for (var key in source) { 10440 if (Object.prototype.hasOwnProperty.call(source, key)) { 10441 target[key] = source[key]; 10442 } 10443 } 10444 } 10445 return target; 10446 }; 10447 return _extends.apply(this, arguments); 10448 } 10449 var NAME = "scrollspy"; 10450 var VERSION = "4.6.2"; 10451 var DATA_KEY = "bs.scrollspy"; 10452 var EVENT_KEY = "." + DATA_KEY; 10453 var DATA_API_KEY = ".data-api"; 10454 var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME]; 10455 var CLASS_NAME_DROPDOWN_ITEM = "dropdown-item"; 10456 var CLASS_NAME_ACTIVE = "active"; 10457 var EVENT_ACTIVATE = "activate" + EVENT_KEY; 10458 var EVENT_SCROLL = "scroll" + EVENT_KEY; 10459 var EVENT_LOAD_DATA_API = "load" + EVENT_KEY + DATA_API_KEY; 10460 var METHOD_OFFSET = "offset"; 10461 var METHOD_POSITION = "position"; 10462 var SELECTOR_DATA_SPY = '[data-spy="scroll"]'; 10463 var SELECTOR_NAV_LIST_GROUP = ".nav, .list-group"; 10464 var SELECTOR_NAV_LINKS = ".nav-link"; 10465 var SELECTOR_NAV_ITEMS = ".nav-item"; 10466 var SELECTOR_LIST_ITEMS = ".list-group-item"; 10467 var SELECTOR_DROPDOWN = ".dropdown"; 10468 var SELECTOR_DROPDOWN_ITEMS = ".dropdown-item"; 10469 var SELECTOR_DROPDOWN_TOGGLE = ".dropdown-toggle"; 10470 var Default = { 10471 offset: 10, 10472 method: "auto", 10473 target: "" 10474 }; 10475 var DefaultType = { 10476 offset: "number", 10477 method: "string", 10478 target: "(string|element)" 10479 }; 10480 var ScrollSpy = /* @__PURE__ */ function() { 10481 function ScrollSpy2(element, config) { 10482 var _this = this; 10483 this._element = element; 10484 this._scrollElement = element.tagName === "BODY" ? window : element; 10485 this._config = this._getConfig(config); 10486 this._selector = this._config.target + " " + SELECTOR_NAV_LINKS + "," + (this._config.target + " " + SELECTOR_LIST_ITEMS + ",") + (this._config.target + " " + SELECTOR_DROPDOWN_ITEMS); 10487 this._offsets = []; 10488 this._targets = []; 10489 this._activeTarget = null; 10490 this._scrollHeight = 0; 10491 $__default["default"](this._scrollElement).on(EVENT_SCROLL, function(event) { 10492 return _this._process(event); 10493 }); 10494 this.refresh(); 10495 this._process(); 10496 } 10497 var _proto = ScrollSpy2.prototype; 10498 _proto.refresh = function refresh() { 10499 var _this2 = this; 10500 var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION; 10501 var offsetMethod = this._config.method === "auto" ? autoMethod : this._config.method; 10502 var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0; 10503 this._offsets = []; 10504 this._targets = []; 10505 this._scrollHeight = this._getScrollHeight(); 10506 var targets = [].slice.call(document.querySelectorAll(this._selector)); 10507 targets.map(function(element) { 10508 var target; 10509 var targetSelector = Util__default["default"].getSelectorFromElement(element); 10510 if (targetSelector) { 10511 target = document.querySelector(targetSelector); 10512 } 10513 if (target) { 10514 var targetBCR = target.getBoundingClientRect(); 10515 if (targetBCR.width || targetBCR.height) { 10516 return [$__default["default"](target)[offsetMethod]().top + offsetBase, targetSelector]; 10517 } 10518 } 10519 return null; 10520 }).filter(Boolean).sort(function(a, b) { 10521 return a[0] - b[0]; 10522 }).forEach(function(item) { 10523 _this2._offsets.push(item[0]); 10524 _this2._targets.push(item[1]); 10525 }); 10526 }; 10527 _proto.dispose = function dispose() { 10528 $__default["default"].removeData(this._element, DATA_KEY); 10529 $__default["default"](this._scrollElement).off(EVENT_KEY); 10530 this._element = null; 10531 this._scrollElement = null; 10532 this._config = null; 10533 this._selector = null; 10534 this._offsets = null; 10535 this._targets = null; 10536 this._activeTarget = null; 10537 this._scrollHeight = null; 10538 }; 10539 _proto._getConfig = function _getConfig(config) { 10540 config = _extends({}, Default, typeof config === "object" && config ? config : {}); 10541 if (typeof config.target !== "string" && Util__default["default"].isElement(config.target)) { 10542 var id = $__default["default"](config.target).attr("id"); 10543 if (!id) { 10544 id = Util__default["default"].getUID(NAME); 10545 $__default["default"](config.target).attr("id", id); 10546 } 10547 config.target = "#" + id; 10548 } 10549 Util__default["default"].typeCheckConfig(NAME, config, DefaultType); 10550 return config; 10551 }; 10552 _proto._getScrollTop = function _getScrollTop() { 10553 return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop; 10554 }; 10555 _proto._getScrollHeight = function _getScrollHeight() { 10556 return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight); 10557 }; 10558 _proto._getOffsetHeight = function _getOffsetHeight() { 10559 return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height; 10560 }; 10561 _proto._process = function _process() { 10562 var scrollTop = this._getScrollTop() + this._config.offset; 10563 var scrollHeight = this._getScrollHeight(); 10564 var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight(); 10565 if (this._scrollHeight !== scrollHeight) { 10566 this.refresh(); 10567 } 10568 if (scrollTop >= maxScroll) { 10569 var target = this._targets[this._targets.length - 1]; 10570 if (this._activeTarget !== target) { 10571 this._activate(target); 10572 } 10573 return; 10574 } 10575 if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) { 10576 this._activeTarget = null; 10577 this._clear(); 10578 return; 10579 } 10580 for (var i2 = this._offsets.length; i2--; ) { 10581 var isActiveTarget = this._activeTarget !== this._targets[i2] && scrollTop >= this._offsets[i2] && (typeof this._offsets[i2 + 1] === "undefined" || scrollTop < this._offsets[i2 + 1]); 10582 if (isActiveTarget) { 10583 this._activate(this._targets[i2]); 10584 } 10585 } 10586 }; 10587 _proto._activate = function _activate(target) { 10588 this._activeTarget = target; 10589 this._clear(); 10590 var queries = this._selector.split(",").map(function(selector) { 10591 return selector + '[data-target="' + target + '"],' + selector + '[href="' + target + '"]'; 10592 }); 10593 var $link = $__default["default"]([].slice.call(document.querySelectorAll(queries.join(",")))); 10594 if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) { 10595 $link.closest(SELECTOR_DROPDOWN).find(SELECTOR_DROPDOWN_TOGGLE).addClass(CLASS_NAME_ACTIVE); 10596 $link.addClass(CLASS_NAME_ACTIVE); 10597 } else { 10598 $link.addClass(CLASS_NAME_ACTIVE); 10599 $link.parents(SELECTOR_NAV_LIST_GROUP).prev(SELECTOR_NAV_LINKS + ", " + SELECTOR_LIST_ITEMS).addClass(CLASS_NAME_ACTIVE); 10600 $link.parents(SELECTOR_NAV_LIST_GROUP).prev(SELECTOR_NAV_ITEMS).children(SELECTOR_NAV_LINKS).addClass(CLASS_NAME_ACTIVE); 10601 } 10602 $__default["default"](this._scrollElement).trigger(EVENT_ACTIVATE, { 10603 relatedTarget: target 10604 }); 10605 }; 10606 _proto._clear = function _clear() { 10607 [].slice.call(document.querySelectorAll(this._selector)).filter(function(node) { 10608 return node.classList.contains(CLASS_NAME_ACTIVE); 10609 }).forEach(function(node) { 10610 return node.classList.remove(CLASS_NAME_ACTIVE); 10611 }); 10612 }; 10613 ScrollSpy2._jQueryInterface = function _jQueryInterface(config) { 10614 return this.each(function() { 10615 var data = $__default["default"](this).data(DATA_KEY); 10616 var _config = typeof config === "object" && config; 10617 if (!data) { 10618 data = new ScrollSpy2(this, _config); 10619 $__default["default"](this).data(DATA_KEY, data); 10620 } 10621 if (typeof config === "string") { 10622 if (typeof data[config] === "undefined") { 10623 throw new TypeError('No method named "' + config + '"'); 10624 } 10625 data[config](); 10626 } 10627 }); 10628 }; 10629 _createClass(ScrollSpy2, null, [{ 10630 key: "VERSION", 10631 get: function get() { 10632 return VERSION; 10633 } 10634 }, { 10635 key: "Default", 10636 get: function get() { 10637 return Default; 10638 } 10639 }]); 10640 return ScrollSpy2; 10641 }(); 10642 $__default["default"](window).on(EVENT_LOAD_DATA_API, function() { 10643 var scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY)); 10644 var scrollSpysLength = scrollSpys.length; 10645 for (var i2 = scrollSpysLength; i2--; ) { 10646 var $spy = $__default["default"](scrollSpys[i2]); 10647 ScrollSpy._jQueryInterface.call($spy, $spy.data()); 10648 } 10649 }); 10650 $__default["default"].fn[NAME] = ScrollSpy._jQueryInterface; 10651 $__default["default"].fn[NAME].Constructor = ScrollSpy; 10652 $__default["default"].fn[NAME].noConflict = function() { 10653 $__default["default"].fn[NAME] = JQUERY_NO_CONFLICT; 10654 return ScrollSpy._jQueryInterface; 10655 }; 10656 return ScrollSpy; 10657 }); 10658 } 10659 }); 10660 10661
vendor: 9,665 bytes, lines 10661-10861
10661// node_modules/bootstrap/js/dist/tab.js 10662 var require_tab = __commonJS({ 10663 "node_modules/bootstrap/js/dist/tab.js"(exports, module) { 10664 (function(global2, factory) { 10665 typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory(require_jquery(), require_util()) : typeof define === "function" && define.amd ? define(["jquery", "./util"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, global2.Tab = factory(global2.jQuery, global2.Util)); 10666 })(exports, function($2, Util2) { 10667 "use strict"; 10668 function _interopDefaultLegacy(e) { 10669 return e && typeof e === "object" && "default" in e ? e : { "default": e }; 10670 } 10671 var $__default = /* @__PURE__ */ _interopDefaultLegacy($2); 10672 var Util__default = /* @__PURE__ */ _interopDefaultLegacy(Util2); 10673 function _defineProperties(target, props) { 10674 for (var i2 = 0; i2 < props.length; i2++) { 10675 var descriptor = props[i2]; 10676 descriptor.enumerable = descriptor.enumerable || false; 10677 descriptor.configurable = true; 10678 if ("value" in descriptor) 10679 descriptor.writable = true; 10680 Object.defineProperty(target, descriptor.key, descriptor); 10681 } 10682 } 10683 function _createClass(Constructor, protoProps, staticProps) { 10684 if (protoProps) 10685 _defineProperties(Constructor.prototype, protoProps); 10686 if (staticProps) 10687 _defineProperties(Constructor, staticProps); 10688 Object.defineProperty(Constructor, "prototype", { 10689 writable: false 10690 }); 10691 return Constructor; 10692 } 10693 var NAME = "tab"; 10694 var VERSION = "4.6.2"; 10695 var DATA_KEY = "bs.tab"; 10696 var EVENT_KEY = "." + DATA_KEY; 10697 var DATA_API_KEY = ".data-api"; 10698 var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME]; 10699 var CLASS_NAME_DROPDOWN_MENU = "dropdown-menu"; 10700 var CLASS_NAME_ACTIVE = "active"; 10701 var CLASS_NAME_DISABLED = "disabled"; 10702 var CLASS_NAME_FADE = "fade"; 10703 var CLASS_NAME_SHOW = "show"; 10704 var EVENT_HIDE = "hide" + EVENT_KEY; 10705 var EVENT_HIDDEN = "hidden" + EVENT_KEY; 10706 var EVENT_SHOW = "show" + EVENT_KEY; 10707 var EVENT_SHOWN = "shown" + EVENT_KEY; 10708 var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY; 10709 var SELECTOR_DROPDOWN = ".dropdown"; 10710 var SELECTOR_NAV_LIST_GROUP = ".nav, .list-group"; 10711 var SELECTOR_ACTIVE = ".active"; 10712 var SELECTOR_ACTIVE_UL = "> li > .active"; 10713 var SELECTOR_DATA_TOGGLE = '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]'; 10714 var SELECTOR_DROPDOWN_TOGGLE = ".dropdown-toggle"; 10715 var SELECTOR_DROPDOWN_ACTIVE_CHILD = "> .dropdown-menu .active"; 10716 var Tab3 = /* @__PURE__ */ function() { 10717 function Tab4(element) { 10718 this._element = element; 10719 } 10720 var _proto = Tab4.prototype; 10721 _proto.show = function show() { 10722 var _this = this; 10723 if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $__default["default"](this._element).hasClass(CLASS_NAME_ACTIVE) || $__default["default"](this._element).hasClass(CLASS_NAME_DISABLED) || this._element.hasAttribute("disabled")) { 10724 return; 10725 } 10726 var target; 10727 var previous; 10728 var listElement = $__default["default"](this._element).closest(SELECTOR_NAV_LIST_GROUP)[0]; 10729 var selector = Util__default["default"].getSelectorFromElement(this._element); 10730 if (listElement) { 10731 var itemSelector = listElement.nodeName === "UL" || listElement.nodeName === "OL" ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE; 10732 previous = $__default["default"].makeArray($__default["default"](listElement).find(itemSelector)); 10733 previous = previous[previous.length - 1]; 10734 } 10735 var hideEvent = $__default["default"].Event(EVENT_HIDE, { 10736 relatedTarget: this._element 10737 }); 10738 var showEvent = $__default["default"].Event(EVENT_SHOW, { 10739 relatedTarget: previous 10740 }); 10741 if (previous) { 10742 $__default["default"](previous).trigger(hideEvent); 10743 } 10744 $__default["default"](this._element).trigger(showEvent); 10745 if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) { 10746 return; 10747 } 10748 if (selector) { 10749 target = document.querySelector(selector); 10750 } 10751 this._activate(this._element, listElement); 10752 var complete = function complete2() { 10753 var hiddenEvent = $__default["default"].Event(EVENT_HIDDEN, { 10754 relatedTarget: _this._element 10755 }); 10756 var shownEvent = $__default["default"].Event(EVENT_SHOWN, { 10757 relatedTarget: previous 10758 }); 10759 $__default["default"](previous).trigger(hiddenEvent); 10760 $__default["default"](_this._element).trigger(shownEvent); 10761 }; 10762 if (target) { 10763 this._activate(target, target.parentNode, complete); 10764 } else { 10765 complete(); 10766 } 10767 }; 10768 _proto.dispose = function dispose() { 10769 $__default["default"].removeData(this._element, DATA_KEY); 10770 this._element = null; 10771 }; 10772 _proto._activate = function _activate(element, container, callback) { 10773 var _this2 = this; 10774 var activeElements = container && (container.nodeName === "UL" || container.nodeName === "OL") ? $__default["default"](container).find(SELECTOR_ACTIVE_UL) : $__default["default"](container).children(SELECTOR_ACTIVE); 10775 var active = activeElements[0]; 10776 var isTransitioning = callback && active && $__default["default"](active).hasClass(CLASS_NAME_FADE); 10777 var complete = function complete2() { 10778 return _this2._transitionComplete(element, active, callback); 10779 }; 10780 if (active && isTransitioning) { 10781 var transitionDuration = Util__default["default"].getTransitionDurationFromElement(active); 10782 $__default["default"](active).removeClass(CLASS_NAME_SHOW).one(Util__default["default"].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); 10783 } else { 10784 complete(); 10785 } 10786 }; 10787 _proto._transitionComplete = function _transitionComplete(element, active, callback) { 10788 if (active) { 10789 $__default["default"](active).removeClass(CLASS_NAME_ACTIVE); 10790 var dropdownChild = $__default["default"](active.parentNode).find(SELECTOR_DROPDOWN_ACTIVE_CHILD)[0]; 10791 if (dropdownChild) { 10792 $__default["default"](dropdownChild).removeClass(CLASS_NAME_ACTIVE); 10793 } 10794 if (active.getAttribute("role") === "tab") { 10795 active.setAttribute("aria-selected", false); 10796 } 10797 } 10798 $__default["default"](element).addClass(CLASS_NAME_ACTIVE); 10799 if (element.getAttribute("role") === "tab") { 10800 element.setAttribute("aria-selected", true); 10801 } 10802 Util__default["default"].reflow(element); 10803 if (element.classList.contains(CLASS_NAME_FADE)) { 10804 element.classList.add(CLASS_NAME_SHOW); 10805 } 10806 var parent = element.parentNode; 10807 if (parent && parent.nodeName === "LI") { 10808 parent = parent.parentNode; 10809 } 10810 if (parent && $__default["default"](parent).hasClass(CLASS_NAME_DROPDOWN_MENU)) { 10811 var dropdownElement = $__default["default"](element).closest(SELECTOR_DROPDOWN)[0]; 10812 if (dropdownElement) { 10813 var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE)); 10814 $__default["default"](dropdownToggleList).addClass(CLASS_NAME_ACTIVE); 10815 } 10816 element.setAttribute("aria-expanded", true); 10817 } 10818 if (callback) { 10819 callback(); 10820 } 10821 }; 10822 Tab4._jQueryInterface = function _jQueryInterface(config) { 10823 return this.each(function() { 10824 var $this = $__default["default"](this); 10825 var data = $this.data(DATA_KEY); 10826 if (!data) { 10827 data = new Tab4(this); 10828 $this.data(DATA_KEY, data); 10829 } 10830 if (typeof config === "string") { 10831 if (typeof data[config] === "undefined") { 10832 throw new TypeError('No method named "' + config + '"'); 10833 } 10834 data[config](); 10835 } 10836 }); 10837 }; 10838 _createClass(Tab4, null, [{ 10839 key: "VERSION", 10840 get: function get() { 10841 return VERSION; 10842 } 10843 }]); 10844 return Tab4; 10845 }(); 10846 $__default["default"](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function(event) { 10847 event.preventDefault(); 10848 Tab3._jQueryInterface.call($__default["default"](this), "show"); 10849 }); 10850 $__default["default"].fn[NAME] = Tab3._jQueryInterface; 10851 $__default["default"].fn[NAME].Constructor = Tab3; 10852 $__default["default"].fn[NAME].noConflict = function() { 10853 $__default["default"].fn[NAME] = JQUERY_NO_CONFLICT; 10854 return Tab3._jQueryInterface; 10855 }; 10856 return Tab3; 10857 }); 10858 } 10859 }); 10860 10861
vendor: 8,732 bytes, lines 10861-11067
10861// node_modules/bootstrap/js/dist/toast.js 10862 var require_toast = __commonJS({ 10863 "node_modules/bootstrap/js/dist/toast.js"(exports, module) { 10864 (function(global2, factory) { 10865 typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory(require_jquery(), require_util()) : typeof define === "function" && define.amd ? define(["jquery", "./util"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, global2.Toast = factory(global2.jQuery, global2.Util)); 10866 })(exports, function($2, Util2) { 10867 "use strict"; 10868 function _interopDefaultLegacy(e) { 10869 return e && typeof e === "object" && "default" in e ? e : { "default": e }; 10870 } 10871 var $__default = /* @__PURE__ */ _interopDefaultLegacy($2); 10872 var Util__default = /* @__PURE__ */ _interopDefaultLegacy(Util2); 10873 function _defineProperties(target, props) { 10874 for (var i2 = 0; i2 < props.length; i2++) { 10875 var descriptor = props[i2]; 10876 descriptor.enumerable = descriptor.enumerable || false; 10877 descriptor.configurable = true; 10878 if ("value" in descriptor) 10879 descriptor.writable = true; 10880 Object.defineProperty(target, descriptor.key, descriptor); 10881 } 10882 } 10883 function _createClass(Constructor, protoProps, staticProps) { 10884 if (protoProps) 10885 _defineProperties(Constructor.prototype, protoProps); 10886 if (staticProps) 10887 _defineProperties(Constructor, staticProps); 10888 Object.defineProperty(Constructor, "prototype", { 10889 writable: false 10890 }); 10891 return Constructor; 10892 } 10893 function _extends() { 10894 _extends = Object.assign ? Object.assign.bind() : function(target) { 10895 for (var i2 = 1; i2 < arguments.length; i2++) { 10896 var source = arguments[i2]; 10897 for (var key in source) { 10898 if (Object.prototype.hasOwnProperty.call(source, key)) { 10899 target[key] = source[key]; 10900 } 10901 } 10902 } 10903 return target; 10904 }; 10905 return _extends.apply(this, arguments); 10906 } 10907 var NAME = "toast"; 10908 var VERSION = "4.6.2"; 10909 var DATA_KEY = "bs.toast"; 10910 var EVENT_KEY = "." + DATA_KEY; 10911 var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME]; 10912 var CLASS_NAME_FADE = "fade"; 10913 var CLASS_NAME_HIDE = "hide"; 10914 var CLASS_NAME_SHOW = "show"; 10915 var CLASS_NAME_SHOWING = "showing"; 10916 var EVENT_CLICK_DISMISS = "click.dismiss" + EVENT_KEY; 10917 var EVENT_HIDE = "hide" + EVENT_KEY; 10918 var EVENT_HIDDEN = "hidden" + EVENT_KEY; 10919 var EVENT_SHOW = "show" + EVENT_KEY; 10920 var EVENT_SHOWN = "shown" + EVENT_KEY; 10921 var SELECTOR_DATA_DISMISS = '[data-dismiss="toast"]'; 10922 var Default = { 10923 animation: true, 10924 autohide: true, 10925 delay: 500 10926 }; 10927 var DefaultType = { 10928 animation: "boolean", 10929 autohide: "boolean", 10930 delay: "number" 10931 }; 10932 var Toast2 = /* @__PURE__ */ function() { 10933 function Toast3(element, config) { 10934 this._element = element; 10935 this._config = this._getConfig(config); 10936 this._timeout = null; 10937 this._setListeners(); 10938 } 10939 var _proto = Toast3.prototype; 10940 _proto.show = function show() { 10941 var _this = this; 10942 var showEvent = $__default["default"].Event(EVENT_SHOW); 10943 $__default["default"](this._element).trigger(showEvent); 10944 if (showEvent.isDefaultPrevented()) { 10945 return; 10946 } 10947 this._clearTimeout(); 10948 if (this._config.animation) { 10949 this._element.classList.add(CLASS_NAME_FADE); 10950 } 10951 var complete = function complete2() { 10952 _this._element.classList.remove(CLASS_NAME_SHOWING); 10953 _this._element.classList.add(CLASS_NAME_SHOW); 10954 $__default["default"](_this._element).trigger(EVENT_SHOWN); 10955 if (_this._config.autohide) { 10956 _this._timeout = setTimeout(function() { 10957 _this.hide(); 10958 }, _this._config.delay); 10959 } 10960 }; 10961 this._element.classList.remove(CLASS_NAME_HIDE); 10962 Util__default["default"].reflow(this._element); 10963 this._element.classList.add(CLASS_NAME_SHOWING); 10964 if (this._config.animation) { 10965 var transitionDuration = Util__default["default"].getTransitionDurationFromElement(this._element); 10966 $__default["default"](this._element).one(Util__default["default"].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); 10967 } else { 10968 complete(); 10969 } 10970 }; 10971 _proto.hide = function hide() { 10972 if (!this._element.classList.contains(CLASS_NAME_SHOW)) { 10973 return; 10974 } 10975 var hideEvent = $__default["default"].Event(EVENT_HIDE); 10976 $__default["default"](this._element).trigger(hideEvent); 10977 if (hideEvent.isDefaultPrevented()) { 10978 return; 10979 } 10980 this._close(); 10981 }; 10982 _proto.dispose = function dispose() { 10983 this._clearTimeout(); 10984 if (this._element.classList.contains(CLASS_NAME_SHOW)) { 10985 this._element.classList.remove(CLASS_NAME_SHOW); 10986 } 10987 $__default["default"](this._element).off(EVENT_CLICK_DISMISS); 10988 $__default["default"].removeData(this._element, DATA_KEY); 10989 this._element = null; 10990 this._config = null; 10991 }; 10992 _proto._getConfig = function _getConfig(config) { 10993 config = _extends({}, Default, $__default["default"](this._element).data(), typeof config === "object" && config ? config : {}); 10994 Util__default["default"].typeCheckConfig(NAME, config, this.constructor.DefaultType); 10995 return config; 10996 }; 10997 _proto._setListeners = function _setListeners() { 10998 var _this2 = this; 10999 $__default["default"](this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function() { 11000 return _this2.hide(); 11001 }); 11002 }; 11003 _proto._close = function _close() { 11004 var _this3 = this; 11005 var complete = function complete2() { 11006 _this3._element.classList.add(CLASS_NAME_HIDE); 11007 $__default["default"](_this3._element).trigger(EVENT_HIDDEN); 11008 }; 11009 this._element.classList.remove(CLASS_NAME_SHOW); 11010 if (this._config.animation) { 11011 var transitionDuration = Util__default["default"].getTransitionDurationFromElement(this._element); 11012 $__default["default"](this._element).one(Util__default["default"].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); 11013 } else { 11014 complete(); 11015 } 11016 }; 11017 _proto._clearTimeout = function _clearTimeout() { 11018 clearTimeout(this._timeout); 11019 this._timeout = null; 11020 }; 11021 Toast3._jQueryInterface = function _jQueryInterface(config) { 11022 return this.each(function() { 11023 var $element = $__default["default"](this); 11024 var data = $element.data(DATA_KEY); 11025 var _config = typeof config === "object" && config; 11026 if (!data) { 11027 data = new Toast3(this, _config); 11028 $element.data(DATA_KEY, data); 11029 } 11030 if (typeof config === "string") { 11031 if (typeof data[config] === "undefined") { 11032 throw new TypeError('No method named "' + config + '"'); 11033 } 11034 data[config](this); 11035 } 11036 }); 11037 }; 11038 _createClass(Toast3, null, [{ 11039 key: "VERSION", 11040 get: function get() { 11041 return VERSION; 11042 } 11043 }, { 11044 key: "DefaultType", 11045 get: function get() { 11046 return DefaultType; 11047 } 11048 }, { 11049 key: "Default", 11050 get: function get() { 11051 return Default; 11052 } 11053 }]); 11054 return Toast3; 11055 }(); 11056 $__default["default"].fn[NAME] = Toast2._jQueryInterface; 11057 $__default["default"].fn[NAME].Constructor = Toast2; 11058 $__default["default"].fn[NAME].noConflict = function() { 11059 $__default["default"].fn[NAME] = JQUERY_NO_CONFLICT; 11060 return Toast2._jQueryInterface; 11061 }; 11062 return Toast2; 11063 }); 11064 } 11065 }); 11066 11067
vendor: 152,271 bytes, lines 11067-14975
11067// node_modules/moment/moment.js 11068 var require_moment = __commonJS({ 11069 "node_modules/moment/moment.js"(exports, module) { 11070 (function(global2, factory) { 11071 typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory() : typeof define === "function" && define.amd ? define(factory) : global2.moment = factory(); 11072 })(exports, function() { 11073 "use strict"; 11074 var hookCallback; 11075 function hooks() { 11076 return hookCallback.apply(null, arguments); 11077 } 11078 function setHookCallback(callback) { 11079 hookCallback = callback; 11080 } 11081 function isArray(input) { 11082 return input instanceof Array || Object.prototype.toString.call(input) === "[object Array]"; 11083 } 11084 function isObject2(input) { 11085 return input != null && Object.prototype.toString.call(input) === "[object Object]"; 11086 } 11087 function hasOwnProp(a, b) { 11088 return Object.prototype.hasOwnProperty.call(a, b); 11089 } 11090 function isObjectEmpty(obj) { 11091 if (Object.getOwnPropertyNames) { 11092 return Object.getOwnPropertyNames(obj).length === 0; 11093 } else { 11094 var k; 11095 for (k in obj) { 11096 if (hasOwnProp(obj, k)) { 11097 return false; 11098 } 11099 } 11100 return true; 11101 } 11102 } 11103 function isUndefined(input) { 11104 return input === void 0; 11105 } 11106 function isNumber(input) { 11107 return typeof input === "number" || Object.prototype.toString.call(input) === "[object Number]"; 11108 } 11109 function isDate(input) { 11110 return input instanceof Date || Object.prototype.toString.call(input) === "[object Date]"; 11111 } 11112 function map2(arr, fn) { 11113 var res = [], i2, arrLen = arr.length; 11114 for (i2 = 0; i2 < arrLen; ++i2) { 11115 res.push(fn(arr[i2], i2)); 11116 } 11117 return res; 11118 } 11119 function extend(a, b) { 11120 for (var i2 in b) { 11121 if (hasOwnProp(b, i2)) { 11122 a[i2] = b[i2]; 11123 } 11124 } 11125 if (hasOwnProp(b, "toString")) { 11126 a.toString = b.toString; 11127 } 11128 if (hasOwnProp(b, "valueOf")) { 11129 a.valueOf = b.valueOf; 11130 } 11131 return a; 11132 } 11133 function createUTC(input, format3, locale2, strict) { 11134 return createLocalOrUTC(input, format3, locale2, strict, true).utc(); 11135 } 11136 function defaultParsingFlags() { 11137 return { 11138 empty: false, 11139 unusedTokens: [], 11140 unusedInput: [], 11141 overflow: -2, 11142 charsLeftOver: 0, 11143 nullInput: false, 11144 invalidEra: null, 11145 invalidMonth: null, 11146 invalidFormat: false, 11147 userInvalidated: false, 11148 iso: false, 11149 parsedDateParts: [], 11150 era: null, 11151 meridiem: null, 11152 rfc2822: false, 11153 weekdayMismatch: false 11154 }; 11155 } 11156 function getParsingFlags(m) { 11157 if (m._pf == null) { 11158 m._pf = defaultParsingFlags(); 11159 } 11160 return m._pf; 11161 } 11162 var some; 11163 if (Array.prototype.some) { 11164 some = Array.prototype.some; 11165 } else { 11166 some = function(fun) { 11167 var t = Object(this), len = t.length >>> 0, i2; 11168 for (i2 = 0; i2 < len; i2++) { 11169 if (i2 in t && fun.call(this, t[i2], i2, t)) { 11170 return true; 11171 } 11172 } 11173 return false; 11174 }; 11175 } 11176 function isValid(m) { 11177 if (m._isValid == null) { 11178 var flags = getParsingFlags(m), parsedParts = some.call(flags.parsedDateParts, function(i2) { 11179 return i2 != null; 11180 }), isNowValid = !isNaN(m._d.getTime()) && flags.overflow < 0 && !flags.empty && !flags.invalidEra && !flags.invalidMonth && !flags.invalidWeekday && !flags.weekdayMismatch && !flags.nullInput && !flags.invalidFormat && !flags.userInvalidated && (!flags.meridiem || flags.meridiem && parsedParts); 11181 if (m._strict) { 11182 isNowValid = isNowValid && flags.charsLeftOver === 0 && flags.unusedTokens.length === 0 && flags.bigHour === void 0; 11183 } 11184 if (Object.isFrozen == null || !Object.isFrozen(m)) { 11185 m._isValid = isNowValid; 11186 } else { 11187 return isNowValid; 11188 } 11189 } 11190 return m._isValid; 11191 } 11192 function createInvalid(flags) { 11193 var m = createUTC(NaN); 11194 if (flags != null) { 11195 extend(getParsingFlags(m), flags); 11196 } else { 11197 getParsingFlags(m).userInvalidated = true; 11198 } 11199 return m; 11200 } 11201 var momentProperties = hooks.momentProperties = [], updateInProgress = false; 11202 function copyConfig(to2, from2) { 11203 var i2, prop, val, momentPropertiesLen = momentProperties.length; 11204 if (!isUndefined(from2._isAMomentObject)) { 11205 to2._isAMomentObject = from2._isAMomentObject; 11206 } 11207 if (!isUndefined(from2._i)) { 11208 to2._i = from2._i; 11209 } 11210 if (!isUndefined(from2._f)) { 11211 to2._f = from2._f; 11212 } 11213 if (!isUndefined(from2._l)) { 11214 to2._l = from2._l; 11215 } 11216 if (!isUndefined(from2._strict)) { 11217 to2._strict = from2._strict; 11218 } 11219 if (!isUndefined(from2._tzm)) { 11220 to2._tzm = from2._tzm; 11221 } 11222 if (!isUndefined(from2._isUTC)) { 11223 to2._isUTC = from2._isUTC; 11224 } 11225 if (!isUndefined(from2._offset)) { 11226 to2._offset = from2._offset; 11227 } 11228 if (!isUndefined(from2._pf)) { 11229 to2._pf = getParsingFlags(from2); 11230 } 11231 if (!isUndefined(from2._locale)) { 11232 to2._locale = from2._locale; 11233 } 11234 if (momentPropertiesLen > 0) { 11235 for (i2 = 0; i2 < momentPropertiesLen; i2++) { 11236 prop = momentProperties[i2]; 11237 val = from2[prop]; 11238 if (!isUndefined(val)) { 11239 to2[prop] = val; 11240 } 11241 } 11242 } 11243 return to2; 11244 } 11245 function Moment(config) { 11246 copyConfig(this, config); 11247 this._d = new Date(config._d != null ? config._d.getTime() : NaN); 11248 if (!this.isValid()) { 11249 this._d = new Date(NaN); 11250 } 11251 if (updateInProgress === false) { 11252 updateInProgress = true; 11253 hooks.updateOffset(this); 11254 updateInProgress = false; 11255 } 11256 } 11257 function isMoment(obj) { 11258 return obj instanceof Moment || obj != null && obj._isAMomentObject != null; 11259 } 11260 function warn(msg) { 11261 if (hooks.suppressDeprecationWarnings === false && typeof console !== "undefined" && console.warn) { 11262 console.warn("Deprecation warning: " + msg); 11263 } 11264 } 11265 function deprecate(msg, fn) { 11266 var firstTime = true; 11267 return extend(function() { 11268 if (hooks.deprecationHandler != null) { 11269 hooks.deprecationHandler(null, msg); 11270 } 11271 if (firstTime) { 11272 var args = [], arg, i2, key, argLen = arguments.length; 11273 for (i2 = 0; i2 < argLen; i2++) { 11274 arg = ""; 11275 if (typeof arguments[i2] === "object") { 11276 arg += "\n[" + i2 + "] "; 11277 for (key in arguments[0]) { 11278 if (hasOwnProp(arguments[0], key)) { 11279 arg += key + ": " + arguments[0][key] + ", "; 11280 } 11281 } 11282 arg = arg.slice(0, -2); 11283 } else { 11284 arg = arguments[i2]; 11285 } 11286 args.push(arg); 11287 } 11288 warn( 11289 msg + "\nArguments: " + Array.prototype.slice.call(args).join("") + "\n" + new Error().stack 11290 ); 11291 firstTime = false; 11292 } 11293 return fn.apply(this, arguments); 11294 }, fn); 11295 } 11296 var deprecations = {}; 11297 function deprecateSimple(name2, msg) { 11298 if (hooks.deprecationHandler != null) { 11299 hooks.deprecationHandler(name2, msg); 11300 } 11301 if (!deprecations[name2]) { 11302 warn(msg); 11303 deprecations[name2] = true; 11304 } 11305 } 11306 hooks.suppressDeprecationWarnings = false; 11307 hooks.deprecationHandler = null; 11308 function isFunction(input) { 11309 return typeof Function !== "undefined" && input instanceof Function || Object.prototype.toString.call(input) === "[object Function]"; 11310 } 11311 function set(config) { 11312 var prop, i2; 11313 for (i2 in config) { 11314 if (hasOwnProp(config, i2)) { 11315 prop = config[i2]; 11316 if (isFunction(prop)) { 11317 this[i2] = prop; 11318 } else { 11319 this["_" + i2] = prop; 11320 } 11321 } 11322 } 11323 this._config = config; 11324 this._dayOfMonthOrdinalParseLenient = new RegExp( 11325 (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + "|" + /\d{1,2}/.source 11326 ); 11327 } 11328 function mergeConfigs(parentConfig, childConfig) { 11329 var res = extend({}, parentConfig), prop; 11330 for (prop in childConfig) { 11331 if (hasOwnProp(childConfig, prop)) { 11332 if (isObject2(parentConfig[prop]) && isObject2(childConfig[prop])) { 11333 res[prop] = {}; 11334 extend(res[prop], parentConfig[prop]); 11335 extend(res[prop], childConfig[prop]); 11336 } else if (childConfig[prop] != null) { 11337 res[prop] = childConfig[prop]; 11338 } else { 11339 delete res[prop]; 11340 } 11341 } 11342 } 11343 for (prop in parentConfig) { 11344 if (hasOwnProp(parentConfig, prop) && !hasOwnProp(childConfig, prop) && isObject2(parentConfig[prop])) { 11345 res[prop] = extend({}, res[prop]); 11346 } 11347 } 11348 return res; 11349 } 11350 function Locale(config) { 11351 if (config != null) { 11352 this.set(config); 11353 } 11354 } 11355 var keys; 11356 if (Object.keys) { 11357 keys = Object.keys; 11358 } else { 11359 keys = function(obj) { 11360 var i2, res = []; 11361 for (i2 in obj) { 11362 if (hasOwnProp(obj, i2)) { 11363 res.push(i2); 11364 } 11365 } 11366 return res; 11367 }; 11368 } 11369 var defaultCalendar = { 11370 sameDay: "[Today at] LT", 11371 nextDay: "[Tomorrow at] LT", 11372 nextWeek: "dddd [at] LT", 11373 lastDay: "[Yesterday at] LT", 11374 lastWeek: "[Last] dddd [at] LT", 11375 sameElse: "L" 11376 }; 11377 function calendar(key, mom, now2) { 11378 var output = this._calendar[key] || this._calendar["sameElse"]; 11379 return isFunction(output) ? output.call(mom, now2) : output; 11380 } 11381 function zeroFill(number, targetLength, forceSign) { 11382 var absNumber = "" + Math.abs(number), zerosToFill = targetLength - absNumber.length, sign2 = number >= 0; 11383 return (sign2 ? forceSign ? "+" : "" : "-") + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; 11384 } 11385 var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, formatFunctions = {}, formatTokenFunctions = {}; 11386 function addFormatToken(token2, padded, ordinal2, callback) { 11387 var func = callback; 11388 if (typeof callback === "string") { 11389 func = function() { 11390 return this[callback](); 11391 }; 11392 } 11393 if (token2) { 11394 formatTokenFunctions[token2] = func; 11395 } 11396 if (padded) { 11397 formatTokenFunctions[padded[0]] = function() { 11398 return zeroFill(func.apply(this, arguments), padded[1], padded[2]); 11399 }; 11400 } 11401 if (ordinal2) { 11402 formatTokenFunctions[ordinal2] = function() { 11403 return this.localeData().ordinal( 11404 func.apply(this, arguments), 11405 token2 11406 ); 11407 }; 11408 } 11409 } 11410 function removeFormattingTokens(input) { 11411 if (input.match(/\[[\s\S]/)) { 11412 return input.replace(/^\[|\]$/g, ""); 11413 } 11414 return input.replace(/\\/g, ""); 11415 } 11416 function makeFormatFunction(format3) { 11417 var array = format3.match(formattingTokens), i2, length2; 11418 for (i2 = 0, length2 = array.length; i2 < length2; i2++) { 11419 if (formatTokenFunctions[array[i2]]) { 11420 array[i2] = formatTokenFunctions[array[i2]]; 11421 } else { 11422 array[i2] = removeFormattingTokens(array[i2]); 11423 } 11424 } 11425 return function(mom) { 11426 var output = "", i3; 11427 for (i3 = 0; i3 < length2; i3++) { 11428 output += isFunction(array[i3]) ? array[i3].call(mom, format3) : array[i3]; 11429 } 11430 return output; 11431 }; 11432 } 11433 function formatMoment(m, format3) { 11434 if (!m.isValid()) { 11435 return m.localeData().invalidDate(); 11436 } 11437 format3 = expandFormat(format3, m.localeData()); 11438 formatFunctions[format3] = formatFunctions[format3] || makeFormatFunction(format3); 11439 return formatFunctions[format3](m); 11440 } 11441 function expandFormat(format3, locale2) { 11442 var i2 = 5; 11443 function replaceLongDateFormatTokens(input) { 11444 return locale2.longDateFormat(input) || input; 11445 } 11446 localFormattingTokens.lastIndex = 0; 11447 while (i2 >= 0 && localFormattingTokens.test(format3)) { 11448 format3 = format3.replace( 11449 localFormattingTokens, 11450 replaceLongDateFormatTokens 11451 ); 11452 localFormattingTokens.lastIndex = 0; 11453 i2 -= 1; 11454 } 11455 return format3; 11456 } 11457 var defaultLongDateFormat = { 11458 LTS: "h:mm:ss A", 11459 LT: "h:mm A", 11460 L: "MM/DD/YYYY", 11461 LL: "MMMM D, YYYY", 11462 LLL: "MMMM D, YYYY h:mm A", 11463 LLLL: "dddd, MMMM D, YYYY h:mm A" 11464 }; 11465 function longDateFormat(key) { 11466 var format3 = this._longDateFormat[key], formatUpper = this._longDateFormat[key.toUpperCase()]; 11467 if (format3 || !formatUpper) { 11468 return format3; 11469 } 11470 this._longDateFormat[key] = formatUpper.match(formattingTokens).map(function(tok) { 11471 if (tok === "MMMM" || tok === "MM" || tok === "DD" || tok === "dddd") { 11472 return tok.slice(1); 11473 } 11474 return tok; 11475 }).join(""); 11476 return this._longDateFormat[key]; 11477 } 11478 var defaultInvalidDate = "Invalid date"; 11479 function invalidDate() { 11480 return this._invalidDate; 11481 } 11482 var defaultOrdinal = "%d", defaultDayOfMonthOrdinalParse = /\d{1,2}/; 11483 function ordinal(number) { 11484 return this._ordinal.replace("%d", number); 11485 } 11486 var defaultRelativeTime = { 11487 future: "in %s", 11488 past: "%s ago", 11489 s: "a few seconds", 11490 ss: "%d seconds", 11491 m: "a minute", 11492 mm: "%d minutes", 11493 h: "an hour", 11494 hh: "%d hours", 11495 d: "a day", 11496 dd: "%d days", 11497 w: "a week", 11498 ww: "%d weeks", 11499 M: "a month", 11500 MM: "%d months", 11501 y: "a year", 11502 yy: "%d years" 11503 }; 11504 function relativeTime(number, withoutSuffix, string, isFuture) { 11505 var output = this._relativeTime[string]; 11506 return isFunction(output) ? output(number, withoutSuffix, string, isFuture) : output.replace(/%d/i, number); 11507 } 11508 function pastFuture(diff2, output) { 11509 var format3 = this._relativeTime[diff2 > 0 ? "future" : "past"]; 11510 return isFunction(format3) ? format3(output) : format3.replace(/%s/i, output); 11511 } 11512 var aliases = {}; 11513 function addUnitAlias(unit, shorthand) { 11514 var lowerCase = unit.toLowerCase(); 11515 aliases[lowerCase] = aliases[lowerCase + "s"] = aliases[shorthand] = unit; 11516 } 11517 function normalizeUnits(units) { 11518 return typeof units === "string" ? aliases[units] || aliases[units.toLowerCase()] : void 0; 11519 } 11520 function normalizeObjectUnits(inputObject) { 11521 var normalizedInput = {}, normalizedProp, prop; 11522 for (prop in inputObject) { 11523 if (hasOwnProp(inputObject, prop)) { 11524 normalizedProp = normalizeUnits(prop); 11525 if (normalizedProp) { 11526 normalizedInput[normalizedProp] = inputObject[prop]; 11527 } 11528 } 11529 } 11530 return normalizedInput; 11531 } 11532 var priorities = {}; 11533 function addUnitPriority(unit, priority) { 11534 priorities[unit] = priority; 11535 } 11536 function getPrioritizedUnits(unitsObj) { 11537 var units = [], u; 11538 for (u in unitsObj) { 11539 if (hasOwnProp(unitsObj, u)) { 11540 units.push({ unit: u, priority: priorities[u] }); 11541 } 11542 } 11543 units.sort(function(a, b) { 11544 return a.priority - b.priority; 11545 }); 11546 return units; 11547 } 11548 function isLeapYear(year) { 11549 return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0; 11550 } 11551 function absFloor(number) { 11552 if (number < 0) { 11553 return Math.ceil(number) || 0; 11554 } else { 11555 return Math.floor(number); 11556 } 11557 } 11558 function toInt(argumentForCoercion) { 11559 var coercedNumber = +argumentForCoercion, value2 = 0; 11560 if (coercedNumber !== 0 && isFinite(coercedNumber)) { 11561 value2 = absFloor(coercedNumber); 11562 } 11563 return value2; 11564 } 11565 function makeGetSet(unit, keepTime) { 11566 return function(value2) { 11567 if (value2 != null) { 11568 set$1(this, unit, value2); 11569 hooks.updateOffset(this, keepTime); 11570 return this; 11571 } else { 11572 return get(this, unit); 11573 } 11574 }; 11575 } 11576 function get(mom, unit) { 11577 return mom.isValid() ? mom._d["get" + (mom._isUTC ? "UTC" : "") + unit]() : NaN; 11578 } 11579 function set$1(mom, unit, value2) { 11580 if (mom.isValid() && !isNaN(value2)) { 11581 if (unit === "FullYear" && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) { 11582 value2 = toInt(value2); 11583 mom._d["set" + (mom._isUTC ? "UTC" : "") + unit]( 11584 value2, 11585 mom.month(), 11586 daysInMonth(value2, mom.month()) 11587 ); 11588 } else { 11589 mom._d["set" + (mom._isUTC ? "UTC" : "") + unit](value2); 11590 } 11591 } 11592 } 11593 function stringGet(units) { 11594 units = normalizeUnits(units); 11595 if (isFunction(this[units])) { 11596 return this[units](); 11597 } 11598 return this; 11599 } 11600 function stringSet(units, value2) { 11601 if (typeof units === "object") { 11602 units = normalizeObjectUnits(units); 11603 var prioritized = getPrioritizedUnits(units), i2, prioritizedLen = prioritized.length; 11604 for (i2 = 0; i2 < prioritizedLen; i2++) { 11605 this[prioritized[i2].unit](units[prioritized[i2].unit]); 11606 } 11607 } else { 11608 units = normalizeUnits(units); 11609 if (isFunction(this[units])) { 11610 return this[units](value2); 11611 } 11612 } 11613 return this; 11614 } 11615 var match1 = /\d/, match2 = /\d\d/, match3 = /\d{3}/, match4 = /\d{4}/, match6 = /[+-]?\d{6}/, match1to2 = /\d\d?/, match3to4 = /\d\d\d\d?/, match5to6 = /\d\d\d\d\d\d?/, match1to3 = /\d{1,3}/, match1to4 = /\d{1,4}/, match1to6 = /[+-]?\d{1,6}/, matchUnsigned = /\d+/, matchSigned = /[+-]?\d+/, matchOffset = /Z|[+-]\d\d:?\d\d/gi, matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i, regexes; 11616 regexes = {}; 11617 function addRegexToken(token2, regex, strictRegex) { 11618 regexes[token2] = isFunction(regex) ? regex : function(isStrict, localeData2) { 11619 return isStrict && strictRegex ? strictRegex : regex; 11620 }; 11621 } 11622 function getParseRegexForToken(token2, config) { 11623 if (!hasOwnProp(regexes, token2)) { 11624 return new RegExp(unescapeFormat(token2)); 11625 } 11626 return regexes[token2](config._strict, config._locale); 11627 } 11628 function unescapeFormat(s) { 11629 return regexEscape( 11630 s.replace("\\", "").replace( 11631 /\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, 11632 function(matched, p1, p2, p3, p4) { 11633 return p1 || p2 || p3 || p4; 11634 } 11635 ) 11636 ); 11637 } 11638 function regexEscape(s) { 11639 return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"); 11640 } 11641 var tokens = {}; 11642 function addParseToken(token2, callback) { 11643 var i2, func = callback, tokenLen; 11644 if (typeof token2 === "string") { 11645 token2 = [token2]; 11646 } 11647 if (isNumber(callback)) { 11648 func = function(input, array) { 11649 array[callback] = toInt(input); 11650 }; 11651 } 11652 tokenLen = token2.length; 11653 for (i2 = 0; i2 < tokenLen; i2++) { 11654 tokens[token2[i2]] = func; 11655 } 11656 } 11657 function addWeekParseToken(token2, callback) { 11658 addParseToken(token2, function(input, array, config, token3) { 11659 config._w = config._w || {}; 11660 callback(input, config._w, config, token3); 11661 }); 11662 } 11663 function addTimeToArrayFromToken(token2, input, config) { 11664 if (input != null && hasOwnProp(tokens, token2)) { 11665 tokens[token2](input, config._a, config, token2); 11666 } 11667 } 11668 var YEAR = 0, MONTH = 1, DATE = 2, HOUR = 3, MINUTE = 4, SECOND = 5, MILLISECOND = 6, WEEK = 7, WEEKDAY = 8; 11669 function mod(n, x) { 11670 return (n % x + x) % x; 11671 } 11672 var indexOf; 11673 if (Array.prototype.indexOf) { 11674 indexOf = Array.prototype.indexOf; 11675 } else { 11676 indexOf = function(o) { 11677 var i2; 11678 for (i2 = 0; i2 < this.length; ++i2) { 11679 if (this[i2] === o) { 11680 return i2; 11681 } 11682 } 11683 return -1; 11684 }; 11685 } 11686 function daysInMonth(year, month) { 11687 if (isNaN(year) || isNaN(month)) { 11688 return NaN; 11689 } 11690 var modMonth = mod(month, 12); 11691 year += (month - modMonth) / 12; 11692 return modMonth === 1 ? isLeapYear(year) ? 29 : 28 : 31 - modMonth % 7 % 2; 11693 } 11694 addFormatToken("M", ["MM", 2], "Mo", function() { 11695 return this.month() + 1; 11696 }); 11697 addFormatToken("MMM", 0, 0, function(format3) { 11698 return this.localeData().monthsShort(this, format3); 11699 }); 11700 addFormatToken("MMMM", 0, 0, function(format3) { 11701 return this.localeData().months(this, format3); 11702 }); 11703 addUnitAlias("month", "M"); 11704 addUnitPriority("month", 8); 11705 addRegexToken("M", match1to2); 11706 addRegexToken("MM", match1to2, match2); 11707 addRegexToken("MMM", function(isStrict, locale2) { 11708 return locale2.monthsShortRegex(isStrict); 11709 }); 11710 addRegexToken("MMMM", function(isStrict, locale2) { 11711 return locale2.monthsRegex(isStrict); 11712 }); 11713 addParseToken(["M", "MM"], function(input, array) { 11714 array[MONTH] = toInt(input) - 1; 11715 }); 11716 addParseToken(["MMM", "MMMM"], function(input, array, config, token2) { 11717 var month = config._locale.monthsParse(input, token2, config._strict); 11718 if (month != null) { 11719 array[MONTH] = month; 11720 } else { 11721 getParsingFlags(config).invalidMonth = input; 11722 } 11723 }); 11724 var defaultLocaleMonths = "January_February_March_April_May_June_July_August_September_October_November_December".split( 11725 "_" 11726 ), defaultLocaleMonthsShort = "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"), MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, defaultMonthsShortRegex = matchWord, defaultMonthsRegex = matchWord; 11727 function localeMonths(m, format3) { 11728 if (!m) { 11729 return isArray(this._months) ? this._months : this._months["standalone"]; 11730 } 11731 return isArray(this._months) ? this._months[m.month()] : this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format3) ? "format" : "standalone"][m.month()]; 11732 } 11733 function localeMonthsShort(m, format3) { 11734 if (!m) { 11735 return isArray(this._monthsShort) ? this._monthsShort : this._monthsShort["standalone"]; 11736 } 11737 return isArray(this._monthsShort) ? this._monthsShort[m.month()] : this._monthsShort[MONTHS_IN_FORMAT.test(format3) ? "format" : "standalone"][m.month()]; 11738 } 11739 function handleStrictParse(monthName, format3, strict) { 11740 var i2, ii, mom, llc = monthName.toLocaleLowerCase(); 11741 if (!this._monthsParse) { 11742 this._monthsParse = []; 11743 this._longMonthsParse = []; 11744 this._shortMonthsParse = []; 11745 for (i2 = 0; i2 < 12; ++i2) { 11746 mom = createUTC([2e3, i2]); 11747 this._shortMonthsParse[i2] = this.monthsShort( 11748 mom, 11749 "" 11750 ).toLocaleLowerCase(); 11751 this._longMonthsParse[i2] = this.months(mom, "").toLocaleLowerCase(); 11752 } 11753 } 11754 if (strict) { 11755 if (format3 === "MMM") { 11756 ii = indexOf.call(this._shortMonthsParse, llc); 11757 return ii !== -1 ? ii : null; 11758 } else { 11759 ii = indexOf.call(this._longMonthsParse, llc); 11760 return ii !== -1 ? ii : null; 11761 } 11762 } else { 11763 if (format3 === "MMM") { 11764 ii = indexOf.call(this._shortMonthsParse, llc); 11765 if (ii !== -1) { 11766 return ii; 11767 } 11768 ii = indexOf.call(this._longMonthsParse, llc); 11769 return ii !== -1 ? ii : null; 11770 } else { 11771 ii = indexOf.call(this._longMonthsParse, llc); 11772 if (ii !== -1) { 11773 return ii; 11774 } 11775 ii = indexOf.call(this._shortMonthsParse, llc); 11776 return ii !== -1 ? ii : null; 11777 } 11778 } 11779 } 11780 function localeMonthsParse(monthName, format3, strict) { 11781 var i2, mom, regex; 11782 if (this._monthsParseExact) { 11783 return handleStrictParse.call(this, monthName, format3, strict); 11784 } 11785 if (!this._monthsParse) { 11786 this._monthsParse = []; 11787 this._longMonthsParse = []; 11788 this._shortMonthsParse = []; 11789 } 11790 for (i2 = 0; i2 < 12; i2++) { 11791 mom = createUTC([2e3, i2]); 11792 if (strict && !this._longMonthsParse[i2]) { 11793 this._longMonthsParse[i2] = new RegExp( 11794 "^" + this.months(mom, "").replace(".", "") + "$", 11795 "i" 11796 ); 11797 this._shortMonthsParse[i2] = new RegExp( 11798 "^" + this.monthsShort(mom, "").replace(".", "") + "$", 11799 "i" 11800 ); 11801 } 11802 if (!strict && !this._monthsParse[i2]) { 11803 regex = "^" + this.months(mom, "") + "|^" + this.monthsShort(mom, ""); 11804 this._monthsParse[i2] = new RegExp(regex.replace(".", ""), "i"); 11805 } 11806 if (strict && format3 === "MMMM" && this._longMonthsParse[i2].test(monthName)) { 11807 return i2; 11808 } else if (strict && format3 === "MMM" && this._shortMonthsParse[i2].test(monthName)) { 11809 return i2; 11810 } else if (!strict && this._monthsParse[i2].test(monthName)) { 11811 return i2; 11812 } 11813 } 11814 } 11815 function setMonth(mom, value2) { 11816 var dayOfMonth; 11817 if (!mom.isValid()) { 11818 return mom; 11819 } 11820 if (typeof value2 === "string") { 11821 if (/^\d+$/.test(value2)) { 11822 value2 = toInt(value2); 11823 } else { 11824 value2 = mom.localeData().monthsParse(value2); 11825 if (!isNumber(value2)) { 11826 return mom; 11827 } 11828 } 11829 } 11830 dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value2)); 11831 mom._d["set" + (mom._isUTC ? "UTC" : "") + "Month"](value2, dayOfMonth); 11832 return mom; 11833 } 11834 function getSetMonth(value2) { 11835 if (value2 != null) { 11836 setMonth(this, value2); 11837 hooks.updateOffset(this, true); 11838 return this; 11839 } else { 11840 return get(this, "Month"); 11841 } 11842 } 11843 function getDaysInMonth() { 11844 return daysInMonth(this.year(), this.month()); 11845 } 11846 function monthsShortRegex(isStrict) { 11847 if (this._monthsParseExact) { 11848 if (!hasOwnProp(this, "_monthsRegex")) { 11849 computeMonthsParse.call(this); 11850 } 11851 if (isStrict) { 11852 return this._monthsShortStrictRegex; 11853 } else { 11854 return this._monthsShortRegex; 11855 } 11856 } else { 11857 if (!hasOwnProp(this, "_monthsShortRegex")) { 11858 this._monthsShortRegex = defaultMonthsShortRegex; 11859 } 11860 return this._monthsShortStrictRegex && isStrict ? this._monthsShortStrictRegex : this._monthsShortRegex; 11861 } 11862 } 11863 function monthsRegex(isStrict) { 11864 if (this._monthsParseExact) { 11865 if (!hasOwnProp(this, "_monthsRegex")) { 11866 computeMonthsParse.call(this); 11867 } 11868 if (isStrict) { 11869 return this._monthsStrictRegex; 11870 } else { 11871 return this._monthsRegex; 11872 } 11873 } else { 11874 if (!hasOwnProp(this, "_monthsRegex")) { 11875 this._monthsRegex = defaultMonthsRegex; 11876 } 11877 return this._monthsStrictRegex && isStrict ? this._monthsStrictRegex : this._monthsRegex; 11878 } 11879 } 11880 function computeMonthsParse() { 11881 function cmpLenRev(a, b) { 11882 return b.length - a.length; 11883 } 11884 var shortPieces = [], longPieces = [], mixedPieces = [], i2, mom; 11885 for (i2 = 0; i2 < 12; i2++) { 11886 mom = createUTC([2e3, i2]); 11887 shortPieces.push(this.monthsShort(mom, "")); 11888 longPieces.push(this.months(mom, "")); 11889 mixedPieces.push(this.months(mom, "")); 11890 mixedPieces.push(this.monthsShort(mom, "")); 11891 } 11892 shortPieces.sort(cmpLenRev); 11893 longPieces.sort(cmpLenRev); 11894 mixedPieces.sort(cmpLenRev); 11895 for (i2 = 0; i2 < 12; i2++) { 11896 shortPieces[i2] = regexEscape(shortPieces[i2]); 11897 longPieces[i2] = regexEscape(longPieces[i2]); 11898 } 11899 for (i2 = 0; i2 < 24; i2++) { 11900 mixedPieces[i2] = regexEscape(mixedPieces[i2]); 11901 } 11902 this._monthsRegex = new RegExp("^(" + mixedPieces.join("|") + ")", "i"); 11903 this._monthsShortRegex = this._monthsRegex; 11904 this._monthsStrictRegex = new RegExp( 11905 "^(" + longPieces.join("|") + ")", 11906 "i" 11907 ); 11908 this._monthsShortStrictRegex = new RegExp( 11909 "^(" + shortPieces.join("|") + ")", 11910 "i" 11911 ); 11912 } 11913 addFormatToken("Y", 0, 0, function() { 11914 var y = this.year(); 11915 return y <= 9999 ? zeroFill(y, 4) : "+" + y; 11916 }); 11917 addFormatToken(0, ["YY", 2], 0, function() { 11918 return this.year() % 100; 11919 }); 11920 addFormatToken(0, ["YYYY", 4], 0, "year"); 11921 addFormatToken(0, ["YYYYY", 5], 0, "year"); 11922 addFormatToken(0, ["YYYYYY", 6, true], 0, "year"); 11923 addUnitAlias("year", "y"); 11924 addUnitPriority("year", 1); 11925 addRegexToken("Y", matchSigned); 11926 addRegexToken("YY", match1to2, match2); 11927 addRegexToken("YYYY", match1to4, match4); 11928 addRegexToken("YYYYY", match1to6, match6); 11929 addRegexToken("YYYYYY", match1to6, match6); 11930 addParseToken(["YYYYY", "YYYYYY"], YEAR); 11931 addParseToken("YYYY", function(input, array) { 11932 array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); 11933 }); 11934 addParseToken("YY", function(input, array) { 11935 array[YEAR] = hooks.parseTwoDigitYear(input); 11936 }); 11937 addParseToken("Y", function(input, array) { 11938 array[YEAR] = parseInt(input, 10); 11939 }); 11940 function daysInYear(year) { 11941 return isLeapYear(year) ? 366 : 365; 11942 } 11943 hooks.parseTwoDigitYear = function(input) { 11944 return toInt(input) + (toInt(input) > 68 ? 1900 : 2e3); 11945 }; 11946 var getSetYear = makeGetSet("FullYear", true); 11947 function getIsLeapYear() { 11948 return isLeapYear(this.year()); 11949 } 11950 function createDate(y, m, d, h, M, s, ms) { 11951 var date; 11952 if (y < 100 && y >= 0) { 11953 date = new Date(y + 400, m, d, h, M, s, ms); 11954 if (isFinite(date.getFullYear())) { 11955 date.setFullYear(y); 11956 } 11957 } else { 11958 date = new Date(y, m, d, h, M, s, ms); 11959 } 11960 return date; 11961 } 11962 function createUTCDate(y) { 11963 var date, args; 11964 if (y < 100 && y >= 0) { 11965 args = Array.prototype.slice.call(arguments); 11966 args[0] = y + 400; 11967 date = new Date(Date.UTC.apply(null, args)); 11968 if (isFinite(date.getUTCFullYear())) { 11969 date.setUTCFullYear(y); 11970 } 11971 } else { 11972 date = new Date(Date.UTC.apply(null, arguments)); 11973 } 11974 return date; 11975 } 11976 function firstWeekOffset(year, dow, doy) { 11977 var fwd = 7 + dow - doy, fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; 11978 return -fwdlw + fwd - 1; 11979 } 11980 function dayOfYearFromWeeks(year, week, weekday, dow, doy) { 11981 var localWeekday = (7 + weekday - dow) % 7, weekOffset = firstWeekOffset(year, dow, doy), dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, resYear, resDayOfYear; 11982 if (dayOfYear <= 0) { 11983 resYear = year - 1; 11984 resDayOfYear = daysInYear(resYear) + dayOfYear; 11985 } else if (dayOfYear > daysInYear(year)) { 11986 resYear = year + 1; 11987 resDayOfYear = dayOfYear - daysInYear(year); 11988 } else { 11989 resYear = year; 11990 resDayOfYear = dayOfYear; 11991 } 11992 return { 11993 year: resYear, 11994 dayOfYear: resDayOfYear 11995 }; 11996 } 11997 function weekOfYear(mom, dow, doy) { 11998 var weekOffset = firstWeekOffset(mom.year(), dow, doy), week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, resWeek, resYear; 11999 if (week < 1) { 12000 resYear = mom.year() - 1; 12001 resWeek = week + weeksInYear(resYear, dow, doy); 12002 } else if (week > weeksInYear(mom.year(), dow, doy)) { 12003 resWeek = week - weeksInYear(mom.year(), dow, doy); 12004 resYear = mom.year() + 1; 12005 } else { 12006 resYear = mom.year(); 12007 resWeek = week; 12008 } 12009 return { 12010 week: resWeek, 12011 year: resYear 12012 }; 12013 } 12014 function weeksInYear(year, dow, doy) { 12015 var weekOffset = firstWeekOffset(year, dow, doy), weekOffsetNext = firstWeekOffset(year + 1, dow, doy); 12016 return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; 12017 } 12018 addFormatToken("w", ["ww", 2], "wo", "week"); 12019 addFormatToken("W", ["WW", 2], "Wo", "isoWeek"); 12020 addUnitAlias("week", "w"); 12021 addUnitAlias("isoWeek", "W"); 12022 addUnitPriority("week", 5); 12023 addUnitPriority("isoWeek", 5); 12024 addRegexToken("w", match1to2); 12025 addRegexToken("ww", match1to2, match2); 12026 addRegexToken("W", match1to2); 12027 addRegexToken("WW", match1to2, match2); 12028 addWeekParseToken( 12029 ["w", "ww", "W", "WW"], 12030 function(input, week, config, token2) { 12031 week[token2.substr(0, 1)] = toInt(input); 12032 } 12033 ); 12034 function localeWeek(mom) { 12035 return weekOfYear(mom, this._week.dow, this._week.doy).week; 12036 } 12037 var defaultLocaleWeek = { 12038 dow: 0, 12039 doy: 6 12040 }; 12041 function localeFirstDayOfWeek() { 12042 return this._week.dow; 12043 } 12044 function localeFirstDayOfYear() { 12045 return this._week.doy; 12046 } 12047 function getSetWeek(input) { 12048 var week = this.localeData().week(this); 12049 return input == null ? week : this.add((input - week) * 7, "d"); 12050 } 12051 function getSetISOWeek(input) { 12052 var week = weekOfYear(this, 1, 4).week; 12053 return input == null ? week : this.add((input - week) * 7, "d"); 12054 } 12055 addFormatToken("d", 0, "do", "day"); 12056 addFormatToken("dd", 0, 0, function(format3) { 12057 return this.localeData().weekdaysMin(this, format3); 12058 }); 12059 addFormatToken("ddd", 0, 0, function(format3) { 12060 return this.localeData().weekdaysShort(this, format3); 12061 }); 12062 addFormatToken("dddd", 0, 0, function(format3) { 12063 return this.localeData().weekdays(this, format3); 12064 }); 12065 addFormatToken("e", 0, 0, "weekday"); 12066 addFormatToken("E", 0, 0, "isoWeekday"); 12067 addUnitAlias("day", "d"); 12068 addUnitAlias("weekday", "e"); 12069 addUnitAlias("isoWeekday", "E"); 12070 addUnitPriority("day", 11); 12071 addUnitPriority("weekday", 11); 12072 addUnitPriority("isoWeekday", 11); 12073 addRegexToken("d", match1to2); 12074 addRegexToken("e", match1to2); 12075 addRegexToken("E", match1to2); 12076 addRegexToken("dd", function(isStrict, locale2) { 12077 return locale2.weekdaysMinRegex(isStrict); 12078 }); 12079 addRegexToken("ddd", function(isStrict, locale2) { 12080 return locale2.weekdaysShortRegex(isStrict); 12081 }); 12082 addRegexToken("dddd", function(isStrict, locale2) { 12083 return locale2.weekdaysRegex(isStrict); 12084 }); 12085 addWeekParseToken(["dd", "ddd", "dddd"], function(input, week, config, token2) { 12086 var weekday = config._locale.weekdaysParse(input, token2, config._strict); 12087 if (weekday != null) { 12088 week.d = weekday; 12089 } else { 12090 getParsingFlags(config).invalidWeekday = input; 12091 } 12092 }); 12093 addWeekParseToken(["d", "e", "E"], function(input, week, config, token2) { 12094 week[token2] = toInt(input); 12095 }); 12096 function parseWeekday(input, locale2) { 12097 if (typeof input !== "string") { 12098 return input; 12099 } 12100 if (!isNaN(input)) { 12101 return parseInt(input, 10); 12102 } 12103 input = locale2.weekdaysParse(input); 12104 if (typeof input === "number") { 12105 return input; 12106 } 12107 return null; 12108 } 12109 function parseIsoWeekday(input, locale2) { 12110 if (typeof input === "string") { 12111 return locale2.weekdaysParse(input) % 7 || 7; 12112 } 12113 return isNaN(input) ? null : input; 12114 } 12115 function shiftWeekdays(ws, n) { 12116 return ws.slice(n, 7).concat(ws.slice(0, n)); 12117 } 12118 var defaultLocaleWeekdays = "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), defaultLocaleWeekdaysShort = "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"), defaultLocaleWeekdaysMin = "Su_Mo_Tu_We_Th_Fr_Sa".split("_"), defaultWeekdaysRegex = matchWord, defaultWeekdaysShortRegex = matchWord, defaultWeekdaysMinRegex = matchWord; 12119 function localeWeekdays(m, format3) { 12120 var weekdays = isArray(this._weekdays) ? this._weekdays : this._weekdays[m && m !== true && this._weekdays.isFormat.test(format3) ? "format" : "standalone"]; 12121 return m === true ? shiftWeekdays(weekdays, this._week.dow) : m ? weekdays[m.day()] : weekdays; 12122 } 12123 function localeWeekdaysShort(m) { 12124 return m === true ? shiftWeekdays(this._weekdaysShort, this._week.dow) : m ? this._weekdaysShort[m.day()] : this._weekdaysShort; 12125 } 12126 function localeWeekdaysMin(m) { 12127 return m === true ? shiftWeekdays(this._weekdaysMin, this._week.dow) : m ? this._weekdaysMin[m.day()] : this._weekdaysMin; 12128 } 12129 function handleStrictParse$1(weekdayName, format3, strict) { 12130 var i2, ii, mom, llc = weekdayName.toLocaleLowerCase(); 12131 if (!this._weekdaysParse) { 12132 this._weekdaysParse = []; 12133 this._shortWeekdaysParse = []; 12134 this._minWeekdaysParse = []; 12135 for (i2 = 0; i2 < 7; ++i2) { 12136 mom = createUTC([2e3, 1]).day(i2); 12137 this._minWeekdaysParse[i2] = this.weekdaysMin( 12138 mom, 12139 "" 12140 ).toLocaleLowerCase(); 12141 this._shortWeekdaysParse[i2] = this.weekdaysShort( 12142 mom, 12143 "" 12144 ).toLocaleLowerCase(); 12145 this._weekdaysParse[i2] = this.weekdays(mom, "").toLocaleLowerCase(); 12146 } 12147 } 12148 if (strict) { 12149 if (format3 === "dddd") { 12150 ii = indexOf.call(this._weekdaysParse, llc); 12151 return ii !== -1 ? ii : null; 12152 } else if (format3 === "ddd") { 12153 ii = indexOf.call(this._shortWeekdaysParse, llc); 12154 return ii !== -1 ? ii : null; 12155 } else { 12156 ii = indexOf.call(this._minWeekdaysParse, llc); 12157 return ii !== -1 ? ii : null; 12158 } 12159 } else { 12160 if (format3 === "dddd") { 12161 ii = indexOf.call(this._weekdaysParse, llc); 12162 if (ii !== -1) { 12163 return ii; 12164 } 12165 ii = indexOf.call(this._shortWeekdaysParse, llc); 12166 if (ii !== -1) { 12167 return ii; 12168 } 12169 ii = indexOf.call(this._minWeekdaysParse, llc); 12170 return ii !== -1 ? ii : null; 12171 } else if (format3 === "ddd") { 12172 ii = indexOf.call(this._shortWeekdaysParse, llc); 12173 if (ii !== -1) { 12174 return ii; 12175 } 12176 ii = indexOf.call(this._weekdaysParse, llc); 12177 if (ii !== -1) { 12178 return ii; 12179 } 12180 ii = indexOf.call(this._minWeekdaysParse, llc); 12181 return ii !== -1 ? ii : null; 12182 } else { 12183 ii = indexOf.call(this._minWeekdaysParse, llc); 12184 if (ii !== -1) { 12185 return ii; 12186 } 12187 ii = indexOf.call(this._weekdaysParse, llc); 12188 if (ii !== -1) { 12189 return ii; 12190 } 12191 ii = indexOf.call(this._shortWeekdaysParse, llc); 12192 return ii !== -1 ? ii : null; 12193 } 12194 } 12195 } 12196 function localeWeekdaysParse(weekdayName, format3, strict) { 12197 var i2, mom, regex; 12198 if (this._weekdaysParseExact) { 12199 return handleStrictParse$1.call(this, weekdayName, format3, strict); 12200 } 12201 if (!this._weekdaysParse) { 12202 this._weekdaysParse = []; 12203 this._minWeekdaysParse = []; 12204 this._shortWeekdaysParse = []; 12205 this._fullWeekdaysParse = []; 12206 } 12207 for (i2 = 0; i2 < 7; i2++) { 12208 mom = createUTC([2e3, 1]).day(i2); 12209 if (strict && !this._fullWeekdaysParse[i2]) { 12210 this._fullWeekdaysParse[i2] = new RegExp( 12211 "^" + this.weekdays(mom, "").replace(".", "\\.?") + "$", 12212 "i" 12213 ); 12214 this._shortWeekdaysParse[i2] = new RegExp( 12215 "^" + this.weekdaysShort(mom, "").replace(".", "\\.?") + "$", 12216 "i" 12217 ); 12218 this._minWeekdaysParse[i2] = new RegExp( 12219 "^" + this.weekdaysMin(mom, "").replace(".", "\\.?") + "$", 12220 "i" 12221 ); 12222 } 12223 if (!this._weekdaysParse[i2]) { 12224 regex = "^" + this.weekdays(mom, "") + "|^" + this.weekdaysShort(mom, "") + "|^" + this.weekdaysMin(mom, ""); 12225 this._weekdaysParse[i2] = new RegExp(regex.replace(".", ""), "i"); 12226 } 12227 if (strict && format3 === "dddd" && this._fullWeekdaysParse[i2].test(weekdayName)) { 12228 return i2; 12229 } else if (strict && format3 === "ddd" && this._shortWeekdaysParse[i2].test(weekdayName)) { 12230 return i2; 12231 } else if (strict && format3 === "dd" && this._minWeekdaysParse[i2].test(weekdayName)) { 12232 return i2; 12233 } else if (!strict && this._weekdaysParse[i2].test(weekdayName)) { 12234 return i2; 12235 } 12236 } 12237 } 12238 function getSetDayOfWeek(input) { 12239 if (!this.isValid()) { 12240 return input != null ? this : NaN; 12241 } 12242 var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); 12243 if (input != null) { 12244 input = parseWeekday(input, this.localeData()); 12245 return this.add(input - day, "d"); 12246 } else { 12247 return day; 12248 } 12249 } 12250 function getSetLocaleDayOfWeek(input) { 12251 if (!this.isValid()) { 12252 return input != null ? this : NaN; 12253 } 12254 var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; 12255 return input == null ? weekday : this.add(input - weekday, "d"); 12256 } 12257 function getSetISODayOfWeek(input) { 12258 if (!this.isValid()) { 12259 return input != null ? this : NaN; 12260 } 12261 if (input != null) { 12262 var weekday = parseIsoWeekday(input, this.localeData()); 12263 return this.day(this.day() % 7 ? weekday : weekday - 7); 12264 } else { 12265 return this.day() || 7; 12266 } 12267 } 12268 function weekdaysRegex(isStrict) { 12269 if (this._weekdaysParseExact) { 12270 if (!hasOwnProp(this, "_weekdaysRegex")) { 12271 computeWeekdaysParse.call(this); 12272 } 12273 if (isStrict) { 12274 return this._weekdaysStrictRegex; 12275 } else { 12276 return this._weekdaysRegex; 12277 } 12278 } else { 12279 if (!hasOwnProp(this, "_weekdaysRegex")) { 12280 this._weekdaysRegex = defaultWeekdaysRegex; 12281 } 12282 return this._weekdaysStrictRegex && isStrict ? this._weekdaysStrictRegex : this._weekdaysRegex; 12283 } 12284 } 12285 function weekdaysShortRegex(isStrict) { 12286 if (this._weekdaysParseExact) { 12287 if (!hasOwnProp(this, "_weekdaysRegex")) { 12288 computeWeekdaysParse.call(this); 12289 } 12290 if (isStrict) { 12291 return this._weekdaysShortStrictRegex; 12292 } else { 12293 return this._weekdaysShortRegex; 12294 } 12295 } else { 12296 if (!hasOwnProp(this, "_weekdaysShortRegex")) { 12297 this._weekdaysShortRegex = defaultWeekdaysShortRegex; 12298 } 12299 return this._weekdaysShortStrictRegex && isStrict ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex; 12300 } 12301 } 12302 function weekdaysMinRegex(isStrict) { 12303 if (this._weekdaysParseExact) { 12304 if (!hasOwnProp(this, "_weekdaysRegex")) { 12305 computeWeekdaysParse.call(this); 12306 } 12307 if (isStrict) { 12308 return this._weekdaysMinStrictRegex; 12309 } else { 12310 return this._weekdaysMinRegex; 12311 } 12312 } else { 12313 if (!hasOwnProp(this, "_weekdaysMinRegex")) { 12314 this._weekdaysMinRegex = defaultWeekdaysMinRegex; 12315 } 12316 return this._weekdaysMinStrictRegex && isStrict ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex; 12317 } 12318 } 12319 function computeWeekdaysParse() { 12320 function cmpLenRev(a, b) { 12321 return b.length - a.length; 12322 } 12323 var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [], i2, mom, minp, shortp, longp; 12324 for (i2 = 0; i2 < 7; i2++) { 12325 mom = createUTC([2e3, 1]).day(i2); 12326 minp = regexEscape(this.weekdaysMin(mom, "")); 12327 shortp = regexEscape(this.weekdaysShort(mom, "")); 12328 longp = regexEscape(this.weekdays(mom, "")); 12329 minPieces.push(minp); 12330 shortPieces.push(shortp); 12331 longPieces.push(longp); 12332 mixedPieces.push(minp); 12333 mixedPieces.push(shortp); 12334 mixedPieces.push(longp); 12335 } 12336 minPieces.sort(cmpLenRev); 12337 shortPieces.sort(cmpLenRev); 12338 longPieces.sort(cmpLenRev); 12339 mixedPieces.sort(cmpLenRev); 12340 this._weekdaysRegex = new RegExp("^(" + mixedPieces.join("|") + ")", "i"); 12341 this._weekdaysShortRegex = this._weekdaysRegex; 12342 this._weekdaysMinRegex = this._weekdaysRegex; 12343 this._weekdaysStrictRegex = new RegExp( 12344 "^(" + longPieces.join("|") + ")", 12345 "i" 12346 ); 12347 this._weekdaysShortStrictRegex = new RegExp( 12348 "^(" + shortPieces.join("|") + ")", 12349 "i" 12350 ); 12351 this._weekdaysMinStrictRegex = new RegExp( 12352 "^(" + minPieces.join("|") + ")", 12353 "i" 12354 ); 12355 } 12356 function hFormat() { 12357 return this.hours() % 12 || 12; 12358 } 12359 function kFormat() { 12360 return this.hours() || 24; 12361 } 12362 addFormatToken("H", ["HH", 2], 0, "hour"); 12363 addFormatToken("h", ["hh", 2], 0, hFormat); 12364 addFormatToken("k", ["kk", 2], 0, kFormat); 12365 addFormatToken("hmm", 0, 0, function() { 12366 return "" + hFormat.apply(this) + zeroFill(this.minutes(), 2); 12367 }); 12368 addFormatToken("hmmss", 0, 0, function() { 12369 return "" + hFormat.apply(this) + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2); 12370 }); 12371 addFormatToken("Hmm", 0, 0, function() { 12372 return "" + this.hours() + zeroFill(this.minutes(), 2); 12373 }); 12374 addFormatToken("Hmmss", 0, 0, function() { 12375 return "" + this.hours() + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2); 12376 }); 12377 function meridiem(token2, lowercase) { 12378 addFormatToken(token2, 0, 0, function() { 12379 return this.localeData().meridiem( 12380 this.hours(), 12381 this.minutes(), 12382 lowercase 12383 ); 12384 }); 12385 } 12386 meridiem("a", true); 12387 meridiem("A", false); 12388 addUnitAlias("hour", "h"); 12389 addUnitPriority("hour", 13); 12390 function matchMeridiem(isStrict, locale2) { 12391 return locale2._meridiemParse; 12392 } 12393 addRegexToken("a", matchMeridiem); 12394 addRegexToken("A", matchMeridiem); 12395 addRegexToken("H", match1to2); 12396 addRegexToken("h", match1to2); 12397 addRegexToken("k", match1to2); 12398 addRegexToken("HH", match1to2, match2); 12399 addRegexToken("hh", match1to2, match2); 12400 addRegexToken("kk", match1to2, match2); 12401 addRegexToken("hmm", match3to4); 12402 addRegexToken("hmmss", match5to6); 12403 addRegexToken("Hmm", match3to4); 12404 addRegexToken("Hmmss", match5to6); 12405 addParseToken(["H", "HH"], HOUR); 12406 addParseToken(["k", "kk"], function(input, array, config) { 12407 var kInput = toInt(input); 12408 array[HOUR] = kInput === 24 ? 0 : kInput; 12409 }); 12410 addParseToken(["a", "A"], function(input, array, config) { 12411 config._isPm = config._locale.isPM(input); 12412 config._meridiem = input; 12413 }); 12414 addParseToken(["h", "hh"], function(input, array, config) { 12415 array[HOUR] = toInt(input); 12416 getParsingFlags(config).bigHour = true; 12417 }); 12418 addParseToken("hmm", function(input, array, config) { 12419 var pos = input.length - 2; 12420 array[HOUR] = toInt(input.substr(0, pos)); 12421 array[MINUTE] = toInt(input.substr(pos)); 12422 getParsingFlags(config).bigHour = true; 12423 }); 12424 addParseToken("hmmss", function(input, array, config) { 12425 var pos1 = input.length - 4, pos2 = input.length - 2; 12426 array[HOUR] = toInt(input.substr(0, pos1)); 12427 array[MINUTE] = toInt(input.substr(pos1, 2)); 12428 array[SECOND] = toInt(input.substr(pos2)); 12429 getParsingFlags(config).bigHour = true; 12430 }); 12431 addParseToken("Hmm", function(input, array, config) { 12432 var pos = input.length - 2; 12433 array[HOUR] = toInt(input.substr(0, pos)); 12434 array[MINUTE] = toInt(input.substr(pos)); 12435 }); 12436 addParseToken("Hmmss", function(input, array, config) { 12437 var pos1 = input.length - 4, pos2 = input.length - 2; 12438 array[HOUR] = toInt(input.substr(0, pos1)); 12439 array[MINUTE] = toInt(input.substr(pos1, 2)); 12440 array[SECOND] = toInt(input.substr(pos2)); 12441 }); 12442 function localeIsPM(input) { 12443 return (input + "").toLowerCase().charAt(0) === "p"; 12444 } 12445 var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i, getSetHour = makeGetSet("Hours", true); 12446 function localeMeridiem(hours2, minutes2, isLower) { 12447 if (hours2 > 11) { 12448 return isLower ? "pm" : "PM"; 12449 } else { 12450 return isLower ? "am" : "AM"; 12451 } 12452 } 12453 var baseConfig = { 12454 calendar: defaultCalendar, 12455 longDateFormat: defaultLongDateFormat, 12456 invalidDate: defaultInvalidDate, 12457 ordinal: defaultOrdinal, 12458 dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, 12459 relativeTime: defaultRelativeTime, 12460 months: defaultLocaleMonths, 12461 monthsShort: defaultLocaleMonthsShort, 12462 week: defaultLocaleWeek, 12463 weekdays: defaultLocaleWeekdays, 12464 weekdaysMin: defaultLocaleWeekdaysMin, 12465 weekdaysShort: defaultLocaleWeekdaysShort, 12466 meridiemParse: defaultLocaleMeridiemParse 12467 }; 12468 var locales = {}, localeFamilies = {}, globalLocale; 12469 function commonPrefix(arr1, arr2) { 12470 var i2, minl = Math.min(arr1.length, arr2.length); 12471 for (i2 = 0; i2 < minl; i2 += 1) { 12472 if (arr1[i2] !== arr2[i2]) { 12473 return i2; 12474 } 12475 } 12476 return minl; 12477 } 12478 function normalizeLocale(key) { 12479 return key ? key.toLowerCase().replace("_", "-") : key; 12480 } 12481 function chooseLocale(names) { 12482 var i2 = 0, j, next, locale2, split; 12483 while (i2 < names.length) { 12484 split = normalizeLocale(names[i2]).split("-"); 12485 j = split.length; 12486 next = normalizeLocale(names[i2 + 1]); 12487 next = next ? next.split("-") : null; 12488 while (j > 0) { 12489 locale2 = loadLocale(split.slice(0, j).join("-")); 12490 if (locale2) { 12491 return locale2; 12492 } 12493 if (next && next.length >= j && commonPrefix(split, next) >= j - 1) { 12494 break; 12495 } 12496 j--; 12497 } 12498 i2++; 12499 } 12500 return globalLocale; 12501 } 12502 function isLocaleNameSane(name2) { 12503 return name2.match("^[^/\\\\]*$") != null; 12504 } 12505 function loadLocale(name2) { 12506 var oldLocale = null, aliasedRequire; 12507 if (locales[name2] === void 0 && typeof module !== "undefined" && module && module.exports && isLocaleNameSane(name2)) { 12508 try { 12509 oldLocale = globalLocale._abbr; 12510 aliasedRequire = __require; 12511 aliasedRequire("./locale/" + name2); 12512 getSetGlobalLocale(oldLocale); 12513 } catch (e) { 12514 locales[name2] = null; 12515 } 12516 } 12517 return locales[name2]; 12518 } 12519 function getSetGlobalLocale(key, values) { 12520 var data; 12521 if (key) { 12522 if (isUndefined(values)) { 12523 data = getLocale(key); 12524 } else { 12525 data = defineLocale(key, values); 12526 } 12527 if (data) { 12528 globalLocale = data; 12529 } else { 12530 if (typeof console !== "undefined" && console.warn) { 12531 console.warn( 12532 "Locale " + key + " not found. Did you forget to load it?" 12533 ); 12534 } 12535 } 12536 } 12537 return globalLocale._abbr; 12538 } 12539 function defineLocale(name2, config) { 12540 if (config !== null) { 12541 var locale2, parentConfig = baseConfig; 12542 config.abbr = name2; 12543 if (locales[name2] != null) { 12544 deprecateSimple( 12545 "defineLocaleOverride", 12546 "use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info." 12547 ); 12548 parentConfig = locales[name2]._config; 12549 } else if (config.parentLocale != null) { 12550 if (locales[config.parentLocale] != null) { 12551 parentConfig = locales[config.parentLocale]._config; 12552 } else { 12553 locale2 = loadLocale(config.parentLocale); 12554 if (locale2 != null) { 12555 parentConfig = locale2._config; 12556 } else { 12557 if (!localeFamilies[config.parentLocale]) { 12558 localeFamilies[config.parentLocale] = []; 12559 } 12560 localeFamilies[config.parentLocale].push({ 12561 name: name2, 12562 config 12563 }); 12564 return null; 12565 } 12566 } 12567 } 12568 locales[name2] = new Locale(mergeConfigs(parentConfig, config)); 12569 if (localeFamilies[name2]) { 12570 localeFamilies[name2].forEach(function(x) { 12571 defineLocale(x.name, x.config); 12572 }); 12573 } 12574 getSetGlobalLocale(name2); 12575 return locales[name2]; 12576 } else { 12577 delete locales[name2]; 12578 return null; 12579 } 12580 } 12581 function updateLocale(name2, config) { 12582 if (config != null) { 12583 var locale2, tmpLocale, parentConfig = baseConfig; 12584 if (locales[name2] != null && locales[name2].parentLocale != null) { 12585 locales[name2].set(mergeConfigs(locales[name2]._config, config)); 12586 } else { 12587 tmpLocale = loadLocale(name2); 12588 if (tmpLocale != null) { 12589 parentConfig = tmpLocale._config; 12590 } 12591 config = mergeConfigs(parentConfig, config); 12592 if (tmpLocale == null) { 12593 config.abbr = name2; 12594 } 12595 locale2 = new Locale(config); 12596 locale2.parentLocale = locales[name2]; 12597 locales[name2] = locale2; 12598 } 12599 getSetGlobalLocale(name2); 12600 } else { 12601 if (locales[name2] != null) { 12602 if (locales[name2].parentLocale != null) { 12603 locales[name2] = locales[name2].parentLocale; 12604 if (name2 === getSetGlobalLocale()) { 12605 getSetGlobalLocale(name2); 12606 } 12607 } else if (locales[name2] != null) { 12608 delete locales[name2]; 12609 } 12610 } 12611 } 12612 return locales[name2]; 12613 } 12614 function getLocale(key) { 12615 var locale2; 12616 if (key && key._locale && key._locale._abbr) { 12617 key = key._locale._abbr; 12618 } 12619 if (!key) { 12620 return globalLocale; 12621 } 12622 if (!isArray(key)) { 12623 locale2 = loadLocale(key); 12624 if (locale2) { 12625 return locale2; 12626 } 12627 key = [key]; 12628 } 12629 return chooseLocale(key); 12630 } 12631 function listLocales() { 12632 return keys(locales); 12633 } 12634 function checkOverflow(m) { 12635 var overflow, a = m._a; 12636 if (a && getParsingFlags(m).overflow === -2) { 12637 overflow = a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : a[HOUR] < 0 || a[HOUR] > 24 || a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0) ? HOUR : a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : -1; 12638 if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { 12639 overflow = DATE; 12640 } 12641 if (getParsingFlags(m)._overflowWeeks && overflow === -1) { 12642 overflow = WEEK; 12643 } 12644 if (getParsingFlags(m)._overflowWeekday && overflow === -1) { 12645 overflow = WEEKDAY; 12646 } 12647 getParsingFlags(m).overflow = overflow; 12648 } 12649 return m; 12650 } 12651 var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, tzRegex = /Z|[+-]\d\d(?::?\d\d)?/, isoDates = [ 12652 ["YYYYYY-MM-DD", /[+-]\d{6}-\d\d-\d\d/], 12653 ["YYYY-MM-DD", /\d{4}-\d\d-\d\d/], 12654 ["GGGG-[W]WW-E", /\d{4}-W\d\d-\d/], 12655 ["GGGG-[W]WW", /\d{4}-W\d\d/, false], 12656 ["YYYY-DDD", /\d{4}-\d{3}/], 12657 ["YYYY-MM", /\d{4}-\d\d/, false], 12658 ["YYYYYYMMDD", /[+-]\d{10}/], 12659 ["YYYYMMDD", /\d{8}/], 12660 ["GGGG[W]WWE", /\d{4}W\d{3}/], 12661 ["GGGG[W]WW", /\d{4}W\d{2}/, false], 12662 ["YYYYDDD", /\d{7}/], 12663 ["YYYYMM", /\d{6}/, false], 12664 ["YYYY", /\d{4}/, false] 12665 ], isoTimes = [ 12666 ["HH:mm:ss.SSSS", /\d\d:\d\d:\d\d\.\d+/], 12667 ["HH:mm:ss,SSSS", /\d\d:\d\d:\d\d,\d+/], 12668 ["HH:mm:ss", /\d\d:\d\d:\d\d/], 12669 ["HH:mm", /\d\d:\d\d/], 12670 ["HHmmss.SSSS", /\d\d\d\d\d\d\.\d+/], 12671 ["HHmmss,SSSS", /\d\d\d\d\d\d,\d+/], 12672 ["HHmmss", /\d\d\d\d\d\d/], 12673 ["HHmm", /\d\d\d\d/], 12674 ["HH", /\d\d/] 12675 ], aspNetJsonRegex = /^\/?Date\((-?\d+)/i, rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, obsOffsets = { 12676 UT: 0, 12677 GMT: 0, 12678 EDT: -4 * 60, 12679 EST: -5 * 60, 12680 CDT: -5 * 60, 12681 CST: -6 * 60, 12682 MDT: -6 * 60, 12683 MST: -7 * 60, 12684 PDT: -7 * 60, 12685 PST: -8 * 60 12686 }; 12687 function configFromISO(config) { 12688 var i2, l, string = config._i, match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), allowTime, dateFormat, timeFormat, tzFormat, isoDatesLen = isoDates.length, isoTimesLen = isoTimes.length; 12689 if (match) { 12690 getParsingFlags(config).iso = true; 12691 for (i2 = 0, l = isoDatesLen; i2 < l; i2++) { 12692 if (isoDates[i2][1].exec(match[1])) { 12693 dateFormat = isoDates[i2][0]; 12694 allowTime = isoDates[i2][2] !== false; 12695 break; 12696 } 12697 } 12698 if (dateFormat == null) { 12699 config._isValid = false; 12700 return; 12701 } 12702 if (match[3]) { 12703 for (i2 = 0, l = isoTimesLen; i2 < l; i2++) { 12704 if (isoTimes[i2][1].exec(match[3])) { 12705 timeFormat = (match[2] || " ") + isoTimes[i2][0]; 12706 break; 12707 } 12708 } 12709 if (timeFormat == null) { 12710 config._isValid = false; 12711 return; 12712 } 12713 } 12714 if (!allowTime && timeFormat != null) { 12715 config._isValid = false; 12716 return; 12717 } 12718 if (match[4]) { 12719 if (tzRegex.exec(match[4])) { 12720 tzFormat = "Z"; 12721 } else { 12722 config._isValid = false; 12723 return; 12724 } 12725 } 12726 config._f = dateFormat + (timeFormat || "") + (tzFormat || ""); 12727 configFromStringAndFormat(config); 12728 } else { 12729 config._isValid = false; 12730 } 12731 } 12732 function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) { 12733 var result = [ 12734 untruncateYear(yearStr), 12735 defaultLocaleMonthsShort.indexOf(monthStr), 12736 parseInt(dayStr, 10), 12737 parseInt(hourStr, 10), 12738 parseInt(minuteStr, 10) 12739 ]; 12740 if (secondStr) { 12741 result.push(parseInt(secondStr, 10)); 12742 } 12743 return result; 12744 } 12745 function untruncateYear(yearStr) { 12746 var year = parseInt(yearStr, 10); 12747 if (year <= 49) { 12748 return 2e3 + year; 12749 } else if (year <= 999) { 12750 return 1900 + year; 12751 } 12752 return year; 12753 } 12754 function preprocessRFC2822(s) { 12755 return s.replace(/\([^()]*\)|[\n\t]/g, " ").replace(/(\s\s+)/g, " ").replace(/^\s\s*/, "").replace(/\s\s*$/, ""); 12756 } 12757 function checkWeekday(weekdayStr, parsedInput, config) { 12758 if (weekdayStr) { 12759 var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), weekdayActual = new Date( 12760 parsedInput[0], 12761 parsedInput[1], 12762 parsedInput[2] 12763 ).getDay(); 12764 if (weekdayProvided !== weekdayActual) { 12765 getParsingFlags(config).weekdayMismatch = true; 12766 config._isValid = false; 12767 return false; 12768 } 12769 } 12770 return true; 12771 } 12772 function calculateOffset(obsOffset, militaryOffset, numOffset) { 12773 if (obsOffset) { 12774 return obsOffsets[obsOffset]; 12775 } else if (militaryOffset) { 12776 return 0; 12777 } else { 12778 var hm = parseInt(numOffset, 10), m = hm % 100, h = (hm - m) / 100; 12779 return h * 60 + m; 12780 } 12781 } 12782 function configFromRFC2822(config) { 12783 var match = rfc2822.exec(preprocessRFC2822(config._i)), parsedArray; 12784 if (match) { 12785 parsedArray = extractFromRFC2822Strings( 12786 match[4], 12787 match[3], 12788 match[2], 12789 match[5], 12790 match[6], 12791 match[7] 12792 ); 12793 if (!checkWeekday(match[1], parsedArray, config)) { 12794 return; 12795 } 12796 config._a = parsedArray; 12797 config._tzm = calculateOffset(match[8], match[9], match[10]); 12798 config._d = createUTCDate.apply(null, config._a); 12799 config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); 12800 getParsingFlags(config).rfc2822 = true; 12801 } else { 12802 config._isValid = false; 12803 } 12804 } 12805 function configFromString(config) { 12806 var matched = aspNetJsonRegex.exec(config._i); 12807 if (matched !== null) { 12808 config._d = new Date(+matched[1]); 12809 return; 12810 } 12811 configFromISO(config); 12812 if (config._isValid === false) { 12813 delete config._isValid; 12814 } else { 12815 return; 12816 } 12817 configFromRFC2822(config); 12818 if (config._isValid === false) { 12819 delete config._isValid; 12820 } else { 12821 return; 12822 } 12823 if (config._strict) { 12824 config._isValid = false; 12825 } else { 12826 hooks.createFromInputFallback(config); 12827 } 12828 } 12829 hooks.createFromInputFallback = deprecate( 12830 "value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.", 12831 function(config) { 12832 config._d = new Date(config._i + (config._useUTC ? " UTC" : "")); 12833 } 12834 ); 12835 function defaults(a, b, c) { 12836 if (a != null) { 12837 return a; 12838 } 12839 if (b != null) { 12840 return b; 12841 } 12842 return c; 12843 } 12844 function currentDateArray(config) { 12845 var nowValue = new Date(hooks.now()); 12846 if (config._useUTC) { 12847 return [ 12848 nowValue.getUTCFullYear(), 12849 nowValue.getUTCMonth(), 12850 nowValue.getUTCDate() 12851 ]; 12852 } 12853 return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; 12854 } 12855 function configFromArray(config) { 12856 var i2, date, input = [], currentDate, expectedWeekday, yearToUse; 12857 if (config._d) { 12858 return; 12859 } 12860 currentDate = currentDateArray(config); 12861 if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { 12862 dayOfYearFromWeekInfo(config); 12863 } 12864 if (config._dayOfYear != null) { 12865 yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); 12866 if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) { 12867 getParsingFlags(config)._overflowDayOfYear = true; 12868 } 12869 date = createUTCDate(yearToUse, 0, config._dayOfYear); 12870 config._a[MONTH] = date.getUTCMonth(); 12871 config._a[DATE] = date.getUTCDate(); 12872 } 12873 for (i2 = 0; i2 < 3 && config._a[i2] == null; ++i2) { 12874 config._a[i2] = input[i2] = currentDate[i2]; 12875 } 12876 for (; i2 < 7; i2++) { 12877 config._a[i2] = input[i2] = config._a[i2] == null ? i2 === 2 ? 1 : 0 : config._a[i2]; 12878 } 12879 if (config._a[HOUR] === 24 && config._a[MINUTE] === 0 && config._a[SECOND] === 0 && config._a[MILLISECOND] === 0) { 12880 config._nextDay = true; 12881 config._a[HOUR] = 0; 12882 } 12883 config._d = (config._useUTC ? createUTCDate : createDate).apply( 12884 null, 12885 input 12886 ); 12887 expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay(); 12888 if (config._tzm != null) { 12889 config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); 12890 } 12891 if (config._nextDay) { 12892 config._a[HOUR] = 24; 12893 } 12894 if (config._w && typeof config._w.d !== "undefined" && config._w.d !== expectedWeekday) { 12895 getParsingFlags(config).weekdayMismatch = true; 12896 } 12897 } 12898 function dayOfYearFromWeekInfo(config) { 12899 var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek; 12900 w = config._w; 12901 if (w.GG != null || w.W != null || w.E != null) { 12902 dow = 1; 12903 doy = 4; 12904 weekYear = defaults( 12905 w.GG, 12906 config._a[YEAR], 12907 weekOfYear(createLocal(), 1, 4).year 12908 ); 12909 week = defaults(w.W, 1); 12910 weekday = defaults(w.E, 1); 12911 if (weekday < 1 || weekday > 7) { 12912 weekdayOverflow = true; 12913 } 12914 } else { 12915 dow = config._locale._week.dow; 12916 doy = config._locale._week.doy; 12917 curWeek = weekOfYear(createLocal(), dow, doy); 12918 weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); 12919 week = defaults(w.w, curWeek.week); 12920 if (w.d != null) { 12921 weekday = w.d; 12922 if (weekday < 0 || weekday > 6) { 12923 weekdayOverflow = true; 12924 } 12925 } else if (w.e != null) { 12926 weekday = w.e + dow; 12927 if (w.e < 0 || w.e > 6) { 12928 weekdayOverflow = true; 12929 } 12930 } else { 12931 weekday = dow; 12932 } 12933 } 12934 if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { 12935 getParsingFlags(config)._overflowWeeks = true; 12936 } else if (weekdayOverflow != null) { 12937 getParsingFlags(config)._overflowWeekday = true; 12938 } else { 12939 temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); 12940 config._a[YEAR] = temp.year; 12941 config._dayOfYear = temp.dayOfYear; 12942 } 12943 } 12944 hooks.ISO_8601 = function() { 12945 }; 12946 hooks.RFC_2822 = function() { 12947 }; 12948 function configFromStringAndFormat(config) { 12949 if (config._f === hooks.ISO_8601) { 12950 configFromISO(config); 12951 return; 12952 } 12953 if (config._f === hooks.RFC_2822) { 12954 configFromRFC2822(config); 12955 return; 12956 } 12957 config._a = []; 12958 getParsingFlags(config).empty = true; 12959 var string = "" + config._i, i2, parsedInput, tokens2, token2, skipped, stringLength = string.length, totalParsedInputLength = 0, era, tokenLen; 12960 tokens2 = expandFormat(config._f, config._locale).match(formattingTokens) || []; 12961 tokenLen = tokens2.length; 12962 for (i2 = 0; i2 < tokenLen; i2++) { 12963 token2 = tokens2[i2]; 12964 parsedInput = (string.match(getParseRegexForToken(token2, config)) || [])[0]; 12965 if (parsedInput) { 12966 skipped = string.substr(0, string.indexOf(parsedInput)); 12967 if (skipped.length > 0) { 12968 getParsingFlags(config).unusedInput.push(skipped); 12969 } 12970 string = string.slice( 12971 string.indexOf(parsedInput) + parsedInput.length 12972 ); 12973 totalParsedInputLength += parsedInput.length; 12974 } 12975 if (formatTokenFunctions[token2]) { 12976 if (parsedInput) { 12977 getParsingFlags(config).empty = false; 12978 } else { 12979 getParsingFlags(config).unusedTokens.push(token2); 12980 } 12981 addTimeToArrayFromToken(token2, parsedInput, config); 12982 } else if (config._strict && !parsedInput) { 12983 getParsingFlags(config).unusedTokens.push(token2); 12984 } 12985 } 12986 getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; 12987 if (string.length > 0) { 12988 getParsingFlags(config).unusedInput.push(string); 12989 } 12990 if (config._a[HOUR] <= 12 && getParsingFlags(config).bigHour === true && config._a[HOUR] > 0) { 12991 getParsingFlags(config).bigHour = void 0; 12992 } 12993 getParsingFlags(config).parsedDateParts = config._a.slice(0); 12994 getParsingFlags(config).meridiem = config._meridiem; 12995 config._a[HOUR] = meridiemFixWrap( 12996 config._locale, 12997 config._a[HOUR], 12998 config._meridiem 12999 ); 13000 era = getParsingFlags(config).era; 13001 if (era !== null) { 13002 config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]); 13003 } 13004 configFromArray(config); 13005 checkOverflow(config); 13006 } 13007 function meridiemFixWrap(locale2, hour, meridiem2) { 13008 var isPm; 13009 if (meridiem2 == null) { 13010 return hour; 13011 } 13012 if (locale2.meridiemHour != null) { 13013 return locale2.meridiemHour(hour, meridiem2); 13014 } else if (locale2.isPM != null) { 13015 isPm = locale2.isPM(meridiem2); 13016 if (isPm && hour < 12) { 13017 hour += 12; 13018 } 13019 if (!isPm && hour === 12) { 13020 hour = 0; 13021 } 13022 return hour; 13023 } else { 13024 return hour; 13025 } 13026 } 13027 function configFromStringAndArray(config) { 13028 var tempConfig, bestMoment, scoreToBeat, i2, currentScore, validFormatFound, bestFormatIsValid = false, configfLen = config._f.length; 13029 if (configfLen === 0) { 13030 getParsingFlags(config).invalidFormat = true; 13031 config._d = new Date(NaN); 13032 return; 13033 } 13034 for (i2 = 0; i2 < configfLen; i2++) { 13035 currentScore = 0; 13036 validFormatFound = false; 13037 tempConfig = copyConfig({}, config); 13038 if (config._useUTC != null) { 13039 tempConfig._useUTC = config._useUTC; 13040 } 13041 tempConfig._f = config._f[i2]; 13042 configFromStringAndFormat(tempConfig); 13043 if (isValid(tempConfig)) { 13044 validFormatFound = true; 13045 } 13046 currentScore += getParsingFlags(tempConfig).charsLeftOver; 13047 currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; 13048 getParsingFlags(tempConfig).score = currentScore; 13049 if (!bestFormatIsValid) { 13050 if (scoreToBeat == null || currentScore < scoreToBeat || validFormatFound) { 13051 scoreToBeat = currentScore; 13052 bestMoment = tempConfig; 13053 if (validFormatFound) { 13054 bestFormatIsValid = true; 13055 } 13056 } 13057 } else { 13058 if (currentScore < scoreToBeat) { 13059 scoreToBeat = currentScore; 13060 bestMoment = tempConfig; 13061 } 13062 } 13063 } 13064 extend(config, bestMoment || tempConfig); 13065 } 13066 function configFromObject(config) { 13067 if (config._d) { 13068 return; 13069 } 13070 var i2 = normalizeObjectUnits(config._i), dayOrDate = i2.day === void 0 ? i2.date : i2.day; 13071 config._a = map2( 13072 [i2.year, i2.month, dayOrDate, i2.hour, i2.minute, i2.second, i2.millisecond], 13073 function(obj) { 13074 return obj && parseInt(obj, 10); 13075 } 13076 ); 13077 configFromArray(config); 13078 } 13079 function createFromConfig(config) { 13080 var res = new Moment(checkOverflow(prepareConfig(config))); 13081 if (res._nextDay) { 13082 res.add(1, "d"); 13083 res._nextDay = void 0; 13084 } 13085 return res; 13086 } 13087 function prepareConfig(config) { 13088 var input = config._i, format3 = config._f; 13089 config._locale = config._locale || getLocale(config._l); 13090 if (input === null || format3 === void 0 && input === "") { 13091 return createInvalid({ nullInput: true }); 13092 } 13093 if (typeof input === "string") { 13094 config._i = input = config._locale.preparse(input); 13095 } 13096 if (isMoment(input)) { 13097 return new Moment(checkOverflow(input)); 13098 } else if (isDate(input)) { 13099 config._d = input; 13100 } else if (isArray(format3)) { 13101 configFromStringAndArray(config); 13102 } else if (format3) { 13103 configFromStringAndFormat(config); 13104 } else { 13105 configFromInput(config); 13106 } 13107 if (!isValid(config)) { 13108 config._d = null; 13109 } 13110 return config; 13111 } 13112 function configFromInput(config) { 13113 var input = config._i; 13114 if (isUndefined(input)) { 13115 config._d = new Date(hooks.now()); 13116 } else if (isDate(input)) { 13117 config._d = new Date(input.valueOf()); 13118 } else if (typeof input === "string") { 13119 configFromString(config); 13120 } else if (isArray(input)) { 13121 config._a = map2(input.slice(0), function(obj) { 13122 return parseInt(obj, 10); 13123 }); 13124 configFromArray(config); 13125 } else if (isObject2(input)) { 13126 configFromObject(config); 13127 } else if (isNumber(input)) { 13128 config._d = new Date(input); 13129 } else { 13130 hooks.createFromInputFallback(config); 13131 } 13132 } 13133 function createLocalOrUTC(input, format3, locale2, strict, isUTC) { 13134 var c = {}; 13135 if (format3 === true || format3 === false) { 13136 strict = format3; 13137 format3 = void 0; 13138 } 13139 if (locale2 === true || locale2 === false) { 13140 strict = locale2; 13141 locale2 = void 0; 13142 } 13143 if (isObject2(input) && isObjectEmpty(input) || isArray(input) && input.length === 0) { 13144 input = void 0; 13145 } 13146 c._isAMomentObject = true; 13147 c._useUTC = c._isUTC = isUTC; 13148 c._l = locale2; 13149 c._i = input; 13150 c._f = format3; 13151 c._strict = strict; 13152 return createFromConfig(c); 13153 } 13154 function createLocal(input, format3, locale2, strict) { 13155 return createLocalOrUTC(input, format3, locale2, strict, false); 13156 } 13157 var prototypeMin = deprecate( 13158 "moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/", 13159 function() { 13160 var other = createLocal.apply(null, arguments); 13161 if (this.isValid() && other.isValid()) { 13162 return other < this ? this : other; 13163 } else { 13164 return createInvalid(); 13165 } 13166 } 13167 ), prototypeMax = deprecate( 13168 "moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/", 13169 function() { 13170 var other = createLocal.apply(null, arguments); 13171 if (this.isValid() && other.isValid()) { 13172 return other > this ? this : other; 13173 } else { 13174 return createInvalid(); 13175 } 13176 } 13177 ); 13178 function pickBy(fn, moments) { 13179 var res, i2; 13180 if (moments.length === 1 && isArray(moments[0])) { 13181 moments = moments[0]; 13182 } 13183 if (!moments.length) { 13184 return createLocal(); 13185 } 13186 res = moments[0]; 13187 for (i2 = 1; i2 < moments.length; ++i2) { 13188 if (!moments[i2].isValid() || moments[i2][fn](res)) { 13189 res = moments[i2]; 13190 } 13191 } 13192 return res; 13193 } 13194 function min() { 13195 var args = [].slice.call(arguments, 0); 13196 return pickBy("isBefore", args); 13197 } 13198 function max() { 13199 var args = [].slice.call(arguments, 0); 13200 return pickBy("isAfter", args); 13201 } 13202 var now = function() { 13203 return Date.now ? Date.now() : +new Date(); 13204 }; 13205 var ordering = [ 13206 "year", 13207 "quarter", 13208 "month", 13209 "week", 13210 "day", 13211 "hour", 13212 "minute", 13213 "second", 13214 "millisecond" 13215 ]; 13216 function isDurationValid(m) { 13217 var key, unitHasDecimal = false, i2, orderLen = ordering.length; 13218 for (key in m) { 13219 if (hasOwnProp(m, key) && !(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) { 13220 return false; 13221 } 13222 } 13223 for (i2 = 0; i2 < orderLen; ++i2) { 13224 if (m[ordering[i2]]) { 13225 if (unitHasDecimal) { 13226 return false; 13227 } 13228 if (parseFloat(m[ordering[i2]]) !== toInt(m[ordering[i2]])) { 13229 unitHasDecimal = true; 13230 } 13231 } 13232 } 13233 return true; 13234 } 13235 function isValid$1() { 13236 return this._isValid; 13237 } 13238 function createInvalid$1() { 13239 return createDuration(NaN); 13240 } 13241 function Duration(duration) { 13242 var normalizedInput = normalizeObjectUnits(duration), years2 = normalizedInput.year || 0, quarters = normalizedInput.quarter || 0, months2 = normalizedInput.month || 0, weeks2 = normalizedInput.week || normalizedInput.isoWeek || 0, days2 = normalizedInput.day || 0, hours2 = normalizedInput.hour || 0, minutes2 = normalizedInput.minute || 0, seconds2 = normalizedInput.second || 0, milliseconds2 = normalizedInput.millisecond || 0; 13243 this._isValid = isDurationValid(normalizedInput); 13244 this._milliseconds = +milliseconds2 + seconds2 * 1e3 + minutes2 * 6e4 + hours2 * 1e3 * 60 * 60; 13245 this._days = +days2 + weeks2 * 7; 13246 this._months = +months2 + quarters * 3 + years2 * 12; 13247 this._data = {}; 13248 this._locale = getLocale(); 13249 this._bubble(); 13250 } 13251 function isDuration(obj) { 13252 return obj instanceof Duration; 13253 } 13254 function absRound(number) { 13255 if (number < 0) { 13256 return Math.round(-1 * number) * -1; 13257 } else { 13258 return Math.round(number); 13259 } 13260 } 13261 function compareArrays(array1, array2, dontConvert) { 13262 var len = Math.min(array1.length, array2.length), lengthDiff = Math.abs(array1.length - array2.length), diffs = 0, i2; 13263 for (i2 = 0; i2 < len; i2++) { 13264 if (dontConvert && array1[i2] !== array2[i2] || !dontConvert && toInt(array1[i2]) !== toInt(array2[i2])) { 13265 diffs++; 13266 } 13267 } 13268 return diffs + lengthDiff; 13269 } 13270 function offset(token2, separator) { 13271 addFormatToken(token2, 0, 0, function() { 13272 var offset2 = this.utcOffset(), sign2 = "+"; 13273 if (offset2 < 0) { 13274 offset2 = -offset2; 13275 sign2 = "-"; 13276 } 13277 return sign2 + zeroFill(~~(offset2 / 60), 2) + separator + zeroFill(~~offset2 % 60, 2); 13278 }); 13279 } 13280 offset("Z", ":"); 13281 offset("ZZ", ""); 13282 addRegexToken("Z", matchShortOffset); 13283 addRegexToken("ZZ", matchShortOffset); 13284 addParseToken(["Z", "ZZ"], function(input, array, config) { 13285 config._useUTC = true; 13286 config._tzm = offsetFromString(matchShortOffset, input); 13287 }); 13288 var chunkOffset = /([\+\-]|\d\d)/gi; 13289 function offsetFromString(matcher, string) { 13290 var matches = (string || "").match(matcher), chunk, parts2, minutes2; 13291 if (matches === null) { 13292 return null; 13293 } 13294 chunk = matches[matches.length - 1] || []; 13295 parts2 = (chunk + "").match(chunkOffset) || ["-", 0, 0]; 13296 minutes2 = +(parts2[1] * 60) + toInt(parts2[2]); 13297 return minutes2 === 0 ? 0 : parts2[0] === "+" ? minutes2 : -minutes2; 13298 } 13299 function cloneWithOffset(input, model) { 13300 var res, diff2; 13301 if (model._isUTC) { 13302 res = model.clone(); 13303 diff2 = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); 13304 res._d.setTime(res._d.valueOf() + diff2); 13305 hooks.updateOffset(res, false); 13306 return res; 13307 } else { 13308 return createLocal(input).local(); 13309 } 13310 } 13311 function getDateOffset(m) { 13312 return -Math.round(m._d.getTimezoneOffset()); 13313 } 13314 hooks.updateOffset = function() { 13315 }; 13316 function getSetOffset(input, keepLocalTime, keepMinutes) { 13317 var offset2 = this._offset || 0, localAdjust; 13318 if (!this.isValid()) { 13319 return input != null ? this : NaN; 13320 } 13321 if (input != null) { 13322 if (typeof input === "string") { 13323 input = offsetFromString(matchShortOffset, input); 13324 if (input === null) { 13325 return this; 13326 } 13327 } else if (Math.abs(input) < 16 && !keepMinutes) { 13328 input = input * 60; 13329 } 13330 if (!this._isUTC && keepLocalTime) { 13331 localAdjust = getDateOffset(this); 13332 } 13333 this._offset = input; 13334 this._isUTC = true; 13335 if (localAdjust != null) { 13336 this.add(localAdjust, "m"); 13337 } 13338 if (offset2 !== input) { 13339 if (!keepLocalTime || this._changeInProgress) { 13340 addSubtract( 13341 this, 13342 createDuration(input - offset2, "m"), 13343 1, 13344 false 13345 ); 13346 } else if (!this._changeInProgress) { 13347 this._changeInProgress = true; 13348 hooks.updateOffset(this, true); 13349 this._changeInProgress = null; 13350 } 13351 } 13352 return this; 13353 } else { 13354 return this._isUTC ? offset2 : getDateOffset(this); 13355 } 13356 } 13357 function getSetZone(input, keepLocalTime) { 13358 if (input != null) { 13359 if (typeof input !== "string") { 13360 input = -input; 13361 } 13362 this.utcOffset(input, keepLocalTime); 13363 return this; 13364 } else { 13365 return -this.utcOffset(); 13366 } 13367 } 13368 function setOffsetToUTC(keepLocalTime) { 13369 return this.utcOffset(0, keepLocalTime); 13370 } 13371 function setOffsetToLocal(keepLocalTime) { 13372 if (this._isUTC) { 13373 this.utcOffset(0, keepLocalTime); 13374 this._isUTC = false; 13375 if (keepLocalTime) { 13376 this.subtract(getDateOffset(this), "m"); 13377 } 13378 } 13379 return this; 13380 } 13381 function setOffsetToParsedOffset() { 13382 if (this._tzm != null) { 13383 this.utcOffset(this._tzm, false, true); 13384 } else if (typeof this._i === "string") { 13385 var tZone = offsetFromString(matchOffset, this._i); 13386 if (tZone != null) { 13387 this.utcOffset(tZone); 13388 } else { 13389 this.utcOffset(0, true); 13390 } 13391 } 13392 return this; 13393 } 13394 function hasAlignedHourOffset(input) { 13395 if (!this.isValid()) { 13396 return false; 13397 } 13398 input = input ? createLocal(input).utcOffset() : 0; 13399 return (this.utcOffset() - input) % 60 === 0; 13400 } 13401 function isDaylightSavingTime() { 13402 return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset(); 13403 } 13404 function isDaylightSavingTimeShifted() { 13405 if (!isUndefined(this._isDSTShifted)) { 13406 return this._isDSTShifted; 13407 } 13408 var c = {}, other; 13409 copyConfig(c, this); 13410 c = prepareConfig(c); 13411 if (c._a) { 13412 other = c._isUTC ? createUTC(c._a) : createLocal(c._a); 13413 this._isDSTShifted = this.isValid() && compareArrays(c._a, other.toArray()) > 0; 13414 } else { 13415 this._isDSTShifted = false; 13416 } 13417 return this._isDSTShifted; 13418 } 13419 function isLocal() { 13420 return this.isValid() ? !this._isUTC : false; 13421 } 13422 function isUtcOffset() { 13423 return this.isValid() ? this._isUTC : false; 13424 } 13425 function isUtc() { 13426 return this.isValid() ? this._isUTC && this._offset === 0 : false; 13427 } 13428 var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; 13429 function createDuration(input, key) { 13430 var duration = input, match = null, sign2, ret, diffRes; 13431 if (isDuration(input)) { 13432 duration = { 13433 ms: input._milliseconds, 13434 d: input._days, 13435 M: input._months 13436 }; 13437 } else if (isNumber(input) || !isNaN(+input)) { 13438 duration = {}; 13439 if (key) { 13440 duration[key] = +input; 13441 } else { 13442 duration.milliseconds = +input; 13443 } 13444 } else if (match = aspNetRegex.exec(input)) { 13445 sign2 = match[1] === "-" ? -1 : 1; 13446 duration = { 13447 y: 0, 13448 d: toInt(match[DATE]) * sign2, 13449 h: toInt(match[HOUR]) * sign2, 13450 m: toInt(match[MINUTE]) * sign2, 13451 s: toInt(match[SECOND]) * sign2, 13452 ms: toInt(absRound(match[MILLISECOND] * 1e3)) * sign2 13453 }; 13454 } else if (match = isoRegex.exec(input)) { 13455 sign2 = match[1] === "-" ? -1 : 1; 13456 duration = { 13457 y: parseIso(match[2], sign2), 13458 M: parseIso(match[3], sign2), 13459 w: parseIso(match[4], sign2), 13460 d: parseIso(match[5], sign2), 13461 h: parseIso(match[6], sign2), 13462 m: parseIso(match[7], sign2), 13463 s: parseIso(match[8], sign2) 13464 }; 13465 } else if (duration == null) { 13466 duration = {}; 13467 } else if (typeof duration === "object" && ("from" in duration || "to" in duration)) { 13468 diffRes = momentsDifference( 13469 createLocal(duration.from), 13470 createLocal(duration.to) 13471 ); 13472 duration = {}; 13473 duration.ms = diffRes.milliseconds; 13474 duration.M = diffRes.months; 13475 } 13476 ret = new Duration(duration); 13477 if (isDuration(input) && hasOwnProp(input, "_locale")) { 13478 ret._locale = input._locale; 13479 } 13480 if (isDuration(input) && hasOwnProp(input, "_isValid")) { 13481 ret._isValid = input._isValid; 13482 } 13483 return ret; 13484 } 13485 createDuration.fn = Duration.prototype; 13486 createDuration.invalid = createInvalid$1; 13487 function parseIso(inp, sign2) { 13488 var res = inp && parseFloat(inp.replace(",", ".")); 13489 return (isNaN(res) ? 0 : res) * sign2; 13490 } 13491 function positiveMomentsDifference(base, other) { 13492 var res = {}; 13493 res.months = other.month() - base.month() + (other.year() - base.year()) * 12; 13494 if (base.clone().add(res.months, "M").isAfter(other)) { 13495 --res.months; 13496 } 13497 res.milliseconds = +other - +base.clone().add(res.months, "M"); 13498 return res; 13499 } 13500 function momentsDifference(base, other) { 13501 var res; 13502 if (!(base.isValid() && other.isValid())) { 13503 return { milliseconds: 0, months: 0 }; 13504 } 13505 other = cloneWithOffset(other, base); 13506 if (base.isBefore(other)) { 13507 res = positiveMomentsDifference(base, other); 13508 } else { 13509 res = positiveMomentsDifference(other, base); 13510 res.milliseconds = -res.milliseconds; 13511 res.months = -res.months; 13512 } 13513 return res; 13514 } 13515 function createAdder(direction, name2) { 13516 return function(val, period) { 13517 var dur, tmp; 13518 if (period !== null && !isNaN(+period)) { 13519 deprecateSimple( 13520 name2, 13521 "moment()." + name2 + "(period, number) is deprecated. Please use moment()." + name2 + "(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info." 13522 ); 13523 tmp = val; 13524 val = period; 13525 period = tmp; 13526 } 13527 dur = createDuration(val, period); 13528 addSubtract(this, dur, direction); 13529 return this; 13530 }; 13531 } 13532 function addSubtract(mom, duration, isAdding, updateOffset) { 13533 var milliseconds2 = duration._milliseconds, days2 = absRound(duration._days), months2 = absRound(duration._months); 13534 if (!mom.isValid()) { 13535 return; 13536 } 13537 updateOffset = updateOffset == null ? true : updateOffset; 13538 if (months2) { 13539 setMonth(mom, get(mom, "Month") + months2 * isAdding); 13540 } 13541 if (days2) { 13542 set$1(mom, "Date", get(mom, "Date") + days2 * isAdding); 13543 } 13544 if (milliseconds2) { 13545 mom._d.setTime(mom._d.valueOf() + milliseconds2 * isAdding); 13546 } 13547 if (updateOffset) { 13548 hooks.updateOffset(mom, days2 || months2); 13549 } 13550 } 13551 var add = createAdder(1, "add"), subtract = createAdder(-1, "subtract"); 13552 function isString(input) { 13553 return typeof input === "string" || input instanceof String; 13554 } 13555 function isMomentInput(input) { 13556 return isMoment(input) || isDate(input) || isString(input) || isNumber(input) || isNumberOrStringArray(input) || isMomentInputObject(input) || input === null || input === void 0; 13557 } 13558 function isMomentInputObject(input) { 13559 var objectTest = isObject2(input) && !isObjectEmpty(input), propertyTest = false, properties = [ 13560 "years", 13561 "year", 13562 "y", 13563 "months", 13564 "month", 13565 "M", 13566 "days", 13567 "day", 13568 "d", 13569 "dates", 13570 "date", 13571 "D", 13572 "hours", 13573 "hour", 13574 "h", 13575 "minutes", 13576 "minute", 13577 "m", 13578 "seconds", 13579 "second", 13580 "s", 13581 "milliseconds", 13582 "millisecond", 13583 "ms" 13584 ], i2, property, propertyLen = properties.length; 13585 for (i2 = 0; i2 < propertyLen; i2 += 1) { 13586 property = properties[i2]; 13587 propertyTest = propertyTest || hasOwnProp(input, property); 13588 } 13589 return objectTest && propertyTest; 13590 } 13591 function isNumberOrStringArray(input) { 13592 var arrayTest = isArray(input), dataTypeTest = false; 13593 if (arrayTest) { 13594 dataTypeTest = input.filter(function(item) { 13595 return !isNumber(item) && isString(input); 13596 }).length === 0; 13597 } 13598 return arrayTest && dataTypeTest; 13599 } 13600 function isCalendarSpec(input) { 13601 var objectTest = isObject2(input) && !isObjectEmpty(input), propertyTest = false, properties = [ 13602 "sameDay", 13603 "nextDay", 13604 "lastDay", 13605 "nextWeek", 13606 "lastWeek", 13607 "sameElse" 13608 ], i2, property; 13609 for (i2 = 0; i2 < properties.length; i2 += 1) { 13610 property = properties[i2]; 13611 propertyTest = propertyTest || hasOwnProp(input, property); 13612 } 13613 return objectTest && propertyTest; 13614 } 13615 function getCalendarFormat(myMoment, now2) { 13616 var diff2 = myMoment.diff(now2, "days", true); 13617 return diff2 < -6 ? "sameElse" : diff2 < -1 ? "lastWeek" : diff2 < 0 ? "lastDay" : diff2 < 1 ? "sameDay" : diff2 < 2 ? "nextDay" : diff2 < 7 ? "nextWeek" : "sameElse"; 13618 } 13619 function calendar$1(time, formats) { 13620 if (arguments.length === 1) { 13621 if (!arguments[0]) { 13622 time = void 0; 13623 formats = void 0; 13624 } else if (isMomentInput(arguments[0])) { 13625 time = arguments[0]; 13626 formats = void 0; 13627 } else if (isCalendarSpec(arguments[0])) { 13628 formats = arguments[0]; 13629 time = void 0; 13630 } 13631 } 13632 var now2 = time || createLocal(), sod = cloneWithOffset(now2, this).startOf("day"), format3 = hooks.calendarFormat(this, sod) || "sameElse", output = formats && (isFunction(formats[format3]) ? formats[format3].call(this, now2) : formats[format3]); 13633 return this.format( 13634 output || this.localeData().calendar(format3, this, createLocal(now2)) 13635 ); 13636 } 13637 function clone() { 13638 return new Moment(this); 13639 } 13640 function isAfter(input, units) { 13641 var localInput = isMoment(input) ? input : createLocal(input); 13642 if (!(this.isValid() && localInput.isValid())) { 13643 return false; 13644 } 13645 units = normalizeUnits(units) || "millisecond"; 13646 if (units === "millisecond") { 13647 return this.valueOf() > localInput.valueOf(); 13648 } else { 13649 return localInput.valueOf() < this.clone().startOf(units).valueOf(); 13650 } 13651 } 13652 function isBefore(input, units) { 13653 var localInput = isMoment(input) ? input : createLocal(input); 13654 if (!(this.isValid() && localInput.isValid())) { 13655 return false; 13656 } 13657 units = normalizeUnits(units) || "millisecond"; 13658 if (units === "millisecond") { 13659 return this.valueOf() < localInput.valueOf(); 13660 } else { 13661 return this.clone().endOf(units).valueOf() < localInput.valueOf(); 13662 } 13663 } 13664 function isBetween(from2, to2, units, inclusivity) { 13665 var localFrom = isMoment(from2) ? from2 : createLocal(from2), localTo = isMoment(to2) ? to2 : createLocal(to2); 13666 if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) { 13667 return false; 13668 } 13669 inclusivity = inclusivity || "()"; 13670 return (inclusivity[0] === "(" ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) && (inclusivity[1] === ")" ? this.isBefore(localTo, units) : !this.isAfter(localTo, units)); 13671 } 13672 function isSame(input, units) { 13673 var localInput = isMoment(input) ? input : createLocal(input), inputMs; 13674 if (!(this.isValid() && localInput.isValid())) { 13675 return false; 13676 } 13677 units = normalizeUnits(units) || "millisecond"; 13678 if (units === "millisecond") { 13679 return this.valueOf() === localInput.valueOf(); 13680 } else { 13681 inputMs = localInput.valueOf(); 13682 return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf(); 13683 } 13684 } 13685 function isSameOrAfter(input, units) { 13686 return this.isSame(input, units) || this.isAfter(input, units); 13687 } 13688 function isSameOrBefore(input, units) { 13689 return this.isSame(input, units) || this.isBefore(input, units); 13690 } 13691 function diff(input, units, asFloat) { 13692 var that, zoneDelta, output; 13693 if (!this.isValid()) { 13694 return NaN; 13695 } 13696 that = cloneWithOffset(input, this); 13697 if (!that.isValid()) { 13698 return NaN; 13699 } 13700 zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; 13701 units = normalizeUnits(units); 13702 switch (units) { 13703 case "year": 13704 output = monthDiff(this, that) / 12; 13705 break; 13706 case "month": 13707 output = monthDiff(this, that); 13708 break; 13709 case "quarter": 13710 output = monthDiff(this, that) / 3; 13711 break; 13712 case "second": 13713 output = (this - that) / 1e3; 13714 break; 13715 case "minute": 13716 output = (this - that) / 6e4; 13717 break; 13718 case "hour": 13719 output = (this - that) / 36e5; 13720 break; 13721 case "day": 13722 output = (this - that - zoneDelta) / 864e5; 13723 break; 13724 case "week": 13725 output = (this - that - zoneDelta) / 6048e5; 13726 break; 13727 default: 13728 output = this - that; 13729 } 13730 return asFloat ? output : absFloor(output); 13731 } 13732 function monthDiff(a, b) { 13733 if (a.date() < b.date()) { 13734 return -monthDiff(b, a); 13735 } 13736 var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()), anchor = a.clone().add(wholeMonthDiff, "months"), anchor2, adjust; 13737 if (b - anchor < 0) { 13738 anchor2 = a.clone().add(wholeMonthDiff - 1, "months"); 13739 adjust = (b - anchor) / (anchor - anchor2); 13740 } else { 13741 anchor2 = a.clone().add(wholeMonthDiff + 1, "months"); 13742 adjust = (b - anchor) / (anchor2 - anchor); 13743 } 13744 return -(wholeMonthDiff + adjust) || 0; 13745 } 13746 hooks.defaultFormat = "YYYY-MM-DDTHH:mm:ssZ"; 13747 hooks.defaultFormatUtc = "YYYY-MM-DDTHH:mm:ss[Z]"; 13748 function toString2() { 13749 return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ"); 13750 } 13751 function toISOString(keepOffset) { 13752 if (!this.isValid()) { 13753 return null; 13754 } 13755 var utc = keepOffset !== true, m = utc ? this.clone().utc() : this; 13756 if (m.year() < 0 || m.year() > 9999) { 13757 return formatMoment( 13758 m, 13759 utc ? "YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]" : "YYYYYY-MM-DD[T]HH:mm:ss.SSSZ" 13760 ); 13761 } 13762 if (isFunction(Date.prototype.toISOString)) { 13763 if (utc) { 13764 return this.toDate().toISOString(); 13765 } else { 13766 return new Date(this.valueOf() + this.utcOffset() * 60 * 1e3).toISOString().replace("Z", formatMoment(m, "Z")); 13767 } 13768 } 13769 return formatMoment( 13770 m, 13771 utc ? "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]" : "YYYY-MM-DD[T]HH:mm:ss.SSSZ" 13772 ); 13773 } 13774 function inspect() { 13775 if (!this.isValid()) { 13776 return "moment.invalid(/* " + this._i + " */)"; 13777 } 13778 var func = "moment", zone = "", prefix, year, datetime, suffix; 13779 if (!this.isLocal()) { 13780 func = this.utcOffset() === 0 ? "moment.utc" : "moment.parseZone"; 13781 zone = "Z"; 13782 } 13783 prefix = "[" + func + '("]'; 13784 year = 0 <= this.year() && this.year() <= 9999 ? "YYYY" : "YYYYYY"; 13785 datetime = "-MM-DD[T]HH:mm:ss.SSS"; 13786 suffix = zone + '[")]'; 13787 return this.format(prefix + year + datetime + suffix); 13788 } 13789 function format2(inputString) { 13790 if (!inputString) { 13791 inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat; 13792 } 13793 var output = formatMoment(this, inputString); 13794 return this.localeData().postformat(output); 13795 } 13796 function from(time, withoutSuffix) { 13797 if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) { 13798 return createDuration({ to: this, from: time }).locale(this.locale()).humanize(!withoutSuffix); 13799 } else { 13800 return this.localeData().invalidDate(); 13801 } 13802 } 13803 function fromNow(withoutSuffix) { 13804 return this.from(createLocal(), withoutSuffix); 13805 } 13806 function to(time, withoutSuffix) { 13807 if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) { 13808 return createDuration({ from: this, to: time }).locale(this.locale()).humanize(!withoutSuffix); 13809 } else { 13810 return this.localeData().invalidDate(); 13811 } 13812 } 13813 function toNow(withoutSuffix) { 13814 return this.to(createLocal(), withoutSuffix); 13815 } 13816 function locale(key) { 13817 var newLocaleData; 13818 if (key === void 0) { 13819 return this._locale._abbr; 13820 } else { 13821 newLocaleData = getLocale(key); 13822 if (newLocaleData != null) { 13823 this._locale = newLocaleData; 13824 } 13825 return this; 13826 } 13827 } 13828 var lang = deprecate( 13829 "moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.", 13830 function(key) { 13831 if (key === void 0) { 13832 return this.localeData(); 13833 } else { 13834 return this.locale(key); 13835 } 13836 } 13837 ); 13838 function localeData() { 13839 return this._locale; 13840 } 13841 var MS_PER_SECOND = 1e3, MS_PER_MINUTE = 60 * MS_PER_SECOND, MS_PER_HOUR = 60 * MS_PER_MINUTE, MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; 13842 function mod$1(dividend, divisor) { 13843 return (dividend % divisor + divisor) % divisor; 13844 } 13845 function localStartOfDate(y, m, d) { 13846 if (y < 100 && y >= 0) { 13847 return new Date(y + 400, m, d) - MS_PER_400_YEARS; 13848 } else { 13849 return new Date(y, m, d).valueOf(); 13850 } 13851 } 13852 function utcStartOfDate(y, m, d) { 13853 if (y < 100 && y >= 0) { 13854 return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS; 13855 } else { 13856 return Date.UTC(y, m, d); 13857 } 13858 } 13859 function startOf(units) { 13860 var time, startOfDate; 13861 units = normalizeUnits(units); 13862 if (units === void 0 || units === "millisecond" || !this.isValid()) { 13863 return this; 13864 } 13865 startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; 13866 switch (units) { 13867 case "year": 13868 time = startOfDate(this.year(), 0, 1); 13869 break; 13870 case "quarter": 13871 time = startOfDate( 13872 this.year(), 13873 this.month() - this.month() % 3, 13874 1 13875 ); 13876 break; 13877 case "month": 13878 time = startOfDate(this.year(), this.month(), 1); 13879 break; 13880 case "week": 13881 time = startOfDate( 13882 this.year(), 13883 this.month(), 13884 this.date() - this.weekday() 13885 ); 13886 break; 13887 case "isoWeek": 13888 time = startOfDate( 13889 this.year(), 13890 this.month(), 13891 this.date() - (this.isoWeekday() - 1) 13892 ); 13893 break; 13894 case "day": 13895 case "date": 13896 time = startOfDate(this.year(), this.month(), this.date()); 13897 break; 13898 case "hour": 13899 time = this._d.valueOf(); 13900 time -= mod$1( 13901 time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), 13902 MS_PER_HOUR 13903 ); 13904 break; 13905 case "minute": 13906 time = this._d.valueOf(); 13907 time -= mod$1(time, MS_PER_MINUTE); 13908 break; 13909 case "second": 13910 time = this._d.valueOf(); 13911 time -= mod$1(time, MS_PER_SECOND); 13912 break; 13913 } 13914 this._d.setTime(time); 13915 hooks.updateOffset(this, true); 13916 return this; 13917 } 13918 function endOf(units) { 13919 var time, startOfDate; 13920 units = normalizeUnits(units); 13921 if (units === void 0 || units === "millisecond" || !this.isValid()) { 13922 return this; 13923 } 13924 startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; 13925 switch (units) { 13926 case "year": 13927 time = startOfDate(this.year() + 1, 0, 1) - 1; 13928 break; 13929 case "quarter": 13930 time = startOfDate( 13931 this.year(), 13932 this.month() - this.month() % 3 + 3, 13933 1 13934 ) - 1; 13935 break; 13936 case "month": 13937 time = startOfDate(this.year(), this.month() + 1, 1) - 1; 13938 break; 13939 case "week": 13940 time = startOfDate( 13941 this.year(), 13942 this.month(), 13943 this.date() - this.weekday() + 7 13944 ) - 1; 13945 break; 13946 case "isoWeek": 13947 time = startOfDate( 13948 this.year(), 13949 this.month(), 13950 this.date() - (this.isoWeekday() - 1) + 7 13951 ) - 1; 13952 break; 13953 case "day": 13954 case "date": 13955 time = startOfDate(this.year(), this.month(), this.date() + 1) - 1; 13956 break; 13957 case "hour": 13958 time = this._d.valueOf(); 13959 time += MS_PER_HOUR - mod$1( 13960 time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), 13961 MS_PER_HOUR 13962 ) - 1; 13963 break; 13964 case "minute": 13965 time = this._d.valueOf(); 13966 time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1; 13967 break; 13968 case "second": 13969 time = this._d.valueOf(); 13970 time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1; 13971 break; 13972 } 13973 this._d.setTime(time); 13974 hooks.updateOffset(this, true); 13975 return this; 13976 } 13977 function valueOf() { 13978 return this._d.valueOf() - (this._offset || 0) * 6e4; 13979 } 13980 function unix() { 13981 return Math.floor(this.valueOf() / 1e3); 13982 } 13983 function toDate() { 13984 return new Date(this.valueOf()); 13985 } 13986 function toArray2() { 13987 var m = this; 13988 return [ 13989 m.year(), 13990 m.month(), 13991 m.date(), 13992 m.hour(), 13993 m.minute(), 13994 m.second(), 13995 m.millisecond() 13996 ]; 13997 } 13998 function toObject() { 13999 var m = this; 14000 return { 14001 years: m.year(), 14002 months: m.month(), 14003 date: m.date(), 14004 hours: m.hours(), 14005 minutes: m.minutes(), 14006 seconds: m.seconds(), 14007 milliseconds: m.milliseconds() 14008 }; 14009 } 14010 function toJSON() { 14011 return this.isValid() ? this.toISOString() : null; 14012 } 14013 function isValid$2() { 14014 return isValid(this); 14015 } 14016 function parsingFlags() { 14017 return extend({}, getParsingFlags(this)); 14018 } 14019 function invalidAt() { 14020 return getParsingFlags(this).overflow; 14021 } 14022 function creationData() { 14023 return { 14024 input: this._i, 14025 format: this._f, 14026 locale: this._locale, 14027 isUTC: this._isUTC, 14028 strict: this._strict 14029 }; 14030 } 14031 addFormatToken("N", 0, 0, "eraAbbr"); 14032 addFormatToken("NN", 0, 0, "eraAbbr"); 14033 addFormatToken("NNN", 0, 0, "eraAbbr"); 14034 addFormatToken("NNNN", 0, 0, "eraName"); 14035 addFormatToken("NNNNN", 0, 0, "eraNarrow"); 14036 addFormatToken("y", ["y", 1], "yo", "eraYear"); 14037 addFormatToken("y", ["yy", 2], 0, "eraYear"); 14038 addFormatToken("y", ["yyy", 3], 0, "eraYear"); 14039 addFormatToken("y", ["yyyy", 4], 0, "eraYear"); 14040 addRegexToken("N", matchEraAbbr); 14041 addRegexToken("NN", matchEraAbbr); 14042 addRegexToken("NNN", matchEraAbbr); 14043 addRegexToken("NNNN", matchEraName); 14044 addRegexToken("NNNNN", matchEraNarrow); 14045 addParseToken( 14046 ["N", "NN", "NNN", "NNNN", "NNNNN"], 14047 function(input, array, config, token2) { 14048 var era = config._locale.erasParse(input, token2, config._strict); 14049 if (era) { 14050 getParsingFlags(config).era = era; 14051 } else { 14052 getParsingFlags(config).invalidEra = input; 14053 } 14054 } 14055 ); 14056 addRegexToken("y", matchUnsigned); 14057 addRegexToken("yy", matchUnsigned); 14058 addRegexToken("yyy", matchUnsigned); 14059 addRegexToken("yyyy", matchUnsigned); 14060 addRegexToken("yo", matchEraYearOrdinal); 14061 addParseToken(["y", "yy", "yyy", "yyyy"], YEAR); 14062 addParseToken(["yo"], function(input, array, config, token2) { 14063 var match; 14064 if (config._locale._eraYearOrdinalRegex) { 14065 match = input.match(config._locale._eraYearOrdinalRegex); 14066 } 14067 if (config._locale.eraYearOrdinalParse) { 14068 array[YEAR] = config._locale.eraYearOrdinalParse(input, match); 14069 } else { 14070 array[YEAR] = parseInt(input, 10); 14071 } 14072 }); 14073 function localeEras(m, format3) { 14074 var i2, l, date, eras = this._eras || getLocale("en")._eras; 14075 for (i2 = 0, l = eras.length; i2 < l; ++i2) { 14076 switch (typeof eras[i2].since) { 14077 case "string": 14078 date = hooks(eras[i2].since).startOf("day"); 14079 eras[i2].since = date.valueOf(); 14080 break; 14081 } 14082 switch (typeof eras[i2].until) { 14083 case "undefined": 14084 eras[i2].until = Infinity; 14085 break; 14086 case "string": 14087 date = hooks(eras[i2].until).startOf("day").valueOf(); 14088 eras[i2].until = date.valueOf(); 14089 break; 14090 } 14091 } 14092 return eras; 14093 } 14094 function localeErasParse(eraName, format3, strict) { 14095 var i2, l, eras = this.eras(), name2, abbr, narrow; 14096 eraName = eraName.toUpperCase(); 14097 for (i2 = 0, l = eras.length; i2 < l; ++i2) { 14098 name2 = eras[i2].name.toUpperCase(); 14099 abbr = eras[i2].abbr.toUpperCase(); 14100 narrow = eras[i2].narrow.toUpperCase(); 14101 if (strict) { 14102 switch (format3) { 14103 case "N": 14104 case "NN": 14105 case "NNN": 14106 if (abbr === eraName) { 14107 return eras[i2]; 14108 } 14109 break; 14110 case "NNNN": 14111 if (name2 === eraName) { 14112 return eras[i2]; 14113 } 14114 break; 14115 case "NNNNN": 14116 if (narrow === eraName) { 14117 return eras[i2]; 14118 } 14119 break; 14120 } 14121 } else if ([name2, abbr, narrow].indexOf(eraName) >= 0) { 14122 return eras[i2]; 14123 } 14124 } 14125 } 14126 function localeErasConvertYear(era, year) { 14127 var dir = era.since <= era.until ? 1 : -1; 14128 if (year === void 0) { 14129 return hooks(era.since).year(); 14130 } else { 14131 return hooks(era.since).year() + (year - era.offset) * dir; 14132 } 14133 } 14134 function getEraName() { 14135 var i2, l, val, eras = this.localeData().eras(); 14136 for (i2 = 0, l = eras.length; i2 < l; ++i2) { 14137 val = this.clone().startOf("day").valueOf(); 14138 if (eras[i2].since <= val && val <= eras[i2].until) { 14139 return eras[i2].name; 14140 } 14141 if (eras[i2].until <= val && val <= eras[i2].since) { 14142 return eras[i2].name; 14143 } 14144 } 14145 return ""; 14146 } 14147 function getEraNarrow() { 14148 var i2, l, val, eras = this.localeData().eras(); 14149 for (i2 = 0, l = eras.length; i2 < l; ++i2) { 14150 val = this.clone().startOf("day").valueOf(); 14151 if (eras[i2].since <= val && val <= eras[i2].until) { 14152 return eras[i2].narrow; 14153 } 14154 if (eras[i2].until <= val && val <= eras[i2].since) { 14155 return eras[i2].narrow; 14156 } 14157 } 14158 return ""; 14159 } 14160 function getEraAbbr() { 14161 var i2, l, val, eras = this.localeData().eras(); 14162 for (i2 = 0, l = eras.length; i2 < l; ++i2) { 14163 val = this.clone().startOf("day").valueOf(); 14164 if (eras[i2].since <= val && val <= eras[i2].until) { 14165 return eras[i2].abbr; 14166 } 14167 if (eras[i2].until <= val && val <= eras[i2].since) { 14168 return eras[i2].abbr; 14169 } 14170 } 14171 return ""; 14172 } 14173 function getEraYear() { 14174 var i2, l, dir, val, eras = this.localeData().eras(); 14175 for (i2 = 0, l = eras.length; i2 < l; ++i2) { 14176 dir = eras[i2].since <= eras[i2].until ? 1 : -1; 14177 val = this.clone().startOf("day").valueOf(); 14178 if (eras[i2].since <= val && val <= eras[i2].until || eras[i2].until <= val && val <= eras[i2].since) { 14179 return (this.year() - hooks(eras[i2].since).year()) * dir + eras[i2].offset; 14180 } 14181 } 14182 return this.year(); 14183 } 14184 function erasNameRegex(isStrict) { 14185 if (!hasOwnProp(this, "_erasNameRegex")) { 14186 computeErasParse.call(this); 14187 } 14188 return isStrict ? this._erasNameRegex : this._erasRegex; 14189 } 14190 function erasAbbrRegex(isStrict) { 14191 if (!hasOwnProp(this, "_erasAbbrRegex")) { 14192 computeErasParse.call(this); 14193 } 14194 return isStrict ? this._erasAbbrRegex : this._erasRegex; 14195 } 14196 function erasNarrowRegex(isStrict) { 14197 if (!hasOwnProp(this, "_erasNarrowRegex")) { 14198 computeErasParse.call(this); 14199 } 14200 return isStrict ? this._erasNarrowRegex : this._erasRegex; 14201 } 14202 function matchEraAbbr(isStrict, locale2) { 14203 return locale2.erasAbbrRegex(isStrict); 14204 } 14205 function matchEraName(isStrict, locale2) { 14206 return locale2.erasNameRegex(isStrict); 14207 } 14208 function matchEraNarrow(isStrict, locale2) { 14209 return locale2.erasNarrowRegex(isStrict); 14210 } 14211 function matchEraYearOrdinal(isStrict, locale2) { 14212 return locale2._eraYearOrdinalRegex || matchUnsigned; 14213 } 14214 function computeErasParse() { 14215 var abbrPieces = [], namePieces = [], narrowPieces = [], mixedPieces = [], i2, l, eras = this.eras(); 14216 for (i2 = 0, l = eras.length; i2 < l; ++i2) { 14217 namePieces.push(regexEscape(eras[i2].name)); 14218 abbrPieces.push(regexEscape(eras[i2].abbr)); 14219 narrowPieces.push(regexEscape(eras[i2].narrow)); 14220 mixedPieces.push(regexEscape(eras[i2].name)); 14221 mixedPieces.push(regexEscape(eras[i2].abbr)); 14222 mixedPieces.push(regexEscape(eras[i2].narrow)); 14223 } 14224 this._erasRegex = new RegExp("^(" + mixedPieces.join("|") + ")", "i"); 14225 this._erasNameRegex = new RegExp("^(" + namePieces.join("|") + ")", "i"); 14226 this._erasAbbrRegex = new RegExp("^(" + abbrPieces.join("|") + ")", "i"); 14227 this._erasNarrowRegex = new RegExp( 14228 "^(" + narrowPieces.join("|") + ")", 14229 "i" 14230 ); 14231 } 14232 addFormatToken(0, ["gg", 2], 0, function() { 14233 return this.weekYear() % 100; 14234 }); 14235 addFormatToken(0, ["GG", 2], 0, function() { 14236 return this.isoWeekYear() % 100; 14237 }); 14238 function addWeekYearFormatToken(token2, getter) { 14239 addFormatToken(0, [token2, token2.length], 0, getter); 14240 } 14241 addWeekYearFormatToken("gggg", "weekYear"); 14242 addWeekYearFormatToken("ggggg", "weekYear"); 14243 addWeekYearFormatToken("GGGG", "isoWeekYear"); 14244 addWeekYearFormatToken("GGGGG", "isoWeekYear"); 14245 addUnitAlias("weekYear", "gg"); 14246 addUnitAlias("isoWeekYear", "GG"); 14247 addUnitPriority("weekYear", 1); 14248 addUnitPriority("isoWeekYear", 1); 14249 addRegexToken("G", matchSigned); 14250 addRegexToken("g", matchSigned); 14251 addRegexToken("GG", match1to2, match2); 14252 addRegexToken("gg", match1to2, match2); 14253 addRegexToken("GGGG", match1to4, match4); 14254 addRegexToken("gggg", match1to4, match4); 14255 addRegexToken("GGGGG", match1to6, match6); 14256 addRegexToken("ggggg", match1to6, match6); 14257 addWeekParseToken( 14258 ["gggg", "ggggg", "GGGG", "GGGGG"], 14259 function(input, week, config, token2) { 14260 week[token2.substr(0, 2)] = toInt(input); 14261 } 14262 ); 14263 addWeekParseToken(["gg", "GG"], function(input, week, config, token2) { 14264 week[token2] = hooks.parseTwoDigitYear(input); 14265 }); 14266 function getSetWeekYear(input) { 14267 return getSetWeekYearHelper.call( 14268 this, 14269 input, 14270 this.week(), 14271 this.weekday(), 14272 this.localeData()._week.dow, 14273 this.localeData()._week.doy 14274 ); 14275 } 14276 function getSetISOWeekYear(input) { 14277 return getSetWeekYearHelper.call( 14278 this, 14279 input, 14280 this.isoWeek(), 14281 this.isoWeekday(), 14282 1, 14283 4 14284 ); 14285 } 14286 function getISOWeeksInYear() { 14287 return weeksInYear(this.year(), 1, 4); 14288 } 14289 function getISOWeeksInISOWeekYear() { 14290 return weeksInYear(this.isoWeekYear(), 1, 4); 14291 } 14292 function getWeeksInYear() { 14293 var weekInfo = this.localeData()._week; 14294 return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); 14295 } 14296 function getWeeksInWeekYear() { 14297 var weekInfo = this.localeData()._week; 14298 return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy); 14299 } 14300 function getSetWeekYearHelper(input, week, weekday, dow, doy) { 14301 var weeksTarget; 14302 if (input == null) { 14303 return weekOfYear(this, dow, doy).year; 14304 } else { 14305 weeksTarget = weeksInYear(input, dow, doy); 14306 if (week > weeksTarget) { 14307 week = weeksTarget; 14308 } 14309 return setWeekAll.call(this, input, week, weekday, dow, doy); 14310 } 14311 } 14312 function setWeekAll(weekYear, week, weekday, dow, doy) { 14313 var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); 14314 this.year(date.getUTCFullYear()); 14315 this.month(date.getUTCMonth()); 14316 this.date(date.getUTCDate()); 14317 return this; 14318 } 14319 addFormatToken("Q", 0, "Qo", "quarter"); 14320 addUnitAlias("quarter", "Q"); 14321 addUnitPriority("quarter", 7); 14322 addRegexToken("Q", match1); 14323 addParseToken("Q", function(input, array) { 14324 array[MONTH] = (toInt(input) - 1) * 3; 14325 }); 14326 function getSetQuarter(input) { 14327 return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); 14328 } 14329 addFormatToken("D", ["DD", 2], "Do", "date"); 14330 addUnitAlias("date", "D"); 14331 addUnitPriority("date", 9); 14332 addRegexToken("D", match1to2); 14333 addRegexToken("DD", match1to2, match2); 14334 addRegexToken("Do", function(isStrict, locale2) { 14335 return isStrict ? locale2._dayOfMonthOrdinalParse || locale2._ordinalParse : locale2._dayOfMonthOrdinalParseLenient; 14336 }); 14337 addParseToken(["D", "DD"], DATE); 14338 addParseToken("Do", function(input, array) { 14339 array[DATE] = toInt(input.match(match1to2)[0]); 14340 }); 14341 var getSetDayOfMonth = makeGetSet("Date", true); 14342 addFormatToken("DDD", ["DDDD", 3], "DDDo", "dayOfYear"); 14343 addUnitAlias("dayOfYear", "DDD"); 14344 addUnitPriority("dayOfYear", 4); 14345 addRegexToken("DDD", match1to3); 14346 addRegexToken("DDDD", match3); 14347 addParseToken(["DDD", "DDDD"], function(input, array, config) { 14348 config._dayOfYear = toInt(input); 14349 }); 14350 function getSetDayOfYear(input) { 14351 var dayOfYear = Math.round( 14352 (this.clone().startOf("day") - this.clone().startOf("year")) / 864e5 14353 ) + 1; 14354 return input == null ? dayOfYear : this.add(input - dayOfYear, "d"); 14355 } 14356 addFormatToken("m", ["mm", 2], 0, "minute"); 14357 addUnitAlias("minute", "m"); 14358 addUnitPriority("minute", 14); 14359 addRegexToken("m", match1to2); 14360 addRegexToken("mm", match1to2, match2); 14361 addParseToken(["m", "mm"], MINUTE); 14362 var getSetMinute = makeGetSet("Minutes", false); 14363 addFormatToken("s", ["ss", 2], 0, "second"); 14364 addUnitAlias("second", "s"); 14365 addUnitPriority("second", 15); 14366 addRegexToken("s", match1to2); 14367 addRegexToken("ss", match1to2, match2); 14368 addParseToken(["s", "ss"], SECOND); 14369 var getSetSecond = makeGetSet("Seconds", false); 14370 addFormatToken("S", 0, 0, function() { 14371 return ~~(this.millisecond() / 100); 14372 }); 14373 addFormatToken(0, ["SS", 2], 0, function() { 14374 return ~~(this.millisecond() / 10); 14375 }); 14376 addFormatToken(0, ["SSS", 3], 0, "millisecond"); 14377 addFormatToken(0, ["SSSS", 4], 0, function() { 14378 return this.millisecond() * 10; 14379 }); 14380 addFormatToken(0, ["SSSSS", 5], 0, function() { 14381 return this.millisecond() * 100; 14382 }); 14383 addFormatToken(0, ["SSSSSS", 6], 0, function() { 14384 return this.millisecond() * 1e3; 14385 }); 14386 addFormatToken(0, ["SSSSSSS", 7], 0, function() { 14387 return this.millisecond() * 1e4; 14388 }); 14389 addFormatToken(0, ["SSSSSSSS", 8], 0, function() { 14390 return this.millisecond() * 1e5; 14391 }); 14392 addFormatToken(0, ["SSSSSSSSS", 9], 0, function() { 14393 return this.millisecond() * 1e6; 14394 }); 14395 addUnitAlias("millisecond", "ms"); 14396 addUnitPriority("millisecond", 16); 14397 addRegexToken("S", match1to3, match1); 14398 addRegexToken("SS", match1to3, match2); 14399 addRegexToken("SSS", match1to3, match3); 14400 var token, getSetMillisecond; 14401 for (token = "SSSS"; token.length <= 9; token += "S") { 14402 addRegexToken(token, matchUnsigned); 14403 } 14404 function parseMs(input, array) { 14405 array[MILLISECOND] = toInt(("0." + input) * 1e3); 14406 } 14407 for (token = "S"; token.length <= 9; token += "S") { 14408 addParseToken(token, parseMs); 14409 } 14410 getSetMillisecond = makeGetSet("Milliseconds", false); 14411 addFormatToken("z", 0, 0, "zoneAbbr"); 14412 addFormatToken("zz", 0, 0, "zoneName"); 14413 function getZoneAbbr() { 14414 return this._isUTC ? "UTC" : ""; 14415 } 14416 function getZoneName() { 14417 return this._isUTC ? "Coordinated Universal Time" : ""; 14418 } 14419 var proto = Moment.prototype; 14420 proto.add = add; 14421 proto.calendar = calendar$1; 14422 proto.clone = clone; 14423 proto.diff = diff; 14424 proto.endOf = endOf; 14425 proto.format = format2; 14426 proto.from = from; 14427 proto.fromNow = fromNow; 14428 proto.to = to; 14429 proto.toNow = toNow; 14430 proto.get = stringGet; 14431 proto.invalidAt = invalidAt; 14432 proto.isAfter = isAfter; 14433 proto.isBefore = isBefore; 14434 proto.isBetween = isBetween; 14435 proto.isSame = isSame; 14436 proto.isSameOrAfter = isSameOrAfter; 14437 proto.isSameOrBefore = isSameOrBefore; 14438 proto.isValid = isValid$2; 14439 proto.lang = lang; 14440 proto.locale = locale; 14441 proto.localeData = localeData; 14442 proto.max = prototypeMax; 14443 proto.min = prototypeMin; 14444 proto.parsingFlags = parsingFlags; 14445 proto.set = stringSet; 14446 proto.startOf = startOf; 14447 proto.subtract = subtract; 14448 proto.toArray = toArray2; 14449 proto.toObject = toObject; 14450 proto.toDate = toDate; 14451 proto.toISOString = toISOString; 14452 proto.inspect = inspect; 14453 if (typeof Symbol !== "undefined" && Symbol.for != null) { 14454 proto[Symbol.for("nodejs.util.inspect.custom")] = function() { 14455 return "Moment<" + this.format() + ">"; 14456 }; 14457 } 14458 proto.toJSON = toJSON; 14459 proto.toString = toString2; 14460 proto.unix = unix; 14461 proto.valueOf = valueOf; 14462 proto.creationData = creationData; 14463 proto.eraName = getEraName; 14464 proto.eraNarrow = getEraNarrow; 14465 proto.eraAbbr = getEraAbbr; 14466 proto.eraYear = getEraYear; 14467 proto.year = getSetYear; 14468 proto.isLeapYear = getIsLeapYear; 14469 proto.weekYear = getSetWeekYear; 14470 proto.isoWeekYear = getSetISOWeekYear; 14471 proto.quarter = proto.quarters = getSetQuarter; 14472 proto.month = getSetMonth; 14473 proto.daysInMonth = getDaysInMonth; 14474 proto.week = proto.weeks = getSetWeek; 14475 proto.isoWeek = proto.isoWeeks = getSetISOWeek; 14476 proto.weeksInYear = getWeeksInYear; 14477 proto.weeksInWeekYear = getWeeksInWeekYear; 14478 proto.isoWeeksInYear = getISOWeeksInYear; 14479 proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear; 14480 proto.date = getSetDayOfMonth; 14481 proto.day = proto.days = getSetDayOfWeek; 14482 proto.weekday = getSetLocaleDayOfWeek; 14483 proto.isoWeekday = getSetISODayOfWeek; 14484 proto.dayOfYear = getSetDayOfYear; 14485 proto.hour = proto.hours = getSetHour; 14486 proto.minute = proto.minutes = getSetMinute; 14487 proto.second = proto.seconds = getSetSecond; 14488 proto.millisecond = proto.milliseconds = getSetMillisecond; 14489 proto.utcOffset = getSetOffset; 14490 proto.utc = setOffsetToUTC; 14491 proto.local = setOffsetToLocal; 14492 proto.parseZone = setOffsetToParsedOffset; 14493 proto.hasAlignedHourOffset = hasAlignedHourOffset; 14494 proto.isDST = isDaylightSavingTime; 14495 proto.isLocal = isLocal; 14496 proto.isUtcOffset = isUtcOffset; 14497 proto.isUtc = isUtc; 14498 proto.isUTC = isUtc; 14499 proto.zoneAbbr = getZoneAbbr; 14500 proto.zoneName = getZoneName; 14501 proto.dates = deprecate( 14502 "dates accessor is deprecated. Use date instead.", 14503 getSetDayOfMonth 14504 ); 14505 proto.months = deprecate( 14506 "months accessor is deprecated. Use month instead", 14507 getSetMonth 14508 ); 14509 proto.years = deprecate( 14510 "years accessor is deprecated. Use year instead", 14511 getSetYear 14512 ); 14513 proto.zone = deprecate( 14514 "moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/", 14515 getSetZone 14516 ); 14517 proto.isDSTShifted = deprecate( 14518 "isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information", 14519 isDaylightSavingTimeShifted 14520 ); 14521 function createUnix(input) { 14522 return createLocal(input * 1e3); 14523 } 14524 function createInZone() { 14525 return createLocal.apply(null, arguments).parseZone(); 14526 } 14527 function preParsePostFormat(string) { 14528 return string; 14529 } 14530 var proto$1 = Locale.prototype; 14531 proto$1.calendar = calendar; 14532 proto$1.longDateFormat = longDateFormat; 14533 proto$1.invalidDate = invalidDate; 14534 proto$1.ordinal = ordinal; 14535 proto$1.preparse = preParsePostFormat; 14536 proto$1.postformat = preParsePostFormat; 14537 proto$1.relativeTime = relativeTime; 14538 proto$1.pastFuture = pastFuture; 14539 proto$1.set = set; 14540 proto$1.eras = localeEras; 14541 proto$1.erasParse = localeErasParse; 14542 proto$1.erasConvertYear = localeErasConvertYear; 14543 proto$1.erasAbbrRegex = erasAbbrRegex; 14544 proto$1.erasNameRegex = erasNameRegex; 14545 proto$1.erasNarrowRegex = erasNarrowRegex; 14546 proto$1.months = localeMonths; 14547 proto$1.monthsShort = localeMonthsShort; 14548 proto$1.monthsParse = localeMonthsParse; 14549 proto$1.monthsRegex = monthsRegex; 14550 proto$1.monthsShortRegex = monthsShortRegex; 14551 proto$1.week = localeWeek; 14552 proto$1.firstDayOfYear = localeFirstDayOfYear; 14553 proto$1.firstDayOfWeek = localeFirstDayOfWeek; 14554 proto$1.weekdays = localeWeekdays; 14555 proto$1.weekdaysMin = localeWeekdaysMin; 14556 proto$1.weekdaysShort = localeWeekdaysShort; 14557 proto$1.weekdaysParse = localeWeekdaysParse; 14558 proto$1.weekdaysRegex = weekdaysRegex; 14559 proto$1.weekdaysShortRegex = weekdaysShortRegex; 14560 proto$1.weekdaysMinRegex = weekdaysMinRegex; 14561 proto$1.isPM = localeIsPM; 14562 proto$1.meridiem = localeMeridiem; 14563 function get$1(format3, index, field, setter) { 14564 var locale2 = getLocale(), utc = createUTC().set(setter, index); 14565 return locale2[field](utc, format3); 14566 } 14567 function listMonthsImpl(format3, index, field) { 14568 if (isNumber(format3)) { 14569 index = format3; 14570 format3 = void 0; 14571 } 14572 format3 = format3 || ""; 14573 if (index != null) { 14574 return get$1(format3, index, field, "month"); 14575 } 14576 var i2, out = []; 14577 for (i2 = 0; i2 < 12; i2++) { 14578 out[i2] = get$1(format3, i2, field, "month"); 14579 } 14580 return out; 14581 } 14582 function listWeekdaysImpl(localeSorted, format3, index, field) { 14583 if (typeof localeSorted === "boolean") { 14584 if (isNumber(format3)) { 14585 index = format3; 14586 format3 = void 0; 14587 } 14588 format3 = format3 || ""; 14589 } else { 14590 format3 = localeSorted; 14591 index = format3; 14592 localeSorted = false; 14593 if (isNumber(format3)) { 14594 index = format3; 14595 format3 = void 0; 14596 } 14597 format3 = format3 || ""; 14598 } 14599 var locale2 = getLocale(), shift = localeSorted ? locale2._week.dow : 0, i2, out = []; 14600 if (index != null) { 14601 return get$1(format3, (index + shift) % 7, field, "day"); 14602 } 14603 for (i2 = 0; i2 < 7; i2++) { 14604 out[i2] = get$1(format3, (i2 + shift) % 7, field, "day"); 14605 } 14606 return out; 14607 } 14608 function listMonths(format3, index) { 14609 return listMonthsImpl(format3, index, "months"); 14610 } 14611 function listMonthsShort(format3, index) { 14612 return listMonthsImpl(format3, index, "monthsShort"); 14613 } 14614 function listWeekdays(localeSorted, format3, index) { 14615 return listWeekdaysImpl(localeSorted, format3, index, "weekdays"); 14616 } 14617 function listWeekdaysShort(localeSorted, format3, index) { 14618 return listWeekdaysImpl(localeSorted, format3, index, "weekdaysShort"); 14619 } 14620 function listWeekdaysMin(localeSorted, format3, index) { 14621 return listWeekdaysImpl(localeSorted, format3, index, "weekdaysMin"); 14622 } 14623 getSetGlobalLocale("en", { 14624 eras: [ 14625 { 14626 since: "0001-01-01", 14627 until: Infinity, 14628 offset: 1, 14629 name: "Anno Domini", 14630 narrow: "AD", 14631 abbr: "AD" 14632 }, 14633 { 14634 since: "0000-12-31", 14635 until: -Infinity, 14636 offset: 1, 14637 name: "Before Christ", 14638 narrow: "BC", 14639 abbr: "BC" 14640 } 14641 ], 14642 dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, 14643 ordinal: function(number) { 14644 var b = number % 10, output = toInt(number % 100 / 10) === 1 ? "th" : b === 1 ? "st" : b === 2 ? "nd" : b === 3 ? "rd" : "th"; 14645 return number + output; 14646 } 14647 }); 14648 hooks.lang = deprecate( 14649 "moment.lang is deprecated. Use moment.locale instead.", 14650 getSetGlobalLocale 14651 ); 14652 hooks.langData = deprecate( 14653 "moment.langData is deprecated. Use moment.localeData instead.", 14654 getLocale 14655 ); 14656 var mathAbs = Math.abs; 14657 function abs() { 14658 var data = this._data; 14659 this._milliseconds = mathAbs(this._milliseconds); 14660 this._days = mathAbs(this._days); 14661 this._months = mathAbs(this._months); 14662 data.milliseconds = mathAbs(data.milliseconds); 14663 data.seconds = mathAbs(data.seconds); 14664 data.minutes = mathAbs(data.minutes); 14665 data.hours = mathAbs(data.hours); 14666 data.months = mathAbs(data.months); 14667 data.years = mathAbs(data.years); 14668 return this; 14669 } 14670 function addSubtract$1(duration, input, value2, direction) { 14671 var other = createDuration(input, value2); 14672 duration._milliseconds += direction * other._milliseconds; 14673 duration._days += direction * other._days; 14674 duration._months += direction * other._months; 14675 return duration._bubble(); 14676 } 14677 function add$1(input, value2) { 14678 return addSubtract$1(this, input, value2, 1); 14679 } 14680 function subtract$1(input, value2) { 14681 return addSubtract$1(this, input, value2, -1); 14682 } 14683 function absCeil(number) { 14684 if (number < 0) { 14685 return Math.floor(number); 14686 } else { 14687 return Math.ceil(number); 14688 } 14689 } 14690 function bubble() { 14691 var milliseconds2 = this._milliseconds, days2 = this._days, months2 = this._months, data = this._data, seconds2, minutes2, hours2, years2, monthsFromDays; 14692 if (!(milliseconds2 >= 0 && days2 >= 0 && months2 >= 0 || milliseconds2 <= 0 && days2 <= 0 && months2 <= 0)) { 14693 milliseconds2 += absCeil(monthsToDays(months2) + days2) * 864e5; 14694 days2 = 0; 14695 months2 = 0; 14696 } 14697 data.milliseconds = milliseconds2 % 1e3; 14698 seconds2 = absFloor(milliseconds2 / 1e3); 14699 data.seconds = seconds2 % 60; 14700 minutes2 = absFloor(seconds2 / 60); 14701 data.minutes = minutes2 % 60; 14702 hours2 = absFloor(minutes2 / 60); 14703 data.hours = hours2 % 24; 14704 days2 += absFloor(hours2 / 24); 14705 monthsFromDays = absFloor(daysToMonths(days2)); 14706 months2 += monthsFromDays; 14707 days2 -= absCeil(monthsToDays(monthsFromDays)); 14708 years2 = absFloor(months2 / 12); 14709 months2 %= 12; 14710 data.days = days2; 14711 data.months = months2; 14712 data.years = years2; 14713 return this; 14714 } 14715 function daysToMonths(days2) { 14716 return days2 * 4800 / 146097; 14717 } 14718 function monthsToDays(months2) { 14719 return months2 * 146097 / 4800; 14720 } 14721 function as(units) { 14722 if (!this.isValid()) { 14723 return NaN; 14724 } 14725 var days2, months2, milliseconds2 = this._milliseconds; 14726 units = normalizeUnits(units); 14727 if (units === "month" || units === "quarter" || units === "year") { 14728 days2 = this._days + milliseconds2 / 864e5; 14729 months2 = this._months + daysToMonths(days2); 14730 switch (units) { 14731 case "month": 14732 return months2; 14733 case "quarter": 14734 return months2 / 3; 14735 case "year": 14736 return months2 / 12; 14737 } 14738 } else { 14739 days2 = this._days + Math.round(monthsToDays(this._months)); 14740 switch (units) { 14741 case "week": 14742 return days2 / 7 + milliseconds2 / 6048e5; 14743 case "day": 14744 return days2 + milliseconds2 / 864e5; 14745 case "hour": 14746 return days2 * 24 + milliseconds2 / 36e5; 14747 case "minute": 14748 return days2 * 1440 + milliseconds2 / 6e4; 14749 case "second": 14750 return days2 * 86400 + milliseconds2 / 1e3; 14751 case "millisecond": 14752 return Math.floor(days2 * 864e5) + milliseconds2; 14753 default: 14754 throw new Error("Unknown unit " + units); 14755 } 14756 } 14757 } 14758 function valueOf$1() { 14759 if (!this.isValid()) { 14760 return NaN; 14761 } 14762 return this._milliseconds + this._days * 864e5 + this._months % 12 * 2592e6 + toInt(this._months / 12) * 31536e6; 14763 } 14764 function makeAs(alias) { 14765 return function() { 14766 return this.as(alias); 14767 }; 14768 } 14769 var asMilliseconds = makeAs("ms"), asSeconds = makeAs("s"), asMinutes = makeAs("m"), asHours = makeAs("h"), asDays = makeAs("d"), asWeeks = makeAs("w"), asMonths = makeAs("M"), asQuarters = makeAs("Q"), asYears = makeAs("y"); 14770 function clone$1() { 14771 return createDuration(this); 14772 } 14773 function get$2(units) { 14774 units = normalizeUnits(units); 14775 return this.isValid() ? this[units + "s"]() : NaN; 14776 } 14777 function makeGetter(name2) { 14778 return function() { 14779 return this.isValid() ? this._data[name2] : NaN; 14780 }; 14781 } 14782 var milliseconds = makeGetter("milliseconds"), seconds = makeGetter("seconds"), minutes = makeGetter("minutes"), hours = makeGetter("hours"), days = makeGetter("days"), months = makeGetter("months"), years = makeGetter("years"); 14783 function weeks() { 14784 return absFloor(this.days() / 7); 14785 } 14786 var round = Math.round, thresholds = { 14787 ss: 44, 14788 s: 45, 14789 m: 45, 14790 h: 22, 14791 d: 26, 14792 w: null, 14793 M: 11 14794 }; 14795 function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale2) { 14796 return locale2.relativeTime(number || 1, !!withoutSuffix, string, isFuture); 14797 } 14798 function relativeTime$1(posNegDuration, withoutSuffix, thresholds2, locale2) { 14799 var duration = createDuration(posNegDuration).abs(), seconds2 = round(duration.as("s")), minutes2 = round(duration.as("m")), hours2 = round(duration.as("h")), days2 = round(duration.as("d")), months2 = round(duration.as("M")), weeks2 = round(duration.as("w")), years2 = round(duration.as("y")), a = seconds2 <= thresholds2.ss && ["s", seconds2] || seconds2 < thresholds2.s && ["ss", seconds2] || minutes2 <= 1 && ["m"] || minutes2 < thresholds2.m && ["mm", minutes2] || hours2 <= 1 && ["h"] || hours2 < thresholds2.h && ["hh", hours2] || days2 <= 1 && ["d"] || days2 < thresholds2.d && ["dd", days2]; 14800 if (thresholds2.w != null) { 14801 a = a || weeks2 <= 1 && ["w"] || weeks2 < thresholds2.w && ["ww", weeks2]; 14802 } 14803 a = a || months2 <= 1 && ["M"] || months2 < thresholds2.M && ["MM", months2] || years2 <= 1 && ["y"] || ["yy", years2]; 14804 a[2] = withoutSuffix; 14805 a[3] = +posNegDuration > 0; 14806 a[4] = locale2; 14807 return substituteTimeAgo.apply(null, a); 14808 } 14809 function getSetRelativeTimeRounding(roundingFunction) { 14810 if (roundingFunction === void 0) { 14811 return round; 14812 } 14813 if (typeof roundingFunction === "function") { 14814 round = roundingFunction; 14815 return true; 14816 } 14817 return false; 14818 } 14819 function getSetRelativeTimeThreshold(threshold, limit) { 14820 if (thresholds[threshold] === void 0) { 14821 return false; 14822 } 14823 if (limit === void 0) { 14824 return thresholds[threshold]; 14825 } 14826 thresholds[threshold] = limit; 14827 if (threshold === "s") { 14828 thresholds.ss = limit - 1; 14829 } 14830 return true; 14831 } 14832 function humanize(argWithSuffix, argThresholds) { 14833 if (!this.isValid()) { 14834 return this.localeData().invalidDate(); 14835 } 14836 var withSuffix = false, th = thresholds, locale2, output; 14837 if (typeof argWithSuffix === "object") { 14838 argThresholds = argWithSuffix; 14839 argWithSuffix = false; 14840 } 14841 if (typeof argWithSuffix === "boolean") { 14842 withSuffix = argWithSuffix; 14843 } 14844 if (typeof argThresholds === "object") { 14845 th = Object.assign({}, thresholds, argThresholds); 14846 if (argThresholds.s != null && argThresholds.ss == null) { 14847 th.ss = argThresholds.s - 1; 14848 } 14849 } 14850 locale2 = this.localeData(); 14851 output = relativeTime$1(this, !withSuffix, th, locale2); 14852 if (withSuffix) { 14853 output = locale2.pastFuture(+this, output); 14854 } 14855 return locale2.postformat(output); 14856 } 14857 var abs$1 = Math.abs; 14858 function sign(x) { 14859 return (x > 0) - (x < 0) || +x; 14860 } 14861 function toISOString$1() { 14862 if (!this.isValid()) { 14863 return this.localeData().invalidDate(); 14864 } 14865 var seconds2 = abs$1(this._milliseconds) / 1e3, days2 = abs$1(this._days), months2 = abs$1(this._months), minutes2, hours2, years2, s, total = this.asSeconds(), totalSign, ymSign, daysSign, hmsSign; 14866 if (!total) { 14867 return "P0D"; 14868 } 14869 minutes2 = absFloor(seconds2 / 60); 14870 hours2 = absFloor(minutes2 / 60); 14871 seconds2 %= 60; 14872 minutes2 %= 60; 14873 years2 = absFloor(months2 / 12); 14874 months2 %= 12; 14875 s = seconds2 ? seconds2.toFixed(3).replace(/\.?0+$/, "") : ""; 14876 totalSign = total < 0 ? "-" : ""; 14877 ymSign = sign(this._months) !== sign(total) ? "-" : ""; 14878 daysSign = sign(this._days) !== sign(total) ? "-" : ""; 14879 hmsSign = sign(this._milliseconds) !== sign(total) ? "-" : ""; 14880 return totalSign + "P" + (years2 ? ymSign + years2 + "Y" : "") + (months2 ? ymSign + months2 + "M" : "") + (days2 ? daysSign + days2 + "D" : "") + (hours2 || minutes2 || seconds2 ? "T" : "") + (hours2 ? hmsSign + hours2 + "H" : "") + (minutes2 ? hmsSign + minutes2 + "M" : "") + (seconds2 ? hmsSign + s + "S" : ""); 14881 } 14882 var proto$2 = Duration.prototype; 14883 proto$2.isValid = isValid$1; 14884 proto$2.abs = abs; 14885 proto$2.add = add$1; 14886 proto$2.subtract = subtract$1; 14887 proto$2.as = as; 14888 proto$2.asMilliseconds = asMilliseconds; 14889 proto$2.asSeconds = asSeconds; 14890 proto$2.asMinutes = asMinutes; 14891 proto$2.asHours = asHours; 14892 proto$2.asDays = asDays; 14893 proto$2.asWeeks = asWeeks; 14894 proto$2.asMonths = asMonths; 14895 proto$2.asQuarters = asQuarters; 14896 proto$2.asYears = asYears; 14897 proto$2.valueOf = valueOf$1; 14898 proto$2._bubble = bubble; 14899 proto$2.clone = clone$1; 14900 proto$2.get = get$2; 14901 proto$2.milliseconds = milliseconds; 14902 proto$2.seconds = seconds; 14903 proto$2.minutes = minutes; 14904 proto$2.hours = hours; 14905 proto$2.days = days; 14906 proto$2.weeks = weeks; 14907 proto$2.months = months; 14908 proto$2.years = years; 14909 proto$2.humanize = humanize; 14910 proto$2.toISOString = toISOString$1; 14911 proto$2.toString = toISOString$1; 14912 proto$2.toJSON = toISOString$1; 14913 proto$2.locale = locale; 14914 proto$2.localeData = localeData; 14915 proto$2.toIsoString = deprecate( 14916 "toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)", 14917 toISOString$1 14918 ); 14919 proto$2.lang = lang; 14920 addFormatToken("X", 0, 0, "unix"); 14921 addFormatToken("x", 0, 0, "valueOf"); 14922 addRegexToken("x", matchSigned); 14923 addRegexToken("X", matchTimestamp); 14924 addParseToken("X", function(input, array, config) { 14925 config._d = new Date(parseFloat(input) * 1e3); 14926 }); 14927 addParseToken("x", function(input, array, config) { 14928 config._d = new Date(toInt(input)); 14929 }); 14930 hooks.version = "2.29.4"; 14931 setHookCallback(createLocal); 14932 hooks.fn = proto; 14933 hooks.min = min; 14934 hooks.max = max; 14935 hooks.now = now; 14936 hooks.utc = createUTC; 14937 hooks.unix = createUnix; 14938 hooks.months = listMonths; 14939 hooks.isDate = isDate; 14940 hooks.locale = getSetGlobalLocale; 14941 hooks.invalid = createInvalid; 14942 hooks.duration = createDuration; 14943 hooks.isMoment = isMoment; 14944 hooks.weekdays = listWeekdays; 14945 hooks.parseZone = createInZone; 14946 hooks.localeData = getLocale; 14947 hooks.isDuration = isDuration; 14948 hooks.monthsShort = listMonthsShort; 14949 hooks.weekdaysMin = listWeekdaysMin; 14950 hooks.defineLocale = defineLocale; 14951 hooks.updateLocale = updateLocale; 14952 hooks.locales = listLocales; 14953 hooks.weekdaysShort = listWeekdaysShort; 14954 hooks.normalizeUnits = normalizeUnits; 14955 hooks.relativeTimeRounding = getSetRelativeTimeRounding; 14956 hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; 14957 hooks.calendarFormat = getCalendarFormat; 14958 hooks.prototype = proto; 14959 hooks.HTML5_FMT = { 14960 DATETIME_LOCAL: "YYYY-MM-DDTHH:mm", 14961 DATETIME_LOCAL_SECONDS: "YYYY-MM-DDTHH:mm:ss", 14962 DATETIME_LOCAL_MS: "YYYY-MM-DDTHH:mm:ss.SSS", 14963 DATE: "YYYY-MM-DD", 14964 TIME: "HH:mm", 14965 TIME_SECONDS: "HH:mm:ss", 14966 TIME_MS: "HH:mm:ss.SSS", 14967 WEEK: "GGGG-[W]WW", 14968 MONTH: "YYYY-MM" 14969 }; 14970 return hooks; 14971 }); 14972 } 14973 }); 14974 14975
vendor: 47,271 bytes, lines 14975-15178
14975// node_modules/moment-timezone/builds/moment-timezone-with-data-10-year-range.min.js 14976 var require_moment_timezone_with_data_10_year_range_min = __commonJS({ 14977 "node_modules/moment-timezone/builds/moment-timezone-with-data-10-year-range.min.js"(exports, module) { 14978 !function(a, i2) { 14979 "use strict"; 14980 "object" == typeof module && module.exports ? module.exports = i2(require_moment()) : "function" == typeof define && define.amd ? define(["moment"], i2) : i2(a.moment); 14981 }(exports, function(o) { 14982 "use strict"; 14983 void 0 === o.version && o.default && (o = o.default); 14984 var i2, s = {}, c = {}, A = {}, u = {}, m = {}, a = (o && "string" == typeof o.version || D("Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/"), o.version.split(".")), r = +a[0], e = +a[1]; 14985 function n(a2) { 14986 return 96 < a2 ? a2 - 87 : 64 < a2 ? a2 - 29 : a2 - 48; 14987 } 14988 function t(a2) { 14989 var i3 = 0, r2 = a2.split("."), e2 = r2[0], o2 = r2[1] || "", c2 = 1, A2 = 0, r2 = 1; 14990 for (45 === a2.charCodeAt(0) && (r2 = -(i3 = 1)); i3 < e2.length; i3++) 14991 A2 = 60 * A2 + n(e2.charCodeAt(i3)); 14992 for (i3 = 0; i3 < o2.length; i3++) 14993 c2 /= 60, A2 += n(o2.charCodeAt(i3)) * c2; 14994 return A2 * r2; 14995 } 14996 function l(a2) { 14997 for (var i3 = 0; i3 < a2.length; i3++) 14998 a2[i3] = t(a2[i3]); 14999 } 15000 function f(a2, i3) { 15001 for (var r2 = [], e2 = 0; e2 < i3.length; e2++) 15002 r2[e2] = a2[i3[e2]]; 15003 return r2; 15004 } 15005 function p(a2) { 15006 for (var a2 = a2.split("|"), i3 = a2[2].split(" "), r2 = a2[3].split(""), e2 = a2[4].split(" "), o2 = (l(i3), l(r2), l(e2), e2), c2 = r2.length, A2 = 0; A2 < c2; A2++) 15007 o2[A2] = Math.round((o2[A2 - 1] || 0) + 6e4 * o2[A2]); 15008 return o2[c2 - 1] = 1 / 0, { name: a2[0], abbrs: f(a2[1].split(" "), r2), offsets: f(i3, r2), untils: e2, population: 0 | a2[5] }; 15009 } 15010 function b(a2) { 15011 a2 && this._set(p(a2)); 15012 } 15013 function M(a2, i3) { 15014 this.name = a2, this.zones = i3; 15015 } 15016 function h(a2) { 15017 var i3 = a2.toTimeString(), r2 = i3.match(/\([a-z ]+\)/i); 15018 "GMT" === (r2 = r2 && r2[0] ? (r2 = r2[0].match(/[A-Z]/g)) ? r2.join("") : void 0 : (r2 = i3.match(/[A-Z]{3,5}/g)) ? r2[0] : void 0) && (r2 = void 0), this.at = +a2, this.abbr = r2, this.offset = a2.getTimezoneOffset(); 15019 } 15020 function d(a2) { 15021 this.zone = a2, this.offsetScore = 0, this.abbrScore = 0; 15022 } 15023 function E() { 15024 for (var a2, i3, r2 = new Date().getFullYear() - 2, e2 = new h(new Date(r2, 0, 1)), o2 = [e2], c2 = 1; c2 < 48; c2++) 15025 (i3 = new h(new Date(r2, c2, 1))).offset !== e2.offset && (a2 = function(a3, i4) { 15026 for (var r3; r3 = 6e4 * ((i4.at - a3.at) / 12e4 | 0); ) 15027 (r3 = new h(new Date(a3.at + r3))).offset === a3.offset ? a3 = r3 : i4 = r3; 15028 return a3; 15029 }(e2, i3), o2.push(a2), o2.push(new h(new Date(a2.at + 6e4)))), e2 = i3; 15030 for (c2 = 0; c2 < 4; c2++) 15031 o2.push(new h(new Date(r2 + c2, 0, 1))), o2.push(new h(new Date(r2 + c2, 6, 1))); 15032 return o2; 15033 } 15034 function g(a2, i3) { 15035 return a2.offsetScore !== i3.offsetScore ? a2.offsetScore - i3.offsetScore : a2.abbrScore !== i3.abbrScore ? a2.abbrScore - i3.abbrScore : a2.zone.population !== i3.zone.population ? i3.zone.population - a2.zone.population : i3.zone.name.localeCompare(a2.zone.name); 15036 } 15037 function z() { 15038 try { 15039 var a2 = Intl.DateTimeFormat().resolvedOptions().timeZone; 15040 if (a2 && 3 < a2.length) { 15041 var i3 = u[P(a2)]; 15042 if (i3) 15043 return i3; 15044 D("Moment Timezone found " + a2 + " from the Intl api, but did not have that data loaded."); 15045 } 15046 } catch (a3) { 15047 } 15048 for (var r2, e2, o2 = E(), c2 = o2.length, A2 = function(a3) { 15049 for (var i4, r3, e3 = a3.length, o3 = {}, c3 = [], A3 = 0; A3 < e3; A3++) 15050 for (i4 in r3 = m[a3[A3].offset] || {}) 15051 r3.hasOwnProperty(i4) && (o3[i4] = true); 15052 for (A3 in o3) 15053 o3.hasOwnProperty(A3) && c3.push(u[A3]); 15054 return c3; 15055 }(o2), n2 = [], t2 = 0; t2 < A2.length; t2++) { 15056 for (r2 = new d(T(A2[t2])), e2 = 0; e2 < c2; e2++) 15057 r2.scoreOffsetAt(o2[e2]); 15058 n2.push(r2); 15059 } 15060 return n2.sort(g), 0 < n2.length ? n2[0].zone.name : void 0; 15061 } 15062 function P(a2) { 15063 return (a2 || "").toLowerCase().replace(/\//g, "_"); 15064 } 15065 function k(a2) { 15066 var i3, r2, e2, o2; 15067 for ("string" == typeof a2 && (a2 = [a2]), i3 = 0; i3 < a2.length; i3++) { 15068 o2 = P(r2 = (e2 = a2[i3].split("|"))[0]), s[o2] = a2[i3], u[o2] = r2, A2 = c2 = t2 = n2 = void 0; 15069 var c2, A2, n2 = o2, t2 = e2[2].split(" "); 15070 for (l(t2), c2 = 0; c2 < t2.length; c2++) 15071 A2 = t2[c2], m[A2] = m[A2] || {}, m[A2][n2] = true; 15072 } 15073 } 15074 function T(a2, i3) { 15075 a2 = P(a2); 15076 var r2 = s[a2]; 15077 return r2 instanceof b ? r2 : "string" == typeof r2 ? (r2 = new b(r2), s[a2] = r2) : c[a2] && i3 !== T && (i3 = T(c[a2], T)) ? ((r2 = s[a2] = new b())._set(i3), r2.name = u[a2], r2) : null; 15078 } 15079 function S(a2) { 15080 var i3, r2, e2, o2; 15081 for ("string" == typeof a2 && (a2 = [a2]), i3 = 0; i3 < a2.length; i3++) 15082 e2 = P((r2 = a2[i3].split("|"))[0]), o2 = P(r2[1]), c[e2] = o2, u[e2] = r2[0], c[o2] = e2, u[o2] = r2[1]; 15083 } 15084 function _(a2) { 15085 k(a2.zones), S(a2.links); 15086 var i3, r2, e2, o2 = a2.countries; 15087 if (o2 && o2.length) 15088 for (i3 = 0; i3 < o2.length; i3++) 15089 r2 = (e2 = o2[i3].split("|"))[0].toUpperCase(), e2 = e2[1].split(" "), A[r2] = new M(r2, e2); 15090 y.dataVersion = a2.version; 15091 } 15092 function C(a2) { 15093 return C.didShowError || (C.didShowError = true, D("moment.tz.zoneExists('" + a2 + "') has been deprecated in favor of !moment.tz.zone('" + a2 + "')")), !!T(a2); 15094 } 15095 function B(a2) { 15096 var i3 = "X" === a2._f || "x" === a2._f; 15097 return !(!a2._a || void 0 !== a2._tzm || i3); 15098 } 15099 function D(a2) { 15100 "undefined" != typeof console && "function" == typeof console.error && console.error(a2); 15101 } 15102 function y(a2) { 15103 var i3 = Array.prototype.slice.call(arguments, 0, -1), r2 = arguments[arguments.length - 1], e2 = T(r2), i3 = o.utc.apply(null, i3); 15104 return e2 && !o.isMoment(a2) && B(i3) && i3.add(e2.parse(i3), "minutes"), i3.tz(r2), i3; 15105 } 15106 (r < 2 || 2 == r && e < 6) && D("Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js " + o.version + ". See momentjs.com"), b.prototype = { _set: function(a2) { 15107 this.name = a2.name, this.abbrs = a2.abbrs, this.untils = a2.untils, this.offsets = a2.offsets, this.population = a2.population; 15108 }, _index: function(a2) { 15109 for (var i3 = +a2, r2 = this.untils, e2 = 0; e2 < r2.length; e2++) 15110 if (i3 < r2[e2]) 15111 return e2; 15112 }, countries: function() { 15113 var i3 = this.name; 15114 return Object.keys(A).filter(function(a2) { 15115 return -1 !== A[a2].zones.indexOf(i3); 15116 }); 15117 }, parse: function(a2) { 15118 for (var i3, r2, e2, o2 = +a2, c2 = this.offsets, A2 = this.untils, n2 = A2.length - 1, t2 = 0; t2 < n2; t2++) 15119 if (i3 = c2[t2], r2 = c2[t2 + 1], e2 = c2[t2 && t2 - 1], i3 < r2 && y.moveAmbiguousForward ? i3 = r2 : e2 < i3 && y.moveInvalidForward && (i3 = e2), o2 < A2[t2] - 6e4 * i3) 15120 return c2[t2]; 15121 return c2[n2]; 15122 }, abbr: function(a2) { 15123 return this.abbrs[this._index(a2)]; 15124 }, offset: function(a2) { 15125 return D("zone.offset has been deprecated in favor of zone.utcOffset"), this.offsets[this._index(a2)]; 15126 }, utcOffset: function(a2) { 15127 return this.offsets[this._index(a2)]; 15128 } }, d.prototype.scoreOffsetAt = function(a2) { 15129 this.offsetScore += Math.abs(this.zone.utcOffset(a2.at) - a2.offset), this.zone.abbr(a2.at).replace(/[^A-Z]/g, "") !== a2.abbr && this.abbrScore++; 15130 }, y.version = "0.5.43", y.dataVersion = "", y._zones = s, y._links = c, y._names = u, y._countries = A, y.add = k, y.link = S, y.load = _, y.zone = T, y.zoneExists = C, y.guess = function(a2) { 15131 return i2 = i2 && !a2 ? i2 : z(); 15132 }, y.names = function() { 15133 var a2, i3 = []; 15134 for (a2 in u) 15135 u.hasOwnProperty(a2) && (s[a2] || s[c[a2]]) && u[a2] && i3.push(u[a2]); 15136 return i3.sort(); 15137 }, y.Zone = b, y.unpack = p, y.unpackBase60 = t, y.needsOffset = B, y.moveInvalidForward = true, y.moveAmbiguousForward = false, y.countries = function() { 15138 return Object.keys(A); 15139 }, y.zonesForCountry = function(a2, i3) { 15140 var r2; 15141 return r2 = (r2 = a2).toUpperCase(), (a2 = A[r2] || null) ? (r2 = a2.zones.sort(), i3 ? r2.map(function(a3) { 15142 return { name: a3, offset: T(a3).utcOffset(new Date()) }; 15143 }) : r2) : null; 15144 }; 15145 var L2, a = o.fn; 15146 function O(a2) { 15147 return function() { 15148 return this._z ? this._z.abbr(this) : a2.call(this); 15149 }; 15150 } 15151 function N(a2) { 15152 return function() { 15153 return this._z = null, a2.apply(this, arguments); 15154 }; 15155 } 15156 o.tz = y, o.defaultZone = null, o.updateOffset = function(a2, i3) { 15157 var r2, e2 = o.defaultZone; 15158 void 0 === a2._z && (e2 && B(a2) && !a2._isUTC && (a2._d = o.utc(a2._a)._d, a2.utc().add(e2.parse(a2), "minutes")), a2._z = e2), a2._z && (e2 = a2._z.utcOffset(a2), Math.abs(e2) < 16 && (e2 /= 60), void 0 !== a2.utcOffset ? (r2 = a2._z, a2.utcOffset(-e2, i3), a2._z = r2) : a2.zone(e2, i3)); 15159 }, a.tz = function(a2, i3) { 15160 if (a2) { 15161 if ("string" != typeof a2) 15162 throw new Error("Time zone name must be a string, got " + a2 + " [" + typeof a2 + "]"); 15163 return this._z = T(a2), this._z ? o.updateOffset(this, i3) : D("Moment Timezone has no data for " + a2 + ". See http://momentjs.com/timezone/docs/#/data-loading/."), this; 15164 } 15165 if (this._z) 15166 return this._z.name; 15167 }, a.zoneName = O(a.zoneName), a.zoneAbbr = O(a.zoneAbbr), a.utc = N(a.utc), a.local = N(a.local), a.utcOffset = (L2 = a.utcOffset, function() { 15168 return 0 < arguments.length && (this._z = null), L2.apply(this, arguments); 15169 }), o.tz.setDefault = function(a2) { 15170 return (r < 2 || 2 == r && e < 9) && D("Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js " + o.version + "."), o.defaultZone = a2 ? T(a2) : null, o; 15171 }; 15172 a = o.momentProperties; 15173 return "[object Array]" === Object.prototype.toString.call(a) ? (a.push("_z"), a.push("_a")) : a && (a._z = null), _({ version: "2023c", zones: ["Africa/Abidjan|GMT|0|0||48e5", "Africa/Nairobi|EAT|-30|0||47e5", "Africa/Algiers|CET|-10|0||26e5", "Africa/Lagos|WAT|-10|0||17e6", "Africa/Khartoum|CAT|-20|0||51e5", "Africa/Cairo|EET EEST|-20 -30|0101010101010|29NW0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0|15e6", "Africa/Casablanca|+00 +01|0 -10|010101010101010101010101|1Vq20 jA0 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0|32e5", "Europe/Paris|CET CEST|-10 -20|01010101010101010101010|1Vq10 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|11e6", "Africa/Johannesburg|SAST|-20|0||84e5", "Africa/Juba|EAT CAT|-30 -20|01|24nx0|", "Africa/Sao_Tome|GMT WAT|0 -10|010|1UQN0 2q00|", "Africa/Tripoli|EET|-20|0||11e5", "America/Adak|HST HDT|a0 90|01010101010101010101010|1VkA0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0|326", "America/Anchorage|AKST AKDT|90 80|01010101010101010101010|1Vkz0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0|30e4", "America/Santo_Domingo|AST|40|0||29e5", "America/Fortaleza|-03|30|0||34e5", "America/Asuncion|-03 -04|30 40|01010101010101010101010|1Vq30 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0|28e5", "America/Panama|EST|50|0||15e5", "America/Mexico_City|CST CDT|60 50|01010101010|1VsU0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0|20e6", "America/Managua|CST|60|0||22e5", "America/Caracas|-04|40|0||29e5", "America/Lima|-05|50|0||11e6", "America/Denver|MST MDT|70 60|01010101010101010101010|1Vkx0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0|26e5", "America/Campo_Grande|-03 -04|30 40|0101|1Vc30 1HB0 FX0|77e4", "America/Chicago|CST CDT|60 50|01010101010101010101010|1Vkw0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0|92e5", "America/Chihuahua|MST MDT CST|70 60 60|01010101012|1VsV0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0|81e4", "America/Ciudad_Juarez|MST MDT CST|70 60 60|010101010120101010101010|1Vkx0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1wn0 cm0 EP0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0|", "America/Phoenix|MST|70|0||42e5", "America/Whitehorse|PST PDT MST|80 70 70|0101012|1Vky0 1zb0 Op0 1zb0 Op0 1z90|23e3", "America/New_York|EST EDT|50 40|01010101010101010101010|1Vkv0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0|21e6", "America/Los_Angeles|PST PDT|80 70|01010101010101010101010|1Vky0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0|15e6", "America/Halifax|AST ADT|40 30|01010101010101010101010|1Vku0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0|39e4", "America/Godthab|-03 -02 -01|30 20 10|0101010101012121212121|1Vq10 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 2so0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|17e3", "America/Grand_Turk|AST EDT EST|40 40 50|01212121212121212121212|1Vkv0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0|37e2", "America/Havana|CST CDT|50 40|01010101010101010101010|1Vkt0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0|21e5", "America/Mazatlan|MST MDT|70 60|01010101010|1VsV0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0|44e4", "America/Metlakatla|AKST AKDT PST|90 80 80|012010101010101010101010|1Vkz0 1zb0 uM0 jB0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0|14e2", "America/Miquelon|-03 -02|30 20|01010101010101010101010|1Vkt0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0|61e2", "America/Noronha|-02|20|0||30e2", "America/Ojinaga|MST MDT CST CDT|70 60 60 50|01010101012323232323232|1Vkx0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1wn0 Rc0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0|23e3", "America/Santiago|-03 -04|30 40|01010101010101010101010|1VJD0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0|62e5", "America/Sao_Paulo|-02 -03|20 30|0101|1Vc20 1HB0 FX0|20e6", "Atlantic/Azores|-01 +00|10 0|01010101010101010101010|1Vq10 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|25e4", "America/St_Johns|NST NDT|3u 2u|01010101010101010101010|1Vktu 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0|11e4", "Antarctica/Casey|+11 +08|-b0 -80|0101010|1Vkh0 1o30 14k0 1kr0 12l0 1o01|10", "Asia/Bangkok|+07|-70|0||15e6", "Asia/Vladivostok|+10|-a0|0||60e4", "Australia/Sydney|AEDT AEST|-b0 -a0|01010101010101010101010|1VsE0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0|40e5", "Asia/Tashkent|+05|-50|0||23e5", "Pacific/Auckland|NZDT NZST|-d0 -c0|01010101010101010101010|1VsC0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00|14e5", "Europe/Istanbul|+03|-30|0||13e6", "Antarctica/Troll|+00 +02|0 -20|01010101010101010101010|1Vq10 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|40", "Asia/Dhaka|+06|-60|0||16e6", "Asia/Amman|EET EEST +03|-20 -30 -30|01010101012|1VrW0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 LA0 1C00|25e5", "Asia/Kamchatka|+12|-c0|0||18e4", "Asia/Dubai|+04|-40|0||39e5", "Asia/Beirut|EET EEST|-20 -30|01010101010101010101010|1VpW0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0|22e5", "Asia/Kuala_Lumpur|+08|-80|0||71e5", "Asia/Kolkata|IST|-5u|0||15e6", "Asia/Chita|+09|-90|0||33e4", "Asia/Shanghai|CST|-80|0||23e6", "Asia/Colombo|+0530|-5u|0||22e5", "Asia/Damascus|EET EEST +03|-20 -30 -30|01010101012|1VrW0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0|26e5", "Europe/Athens|EET EEST|-20 -30|01010101010101010101010|1Vq10 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|35e5", "Asia/Gaza|EET EEST|-20 -30|01010101010101010101010|1Vpz0 1qL0 11c0 1on0 11B0 1o00 11A0 1qo0 XA0 1qp0 1cN0 1cL0 17d0 1in0 14p0 1lb0 11B0 1nX0 11B0 1qL0 WN0 1qL0|18e5", "Asia/Hong_Kong|HKT|-80|0||73e5", "Asia/Jakarta|WIB|-70|0||31e6", "Asia/Jayapura|WIT|-90|0||26e4", "Asia/Jerusalem|IST IDT|-20 -30|01010101010101010101010|1Vpc0 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0|81e4", "Asia/Kabul|+0430|-4u|0||46e5", "Asia/Karachi|PKT|-50|0||24e6", "Asia/Kathmandu|+0545|-5J|0||12e5", "Asia/Sakhalin|+11|-b0|0||58e4", "Asia/Makassar|WITA|-80|0||15e5", "Asia/Manila|PST|-80|0||24e6", "Asia/Pyongyang|KST KST|-8u -90|01|1VGf0|29e5", "Asia/Qyzylorda|+06 +05|-60 -50|01|1Xei0|73e4", "Asia/Rangoon|+0630|-6u|0||48e5", "Asia/Seoul|KST|-90|0||23e6", "Asia/Tehran|+0330 +0430|-3u -4u|01010101010|1VoIu 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0|14e6", "Asia/Tokyo|JST|-90|0||38e6", "Europe/Lisbon|WET WEST|0 -10|01010101010101010101010|1Vq10 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|27e5", "Atlantic/Cape_Verde|-01|10|0||50e4", "Australia/Adelaide|ACDT ACST|-au -9u|01010101010101010101010|1VsEu 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0|11e5", "Australia/Brisbane|AEST|-a0|0||20e5", "Australia/Darwin|ACST|-9u|0||12e4", "Australia/Eucla|+0845|-8J|0||368", "Australia/Lord_Howe|+11 +1030|-b0 -au|01010101010101010101010|1VsD0 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu|347", "Australia/Perth|AWST|-80|0||18e5", "Pacific/Easter|-05 -06|50 60|01010101010101010101010|1VJD0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0|30e2", "Europe/Dublin|GMT IST|0 -10|01010101010101010101010|1Vq10 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|12e5", "Etc/GMT-1|+01|-10|0||", "Pacific/Tongatapu|+13|-d0|0||75e3", "Pacific/Kiritimati|+14|-e0|0||51e2", "Etc/GMT-2|+02|-20|0||", "Pacific/Tahiti|-10|a0|0||18e4", "Pacific/Niue|-11|b0|0||12e2", "Etc/GMT+12|-12|c0|0||", "Pacific/Galapagos|-06|60|0||25e3", "Etc/GMT+7|-07|70|0||", "Pacific/Pitcairn|-08|80|0||56", "Pacific/Gambier|-09|90|0||125", "Etc/UTC|UTC|0|0||", "Europe/London|GMT BST|0 -10|01010101010101010101010|1Vq10 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|10e6", "Europe/Chisinau|EET EEST|-20 -30|01010101010101010101010|1Vq00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|67e4", "Europe/Moscow|MSK|-30|0||16e6", "Europe/Volgograd|MSK +04|-30 -40|010|1WQL0 5gn0|10e5", "Pacific/Honolulu|HST|a0|0||37e4", "MET|MET MEST|-10 -20|01010101010101010101010|1Vq10 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|", "Pacific/Chatham|+1345 +1245|-dJ -cJ|01010101010101010101010|1VsC0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00|600", "Pacific/Apia|+14 +13|-e0 -d0|01010101|1VsC0 1cM0 1fA0 1a00 1fA0 1a00 1fA0|37e3", "Pacific/Fiji|+13 +12|-d0 -c0|01010101|1UVO0 1VA0 s00 20o0 pc0 2hc0 bc0|88e4", "Pacific/Guam|ChST|-a0|0||17e4", "Pacific/Marquesas|-0930|9u|0||86e2", "Pacific/Pago_Pago|SST|b0|0||37e2", "Pacific/Norfolk|+11 +12|-b0 -c0|01010101010101010101|219P0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0|25e4"], links: ["Africa/Abidjan|Africa/Accra", "Africa/Abidjan|Africa/Bamako", "Africa/Abidjan|Africa/Banjul", "Africa/Abidjan|Africa/Bissau", "Africa/Abidjan|Africa/Conakry", "Africa/Abidjan|Africa/Dakar", "Africa/Abidjan|Africa/Freetown", "Africa/Abidjan|Africa/Lome", "Africa/Abidjan|Africa/Monrovia", "Africa/Abidjan|Africa/Nouakchott", "Africa/Abidjan|Africa/Ouagadougou", "Africa/Abidjan|Africa/Timbuktu", "Africa/Abidjan|America/Danmarkshavn", "Africa/Abidjan|Atlantic/Reykjavik", "Africa/Abidjan|Atlantic/St_Helena", "Africa/Abidjan|Etc/GMT", "Africa/Abidjan|Etc/GMT+0", "Africa/Abidjan|Etc/GMT-0", "Africa/Abidjan|Etc/GMT0", "Africa/Abidjan|Etc/Greenwich", "Africa/Abidjan|GMT", "Africa/Abidjan|GMT+0", "Africa/Abidjan|GMT-0", "Africa/Abidjan|GMT0", "Africa/Abidjan|Greenwich", "Africa/Abidjan|Iceland", "Africa/Algiers|Africa/Tunis", "Africa/Cairo|Egypt", "Africa/Casablanca|Africa/El_Aaiun", "Africa/Johannesburg|Africa/Maseru", "Africa/Johannesburg|Africa/Mbabane", "Africa/Khartoum|Africa/Blantyre", "Africa/Khartoum|Africa/Bujumbura", "Africa/Khartoum|Africa/Gaborone", "Africa/Khartoum|Africa/Harare", "Africa/Khartoum|Africa/Kigali", "Africa/Khartoum|Africa/Lubumbashi", "Africa/Khartoum|Africa/Lusaka", "Africa/Khartoum|Africa/Maputo", "Africa/Khartoum|Africa/Windhoek", "Africa/Lagos|Africa/Bangui", "Africa/Lagos|Africa/Brazzaville", "Africa/Lagos|Africa/Douala", "Africa/Lagos|Africa/Kinshasa", "Africa/Lagos|Africa/Libreville", "Africa/Lagos|Africa/Luanda", "Africa/Lagos|Africa/Malabo", "Africa/Lagos|Africa/Ndjamena", "Africa/Lagos|Africa/Niamey", "Africa/Lagos|Africa/Porto-Novo", "Africa/Nairobi|Africa/Addis_Ababa", "Africa/Nairobi|Africa/Asmara", "Africa/Nairobi|Africa/Asmera", "Africa/Nairobi|Africa/Dar_es_Salaam", "Africa/Nairobi|Africa/Djibouti", "Africa/Nairobi|Africa/Kampala", "Africa/Nairobi|Africa/Mogadishu", "Africa/Nairobi|Indian/Antananarivo", "Africa/Nairobi|Indian/Comoro", "Africa/Nairobi|Indian/Mayotte", "Africa/Tripoli|Europe/Kaliningrad", "Africa/Tripoli|Libya", "America/Adak|America/Atka", "America/Adak|US/Aleutian", "America/Anchorage|America/Juneau", "America/Anchorage|America/Nome", "America/Anchorage|America/Sitka", "America/Anchorage|America/Yakutat", "America/Anchorage|US/Alaska", "America/Campo_Grande|America/Cuiaba", "America/Caracas|America/Boa_Vista", "America/Caracas|America/Guyana", "America/Caracas|America/La_Paz", "America/Caracas|America/Manaus", "America/Caracas|America/Porto_Velho", "America/Caracas|Brazil/West", "America/Caracas|Etc/GMT+4", "America/Chicago|America/Indiana/Knox", "America/Chicago|America/Indiana/Tell_City", "America/Chicago|America/Knox_IN", "America/Chicago|America/Matamoros", "America/Chicago|America/Menominee", "America/Chicago|America/North_Dakota/Beulah", "America/Chicago|America/North_Dakota/Center", "America/Chicago|America/North_Dakota/New_Salem", "America/Chicago|America/Rainy_River", "America/Chicago|America/Rankin_Inlet", "America/Chicago|America/Resolute", "America/Chicago|America/Winnipeg", "America/Chicago|CST6CDT", "America/Chicago|Canada/Central", "America/Chicago|US/Central", "America/Chicago|US/Indiana-Starke", "America/Denver|America/Boise", "America/Denver|America/Cambridge_Bay", "America/Denver|America/Edmonton", "America/Denver|America/Inuvik", "America/Denver|America/Shiprock", "America/Denver|America/Yellowknife", "America/Denver|Canada/Mountain", "America/Denver|MST7MDT", "America/Denver|Navajo", "America/Denver|US/Mountain", "America/Fortaleza|America/Araguaina", "America/Fortaleza|America/Argentina/Buenos_Aires", "America/Fortaleza|America/Argentina/Catamarca", "America/Fortaleza|America/Argentina/ComodRivadavia", "America/Fortaleza|America/Argentina/Cordoba", "America/Fortaleza|America/Argentina/Jujuy", "America/Fortaleza|America/Argentina/La_Rioja", "America/Fortaleza|America/Argentina/Mendoza", "America/Fortaleza|America/Argentina/Rio_Gallegos", "America/Fortaleza|America/Argentina/Salta", "America/Fortaleza|America/Argentina/San_Juan", "America/Fortaleza|America/Argentina/San_Luis", "America/Fortaleza|America/Argentina/Tucuman", "America/Fortaleza|America/Argentina/Ushuaia", "America/Fortaleza|America/Bahia", "America/Fortaleza|America/Belem", "America/Fortaleza|America/Buenos_Aires", "America/Fortaleza|America/Catamarca", "America/Fortaleza|America/Cayenne", "America/Fortaleza|America/Cordoba", "America/Fortaleza|America/Jujuy", "America/Fortaleza|America/Maceio", "America/Fortaleza|America/Mendoza", "America/Fortaleza|America/Montevideo", "America/Fortaleza|America/Paramaribo", "America/Fortaleza|America/Punta_Arenas", "America/Fortaleza|America/Recife", "America/Fortaleza|America/Rosario", "America/Fortaleza|America/Santarem", "America/Fortaleza|Antarctica/Palmer", "America/Fortaleza|Antarctica/Rothera", "America/Fortaleza|Atlantic/Stanley", "America/Fortaleza|Etc/GMT+3", "America/Godthab|America/Nuuk", "America/Halifax|America/Glace_Bay", "America/Halifax|America/Goose_Bay", "America/Halifax|America/Moncton", "America/Halifax|America/Thule", "America/Halifax|Atlantic/Bermuda", "America/Halifax|Canada/Atlantic", "America/Havana|Cuba", "America/Lima|America/Bogota", "America/Lima|America/Eirunepe", "America/Lima|America/Guayaquil", "America/Lima|America/Porto_Acre", "America/Lima|America/Rio_Branco", "America/Lima|Brazil/Acre", "America/Lima|Etc/GMT+5", "America/Los_Angeles|America/Ensenada", "America/Los_Angeles|America/Santa_Isabel", "America/Los_Angeles|America/Tijuana", "America/Los_Angeles|America/Vancouver", "America/Los_Angeles|Canada/Pacific", "America/Los_Angeles|Mexico/BajaNorte", "America/Los_Angeles|PST8PDT", "America/Los_Angeles|US/Pacific", "America/Managua|America/Belize", "America/Managua|America/Costa_Rica", "America/Managua|America/El_Salvador", "America/Managua|America/Guatemala", "America/Managua|America/Regina", "America/Managua|America/Swift_Current", "America/Managua|America/Tegucigalpa", "America/Managua|Canada/Saskatchewan", "America/Mazatlan|Mexico/BajaSur", "America/Mexico_City|America/Bahia_Banderas", "America/Mexico_City|America/Merida", "America/Mexico_City|America/Monterrey", "America/Mexico_City|Mexico/General", "America/New_York|America/Detroit", "America/New_York|America/Fort_Wayne", "America/New_York|America/Indiana/Indianapolis", "America/New_York|America/Indiana/Marengo", "America/New_York|America/Indiana/Petersburg", "America/New_York|America/Indiana/Vevay", "America/New_York|America/Indiana/Vincennes", "America/New_York|America/Indiana/Winamac", "America/New_York|America/Indianapolis", "America/New_York|America/Iqaluit", "America/New_York|America/Kentucky/Louisville", "America/New_York|America/Kentucky/Monticello", "America/New_York|America/Louisville", "America/New_York|America/Montreal", "America/New_York|America/Nassau", "America/New_York|America/Nipigon", "America/New_York|America/Pangnirtung", "America/New_York|America/Port-au-Prince", "America/New_York|America/Thunder_Bay", "America/New_York|America/Toronto", "America/New_York|Canada/Eastern", "America/New_York|EST5EDT", "America/New_York|US/East-Indiana", "America/New_York|US/Eastern", "America/New_York|US/Michigan", "America/Noronha|Atlantic/South_Georgia", "America/Noronha|Brazil/DeNoronha", "America/Noronha|Etc/GMT+2", "America/Panama|America/Atikokan", "America/Panama|America/Cancun", "America/Panama|America/Cayman", "America/Panama|America/Coral_Harbour", "America/Panama|America/Jamaica", "America/Panama|EST", "America/Panama|Jamaica", "America/Phoenix|America/Creston", "America/Phoenix|America/Dawson_Creek", "America/Phoenix|America/Fort_Nelson", "America/Phoenix|America/Hermosillo", "America/Phoenix|MST", "America/Phoenix|US/Arizona", "America/Santiago|Chile/Continental", "America/Santo_Domingo|America/Anguilla", "America/Santo_Domingo|America/Antigua", "America/Santo_Domingo|America/Aruba", "America/Santo_Domingo|America/Barbados", "America/Santo_Domingo|America/Blanc-Sablon", "America/Santo_Domingo|America/Curacao", "America/Santo_Domingo|America/Dominica", "America/Santo_Domingo|America/Grenada", "America/Santo_Domingo|America/Guadeloupe", "America/Santo_Domingo|America/Kralendijk", "America/Santo_Domingo|America/Lower_Princes", "America/Santo_Domingo|America/Marigot", "America/Santo_Domingo|America/Martinique", "America/Santo_Domingo|America/Montserrat", "America/Santo_Domingo|America/Port_of_Spain", "America/Santo_Domingo|America/Puerto_Rico", "America/Santo_Domingo|America/St_Barthelemy", "America/Santo_Domingo|America/St_Kitts", "America/Santo_Domingo|America/St_Lucia", "America/Santo_Domingo|America/St_Thomas", "America/Santo_Domingo|America/St_Vincent", "America/Santo_Domingo|America/Tortola", "America/Santo_Domingo|America/Virgin", "America/Sao_Paulo|Brazil/East", "America/St_Johns|Canada/Newfoundland", "America/Whitehorse|America/Dawson", "America/Whitehorse|Canada/Yukon", "Asia/Bangkok|Antarctica/Davis", "Asia/Bangkok|Asia/Barnaul", "Asia/Bangkok|Asia/Ho_Chi_Minh", "Asia/Bangkok|Asia/Hovd", "Asia/Bangkok|Asia/Krasnoyarsk", "Asia/Bangkok|Asia/Novokuznetsk", "Asia/Bangkok|Asia/Novosibirsk", "Asia/Bangkok|Asia/Phnom_Penh", "Asia/Bangkok|Asia/Saigon", "Asia/Bangkok|Asia/Tomsk", "Asia/Bangkok|Asia/Vientiane", "Asia/Bangkok|Etc/GMT-7", "Asia/Bangkok|Indian/Christmas", "Asia/Chita|Asia/Dili", "Asia/Chita|Asia/Khandyga", "Asia/Chita|Asia/Yakutsk", "Asia/Chita|Etc/GMT-9", "Asia/Chita|Pacific/Palau", "Asia/Dhaka|Antarctica/Vostok", "Asia/Dhaka|Asia/Almaty", "Asia/Dhaka|Asia/Bishkek", "Asia/Dhaka|Asia/Dacca", "Asia/Dhaka|Asia/Kashgar", "Asia/Dhaka|Asia/Omsk", "Asia/Dhaka|Asia/Qostanay", "Asia/Dhaka|Asia/Thimbu", "Asia/Dhaka|Asia/Thimphu", "Asia/Dhaka|Asia/Urumqi", "Asia/Dhaka|Etc/GMT-6", "Asia/Dhaka|Indian/Chagos", "Asia/Dubai|Asia/Baku", "Asia/Dubai|Asia/Muscat", "Asia/Dubai|Asia/Tbilisi", "Asia/Dubai|Asia/Yerevan", "Asia/Dubai|Etc/GMT-4", "Asia/Dubai|Europe/Astrakhan", "Asia/Dubai|Europe/Samara", "Asia/Dubai|Europe/Saratov", "Asia/Dubai|Europe/Ulyanovsk", "Asia/Dubai|Indian/Mahe", "Asia/Dubai|Indian/Mauritius", "Asia/Dubai|Indian/Reunion", "Asia/Gaza|Asia/Hebron", "Asia/Hong_Kong|Hongkong", "Asia/Jakarta|Asia/Pontianak", "Asia/Jerusalem|Asia/Tel_Aviv", "Asia/Jerusalem|Israel", "Asia/Kamchatka|Asia/Anadyr", "Asia/Kamchatka|Etc/GMT-12", "Asia/Kamchatka|Kwajalein", "Asia/Kamchatka|Pacific/Funafuti", "Asia/Kamchatka|Pacific/Kwajalein", "Asia/Kamchatka|Pacific/Majuro", "Asia/Kamchatka|Pacific/Nauru", "Asia/Kamchatka|Pacific/Tarawa", "Asia/Kamchatka|Pacific/Wake", "Asia/Kamchatka|Pacific/Wallis", "Asia/Kathmandu|Asia/Katmandu", "Asia/Kolkata|Asia/Calcutta", "Asia/Kuala_Lumpur|Asia/Brunei", "Asia/Kuala_Lumpur|Asia/Choibalsan", "Asia/Kuala_Lumpur|Asia/Irkutsk", "Asia/Kuala_Lumpur|Asia/Kuching", "Asia/Kuala_Lumpur|Asia/Singapore", "Asia/Kuala_Lumpur|Asia/Ulaanbaatar", "Asia/Kuala_Lumpur|Asia/Ulan_Bator", "Asia/Kuala_Lumpur|Etc/GMT-8", "Asia/Kuala_Lumpur|Singapore", "Asia/Makassar|Asia/Ujung_Pandang", "Asia/Rangoon|Asia/Yangon", "Asia/Rangoon|Indian/Cocos", "Asia/Sakhalin|Asia/Magadan", "Asia/Sakhalin|Asia/Srednekolymsk", "Asia/Sakhalin|Etc/GMT-11", "Asia/Sakhalin|Pacific/Bougainville", "Asia/Sakhalin|Pacific/Efate", "Asia/Sakhalin|Pacific/Guadalcanal", "Asia/Sakhalin|Pacific/Kosrae", "Asia/Sakhalin|Pacific/Noumea", "Asia/Sakhalin|Pacific/Pohnpei", "Asia/Sakhalin|Pacific/Ponape", "Asia/Seoul|ROK", "Asia/Shanghai|Asia/Chongqing", "Asia/Shanghai|Asia/Chungking", "Asia/Shanghai|Asia/Harbin", "Asia/Shanghai|Asia/Macao", "Asia/Shanghai|Asia/Macau", "Asia/Shanghai|Asia/Taipei", "Asia/Shanghai|PRC", "Asia/Shanghai|ROC", "Asia/Tashkent|Antarctica/Mawson", "Asia/Tashkent|Asia/Aqtau", "Asia/Tashkent|Asia/Aqtobe", "Asia/Tashkent|Asia/Ashgabat", "Asia/Tashkent|Asia/Ashkhabad", "Asia/Tashkent|Asia/Atyrau", "Asia/Tashkent|Asia/Dushanbe", "Asia/Tashkent|Asia/Oral", "Asia/Tashkent|Asia/Samarkand", "Asia/Tashkent|Asia/Yekaterinburg", "Asia/Tashkent|Etc/GMT-5", "Asia/Tashkent|Indian/Kerguelen", "Asia/Tashkent|Indian/Maldives", "Asia/Tehran|Iran", "Asia/Tokyo|Japan", "Asia/Vladivostok|Antarctica/DumontDUrville", "Asia/Vladivostok|Asia/Ust-Nera", "Asia/Vladivostok|Etc/GMT-10", "Asia/Vladivostok|Pacific/Chuuk", "Asia/Vladivostok|Pacific/Port_Moresby", "Asia/Vladivostok|Pacific/Truk", "Asia/Vladivostok|Pacific/Yap", "Atlantic/Azores|America/Scoresbysund", "Atlantic/Cape_Verde|Etc/GMT+1", "Australia/Adelaide|Australia/Broken_Hill", "Australia/Adelaide|Australia/South", "Australia/Adelaide|Australia/Yancowinna", "Australia/Brisbane|Australia/Lindeman", "Australia/Brisbane|Australia/Queensland", "Australia/Darwin|Australia/North", "Australia/Lord_Howe|Australia/LHI", "Australia/Perth|Australia/West", "Australia/Sydney|Antarctica/Macquarie", "Australia/Sydney|Australia/ACT", "Australia/Sydney|Australia/Canberra", "Australia/Sydney|Australia/Currie", "Australia/Sydney|Australia/Hobart", "Australia/Sydney|Australia/Melbourne", "Australia/Sydney|Australia/NSW", "Australia/Sydney|Australia/Tasmania", "Australia/Sydney|Australia/Victoria", "Etc/UTC|Etc/UCT", "Etc/UTC|Etc/Universal", "Etc/UTC|Etc/Zulu", "Etc/UTC|UCT", "Etc/UTC|UTC", "Etc/UTC|Universal", "Etc/UTC|Zulu", "Europe/Athens|Asia/Famagusta", "Europe/Athens|Asia/Nicosia", "Europe/Athens|EET", "Europe/Athens|Europe/Bucharest", "Europe/Athens|Europe/Helsinki", "Europe/Athens|Europe/Kiev", "Europe/Athens|Europe/Kyiv", "Europe/Athens|Europe/Mariehamn", "Europe/Athens|Europe/Nicosia", "Europe/Athens|Europe/Riga", "Europe/Athens|Europe/Sofia", "Europe/Athens|Europe/Tallinn", "Europe/Athens|Europe/Uzhgorod", "Europe/Athens|Europe/Vilnius", "Europe/Athens|Europe/Zaporozhye", "Europe/Chisinau|Europe/Tiraspol", "Europe/Dublin|Eire", "Europe/Istanbul|Antarctica/Syowa", "Europe/Istanbul|Asia/Aden", "Europe/Istanbul|Asia/Baghdad", "Europe/Istanbul|Asia/Bahrain", "Europe/Istanbul|Asia/Istanbul", "Europe/Istanbul|Asia/Kuwait", "Europe/Istanbul|Asia/Qatar", "Europe/Istanbul|Asia/Riyadh", "Europe/Istanbul|Etc/GMT-3", "Europe/Istanbul|Europe/Minsk", "Europe/Istanbul|Turkey", "Europe/Lisbon|Atlantic/Canary", "Europe/Lisbon|Atlantic/Faeroe", "Europe/Lisbon|Atlantic/Faroe", "Europe/Lisbon|Atlantic/Madeira", "Europe/Lisbon|Portugal", "Europe/Lisbon|WET", "Europe/London|Europe/Belfast", "Europe/London|Europe/Guernsey", "Europe/London|Europe/Isle_of_Man", "Europe/London|Europe/Jersey", "Europe/London|GB", "Europe/London|GB-Eire", "Europe/Moscow|Europe/Kirov", "Europe/Moscow|Europe/Simferopol", "Europe/Moscow|W-SU", "Europe/Paris|Africa/Ceuta", "Europe/Paris|Arctic/Longyearbyen", "Europe/Paris|Atlantic/Jan_Mayen", "Europe/Paris|CET", "Europe/Paris|Europe/Amsterdam", "Europe/Paris|Europe/Andorra", "Europe/Paris|Europe/Belgrade", "Europe/Paris|Europe/Berlin", "Europe/Paris|Europe/Bratislava", "Europe/Paris|Europe/Brussels", "Europe/Paris|Europe/Budapest", "Europe/Paris|Europe/Busingen", "Europe/Paris|Europe/Copenhagen", "Europe/Paris|Europe/Gibraltar", "Europe/Paris|Europe/Ljubljana", "Europe/Paris|Europe/Luxembourg", "Europe/Paris|Europe/Madrid", "Europe/Paris|Europe/Malta", "Europe/Paris|Europe/Monaco", "Europe/Paris|Europe/Oslo", "Europe/Paris|Europe/Podgorica", "Europe/Paris|Europe/Prague", "Europe/Paris|Europe/Rome", "Europe/Paris|Europe/San_Marino", "Europe/Paris|Europe/Sarajevo", "Europe/Paris|Europe/Skopje", "Europe/Paris|Europe/Stockholm", "Europe/Paris|Europe/Tirane", "Europe/Paris|Europe/Vaduz", "Europe/Paris|Europe/Vatican", "Europe/Paris|Europe/Vienna", "Europe/Paris|Europe/Warsaw", "Europe/Paris|Europe/Zagreb", "Europe/Paris|Europe/Zurich", "Europe/Paris|Poland", "Pacific/Auckland|Antarctica/McMurdo", "Pacific/Auckland|Antarctica/South_Pole", "Pacific/Auckland|NZ", "Pacific/Chatham|NZ-CHAT", "Pacific/Easter|Chile/EasterIsland", "Pacific/Galapagos|Etc/GMT+6", "Pacific/Gambier|Etc/GMT+9", "Pacific/Guam|Pacific/Saipan", "Pacific/Honolulu|HST", "Pacific/Honolulu|Pacific/Johnston", "Pacific/Honolulu|US/Hawaii", "Pacific/Kiritimati|Etc/GMT-14", "Pacific/Niue|Etc/GMT+11", "Pacific/Pago_Pago|Pacific/Midway", "Pacific/Pago_Pago|Pacific/Samoa", "Pacific/Pago_Pago|US/Samoa", "Pacific/Pitcairn|Etc/GMT+8", "Pacific/Tahiti|Etc/GMT+10", "Pacific/Tahiti|Pacific/Rarotonga", "Pacific/Tongatapu|Etc/GMT-13", "Pacific/Tongatapu|Pacific/Enderbury", "Pacific/Tongatapu|Pacific/Fakaofo", "Pacific/Tongatapu|Pacific/Kanton"], countries: ["AD|Europe/Andorra", "AE|Asia/Dubai", "AF|Asia/Kabul", "AG|America/Puerto_Rico America/Antigua", "AI|America/Puerto_Rico America/Anguilla", "AL|Europe/Tirane", "AM|Asia/Yerevan", "AO|Africa/Lagos Africa/Luanda", "AQ|Antarctica/Casey Antarctica/Davis Antarctica/Mawson Antarctica/Palmer Antarctica/Rothera Antarctica/Troll Asia/Urumqi Pacific/Auckland Pacific/Port_Moresby Asia/Riyadh Antarctica/McMurdo Antarctica/DumontDUrville Antarctica/Syowa Antarctica/Vostok", "AR|America/Argentina/Buenos_Aires America/Argentina/Cordoba America/Argentina/Salta America/Argentina/Jujuy America/Argentina/Tucuman America/Argentina/Catamarca America/Argentina/La_Rioja America/Argentina/San_Juan America/Argentina/Mendoza America/Argentina/San_Luis America/Argentina/Rio_Gallegos America/Argentina/Ushuaia", "AS|Pacific/Pago_Pago", "AT|Europe/Vienna", "AU|Australia/Lord_Howe Antarctica/Macquarie Australia/Hobart Australia/Melbourne Australia/Sydney Australia/Broken_Hill Australia/Brisbane Australia/Lindeman Australia/Adelaide Australia/Darwin Australia/Perth Australia/Eucla", "AW|America/Puerto_Rico America/Aruba", "AX|Europe/Helsinki Europe/Mariehamn", "AZ|Asia/Baku", "BA|Europe/Belgrade Europe/Sarajevo", "BB|America/Barbados", "BD|Asia/Dhaka", "BE|Europe/Brussels", "BF|Africa/Abidjan Africa/Ouagadougou", "BG|Europe/Sofia", "BH|Asia/Qatar Asia/Bahrain", "BI|Africa/Maputo Africa/Bujumbura", "BJ|Africa/Lagos Africa/Porto-Novo", "BL|America/Puerto_Rico America/St_Barthelemy", "BM|Atlantic/Bermuda", "BN|Asia/Kuching Asia/Brunei", "BO|America/La_Paz", "BQ|America/Puerto_Rico America/Kralendijk", "BR|America/Noronha America/Belem America/Fortaleza America/Recife America/Araguaina America/Maceio America/Bahia America/Sao_Paulo America/Campo_Grande America/Cuiaba America/Santarem America/Porto_Velho America/Boa_Vista America/Manaus America/Eirunepe America/Rio_Branco", "BS|America/Toronto America/Nassau", "BT|Asia/Thimphu", "BW|Africa/Maputo Africa/Gaborone", "BY|Europe/Minsk", "BZ|America/Belize", "CA|America/St_Johns America/Halifax America/Glace_Bay America/Moncton America/Goose_Bay America/Toronto America/Iqaluit America/Winnipeg America/Resolute America/Rankin_Inlet America/Regina America/Swift_Current America/Edmonton America/Cambridge_Bay America/Inuvik America/Dawson_Creek America/Fort_Nelson America/Whitehorse America/Dawson America/Vancouver America/Panama America/Puerto_Rico America/Phoenix America/Blanc-Sablon America/Atikokan America/Creston", "CC|Asia/Yangon Indian/Cocos", "CD|Africa/Maputo Africa/Lagos Africa/Kinshasa Africa/Lubumbashi", "CF|Africa/Lagos Africa/Bangui", "CG|Africa/Lagos Africa/Brazzaville", "CH|Europe/Zurich", "CI|Africa/Abidjan", "CK|Pacific/Rarotonga", "CL|America/Santiago America/Punta_Arenas Pacific/Easter", "CM|Africa/Lagos Africa/Douala", "CN|Asia/Shanghai Asia/Urumqi", "CO|America/Bogota", "CR|America/Costa_Rica", "CU|America/Havana", "CV|Atlantic/Cape_Verde", "CW|America/Puerto_Rico America/Curacao", "CX|Asia/Bangkok Indian/Christmas", "CY|Asia/Nicosia Asia/Famagusta", "CZ|Europe/Prague", "DE|Europe/Zurich Europe/Berlin Europe/Busingen", "DJ|Africa/Nairobi Africa/Djibouti", "DK|Europe/Berlin Europe/Copenhagen", "DM|America/Puerto_Rico America/Dominica", "DO|America/Santo_Domingo", "DZ|Africa/Algiers", "EC|America/Guayaquil Pacific/Galapagos", "EE|Europe/Tallinn", "EG|Africa/Cairo", "EH|Africa/El_Aaiun", "ER|Africa/Nairobi Africa/Asmara", "ES|Europe/Madrid Africa/Ceuta Atlantic/Canary", "ET|Africa/Nairobi Africa/Addis_Ababa", "FI|Europe/Helsinki", "FJ|Pacific/Fiji", "FK|Atlantic/Stanley", "FM|Pacific/Kosrae Pacific/Port_Moresby Pacific/Guadalcanal Pacific/Chuuk Pacific/Pohnpei", "FO|Atlantic/Faroe", "FR|Europe/Paris", "GA|Africa/Lagos Africa/Libreville", "GB|Europe/London", "GD|America/Puerto_Rico America/Grenada", "GE|Asia/Tbilisi", "GF|America/Cayenne", "GG|Europe/London Europe/Guernsey", "GH|Africa/Abidjan Africa/Accra", "GI|Europe/Gibraltar", "GL|America/Nuuk America/Danmarkshavn America/Scoresbysund America/Thule", "GM|Africa/Abidjan Africa/Banjul", "GN|Africa/Abidjan Africa/Conakry", "GP|America/Puerto_Rico America/Guadeloupe", "GQ|Africa/Lagos Africa/Malabo", "GR|Europe/Athens", "GS|Atlantic/South_Georgia", "GT|America/Guatemala", "GU|Pacific/Guam", "GW|Africa/Bissau", "GY|America/Guyana", "HK|Asia/Hong_Kong", "HN|America/Tegucigalpa", "HR|Europe/Belgrade Europe/Zagreb", "HT|America/Port-au-Prince", "HU|Europe/Budapest", "ID|Asia/Jakarta Asia/Pontianak Asia/Makassar Asia/Jayapura", "IE|Europe/Dublin", "IL|Asia/Jerusalem", "IM|Europe/London Europe/Isle_of_Man", "IN|Asia/Kolkata", "IO|Indian/Chagos", "IQ|Asia/Baghdad", "IR|Asia/Tehran", "IS|Africa/Abidjan Atlantic/Reykjavik", "IT|Europe/Rome", "JE|Europe/London Europe/Jersey", "JM|America/Jamaica", "JO|Asia/Amman", "JP|Asia/Tokyo", "KE|Africa/Nairobi", "KG|Asia/Bishkek", "KH|Asia/Bangkok Asia/Phnom_Penh", "KI|Pacific/Tarawa Pacific/Kanton Pacific/Kiritimati", "KM|Africa/Nairobi Indian/Comoro", "KN|America/Puerto_Rico America/St_Kitts", "KP|Asia/Pyongyang", "KR|Asia/Seoul", "KW|Asia/Riyadh Asia/Kuwait", "KY|America/Panama America/Cayman", "KZ|Asia/Almaty Asia/Qyzylorda Asia/Qostanay Asia/Aqtobe Asia/Aqtau Asia/Atyrau Asia/Oral", "LA|Asia/Bangkok Asia/Vientiane", "LB|Asia/Beirut", "LC|America/Puerto_Rico America/St_Lucia", "LI|Europe/Zurich Europe/Vaduz", "LK|Asia/Colombo", "LR|Africa/Monrovia", "LS|Africa/Johannesburg Africa/Maseru", "LT|Europe/Vilnius", "LU|Europe/Brussels Europe/Luxembourg", "LV|Europe/Riga", "LY|Africa/Tripoli", "MA|Africa/Casablanca", "MC|Europe/Paris Europe/Monaco", "MD|Europe/Chisinau", "ME|Europe/Belgrade Europe/Podgorica", "MF|America/Puerto_Rico America/Marigot", "MG|Africa/Nairobi Indian/Antananarivo", "MH|Pacific/Tarawa Pacific/Kwajalein Pacific/Majuro", "MK|Europe/Belgrade Europe/Skopje", "ML|Africa/Abidjan Africa/Bamako", "MM|Asia/Yangon", "MN|Asia/Ulaanbaatar Asia/Hovd Asia/Choibalsan", "MO|Asia/Macau", "MP|Pacific/Guam Pacific/Saipan", "MQ|America/Martinique", "MR|Africa/Abidjan Africa/Nouakchott", "MS|America/Puerto_Rico America/Montserrat", "MT|Europe/Malta", "MU|Indian/Mauritius", "MV|Indian/Maldives", "MW|Africa/Maputo Africa/Blantyre", "MX|America/Mexico_City America/Cancun America/Merida America/Monterrey America/Matamoros America/Chihuahua America/Ciudad_Juarez America/Ojinaga America/Mazatlan America/Bahia_Banderas America/Hermosillo America/Tijuana", "MY|Asia/Kuching Asia/Singapore Asia/Kuala_Lumpur", "MZ|Africa/Maputo", "NA|Africa/Windhoek", "NC|Pacific/Noumea", "NE|Africa/Lagos Africa/Niamey", "NF|Pacific/Norfolk", "NG|Africa/Lagos", "NI|America/Managua", "NL|Europe/Brussels Europe/Amsterdam", "NO|Europe/Berlin Europe/Oslo", "NP|Asia/Kathmandu", "NR|Pacific/Nauru", "NU|Pacific/Niue", "NZ|Pacific/Auckland Pacific/Chatham", "OM|Asia/Dubai Asia/Muscat", "PA|America/Panama", "PE|America/Lima", "PF|Pacific/Tahiti Pacific/Marquesas Pacific/Gambier", "PG|Pacific/Port_Moresby Pacific/Bougainville", "PH|Asia/Manila", "PK|Asia/Karachi", "PL|Europe/Warsaw", "PM|America/Miquelon", "PN|Pacific/Pitcairn", "PR|America/Puerto_Rico", "PS|Asia/Gaza Asia/Hebron", "PT|Europe/Lisbon Atlantic/Madeira Atlantic/Azores", "PW|Pacific/Palau", "PY|America/Asuncion", "QA|Asia/Qatar", "RE|Asia/Dubai Indian/Reunion", "RO|Europe/Bucharest", "RS|Europe/Belgrade", "RU|Europe/Kaliningrad Europe/Moscow Europe/Simferopol Europe/Kirov Europe/Volgograd Europe/Astrakhan Europe/Saratov Europe/Ulyanovsk Europe/Samara Asia/Yekaterinburg Asia/Omsk Asia/Novosibirsk Asia/Barnaul Asia/Tomsk Asia/Novokuznetsk Asia/Krasnoyarsk Asia/Irkutsk Asia/Chita Asia/Yakutsk Asia/Khandyga Asia/Vladivostok Asia/Ust-Nera Asia/Magadan Asia/Sakhalin Asia/Srednekolymsk Asia/Kamchatka Asia/Anadyr", "RW|Africa/Maputo Africa/Kigali", "SA|Asia/Riyadh", "SB|Pacific/Guadalcanal", "SC|Asia/Dubai Indian/Mahe", "SD|Africa/Khartoum", "SE|Europe/Berlin Europe/Stockholm", "SG|Asia/Singapore", "SH|Africa/Abidjan Atlantic/St_Helena", "SI|Europe/Belgrade Europe/Ljubljana", "SJ|Europe/Berlin Arctic/Longyearbyen", "SK|Europe/Prague Europe/Bratislava", "SL|Africa/Abidjan Africa/Freetown", "SM|Europe/Rome Europe/San_Marino", "SN|Africa/Abidjan Africa/Dakar", "SO|Africa/Nairobi Africa/Mogadishu", "SR|America/Paramaribo", "SS|Africa/Juba", "ST|Africa/Sao_Tome", "SV|America/El_Salvador", "SX|America/Puerto_Rico America/Lower_Princes", "SY|Asia/Damascus", "SZ|Africa/Johannesburg Africa/Mbabane", "TC|America/Grand_Turk", "TD|Africa/Ndjamena", "TF|Asia/Dubai Indian/Maldives Indian/Kerguelen", "TG|Africa/Abidjan Africa/Lome", "TH|Asia/Bangkok", "TJ|Asia/Dushanbe", "TK|Pacific/Fakaofo", "TL|Asia/Dili", "TM|Asia/Ashgabat", "TN|Africa/Tunis", "TO|Pacific/Tongatapu", "TR|Europe/Istanbul", "TT|America/Puerto_Rico America/Port_of_Spain", "TV|Pacific/Tarawa Pacific/Funafuti", "TW|Asia/Taipei", "TZ|Africa/Nairobi Africa/Dar_es_Salaam", "UA|Europe/Simferopol Europe/Kyiv", "UG|Africa/Nairobi Africa/Kampala", "UM|Pacific/Pago_Pago Pacific/Tarawa Pacific/Midway Pacific/Wake", "US|America/New_York America/Detroit America/Kentucky/Louisville America/Kentucky/Monticello America/Indiana/Indianapolis America/Indiana/Vincennes America/Indiana/Winamac America/Indiana/Marengo America/Indiana/Petersburg America/Indiana/Vevay America/Chicago America/Indiana/Tell_City America/Indiana/Knox America/Menominee America/North_Dakota/Center America/North_Dakota/New_Salem America/North_Dakota/Beulah America/Denver America/Boise America/Phoenix America/Los_Angeles America/Anchorage America/Juneau America/Sitka America/Metlakatla America/Yakutat America/Nome America/Adak Pacific/Honolulu", "UY|America/Montevideo", "UZ|Asia/Samarkand Asia/Tashkent", "VA|Europe/Rome Europe/Vatican", "VC|America/Puerto_Rico America/St_Vincent", "VE|America/Caracas", "VG|America/Puerto_Rico America/Tortola", "VI|America/Puerto_Rico America/St_Thomas", "VN|Asia/Bangkok Asia/Ho_Chi_Minh", "VU|Pacific/Efate", "WF|Pacific/Tarawa Pacific/Wallis", "WS|Pacific/Apia", "YE|Asia/Riyadh Asia/Aden", "YT|Africa/Nairobi Indian/Mayotte", "ZA|Africa/Johannesburg", "ZM|Africa/Maputo Africa/Lusaka", "ZW|Africa/Maputo Africa/Harare"] }), o; 15174 }); 15175 } 15176 }); 15177 15178
15178// frappe/public/js/lib/leaflet/leaflet.js 15179 var require_leaflet = __commonJS({ 15180 "frappe/public/js/lib/leaflet/leaflet.js"(exports, module) { 15181 !function(t, i2) { 15182 "object" == typeof exports && "undefined" != typeof module ? i2(exports) : "function" == typeof define && define.amd ? define(["exports"], i2) : i2(t.L = {}); 15183 }(exports, function(t) { 15184 "use strict"; 15185 function i2(t2) { 15186 var i3, e2, n2, o2; 15187 for (e2 = 1, n2 = arguments.length; e2 < n2; e2++) { 15188 o2 = arguments[e2]; 15189 for (i3 in o2) 15190 t2[i3] = o2[i3]; 15191 } 15192 return t2; 15193 } 15194 function e(t2, i3) { 15195 var e2 = Array.prototype.slice; 15196 if (t2.bind) 15197 return t2.bind.apply(t2, e2.call(arguments, 1)); 15198 var n2 = e2.call(arguments, 2); 15199 return function() { 15200 return t2.apply(i3, n2.length ? n2.concat(e2.call(arguments)) : arguments); 15201 }; 15202 } 15203 function n(t2) { 15204 return t2._leaflet_id = t2._leaflet_id || ++ti, t2._leaflet_id; 15205 } 15206 function o(t2, i3, e2) { 15207 var n2, o2, s2, r2; 15208 return r2 = function() { 15209 n2 = false, o2 && (s2.apply(e2, o2), o2 = false); 15210 }, s2 = function() { 15211 n2 ? o2 = arguments : (t2.apply(e2, arguments), setTimeout(r2, i3), n2 = true); 15212 }; 15213 } 15214 function s(t2, i3, e2) { 15215 var n2 = i3[1], o2 = i3[0], s2 = n2 - o2; 15216 return t2 === n2 && e2 ? t2 : ((t2 - o2) % s2 + s2) % s2 + o2; 15217 } 15218 function r() { 15219 return false; 15220 } 15221 function a(t2, i3) { 15222 var e2 = Math.pow(10, i3 || 5); 15223 return Math.round(t2 * e2) / e2; 15224 } 15225 function h(t2) { 15226 return t2.trim ? t2.trim() : t2.replace(/^\s+|\s+$/g, ""); 15227 } 15228 function u(t2) { 15229 return h(t2).split(/\s+/); 15230 } 15231 function l(t2, i3) { 15232 t2.hasOwnProperty("options") || (t2.options = t2.options ? Qt(t2.options) : {}); 15233 for (var e2 in i3) 15234 t2.options[e2] = i3[e2]; 15235 return t2.options; 15236 } 15237 function c(t2, i3, e2) { 15238 var n2 = []; 15239 for (var o2 in t2) 15240 n2.push(encodeURIComponent(e2 ? o2.toUpperCase() : o2) + "=" + encodeURIComponent(t2[o2])); 15241 return (i3 && -1 !== i3.indexOf("?") ? "&" : "?") + n2.join("&"); 15242 } 15243 function _(t2, i3) { 15244 return t2.replace(ii, function(t3, e2) { 15245 var n2 = i3[e2]; 15246 if (void 0 === n2) 15247 throw new Error("No value provided for variable " + t3); 15248 return "function" == typeof n2 && (n2 = n2(i3)), n2; 15249 }); 15250 } 15251 function d(t2, i3) { 15252 for (var e2 = 0; e2 < t2.length; e2++) 15253 if (t2[e2] === i3) 15254 return e2; 15255 return -1; 15256 } 15257 function p(t2) { 15258 return window["webkit" + t2] || window["moz" + t2] || window["ms" + t2]; 15259 } 15260 function m(t2) { 15261 var i3 = +new Date(), e2 = Math.max(0, 16 - (i3 - oi)); 15262 return oi = i3 + e2, window.setTimeout(t2, e2); 15263 } 15264 function f(t2, i3, n2) { 15265 if (!n2 || si !== m) 15266 return si.call(window, e(t2, i3)); 15267 t2.call(i3); 15268 } 15269 function g(t2) { 15270 t2 && ri.call(window, t2); 15271 } 15272 function v() { 15273 } 15274 function y(t2) { 15275 if (L && L.Mixin) { 15276 t2 = ei(t2) ? t2 : [t2]; 15277 for (var i3 = 0; i3 < t2.length; i3++) 15278 t2[i3] === L.Mixin.Events && console.warn("Deprecated
15278include of L.Mixin.Events: this property will be removed in future releases, please inherit from L.Evented instead.", new Error().stack); 15279 } 15280 } 15281 function x(t2, i3, e2) { 15282 this.x = e2 ? Math.round(t2) : t2, this.y = e2 ? Math.round(i3) : i3; 15283 } 15284 function w(t2, i3, e2) { 15285 return t2 instanceof x ? t2 : ei(t2) ? new x(t2[0], t2[1]) : void 0 === t2 || null === t2 ? t2 : "object" == typeof t2 && "x" in t2 && "y" in t2 ? new x(t2.x, t2.y) : new x(t2, i3, e2); 15286 } 15287 function P(t2, i3) { 15288 if (t2) 15289 for (var e2 = i3 ? [t2, i3] : t2, n2 = 0, o2 = e2.length; n2 < o2; n2++) 15290 this.extend(e2[n2]); 15291 } 15292 function b(t2, i3) { 15293 return !t2 || t2 instanceof P ? t2 : new P(t2, i3); 15294 } 15295 function T(t2, i3) { 15296 if (t2) 15297 for (var e2 = i3 ? [t2, i3] : t2, n2 = 0, o2 = e2.length; n2 < o2; n2++) 15298 this.extend(e2[n2]); 15299 } 15300 function z(t2, i3) { 15301 return t2 instanceof T ? t2 : new T(t2, i3); 15302 } 15303 function M(t2, i3, e2) { 15304 if (isNaN(t2) || isNaN(i3)) 15305 throw new Error("Invalid LatLng object: (" + t2 + ", " + i3 + ")"); 15306 this.lat = +t2, this.lng = +i3, void 0 !== e2 && (this.alt = +e2); 15307 } 15308 function C(t2, i3, e2) { 15309 return t2 instanceof M ? t2 : ei(t2) && "object" != typeof t2[0] ? 3 === t2.length ? new M(t2[0], t2[1], t2[2]) : 2 === t2.length ? new M(t2[0], t2[1]) : null : void 0 === t2 || null === t2 ? t2 : "object" == typeof t2 && "lat" in t2 ? new M(t2.lat, "lng" in t2 ? t2.lng : t2.lon, t2.alt) : void 0 === i3 ? null : new M(t2, i3, e2); 15310 } 15311 function Z(t2, i3, e2, n2) { 15312 if (ei(t2)) 15313 return this._a = t2[0], this._b = t2[1], this._c = t2[2], void (this._d = t2[3]); 15314 this._a = t2, this._b = i3, this._c = e2, this._d = n2; 15315 } 15316 function E(t2, i3, e2, n2) { 15317 return new Z(t2, i3, e2, n2); 15318 } 15319 function S(t2) { 15320 return document.createElementNS("http://www.w3.org/2000/svg", t2); 15321 } 15322 function k(t2, i3) { 15323 var e2, n2, o2, s2, r2, a2, h2 = ""; 15324 for (e2 = 0, o2 = t2.length; e2 < o2; e2++) { 15325 for (n2 = 0, s2 = (r2 = t2[e2]).length; n2 < s2; n2++) 15326 a2 = r2[n2], h2 += (n2 ? "L" : "M") + a2.x + " " + a2.y; 15327 h2 += i3 ? qi ? "z" : "x" : ""; 15328 } 15329 return h2 || "M0 0"; 15330 } 15331 function B(t2) { 15332 return navigator.userAgent.toLowerCase().indexOf(t2) >= 0; 15333 } 15334 function I(t2, i3, e2, n2) { 15335 return "touchstart" === i3 ? O(t2, e2, n2) : "touchmove" === i3 ? W(t2, e2, n2) : "touchend" === i3 && H(t2, e2, n2), this; 15336 } 15337 function A(t2, i3, e2) { 15338 var n2 = t2["_leaflet_" + i3 + e2]; 15339 return "touchstart" === i3 ? t2.removeEventListener(Xi, n2, false) : "touchmove" === i3 ? t2.removeEventListener(Ji, n2, false) : "touchend" === i3 && (t2.removeEventListener($i, n2, false), t2.removeEventListener(Qi, n2, false)), this; 15340 } 15341 function O(t2, i3, n2) { 15342 var o2 = e(function(t3) { 15343 if ("mouse" !== t3.pointerType && t3.pointerType !== t3.MSPOINTER_TYPE_MOUSE && t3.pointerType !== t3.MSPOINTER_TYPE_MOUSE) { 15344 if (!(te.indexOf(t3.target.tagName) < 0)) 15345 return; 15346 $2(t3); 15347 } 15348 j(t3, i3); 15349 }); 15350 t2["_leaflet_touchstart" + n2] = o2, t2.addEventListener(Xi, o2, false), ee || (document.documentElement.addEventListener(Xi, R, true), document.documentElement.addEventListener(Ji, D, true), document.documentElement.addEventListener($i, N, true), document.documentElement.addEventListener(Qi, N, true), ee = true); 15351 } 15352 function R(t2) { 15353 ie[t2.pointerId] = t2, ne++; 15354 } 15355 function D(t2) { 15356 ie[t2.pointerId] && (ie[t2.pointerId] = t2); 15357 } 15358 function N(t2) { 15359 delete ie[t2.pointerId], ne--; 15360 } 15361 function j(t2, i3) { 15362 t2.touches = [];
15363 for (var e2 in ie) 15364 t2.touches.push(ie[e2]); 15365 t2.changedTouches = [t2], i3(t2); 15366 } 15367 function W(t2, i3, e2) { 15368 var n2 = function(t3) { 15369 (t3.pointerType !== t3.MSPOINTER_TYPE_MOUSE && "mouse" !== t3.pointerType || 0 !== t3.buttons) && j(t3, i3); 15370 }; 15371 t2["_leaflet_touchmove" + e2] = n2, t2.addEventListener(Ji, n2, false); 15372 } 15373 function H(t2, i3, e2) { 15374 var n2 = function(t3) { 15375 j(t3, i3); 15376 }; 15377 t2["_leaflet_touchend" + e2] = n2, t2.addEventListener($i, n2, false), t2.addEventListener(Qi, n2, false); 15378 } 15379 function F(t2, i3, e2) { 15380 function n2(t3) { 15381 var i4; 15382 if (Wi) { 15383 if (!Li || "mouse" === t3.pointerType) 15384 return; 15385 i4 = ne; 15386 } else 15387 i4 = t3.touches.length; 15388 if (!(i4 > 1)) { 15389 var e3 = Date.now(), n3 = e3 - (s2 || e3); 15390 r2 = t3.touches ? t3.touches[0] : t3, a2 = n3 > 0 && n3 <= h2, s2 = e3; 15391 } 15392 } 15393 function o2(t3) { 15394 if (a2 && !r2.cancelBubble) { 15395 if (Wi) { 15396 if (!Li || "mouse" === t3.pointerType) 15397 return; 15398 var e3, n3, o3 = {}; 15399 for (n3 in r2) 15400 e3 = r2[n3], o3[n3] = e3 && e3.bind ? e3.bind(r2) : e3; 15401 r2 = o3; 15402 } 15403 r2.type = "dblclick", i3(r2), s2 = null; 15404 } 15405 } 15406 var s2, r2, a2 = false, h2 = 250; 15407 return t2[re2 + oe + e2] = n2, t2[re2 + se + e2] = o2, t2[re2 + "dblclick" + e2] = i3, t2.addEventListener(oe, n2, false), t2.addEventListener(se, o2, false), t2.addEventListener("dblclick", i3, false), this; 15408 } 15409 function U(t2, i3) { 15410 var e2 = t2[re2 + oe + i3], n2 = t2[re2 + se + i3], o2 = t2[re2 + "dblclick" + i3]; 15411 return t2.removeEventListener(oe, e2, false), t2.removeEventListener(se, n2, false), Li || t2.removeEventListener("dblclick", o2, false), this; 15412 } 15413 function V(t2, i3, e2, n2) { 15414 if ("object" == typeof i3) 15415 for (var o2 in i3) 15416 q(t2, o2, i3[o2], e2); 15417 else 15418 for (var s2 = 0, r2 = (i3 = u(i3)).length; s2 < r2; s2++) 15419 q(t2, i3[s2], e2, n2); 15420 return this; 15421 } 15422 function G(t2, i3, e2, n2) { 15423 if ("object" == typeof i3) 15424 for (var o2 in i3) 15425 K(t2, o2, i3[o2], e2); 15426 else if (i3) 15427 for (var s2 = 0, r2 = (i3 = u(i3)).length; s2 < r2; s2++) 15428 K(t2, i3[s2], e2, n2); 15429 else { 15430 for (var a2 in t2[ae]) 15431 K(t2, a2, t2[ae][a2]); 15432 delete t2[ae]; 15433 } 15434 return this; 15435 } 15436 function q(t2, i3, e2, o2) { 15437 var s2 = i3 + n(e2) + (o2 ? "_" + n(o2) : ""); 15438 if (t2[ae] && t2[ae][s2]) 15439 return this; 15440 var r2 = function(i4) { 15441 return e2.call(o2 || t2, i4 || window.event); 15442 }, a2 = r2; 15443 Wi && 0 === i3.indexOf("touch") ? I(t2, i3, r2, s2) : !Hi || "dblclick" !== i3 || !F || Wi && Mi ? "addEventListener" in t2 ? "mousewheel" === i3 ? t2.addEventListener("onwheel" in t2 ? "wheel" : "mousewheel", r2, false) : "mouseenter" === i3 || "mouseleave" === i3 ? (r2 = function(i4) { 15444 i4 = i4 || window.event, ot(t2, i4) && a2(i4); 15445 }, t2.addEventListener("mouseenter" === i3 ? "mouseover" : "mouseout", r2, false)) : ("click" === i3 && bi && (r2 = function(t3) { 15446 st(t3, a2); 15447 }), t2.addEventListener(i3, r2, false)) : "attachEvent" in t2 && t2.attachEvent("on" + i3, r2) : F(t2, r2, s2), t2[ae] = t2[ae] || {}, t2[ae][s2] = r2; 15448 } 15449 function K(t2, i3, e2, o2) { 15450 var s2 = i3 + n(e2) + (o2 ? "_" + n(o2) : ""), r2 = t2[ae] && t2[ae][s2]; 15451 if (!r2) 15452 return this; 15453 Wi && 0 === i3.indexOf("touch") ? A(t2, i3, s2) : Hi && "dblclick" === i3 && U ? U(t2, s2) : "removeEventListener" in t2 ? "mousewheel" === i3 ? t2.removeEventListener("onw
15453heel" in t2 ? "wheel" : "mousewheel", r2, false) : t2.removeEventListener("mouseenter" === i3 ? "mouseover" : "mouseleave" === i3 ? "mouseout" : i3, r2, false) : "detachEvent" in t2 && t2.detachEvent("on" + i3, r2), t2[ae][s2] = null; 15454 } 15455 function Y(t2) { 15456 return t2.stopPropagation ? t2.stopPropagation() : t2.originalEvent ? t2.originalEvent._stopped = true : t2.cancelBubble = true, nt(t2), this; 15457 } 15458 function X(t2) { 15459 return q(t2, "mousewheel", Y), this; 15460 } 15461 function J(t2) { 15462 return V(t2, "mousedown touchstart dblclick", Y), q(t2, "click", et), this; 15463 } 15464 function $2(t2) { 15465 return t2.preventDefault ? t2.preventDefault() : t2.returnValue = false, this; 15466 } 15467 function Q(t2) { 15468 return $2(t2), Y(t2), this; 15469 } 15470 function tt(t2, i3) { 15471 if (!i3) 15472 return new x(t2.clientX, t2.clientY); 15473 var e2 = i3.getBoundingClientRect(); 15474 return new x(t2.clientX - e2.left - i3.clientLeft, t2.clientY - e2.top - i3.clientTop); 15475 } 15476 function it(t2) { 15477 return Li ? t2.wheelDeltaY / 2 : t2.deltaY && 0 === t2.deltaMode ? -t2.deltaY / he : t2.deltaY && 1 === t2.deltaMode ? 20 * -t2.deltaY : t2.deltaY && 2 === t2.deltaMode ? 60 * -t2.deltaY : t2.deltaX || t2.deltaZ ? 0 : t2.wheelDelta ? (t2.wheelDeltaY || t2.wheelDelta) / 2 : t2.detail && Math.abs(t2.detail) < 32765 ? 20 * -t2.detail : t2.detail ? t2.detail / -32765 * 60 : 0; 15478 } 15479 function et(t2) { 15480 ue[t2.type] = true; 15481 } 15482 function nt(t2) { 15483 var i3 = ue[t2.type]; 15484 return ue[t2.type] = false, i3; 15485 } 15486 function ot(t2, i3) { 15487 var e2 = i3.relatedTarget; 15488 if (!e2) 15489 return true; 15490 try { 15491 for (; e2 && e2 !== t2; ) 15492 e2 = e2.parentNode; 15493 } catch (t3) { 15494 return false; 15495 } 15496 return e2 !== t2; 15497 } 15498 function st(t2, i3) { 15499 var e2 = t2.timeStamp || t2.originalEvent && t2.originalEvent.timeStamp, n2 = di && e2 - di; 15500 n2 && n2 > 100 && n2 < 500 || t2.target._simulatedClick && !t2._simulated ? Q(t2) : (di = e2, i3(t2)); 15501 } 15502 function rt(t2) { 15503 return "string" == typeof t2 ? document.getElementById(t2) : t2; 15504 } 15505 function at(t2, i3) { 15506 var e2 = t2.style[i3] || t2.currentStyle && t2.currentStyle[i3]; 15507 if ((!e2 || "auto" === e2) && document.defaultView) { 15508 var n2 = document.defaultView.getComputedStyle(t2, null); 15509 e2 = n2 ? n2[i3] : null; 15510 } 15511 return "auto" === e2 ? null : e2; 15512 } 15513 function ht(t2, i3, e2) { 15514 var n2 = document.createElement(t2); 15515 return n2.className = i3 || "", e2 && e2.appendChild(n2), n2; 15516 } 15517 function ut(t2) { 15518 var i3 = t2.parentNode; 15519 i3 && i3.removeChild(t2); 15520 } 15521 function lt(t2) { 15522 for (; t2.firstChild; ) 15523 t2.removeChild(t2.firstChild); 15524 } 15525 function ct(t2) { 15526 var i3 = t2.parentNode; 15527 i3.lastChild !== t2 && i3.appendChild(t2); 15528 } 15529 function _t(t2) { 15530 var i3 = t2.parentNode; 15531 i3.firstChild !== t2 && i3.insertBefore(t2, i3.firstChild); 15532 } 15533 function dt(t2, i3) { 15534 if (void 0 !== t2.classList) 15535 return t2.classList.contains(i3); 15536 var e2 = gt(t2); 15537 return e2.length > 0 && new RegExp("(^|\\s)" + i3 + "(\\s|$)").test(e2); 15538 } 15539 function pt(t2, i3) { 15540 if (void 0 !== t2.classList) 15541 for (var e2 = u(i3), n2 = 0, o2 = e2.length; n2 < o2; n2++) 15542 t2.classList.add(e2[n2]); 15543 else if (!dt(t2, i3)) { 15544 var s2 = gt(t2); 15545 ft(t2, (s2 ? s2 + " " : "") + i3); 15546 } 15547 } 15548 function mt(t2, i3) { 15549 void 0 !== t2.classList ? t2.classList.remove(i3) : ft(t2, h((" " + gt(t2) + " ").replace(" " + i3 + " ", " "))); 15550 } 15551 function ft(t2, i3) { 15552 void 0 === t2.className.baseVal ? t2.className = i3 : t2.className.baseVal = i3; 15553 } 15554 function gt(t2) { 15555 return void 0 === t2.className.baseVal ? t2.className : t2.className.baseVal; 15556 } 15557 function vt(t2, i3) { 15558 "opacity" in t2.style ? t2.style.opacity = i3 : "filter" in t2.style && yt(t2, i3); 15559 } 15560 function yt(t2, i3) { 15561 var e2 = false, n2 = "DXImageTransform.Microsoft.Alpha"; 15562 try { 15563 e2 = t2.filters.item(n2); 15564 } catch (t3) { 15565 if (1 === i3) 15566 return; 15567 } 15568 i3 = Math.round(100 * i3), e2 ? (e2.Enabled = 100 !== i3, e2.Opacity = i3) : t2.style.filter += " progid:" + n2 + "(opacity=" + i3 + ")"; 15569 } 15570 function xt(t2) { 15571 for (var i3 = document.documentElement.style, e2 = 0; e2 < t2.length; e2++) 15572 if (t2[e2] in i3) 15573 return t2[e2]; 15574 return false;
15575 } 15576 function wt(t2, i3, e2) { 15577 var n2 = i3 || new x(0, 0); 15578 t2.style[ce] = (Bi ? "translate(" + n2.x + "px," + n2.y + "px)" : "translate3d(" + n2.x + "px," + n2.y + "px,0)") + (e2 ? " scale(" + e2 + ")" : ""); 15579 } 15580 function Lt(t2, i3) { 15581 t2._leaflet_pos = i3, Oi ? wt(t2, i3) : (t2.style.left = i3.x + "px", t2.style.top = i3.y + "px"); 15582 } 15583 function Pt(t2) { 15584 return t2._leaflet_pos || new x(0, 0); 15585 } 15586 function bt() { 15587 V(window, "dragstart", $2); 15588 } 15589 function Tt() { 15590 G(window, "dragstart", $2); 15591 } 15592 function zt(t2) { 15593 for (; -1 === t2.tabIndex; ) 15594 t2 = t2.parentNode; 15595 t2.style && (Mt(), me = t2, fe = t2.style.outline, t2.style.outline = "none", V(window, "keydown", Mt)); 15596 } 15597 function Mt() { 15598 me && (me.style.outline = fe, me = void 0, fe = void 0, G(window, "keydown", Mt)); 15599 } 15600 function Ct(t2, i3) { 15601 if (!i3 || !t2.length) 15602 return t2.slice(); 15603 var e2 = i3 * i3; 15604 return t2 = kt(t2, e2), t2 = Et(t2, e2); 15605 } 15606 function Zt(t2, i3, e2) { 15607 return Math.sqrt(Rt(t2, i3, e2, true)); 15608 } 15609 function Et(t2, i3) { 15610 var e2 = t2.length, n2 = new (typeof Uint8Array != void 0 + "" ? Uint8Array : Array)(e2); 15611 n2[0] = n2[e2 - 1] = 1, St(t2, n2, i3, 0, e2 - 1); 15612 var o2, s2 = []; 15613 for (o2 = 0; o2 < e2; o2++) 15614 n2[o2] && s2.push(t2[o2]); 15615 return s2; 15616 } 15617 function St(t2, i3, e2, n2, o2) { 15618 var s2, r2, a2, h2 = 0; 15619 for (r2 = n2 + 1; r2 <= o2 - 1; r2++) 15620 (a2 = Rt(t2[r2], t2[n2], t2[o2], true)) > h2 && (s2 = r2, h2 = a2); 15621 h2 > e2 && (i3[s2] = 1, St(t2, i3, e2, n2, s2), St(t2, i3, e2, s2, o2)); 15622 } 15623 function kt(t2, i3) { 15624 for (var e2 = [t2[0]], n2 = 1, o2 = 0, s2 = t2.length; n2 < s2; n2++) 15625 Ot(t2[n2], t2[o2]) > i3 && (e2.push(t2[n2]), o2 = n2); 15626 return o2 < s2 - 1 && e2.push(t2[s2 - 1]), e2; 15627 } 15628 function Bt(t2, i3, e2, n2, o2) { 15629 var s2, r2, a2, h2 = n2 ? ze : At(t2, e2), u2 = At(i3, e2); 15630 for (ze = u2; ; ) { 15631 if (!(h2 | u2)) 15632 return [t2, i3]; 15633 if (h2 & u2) 15634 return false; 15635 a2 = At(r2 = It(t2, i3, s2 = h2 || u2, e2, o2), e2), s2 === h2 ? (t2 = r2, h2 = a2) : (i3 = r2, u2 = a2); 15636 } 15637 } 15638 function It(t2, i3, e2, n2, o2) { 15639 var s2, r2, a2 = i3.x - t2.x, h2 = i3.y - t2.y, u2 = n2.min, l2 = n2.max; 15640 return 8 & e2 ? (s2 = t2.x + a2 * (l2.y - t2.y) / h2, r2 = l2.y) : 4 & e2 ? (s2 = t2.x + a2 * (u2.y - t2.y) / h2, r2 = u2.y) : 2 & e2 ? (s2 = l2.x, r2 = t2.y + h2 * (l2.x - t2.x) / a2) : 1 & e2 && (s2 = u2.x, r2 = t2.y + h2 * (u2.x - t2.x) / a2), new x(s2, r2, o2); 15641 } 15642 function At(t2, i3) { 15643 var e2 = 0; 15644 return t2.x < i3.min.x ? e2 |= 1 : t2.x > i3.max.x && (e2 |= 2), t2.y < i3.min.y ? e2 |= 4 : t2.y > i3.max.y && (e2 |= 8), e2; 15645 } 15646 function Ot(t2, i3) { 15647 var e2 = i3.x - t2.x, n2 = i3.y - t2.y; 15648 return e2 * e2 + n2 * n2; 15649 } 15650 function Rt(t2, i3, e2, n2) { 15651 var o2, s2 = i3.x, r2 = i3.y, a2 = e2.x - s2, h2 = e2.y - r2, u2 = a2 * a2 + h2 * h2; 15652 return u2 > 0 && ((o2 = ((t2.x - s2) * a2 + (t2.y - r2) * h2) / u2) > 1 ? (s2 = e2.x, r2 = e2.y) : o2 > 0 && (s2 += a2 * o2, r2 += h2 * o2)), a2 = t2.x - s2, h2 = t2.y - r2, n2 ? a2 * a2 + h2 * h2 : new x(s2, r2); 15653 } 15654 function Dt(t2) { 15655 return !ei(t2[0]) || "object" != typeof t2[0][0] && void 0 !== t2[0][0]; 15656 } 15657 function Nt(t2) { 15658 return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."), Dt(t2); 15659 } 15660 function jt(t2, i3, e2) { 15661 var n2, o2, s2, r2, a2, h2, u2, l2, c2, _2 = [1, 4, 2, 8]; 15662 for (o2 = 0, u2 = t2.length; o2 < u2; o2++) 15663 t2[o2]._code = At(t2[o2], i3); 15664 for (r2 = 0; r2 < 4; r2++) { 15665 for (l2 = _2[r2], n2 = [], o2 = 0, s2 = (u2 = t2.length) - 1; o2 < u2; s2 = o2++) 15666 a2 = t2[o2], h2 = t2[s2], a2._code & l2 ? h2._code & l2 || ((c2 = It(h2, a2, l2, i3, e2))._code = At(c2, i3), n2.push(c2)) : (h2._code & l2 && ((c2 = It(h2, a2, l2, i3, e2))._code = At(c2, i3), n2.push(c2)), n2.push(a2)); 15667 t2 = n2; 15668 } 15669 return t2; 15670 } 15671 function Wt(t2, i3) { 15672 var e2, n2, o2, s2, r2 = "Feature" === t2.type ? t2.geometry : t2, a2 = r2 ? r2.coordinates : null, h2 = [], u2 = i3 && i3.pointToLayer, l2 = i3 && i3.coordsToLatLng || Ht; 15673 if (!a2 && !r2) 15674 return null; 15675 switch (r2.type) { 15676 case "Point": 15677 return e2 = l2(a2), u2 ? u2(t2, e2) : new qe(e2); 15678 case "MultiPoint": 15679 for (o2 = 0, s2 = a2.length; o2 < s2; o2++) 15680 e2 = l2(a2[o2]), h2.push(u2 ? u2(t2, e2) : new qe(e2)); 15681 return new Fe(h2); 15682 case "LineString": 15683 case "MultiLineString": 15684 return n2 = Ft(a2, "LineString" === r2.type ? 0 : 1, l2), new Je(n2, i3); 15685 case "Polygon": 15686 case "MultiPolygon": 15687 return n2 = Ft(a2, "Polygon" === r2.type ? 1 : 2, l2), new $e(n2, i3); 15688 case "GeometryCollection": 15689 for (o2 = 0, s2 = r2.geometries.length; o2 < s2; o2++) { 15690 var c2 = Wt({ geometry: r2.geometries[o2], type: "Feature", properties: t2.properties }, i3); 15691 c2 && h2.push(c2); 15692 } 15693 return new Fe(h2); 15694 default: 15695 throw new Error("Invalid GeoJSON object."); 15696 } 15697 } 15698 function Ht(t2) { 15699 return new M(t2[1], t2[0], t2[2]); 15700 } 15701 function Ft(t2, i3, e2) { 15702 for (var n2, o2 = [], s2 = 0, r2 = t2.length; s2 < r2; s2++) 15703 n2 = i3 ? Ft(t2[s2], i3 - 1, e2) : (e2 || Ht)(t2[s2]), o2.push(n2); 15704 return o2; 15705 } 15706 function Ut(t2, i3) { 15707 return i3 = "number" == typeof i3 ? i3 : 6, void 0 !== t2.alt ? [a(t2.lng, i3), a(t2.lat, i3), a(t2.alt, i3)] : [a(t2.lng, i3), a(t2.lat, i3)]; 15708 } 15709 function Vt(t2, i3, e2, n2) { 15710 for (var o2 = [], s2 = 0, r2 = t2.length; s2 < r2; s2++) 15711 o2.push(i3 ? Vt(t2[s2], i3 - 1, e2, n2) : Ut(t2[s2], n2)); 15712 return !i3 && e2 && o2.push(o2[0]), o2; 15713 } 15714 function Gt(t2, e2) { 15715 return t2.feature ? i2({}, t2.feature, { geometry: e2 }) : qt(e2); 15716 } 15717 function qt(t2) { 15718 return "Feature" === t2.type || "FeatureCollection" === t2.type ? t2 : { type: "Feature", properties: {}, geometry: t2 }; 15719 } 15720 function Kt(t2, i3) { 15721 return new Qe(t2, i3); 15722 } 15723 function Yt(t2, i3) { 15724 return new ln(t2, i3); 15725 } 15726 function Xt(t2) { 15727 return Gi ? new dn(t2) : null; 15728 } 15729 function Jt(t2) { 15730 return qi || Ki ? new gn(t2) : null; 15731 } 15732 var $t = Object.freeze; 15733 Object.freeze = function(t2) { 15734 return t2; 15735 }; 15736 var Qt = Object.create || function() { 15737 function t2() { 15738 } 15739 return function(i3) { 15740 return t2.prototype = i3, new t2(); 15741 }; 15742 }(), ti = 0, ii = /\{ *([\w_\-]+) *\}/g, ei = Array.isArray || function(t2) { 15743 return "[object Array]" === Object.prototype.toString.call(t2); 15744 }, ni = "data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=", oi = 0, si = window.requestAnimationFrame || p("RequestAnimationFrame") || m, ri = window.cancelAnimationFrame || p("CancelAnimationFrame") || p("CancelRequestAnimationFrame") || function(t2) { 15745 window.clearTimeout(t2); 15746 }, ai = (Object.freeze || Object)({ freeze: $t, extend: i2, create: Qt, bind: e, lastId: ti, stamp: n, throttle: o, wrapNum: s, falseFn: r, formatNum: a, trim: h, splitWords: u, setOptions: l, getParamString: c, template: _, isArray: ei, indexOf: d, emptyImageUrl: ni, requestFn: si, cancelFn: ri, requestAnimFrame: f, cancelAnimFrame: g }); 15747 v.extend = function(t2) { 15748 var e2 = function() { 15749 this.initialize && this.initialize.apply(this, arguments), this.callInitHooks(); 15750 }, n2 = e2.__super__ = this.prototype, o2 = Qt(n2); 15751 o2.constructor = e2, e2.prototype = o2; 15752 for (var s2 in this) 15753 this.hasOwnProperty(s2) && "prototype" !== s2 && "__super__" !== s2 && (e2[s2] = this[s2]); 15754 return t2.statics && (i2(e2, t2.statics), delete t2.statics), t2.includes && (y(t2.includes), i2.apply(null, [o2].concat(t2.includes)), delete t2.includes), o2.options && (t2.options = i2(Qt(o2.options), t2.options)), i2(o2, t2), o2._initHooks = [], o2.callInitHooks = function() { 15755 if (!this._initHooksCalled) { 15756 n2.callInitHooks && n2.callInitHooks.call(this), this._initHooksCalled = true; 15757 for (var t3 = 0, i3 = o2._initHooks.length; t3 < i3; t3++) 15758 o2._initHooks[t3].call(this); 15759 } 15760 }, e2; 15761 }, v.include = function(t2) { 15762 return i2(this.prototype, t2), this; 15763 }, v.mergeOptions = function(t2) { 15764 return i2(this.prototype.options, t2), this; 15765 }, v.addInitHook = function(t2) { 15766 var i3 = Array.prototype.slice.call(arguments, 1), e2 = "function" == typeof t2 ? t2 : function() { 15767 this[t2].apply(this, i3); 15768 }; 15769 return this.prototype._initHooks = this.prototype._initHooks || [], this.prototype._initHooks.push(e2), this; 15770 }; 15771 var hi = { on: function(t2, i3, e2) { 15772 if ("object" == typeof t2) 15773 for (var n2 in t2) 15774 this._on(n2, t2[n2], i3); 15775 else 15776 for (var o2 = 0, s2 = (t2 = u(t2)).length; o2 < s2; o2++) 15777 this._on(t2[o2], i3, e2); 15778 return this; 15779 }, off: function(t2, i3, e2) { 15780 if (t2) 15781 if ("object" == typeof t2) 15782 for (var n2 in t2) 15783 this._off(n2, t2[n2], i3); 15784 else 15785 for (var o2 = 0, s2 = (t2 = u(t2)).length; o2 < s2; o2++) 15786 this._off(t2[o2], i3, e2); 15787 else 15788 delete this._events; 15789 return this; 15790 }, _on: function(t2, i3, e2) { 15791 this._events = this._events || {}; 15792 var n2 = this._events[t2]; 15793 n2 || (n2 = [], this._events[t2] = n2), e2 === this && (e2 = void 0); 15794 for (var o2 = { fn: i3, ctx: e2 }, s2 = n2, r2 = 0, a2 = s2.length; r2 < a2; r2++) 15795 if (s2[r2].fn === i3 && s2[r2].ctx === e2) 15796 return; 15797 s2.push(o2); 15798 }, _off: function(t2, i3, e2) { 15799 var n2, o2, s2; 15800 if (this._events && (n2 = this._events[t2])) 15801 if (i3) { 15802 if (e2 === this && (e2 = void 0), n2) 15803 for (o2 = 0, s2 = n2.length; o2 < s2; o2++) { 15804 var a2 = n2[o2]; 15805 if (a2.ctx === e2 && a2.fn === i3) 15806 return a2.fn = r, this._firingCount && (this._events[t2] = n2 = n2.slice()), void n2.splice(o2, 1); 15807 } 15808 } else { 15809 for (o2 = 0, s2 = n2.length; o2 < s2; o2++) 15810 n2[o2].fn = r; 15811 delete this._events[t2]; 15812 } 15813 }, fire: function(t2, e2, n2) { 15814 if (!this.listens(t2, n2)) 15815 return this; 15816 var o2 = i2({}, e2, { type: t2, target: this }); 15817 if (this._events) { 15818 var s2 = this._events[t2]; 15819 if (s2) { 15820 this._firingCount = this._firingCount + 1 || 1; 15821 for (var r2 = 0, a2 = s2.length; r2 < a2; r2++) { 15822 var h2 = s2[r2]; 15823 h2.fn.call(h2.ctx || this, o2); 15824 } 15825 this._firingCount--; 15826 } 15827 } 15828 return n2 && this._propagateEvent(o2), this; 15829 }, listens: function(t2, i3) { 15830 var e2 = this._events && this._events[t2]; 15831 if (e2 && e2.length) 15832 return true; 15833 if (i3) { 15834 for (var n2 in this._eventParents) 15835 if (this._eventParents[n2].listens(t2, i3)) 15836 return true; 15837 } 15838 return false;
15839 }, once: function(t2, i3, n2) { 15840 if ("object" == typeof t2) { 15841 for (var o2 in t2) 15842 this.once(o2, t2[o2], i3); 15843 return this; 15844 } 15845 var s2 = e(function() { 15846 this.off(t2, i3, n2).off(t2, s2, n2); 15847 }, this); 15848 return this.on(t2, i3, n2).on(t2, s2, n2); 15849 }, addEventParent: function(t2) { 15850 return this._eventParents = this._eventParents || {}, this._eventParents[n(t2)] = t2, this; 15851 }, removeEventParent: function(t2) { 15852 return this._eventParents && delete this._eventParents[n(t2)], this; 15853 }, _propagateEvent: function(t2) { 15854 for (var e2 in this._eventParents) 15855 this._eventParents[e2].fire(t2.type, i2({ layer: t2.target }, t2), true); 15856 } }; 15857 hi.addEventListener = hi.on, hi.removeEventListener = hi.clearAllEventListeners = hi.off, hi.addOneTimeEventListener = hi.once, hi.fireEvent = hi.fire, hi.hasEventListeners = hi.listens; 15858 var ui = v.extend(hi); 15859 x.prototype = { clone: function() { 15860 return new x(this.x, this.y); 15861 }, add: function(t2) { 15862 return this.clone()._add(w(t2)); 15863 }, _add: function(t2) { 15864 return this.x += t2.x, this.y += t2.y, this; 15865 }, subtract: function(t2) { 15866 return this.clone()._subtract(w(t2)); 15867 }, _subtract: function(t2) { 15868 return this.x -= t2.x, this.y -= t2.y, this; 15869 }, divideBy: function(t2) { 15870 return this.clone()._divideBy(t2); 15871 }, _divideBy: function(t2) { 15872 return this.x /= t2, this.y /= t2, this; 15873 }, multiplyBy: function(t2) { 15874 return this.clone()._multiplyBy(t2); 15875 }, _multiplyBy: function(t2) { 15876 return this.x *= t2, this.y *= t2, this; 15877 }, scaleBy: function(t2) { 15878 return new x(this.x * t2.x, this.y * t2.y); 15879 }, unscaleBy: function(t2) { 15880 return new x(this.x / t2.x, this.y / t2.y); 15881 }, round: function() { 15882 return this.clone()._round(); 15883 }, _round: function() { 15884 return this.x = Math.round(this.x), this.y = Math.round(this.y), this; 15885 }, floor: function() { 15886 return this.clone()._floor(); 15887 }, _floor: function() { 15888 return this.x = Math.floor(this.x), this.y = Math.floor(this.y), this; 15889 }, ceil: function() { 15890 return this.clone()._ceil(); 15891 }, _ceil: function() { 15892 return this.x = Math.ceil(this.x), this.y = Math.ceil(this.y), this; 15893 }, distanceTo: function(t2) { 15894 var i3 = (t2 = w(t2)).x - this.x, e2 = t2.y - this.y; 15895 return Math.sqrt(i3 * i3 + e2 * e2); 15896 }, equals: function(t2) { 15897 return (t2 = w(t2)).x === this.x && t2.y === this.y; 15898 }, contains: function(t2) { 15899 return t2 = w(t2), Math.abs(t2.x) <= Math.abs(this.x) && Math.abs(t2.y) <= Math.abs(this.y); 15900 }, toString: function() { 15901 return "Point(" + a(this.x) + ", " + a(this.y) + ")"; 15902 } }, P.prototype = { extend: function(t2) { 15903 return t2 = w(t2), this.min || this.max ? (this.min.x = Math.min(t2.x, this.min.x), this.max.x = Math.max(t2.x, this.max.x), this.min.y = Math.min(t2.y, this.min.y), this.max.y = Math.max(t2.y, this.max.y)) : (this.min = t2.clone(), this.max = t2.clone()), this; 15904 }, getCenter: function(t2) { 15905 return new x((this.min.x + this.max.x) / 2, (this.min.y + this.max.y) / 2, t2); 15906 }, getBottomLeft: function() { 15907 return new x(this.min.x, this.max.y); 15908 }, getTopRight: function() { 15909 return new x(this.max.x, this.min.y); 15910 }, getTopLeft: function() { 15911 return this.min; 15912 }, getBottomRight: function() { 15913 return this.max; 15914 }, getSize: function() { 15915 return this.max.subtract(this.min); 15916 }, contains: function(t2) { 15917 var i3, e2; 15918 return (t2 = "number" == typeof t2[0] || t2 instanceof x ? w(t2) : b(t2)) instanceof P ? (i3 = t2.min, e2 = t2.max) : i3 = e2 = t2, i3.x >= this.min.x && e2.x <= this.max.x && i3.y >= this.min.y && e2.y <= this.max.y; 15919 }, intersects: function(t2) { 15920 t2 = b(t2); 15921 var i3 = this.min, e2 = this.max, n2 = t2.min, o2 = t2.max, s2 = o2.x >= i3.x && n2.x <= e2.x, r2 = o2.y >= i3.y && n2.y <= e2.y; 15922 return s2 && r2; 15923 }, overlaps: function(t2) { 15924 t2 = b(t2); 15925 var i3 = this.min, e2 = this.max, n2 = t2.min, o2 = t2.max, s2 = o2.x > i3.x && n2.x < e2.x, r2 = o2.y > i3.y && n2.y < e2.y; 15926 return s2 && r2; 15927 }, isValid: function() { 15928 return !(!this.min || !this.max); 15929 } }, T.prototype = { extend: function(t2) { 15930 var i3, e2, n2 = this._southWest, o2 = this._northEast; 15931 if (t2 instanceof M) 15932 i3 = t2, e2 = t2; 15933 else { 15934 if (!(t2 instanceof T)) 15935 return t2 ? this.extend(C(t2) || z(t2)) : this; 15936 if (i3 = t2._southWest, e2 = t2._northEast, !i3 || !e2) 15937 return this; 15938 } 15939 return n2 || o2 ? (n2.lat = Math.min(i3.lat, n2.lat), n2.lng = Math.min(i3.lng, n2.lng), o2.lat = Math.max(e2.lat, o2.lat), o2.lng = Math.max(e2.lng, o2.lng)) : (this._southWest = new M(i3.lat, i3.lng), this._northEast = new M(e2.lat, e2.lng)), this; 15940 }, pad: function(t2) { 15941 var i3 = this._southWest, e2 = this._northEast, n2 = Math.abs(i3.lat - e2.lat) * t2, o2 = Math.abs(i3.lng - e2.lng) * t2; 15942 return new T(new M(i3.lat - n2, i3.lng - o2), new M(e2.lat + n2, e2.lng + o2)); 15943 }, getCenter: function() { 15944 return new M((this._southWest.lat + this._northEast.lat) / 2, (this._southWest.lng + this._northEast.lng) / 2); 15945 }, getSouthWest: function() { 15946 return this._southWest; 15947 }, getNorthEast: function() { 15948 return this._northEast; 15949 }, getNorthWest: function() { 15950 return new M(this.getNorth(), this.getWest()); 15951 }, getSouthEast: function() { 15952 return new M(this.getSouth(), this.getEast()); 15953 }, getWest: function() { 15954 return this._southWest.lng; 15955 }, getSouth: function() { 15956 return this._southWest.lat; 15957 }, getEast: function() { 15958 return this._northEast.lng; 15959 }, getNorth: function() { 15960 return this._northEast.lat; 15961 }, contains: function(t2) { 15962 t2 = "number" == typeof t2[0] || t2 instanceof M || "lat" in t2 ? C(t2) : z(t2); 15963 var i3, e2, n2 = this._southWest, o2 = this._northEast;
15964 return t2 instanceof T ? (i3 = t2.getSouthWest(), e2 = t2.getNorthEast()) : i3 = e2 = t2, i3.lat >= n2.lat && e2.lat <= o2.lat && i3.lng >= n2.lng && e2.lng <= o2.lng; 15965 }, intersects: function(t2) { 15966 t2 = z(t2); 15967 var i3 = this._southWest, e2 = this._northEast, n2 = t2.getSouthWest(), o2 = t2.getNorthEast(), s2 = o2.lat >= i3.lat && n2.lat <= e2.lat, r2 = o2.lng >= i3.lng && n2.lng <= e2.lng; 15968 return s2 && r2; 15969 }, overlaps: function(t2) { 15970 t2 = z(t2); 15971 var i3 = this._southWest, e2 = this._northEast, n2 = t2.getSouthWest(), o2 = t2.getNorthEast(), s2 = o2.lat > i3.lat && n2.lat < e2.lat, r2 = o2.lng > i3.lng && n2.lng < e2.lng; 15972 return s2 && r2; 15973 }, toBBoxString: function() { 15974 return [this.getWest(), this.getSouth(), this.getEast(), this.getNorth()].join(","); 15975 }, equals: function(t2, i3) { 15976 return !!t2 && (t2 = z(t2), this._southWest.equals(t2.getSouthWest(), i3) && this._northEast.equals(t2.getNorthEast(), i3)); 15977 }, isValid: function() { 15978 return !(!this._southWest || !this._northEast); 15979 } }, M.prototype = { equals: function(t2, i3) { 15980 return !!t2 && (t2 = C(t2), Math.max(Math.abs(this.lat - t2.lat), Math.abs(this.lng - t2.lng)) <= (void 0 === i3 ? 1e-9 : i3)); 15981 }, toString: function(t2) { 15982 return "LatLng(" + a(this.lat, t2) + ", " + a(this.lng, t2) + ")"; 15983 }, distanceTo: function(t2) { 15984 return ci.distance(this, C(t2)); 15985 }, wrap: function() { 15986 return ci.wrapLatLng(this); 15987 }, toBounds: function(t2) { 15988 var i3 = 180 * t2 / 40075017, e2 = i3 / Math.cos(Math.PI / 180 * this.lat); 15989 return z([this.lat - i3, this.lng - e2], [this.lat + i3, this.lng + e2]); 15990 }, clone: function() { 15991 return new M(this.lat, this.lng, this.alt); 15992 } }; 15993 var li = { latLngToPoint: function(t2, i3) { 15994 var e2 = this.projection.project(t2), n2 = this.scale(i3); 15995 return this.transformation._transform(e2, n2); 15996 }, pointToLatLng: function(t2, i3) { 15997 var e2 = this.scale(i3), n2 = this.transformation.untransform(t2, e2); 15998 return this.projection.unproject(n2); 15999 }, project: function(t2) { 16000 return this.projection.project(t2); 16001 }, unproject: function(t2) { 16002 return this.projection.unproject(t2); 16003 }, scale: function(t2) { 16004 return 256 * Math.pow(2, t2); 16005 }, zoom: function(t2) { 16006 return Math.log(t2 / 256) / Math.LN2; 16007 }, getProjectedBounds: function(t2) { 16008 if (this.infinite) 16009 return null; 16010 var i3 = this.projection.bounds, e2 = this.scale(t2); 16011 return new P(this.transformation.transform(i3.min, e2), this.transformation.transform(i3.max, e2)); 16012 }, infinite: false, wrapLatLng: function(t2) { 16013 var i3 = this.wrapLng ? s(t2.lng, this.wrapLng, true) : t2.lng; 16014 return new M(this.wrapLat ? s(t2.lat, this.wrapLat, true) : t2.lat, i3, t2.alt); 16015 }, wrapLatLngBounds: function(t2) { 16016 var i3 = t2.getCenter(), e2 = this.wrapLatLng(i3), n2 = i3.lat - e2.lat, o2 = i3.lng - e2.lng; 16017 if (0 === n2 && 0 === o2) 16018 return t2;
16019 var s2 = t2.getSouthWest(), r2 = t2.getNorthEast(); 16020 return new T(new M(s2.lat - n2, s2.lng - o2), new M(r2.lat - n2, r2.lng - o2)); 16021 } }, ci = i2({}, li, { wrapLng: [-180, 180], R: 6371e3, distance: function(t2, i3) { 16022 var e2 = Math.PI / 180, n2 = t2.lat * e2, o2 = i3.lat * e2, s2 = Math.sin(n2) * Math.sin(o2) + Math.cos(n2) * Math.cos(o2) * Math.cos((i3.lng - t2.lng) * e2); 16023 return this.R * Math.acos(Math.min(s2, 1)); 16024 } }), _i = { R: 6378137, MAX_LATITUDE: 85.0511287798, project: function(t2) { 16025 var i3 = Math.PI / 180, e2 = this.MAX_LATITUDE, n2 = Math.max(Math.min(e2, t2.lat), -e2), o2 = Math.sin(n2 * i3); 16026 return new x(this.R * t2.lng * i3, this.R * Math.log((1 + o2) / (1 - o2)) / 2); 16027 }, unproject: function(t2) { 16028 var i3 = 180 / Math.PI; 16029 return new M((2 * Math.atan(Math.exp(t2.y / this.R)) - Math.PI / 2) * i3, t2.x * i3 / this.R); 16030 }, bounds: function() { 16031 var t2 = 6378137 * Math.PI; 16032 return new P([-t2, -t2], [t2, t2]); 16033 }() }; 16034 Z.prototype = { transform: function(t2, i3) { 16035 return this._transform(t2.clone(), i3); 16036 }, _transform: function(t2, i3) { 16037 return i3 = i3 || 1, t2.x = i3 * (this._a * t2.x + this._b), t2.y = i3 * (this._c * t2.y + this._d), t2; 16038 }, untransform: function(t2, i3) { 16039 return i3 = i3 || 1, new x((t2.x / i3 - this._b) / this._a, (t2.y / i3 - this._d) / this._c); 16040 } }; 16041 var di, pi, mi, fi, gi = i2({}, ci, { code: "EPSG:3857", projection: _i, transformation: function() { 16042 var t2 = 0.5 / (Math.PI * _i.R); 16043 return E(t2, 0.5, -t2, 0.5); 16044 }() }), vi = i2({}, gi, { code: "EPSG:900913" }), yi = document.documentElement.style, xi = "ActiveXObject" in window, wi = xi && !document.addEventListener, Li = "msLaunchUri" in navigator && !("documentMode" in document), Pi = B("webkit"), bi = B("android"), Ti = B("android 2") || B("android 3"), zi = !!window.opera, Mi = B("chrome"), Ci = B("gecko") && !Pi && !zi && !xi, Zi = !Mi && B("safari"), Ei = B("phantom"), Si = "OTransition" in yi, ki = 0 === navigator.platform.indexOf("Win"), Bi = xi && "transition" in yi, Ii = "WebKitCSSMatrix" in window && "m11" in new window.WebKitCSSMatrix() && !Ti, Ai = "MozPerspective" in yi, Oi = !window.L_DISABLE_3D && (Bi || Ii || Ai) && !Si && !Ei, Ri = "undefined" != typeof orientation || B("mobile"), Di = Ri && Pi, Ni = Ri && Ii, ji = !window.PointerEvent && window.MSPointerEvent, Wi = !(!window.PointerEvent && !ji), Hi = !window.L_NO_TOUCH && (Wi || "ontouchstart" in window || window.DocumentTouch && document instanceof window.DocumentTouch), Fi = Ri && zi, Ui = Ri && Ci, Vi = (window.devicePixelRatio || window.screen.deviceXDPI / window.screen.logicalXDPI) > 1, Gi = !!document.createElement("canvas").getContext, qi = !(!document.createElementNS || !S("svg").createSVGRect), Ki = !qi && function() { 16045 try { 16046 var t2 = document.createElement("div"); 16047 t2.innerHTML = '<v:shape adj="1"/>'; 16048 var i3 = t2.firstChild; 16049 return i3.style.behavior = "url(#default#VML)", i3 && "object" == typeof i3.adj; 16050 } catch (t3) { 16051 return false; 16052 } 16053 }(), Yi = (Object.freeze || Object)({ ie: xi, ielt9: wi, edge: Li, webkit: Pi, android: bi, android23: Ti, opera: zi, chrome: Mi, gecko: Ci, safari: Zi, phantom: Ei, opera12: Si, win: ki, ie3d: Bi, webkit3d: Ii, gecko3d: Ai, any3d: Oi, mobile: Ri, mobileWebkit: Di, mobileWebkit3d: Ni, msPointer: ji, pointer: Wi, touch: Hi, mobileOpera: Fi, mobileGecko: Ui, retina: Vi, canvas: Gi, svg: qi, vml: Ki }), Xi = ji ? "MSPointerDown" : "pointerdown", Ji = ji ? "MSPointerMove" : "pointermove", $i = ji ? "MSPointerUp" : "pointerup", Qi = ji ? "MSPointerCancel" : "pointercancel", te = ["INPUT", "SELECT", "OPTION"], ie = {}, ee = false, ne = 0, oe = ji ? "MSPointerDown" : Wi ? "pointerdown" : "touchstart", se = ji ? "MSPointerUp" : Wi ? "pointerup" : "touchend", re2 = "_leaflet_", ae = "_leaflet_events", he = ki && Mi ? 2 * window.devicePixelRatio : Ci ? window.devicePixelRatio : 1, ue = {}, le = (Object.freeze || Object)({ on: V, off: G, stopPropagation: Y, disableScrollPropagation: X, disableClickPropagation: J, preventDefault: $2, stop: Q, getMousePosition: tt, getWheelDelta: it, fakeStop: et, skipped: nt, isExternalTarget: ot, addListener: V, removeListener: G }), ce = xt(["transform", "WebkitTransform", "OTransform", "MozTransform", "msTransform"]), _e = xt(["webkitTransition", "transition", "OTransition", "MozTransition", "msTransition"]), de = "webkitTransition" === _e || "OTransition" === _e ? _e + "End" : "transitionend"; 16054 if ("onselectstart" in document) 16055 pi = function() { 16056 V(window, "selectstart", $2); 16057 }, mi = function() { 16058 G(window, "selectstart", $2); 16059 }; 16060 else { 16061 var pe = xt(["userSelect", "WebkitUserSelect", "OUserSelect", "MozUserSelect", "msUserSelect"]); 16062 pi = function() { 16063 if (pe) { 16064 var t2 = document.documentElement.style; 16065 fi = t2[pe], t2[pe] = "none"; 16066 } 16067 }, mi = function() { 16068 pe && (document.documentElement.style[pe] = fi, fi = void 0); 16069 }; 16070 } 16071 var me, fe, ge = (Object.freeze || Object)({ TRANSFORM: ce, TRANSITION: _e, TRANSITION_END: de, get: rt, getStyle: at, create: ht, remove: ut, empty: lt, toFront: ct, toBack: _t, hasClass: dt, addClass: pt, removeClass: mt, setClass: ft, getClass: gt, setOpacity: vt, testProp: xt, setTransform: wt, setPosition: Lt, getPosition: Pt, disableTextSelection: pi, enableTextSelection: mi, disableImageDrag: bt, enableImageDrag: Tt, preventOutline: zt, restoreOutline: Mt }), ve = ui.extend({ run: function(t2, i3, e2, n2) { 16072 this.stop(), this._el = t2, this._inProgress = true, this._duration = e2 || 0.25, this._easeOutPower = 1 / Math.max(n2 || 0.5, 0.2), this._startPos = Pt(t2), this._offset = i3.subtract(this._startPos), this._startTime = +new Date(), this.fire("start"), this._animate(); 16073 }, stop: function() { 16074 this._inProgress && (this._step(true), this._complete()); 16075 }, _animate: function() { 16076 this._animId = f(this._animate, this), this._step(); 16077 }, _step: function(t2) { 16078 var i3 = +new Date() - this._startTime, e2 = 1e3 * this._duration; 16079 i3 < e2 ? this._runFrame(this._easeOut(i3 / e2), t2) : (this._runFrame(1), this._complete()); 16080 }, _runFrame: function(t2, i3) { 16081 var e2 = this._startPos.add(this._offset.multiplyBy(t2)); 16082 i3 && e2._round(), Lt(this._el, e2), this.fire("step"); 16083 }, _complete: function() { 16084 g(this._animId), this._inProgress = false, this.fire("end"); 16085 }, _easeOut: function(t2) { 16086 return 1 - Math.pow(1 - t2, this._easeOutPower); 16087 } }), ye = ui.extend({ options: { crs: gi, center: void 0, zoom: void 0, minZoom: void 0, maxZoom: void 0, layers: [], maxBounds: void 0, renderer: void 0, zoomAnimation: true, zoomAnimationThreshold: 4, fadeAnimation: true, markerZoomAnimation: true, transform3DLimit: 8388608, zoomSnap: 1, zoomDelta: 1, trackResize: true }, initialize: function(t2, i3) { 16088 i3 = l(this, i3), this._initContainer(t2), this._initLayout(), this._onResize = e(this._onResize, this), this._initEvents(), i3.maxBounds && this.setMaxBounds(i3.maxBounds), void 0 !== i3.zoom && (this._zoom = this._limitZoom(i3.zoom)), i3.center && void 0 !== i3.zoom && this.setView(C(i3.center), i3.zoom, { reset: true }), this._handlers = [], this._layers = {}, this._zoomBoundLayers = {}, this._sizeChanged = true, this.callInitHooks(), this._zoomAnimated = _e && Oi && !Fi && this.options.zoomAnimation, this._zoomAnimated && (this._createAnimProxy(), V(this._proxy, de, this._catchTransitionEnd, this)), this._addLayers(this.options.layers); 16089 }
16089, setView: function(t2, e2, n2) { 16090 return e2 = void 0 === e2 ? this._zoom : this._limitZoom(e2), t2 = this._limitCenter(C(t2), e2, this.options.maxBounds), n2 = n2 || {}, this._stop(), this._loaded && !n2.reset && true !== n2 && (void 0 !== n2.animate && (n2.zoom = i2({ animate: n2.animate }, n2.zoom), n2.pan = i2({ animate: n2.animate, duration: n2.duration }, n2.pan)), this._zoom !== e2 ? this._tryAnimatedZoom && this._tryAnimatedZoom(t2, e2, n2.zoom) : this._tryAnimatedPan(t2, n2.pan)) ? (clearTimeout(this._sizeTimer), this) : (this._resetView(t2, e2), this); 16091 }, setZoom: function(t2, i3) { 16092 return this._loaded ? this.setView(this.getCenter(), t2, { zoom: i3 }) : (this._zoom = t2, this); 16093 }, zoomIn: function(t2, i3) { 16094 return t2 = t2 || (Oi ? this.options.zoomDelta : 1), this.setZoom(this._zoom + t2, i3); 16095 }, zoomOut: function(t2, i3) { 16096 return t2 = t2 || (Oi ? this.options.zoomDelta : 1), this.setZoom(this._zoom - t2, i3); 16097 }, setZoomAround: function(t2, i3, e2) { 16098 var n2 = this.getZoomScale(i3), o2 = this.getSize().divideBy(2), s2 = (t2 instanceof x ? t2 : this.latLngToContainerPoint(t2)).subtract(o2).multiplyBy(1 - 1 / n2), r2 = this.containerPointToLatLng(o2.add(s2)); 16099 return this.setView(r2, i3, { zoom: e2 }); 16100 }, _getBoundsCenterZoom: function(t2, i3) { 16101 i3 = i3 || {}, t2 = t2.getBounds ? t2.getBounds() : z(t2); 16102 var e2 = w(i3.paddingTopLeft || i3.padding || [0, 0]), n2 = w(i3.paddingBottomRight || i3.padding || [0, 0]), o2 = this.getBoundsZoom(t2, false, e2.add(n2)); 16103 if ((o2 = "number" == typeof i3.maxZoom ? Math.min(i3.maxZoom, o2) : o2) === 1 / 0) 16104 return { center: t2.getCenter(), zoom: o2 }; 16105 var s2 = n2.subtract(e2).divideBy(2), r2 = this.project(t2.getSouthWest
16105(), o2), a2 = this.project(t2.getNorthEast(), o2); 16106 return { center: this.unproject(r2.add(a2).divideBy(2).add(s2), o2), zoom: o2 }; 16107 }, fitBounds: function(t2, i3) { 16108 if (!(t2 = z(t2)).isValid()) 16109 throw new Error("Bounds are not valid."); 16110 var e2 = this._getBoundsCenterZoom(t2, i3); 16111 return this.setView(e2.center, e2.zoom, i3); 16112 }, fitWorld: function(t2) { 16113 return this.fitBounds([[-90, -180], [90, 180]], t2); 16114 }, panTo: function(t2, i3) { 16115 return this.setView(t2, this._zoom, { pan: i3 }); 16116 }, panBy: function(t2, i3) { 16117 if (t2 = w(t2).round(), i3 = i3 || {}, !t2.x && !t2.y) 16118 return this.fire("moveend"); 16119 if (true !== i3.animate && !this.getSize().contains(t2)) 16120 return this._resetView(this.unproject(this.project(this.getCenter()).add(t2)), this.getZoom()), this; 16121 if (this._panAnim || (this._panAnim = new ve(), this._panAnim.on({ step: this._onPanTransitionStep, end: this._onPanTransitionEnd }, this)), i3.noMoveStart || this.fire("movestart"), false !== i3.animate) { 16122 pt(this._mapPane, "leaflet-pan-anim"); 16123 var e2 = this._getMapPanePos().subtract(t2).round(); 16124 this._panAnim.run(this._mapPane, e2, i3.duration || 0.25, i3.easeLinearity); 16125 } else 16126 this._rawPanBy(t2), this.fire("move").fire("moveend"); 16127 return this; 16128 }, flyTo: function(t2, i3, e2) { 16129 function n2(t3) { 16130 var i4 = (g2 * g2 - m2 * m2 + (t3 ? -1 : 1) * x2 * x2 * v2 * v2) / (2 * (t3 ? g2 : m2) * x2 * v2), e3 = Math.sqrt(i4 * i4 + 1) - i4; 16131 return e3 < 1e-9 ? -18 : Math.log(e3); 16132 } 16133 function o2(t3) { 16134 return (Math.exp(t3) - Math.exp(-t3)) / 2; 16135 } 16136 function s2(t3) { 16137 return (Math.exp(t3) + Math.exp(-t3)) / 2; 16138 } 16139 function r2(t3) { 16140 return o2(t3) / s2(t3); 16141 } 16142 function a2(t3) { 16143 return m2 * (s2(w2) / s2(w2 + y2 * t3)); 16144 } 16145 function h2(t3) { 16146 return m2 * (s2(w2) * r2(w2 + y2 * t3) - o2(w2)) / x2; 16147 } 16148 function u2(t3) { 16149 return 1 - Math.pow(1 - t3, 1.5); 16150 } 16151 function l2() { 16152 var e3 = (Date.now() - L2) / b2, n3 = u2(e3) * P2; 16153 e3 <= 1 ? (this._flyToFrame = f(l2, this), this._move(this.unproject(c2.add(_2.subtract(c2).multiplyBy(h2(n3) / v2)), p2), this.getScaleZoom(m2 / a2(n3), p2), { flyTo: true })) : this._move(t2, i3)._moveEnd(true); 16154 } 16155 if (false === (e2 = e2 || {}).animate || !Oi) 16156 return this.setView(t2, i3, e2); 16157 this._stop(); 16158 var c2 = this.project(this.getCenter()), _2 = this.project(t2), d2 = this.getSize(), p2 = this._zoom; 16159 t2 = C(t2), i3 = void 0 === i3 ? p2 : i3; 16160 var m2 = Math.max(d2.x, d2.y), g2 = m2 * this.getZoomScale(p2, i3), v2 = _2.distanceTo(c2) || 1, y2 = 1.42, x2 = y2 * y2, w2 = n2(0), L2 = Date.now(), P2 = (n2(1) - w2) / y2, b2 = e2.duration ? 1e3 * e2.duration : 1e3 * P2 * 0.8; 16161 return this._moveStart(true), l2.call(this), this; 16162 }, flyToBounds: function(t2, i3) { 16163 var e2 = this._getBoundsCenterZoom(t2, i3); 16164 return this.flyTo(e2.center, e2.zoom, i3); 16165 }, setMaxBounds: function(t2) { 16166 return (t2 = z(t2)).isValid() ? (this.options.maxBounds && this.off("moveend", this._panInsideMaxBounds), this.options.maxBounds = t2, this._loaded && this._panInsideMaxBounds(), this.on("moveend", this._panInsideMaxBounds)) : (this.options.maxBounds = null, this.off("moveend", this._panInsideMaxBounds)); 16167 }, setMinZoom: function(t2) { 16168 return this.options.minZoom = t2, this._loaded && this.getZoom() < this.options.minZoom ? this.setZoom(t2) : this; 16169 }, setMaxZoom: function(t2) { 16170 return this.options.maxZoom = t2, this._loaded && this.getZoom() > this.options.maxZoom ? this.setZoom(t2) : this; 16171 }, panInsideBounds: function(t2, i3) { 16172 this._enforcingBounds = true; 16173 var e2 = this.getCenter(), n2 = this._limitCenter(e2, this._zoom, z(t2)); 16174 return e2.equals(n2) || this.panTo(n2, i3), this._enforcingBounds = false, this; 16175 }, invalidateSize: function(t2) { 16176 if (!this._loaded) 16177 return this; 16178 t2 = i2({ animate: false, pan: true }, true === t2 ? { animate: true } : t2);
16179 var n2 = this.getSize(); 16180 this._sizeChanged = true, this._lastCenter = null; 16181 var o2 = this.getSize(), s2 = n2.divideBy(2).round(), r2 = o2.divideBy(2).round(), a2 = s2.subtract(r2); 16182 return a2.x || a2.y ? (t2.animate && t2.pan ? this.panBy(a2) : (t2.pan && this._rawPanBy(a2), this.fire("move"), t2.debounceMoveend ? (clearTimeout(this._sizeTimer), this._sizeTimer = setTimeout(e(this.fire, this, "moveend"), 200)) : this.fire("moveend")), this.fire("resize", { oldSize: n2, newSize: o2 })) : this; 16183 }, stop: function() { 16184 return this.setZoom(this._limitZoom(this._zoom)), this.options.zoomSnap || this.fire("viewreset"), this._stop(); 16185 }, locate: function(t2) { 16186 if (t2 = this._locateOptions = i2({ timeout: 1e4, watch: false }, t2), !("geolocation" in navigator)) 16187 return this._handleGeolocationError({ code: 0, message: "Geolocation not supported." }), this; 16188 var n2 = e(this._handleGeolocationResponse, this), o2 = e(this._handleGeolocationError, this); 16189 return t2.watch ? this._locationWatchId = navigator.geolocation.watchPosition(n2, o2, t2) : navigator.geolocation.getCurrentPosition(n2, o2, t2), this; 16190 }, stopLocate: function() { 16191 return navigator.geolocation && navigator.geolocation.clearWatch && navigator.geolocation.clearWatch(this._locationWatchId), this._locateOptions && (this._locateOptions.setView = false), this; 16192 }, _handleGeolocationError: function(t2) { 16193 var i3 = t2.code, e2 = t2.message || (1 === i3 ? "permission denied" : 2 === i3 ? "position unavailable" : "timeout"); 16194 this._locateOptions.setView && !this._loaded && this.fitWorld(), this.fire("locationerror", { code: i3, message: "Geolocation error: " + e2 + "." }); 16195 }, _handleGeolocationResponse: function(t2) { 16196 var i3 = new M(t2.coords.latitude, t2.coords.longitude), e2 = i3.toBounds(t2.coords.accuracy), n2 = this._locateOptions; 16197 if (n2.setView) { 16198 var o2 = this.getBoundsZoom(e2); 16199 this.setView(i3, n2.maxZoom ? Math.min(o2, n2.maxZoom) : o2); 16200 } 16201 var s2 = { latlng: i3, bounds: e2, timestamp: t2.timestamp }; 16202 for (var r2 in t2.coords) 16203 "number" == typeof t2.coords[r2] && (s2[r2] = t2.coords[r2]); 16204 this.fire("locationfound", s2); 16205 }, addHandler: function(t2, i3) { 16206 if (!i3) 16207 return this; 16208 var e2 = this[t2] = new i3(this); 16209 return this._handlers.push(e2), this.options[t2] && e2.enable(), this; 16210 }, remove: function() { 16211 if (this._initEvents(true), this._containerId !== this._container._leaflet_id) 16212 throw new Error("Map container is being reused by another instance"); 16213 try { 16214 delete this._container._leaflet_id, delete this._containerId; 16215 } catch (t3) { 16216 this._container._leaflet_id = void 0, this._containerId = void 0; 16217 } 16218 ut(this._mapPane), this._clearControlPos && this._clearControlPos(), this._clearHandlers(), this._loaded && this.fire("unload"); 16219 var t2; 16220 for (t2 in this._layers) 16221 this._layers[t2].remove(); 16222 for (t2 in this._panes) 16223 ut(this._panes[t2]); 16224 return this._layers = [], this._panes = [], delete this._mapPane, delete this._renderer, this; 16225 }, createPane: function(t2, i3) { 16226 var e2 = ht("div", "leaflet-pane" + (t2 ? " leaflet-" + t2.replace("Pane", "") + "-pane" : ""), i3 || this._mapPane); 16227 return t2 && (this._panes[t2] = e2), e2; 16228 }, getCenter: function() { 16229 return this._checkIfLoaded(), this._lastCenter && !this._moved() ? this._lastCenter : this.layerPointToLatLng(this._getCenterLayerPoint()); 16230 }, getZoom: function() { 16231 return this._zoom; 16232 }, getBounds: function() { 16233 var t2 = this.getPixelBounds(); 16234 return new T(this.unproject(t2.getBottomLeft()), this.unproject(t2.getTopRight())); 16235 }, getMinZoom: function() { 16236 return void 0 === this.options.minZoom ? this._layersMinZoom || 0 : this.options.minZoom; 16237 }, getMaxZoom: function() { 16238 return void 0 === this.options.maxZoom ? void 0 === this._layersMaxZo
16238om ? 1 / 0 : this._layersMaxZoom : this.options.maxZoom; 16239 }, getBoundsZoom: function(t2, i3, e2) { 16240 t2 = z(t2), e2 = w(e2 || [0, 0]); 16241 var n2 = this.getZoom() || 0, o2 = this.getMinZoom(), s2 = this.getMaxZoom(), r2 = t2.getNorthWest(), a2 = t2.getSouthEast(), h2 = this.getSize().subtract(e2), u2 = b(this.project(a2, n2), this.project(r2, n2)).getSize(), l2 = Oi ? this.options.zoomSnap : 1, c2 = h2.x / u2.x, _2 = h2.y / u2.y, d2 = i3 ? Math.max(c2, _2) : Math.min(c2, _2); 16242 return n2 = this.getScaleZoom(d2, n2), l2 && (n2 = Math.round(n2 / (l2 / 100)) * (l2 / 100), n2 = i3 ? Math.ceil(n2 / l2) * l2 : Math.floor(n2 / l2) * l2), Math.max(o2, Math.min(s2, n2)); 16243 }, getSize: function() { 16244 return this._size && !this._sizeChanged || (this._size = new x(this._container.clientWidth || 0, this._container.clientHeight || 0), this._sizeChanged = false), this._size.clone(); 16245 }, getPixelBounds: function(t2, i3) { 16246 var e2 = this._getTopLeftPoint(t2, i3); 16247 return new P(e2, e2.add(this.getSize())); 16248 }, getPixelOrigin: function() { 16249 return this._checkIfLoaded(), this._pixelOrigin; 16250 }, getPixelWorldBounds: function(t2) { 16251 return this.options.crs.getProjectedBounds(void 0 === t2 ? this.getZoom() : t2); 16252 }, getPane: function(t2) { 16253 return "string" == typeof t2 ? this._panes[t2] : t2; 16254 }, getPanes: function() { 16255 return this._panes; 16256 }, getContainer: function() { 16257 return this._container; 16258 }, getZoomScale: function(t2, i3) { 16259 var e2 = this.options.crs; 16260 return i3 = void 0 === i3 ? this._zoom : i3, e2.scale(t2) / e2.scale(i3); 16261 }, getScaleZoom: function(t2, i3) { 16262 var e2 = this.options.crs; 16263 i3 = void 0 === i3 ? this._zoom : i3; 16264 var n2 = e2.zoom(t2 * e2.scale(i3)); 16265 return isNaN(n2) ? 1 / 0 : n2; 16266 }, project: function(t2, i3) { 16267 return i3 = void 0 === i3 ? this._zoom : i3, this.options.crs.latLngToPoint(C(t2), i3); 16268 }, unproject: function(t2, i3) { 16269 return i3 = void 0 === i3 ? this._zoom : i3, this.options.crs.pointToLatLng(w(t2), i3); 16270 }, layerPointToLatLng: function(t2) { 16271 var i3 = w(t2).add(this.getPixelOrigin()); 16272 return this.unproject(i3); 16273 }, latLngToLayerPoint: function(t2) { 16274 return this.project(C(t2))._round()._subtract(this.getPixelOrigin()); 16275 }, wrapLatLng: function(t2) { 16276 return this.options.crs.wrapLatLng(C(t2)); 16277 }, wrapLatLngBounds: function(t2) { 16278 return this.options.crs.wrapLatLngBounds(z(t2)); 16279 }, distance: function(t2, i3) { 16280 return this.options.crs.distance(C(t2), C(i3)); 16281 }, containerPointToLayerPoint: function(t2) { 16282 return w(t2).subtract(this._getMapPanePos()); 16283 }, layerPointToContainerPoint: function(t2) { 16284 return w(t2).add(this._getMapPanePos()); 16285 }, containerPointToLatLng: function(t2) { 16286 var i3 = this.containerPointToLayerPoint(w(t2)); 16287 return this.layerPointToLatLng(i3); 16288 }, latLngToContainerPoint: function(t2) { 16289 return this.layerPointToContainerPoint(this.latLngToLayerPoint(C(t2))); 16290 }, mouseEventToContainerPoint: function(t2) { 16291 return tt(t2, this._container); 16292 }, mouseEventToLayerPoint: function(t2) { 16293 return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t2)); 16294 }, mouseEventToLatLng: function(t2) { 16295 return this.layerPointToLatLng(this.mouseEventToLayerPoint(t2)); 16296 }, _initContainer: function(t2) { 16297 var i3 = this._container = rt(t2); 16298 if (!i3) 16299 throw new Error("Map container not found."); 16300 if (i3._leaflet_id) 16301 throw new Error("Map container is already initialized."); 16302 V(i3, "scroll", this._onScroll, this), this._containerId = n(i3); 16303 }, _initLayout: function() { 16304 var t2 = this._container; 16305 this._fadeAnimated = this.options.fadeAnimation && Oi, pt(t2, "leaflet-container" + (Hi ? " leaflet-touch" : "") + (Vi ? " leaflet-retina" : "") + (wi ? " leaflet-oldie" : "") + (Zi ? " leaflet-safari" : "") + (this._fadeAnimated ? " leaflet-fade-anim" : "")); 16306 var i3 = at(t2, "position"); 16307 "absolute" !== i3 && "relative" !== i3 && "fixed" !== i3 && (t2.style.position = "relative"), this._initPanes(), this._initControlPos && this._initControlPos(); 16308 }, _initPanes: function() { 16309 var t2 = this._panes = {}; 16310 this._paneRenderers = {}, this._mapPane = this.createPane("mapPane", this._container), Lt(this._mapPane, new x(0, 0)), this.createPane("tilePane"), this.createPane("shadowPane"), this.createPane("overlayPane"), this.createPane("markerPane"), this.createPane("tooltipPane"), this.createPane("popupPane"), this.options.markerZoomAnimation || (pt(t2.markerPane, "leaflet-zoom-hide"), pt(t2.shadowPane, "leaflet-zoom-hide")); 16311 }, _resetView: function(t2, i3) { 16312 Lt(this._mapPane, new x(0, 0)); 16313 var e2 = !this._loaded; 16314 this._loaded = true, i3 = this._limitZoom(i3), this.fire("viewprereset"); 16315 var n2 = this._zoom !== i3; 16316 this._moveStart(n2)._move(t2, i3)._moveEnd(n2), this.fire("viewreset"), e2 && this.fire("load"); 16317 }, _moveStart: function(t2) { 16318 return t2 && this.fire("zoomstart"), this.fire("movestart"); 16319 }, _move: function(t2, i3, e2) { 16320 void 0 === i3 && (i3 = this._zoom); 16321 var n2 = this._zoom !== i3; 16322 return this._zoom = i3, this._lastCenter = t2, this._pixelOrigin = this._getNewPixelOrigin(t2), (n2 || e2 && e2.pinch) && this.fire("zoom", e2), this.fire("move", e2); 16323 }, _moveEnd: function(t2) { 16324 return t2 && this.fire("zoomend"), this.fire("moveend"); 16325 }, _stop: function() { 16326 return g(this._flyToFrame), this._panAnim && this._panAnim.stop(), this; 16327 }, _rawPanBy: function(t2) { 16328 Lt(this._mapPane, this._getMapPanePos().subtract(t2)); 16329 }, _getZoomSpan: function() { 16330 return this.getMaxZoom() - this.getMinZoom(); 16331 }, _panInsideMaxBounds: function() { 16332 this._enforcingBounds || this.panInsideBounds(this.options.maxBounds); 16333 }, _checkIfLoaded: function() { 16334 if (!this._loaded) 16335 throw new Error("Set map center and zoom first."); 16336 }, _initEvents: function(t2) { 16337 this._targets = {}, this._targets[n(this._container)] = this; 16338 var i3 = t2 ? G : V; 16339 i3(this._container, "click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress", this._handleDOMEvent, this), this.options.trackResize && i3(window, "resize", this._onResize, this), Oi && this.options.transform3DLimit && (t2 ? this.off : this.on).call(this, "moveend", this._onMoveEnd); 16340 }, _onResize: function() { 16341 g(this._resizeRequest), this._resizeRequest = f(function() { 16342 this.invalidateSize({ debounceMoveend: true }); 16343 }, this); 16344 }, _onScroll: function() { 16345 this._container.scrollTop = 0, this._container.scrollLeft = 0; 16346 }, _onMoveEnd: function() { 16347 var t2 = this._getMapPanePos(); 16348 Math.max(Math.abs(t2.x), Math.abs(t2.y)) >= this.options.transform3DLimit && this._resetView(this.getCenter(), this.getZoom()); 16349 }, _findEventTargets: function(t2, i3) { 16350 for (var e2, o2 = [], s2 = "mouseout" === i3 || "mouseover" === i3, r2 = t2.target || t2.srcElement, a2 = false; r2; ) { 16351 if ((e2 = this._targets[n(r2)]) && ("click" === i3 || "preclick" === i3) && !t2._simulated && this._draggableMoved(e2)) { 16352 a2 = true; 16353 break; 16354 } 16355 if (e2 && e2.listens(i3, true)) { 16356 if (s2 && !ot(r2, t2)) 16357 break; 16358 if (o2.push(e2), s2) 16359 break; 16360 } 16361 if (r2 === this._container) 16362 break; 16363 r2 = r2.parentNode; 16364 } 16365 return o2.length || a2 || s2 || !ot(r2, t2) || (o2 = [this]), o2; 16366 }, _handleDOMEvent: function(t2) { 16367 if (this._loaded && !nt(t2)) { 16368 var i3 = t2.type; 16369 "mousedown" !== i3 && "keypress" !== i3 || zt(t2.target || t2.srcElement), this._fireDOMEvent(t2, i3); 16370 } 16371 }, _mouseEvents: ["click", "dblclick", "mouseover", "mouseout", "contextmenu"], _fireDOMEvent: function(t2, e2, n2) { 16372 if ("click" === t2.type) { 16373 var o2 = i2({}, t2); 16374 o2.type = "preclick", this._fireDOMEvent(o2, o2.type, n2); 16375 } 16376 if (!t2._stopped && (n2 = (n2 || []).concat(this._findEventTargets(t2, e2))).length) { 16377 var s2 = n2[0]; 16378 "contextmenu" === e2 && s2.listens(e2, true) && $2(t2); 16379 var r2 = { originalEvent: t2 }; 16380 if ("keypress" !== t2.type) { 16381 var a2 = s2.options && "icon" in s2.options; 16382 r2.containerPoint = a2 ? this.latLngToContainerPoint(s2.getLatLng()) : this.mouseEventToContainerPoint(t2), r2.layerPoint = this.containerPointToLayerPoint(r2.containerPoint), r2.latlng = a2 ? s2.getLatLng() : this.layerPointToLatLng(r2.layerPoint); 16383 } 16384 for (var h2 = 0; h2 < n2.length; h2++) 16385 if (n2[h2].fire(e2, r2, true), r2.originalEvent._stopped || false === n2[h2].options.bubblingMouseEvents && -1 !== d(this._mouseEvents, e2)) 16386 return; 16387 } 16388 }, _draggableMoved: function(t2) { 16389 return (t2 = t2.dragging && t2.dragging.enabled() ? t2 : this).dragging && t2.dragging.moved() || this.boxZoom && this.boxZoom.moved(); 16390 }, _clearHandlers: function() { 16391 for (var t2 = 0, i3 = this._handlers.length; t2 < i3; t2++) 16392 this._handlers[t2].disable(); 16393 }, whenReady: function(t2, i3) { 16394 return this._loaded ? t2.call(i3 || this, { target: this }) : this.on("load", t2, i3), this; 16395 }, _getMapPanePos: function() { 16396 return Pt(this._mapPane) || new x(0, 0); 16397 }, _moved: function() { 16398 var t2 = this._getMapPanePos(); 16399 return t2 && !t2.equals([0, 0]); 16400 }, _getTopLeftPoint: function(t2, i3) { 16401 return (t2 && void 0 !== i3 ? this._getNewPixelOrigin(t2, i3) : this.getPixelOrigin()).subtract(this._getMapPanePos()); 16402 }, _getNewPixelOrigin: function(t2, i3) {
vendor: 1,590 bytes, lines 16403-16426
16403 var e2 = this.getSize()._divideBy(2); 16404 return this.project(t2, i3)._subtract(e2)._add(this._getMapPanePos())._round(); 16405 }, _latLngToNewLayerPoint: function(t2, i3, e2) { 16406 var n2 = this._getNewPixelOrigin(e2, i3); 16407 return this.project(t2, i3)._subtract(n2); 16408 }, _latLngBoundsToNewLayerBounds: function(t2, i3, e2) { 16409 var n2 = this._getNewPixelOrigin(e2, i3); 16410 return b([this.project(t2.getSouthWest(), i3)._subtract(n2), this.project(t2.getNorthWest(), i3)._subtract(n2), this.project(t2.getSouthEast(), i3)._subtract(n2), this.project(t2.getNorthEast(), i3)._subtract(n2)]); 16411 }, _getCenterLayerPoint: function() { 16412 return this.containerPointToLayerPoint(this.getSize()._divideBy(2)); 16413 }, _getCenterOffset: function(t2) { 16414 return this.latLngToLayerPoint(t2).subtract(this._getCenterLayerPoint()); 16415 }, _limitCenter: function(t2, i3, e2) { 16416 if (!e2) 16417 return t2; 16418 var n2 = this.project(t2, i3), o2 = this.getSize().divideBy(2), s2 = new P(n2.subtract(o2), n2.add(o2)), r2 = this._getBoundsOffset(s2, e2, i3); 16419 return r2.round().equals([0, 0]) ? t2 : this.unproject(n2.add(r2), i3); 16420 }, _limitOffset: function(t2, i3) { 16421 if (!i3) 16422 return t2; 16423 var e2 = this.getPixelBounds(), n2 = new P(e2.min.add(t2), e2.max.add(t2)); 16424 return t2.add(this._getBoundsOffset(n2, i3)); 16425 }, _getBoundsOffset: function(t2, i3, e2) { 16426 var n2 = b(this.project(i3.getNorthEast(), e2), this.project(i3.getSouthWest
16426(), e2)), o2 = n2.min.subtract(t2.min), s2 = n2.max.subtract(t2.max); 16427 return new x(this._rebound(o2.x, -s2.x), this._rebound(o2.y, -s2.y)); 16428 }, _rebound: function(t2, i3) { 16429 return t2 + i3 > 0 ? Math.round(t2 - i3) / 2 : Math.max(0, Math.ceil(t2)) - Math.max(0, Math.floor(i3)); 16430 }, _limitZoom: function(t2) { 16431 var i3 = this.getMinZoom(), e2 = this.getMaxZoom(), n2 = Oi ? this.options.zoomSnap : 1; 16432 return n2 && (t2 = Math.round(t2 / n2) * n2), Math.max(i3, Math.min(e2, t2)); 16433 }, _onPanTransitionStep: function() { 16434 this.fire("move"); 16435 }, _onPanTransitionEnd: function() { 16436 mt(this._mapPane, "leaflet-pan-anim"), this.fire("moveend"); 16437 }, _tryAnimatedPan: function(t2, i3) { 16438 var e2 = this._getCenterOffset(t2)._floor(); 16439 return !(true !== (i3 && i3.animate) && !this.getSize().contains(e2)) && (this.panBy(e2, i3), true); 16440 }, _createAnimProxy: function() { 16441 var t2 = this._proxy = ht("div", "leaflet-proxy leaflet-zoom-animated"); 16442 this._panes.mapPane.appendChild(t2), this.on("zoomanim", function(t3) { 16443 var i3 = ce, e2 = this._proxy.style[i3]; 16444 wt(this._proxy, this.project(t3.center, t3.zoom), this.getZoomScale(t3.zoom, 1)), e2 === this._proxy.style[i3] && this._animatingZoom && this._onZoomTransitionEnd(); 16445 }, this), this.on("load moveend", function() { 16446 var t3 = this.getCenter(), i3 = this.getZoom(); 16447 wt(this._proxy, this.project(t3, i3), this.getZoomScale(i3, 1)); 16448 }, this), this._on("unload", this._destroyAnimProxy, this); 16449 }, _destroyAnimProxy: function() { 16450 ut(this._proxy), delete this._proxy; 16451 }, _catchTransitionEnd: function(t2) { 16452 this._animatingZoom && t2.propertyName.indexOf("transform") >= 0 && this._onZoomTransitionEnd(); 16453 }, _nothingToAnimate: function() { 16454 return !this._container.getElementsByClassName("leaflet-zoom-animated").length; 16455 }, _tryAnimatedZoom: function(t2, i3, e2) { 16456 if (this._animatingZoom) 16457 return true; 16458 if (e2 = e2 || {}, !this._zoomAnimated || false === e2.animate || this._nothingToAnimate() || Math.abs(i3 - this._zoom) > this.options.zoomAnimationThreshold) 16459 return false; 16460 var n2 = this.getZoomScale(i3), o2 = this._getCenterOffset(t2)._divideBy(1 - 1 / n2); 16461 return !(true !== e2.animate && !this.getSize().contains(o2)) && (f(function() { 16462 this._moveStart(true)._animateZoom(t2, i3, true); 16463 }, this), true); 16464 }, _animateZoom: function(t2, i3, n2, o2) { 16465 n2 && (this._animatingZoom = true, this._animateToCenter = t2, this._animateToZoom = i3, pt(this._mapPane, "leaflet-zoom-anim")), this.fire("zoomanim", { center: t2, zoom: i3, noUpdate: o2 }), setTimeout(e(this._onZoomTransitionEnd, this), 250); 16466 }, _onZoomTransitionEnd: function() { 16467 this._animatingZoom && (mt(this._mapPane, "leaflet-zoom-anim"), this._animatingZoom = false, this._move(this._animateToCenter, this._animateToZoom), f(function() { 16468 this._moveEnd(true); 16469 }, this)); 16470 } }), xe = v.extend({ options: { position: "topright" }, initialize: function(t2) { 16471 l(this, t2); 16472 }, getPosition: function() { 16473 return this.options.position; 16474 }, setPosition: function(t2) { 16475 var i3 = this._map; 16476 return i3 && i3.removeControl(this), this.options.position = t2, i3 && i3.addControl(this), this; 16477 }, getContainer: function() { 16478 return this._container; 16479 }, addTo: function(t2) { 16480 this.remove(), this._map = t2; 16481 var i3 = this._container = this.onAdd(t2), e2 = this.getPosition(), n2 = t2._controlCorners[e2]; 16482 return pt(i3, "leaflet-control"), -1 !== e2.indexOf("bottom") ? n2.insertBefore(i3, n2.firstChild) : n2.appendChild(i3), this; 16483 }, remove: function() { 16484 return this._map ? (ut(this._container), this.onRemove && this.onRemove(this._map), this._map = null, this) : this; 16485 }, _refocusOnMap: function(t2) { 16486 this._map && t2 && t2.screenX > 0 && t2.screenY > 0 && this._map.getContainer().focus(); 16487 } }), we = function(t2) { 16488 return new xe(t2); 16489 }; 16490 ye.include({ addControl: function(t2) { 16491 return t2.addTo(this), this; 16492 }, removeControl: function(t2) { 16493 return t2.remove(), this; 16494 }
16494, _initControlPos: function() { 16495 function t2(t3, o2) { 16496 var s2 = e2 + t3 + " " + e2 + o2; 16497 i3[t3 + o2] = ht("div", s2, n2); 16498 } 16499 var i3 = this._controlCorners = {}, e2 = "leaflet-", n2 = this._controlContainer = ht("div", e2 + "control-container", this._container); 16500 t2("top", "left"), t2("top", "right"), t2("bottom", "left"), t2("bottom", "right"); 16501 }, _clearControlPos: function() { 16502 for (var t2 in this._controlCorners) 16503 ut(this._controlCorners[t2]); 16504 ut(this._controlContainer), delete this._controlCorners, delete this._controlContainer; 16505 } }); 16506 var Le = xe.extend({ options: { collapsed: true, position: "topright", autoZIndex: true, hideSingleBase: false, sortLayers: false, sortFunction: function(t2, i3, e2, n2) { 16507 return e2 < n2 ? -1 : n2 < e2 ? 1 : 0; 16508 } }, initialize: function(t2, i3, e2) { 16509 l(this, e2), this._layerControlInputs = [], this._layers = [], this._lastZIndex = 0, this._handlingClick = false; 16510 for (var n2 in t2) 16511 this._addLayer(t2[n2], n2); 16512 for (n2 in i3) 16513 this._addLayer(i3[n2], n2, true); 16514 }, onAdd: function(t2) { 16515 this._initLayout(), this._update(), this._map = t2, t2.on("zoomend", this._checkDisabledLayers, this); 16516 for (var i3 = 0; i3 < this._layers.length; i3++) 16517 this._layers[i3].layer.on("add remove", this._onLayerChange, this); 16518 return this._container; 16519 }, addTo: function(t2) { 16520 return xe.prototype.addTo.call(this, t2), this._expandIfNotCollapsed(); 16521 }, onRemove: function() { 16522 this._map.off("zoomend", this._checkDisabledLayers, this); 16523 for (var t2 = 0; t2 < this._layers.length; t2++) 16524 this._layers[t2].layer.off("add remove", this._onLayerChange, this); 16525 }, addBaseLayer: function(t2, i3) { 16526 return this._addLayer(t2, i3), this._map ? this._update() : this; 16527 }, addOverlay: function(t2, i3) { 16528 return this._addLayer(t2, i3, true), this._map ? this._update() : this; 16529 }, removeLayer: function(t2) { 16530 t2.off("add remove", this._onLayerChange, this); 16531 var i3 = this._getLayer(n(t2)); 16532 return i3 && this._layers.splice(this._layers.indexOf(i3), 1), this._map ? this._update() : this; 16533 }, expand: function() { 16534 pt(this._container, "leaflet-control-layers-expanded"), this._form.style.height = null; 16535 var t2 = this._map.getSize().y - (this._container.offsetTop + 50); 16536 return t2 < this._form.clientHeight ? (pt(this._form, "leaflet-control-layers-scrollbar"), this._form.style.height = t2 + "px") : mt(this._form, "leaflet-control-layers-scrollbar"), this._checkDisabledLayers(), this; 16537 }, collapse: function() { 16538 return mt(this._container, "leaflet-control-layers-expanded"), this; 16539 }, _initLayout: function() { 16540 var t2 = "leaflet-control-layers", i3 = this._container = ht("div", t2), e2 = this.options.collapsed; 16541 i3.setAttribute("aria-haspopup", true), J(i3), X(i3); 16542 var n2 = this._form = ht("form", t2 + "-list"); 16543 e2 && (this._map.on("click", this.collapse, this), bi || V(i3, { mouseenter: this.expand, mouseleave: this.collapse }, this)); 16544 var o2 = this._layersLink = ht("a", t2 + "-toggle", i3); 16545 o2.href = "#", o2.title = "Layers", Hi ? (V(o2, "click", Q), V(o2, "click", this.expand, this)) : V(o2, "focus", this.expand, this), e2 || this.expand(), this._baseLayersList = ht("div", t2 + "-base", n2), this._separator = ht("div", t2 + "-separator", n2), this._overlaysList = ht("div", t2 + "-overlays", n2), i3.appendChild(n2); 16546 }, _getLayer: function(t2) { 16547 for (var i3 = 0; i3 < this._layers.length; i3++) 16548 if (this._layers[i3] && n(this._layers[i3].layer) === t2) 16549 return this._layers[i3]; 16550 }, _addLayer: function(t2, i3, n2) { 16551 this._map && t2.on("add remove", this._onLayerChange, this), this._layers.push({ layer: t2, name: i3, overlay: n2 }), this.options.sortLayers && this._layers.sort(e(function(t3, i4) { 16552 return this.options.sortFunction(t3.layer, i4.layer, t3.name, i4.name); 16553 }
16553, this)), this.options.autoZIndex && t2.setZIndex && (this._lastZIndex++, t2.setZIndex(this._lastZIndex)), this._expandIfNotCollapsed(); 16554 }, _update: function() { 16555 if (!this._container) 16556 return this; 16557 lt(this._baseLayersList), lt(this._overlaysList), this._layerControlInputs = []; 16558 var t2, i3, e2, n2, o2 = 0; 16559 for (e2 = 0; e2 < this._layers.length; e2++) 16560 n2 = this._layers[e2], this._addItem(n2), i3 = i3 || n2.overlay, t2 = t2 || !n2.overlay, o2 += n2.overlay ? 0 : 1; 16561 return this.options.hideSingleBase && (t2 = t2 && o2 > 1, this._baseLayersList.style.display = t2 ? "" : "none"), this._separator.style.display = i3 && t2 ? "" : "none", this; 16562 }, _onLayerChange: function(t2) { 16563 this._handlingClick || this._update(); 16564 var i3 = this._getLayer(n(t2.target)), e2 = i3.overlay ? "add" === t2.type ? "overlayadd" : "overlayremove" : "add" === t2.type ? "baselayerchange" : null; 16565 e2 && this._map.fire(e2, i3); 16566 }, _createRadioElement: function(t2, i3) { 16567 var e2 = '<input type="radio" class="leaflet-control-layers-selector" name="' + t2 + '"' + (i3 ? ' checked="checked"' : "") + "/>", n2 = document.createElement("div"); 16568 return n2.innerHTML = e2, n2.firstChild; 16569 }, _addItem: function(t2) { 16570 var i3, e2 = document.createElement("label"), o2 = this._map.hasLayer(t2.layer); 16571 t2.overlay ? ((i3 = document.createElement("input")).type = "checkbox", i3.className = "leaflet-control-layers-selector", i3.defaultChecked = o2) : i3 = this._createRadioElement("leaflet-base-layers", o2), this._layerControlInputs.push(i3), i3.layerId = n(t2.layer), V(i3, "click", this._onInputClick, this); 16572 var s2 = document.createElement("span"); 16573 s2.innerHTML = " " + t2.name; 16574 var r2 = document.createElement("div"); 16575 return e2.appendChild(r2), r2.appendChild(i3), r2.appendChild(s2), (t2.overlay ? this._overlaysList : this._baseLayersList).appendChild(e2), this._checkDisabledLayers(), e2; 16576 }, _onInputClick: function() { 16577 var t2, i3, e2 = this._layerControlInputs, n2 = [], o2 = []; 16578 this._handlingClick = true; 16579 for (var s2 = e2.length - 1; s2 >= 0; s2--) 16580 t2 = e2[s2], i3 = this._getLayer(t2.layerId).layer, t2.checked ? n2.push(i3) : t2.checked || o2.push(i3); 16581 for (s2 = 0; s2 < o2.length; s2++) 16582 this._map.hasLayer(o2[s2]) && this._map.removeLayer(o2[s2]); 16583 for (s2 = 0; s2 < n2.length; s2++) 16584 this._map.hasLayer(n2[s2]) || this._map.addLayer(n2[s2]); 16585 this._handlingClick = false, this._refocusOnMap(); 16586 }, _checkDisabledLayers: function() { 16587 for (var t2, i3, e2 = this._layerControlInputs, n2 = this._map.getZoom(), o2 = e2.length - 1; o2 >= 0; o2--) 16588 t2 = e2[o2], i3 = this._getLayer(t2.layerId).layer, t2.disabled = void 0 !== i3.options.minZoom && n2 < i3.options.minZoom || void 0 !== i3.options.maxZoom && n2 > i3.options.maxZoom; 16589 }, _expandIfNotCollapsed: function() { 16590 return this._map && !this.options.collapsed && this.expand(), this; 16591 }, _expand: function() { 16592 return this.expand(); 16593 }, _collapse: function() { 16594 return this.collapse(); 16595 } }), Pe = xe.extend({ options: { position: "topleft", zoomInText: "+", zoomInTitle: "Zoom in", zoomOutText: "−", zoomOutTitle: "Zoom out" }, onAdd: function(t2) { 16596 var i3 = "leaflet-control-zoom", e2 = ht("div", i3 + " leaflet-bar"), n2 = this.options; 16597 return this._zoomInButton = this._createButton(n2.zoomInText, n2.zoomInTitle, i3 + "-in", e2, this._zoomIn), this._zoomOutButton = this._createButton(n2.zoomOutText, n2.zoomOutTitle, i3 + "-out", e2, this._zoomOut), this._updateDisabled(), t2.on("zoomend zoomlevelschange", this._updateDisabled, this), e2; 16598 }, onRemove: function(t2) { 16599 t2.off("zoomend zoomlevelschange", this._updateDisabled, this); 16600 }, disable: function() { 16601 return this._disabled = true, this._updateDisabled(), this; 16602 }, enable: function() { 16603 return this._disabled = false, this._updateDisabled(), this; 16604 }, _zoomIn: function(t2) { 16605 !this._disabled && this._map._zoom < this._map.getMaxZoom() && this._map.zoomIn(this._map.options.zoomDelta * (t2.shiftKey ? 3 : 1)); 16606 }, _zoomOut: function(t2) { 16607 !this._disabled && this._map._zoom > this._map.getMinZoom() && this._map.zoomOut(this._map.options.zoomDelta * (t2.shiftKey ? 3 : 1)); 16608 }, _createButton: function(t2, i3, e2, n2, o2) { 16609 var s2 = ht("a", e2, n2); 16610 return s2.innerHTML = t2, s2.href = "#", s2.title = i3, s2.setAttribute("role", "button"), s2.
16610setAttribute("aria-label", i3), J(s2), V(s2, "click", Q), V(s2, "click", o2, this), V(s2, "click", this._refocusOnMap, this), s2; 16611 }, _updateDisabled: function() { 16612 var t2 = this._map, i3 = "leaflet-disabled"; 16613 mt(this._zoomInButton, i3), mt(this._zoomOutButton, i3), (this._disabled || t2._zoom === t2.getMinZoom()) && pt(this._zoomOutButton, i3), (this._disabled || t2._zoom === t2.getMaxZoom()) && pt(this._zoomInButton, i3); 16614 } }); 16615 ye.mergeOptions({ zoomControl: true }), ye.addInitHook(function() { 16616 this.options.zoomControl && (this.zoomControl = new Pe(), this.addControl(this.zoomControl)); 16617 }); 16618 var be = xe.extend({ options: { position: "bottomleft", maxWidth: 100, metric: true, imperial: true }, onAdd: function(t2) { 16619 var i3 = ht("div", "leaflet-control-scale"), e2 = this.options; 16620 return this._addScales(e2, "leaflet-control-scale-line", i3), t2.on(e2.updateWhenIdle ? "moveend" : "move", this._update, this), t2.whenReady(this._update, this), i3; 16621 }, onRemove: function(t2) { 16622 t2.off(this.options.updateWhenIdle ? "moveend" : "move", this._update, this); 16623 }, _addScales: function(t2, i3, e2) { 16624 t2.metric && (this._mScale = ht("div", i3, e2)), t2.imperial && (this._iScale = ht("div", i3, e2)); 16625 }, _update: function() { 16626 var t2 = this._map, i3 = t2.getSize().y / 2, e2 = t2.distance(t2.containerPointToLatLng([0, i3]), t2.containerPointToLatLng([this.options.maxWidth, i3])); 16627 this._updateScales(e2); 16628 }, _updateScales: function(t2) { 16629 this.options.metric && t2 && this._updateMetric(t2), this.options.imperial && t2 && this._updateImperial(t2); 16630 }, _updateMetric: function(t2) { 16631 var i3 = this._getRoundNum(t2), e2 = i3 < 1e3 ? i3 + " m" : i3 / 1e3 + " km"; 16632 this._updateScale(this._mScale, e2, i3 / t2); 16633 }, _updateImperial: function(t2) { 16634 var i3, e2, n2, o2 = 3.2808399 * t2; 16635 o2 > 5280 ? (i3 = o2 / 5280, e2 = this._getRoundNum(i3), this._updateScale(this._iScale, e2 + " mi", e2 / i3)) : (n2 = this._getRoundNum(o2), this._updateScale(this._iScale, n2 + " ft", n2 / o2)); 16636 }, _updateScale: function(t2, i3, e2) { 16637 t2.style.width = Math.round(this.options.maxWidth * e2) + "px", t2.innerHTML = i3; 16638 }, _getRoundNum: function(t2) { 16639 var i3 = Math.pow(10, (Math.floor(t2) + "").length - 1), e2 = t2 / i3; 16640 return e2 = e2 >= 10 ? 10 : e2 >= 5 ? 5 : e2 >= 3 ? 3 : e2 >= 2 ? 2 : 1, i3 * e2; 16641 } }), Te = xe.extend({ options: { position: "bottomright", prefix: '<a href="http://leafletjs.com" title="A JS library for interactive maps">Leaflet</a>' }, initialize: function(t2) { 16642 l(this, t2), this._attributions = {}; 16643 }, onAdd: function(t2) { 16644 t2.attributionControl = this, this._container = ht("div", "leaflet-control-attribution"), J(this._container); 16645 for (var i3 in t2._layers) 16646 t2._layers[i3].getAttribution && this.addAttribution(t2._layers[i3].getAttribution()); 16647 return this._update(), this._container; 16648 }, setPrefix: function(t2) { 16649 return this.options.prefix = t2, this._update(), this; 16650 }, addAttribution: function(t2) { 16651 return t2 ? (this._attributions[t2] || (this._attributions[t2] = 0), this._attributions[t2]++, this._update(), this) : this; 16652 }, removeAttribution: function(t2) { 16653 return t2 ? (this._attributions[t2] && (this._attributions[t2]--, this._update()), this) : this; 16654 }, _update: function() { 16655 if (this._map) { 16656 var t2 = []; 16657 for (var i3 in this._attributions) 16658 this._attributions[i3] && t2.push(i3); 16659 var e2 = []; 16660 this.options.prefix && e2.push(this.options.prefix), t2.length && e2.push(t2.join(", ")), this._container.innerHTML = e2.join(" | "); 16661 } 16662 } }); 16663 ye.mergeOptions({ attributionControl: true }), ye.addInitHook(function() { 16664 this.options.attributionControl && new Te().addTo(this); 16665 }); 16666 xe.Layers = Le, xe.Zoom = Pe, xe.Scale = be, xe.Attribution = Te, we.layers = function(t2, i3, e2) { 16667 return new Le(t2, i3, e2); 16668 }, we.zoom = function(t2) { 16669 return new Pe(t2); 16670 }, we.scale = function(t2) { 16671 return new be(t2); 16672 }, we.attribution = function(t2) { 16673 return new Te(t2); 16674 }; 16675 var ze, Me = v.extend({ initialize: function(t2) { 16676 this._map = t2; 16677 }, enable: function() {
16678 return this._enabled ? this : (this._enabled = true, this.addHooks(), this); 16679 }, disable: function() { 16680 return this._enabled ? (this._enabled = false, this.removeHooks(), this) : this; 16681 }, enabled: function() { 16682 return !!this._enabled; 16683 } }), Ce = { Events: hi }, Ze = Hi ? "touchstart mousedown" : "mousedown", Ee = { mousedown: "mouseup", touchstart: "touchend", pointerdown: "touchend", MSPointerDown: "touchend" }, Se = { mousedown: "mousemove", touchstart: "touchmove", pointerdown: "touchmove", MSPointerDown: "touchmove" }, ke = ui.extend({ options: { clickTolerance: 3 }, initialize: function(t2, i3, e2, n2) { 16684 l(this, n2), this._element = t2, this._dragStartTarget = i3 || t2, this._preventOutline = e2; 16685 }, enable: function() { 16686 this._enabled || (V(this._dragStartTarget, Ze, this._onDown, this), this._enabled = true); 16687 }, disable: function() { 16688 this._enabled && (ke._dragging === this && this.finishDrag(), G(this._dragStartTarget, Ze, this._onDown, this), this._enabled = false, this._moved = false); 16689 }, _onDown: function(t2) { 16690 if (!t2._simulated && this._enabled && (this._moved = false, !dt(this._element, "leaflet-zoom-anim") && !(ke._dragging || t2.shiftKey || 1 !== t2.which && 1 !== t2.button && !t2.touches || (ke._dragging = this, this._preventOutline && zt(this._element), bt(), pi(), this._moving)))) { 16691 this.fire("down"); 16692 var i3 = t2.touches ? t2.touches[0] : t2; 16693 this._startPoint = new x(i3.clientX, i3.clientY), V(document, Se[t2.type], this._onMove, this), V(document, Ee[t2.type], this._onUp, this); 16694 } 16695 }, _onMove: function(t2) { 16696 if (!t2._simulated && this._enabled) 16697 if (t2.touches && t2.touches.length > 1) 16698 this._moved = true; 16699 else { 16700 var i3 = t2.touches && 1 === t2.touches.length ? t2.touches[0] : t2, e2 = new x(i3.clientX, i3.clientY).subtract(this._startPoint); 16701 (e2.x || e2.y) && (Math.abs(e2.x) + Math.abs(e2.y) < this.options.clickTolerance || ($2(t2), this._moved || (this.fire("dragstart"), this._moved = true, this._startPos = Pt(this._element).subtract(e2), pt(document.body, "leaflet-dragging"), this._lastTarget = t2.target || t2.srcElement, window.SVGElementInstance && this._lastTarget instanceof SVGElementInstance && (this._lastTarget = this._lastTarget.correspondingUseElement), pt(this._lastTarget, "leaflet-drag-target")), this._newPos = this._startPos.add(e2), this._moving = true, g(this._animRequest), this._lastEvent = t2, this._animRequest = f(this._updatePosition, this, true))); 16702 } 16703 }, _updatePosition: function() { 16704 var t2 = { originalEvent: this._lastEvent }; 16705 this.fire("predrag", t2), Lt(this._element, this._newPos), this.fire("drag", t2); 16706 }, _onUp: function(t2) { 16707 !t2._simulated && this._enabled && this.finishDrag(); 16708 }, finishDrag: function() { 16709 mt(document.body, "leaflet-dragging"), this._lastTarget && (mt(this._lastTarget, "leaflet-drag-target"), this._lastTarget = null); 16710 for (var t2 in Se) 16711 G(document, Se[t2], this._onMove, this), G(document, Ee[t2], this._onUp, this); 16712 Tt(), mi(), this._moved && this._moving && (g(this._animRequest), this.fire("dragend", { distance: this._newPos.distanceTo(this._startPos) })), this._moving = false, ke._dragging = false; 16713 } }), Be = (Object.freeze || Object)({ simplify: Ct, pointToSegmentDistance: Zt, closestPointOnSegment: function(t2, i3, e2) { 16714 return Rt(t2, i3, e2); 16715 }, clipSegment: Bt, _getEdgeIntersection: It, _getBitCode: At, _sqClosestPointOnSegment: Rt, isFlat: Dt, _flat: Nt }), Ie = (Object.freeze || Object)({ clipPolygon: jt }), Ae = { project: function(t2) { 16716 return new x(t2.lng, t2.lat); 16717 }, unproject: function(t2) { 16718 return new M(t2.y, t2.x); 16719 }, bounds: new P([-180, -90], [180, 90]) }, Oe = { R: 6378137, R_MINOR: 6356752314245179e-9, bounds: new P([-2003750834279e-5, -1549657073972e-5], [2003750834279e-5, 1876465623138e-5]), project: function(t2) { 16720 var i3 = Math.PI / 180, e2 = this.R, n2 = t2.lat * i3, o2 = this.R_MINOR / e2, s2 = Math.sqrt(1 - o2 * o2), r2 = s2 * Math.sin(n2), a2 = Math.tan(Math.PI / 4 - n2 / 2) / Math.pow((1 - r2) / (1 + r2), s2 / 2); 16721 return n2 = -e2 * Math.log(Math.max(a2, 1e-10)), new x(t2.lng * i3 * e2, n2); 16722 }, unproject: function(t2) { 16723 for (var i3, e2 = 180 / Math.PI, n2 = this.R, o2 = this.R_MINOR / n2, s2 = Math.sqrt(1 - o2 * o2), r2 = Math.exp(-t2.y / n2), a2 = Math.PI / 2 - 2 * Math.atan(r2), h2 = 0, u2 = 0.1; h2 < 15 && Math.abs(u2) > 1e-7; h2++) 16724 i3 = s2 * Math.sin(a2), i3 = Math.pow((1 - i3) / (1 + i3), s2 / 2), a2 += u2 = Math.PI / 2 - 2 * Math.atan(r2 * i3) - a2; 16725 return new M(a2 * e2, t2.x * e2 / n2); 16726 } }, Re = (Object.freeze || Object)({ LonLat: Ae, Mercator: Oe, SphericalMercator: _i }), De = i2({}, ci, { code: "EPSG:3395", projection: Oe, transformation: function() { 16727 var t2 = 0.5 / (Math.PI * Oe.R); 16728 return E(t2, 0.5, -t2, 0.5); 16729 }() }), Ne = i2({}, ci, { code: "EPSG:4326", projection: Ae, transformation: E(1 / 180, 1, -1 / 180, 0.5) }), je = i2({}, li, { projection: Ae, transformation: E(1, 0, -1, 0), scale: function(t2) { 16730 return Math.pow(2, t2); 16731 }, zoom: function(t2) { 16732 return Math.log(t2) / Math.LN2; 16733 }, distance: function(t2, i3) { 16734 var e2 = i3.lng - t2.lng, n2 = i3.lat - t2.lat; 16735 return Math.sqrt(e2 * e2 + n2 * n2); 16736 }, infinite: true }); 16737 li.Earth = ci, li.EPSG3395 = De, li.EPSG3857 = gi, li.EPSG900913 = vi, li.EPSG4326 = Ne, li.Simple = je; 16738 var We = ui.extend({ options: { pane: "overlayPane", attribution: null, bubblingMouseEvents: true }, addTo: function(t2) { 16739 return t2.addLayer(this), this; 16740 }, remove: function() { 16741 return this.removeFrom(this._map || this._mapToAdd); 16742 }, removeFrom: function(t2) { 16743 return t2 && t2.removeLayer(this), this; 16744 }, getPane: function(t2) { 16745 return this._map.getPane(t2 ? this.options[t2] || t2 : this.options.pane); 16746 }, addInteractiveTarget: function(t2) { 16747 return this._map._targets[n(t2)] = this, this; 16748 }, removeInteractiveTarget: function(t2) { 16749 return delete this._map._targets[n(t2)], this; 16750 }, getAttribution: function() { 16751 return this.options.attribution; 16752 }, _layerAdd: function(t2) { 16753 var i3 = t2.target; 16754 if (i3.hasLayer(this)) { 16755 if (this._map = i3, this._zoomAnimated = i3._zoomAnimated, this.getEvents) { 16756 var e2 = this.getEvents(); 16757 i3.on(e2, this), this.once("remove", function() { 16758 i3.off(e2, this); 16759 }, this); 16760 } 16761 this.onAdd(i3), this.getAttribution && i3.attributionControl && i3.attributionControl.addAttribution(this.getAttribution()), this.fire("add"), i3.fire("layeradd", { layer: this }); 16762 } 16763 } }); 16764 ye.include({ addLayer: function(t2) { 16765 if (!t2._layerAdd) 16766 throw new Error("The provided object is not a Layer."); 16767 var i3 = n(t2);
16768 return this._layers[i3] ? this : (this._layers[i3] = t2, t2._mapToAdd = this, t2.beforeAdd && t2.beforeAdd(this), this.whenReady(t2._layerAdd, t2), this); 16769 }, removeLayer: function(t2) { 16770 var i3 = n(t2); 16771 return this._layers[i3] ? (this._loaded && t2.onRemove(this), t2.getAttribution && this.attributionControl && this.attributionControl.removeAttribution(t2.getAttribution()), delete this._layers[i3], this._loaded && (this.fire("layerremove", { layer: t2 }), t2.fire("remove")), t2._map = t2._mapToAdd = null, this) : this; 16772 }, hasLayer: function(t2) { 16773 return !!t2 && n(t2) in this._layers; 16774 }, eachLayer: function(t2, i3) { 16775 for (var e2 in this._layers) 16776 t2.call(i3, this._layers[e2]); 16777 return this; 16778 }, _addLayers: function(t2) { 16779 for (var i3 = 0, e2 = (t2 = t2 ? ei(t2) ? t2 : [t2] : []).length; i3 < e2; i3++) 16780 this.addLayer(t2[i3]); 16781 }, _addZoomLimit: function(t2) { 16782 !isNaN(t2.options.maxZoom) && isNaN(t2.options.minZoom) || (this._zoomBoundLayers[n(t2)] = t2, this._updateZoomLevels()); 16783 }, _removeZoomLimit: function(t2) { 16784 var i3 = n(t2); 16785 this._zoomBoundLayers[i3] && (delete this._zoomBoundLayers[i3], this._updateZoomLevels()); 16786 }, _updateZoomLevels: function() { 16787 var t2 = 1 / 0, i3 = -1 / 0, e2 = this._getZoomSpan(); 16788 for (var n2 in this._zoomBoundLayers) { 16789 var o2 = this._zoomBoundLayers[n2].options; 16790 t2 = void 0 === o2.minZoom ? t2 : Math.min(t2, o2.minZoom), i3 = void 0 === o2.maxZoom ? i3 : Math.max(i3, o2.maxZoom); 16791 } 16792 this._layersMaxZoom = i3 === -1 / 0 ? void 0 : i3, this._layersMinZoom = t2 === 1 / 0 ? void 0 : t2, e2 !== this._getZoomSpan() && this.fire("zoomlevelschange"), void 0 === this.options.maxZoom && this._layersMaxZoom && this.getZoom() > this._layersMaxZoom && this.setZoom(this._layersMaxZoom), void 0 === this.options.minZoom && this._layersMinZoom && this.getZoom() < this._layersMinZoom && this.setZoom(this._layersMinZoom); 16793 } }); 16794 var He = We.extend({ initialize: function(t2) { 16795 this._layers = {}; 16796 var i3, e2; 16797 if (t2) 16798 for (i3 = 0, e2 = t2.length; i3 < e2; i3++) 16799 this.addLayer(t2[i3]); 16800 }, addLayer: function(t2) { 16801 var i3 = this.getLayerId(t2); 16802 return this._layers[i3] = t2, this._map && this._map.addLayer(t2), this; 16803 }, removeLayer: function(t2) { 16804 var i3 = t2 in this._layers ? t2 : this.getLayerId(t2); 16805 return this._map && this._layers[i3] && this._map.removeLayer(this._layers[i3]), delete this._layers[i3], this; 16806 }, hasLayer: function(t2) { 16807 return !!t2 && (t2 in this._layers || this.getLayerId(t2) in this._layers); 16808 }, clearLayers: function() { 16809 for (var t2 in this._layers) 16810 this.removeLayer(this._layers[t2]); 16811 return this; 16812 }, invoke: function(t2) { 16813 var i3, e2, n2 = Array.prototype.slice.call(arguments, 1); 16814 for (i3 in this._layers) 16815 (e2 = this._layers[i3])[t2] && e2[t2].apply(e2, n2); 16816 return this; 16817 }, onAdd: function(t2) { 16818 for (var i3 in this._layers) 16819 t2.addLayer(this._layers[i3]); 16820 }, onRemove: function(t2) { 16821 for (var i3 in this._layers) 16822 t2.removeLayer(this._layers[i3]); 16823 }, eachLayer: function(t2, i3) { 16824 for (var e2 in this._layers) 16825 t2.call(i3, this._layers[e2]); 16826 return this; 16827 }, getLayer: function(t2) { 16828 return this._layers[t2]; 16829 }, getLayers: function() { 16830 var t2 = []; 16831 for (var i3 in this._layers) 16832 t2.push(this._layers[i3]); 16833 return t2; 16834 }, setZIndex: function(t2) { 16835 return this.invoke("setZIndex", t2); 16836 }, getLayerId: function(t2) { 16837 return n(t2); 16838 } }), Fe = He.extend({ addLayer: function(t2) { 16839 return this.hasLayer(t2) ? this : (t2.addEventParent(this), He.prototype.addLayer.call(this, t2), this.fire("layeradd", { layer: t2 })); 16840 }, removeLayer: function(t2) { 16841 return this.hasLayer(t2) ? (t2 in this._layers && (t2 = this._layers[t2]), t2.removeEventParent(this), He.prototype.removeLayer.call(this, t2), this.fire("layerremove", { layer: t2 })) : this; 16842 }, setStyle: function(t2) { 16843 return this.invoke("setStyle", t2); 16844 }, bringToFront: function() { 16845 return this.invoke("bringToFront"); 16846 }, bringToBack: function() { 16847 return this.invoke("bringToBack"); 16848 }, getBounds: function() { 16849 var t2 = new T(); 16850 for (var i3 in this._layers) { 16851 var e2 = this._layers[i3]; 16852 t2.extend(e2.getBounds ? e2.getBounds() : e2.getLatLng()); 16853 } 16854 return t2; 16855 } }), Ue = v.extend({ initialize: function(t2) { 16856 l(this, t2); 16857 }, createIcon: function(t2) { 16858 return this._createIcon("icon", t2); 16859 }, createShadow: function(t2) { 16860 return this._createIcon("shadow", t2); 16861 }, _createIcon: function(t2, i3) { 16862 var e2 = this._getIconUrl(t2); 16863 if (!e2) { 16864 if ("icon" === t2) 16865 throw new Error("iconUrl not set in Icon options (see the docs)."); 16866 return null; 16867 } 16868 var n2 = this._createImg(e2, i3 && "IMG" === i3.tagName ? i3 : null); 16869 return this._setIconStyles(n2, t2), n2; 16870 }, _setIconStyles: function(t2, i3) { 16871 var e2 = this.options, n2 = e2[i3 + "Size"]; 16872 "number" == typeof n2 && (n2 = [n2, n2]); 16873 var o2 = w(n2), s2 = w("shadow" === i3 && e2.shadowAnchor || e2.iconAnchor || o2 && o2.divideBy(2, true)); 16874 t2.className = "leaflet-marker-" + i3 + " " + (e2.className || ""), s2 && (t2.style.marginLeft = -s2.x + "px", t2.style.marginTop = -s2.y + "px"), o2 && (t2.style.width = o2.x + "px", t2.style.height = o2.y + "px"); 16875 }, _createImg: function(t2, i3) { 16876 return i3 = i3 || document.createElement("img"), i3.src = t2, i3; 16877 }, _getIconUrl: function(t2) { 16878 return Vi && this.options[t2 + "RetinaUrl"] || this.options[t2 + "Url"]; 16879 } }), Ve = Ue.extend({ options: { iconUrl: "marker-icon.png", iconRetinaUrl: "marker-icon-2x.png", shadowUrl: "marker-shadow.png", iconSize: [25, 41], iconAnchor: [12, 41], popupAnchor: [1, -34], tooltipAnchor: [16, -28], shadowSize: [41, 41] }, _getIconUrl: function(t2) { 16880 return Ve.imagePath || (Ve.imagePath = this._detectIconPath()), (this.options.imagePath || Ve.imagePath) + Ue.prototype._getIconUrl.call(this, t2); 16881 }, _detectIconPath: function() { 16882 var t2 = ht("div", "leaflet-default-icon-path", document.body), i3 = at(t2, "background-image") || at(t2, "backgroundImage"); 16883 return document.body.removeChild(t2), i3 = null === i3 || 0 !== i3.indexOf("url") ? "" : i3.replace(/^url\([\"\']?/, "").replace(/marker-icon\.png[\"\']?\)$/, ""); 16884 } }), Ge = Me.extend({ initialize: function(t2) { 16885 this._marker = t2; 16886 }, addHooks: function() { 16887 var t2 = this._marker._icon; 16888 this._draggable || (this._draggable = new ke(t2, t2, true)), this._draggable.on({ dragstart: this._onDragStart, drag: this._onDrag, dragend: this._onDragEnd }, this).enable(), pt(t2, "leaflet-marker-draggable"); 16889 }, removeHooks: function() { 16890 this._draggable.off({ dragstart: this._onDragStart, drag: this._onDrag, dragend: this._onDragEnd }, this).disable(), this._marker._icon && mt(this._marker._icon, "leaflet-marker-draggable"); 16891 }, moved: function() { 16892 return this._draggable && this._draggable._moved; 16893 }, _onDragStart: function() { 16894 this._oldLatLng = this._marker.getLatLng(), this._marker.closePopup().fire("movestart").fire("dragstart"); 16895 }, _onDrag: function(t2) { 16896 var i3 = this._marker, e2 = i3._shadow, n2 = Pt(i3._icon), o2 = i3._map.layerPointToLatLng(n2); 16897 e2 && Lt(e2, n2), i3._latlng = o2, t2.latlng = o2, t2.oldLatLng = this._oldLatLng, i3.fire("move", t2).fire("drag", t2); 16898 }, _onDragEnd: function(t2) { 16899 delete this._oldLatLng, this._marker.fire("moveend").fire("dragend", t2); 16900 } }), qe = We.extend({ options: { icon: new Ve(), interactive: true, draggable: false, keyboard: true, title: "", alt: "", zIndexOffset: 0, opacity: 1, riseOnHover: false, riseOffset: 250, pane: "markerPane", bubblingMouseEvents: false }, initialize: function(t2, i3) { 16901 l(this, i3), this._latlng = C(t2); 16902 }, onAdd: function(t2) { 16903 this._zoomAnimated = this._zoomAnimated && t2.options.markerZoomAnimation, this._zoomAnimated && t2.on("zoomanim", this._animateZoom, this), this._initIcon(), this.update(); 16904 }, onRemove: function(t2) { 16905 this.dragging && this.dragging.enabled() && (this.options.draggable = true, this.dragging.removeHooks()), delete this.dragging, this._zoomAnimated && t2.off("zoomanim", this._animateZoom, this), this._removeIcon(), this._removeShadow(); 16906 }, getEvents: function() { 16907 return { zoom: this.update, viewreset: this.update }; 16908 }, getLatLng: function() { 16909 return this._latlng; 16910 }, setLatLng: function(t2) { 16911 var i3 = this._latlng; 16912 return this._latlng = C(t2), this.update(), this.fire("move", { oldLatLng: i3, latlng: this._latlng }); 16913 }, setZIndexOffset: function(t2) { 16914 return this.options.zIndexOffset = t2, this.update(); 16915 }, setIcon: function(t2) { 16916 return this.options.icon = t2, this._map && (this._initIcon(), this.update()), this._popup && this.bindPopup(this._popup, this._popup.options), this; 16917 }, getElement: function() { 16918 return this._icon; 16919 }, update: function() { 16920 if (this._icon) { 16921 var t2 = this._map.latLngToLayerPoint(this._latlng).round(); 16922 this._setPos(t2); 16923 } 16924 return this; 16925 }, _initIcon: function() { 16926 var t2 = this.options, i3 = "leaflet-zoom-" + (this._zoomAnimated ? "animated" : "hide"), e2 = t2.icon.createIcon(this._icon), n2 = false;
16927 e2 !== this._icon && (this._icon && this._removeIcon(), n2 = true, t2.title && (e2.title = t2.title), t2.alt && (e2.alt = t2.alt)), pt(e2, i3), t2.keyboard && (e2.tabIndex = "0"), this._icon = e2, t2.riseOnHover && this.on({ mouseover: this._bringToFront, mouseout: this._resetZIndex }); 16928 var o2 = t2.icon.createShadow(this._shadow), s2 = false; 16929 o2 !== this._shadow && (this._removeShadow(), s2 = true), o2 && (pt(o2, i3), o2.alt = ""), this._shadow = o2, t2.opacity < 1 && this._updateOpacity(), n2 && this.getPane().appendChild(this._icon), this._initInteraction(), o2 && s2 && this.getPane("shadowPane").appendChild(this._shadow); 16930 }, _removeIcon: function() { 16931 this.options.riseOnHover && this.off({ mouseover: this._bringToFront, mouseout: this._resetZIndex }), ut(this._icon), this.removeInteractiveTarget(this._icon), this._icon = null; 16932 }, _removeShadow: function() { 16933 this._shadow && ut(this._shadow), this._shadow = null; 16934 }, _setPos: function(t2) { 16935 Lt(this._icon, t2), this._shadow && Lt(this._shadow, t2), this._zIndex = t2.y + this.options.zIndexOffset, this._resetZIndex(); 16936 }, _updateZIndex: function(t2) { 16937 this._icon.style.zIndex = this._zIndex + t2; 16938 }, _animateZoom: function(t2) { 16939 var i3 = this._map._latLngToNewLayerPoint(this._latlng, t2.zoom, t2.center).round(); 16940 this._setPos(i3); 16941 }, _initInteraction: function() { 16942 if (this.options.interactive && (pt(this._icon, "leaflet-interactive"), this.addInteractiveTarget(this._icon), Ge)) { 16943 var t2 = this.options.draggable; 16944 this.dragging && (t2 = this.dragging.enabled(), this.dragging.disable()), this.dragging = new Ge(this), t2 && this.dragging.enable(); 16945 } 16946 }, setOpacity: function(t2) { 16947 return this.options.opacity = t2, this._map && this._updateOpacity(), this; 16948 }, _updateOpacity: function() { 16949 var t2 = this.options.opacity; 16950 vt(this._icon, t2), this._shadow && vt(this._shadow, t2); 16951 }, _bringToFront: function() { 16952 this._updateZIndex(this.options.riseOffset); 16953 }, _resetZIndex: function() { 16954 this._updateZIndex(0); 16955 }, _getPopupAnchor: function() { 16956 return this.options.icon.options.popupAnchor || [0, 0]; 16957 }, _getTooltipAnchor: function() { 16958 return this.options.icon.options.tooltipAnchor || [0, 0]; 16959 } }), Ke = We.extend({ options: { stroke: true, color: "#3388ff", weight: 3, opacity: 1, lineCap: "round", lineJoin: "round", dashArray: null, dashOffset: null, fill: false, fillColor: null, fillOpacity: 0.2, fillRule: "evenodd", interactive: true, bubblingMouseEvents: true }, beforeAdd: function(t2) { 16960 this._renderer = t2.getRenderer(this); 16961 }, onAdd: function() { 16962 this._renderer._initPath(this), this._reset(), this._renderer._addPath(this); 16963 }, onRemove: function() { 16964 this._renderer._removePath(this); 16965 }, redraw: function() { 16966 return this._map && this._renderer._updatePath(this), this; 16967 }, setStyle: function(t2) { 16968 return l(this, t2), this._renderer && this._renderer._updateStyle(this), this; 16969 }, bringToFront: function() { 16970 return this._renderer && this._renderer._bringToFront(this), this; 16971 }, bringToBack: function() { 16972 return this._renderer && this._renderer._bringToBack(this), this; 16973 }, getElement: function() { 16974 return this._path; 16975 }, _reset: function() { 16976 this._project(), this._update(); 16977 }, _clickTolerance: function() { 16978 return (this.options.stroke ? this.options.weight / 2 : 0) + (Hi ? 10 : 0); 16979 } }), Ye = Ke.extend({ options: { fill: true, radius: 10 }, initialize: function(t2, i3) { 16980 l(this, i3), this._latlng = C(t2), this._radius = this.options.radius; 16981 }, setLatLng: function(t2) { 16982 return this._latlng = C(t2), this.redraw(), this.fire("move", { latlng: this._latlng }); 16983 }, getLatLng: function() { 16984 return this._latlng; 16985 }, setRadius: function(t2) { 16986 return this.options.radius = this._radius = t2, this.redraw(); 16987 }, getRadius: function() { 16988 return this._radius; 16989 }, setStyle: function(t2) { 16990 var i3 = t2 && t2.radius || this._radius; 16991 return Ke.prototype.setStyle.call(this, t2), this.setRadius(i3), this; 16992 }, _project: function() { 16993 this._point = this._map.latLngToLayerPoint(this._latlng), this._updateBounds(); 16994 }, _updateBounds: function() { 16995 var t2 = this._radius, i3 = this._radiusY || t2, e2 = this._clickTolerance(), n2 = [t2 + e2, i3 + e2]; 16996 this._pxBounds = new P(this._point.subtract(n2), this._point.add(n2)); 16997 }, _update: function() { 16998 this._map && this._updatePath(); 16999 }, _updatePath: function() { 17000 this._renderer._updateCircle(this); 17001 }, _empty: function() { 17002 return this._radius && !this._renderer._bounds.intersects(this._pxBounds); 17003 }, _containsPoint: function(t2) { 17004 return t2.distanceTo(this._point) <= this._radius + this._clickTolerance(); 17005 } }), Xe = Ye.extend({ initialize: function(t2, e2, n2) { 17006 if ("number" == typeof e2 && (e2 = i2({}, n2, { radius: e2 })), l(this, e2), this._latlng = C(t2), isNaN(this.options.radius)) 17007 throw new Error("Circle radius cannot be NaN"); 17008 this._mRadius = this.options.radius; 17009 }, setRadius: function(t2) { 17010 return this._mRadius = t2, this.redraw(); 17011 }, getRadius: function() { 17012 return this._mRadius; 17013 }, getBounds: function() { 17014 var t2 = [this._radius, this._radiusY || this._radius]; 17015 return new T(this._map.layerPointToLatLng(this._point.subtract(t2)), this._map.layerPointToLatLng(this._point.add(t2))); 17016 }, setStyle: Ke.prototype.setStyle, _project: function() { 17017 var t2 = this._latlng.lng, i3 = this._latlng.lat, e2 = this._map, n2 = e2.options.crs; 17018 if (n2.distance === ci.distance) { 17019 var o2 = Math.PI / 180, s2 = this._mRadius / ci.R / o2, r2 = e2.project([i3 + s2, t2]), a2 = e2.project([i3 - s2, t2]), h2 = r2.add(a2).divideBy(2), u2 = e2.unproject(h2).lat, l2 = Math.acos((Math.cos(s2 * o2) - Math.sin(i3 * o2) * Math.sin(u2 * o2)) / (Math.cos(i3 * o2) * Math.cos(u2 * o2))) / o2; 17020 (isNaN(l2) || 0 === l2) && (l2 = s2 / Math.cos(Math.PI / 180 * i3)), this._point = h2.subtract(e2.getPixelOrigin()), this._radius = isNaN(l2) ? 0 : Math.max(Math.round(h2.x - e2.project([u2, t2 - l2]).x), 1), this._radiusY = Math.max(Math.round(h2.y - r2.y), 1); 17021 } else { 17022 var c2 = n2.unproject(n2.project(this._latlng).subtract([this._mRadius, 0])); 17023 this._point = e2.latLngToLayerPoint(this._latlng), this._radius = this._point.x - e2.latLngToLayerPoint(c2).x; 17024 } 17025 this._updateBounds(); 17026 } }), Je = Ke.extend({ options: { smoothFactor: 1, noClip: false }, initialize: function(t2, i3) { 17027 l(this, i3), this._setLatLngs(t2); 17028 }, getLatLngs: function() { 17029 return this._latlngs; 17030 }, setLatLngs: function(t2) { 17031 return this._setLatLngs(t2), this.redraw(); 17032 }, isEmpty: function() { 17033 return !this._latlngs.length; 17034 }, closestLayerPoint: function(t2) { 17035 for (var i3, e2, n2 = 1 / 0, o2 = null, s2 = Rt, r2 = 0, a2 = this._parts.length; r2 < a2; r2++) 17036 for (var h2 = this._parts[r2], u2 = 1, l2 = h2.length; u2 < l2; u2++) { 17037 var c2 = s2(t2, i3 = h2[u2 - 1], e2 = h2[u2], true); 17038 c2 < n2 && (n2 = c2, o2 = s2(t2, i3, e2)); 17039 } 17040 return o2 && (o2.distance = Math.sqrt(n2)), o2; 17041 }, getCenter: function() { 17042 if (!this._map)
17043 throw new Error("Must add layer to map before using getCenter()"); 17044 var t2, i3, e2, n2, o2, s2, r2, a2 = this._rings[0], h2 = a2.length; 17045 if (!h2) 17046 return null; 17047 for (t2 = 0, i3 = 0; t2 < h2 - 1; t2++) 17048 i3 += a2[t2].distanceTo(a2[t2 + 1]) / 2; 17049 if (0 === i3) 17050 return this._map.layerPointToLatLng(a2[0]); 17051 for (t2 = 0, n2 = 0; t2 < h2 - 1; t2++) 17052 if (o2 = a2[t2], s2 = a2[t2 + 1], e2 = o2.distanceTo(s2), (n2 += e2) > i3) 17053 return r2 = (n2 - i3) / e2, this._map.layerPointToLatLng([s2.x - r2 * (s2.x - o2.x), s2.y - r2 * (s2.y - o2.y)]); 17054 }, getBounds: function() { 17055 return this._bounds; 17056 }, addLatLng: function(t2, i3) { 17057 return i3 = i3 || this._defaultShape(), t2 = C(t2), i3.push(t2), this._bounds.extend(t2), this.redraw(); 17058 }, _setLatLngs: function(t2) { 17059 this._bounds = new T(), this._latlngs = this._convertLatLngs(t2); 17060 }, _defaultShape: function() { 17061 return Dt(this._latlngs) ? this._latlngs : this._latlngs[0]; 17062 }, _convertLatLngs: function(t2) { 17063 for (var i3 = [], e2 = Dt(t2), n2 = 0, o2 = t2.length; n2 < o2; n2++) 17064 e2 ? (i3[n2] = C(t2[n2]), this._bounds.extend(i3[n2])) : i3[n2] = this._convertLatLngs(t2[n2]); 17065 return i3; 17066 }, _project: function() { 17067 var t2 = new P(); 17068 this._rings = [], this._projectLatlngs(this._latlngs, this._rings, t2); 17069 var i3 = this._clickTolerance(), e2 = new x(i3, i3); 17070 this._bounds.isValid() && t2.isValid() && (t2.min._subtract(e2), t2.max._add(e2), this._pxBounds = t2); 17071 }, _projectLatlngs: function(t2, i3, e2) { 17072 var n2, o2, s2 = t2[0] instanceof M, r2 = t2.length; 17073 if (s2) { 17074 for (o2 = [], n2 = 0; n2 < r2; n2++) 17075 o2[n2] = this._map.latLngToLayerPoint(t2[n2]), e2.extend(o2[n2]); 17076 i3.push(o2); 17077 } else 17078 for (n2 = 0; n2 < r2; n2++) 17079 this._projectLatlngs(t2[n2], i3, e2); 17080 }, _clipPoints: function() { 17081 var t2 = this._renderer._bounds; 17082 if (this._parts = [], this._pxBounds && this._pxBounds.intersects(t2)) 17083 if (this.options.noClip) 17084 this._parts = this._rings; 17085 else { 17086 var i3, e2, n2, o2, s2, r2, a2, h2 = this._parts; 17087 for (i3 = 0, n2 = 0, o2 = this._rings.length; i3 < o2; i3++) 17088 for (e2 = 0, s2 = (a2 = this._rings[i3]).length; e2 < s2 - 1; e2++) 17089 (r2 = Bt(a2[e2], a2[e2 + 1], t2, e2, true)) && (h2[n2] = h2[n2] || [], h2[n2].push(r2[0]), r2[1] === a2[e2 + 1] && e2 !== s2 - 2 || (h2[n2].push(r2[1]), n2++)); 17090 } 17091 }, _simplifyPoints: function() { 17092 for (var t2 = this._parts, i3 = this.options.smoothFactor, e2 = 0, n2 = t2.length; e2 < n2; e2++) 17093 t2[e2] = Ct(t2[e2], i3); 17094 }, _update: function() { 17095 this._map && (this._clipPoints(), this._simplifyPoints(), this._updatePath()); 17096 }, _updatePath: function() { 17097 this._renderer._updatePoly(this); 17098 }, _containsPoint: function(t2, i3) { 17099 var e2, n2, o2, s2, r2, a2, h2 = this._clickTolerance(); 17100 if (!this._pxBounds || !this._pxBounds.contains(t2)) 17101 return false; 17102 for (e2 = 0, s2 = this._parts.length; e2 < s2; e2++) 17103 for (n2 = 0, o2 = (r2 = (a2 = this._parts[e2]).length) - 1; n2 < r2; o2 = n2++) 17104 if ((i3 || 0 !== n2) && Zt(t2, a2[o2], a2[n2]) <= h2) 17105 return true; 17106 return false; 17107 } }); 17108 Je._flat = Nt; 17109 var $e = Je.extend({ options: { fill: true }, isEmpty: function() { 17110 return !this._latlngs.length || !this._latlngs[0].length; 17111 }, getCenter: function() { 17112 if (!this._map)
17113 throw new Error("Must add layer to map before using getCenter()"); 17114 var t2, i3, e2, n2, o2, s2, r2, a2, h2, u2 = this._rings[0], l2 = u2.length; 17115 if (!l2) 17116 return null; 17117 for (s2 = r2 = a2 = 0, t2 = 0, i3 = l2 - 1; t2 < l2; i3 = t2++) 17118 e2 = u2[t2], n2 = u2[i3], o2 = e2.y * n2.x - n2.y * e2.x, r2 += (e2.x + n2.x) * o2, a2 += (e2.y + n2.y) * o2, s2 += 3 * o2; 17119 return h2 = 0 === s2 ? u2[0] : [r2 / s2, a2 / s2], this._map.layerPointToLatLng(h2); 17120 }, _convertLatLngs: function(t2) { 17121 var i3 = Je.prototype._convertLatLngs.call(this, t2), e2 = i3.length; 17122 return e2 >= 2 && i3[0] instanceof M && i3[0].equals(i3[e2 - 1]) && i3.pop(), i3; 17123 }, _setLatLngs: function(t2) { 17124 Je.prototype._setLatLngs.call(this, t2), Dt(this._latlngs) && (this._latlngs = [this._latlngs]); 17125 }, _defaultShape: function() { 17126 return Dt(this._latlngs[0]) ? this._latlngs[0] : this._latlngs[0][0]; 17127 }, _clipPoints: function() { 17128 var t2 = this._renderer._bounds, i3 = this.options.weight, e2 = new x(i3, i3); 17129 if (t2 = new P(t2.min.subtract(e2), t2.max.add(e2)), this._parts = [], this._pxBounds && this._pxBounds.intersects(t2)) 17130 if (this.options.noClip) 17131 this._parts = this._rings; 17132 else 17133 for (var n2, o2 = 0, s2 = this._rings.length; o2 < s2; o2++) 17134 (n2 = jt(this._rings[o2], t2, true)).length && this._parts.push(n2); 17135 }, _updatePath: function() { 17136 this._renderer._updatePoly(this, true); 17137 }, _containsPoint: function(t2) { 17138 var i3, e2, n2, o2, s2, r2, a2, h2, u2 = false; 17139 if (!this._pxBounds.contains(t2)) 17140 return false; 17141 for (o2 = 0, a2 = this._parts.length; o2 < a2; o2++) 17142 for (s2 = 0, r2 = (h2 = (i3 = this._parts[o2]).length) - 1; s2 < h2; r2 = s2++) 17143 e2 = i3[s2], n2 = i3[r2], e2.y > t2.y != n2.y > t2.y && t2.x < (n2.x - e2.x) * (t2.y - e2.y) / (n2.y - e2.y) + e2.x && (u2 = !u2); 17144 return u2 || Je.prototype._containsPoint.call(this, t2, true); 17145 } }), Qe = Fe.extend({ initialize: function(t2, i3) { 17146 l(this, i3), this._layers = {}, t2 && this.addData(t2); 17147 }, addData: function(t2) { 17148 var i3, e2, n2, o2 = ei(t2) ? t2 : t2.features; 17149 if (o2) { 17150 for (i3 = 0, e2 = o2.length; i3 < e2; i3++) 17151 ((n2 = o2[i3]).geometries || n2.geometry || n2.features || n2.coordinates) && this.addData(n2); 17152 return this; 17153 } 17154 var s2 = this.options; 17155 if (s2.filter && !s2.filter(t2)) 17156 return this; 17157 var r2 = Wt(t2, s2); 17158 return r2 ? (r2.feature = qt(t2), r2.defaultOptions = r2.options, this.resetStyle(r2), s2.onEachFeature && s2.onEachFeature(t2, r2), this.addLayer(r2)) : this; 17159 }, resetStyle: function(t2) { 17160 return t2.options = i2({}, t2.defaultOptions), this._setLayerStyle(t2, this.options.style), this; 17161 }, setStyle: function(t2) { 17162 return this.eachLayer(function(i3) { 17163 this._setLayerStyle(i3, t2); 17164 }, this); 17165 }, _setLayerStyle: function(t2, i3) { 17166 "function" == typeof i3 && (i3 = i3(t2.feature)), t2.setStyle && t2.setStyle(i3); 17167 } }), tn = { toGeoJSON: function(t2) { 17168 return Gt(this, { type: "Point", coordinates: Ut(this.getLatLng(), t2) }); 17169 } }; 17170 qe.include(tn), Xe.include(tn), Ye.include(tn), Je.include({ toGeoJSON: function(t2) { 17171 var i3 = !Dt(this._latlngs), e2 = Vt(this._latlngs, i3 ? 1 : 0, false, t2); 17172 return Gt(this, { type: (i3 ? "Multi" : "") + "LineString", coordinates: e2 }); 17173 } }), $e.include({ toGeoJSON: function(t2) { 17174 var i3 = !Dt(this._latlngs), e2 = i3 && !Dt(this._latlngs[0]), n2 = Vt(this._latlngs, e2 ? 2 : i3 ? 1 : 0, true, t2); 17175 return i3 || (n2 = [n2]), Gt(this, { type: (e2 ? "Multi" : "") + "Polygon", coordinates: n2 }); 17176 } }), He.include({ toMultiPoint: function(t2) { 17177 var i3 = []; 17178 return this.eachLayer(function(e2) { 17179 i3.push(e2.toGeoJSON(t2).geometry.coordinates); 17180 }), Gt(this, { type: "MultiPoint", coordinates: i3 }); 17181 }, toGeoJSON: function(t2) { 17182 var i3 = this.feature && this.feature.geometry && this.feature.geometry.type; 17183 if ("MultiPoint" === i3) 17184 return this.toMultiPoint(t2); 17185 var e2 = "GeometryCollection" === i3, n2 = []; 17186 return this.eachLayer(function(i4) { 17187 if (i4.toGeoJSON) { 17188 var o2 = i4.toGeoJSON(t2); 17189 if (e2) 17190 n2.push(o2.geometry); 17191 else { 17192 var s2 = qt(o2); 17193 "FeatureCollection" === s2.type ? n2.push.apply(n2, s2.features) : n2.push(s2); 17194 } 17195 } 17196 }), e2 ? Gt(this, { geometries: n2, type: "GeometryCollection" }) : { type: "FeatureCollection", features: n2 }; 17197 } }); 17198 var en = Kt, nn = We.extend({ options: { opacity: 1, alt: "", interactive: false, crossOrigin: false, errorOverlayUrl: "", zIndex: 1, className: "" }, initialize: function(t2, i3, e2) { 17199 this._url = t2, this._bounds = z(i3), l(this, e2); 17200 }, onAdd: function() { 17201 this._image || (this._initImage(), this.options.opacity < 1 && this._updateOpacity()), this.options.interactive && (pt(this._image, "leaflet-interactive"), this.addInteractiveTarget(this._image)), this.getPane().appendChild(this._image), this._reset(); 17202 }, onRemove: function() { 17203 ut(this._image), this.options.interactive && this.removeInteractiveTarget(this._image); 17204 }, setOpacity: function(t2) { 17205 return this.options.opacity = t2, this._image && this._updateOpacity(), this; 17206 }, setStyle: function(t2) { 17207 return t2.opacity && this.setOpacity(t2.opacity), this; 17208 }, bringToFront: function() { 17209 return this._map && ct(this._image), this; 17210 }, bringToBack: function() { 17211 return this._map && _t(this._image), this; 17212 }, setUrl: function(t2) { 17213 return this._url = t2, this._image && (this._image.src = t2), this; 17214 }, setBounds: function(t2) { 17215 return this._bounds = z(t2), this._map && this._reset(), this; 17216 }, getEvents: function() { 17217 var t2 = { zoom: this._reset, viewreset: this._reset }; 17218 return this._zoomAnimated && (t2.zoomanim = this._animateZoom), t2; 17219 }, setZIndex: function(t2) { 17220 return this.options.zIndex = t2, this._updateZIndex(), this; 17221 }, getBounds: function() { 17222 return this._bounds; 17223 }, getElement: function() { 17224 return this._image; 17225 }, _initImage: function() { 17226 var t2 = this._image = ht("img", "leaflet-image-layer " + (this._zoomAnimated ? "leaflet-zoom-animated" : "") + (this.options.className || "")); 17227 t2.onselectstart = r, t2.onmousemove = r, t2.onload = e(this.fire, this, "load"), t2.onerror = e(this._overlayOnError, this, "error"), this.options.crossOrigin && (t2.crossOrigin = ""), this.options.zIndex && this._updateZIndex(), t2.src = this._url, t2.alt = this.options.alt; 17228 }, _animateZoom: function(t2) { 17229 var i3 = this._map.getZoomScale(t2.zoom), e2 = this._map._latLngBoundsToNewLayerBounds(this._bounds, t2.zoom, t2.center).min; 17230 wt(this._image, e2, i3); 17231 }, _reset: function() { 17232 var t2 = this._image, i3 = new P(this._map.latLngToLayerPoint(this._bounds.getNorthWest()), this._map.latLngToLayerPoint(this._bounds.getSouthEast())), e2 = i3.getSize(); 17233 Lt(t2, i3.min), t2.style.width = e2.x + "px", t2.style.height = e2.y + "px"; 17234 }, _updateOpacity: function() { 17235 vt(this._image, this.options.opacity); 17236 }, _updateZIndex: function() { 17237 this._image && void 0 !== this.options.zIndex && null !== this.options.zIndex && (this._image.style.zIndex = this.options.zIndex); 17238 }, _overlayOnError: function() { 17239 this.fire("error"); 17240 var t2 = this.options.errorOverlayUrl; 17241 t2 && this._url !== t2 && (this._url = t2, this._image.src = t2); 17242 } }), on2 = nn.extend({ options: { autoplay: true, loop: true }, _initImage: function() { 17243 var t2 = "VIDEO" === this._url.tagName, i3 = this._image = t2 ? this._url : ht("video"); 17244 if (i3.class = i3.class || "", i3.class += "leaflet-image-layer " + (this._zoomAnimated ? "leaflet-zoom-animated" : ""), i3.onselectstart = r, i3.onmousemove = r, i3.onloadeddata = e(this.fire, this, "load"), !t2) { 17245 ei(this._url) || (this._url = [this._url]), i3.autoplay = !!this.options.autoplay, i3.loop = !!this.options.loop; 17246 for (var n2 = 0; n2 < this._url.length; n2++) { 17247 var o2 = ht("source"); 17248 o2.src = this._url[n2], i3.appendChild(o2); 17249 } 17250 } 17251 } }), sn = We.extend({ options: { offset: [0, 7], className: "", pane: "popupPane" }, initialize: function(t2, i3) { 17252 l(this, t2), this._source = i3; 17253 }, onAdd: function(t2) { 17254 this._zoomAnimated = t2._zoomAnimated, this._container || this._initLayout(), t2._fadeAnimated && vt(this._container, 0), clearTimeout(this._removeTimeout), this.getPane().appendChild(this._container), this.update(), t2._fadeAnimated && vt(this._container, 1), this.bringToFront(); 17255 }, onRemove: function(t2) { 17256 t2._fadeAnimated ? (vt(this._container, 0), this._removeTimeout = setTimeout(e(ut, void 0, this._container), 200)) : ut(this._container); 17257 }, getLatLng: function() { 17258 return this._latlng; 17259 }, setLatLng: function(t2) { 17260 return this._latlng = C(t2), this._map && (this._updatePosition(), this._adjustPan()), this; 17261 }, getContent: function() { 17262 return this._content; 17263 }, setContent: function(t2) { 17264 return this._content = t2, this.update(), this; 17265 }, getElement: function() { 17266 return this._container; 17267 }, update: function() { 17268 this._map && (this._container.style.visibility = "hidden", this._updateContent(), this._updateLayout(), this._updatePosition(), this._container.style.visibility = "", this._adjustPan()); 17269 }, getEvents: function() { 17270 var t2 = { zoom: this._updatePosition, viewreset: this._updatePosition }; 17271 return this._zoomAnimated && (t2.zoomanim = this._animateZoom), t2; 17272 }, isOpen: function() { 17273 return !!this._map && this._map.hasLayer(this); 17274 }, bringToFront: function() { 17275 return this._map && ct(this._container), this; 17276 }, bringToBack: function() { 17277 return this._map && _t(this._container), this; 17278 }, _updateContent: function() { 17279 if (this._content) { 17280 var t2 = this._contentNode, i3 = "function" == typeof this._content ? this._content(this._source || this) : this._content; 17281 if ("string" == typeof i3) 17282 t2.innerHTML = i3; 17283 else { 17284 for (; t2.hasChildNodes(); ) 17285 t2.removeChild(t2.firstChild); 17286 t2.appendChild(i3); 17287 } 17288 this.fire("contentupdate"); 17289 } 17290 }, _updatePosition: function() { 17291 if (this._map) { 17292 var t2 = this._map.latLngToLayerPoint(this._latlng), i3 = w(this.options.offset), e2 = this._getAnchor(); 17293 this._zoomAnimated ? Lt(this._container, t2.add(e2)) : i3 = i3.add(t2).add(e2); 17294 var n2 = this._containerBottom = -i3.y, o2 = this._containerLeft = -Math.round(this._containerWidth / 2) + i3.x; 17295 this._container.style.bottom = n2 + "px", this._container.style.left = o2 + "px"; 17296 } 17297 }, _getAnchor: function() { 17298 return [0, 0]; 17299 } }), rn = sn.extend({ options: { maxWidth: 300, minWidth: 50, maxHeight: null, autoPan: true, autoPanPaddingTopLeft: null, autoPanPaddingBottomRight: null, autoPanPadding: [5, 5], keepInView: false, closeButton: true, autoClose: true, className: "" }, openOn: function(t2) { 17300 return t2.openPopup(this), this; 17301 }, onAdd: function(t2) { 17302 sn.prototype.onAdd.call(this, t2), t2.fire("popupopen", { popup: this }), this._source && (this._source.fire("popupopen", { popup: this }, true), this._source instanceof Ke || this._source.on("preclick", Y)); 17303 }, onRemove: function(t2) { 17304 sn.prototype.onRemove.call(this, t2), t2.fire("popupclose", { popup: this }), this._source && (this._source.fire("popupclose", { popup: this }, true), this._source instanceof Ke || this._source.off("preclick", Y)); 17305 }, getEvents: function() { 17306 var t2 = sn.prototype.getEvents.call(this); 17307 return (void 0 !== this.options.closeOnClick ? this.options.closeOnClick : this._map.options.closePopupOnClick) && (t2.preclick = this._close), this.options.keepInView && (t2.moveend = this._adjustPan), t2; 17308 }, _close: function() { 17309 this._map && this._map.closePopup(this); 17310 }, _initLayout: function() { 17311 var t2 = "leaflet-popup", i3 = this._container = ht("div", t2 + " " + (this.options.className || "") + " leaflet-zoom-animated"), e2 = this._wrapper = ht("div", t2 + "-content-wrapper", i3); 17312 if (this._contentNode = ht("div", t2 + "-content", e2), J(e2), X(this._contentNode), V(e2, "contextmenu", Y), this._tipContainer = ht("div", t2 + "-tip-container", i3), this._tip = ht("div", t2 + "-tip", this._tipContainer), this.options.closeButton) { 17313 var n2 = this._closeButton = ht("a", t2 + "-close-button", i3); 17314 n2.href = "#close", n2.innerHTML = "×", V(n2, "click", this._onCloseButtonClick, this); 17315 } 17316 }, _updateLayout: function() { 17317 var t2 = this._contentNode, i3 = t2.style; 17318 i3.width = "", i3.whiteSpace = "nowrap"; 17319 var e2 = t2.offsetWidth; 17320 e2 = Math.min(e2, this.options.maxWidth), e2 = Math.max(e2, this.options.minWidth), i3.width = e2 + 1 + "px", i3.whiteSpace = "", i3.height = ""; 17321 var n2 = t2.offsetHeight, o2 = this.options.maxHeight; 17322 o2 && n2 > o2 ? (i3.height = o2 + "px", pt(t2, "leaflet-popup-scrolled")) : mt(t2, "leaflet-popup-scrolled"), this._containerWidth = this._container.offsetWidth; 17323 }, _animateZoom: function(t2) { 17324 var i3 = this._map._latLngToNewLayerPoint(this._latlng, t2.zoom, t2.center), e2 = this._getAnchor(); 17325 Lt(this._container, i3.add(e2)); 17326 }, _adjustPan: function() { 17327 if (!(!this.options.autoPan || this._map._panAnim && this._map._panAnim._inProgress)) { 17328 var t2 = this._map, i3 = parseInt(at(this._container, "marginBottom"), 10) || 0, e2 = this._container.offsetHeight + i3, n2 = this._containerWidth, o2 = new x(this._containerLeft, -e2 - this._containerBottom); 17329 o2._add(Pt(this._container)); 17330 var s2 = t2.layerPointToContainerPoint(o2), r2 = w(this.options.autoPanPadding), a2 = w(this.options.autoPanPaddingTopLeft || r2), h2 = w(this.options.autoPanPaddingBottomRight || r2), u2 = t2.getSize(), l2 = 0, c2 = 0; 17331 s2.x + n2 + h2.x > u2.x && (l2 = s2.x + n2 - u2.x + h2.x), s2.x - l2 - a2.x < 0 && (l2 = s2.x - a2.x), s2.y + e2 + h2.y > u2.y && (c2 = s2.y + e2 - u2.y + h2.y), s2.y - c2 - a2.y < 0 && (c2 = s2.y - a2.y), (l2 || c2) && t2.fire("autopanstart").panBy([l2, c2]); 17332 } 17333 }, _onCloseButtonClick: function(t2) { 17334 this._close(), Q(t2); 17335 }, _getAnchor: function() { 17336 return w(this._source && this._source._getPopupAnchor ? this._source._getPopupAnchor() : [0, 0]); 17337 } }); 17338 ye.mergeOptions({ closePopupOnClick: true }), ye.include({ openPopup: function(t2, i3, e2) { 17339 return t2 instanceof rn || (t2 = new rn(e2).setContent(t2)), i3 && t2.setLatLng(i3), this.hasLayer(t2) ? this
17339: (this._popup && this._popup.options.autoClose && this.closePopup(), this._popup = t2, this.addLayer(t2)); 17340 }, closePopup: function(t2) { 17341 return t2 && t2 !== this._popup || (t2 = this._popup, this._popup = null), t2 && this.removeLayer(t2), this; 17342 } }), We.include({ bindPopup: function(t2, i3) { 17343 return t2 instanceof rn ? (l(t2, i3), this._popup = t2, t2._source = this) : (this._popup && !i3 || (this._popup = new rn(i3, this)), this._popup.setContent(t2)), this._popupHandlersAdded || (this.on({ click: this._openPopup, keypress: this._onKeyPress, remove: this.closePopup, move: this._movePopup }), this._popupHandlersAdded = true), this; 17344 }, unbindPopup: function() { 17345 return this._popup && (this.off({ click: this._openPopup, keypress: this._onKeyPress, remove: this.closePopup, move: this._movePopup }), this._popupHandlersAdded = false, this._popup = null), this; 17346 }, openPopup: function(t2, i3) { 17347 if (t2 instanceof We || (i3 = t2, t2 = this), t2 instanceof Fe) 17348 for (var e2 in this._layers) { 17349 t2 = this._layers[e2]; 17350 break; 17351 } 17352 return i3 || (i3 = t2.getCenter ? t2.getCenter() : t2.getLatLng()), this._popup && this._map && (this._popup._source = t2, this._popup.update(), this._map.openPopup(this._popup, i3)), this; 17353 }, closePopup: function() { 17354 return this._popup && this._popup._close(), this; 17355 }, togglePopup: function(t2) { 17356 return this._popup && (this._popup._map ? this.closePopup() : this.openPopup(t2)), this; 17357 }, isPopupOpen: function() { 17358 return !!this._popup && this._popup.isOpen(); 17359 }, setPopupContent: function(t2) { 17360 return this._popup && this._popup.setContent(t2), this; 17361 }, getPopup: function() { 17362 return this._popup; 17363 }, _openPopup: function(t2) { 17364 var i3 = t2.layer || t2.target; 17365 this._popup && this._map && (Q(t2), i3 instanceof Ke ? this.openPopup(t2.layer || t2.target, t2.latlng) : this._map.hasLayer(this._popup) && this._popup._source === i3 ? this.closePopup() : this.openPopup(i3, t2.latlng)); 17366 }, _movePopup: function(t2) { 17367 this._popup.setLatLng(t2.latlng); 17368 }, _onKeyPress: function(t2) { 17369 13 === t2.originalEvent.keyCode && this._openPopup(t2); 17370 } }); 17371 var an = sn.extend({ options: { pane: "tooltipPane", offset: [0, 0], direction: "auto", permanent: false, sticky: false, interactive: false, opacity: 0.9 }, onAdd: function(t2) { 17372 sn.prototype.onAdd.call(this, t2), this.setOpacity(this.options.opacity), t2.fire("tooltipopen", { tooltip: this }), this._source && this._source.fire("tooltipopen", { tooltip: this }, true); 17373 }, onRemove: function(t2) { 17374 sn.prototype.onRemove.call(this, t2), t2.fire("tooltipclose", { tooltip: this }), this._source && this._source.fire("tooltipclose", { tooltip: this }, true); 17375 }, getEvents: function() { 17376 var t2 = sn.prototype.getEvents.call(this); 17377 return Hi && !this.options.permanent && (t2.preclick = this._close), t2; 17378 }, _close: function() { 17379 this._map && this._map.closeTooltip(this); 17380 }, _initLayout: function() { 17381 var t2 = "leaflet-tooltip " + (this.options.className || "") + " leaflet-zoom-" + (this._zoomAnimated ? "animated" : "hide"); 17382 this._contentNode = this._container = ht("div", t2); 17383 }, _updateLayout: function() { 17384 }, _adjustPan: function() { 17385 }, _setPosition: function(t2) { 17386 var i3 = this._map, e2 = this._container, n2 = i3.latLngToContainerPoint(i3.getCenter()), o2 = i3.layerPointToContainerPoint(t2), s2 = this.options.direction, r2 = e2.offsetWidth, a2 = e2.offsetHeight, h2 = w(this.options.offset), u2 = this._getAnchor(); 17387 "top" === s2 ? t2 = t2.add(w(-r2 / 2 + h2.x, -a2 + h2.y + u2.y, true)) : "bottom" === s2 ? t2 = t2.subtract(w(r2 / 2 - h2.x, -h2.y, true)) : "center" === s2 ? t2 = t2.subtract(w(r2 / 2 + h2.x, a2 / 2 - u2.y + h2.y, true)) : "right" === s2 || "auto" === s2 && o2.x < n2.x ? (s2 = "right", t2 = t2.add(w(h2.x + u2.x, u2.y - a2 / 2 + h2.y, true))) : (s2 = "left", t2 = t2.subtract(w(r2 + u2.x - h2.x, a2 / 2 - u2.y - h2.y, true))), mt(e2, "leaflet-tooltip-right"), mt(e2, "leaflet-tooltip-left"), mt(e2, "leaflet-tooltip-top"), mt(e2, "leaflet-tooltip-bottom"), pt(e2, "leaflet-tooltip-" + s2), Lt(e2, t2); 17388 }, _updatePosition: function() { 17389 var t2 = this._map.latLngToLayerPoint(this._latlng); 17390 this._setPosition(t2); 17391 }, setOpacity: function(t2) { 17392 this.options.opacity = t2, this._container && vt(this._container, t2); 17393 }, _animateZoom: function(t2) { 17394 var i3 = this._map._latLngToNewLayerPoint(this._latlng, t2.zoom, t2.center); 17395 this._setPosition(i3); 17396 }, _getAnchor: function() { 17397 return w(this._source && this._source._getTooltipAnchor && !this.options.sticky ? this._source._getTooltipAnchor() : [0, 0]); 17398 } }); 17399 ye.include({ openTooltip: function(t2, i3, e2) { 17400 return t2 instanceof an || (t2 = new an(e2).setContent(t2)), i3 && t2.setLatLng(i3), this.hasLayer(t2) ? this
17400: this.addLayer(t2); 17401 }, closeTooltip: function(t2) { 17402 return t2 && this.removeLayer(t2), this; 17403 } }), We.include({ bindTooltip: function(t2, i3) { 17404 return t2 instanceof an ? (l(t2, i3), this._tooltip = t2, t2._source = this) : (this._tooltip && !i3 || (this._tooltip = new an(i3, this)), this._tooltip.setContent(t2)), this._initTooltipInteractions(), this._tooltip.options.permanent && this._map && this._map.hasLayer(this) && this.openTooltip(), this; 17405 }, unbindTooltip: function() { 17406 return this._tooltip && (this._initTooltipInteractions(true), this.closeTooltip(), this._tooltip = null), this; 17407 }, _initTooltipInteractions: function(t2) { 17408 if (t2 || !this._tooltipHandlersAdded) { 17409 var i3 = t2 ? "off" : "on", e2 = { remove: this.closeTooltip, move: this._moveTooltip }; 17410 this._tooltip.options.permanent ? e2.add = this._openTooltip : (e2.mouseover = this._openTooltip, e2.mouseout = this.closeTooltip, this._tooltip.options.sticky && (e2.mousemove = this._moveTooltip), Hi && (e2.click = this._openTooltip)), this[i3](e2), this._tooltipHandlersAdded = !t2; 17411 } 17412 }, openTooltip: function(t2, i3) { 17413 if (t2 instanceof We || (i3 = t2, t2 = this), t2 instanceof Fe) 17414 for (var e2 in this._layers) { 17415 t2 = this._layers[e2]; 17416 break; 17417 } 17418 return i3 || (i3 = t2.getCenter ? t2.getCenter() : t2.getLatLng()), this._tooltip && this._map && (this._tooltip._source = t2, this._tooltip.update(), this._map.openTooltip(this._tooltip, i3), this._tooltip.options.interactive && this._tooltip._container && (pt(this._tooltip._container, "leaflet-clickable"), this.addInteractiveTarget(this._tooltip._container))), this; 17419 }, closeTooltip: function() { 17420 return this._tooltip && (this._tooltip._close(), this._tooltip.options.interactive && this._tooltip._container && (mt(this._tooltip._container, "leaflet-clickable"), this.removeInteractiveTarget(this._tooltip._container))), this; 17421 }, toggleTooltip: function(t2) { 17422 return this._tooltip && (this._tooltip._map ? this.closeTooltip() : this.openTooltip(t2)), this; 17423 }, isTooltipOpen: function() { 17424 return this._tooltip.isOpen(); 17425 }, setTooltipContent: function(t2) { 17426 return this._tooltip && this._tooltip.setContent(t2), this; 17427 }, getTooltip: function() { 17428 return this._tooltip; 17429 }, _openTooltip: function(t2) { 17430 var i3 = t2.layer || t2.target; 17431 this._tooltip && this._map && this.openTooltip(i3, this._tooltip.options.sticky ? t2.latlng : void 0); 17432 }, _moveTooltip: function(t2) { 17433 var i3, e2, n2 = t2.latlng; 17434 this._tooltip.options.sticky && t2.originalEvent && (i3 = this._map.mouseEventToContainerPoint(t2.originalEvent), e2 = this._map.containerPointToLayerPoint(i3), n2 = this._map.layerPointToLatLng(e2)), this._tooltip.setLatLng(n2); 17435 } }); 17436 var hn = Ue.extend({ options: { iconSize: [12, 12], html: false, bgPos: null, className: "leaflet-div-icon" }, createIcon: function(t2) { 17437 var i3 = t2 && "DIV" === t2.tagName ? t2 : document.createElement("div"), e2 = this.options; 17438 if (i3.innerHTML = false !== e2.html ? e2.html : "", e2.bgPos) { 17439 var n2 = w(e2.bgPos); 17440 i3.style.backgroundPosition = -n2.x + "px " + -n2.y + "px"; 17441 } 17442 return this._setIconStyles(i3, "icon"), i3; 17443 }, createShadow: function() { 17444 return null; 17445 } }); 17446 Ue.Default = Ve; 17447 var un = We.extend({ options: { tileSize: 256, opacity: 1, updateWhenIdle: Ri, updateWhenZooming: true, updateInterval: 200, zIndex: 1, bounds: null, minZoom: 0, maxZoom: void 0, maxNativeZoom: void 0, minNativeZoom: void 0, noWrap: false, pane: "tilePane", className: "", keepBuffer: 2 }, initialize: function(t2) { 17448 l(this, t2); 17449 }, onAdd: function() { 17450 this._initContainer(), this._levels = {}, this._tiles = {}, this._resetView(), this._update(); 17451 }, beforeAdd: function(t2) { 17452 t2._addZoomLimit(this); 17453 }, onRemove: function(t2) { 17454 this._removeAllTiles(), ut(this._container), t2._removeZoomLimit(this), this._container = null, this._tileZoom = null; 17455 }, bringToFront: function() { 17456 return this._map && (ct(this._container), this._setAutoZIndex(Math.max)), this; 17457 }, bringToBack: function() { 17458 return this._map && (_t(this._container), this._setAutoZIndex(Math.min)), this; 17459 }, getContainer: function() { 17460 return this._container; 17461 }, setOpacity: function(t2) { 17462 return this.options.opacity = t2, this._updateOpacity(), this; 17463 }, setZIndex: function(t2) { 17464 return this.options.zIndex = t2, this._updateZIndex(), this; 17465 }, isLoading: function() { 17466 return this._loading; 17467 }, redraw: function() { 17468 return this._map && (this._removeAllTiles(), this._update()), this; 17469 }, getEvents: function() { 17470 var t2 = { viewprereset: this._invalidateAll, viewreset: this._resetView, zoom: this._resetView, moveend: this._onMoveEnd }; 17471 return this.options.updateWhenIdle || (this._onMove || (this._onMove = o(this._onMoveEnd, this.options.updateInterval, this)), t2.move = this._onMove), this._zoomAnimated && (t2.zoomanim = this._animateZoom), t2; 17472 }, createTile: function() { 17473 return document.createElement("div"); 17474 }, getTileSize: function() { 17475 var t2 = this.options.tileSize; 17476 return t2 instanceof x ? t2 : new x(t2, t2); 17477 }, _updateZIndex: function() { 17478 this._container && void 0 !== this.options.zIndex && null !== this.options.zIndex && (this._container.style.zIndex = this.options.zIndex); 17479 }, _setAutoZIndex: function(t2) { 17480 for (var i3, e2 = this.getPane().children, n2 = -t2(-1 / 0, 1 / 0), o2 = 0, s2 = e2.length; o2 < s2; o2++) 17481 i3 = e2[o2].style.zIndex, e2[o2] !== this._container && i3 && (n2 = t2(n2, +i3)); 17482 isFinite(n2) && (this.options.zIndex = n2 + t2(-1, 1), this._updateZIndex()); 17483 }, _updateOpacity: function() { 17484 if (this._map && !wi) { 17485 vt(this._container, this.options.opacity); 17486 var t2 = +new Date(), i3 = false, e2 = false;
17487 for (var n2 in this._tiles) { 17488 var o2 = this._tiles[n2]; 17489 if (o2.current && o2.loaded) { 17490 var s2 = Math.min(1, (t2 - o2.loaded) / 200); 17491 vt(o2.el, s2), s2 < 1 ? i3 = true : (o2.active ? e2 = true : this._onOpaqueTile(o2), o2.active = true); 17492 } 17493 } 17494 e2 && !this._noPrune && this._pruneTiles(), i3 && (g(this._fadeFrame), this._fadeFrame = f(this._updateOpacity, this)); 17495 } 17496 }, _onOpaqueTile: r, _initContainer: function() { 17497 this._container || (this._container = ht("div", "leaflet-layer " + (this.options.className || "")), this._updateZIndex(), this.options.opacity < 1 && this._updateOpacity(), this.getPane().appendChild(this._container)); 17498 }, _updateLevels: function() { 17499 var t2 = this._tileZoom, i3 = this.options.maxZoom; 17500 if (void 0 !== t2) { 17501 for (var e2 in this._levels) 17502 this._levels[e2].el.children.length || e2 === t2 ? (this._levels[e2].el.style.zIndex = i3 - Math.abs(t2 - e2), this._onUpdateLevel(e2)) : (ut(this._levels[e2].el), this._removeTilesAtZoom(e2), this._onRemoveLevel(e2), delete this._levels[e2]); 17503 var n2 = this._levels[t2], o2 = this._map; 17504 return n2 || ((n2 = this._levels[t2] = {}).el = ht("div", "leaflet-tile-container leaflet-zoom-animated", this._container), n2.el.style.zIndex = i3, n2.origin = o2.project(o2.unproject(o2.getPixelOrigin()), t2).round(), n2.zoom = t2, this._setZoomTransform(n2, o2.getCenter(), o2.getZoom()), n2.el.offsetWidth, this._onCreateLevel(n2)), this._level = n2, n2; 17505 } 17506 }, _onUpdateLevel: r, _onRemoveLevel: r, _onCreateLevel: r, _pruneTiles: function() { 17507 if (this._map) { 17508 var t2, i3, e2 = this._map.getZoom(); 17509 if (e2 > this.options.maxZoom || e2 < this.options.minZoom) 17510 this._removeAllTiles(); 17511 else { 17512 for (t2 in this._tiles) 17513 (i3 = this._tiles[t2]).retain = i3.current; 17514 for (t2 in this._tiles) 17515 if ((i3 = this._tiles[t2]).current && !i3.active) { 17516 var n2 = i3.coords; 17517 this._retainParent(n2.x, n2.y, n2.z, n2.z - 5) || this._retainChildren(n2.x, n2.y, n2.z, n2.z + 2); 17518 } 17519 for (t2 in this._tiles) 17520 this._tiles[t2].retain || this._removeTile(t2); 17521 } 17522 } 17523 }, _removeTilesAtZoom: function(t2) { 17524 for (var i3 in this._tiles) 17525 this._tiles[i3].coords.z === t2 && this._removeTile(i3); 17526 }, _removeAllTiles: function() { 17527 for (var t2 in this._tiles) 17528 this._removeTile(t2); 17529 }, _invalidateAll: function() { 17530 for (var t2 in this._levels) 17531 ut(this._levels[t2].el), this._onRemoveLevel(t2), delete this._levels[t2]; 17532 this._removeAllTiles(), this._tileZoom = null; 17533 }, _retainParent: function(t2, i3, e2, n2) { 17534 var o2 = Math.floor(t2 / 2), s2 = Math.floor(i3 / 2), r2 = e2 - 1, a2 = new x(+o2, +s2); 17535 a2.z = +r2; 17536 var h2 = this._tileCoordsToKey(a2), u2 = this._tiles[h2]; 17537 return u2 && u2.active ? (u2.retain = true, true) : (u2 && u2.loaded && (u2.retain = true), r2 > n2 && this._retainParent(o2, s2, r2, n2)); 17538 }, _retainChildren: function(t2, i3, e2, n2) { 17539 for (var o2 = 2 * t2; o2 < 2 * t2 + 2; o2++) 17540 for (var s2 = 2 * i3; s2 < 2 * i3 + 2; s2++) { 17541 var r2 = new x(o2, s2); 17542 r2.z = e2 + 1; 17543 var a2 = this._tileCoordsToKey(r2), h2 = this._tiles[a2]; 17544 h2 && h2.active ? h2.retain = true : (h2 && h2.loaded && (h2.retain = true), e2 + 1 < n2 && this._retainChildren(o2, s2, e2 + 1, n2)); 17545 } 17546 }, _resetView: function(t2) { 17547 var i3 = t2 && (t2.pinch || t2.flyTo); 17548 this._setView(this._map.getCenter(), this._map.getZoom(), i3, i3); 17549 }, _animateZoom: function(t2) { 17550 this._setView(t2.center, t2.zoom, true, t2.noUpdate); 17551 }, _clampZoom: function(t2) { 17552 var i3 = this.options; 17553 return void 0 !== i3.minNativeZoom && t2 < i3.minNativeZoom ? i3.minNativeZoom : void 0 !== i3.maxNativeZoom && i3.maxNativeZoom < t2 ? i3.maxNativeZoom : t2; 17554 }
17554, _setView: function(t2, i3, e2, n2) { 17555 var o2 = this._clampZoom(Math.round(i3)); 17556 (void 0 !== this.options.maxZoom && o2 > this.options.maxZoom || void 0 !== this.options.minZoom && o2 < this.options.minZoom) && (o2 = void 0); 17557 var s2 = this.options.updateWhenZooming && o2 !== this._tileZoom; 17558 n2 && !s2 || (this._tileZoom = o2, this._abortLoading && this._abortLoading(), this._updateLevels(), this._resetGrid(), void 0 !== o2 && this._update(t2), e2 || this._pruneTiles(), this._noPrune = !!e2), this._setZoomTransforms(t2, i3); 17559 }, _setZoomTransforms: function(t2, i3) { 17560 for (var e2 in this._levels) 17561 this._setZoomTransform(this._levels[e2], t2, i3); 17562 }, _setZoomTransform: function(t2, i3, e2) { 17563 var n2 = this._map.getZoomScale(e2, t2.zoom), o2 = t2.origin.multiplyBy(n2).subtract(this._map._getNewPixelOrigin(i3, e2)).round(); 17564 Oi ? wt(t2.el, o2, n2) : Lt(t2.el, o2); 17565 }, _resetGrid: function() { 17566 var t2 = this._map, i3 = t2.options.crs, e2 = this._tileSize = this.getTileSize(), n2 = this._tileZoom, o2 = this._map.getPixelWorldBounds(this._tileZoom); 17567 o2 && (this._globalTileRange = this._pxBoundsToTileRange(o2)), this._wrapX = i3.wrapLng && !this.options.noWrap && [Math.floor(t2.project([0, i3.wrapLng[0]], n2).x / e2.x), Math.ceil(t2.project([0, i3.wrapLng[1]], n2).x / e2.y)], this._wrapY = i3.wrapLat && !this.options.noWrap && [Math.floor(t2.project([i3.wrapLat[0], 0], n2).y / e2.x), Math.ceil(t2.project([i3.wrapLat[1], 0], n2).y / e2.y)]; 17568 }, _onMoveEnd: function() { 17569 this._map && !this._map._animatingZoom && this._update(); 17570 }, _getTiledPixelBounds: function(t2) { 17571 var i3 = this._map, e2 = i3._animatingZoom ? Math.max(i3._animateToZoom, i3.getZoom()) : i3.getZoom(), n2 = i3.getZoomScale(e2, this._tileZoom), o2 = i3.project(t2, this._tileZoom).floor(), s2 = i3.getSize().divideBy(2 * n2); 17572 return new P(o2.subtract(s2), o2.add(s2)); 17573 }, _update: function(t2) { 17574 var i3 = this._map; 17575 if (i3) { 17576 var e2 = this._clampZoom(i3.getZoom()); 17577 if (void 0 === t2 && (t2 = i3.getCenter()), void 0 !== this._tileZoom) { 17578 var n2 = this._getTiledPixelBounds(t2), o2 = this._pxBoundsToTileRange(n2), s2 = o2.getCenter(), r2 = [], a2 = this.options.keepBuffer, h2 = new P(o2.getBottomLeft().subtract([a2, -a2]), o2.getTopRight().add([a2, -a2])); 17579 if (!(isFinite(o2.min.x) && isFinite(o2.min.y) && isFinite(o2.max.x) && isFinite(o2.max.y))) 17580 throw new Error("Attempted to load an infinite number of tiles"); 17581 for (var u2 in this._tiles) { 17582 var l2 = this._tiles[u2].coords; 17583 l2.z === this._tileZoom && h2.contains(new x(l2.x, l2.y)) || (this._tiles[u2].current = false); 17584 } 17585 if (Math.abs(e2 - this._tileZoom) > 1) 17586 this._setView(t2, e2); 17587 else { 17588 for (var c2 = o2.min.y; c2 <= o2.max.y; c2++) 17589 for (var _2 = o2.min.x; _2 <= o2.max.x; _2++) { 17590 var d2 = new x(_2, c2); 17591 d2.z = this._tileZoom, this._isValidTile(d2) && (this._tiles[this._tileCoordsToKey(d2)] || r2.push(d2)); 17592 } 17593 if (r2.sort(function(t3, i4) { 17594 return t3.distanceTo(s2) - i4.distanceTo(s2); 17595 }), 0 !== r2.length) { 17596 this._loading || (this._loading = true, this.fire("loading")); 17597 var p2 = document.createDocumentFragment(); 17598 for (_2 = 0; _2 < r2.length; _2++) 17599 this._addTile(r2[_2], p2); 17600 this._level.el.appendChild(p2); 17601 } 17602 } 17603 } 17604 } 17605 }, _isValidTile: function(t2) { 17606 var i3 = this._map.options.crs; 17607 if (!i3.infinite) { 17608 var e2 = this._globalTileRange; 17609 if (!i3.wrapLng && (t2.x < e2.min.x || t2.x > e2.max.x) || !i3.wrapLat && (t2.y < e2.min.y || t2.y > e2.max.y)) 17610 return false;
17611 } 17612 if (!this.options.bounds) 17613 return true; 17614 var n2 = this._tileCoordsToBounds(t2); 17615 return z(this.options.bounds).overlaps(n2); 17616 }, _keyToBounds: function(t2) { 17617 return this._tileCoordsToBounds(this._keyToTileCoords(t2)); 17618 }, _tileCoordsToBounds: function(t2) { 17619 var i3 = this._map, e2 = this.getTileSize(), n2 = t2.scaleBy(e2), o2 = n2.add(e2), s2 = new T(i3.unproject(n2, t2.z), i3.unproject(o2, t2.z)); 17620 return this.options.noWrap || i3.wrapLatLngBounds(s2), s2; 17621 }, _tileCoordsToKey: function(t2) { 17622 return t2.x + ":" + t2.y + ":" + t2.z; 17623 }, _keyToTileCoords: function(t2) { 17624 var i3 = t2.split(":"), e2 = new x(+i3[0], +i3[1]); 17625 return e2.z = +i3[2], e2; 17626 }, _removeTile: function(t2) { 17627 var i3 = this._tiles[t2]; 17628 i3 && (ut(i3.el), delete this._tiles[t2], this.fire("tileunload", { tile: i3.el, coords: this._keyToTileCoords(t2) })); 17629 }, _initTile: function(t2) { 17630 pt(t2, "leaflet-tile"); 17631 var i3 = this.getTileSize(); 17632 t2.style.width = i3.x + "px", t2.style.height = i3.y + "px", t2.onselectstart = r, t2.onmousemove = r, wi && this.options.opacity < 1 && vt(t2, this.options.opacity), bi && !Ti && (t2.style.WebkitBackfaceVisibility = "hidden"); 17633 }, _addTile: function(t2, i3) { 17634 var n2 = this._getTilePos(t2), o2 = this._tileCoordsToKey(t2), s2 = this.createTile(this._wrapCoords(t2), e(this._tileReady, this, t2)); 17635 this._initTile(s2), this.createTile.length < 2 && f(e(this._tileReady, this, t2, null, s2)), Lt(s2, n2), this._tiles[o2] = { el: s2, coords: t2, current: true }, i3.appendChild(s2), this.fire("tileloadstart", { tile: s2, coords: t2 }); 17636 }, _tileReady: function(t2, i3, n2) { 17637 if (this._map) { 17638 i3 && this.fire("tileerror", { error: i3, tile: n2, coords: t2 }); 17639 var o2 = this._tileCoordsToKey(t2); 17640 (n2 = this._tiles[o2]) && (n2.loaded = +new Date(), this._map._fadeAnimated ? (vt(n2.el, 0), g(this._fadeFrame), this._fadeFrame = f(this._updateOpacity, this)) : (n2.active = true, this._pruneTiles()), i3 || (pt(n2.el, "leaflet-tile-loaded"), this.fire("tileload", { tile: n2.el, coords: t2 })), this._noTilesToLoad() && (this._loading = false, this.fire("load"), wi || !this._map._fadeAnimated ? f(this._pruneTiles, this) : setTimeout(e(this._pruneTiles, this), 250))); 17641 } 17642 }, _getTilePos: function(t2) { 17643 return t2.scaleBy(this.getTileSize()).subtract(this._level.origin); 17644 }, _wrapCoords: function(t2) { 17645 var i3 = new x(this._wrapX ? s(t2.x, this._wrapX) : t2.x, this._wrapY ? s(t2.y, this._wrapY) : t2.y); 17646 return i3.z = t2.z, i3; 17647 }, _pxBoundsToTileRange: function(t2) { 17648 var i3 = this.getTileSize(); 17649 return new P(t2.min.unscaleBy(i3).floor(), t2.max.unscaleBy(i3).ceil().subtract([1, 1])); 17650 }, _noTilesToLoad: function() { 17651 for (var t2 in this._tiles) 17652 if (!this._tiles[t2].loaded) 17653 return false; 17654 return true; 17655 } }), ln = un.extend({ options: { minZoom: 0, maxZoom: 18, subdomains: "abc", errorTileUrl: "", zoomOffset: 0, tms: false, zoomReverse: false, detectRetina: false, crossOrigin: false }, initialize: function(t2, i3) { 17656 this._url = t2, (i3 = l(this, i3)).detectRetina && Vi && i3.maxZoom > 0 && (i3.tileSize = Math.floor(i3.tileSize / 2), i3.zoomReverse ? (i3.zoomOffset--, i3.minZoom++) : (i3.zoomOffset++, i3.maxZoom--), i3.minZoom = Math.max(0, i3.minZoom)), "string" == typeof i3.subdomains && (i3.subdomains = i3.subdomains.split("")), bi || this.on("tileunload", this._onTileRemove); 17657 }, setUrl: function(t2, i3) { 17658 return this._url = t2, i3 || this.redraw(), this; 17659 }, createTile: function(t2, i3) { 17660 var n2 = document.createElement("img"); 17661 return V(n2, "load", e(this._tileOnLoad, this, i3, n2)), V(n2, "error", e(this._tileOnError, this, i3, n2)), this.options.crossOrigin && (n2.crossOrigin = ""), n2.alt = "", n2.setAttribute("role", "presentation"), n2.src = this.getTileUrl(t2), n2; 17662 }, getTileUrl: function(t2) { 17663 var e2 = { r: Vi ? "@2x" : "", s: this._getSubdomain(t2), x: t2.x, y: t2.y, z: this._getZoomForUrl() }; 17664 if (this._map && !this._map.options.crs.infinite) { 17665 var n2 = this._globalTileRange.max.y - t2.y; 17666 this.options.tms && (e2.y = n2), e2["-y"] = n2; 17667 } 17668 return _(this._url, i2(e2, this.options)); 17669 }, _tileOnLoad: function(t2, i3) { 17670 wi ? setTimeout(e(t2, this, null, i3), 0) : t2(null, i3); 17671 }, _tileOnError: function(t2, i3, e2) { 17672 var n2 = this.options.errorTileUrl; 17673 n2 && i3.src !== n2 && (i3.src = n2), t2(e2, i3); 17674 }, _onTileRemove: function(t2) { 17675 t2.tile.onload = null; 17676 }, _getZoomForUrl: function() { 17677 var t2 = this._tileZoom, i3 = this.options.maxZoom, e2 = this.options.zoomReverse, n2 = this.options.zoomOffset; 17678 return e2 && (t2 = i3 - t2), t2 + n2; 17679 }, _getSubdomain: function(t2) { 17680 var i3 = Math.abs(t2.x + t2.y) % this.options.subdomains.length; 17681 return this.options.subdomains[i3]; 17682 }, _abortLoading: function() { 17683 var t2, i3; 17684 for (t2 in this._tiles) 17685 this._tiles[t2].coords.z !== this._tileZoom && ((i3 = this._tiles[t2].el).onload = r, i3.onerror = r, i3.complete || (i3.src = ni, ut(i3))); 17686 } }), cn = ln.extend({ defaultWmsParams: { service: "WMS", request: "GetMap", layers: "", styles: "", format: "image/jpeg", transparent: false, version: "1.1.1" }, options: { crs: null, uppercase: false }, initialize: function(t2, e2) { 17687 this._url = t2; 17688 var n2 = i2({}, this.defaultWmsParams); 17689 for (var o2 in e2) 17690 o2 in this.options || (n2[o2] = e2[o2]); 17691 e2 = l(this, e2), n2.width = n2.height = e2.tileSize * (e2.detectRetina && Vi ? 2 : 1), this.wmsParams = n2; 17692 }, onAdd: function(t2) { 17693 this._crs = this.options.crs || t2.options.crs, this._wmsVersion = parseFloat(this.wmsParams.version); 17694 var i3 = this._wmsVersion >= 1.3 ? "crs" : "srs"; 17695 this.wmsParams[i3] = this._crs.code, ln.prototype.onAdd.call(this, t2); 17696 }, getTileUrl: function(t2) { 17697 var i3 = this._tileCoordsToBounds(t2), e2 = this._crs.project(i3.getNorthWest()), n2 = this._crs.project(i3.getSouthEast()), o2 = (this._wmsVersion >= 1.3 && this._crs === Ne ? [n2.y, e2.x, e2.y, n2.x] : [e2.x, n2.y, n2.x, e2.y]).join(","), s2 = ln.prototype.getTileUrl.call(this, t2); 17698 return s2 + c(this.wmsParams, s2, this.options.uppercase) + (this.options.uppercase ? "&BBOX=" : "&bbox=") + o2; 17699 }, setParams: function(t2, e2) { 17700 return i2(this.wmsParams, t2), e2 || this.redraw(), this; 17701 } }); 17702 ln.WMS = cn, Yt.wms = function(t2, i3) { 17703 return new cn(t2, i3); 17704 }; 17705 var _n = We.extend({ options: { padding: 0.1 }, initialize: function(t2) { 17706 l(this, t2), n(this), this._layers = this._layers || {}; 17707 }, onAdd: function() { 17708 this._container || (this._initContainer(), this._zoomAnimated && pt(this._container, "leaflet-zoom-animated")), this.getPane().appendChild(this._container), this._update(), this.on("update", this._updatePaths, this); 17709 }, onRemove: function() { 17710 this.off("update", this._updatePaths, this), this._destroyContainer(); 17711 }, getEvents: function() { 17712 var t2 = { viewreset: this._reset, zoom: this._onZoom, moveend: this._update, zoomend: this._onZoomEnd }; 17713 return this._zoomAnimated && (t2.zoomanim = this._onAnimZoom), t2; 17714 }, _onAnimZoom: function(t2) { 17715 this._updateTransform(t2.center, t2.zoom); 17716 }, _onZoom: function() { 17717 this._updateTransform(this._map.getCenter(), this._map.getZoom()); 17718 }, _updateTransform: function(t2, i3) { 17719 var e2 = this._map.getZoomScale(i3, this._zoom), n2 = Pt(this._container), o2 = this._map.getSize().multiplyBy(0.5 + this.options.padding), s2 = this._map.project(this._center, i3), r2 = this._map.project(t2, i3).subtract(s2), a2 = o2.multiplyBy(-e2).add(n2).add(o2).subtract(r2); 17720 Oi ? wt(this._container, a2, e2) : Lt(this._container, a2); 17721 }, _reset: function() { 17722 this._update(), this._updateTransform(this._center, this._zoom); 17723 for (var t2 in this._layers) 17724 this._layers[t2]._reset(); 17725 }, _onZoomEnd: function() { 17726 for (var t2 in this._layers) 17727 this._layers[t2]._project(); 17728 }, _updatePaths: function() { 17729 for (var t2 in this._layers) 17730 this._layers[t2]._update(); 17731 }, _update: function() { 17732 var t2 = this.options.padding, i3 = this._map.getSize(), e2 = this._map.containerPointToLayerPoint(i3.multiplyBy(-t2)).round(); 17733 this._bounds = new P(e2, e2.add(i3.multiplyBy(1 + 2 * t2)).round()), this._center = this._map.getCenter(), this._zoom = this._map.getZoom(); 17734 } }), dn = _n.extend({ getEvents: function() { 17735 var t2 = _n.prototype.getEvents.call(this); 17736 return t2.viewprereset = this._onViewPreReset, t2; 17737 }, _onViewPreReset: function() { 17738 this._postponeUpdatePaths = true; 17739 }, onAdd: function() { 17740 _n.prototype.onAdd.call(this), this._draw(); 17741 }
17741, _initContainer: function() { 17742 var t2 = this._container = document.createElement("canvas"); 17743 V(t2, "mousemove", o(this._onMouseMove, 32, this), this), V(t2, "click dblclick mousedown mouseup contextmenu", this._onClick, this), V(t2, "mouseout", this._handleMouseOut, this), this._ctx = t2.getContext("2d"); 17744 }, _destroyContainer: function() { 17745 delete this._ctx, ut(this._container), G(this._container), delete this._container; 17746 }, _updatePaths: function() { 17747 if (!this._postponeUpdatePaths) { 17748 this._redrawBounds = null; 17749 for (var t2 in this._layers) 17750 this._layers[t2]._update(); 17751 this._redraw(); 17752 } 17753 }, _update: function() { 17754 if (!this._map._animatingZoom || !this._bounds) { 17755 this._drawnLayers = {}, _n.prototype._update.call(this); 17756 var t2 = this._bounds, i3 = this._container, e2 = t2.getSize(), n2 = Vi ? 2 : 1; 17757 Lt(i3, t2.min), i3.width = n2 * e2.x, i3.height = n2 * e2.y, i3.style.width = e2.x + "px", i3.style.height = e2.y + "px", Vi && this._ctx.scale(2, 2), this._ctx.translate(-t2.min.x, -t2.min.y), this.fire("update"); 17758 } 17759 }, _reset: function() { 17760 _n.prototype._reset.call(this), this._postponeUpdatePaths && (this._postponeUpdatePaths = false, this._updatePaths()); 17761 }, _initPath: function(t2) { 17762 this._updateDashArray(t2), this._layers[n(t2)] = t2; 17763 var i3 = t2._order = { layer: t2, prev: this._drawLast, next: null }; 17764 this._drawLast && (this._drawLast.next = i3), this._drawLast = i3, this._drawFirst = this._drawFirst || this._drawLast; 17765 }, _addPath: function(t2) { 17766 this._requestRedraw(t2); 17767 }, _removePath: function(t2) { 17768 var i3 = t2._order, e2 = i3.next, n2 = i3.prev; 17769 e2 ? e2.prev = n2 : this._drawLast = n2, n2 ? n2.next = e2 : this._drawFirst = e2, delete t2._order, delete this._layers[L.stamp(t2)], this._requestRedraw(t2); 17770 }, _updatePath: function(t2) { 17771 this._extendRedrawBounds(t2), t2._project(), t2._update(), this._requestRedraw(t2); 17772 }, _updateStyle: function(t2) { 17773 this._updateDashArray(t2), this._requestRedraw(t2); 17774 }, _updateDashArray: function(t2) { 17775 if (t2.options.dashArray) { 17776 var i3, e2 = t2.options.dashArray.split(","), n2 = []; 17777 for (i3 = 0; i3 < e2.length; i3++) 17778 n2.push(Number(e2[i3])); 17779 t2.options._dashArray = n2; 17780 } 17781 }, _requestRedraw: function(t2) { 17782 this._map && (this._extendRedrawBounds(t2), this._redrawRequest = this._redrawRequest || f(this._redraw, this)); 17783 }, _extendRedrawBounds: function(t2) { 17784 if (t2._pxBounds) { 17785 var i3 = (t2.options.weight || 0) + 1; 17786 this._redrawBounds = this._redrawBounds || new P(), this._redrawBounds.extend(t2._pxBounds.min.subtract([i3, i3])), this._redrawBounds.extend(t2._pxBounds.max.add([i3, i3])); 17787 } 17788 }, _redraw: function() { 17789 this._redrawRequest = null, this._redrawBounds && (this._redrawBounds.min._floor(), this._redrawBounds.max._ceil()), this._clear(), this._draw(), this._redrawBounds = null; 17790 }, _clear: function() { 17791 var t2 = this._redrawBounds; 17792 if (t2) { 17793 var i3 = t2.getSize(); 17794 this._ctx.clearRect(t2.min.x, t2.min.y, i3.x, i3.y); 17795 } else 17796 this._ctx.clearRect(0, 0, this._container.width, this._container.height); 17797 }, _draw: function() { 17798 var t2, i3 = this._redrawBounds; 17799 if (this._ctx.save(), i3) { 17800 var e2 = i3.getSize(); 17801 this._ctx.beginPath(), this._ctx.rect(i3.min.x, i3.min.y, e2.x, e2.y), this._ctx.clip(); 17802 } 17803 this._drawing = true; 17804 for (var n2 = this._drawFirst; n2; n2 = n2.next) 17805 t2 = n2.layer, (!i3 || t2._pxBounds && t2._pxBounds.intersects(i3)) && t2._updatePath(); 17806 this._drawing = false, this._ctx.restore(); 17807 }, _updatePoly: function(t2, i3) { 17808 if (this._drawing) { 17809 var e2, n2, o2, s2, r2 = t2._parts, a2 = r2.length, h2 = this._ctx; 17810 if (a2) { 17811 for (this._drawnLayers[t2._leaflet_id] = t2, h2.beginPath(), e2 = 0; e2 < a2; e2++) { 17812 for (n2 = 0, o2 = r2[e2].length; n2 < o2; n2++) 17813 s2 = r2[e2][n2], h2[n2 ? "lineTo" : "moveTo"](s2.x, s2.y); 17814 i3 && h2.closePath(); 17815 } 17816 this._fillStroke(h2, t2); 17817 } 17818 } 17819 }, _updateCircle: function(t2) { 17820 if (this._drawing && !t2._empty()) { 17821 var i3 = t2._point, e2 = this._ctx, n2 = t2._radius, o2 = (t2._radiusY || n2) / n2; 17822 this._drawnLayers[t2._leaflet_id] = t2, 1 !== o2 && (e2.save(), e2.scale(1, o2)), e2.beginPath(), e2.arc(i3.x, i3.y / o2, n2, 0, 2 * Math.PI, false), 1 !== o2 && e2.restore(
17822), this._fillStroke(e2, t2); 17823 } 17824 }, _fillStroke: function(t2, i3) { 17825 var e2 = i3.options; 17826 e2.fill && (t2.globalAlpha = e2.fillOpacity, t2.fillStyle = e2.fillColor || e2.color, t2.fill(e2.fillRule || "evenodd")), e2.stroke && 0 !== e2.weight && (t2.setLineDash && t2.setLineDash(i3.options && i3.options._dashArray || []), t2.globalAlpha = e2.opacity, t2.lineWidth = e2.weight, t2.strokeStyle = e2.color, t2.lineCap = e2.lineCap, t2.lineJoin = e2.lineJoin, t2.stroke()); 17827 }, _onClick: function(t2) { 17828 for (var i3, e2, n2 = this._map.mouseEventToLayerPoint(t2), o2 = this._drawFirst; o2; o2 = o2.next) 17829 (i3 = o2.layer).options.interactive && i3._containsPoint(n2) && !this._map._draggableMoved(i3) && (e2 = i3); 17830 e2 && (et(t2), this._fireEvent([e2], t2)); 17831 }, _onMouseMove: function(t2) { 17832 if (this._map && !this._map.dragging.moving() && !this._map._animatingZoom) { 17833 var i3 = this._map.mouseEventToLayerPoint(t2); 17834 this._handleMouseHover(t2, i3); 17835 } 17836 }, _handleMouseOut: function(t2) { 17837 var i3 = this._hoveredLayer; 17838 i3 && (mt(this._container, "leaflet-interactive"), this._fireEvent([i3], t2, "mouseout"), this._hoveredLayer = null); 17839 }, _handleMouseHover: function(t2, i3) { 17840 for (var e2, n2, o2 = this._drawFirst; o2; o2 = o2.next) 17841 (e2 = o2.layer).options.interactive && e2._containsPoint(i3) && (n2 = e2); 17842 n2 !== this._hoveredLayer && (this._handleMouseOut(t2), n2 && (pt(this._container, "leaflet-interactive"), this._fireEvent([n2], t2, "mouseover"), this._hoveredLayer = n2)), this._hoveredLayer && this._fireEvent([this._hoveredLayer], t2); 17843 }, _fireEvent: function(t2, i3, e2) { 17844 this._map._fireDOMEvent(i3, e2 || i3.type, t2); 17845 }, _bringToFront: function(t2) { 17846 var i3 = t2._order, e2 = i3.next, n2 = i3.prev; 17847 e2 && (e2.prev = n2, n2 ? n2.next = e2 : e2 && (this._drawFirst = e2), i3.prev = this._drawLast, this._drawLast.next = i3, i3.next = null, this._drawLast = i3, this._requestRedraw(t2)); 17848 }, _bringToBack: function(t2) { 17849 var i3 = t2._order, e2 = i3.next, n2 = i3.prev; 17850 n2 && (n2.next = e2, e2 ? e2.prev = n2 : n2 && (this._drawLast = n2), i3.prev = null, i3.next = this._drawFirst, this._drawFirst.prev = i3, this._drawFirst = i3, this._requestRedraw(t2)); 17851 } }), pn = function() { 17852 try { 17853 return document.namespaces.add("lvml", "urn:schemas-microsoft-com:vml"), function(t2) { 17854 return document.createElement("<lvml:" + t2 + ' class="lvml">'); 17855 }; 17856 } catch (t2) { 17857 return function(t3) { 17858 return document.createElement("<" + t3 + ' xmlns="urn:schemas-microsoft.com:vml" class="lvml">'); 17859 }; 17860 } 17861 }(), mn = { _initContainer: function() { 17862 this._container = ht("div", "leaflet-vml-container"); 17863 }, _update: function() { 17864 this._map._animatingZoom || (_n.prototype._update.call(this), this.fire("update")); 17865 }, _initPath: function(t2) { 17866 var i3 = t2._container = pn("shape"); 17867 pt(i3, "leaflet-vml-shape " + (this.options.className || "")), i3.coordsize = "1 1", t2._path = pn("path"), i3.appendChild(t2._path), this._updateStyle(t2), this._layers[n(t2)] = t2; 17868 }, _addPath: function(t2) { 17869 var i3 = t2._container; 17870 this._container.appendChild(i3), t2.options.interactive && t2.addInteractiveTarget(i3); 17871 }, _removePath: function(t2) { 17872 var i3 = t2._container; 17873 ut(i3), t2.removeInteractiveTarget(i3), delete this._layers[n(t2)]; 17874 }, _updateStyle: function(t2) { 17875 var i3 = t2._stroke, e2 = t2._fill, n2 = t2.options, o2 = t2._container; 17876 o2.stroked = !!n2.stroke, o2.filled = !!n2.fill, n2.stroke ? (i3 || (i3 = t2._stroke = pn("stroke")), o2.appendChild(i3), i3.weight = n2.weight + "px", i3.color = n2.color, i3.opacity = n2.opacity, n2.dashArray ? i3.dashStyle = ei(n2.dashArray) ? n2.dashArray.join(" ") : n2.dashArray.replace(/( *, *)/g, " ") : i3.dashStyle = "", i3.endcap = n2.lineCap.replace("butt", "flat"), i3.joinstyle = n2.lineJoin) : i3 && (o2.removeChild(i3), t2._stroke = null), n2.fill ? (e2 || (e2 = t2._fill = pn("fill")), o2.appendChild(e2), e2.color = n2.fillColor || n2.color, e2.opacity = n2.fillOpacity) : e2 && (o2.removeChild(e2), t2._fill = null); 17877 }, _updateCircle: function(t2) { 17878 var i3 = t2._point.round(), e2 = Math.round(t2._radius), n2 = Math.round(t2._radiusY || e2); 17879 this._setPath(t2, t2._empty() ? "M0 0" : "AL " + i3.x + "," + i3.y + " " + e2 + "," + n2 + " 0,23592600"); 17880 }, _setPath: function(t2, i3) { 17881 t2._path.v = i3; 17882 }, _bringToFront: function(t2) {
17883 ct(t2._container); 17884 }, _bringToBack: function(t2) { 17885 _t(t2._container); 17886 } }, fn = Ki ? pn : S, gn = _n.extend({ getEvents: function() { 17887 var t2 = _n.prototype.getEvents.call(this); 17888 return t2.zoomstart = this._onZoomStart, t2; 17889 }, _initContainer: function() { 17890 this._container = fn("svg"), this._container.setAttribute("pointer-events", "none"), this._rootGroup = fn("g"), this._container.appendChild(this._rootGroup); 17891 }, _destroyContainer: function() { 17892 ut(this._container), G(this._container), delete this._container, delete this._rootGroup; 17893 }, _onZoomStart: function() { 17894 this._update(); 17895 }, _update: function() { 17896 if (!this._map._animatingZoom || !this._bounds) { 17897 _n.prototype._update.call(this); 17898 var t2 = this._bounds, i3 = t2.getSize(), e2 = this._container; 17899 this._svgSize && this._svgSize.equals(i3) || (this._svgSize = i3, e2.setAttribute("width", i3.x), e2.setAttribute("height", i3.y)), Lt(e2, t2.min), e2.setAttribute("viewBox", [t2.min.x, t2.min.y, i3.x, i3.y].join(" ")), this.fire("update"); 17900 } 17901 }, _initPath: function(t2) { 17902 var i3 = t2._path = fn("path"); 17903 t2.options.className && pt(i3, t2.options.className), t2.options.interactive && pt(i3, "leaflet-interactive"), this._updateStyle(t2), this._layers[n(t2)] = t2; 17904 }, _addPath: function(t2) { 17905 this._rootGroup || this._initContainer(), this._rootGroup.appendChild(t2._path), t2.addInteractiveTarget(t2._path); 17906 }, _removePath: function(t2) { 17907 ut(t2._path), t2.removeInteractiveTarget(t2._path), delete this._layers[n(t2)]; 17908 }, _updatePath: function(t2) { 17909 t2._project(), t2._update(); 17910 }, _updateStyle: function(t2) { 17911 var i3 = t2._path, e2 = t2.options; 17912 i3 && (e2.stroke ? (i3.setAttribute("stroke", e2.color), i3.setAttribute("stroke-opacity", e2.opacity), i3.setAttribute("stroke-width", e2.weight), i3.setAttribute("stroke-linecap", e2.lineCap), i3.setAttribute("stroke-linejoin", e2.lineJoin), e2.dashArray ? i3.setAttribute("stroke-dasharray", e2.dashArray) : i3.removeAttribute("stroke-dasharray"), e2.dashOffset ? i3.setAttribute("stroke-dashoffset", e2.dashOffset) : i3.removeAttribute("stroke-dashoffset")) : i3.setAttribute("stroke", "none"), e2.fill ? (i3.setAttribute("fill", e2.fillColor || e2.color), i3.setAttribute("fill-opacity", e2.fillOpacity), i3.setAttribute("fill-rule", e2.fillRule || "evenodd")) : i3.setAttribute("fill", "none")); 17913 }, _updatePoly: function(t2, i3) { 17914 this._setPath(t2, k(t2._parts, i3)); 17915 }, _updateCircle: function(t2) { 17916 var i3 = t2._point, e2 = t2._radius, n2 = "a" + e2 + "," + (t2._radiusY || e2) + " 0 1,0 ", o2 = t2._empty() ? "M0 0" : "M" + (i3.x - e2) + "," + i3.y + n2 + 2 * e2 + ",0 " + n2 + 2 * -e2 + ",0 "; 17917 this._setPath(t2, o2); 17918 }, _setPath: function(t2, i3) { 17919 t2._path.setAttribute("d", i3); 17920 }, _bringToFront: function(t2) { 17921 ct(t2._path); 17922 }, _bringToBack: function(t2) { 17923 _t(t2._path); 17924 } }); 17925 Ki && gn.include(mn), ye.include({ getRenderer: function(t2) { 17926 var i3 = t2.options.renderer || this._getPaneRenderer(t2.options.pane) || this.options.renderer || this._renderer; 17927 return i3 || (i3 = this._renderer = this.options.preferCanvas && Xt() || Jt()), this.hasLayer(i3) || this.addLayer(i3), i3; 17928 }, _getPaneRenderer: function(t2) { 17929 if ("overlayPane" === t2 || void 0 === t2) 17930 return false; 17931 var i3 = this._paneRenderers[t2]; 17932 return void 0 === i3 && (i3 = gn && Jt({ pane: t2 }) || dn && Xt({ pane: t2 }), this._paneRenderers[t2] = i3), i3; 17933 } }); 17934 var vn = $e.extend({ initialize: function(t2, i3) { 17935 $e.prototype.initialize.call(this, this._boundsToLatLngs(t2), i3); 17936 }, setBounds: function(t2) { 17937 return this.setLatLngs(this._boundsToLatLngs(t2)); 17938 }, _boundsToLatLngs: function(t2) {
17939 return t2 = z(t2), [t2.getSouthWest(), t2.getNorthWest(), t2.getNorthEast(), t2.getSouthEast()]; 17940 } }); 17941 gn.create = fn, gn.pointsToPath = k, Qe.geometryToLayer = Wt, Qe.coordsToLatLng = Ht, Qe.coordsToLatLngs = Ft, Qe.latLngToCoords = Ut, Qe.latLngsToCoords = Vt, Qe.getFeature = Gt, Qe.asFeature = qt, ye.mergeOptions({ boxZoom: true }); 17942 var yn = Me.extend({ initialize: function(t2) { 17943 this._map = t2, this._container = t2._container, this._pane = t2._panes.overlayPane, this._resetStateTimeout = 0, t2.on("unload", this._destroy, this); 17944 }, addHooks: function() { 17945 V(this._container, "mousedown", this._onMouseDown, this); 17946 }, removeHooks: function() { 17947 G(this._container, "mousedown", this._onMouseDown, this); 17948 }, moved: function() { 17949 return this._moved; 17950 }, _destroy: function() { 17951 ut(this._pane), delete this._pane; 17952 }, _resetState: function() { 17953 this._resetStateTimeout = 0, this._moved = false; 17954 }, _clearDeferredResetState: function() { 17955 0 !== this._resetStateTimeout && (clearTimeout(this._resetStateTimeout), this._resetStateTimeout = 0); 17956 }, _onMouseDown: function(t2) { 17957 if (!t2.shiftKey || 1 !== t2.which && 1 !== t2.button) 17958 return false; 17959 this._clearDeferredResetState(), this._resetState(), pi(), bt(), this._startPoint = this._map.mouseEventToContainerPoint(t2), V(document, { contextmenu: Q, mousemove: this._onMouseMove, mouseup: this._onMouseUp, keydown: this._onKeyDown }, this); 17960 }, _onMouseMove: function(t2) { 17961 this._moved || (this._moved = true, this._box = ht("div", "leaflet-zoom-box", this._container), pt(this._container, "leaflet-crosshair"), this._map.fire("boxzoomstart")), this._point = this._map.mouseEventToContainerPoint(t2); 17962 var i3 = new P(this._point, this._startPoint), e2 = i3.getSize(); 17963 Lt(this._box, i3.min), this._box.style.width = e2.x + "px", this._box.style.height = e2.y + "px"; 17964 }, _finish: function() { 17965 this._moved && (ut(this._box), mt(this._container, "leaflet-crosshair")), mi(), Tt(), G(document, { contextmenu: Q, mousemove: this._onMouseMove, mouseup: this._onMouseUp, keydown: this._onKeyDown }, this); 17966 }, _onMouseUp: function(t2) { 17967 if ((1 === t2.which || 1 === t2.button) && (this._finish(), this._moved)) { 17968 this._clearDeferredResetState(), this._resetStateTimeout = setTimeout(e(this._resetState, this), 0); 17969 var i3 = new T(this._map.containerPointToLatLng(this._startPoint), this._map.containerPointToLatLng(this._point)); 17970 this._map.fitBounds(i3).fire("boxzoomend", { boxZoomBounds: i3 }); 17971 } 17972 }, _onKeyDown: function(t2) { 17973 27 === t2.keyCode && this._finish(); 17974 } }); 17975 ye.addInitHook("addHandler", "boxZoom", yn), ye.mergeOptions({ doubleClickZoom: true }); 17976 var xn = Me.extend({ addHooks: function() { 17977 this._map.on("dblclick", this._onDoubleClick, this); 17978 }, removeHooks: function() { 17979 this._map.off("dblclick", this._onDoubleClick, this); 17980 }, _onDoubleClick: function(t2) { 17981 var i3 = this._map, e2 = i3.getZoom(), n2 = i3.options.zoomDelta, o2 = t2.originalEvent.shiftKey ? e2 - n2 : e2 + n2; 17982 "center" === i3.options.doubleClickZoom ? i3.setZoom(o2) : i3.setZoomAround(t2.containerPoint, o2); 17983 } }); 17984 ye.addInitHook("addHandler", "doubleClickZoom", xn), ye.mergeOptions({ dragging: true, inertia: !Ti, inertiaDeceleration: 3400, inertiaMaxSpeed: 1 / 0, easeLinearity: 0.2, worldCopyJump: false, maxBoundsViscosity: 0 }); 17985 var wn = Me.extend({ addHooks: function() { 17986 if (!this._draggable) { 17987 var t2 = this._map; 17988 this._draggable = new ke(t2._mapPane, t2._container), this._draggable.on({ dragstart: this._onDragStart, drag: this._onDrag, dragend: this._onDragEnd }, this), this._draggable.on("predrag", this._onPreDragLimit, this), t2.options.worldCopyJump && (this._draggable.on("predrag", this._onPreDragWrap, this), t2.on("zoomend", this._onZoomEnd, this), t2.whenReady(this._onZoomEnd, this)); 17989 } 17990 pt(this._map._container, "leaflet-grab leaflet-touch-drag"), this._draggable.enable(), this._positions = [], this._times = []; 17991 }, removeHooks: function() { 17992 mt(this._map._container, "leaflet-grab"), mt(this._map._container, "leaflet-touch-drag"), this._draggable.disable(); 17993 }, moved: function() { 17994 return this._draggable && this._draggable._moved; 17995 }, moving: function() {
17996 return this._draggable && this._draggable._moving; 17997 }, _onDragStart: function() { 17998 var t2 = this._map; 17999 if (t2._stop(), this._map.options.maxBounds && this._map.options.maxBoundsViscosity) { 18000 var i3 = z(this._map.options.maxBounds); 18001 this._offsetLimit = b(this._map.latLngToContainerPoint(i3.getNorthWest()).multiplyBy(-1), this._map.latLngToContainerPoint(i3.getSouthEast()).multiplyBy(-1).add(this._map.getSize())), this._viscosity = Math.min(1, Math.max(0, this._map.options.maxBoundsViscosity)); 18002 } else 18003 this._offsetLimit = null; 18004 t2.fire("movestart").fire("dragstart"), t2.options.inertia && (this._positions = [], this._times = []); 18005 }, _onDrag: function(t2) { 18006 if (this._map.options.inertia) { 18007 var i3 = this._lastTime = +new Date(), e2 = this._lastPos = this._draggable._absPos || this._draggable._newPos; 18008 this._positions.push(e2), this._times.push(i3), i3 - this._times[0] > 50 && (this._positions.shift(), this._times.shift()); 18009 } 18010 this._map.fire("move", t2).fire("drag", t2); 18011 }, _onZoomEnd: function() { 18012 var t2 = this._map.getSize().divideBy(2), i3 = this._map.latLngToLayerPoint([0, 0]); 18013 this._initialWorldOffset = i3.subtract(t2).x, this._worldWidth = this._map.getPixelWorldBounds().getSize().x; 18014 }, _viscousLimit: function(t2, i3) { 18015 return t2 - (t2 - i3) * this._viscosity; 18016 }, _onPreDragLimit: function() { 18017 if (this._viscosity && this._offsetLimit) { 18018 var t2 = this._draggable._newPos.subtract(this._draggable._startPos), i3 = this._offsetLimit; 18019 t2.x < i3.min.x && (t2.x = this._viscousLimit(t2.x, i3.min.x)), t2.y < i3.min.y && (t2.y = this._viscousLimit(t2.y, i3.min.y)), t2.x > i3.max.x && (t2.x = this._viscousLimit(t2.x, i3.max.x)), t2.y > i3.max.y && (t2.y = this._viscousLimit(t2.y, i3.max.y)), this._draggable._newPos = this._draggable._startPos.add(t2); 18020 } 18021 }, _onPreDragWrap: function() { 18022 var t2 = this._worldWidth, i3 = Math.round(t2 / 2), e2 = this._initialWorldOffset, n2 = this._draggable._newPos.x, o2 = (n2 - i3 + e2) % t2 + i3 - e2, s2 = (n2 + i3 + e2) % t2 - i3 - e2, r2 = Math.abs(o2 + e2) < Math.abs(s2 + e2) ? o2 : s2; 18023 this._draggable._absPos = this._draggable._newPos.clone(), this._draggable._newPos.x = r2; 18024 }, _onDragEnd: function(t2) { 18025 var i3 = this._map, e2 = i3.options, n2 = !e2.inertia || this._times.length < 2; 18026 if (i3.fire("dragend", t2), n2) 18027 i3.fire("moveend"); 18028 else { 18029 var o2 = this._lastPos.subtract(this._positions[0]), s2 = (this._lastTime - this._times[0]) / 1e3, r2 = e2.easeLinearity, a2 = o2.multiplyBy(r2 / s2), h2 = a2.distanceTo([0, 0]), u2 = Math.min(e2.inertiaMaxSpeed, h2), l2 = a2.multiplyBy(u2 / h2), c2 = u2 / (e2.inertiaDeceleration * r2), _2 = l2.multiplyBy(-c2 / 2).round(); 18030 _2.x || _2.y ? (_2 = i3._limitOffset(_2, i3.options.maxBounds), f(function() { 18031 i3.panBy(_2, { duration: c2, easeLinearity: r2, noMoveStart: true, animate: true }); 18032 })) : i3.fire("moveend"); 18033 } 18034 } }); 18035 ye.addInitHook("addHandler", "dragging", wn), ye.mergeOptions({ keyboard: true, keyboardPanDelta: 80 }); 18036 var Ln = Me.extend({ keyCodes: { left: [37], right: [39], down: [40], up: [38], zoomIn: [187, 107, 61, 171], zoomOut: [189, 109, 54, 173] }, initialize: function(t2) { 18037 this._map = t2, this._setPanDelta(t2.options.keyboardPanDelta), this._setZoomDelta(t2.options.zoomDelta); 18038 }, addHooks: function() { 18039 var t2 = this._map._container; 18040 t2.tabIndex <= 0 && (t2.tabIndex = "0"), V(t2, { focus: this._onFocus, blur: this._onBlur, mousedown: this._onMouseDown }, this), this._map.on({ focus: this._addHooks, blur: this._removeHooks }, this); 18041 }, removeHooks: function() { 18042 this._removeHooks(), G(this._map._container, { focus: this._onFocus, blur: this._onBlur, mousedown: this._onMouseDown }, this), this._map.off({ focus: this._addHooks, blur: this._removeHooks }, this); 18043 }, _onMouseDown: function() { 18044 if (!this._focused) { 18045 var t2 = document.body, i3 = document.documentElement, e2 = t2.scrollTop || i3.scrollTop, n2 = t2.scrollLeft || i3.scrollLeft; 18046 this._map._container.focus(), window.scrollTo(n2, e2); 18047 } 18048 }, _onFocus: function() { 18049 this._focused = true, this._map.fire("focus"); 18050 }, _onBlur: function() { 18051 this._focused = false, this._map.fire("blur"); 18052 }, _setPanDelta: function(t2) { 18053 var i3, e2, n2 = this._panKeys = {}, o2 = this.keyCodes; 18054 for (i3 = 0, e2 = o2.left.length; i3 < e2; i3++) 18055 n2[o2.left[i3]] = [-1 * t2, 0]; 18056 for (i3 = 0, e2 = o2.right.length; i3 < e2; i3++) 18057 n2[o2.right[i3]] = [t2, 0]; 18058 for (i3 = 0, e2 = o2.down.length; i3 < e2; i3++) 18059 n2[o2.down[i3]] = [0, t2]; 18060 for (i3 = 0, e2 = o2.up.length; i3 < e2; i3++) 18061 n2[o2.up[i3]] = [0, -1 * t2]; 18062 }, _setZoomDelta: function(t2) { 18063 var i3, e2, n2 = this._zoomKeys = {}, o2 = this.keyCodes; 18064 for (i3 = 0, e2 = o2.zoomIn.length; i3 < e2; i3++) 18065 n2[o2.zoomIn[i3]] = t2; 18066 for (i3 = 0, e2 = o2.zoomOut.length; i3 < e2; i3++) 18067 n2[o2.zoomOut[i3]] = -t2; 18068 }, _addHooks: function() { 18069 V(document, "keydown", this._onKeyDown, this); 18070 }, _removeHooks: function() { 18071 G(document, "keydown", this._onKeyDown, this); 18072 }, _onKeyDown: function(t2) { 18073 if (!(t2.altKey || t2.ctrlKey || t2.metaKey)) { 18074 var i3, e2 = t2.keyCode, n2 = this._map; 18075 if (e2 in this._panKeys) { 18076 if (n2._panAnim && n2._panAnim._inProgress) 18077 return; 18078 i3 = this._panKeys[e2], t2.shiftKey && (i3 = w(i3).multiplyBy(3)), n2.panBy(i3), n2.options.maxBounds && n2.panInsideBounds(n2.options.maxBounds); 18079 } else if (e2 in this._zoomKeys) 18080 n2.setZoom(n2.getZoom() + (t2.shiftKey ? 3 : 1) * this._zoomKeys[e2]); 18081 else { 18082 if (27 !== e2 || !n2._popup) 18083 return; 18084 n2.closePopup(); 18085 } 18086 Q(t2); 18087 } 18088 } }); 18089 ye.addInitHook("addHandler", "keyboard", Ln), ye.mergeOptions({ scrollWheelZoom: true, wheelDebounceTime: 40, wheelPxPerZoomLevel: 60 }); 18090 var Pn = Me.extend({ addHooks: function() { 18091 V(this._map._container, "mousewheel", this._onWheelScroll, this), this._delta = 0; 18092 }, removeHooks: function() { 18093 G(this._map._container, "mousewheel", this._onWheelScroll, this); 18094 }, _onWheelScroll: function(t2) { 18095 var i3 = it(t2), n2 = this._map.options.wheelDebounceTime; 18096 this._delta += i3, this._lastMousePos = this._map.mouseEventToContainerPoint(t2), this._startTime || (this._startTime = +new Date()); 18097 var o2 = Math.max(n2 - (+new Date() - this._startTime), 0); 18098 clearTimeout(this._timer), this._timer = setTimeout(e(this._performZoom, this), o2), Q(t2); 18099 }, _performZoom: function() { 18100 var t2 = this._map, i3 = t2.getZoom(), e2 = this._map.options.zoomSnap || 0; 18101 t2._stop(); 18102 var n2 = this._delta / (4 * this._map.options.wheelPxPerZoomLevel), o2 = 4 * Math.log(2 / (1 + Math.exp(-Math.abs(n2)))) / Math.LN2, s2 = e2 ? Math.ceil(o2 / e2) * e2 : o2, r2 = t2._limitZoom(i3 + (this._delta > 0 ? s2 : -s2)) - i3; 18103 this._delta = 0, this._startTime = null, r2 && ("center" === t2.options.scrollWheelZoom ? t2.setZoom(i3 + r2) : t2.setZoomAround(this._lastMousePos, i3 + r2)); 18104 } }); 18105 ye.addInitHook("addHandler", "scrollWheelZoom", Pn), ye.mergeOptions({ tap: true, tapTolerance: 15 }); 18106 var bn = Me.extend({ addHooks: function() { 18107 V(this._map._container, "touchstart", this._onDown, this); 18108 }, removeHooks: function() { 18109 G(this._map._container, "touchstart", this._onDown, this); 18110 }, _onDown: function(t2) { 18111 if (t2.touches) { 18112 if ($2(t2), this._fireClick = true, t2.touches.length > 1) 18113 return this._fireClick = false, void clearTimeout(this._holdTimeout); 18114 var i3 = t2.touches[0], n2 = i3.target; 18115 this._startPos = this._newPos = new x(i3.clientX, i3.clientY), n2.tagName && "a" === n2.tagName.toLowerCase() && pt(n2, "leaflet-active"), this._holdTimeout = setTimeout(e(function() { 18116 this._isTapValid() && (this._fireClick = false, this._onUp(), this._simulateEvent("contextmenu", i3)); 18117 }, this), 1e3), this._simulateEvent("mousedown", i3), V(document, { touchmove: this._onMove, touchend: this._onUp }, this); 18118 } 18119 }, _onUp: function(t2) { 18120 if (clearTimeout(this._holdTimeout), G(document, { touchmove: this._onMove, touchend: this._onUp }, this), this._fireClick && t2 && t2.changedTouches) { 18121 var i3 = t2.changedTouches[0], e2 = i3.target; 18122 e2 && e2.tagName && "a" === e2.tagName.toLowerCase() && mt(e2, "leaflet-active"), this._simulateEvent("mouseup", i3), this._isTapValid() && this._simulateEvent("click", i3); 18123 } 18124 }, _isTapValid: function() { 18125 return this._newPos.distanceTo(this._startPos) <= this._map.options.tapTolerance; 18126 }, _onMove: function(t2) { 18127 var i3 = t2.touches[0]; 18128 this._newPos = new x(i3.clientX, i3.clientY), this._simulateEvent("mousemove", i3); 18129 }, _simulateEvent: function(t2, i3) { 18130 var e2 = document.createEvent("MouseEvents"); 18131 e2._simulated = true, i3.target._simulatedClick = true, e2.initMouseEvent(t2, true, true, window, 1, i3.screenX, i3.screenY, i3.clientX, i3.clientY, false, false, false, false, 0, null), i3.target.dispatchEvent(e2); 18132 } }); 18133 Hi && !Wi && ye.addInitHook("addHandler", "tap", bn), ye.mergeOptions({ touchZoom: Hi && !Ti, bounceAtZoomLimits: true }); 18134 var Tn = Me.extend({ addHooks: function() { 18135 pt(this._map._container, "leaflet-touch-zoom"), V(this._map._container, "touchstart", this._onTouchStart, this); 18136 }, removeHooks: function() { 18137 mt(this._map._container, "leaflet-touch-zoom"), G(this._map._container, "touchstart", this._onTouchStart, this); 18138 }, _onTouchStart: function(t2) { 18139 var i3 = this._map; 18140 if (t2.touches && 2 === t2.touches.length && !i3._animatingZoom && !this._zooming) { 18141 var e2 = i3.mouseEventToContainerPoint(t2.touches[0]), n2 = i3.mouseEventToContainerPoint(t2.touches[1]); 18142 this._centerPoint = i3.getSize()._divideBy(2), this._startLatLng = i3.containerPointToLatLng(this._centerPoint), "center" !== i3.options.touchZoom && (this._pinchStartLatLng = i3.containerPointToLatLng(e2.add(n2)._divideBy(2))), this._startDist = e2.distanceTo(n2), this._startZoom = i3.getZoom(), this._moved = false, this._zooming = true, i3._stop(), V(document, "touchmove", this._onTouchMove, this), V(document, "touchend", this._onTouchEnd, this), $2(t2); 18143 } 18144 }, _onTouchMove: function(t2) { 18145 if (t2.touches && 2 === t2.touches.length && this._zooming) { 18146 var i3 = this._map, n2 = i3.mouseEventToContainerPoint(t2.touches[0]), o2 = i3.mouseEventToContainerPoint(t2.touches[1]), s2 = n2.distanceTo(o2) / this._startDist; 18147 if (this._zoom = i3.getScaleZoom(s2, this._startZoom), !i3.options.bounceAtZoomLimits && (this._zoom < i3.getMin
18147Zoom() && s2 < 1 || this._zoom > i3.getMaxZoom() && s2 > 1) && (this._zoom = i3._limitZoom(this._zoom)), "center" === i3.options.touchZoom) { 18148 if (this._center = this._startLatLng, 1 === s2) 18149 return; 18150 } else { 18151 var r2 = n2._add(o2)._divideBy(2)._subtract(this._centerPoint); 18152 if (1 === s2 && 0 === r2.x && 0 === r2.y) 18153 return; 18154 this._center = i3.unproject(i3.project(this._pinchStartLatLng, this._zoom).subtract(r2), this._zoom); 18155 } 18156 this._moved || (i3._moveStart(true), this._moved = true), g(this._animRequest); 18157 var a2 = e(i3._move, i3, this._center, this._zoom, { pinch: true, round: false }); 18158 this._animRequest = f(a2, this, true), $2(t2); 18159 } 18160 }, _onTouchEnd: function() { 18161 this._moved && this._zooming ? (this._zooming = false, g(this._animRequest), G(document, "touchmove", this._onTouchMove), G(document, "touchend", this._onTouchEnd), this._map.options.zoomAnimation ? this._map._animateZoom(this._center, this._map._limitZoom(this._zoom), true, this._map.options.zoomSnap) : this._map._resetView(this._center, this._map._limitZoom(this._zoom))) : this._zooming = false; 18162 } }); 18163 ye.addInitHook("addHandler", "touchZoom", Tn), ye.BoxZoom = yn, ye.DoubleClickZoom = xn, ye.Drag = wn, ye.Keyboard = Ln, ye.ScrollWheelZoom = Pn, ye.Tap = bn, ye.TouchZoom = Tn; 18164 var zn = window.L; 18165 window.L = t, Object.freeze = $t, t.version = "1.2.0", t.noConflict = function() { 18166 return window.L = zn, this; 18167 }, t.Control = xe, t.control = we, t.Browser = Yi, t.Evented = ui, t.Mixin = Ce, t.Util = ai, t.Class = v, t.Handler = Me, t.extend = i2, t.bind = e, t.stamp = n, t.setOptions = l, t.DomEvent = le, t.DomUtil = ge, t.PosAnimation = ve, t.Draggable = ke, t.LineUtil = Be, t.PolyUtil = Ie, t.Point = x, t.point = w, t.Bounds = P, t.bounds = b, t.Transformation = Z, t.transformation = E, t.Projection = Re, t.LatLng = M, t.latLng = C, t.LatLngBounds = T, t.latLngBounds = z, t.CRS = li, t.GeoJSON = Qe, t.geoJSON = Kt, t.geoJson = en, t.Layer = We, t.LayerGroup = He, t.layerGroup = function(t2) { 18168 return new He(t2); 18169 }, t.FeatureGroup = Fe, t.featureGroup = function(t2) { 18170 return new Fe(t2); 18171 }, t.ImageOverlay = nn, t.imageOverlay = function(t2, i3, e2) { 18172 return new nn(t2, i3, e2); 18173 }, t.VideoOverlay = on2, t.videoOverlay = function(t2, i3, e2) { 18174 return new on2(t2, i3, e2); 18175 }, t.DivOverlay = sn, t.Popup = rn, t.popup = function(t2, i3) { 18176 return new rn(t2, i3); 18177 }, t.Tooltip = an, t.tooltip = function(t2, i3) { 18178 return new an(t2, i3); 18179 }, t.Icon = Ue, t.icon = function(t2) { 18180 return new Ue(t2); 18181 }, t.DivIcon = hn, t.divIcon = function(t2) { 18182 return new hn(t2); 18183 }, t.Marker = qe, t.marker = function(t2, i3) { 18184 return new qe(t2, i3); 18185 }, t.TileLayer = ln, t.tileLayer = Yt, t.GridLayer = un, t.gridLayer = function(t2) { 18186 return new un(t2); 18187 }, t.SVG = gn, t.svg = Jt, t.Renderer = _n, t.Canvas = dn, t.canvas = Xt, t.Path = Ke, t.CircleMarker = Ye, t.circleMarker = function(t2, i3) { 18188 return new Ye(t2, i3); 18189 }, t.Circle = Xe, t.circle = function(t2, i3, e2) { 18190 return new Xe(t2, i3, e2); 18191 }, t.Polyline = Je, t.polyline = function(t2, i3) { 18192 return new Je(t2, i3); 18193 }, t.Polygon = $e, t.polygon = function(t2, i3) { 18194 return new $e(t2, i3); 18195 }, t.Rectangle = vn, t.rectangle = function(t2, i3) { 18196 return new vn(t2, i3); 18197 }, t.Map = ye, t.map = function(t2, i3) { 18198 return new ye(t2, i3); 18199 }; 18200 }); 18201 } 18202 }); 18203 18204
18204// frappe/public/js/lib/leaflet_control_locate/L.Control.Locate.js 18205 var require_L_Control_Locate = __commonJS({ 18206 "frappe/public/js/lib/leaflet_control_locate/L.Control.Locate.js"(exports, module) { 18207 (function(factory, window2) { 18208 if (typeof define === "function" && define.amd) { 18209 define(["leaflet"], factory); 18210 } else if (typeof exports === "object") { 18211 if (typeof window2 !== "undefined" && window2.L) { 18212 module.exports = factory(L); 18213 } else { 18214 module.exports = factory(require_leaflet()); 18215 } 18216 } 18217 if (typeof window2 !== "undefined" && window2.L) { 18218 window2.L.Control.Locate = factory(L); 18219 } 18220 })(function(L2) { 18221 var LDomUtilApplyClassesMethod = function(method, element, classNames) { 18222 classNames = classNames.split(" "); 18223 classNames.forEach(function(className) { 18224 L2.DomUtil[method].call(this, element, className); 18225 }); 18226 }; 18227 var addClasses = function(el, names) { 18228 LDomUtilApplyClassesMethod("addClass", el, names); 18229 }; 18230 var removeClasses = function(el, names) { 18231 LDomUtilApplyClassesMethod("removeClass", el, names); 18232 }; 18233 var LocateControl = L2.Control.extend({ 18234 options: { 18235 position: "topleft", 18236 layer: void 0, 18237 setView: "untilPan", 18238 keepCurrentZoomLevel: false, 18239 flyTo: false, 18240 clickBehavior: { 18241 inView: "stop", 18242 outOfView: "setView" 18243 }, 18244 returnToPrevBounds: false, 18245 cacheLocation: true, 18246 drawCircle: true, 18247 drawMarker: true, 18248 markerClass: L2.CircleMarker, 18249 circleStyle: { 18250 color: "#136AEC", 18251 fillColor: "#136AEC", 18252 fillOpacity: 0.15, 18253 weight: 2, 18254 opacity: 0.5 18255 }, 18256 markerStyle: { 18257 color: "#136AEC", 18258 fillColor: "#2A93EE", 18259 fillOpacity: 0.7, 18260 weight: 2, 18261 opacity: 0.9, 18262 radius: 5 18263 }, 18264 followCircleStyle: {}, 18265 followMarkerStyle: {}, 18266 icon: "fa fa-map-marker", 18267 iconLoading: "fa fa-spinner fa-spin", 18268 iconElementTag: "span", 18269 circlePadding: [0, 0], 18270 metric: true, 18271 createButtonCallback: function(container, options) { 18272 var link = L2.DomUtil.create("a", "leaflet-bar-part leaflet-bar-part-single", container); 18273 link.title = options.strings.title; 18274 var icon = L2.DomUtil.create(options.iconElementTag, options.icon, link); 18275 return { link, icon }; 18276 }, 18277 onLocationError: function(err, control) { 18278 alert(err.message); 18279 }, 18280 onLocationOutsideMapBounds: function(control) { 18281 control.stop(); 18282 alert(control.options.strings.outsideMapBoundsMsg); 18283 }, 18284 showPopup: true, 18285 strings: { 18286 title: "Show me where I am", 18287 metersUnit: "meters", 18288 feetUnit: "feet", 18289 popup: "You are within {distance} {unit} from this point", 18290 outsideMapBoundsMsg: "You seem located outside the boundaries of the map" 18291 }, 18292 locateOptions: { 18293 maxZoom: Infinity, 18294 watch: true, 18295 setView: false 18296 } 18297 }, 18298 initialize: function(options) { 18299 for (var i2 in options) { 18300 if (typeof this.options[i2] === "object") { 18301 L2.extend(this.options[i2], options[i2]); 18302 } else { 18303 this.options[i2] = options[i2]; 18304 } 18305 } 18306 this.options.followMarkerStyle = L2.extend({}, this.options.markerStyle, this.options.followMarkerStyle); 18307 this.options.followCircleStyle = L2.extend({}, this.options.circleStyle, this.options.followCircleStyle); 18308 }, 18309 onAdd: function(map2) { 18310 var container = L2.DomUtil.create( 18311 "div", 18312 "leaflet-control-locate leaflet-bar leaflet-control" 18313 ); 18314 this._layer = this.options.layer || new L2.LayerGroup(); 18315 this._layer.addTo(map2); 18316 this._event = void 0; 18317 this._prevBounds = null; 18318 var linkAndIcon = this.options.createButtonCallback(container, this.options); 18319 this._link = linkAndIcon.link; 18320 this._icon = linkAndIcon.icon; 18321 L2.DomEvent.on(this._link, "click", L2.DomEvent.stopPropagation).on(this._link, "click", L2.DomEvent.preventDefault).on(this._link, "click", this._onClick, this).on(this._link, "dblclick", L2.DomEvent.stopPropagation); 18322 this._resetVariables(); 18323 this._map.on("unload", this._unload, this); 18324 return container; 18325 }, 18326 _onClick: function() { 18327 this._justClicked = true; 18328 this._userPanned = false;
18329 if (this._active && !this._event) { 18330 this.stop(); 18331 } else if (this._active && this._event !== void 0) { 18332 var behavior = this._map.getBounds().contains(this._event.latlng) ? this.options.clickBehavior.inView : this.options.clickBehavior.outOfView; 18333 switch (behavior) { 18334 case "setView": 18335 this.setView(); 18336 break; 18337 case "stop": 18338 this.stop(); 18339 if (this.options.returnToPrevBounds) { 18340 var f = this.options.flyTo ? this._map.flyToBounds : this._map.fitBounds; 18341 f.bind(this._map)(this._prevBounds); 18342 } 18343 break; 18344 } 18345 } else { 18346 if (this.options.returnToPrevBounds) { 18347 this._prevBounds = this._map.getBounds(); 18348 } 18349 this.start(); 18350 } 18351 this._updateContainerStyle(); 18352 }, 18353 start: function() { 18354 this._activate(); 18355 if (this._event) { 18356 this._drawMarker(this._map); 18357 if (this.options.setView) { 18358 this.setView(); 18359 } 18360 } 18361 this._updateContainerStyle(); 18362 }, 18363 stop: function() { 18364 this._deactivate(); 18365 this._cleanClasses(); 18366 this._resetVariables(); 18367 this._removeMarker(); 18368 }, 18369 _activate: function() { 18370 if (!this._active) { 18371 this._map.locate(this.options.locateOptions); 18372 this._active = true; 18373 this._map.on("locationfound", this._onLocationFound, this); 18374 this._map.on("locationerror", this._onLocationError, this); 18375 this._map.on("dragstart", this._onDrag, this); 18376 } 18377 }, 18378 _deactivate: function() { 18379 this._map.stopLocate(); 18380 this._active = false; 18381 if (!this.options.cacheLocation) { 18382 this._event = void 0; 18383 } 18384 this._map.off("locationfound", this._onLocationFound, this); 18385 this._map.off("locationerror", this._onLocationError, this); 18386 this._map.off("dragstart", this._onDrag, this); 18387 }, 18388 setView: function() { 18389 this._drawMarker(); 18390 if (this._isOutsideMapBounds()) { 18391 this._event = void 0; 18392 this.options.onLocationOutsideMapBounds(this); 18393 } else { 18394 if (this.options.keepCurrentZoomLevel) { 18395 var f = this.options.flyTo ? this._map.flyTo : this._map.panTo; 18396 f.bind(this._map)([this._event.latitude, this._event.longitude]); 18397 } else { 18398 var f = this.options.flyTo ? this._map.flyToBounds : this._map.fitBounds; 18399 f.bind(this._map)(this._event.bounds, { 18400 padding: this.options.circlePadding, 18401 maxZoom: this.options.locateOptions.maxZoom 18402 }); 18403 } 18404 } 18405 }, 18406 _drawMarker: function() { 18407 if (this._event.accuracy === void 0) { 18408 this._event.accuracy = 0; 18409 } 18410 var radius = this._event.accuracy; 18411 var latlng = this._event.latlng; 18412 if (this.options.drawCircle) { 18413 var style = this._isFollowing() ? this.options.followCircleStyle : this.options.circleStyle; 18414 if (!this._circle) { 18415 this._circle = L2.circle(latlng, radius, style).addTo(this._layer); 18416 } else { 18417 this._circle.setLatLng(latlng).setRadius(radius).setStyle(style); 18418 } 18419 } 18420 var distance, unit; 18421 if (this.options.metric) { 18422 distance = radius.toFixed(0); 18423 unit = this.options.strings.metersUnit; 18424 } else { 18425 distance = (radius * 3.2808399).toFixed(0); 18426 unit = this.options.strings.feetUnit; 18427 } 18428 if (this.options.drawMarker) { 18429 var mStyle = this._isFollowing() ? this.options.followMarkerStyle : this.options.markerStyle; 18430 if (!this._marker) { 18431 this._marker = new this.options.markerClass(latlng, mStyle).addTo(this._layer); 18432 } else { 18433 this._marker.setLatLng(latlng); 18434 if (this._marker.setStyle) { 18435 this._marker.setStyle(mStyle); 18436 } 18437 } 18438 } 18439 var t = this.options.strings.popup; 18440 if (this.options.showPopup && t && this._marker) { 18441 this._marker.bindPopup(L2.Util.template(t, { distance, unit }))._popup.setLatLng(latlng); 18442 } 18443 }, 18444 _removeMarker: function() { 18445 this._layer.clearLayers(); 18446 this._marker = void 0; 18447 this._circle = void 0; 18448 }, 18449 _unload: function() { 18450 this.stop(); 18451 this._map.off("unload", this._unload, this); 18452 }, 18453 _onLocationError: function(err) { 18454 if (err.code == 3 && this.options.locateOptions.watch) { 18455 return; 18456 } 18457 this.stop(); 18458 this.options.onLocationError(err, this); 18459 }, 18460 _onLocationFound: function(e) { 18461 if (this._event && (this._event.latlng.lat === e.latlng.lat && this._event.latlng.lng === e.latlng.lng && this._event.accuracy === e.accuracy)) { 18462 return; 18463 } 18464 if (!this._active) { 18465 return; 18466 } 18467 this._event = e; 18468 this._drawMarker(); 18469 this._updateContainerStyle(); 18470 switch (this.options.setView) { 18471 case "once": 18472 if (this._justClicked) { 18473 this.setView(); 18474 } 18475 break; 18476 case "untilPan": 18477 if (!this._userPanned) { 18478 this.setView(); 18479 } 18480 break; 18481 case "always": 18482 this.setView(); 18483 break; 18484 case false: 18485 break; 18486 } 18487 this._justClicked = false;
18488 }, 18489 _onDrag: function() { 18490 if (this._event) { 18491 this._userPanned = true; 18492 this._updateContainerStyle(); 18493 this._drawMarker(); 18494 } 18495 }, 18496 _isFollowing: function() { 18497 if (!this._active) { 18498 return false; 18499 } 18500 if (this.options.setView === "always") { 18501 return true; 18502 } else if (this.options.setView === "untilPan") { 18503 return !this._userPanned; 18504 } 18505 }, 18506 _isOutsideMapBounds: function() { 18507 if (this._event === void 0) { 18508 return false; 18509 } 18510 return this._map.options.maxBounds && !this._map.options.maxBounds.contains(this._event.latlng); 18511 }, 18512 _updateContainerStyle: function() { 18513 if (!this._container) { 18514 return; 18515 } 18516 if (this._active && !this._event) { 18517 this._setClasses("requesting"); 18518 } else if (this._isFollowing()) { 18519 this._setClasses("following"); 18520 } else if (this._active) { 18521 this._setClasses("active"); 18522 } else { 18523 this._cleanClasses(); 18524 } 18525 }, 18526 _setClasses: function(state) { 18527 if (state == "requesting") { 18528 removeClasses(this._container, "active following"); 18529 addClasses(this._container, "requesting"); 18530 removeClasses(this._icon, this.options.icon); 18531 addClasses(this._icon, this.options.iconLoading); 18532 } else if (state == "active") { 18533 removeClasses(this._container, "requesting following"); 18534 addClasses(this._container, "active"); 18535 removeClasses(this._icon, this.options.iconLoading); 18536 addClasses(this._icon, this.options.icon); 18537 } else if (state == "following") { 18538 removeClasses(this._container, "requesting"); 18539 addClasses(this._container, "active following"); 18540 removeClasses(this._icon, this.options.iconLoading); 18541 addClasses(this._icon, this.options.icon); 18542 } 18543 }, 18544 _cleanClasses: function() { 18545 L2.DomUtil.removeClass(this._container, "requesting"); 18546 L2.DomUtil.removeClass(this._container, "active"); 18547 L2.DomUtil.removeClass(this._container, "following"); 18548 removeClasses(this._icon, this.options.iconLoading); 18549 addClasses(this._icon, this.options.icon); 18550 }, 18551 _resetVariables: function() { 18552 this._active = false; 18553 this._justClicked = false; 18554 this._userPanned = false; 18555 } 18556 }); 18557 L2.control.locate = function(options) { 18558 return new L2.Control.Locate(options); 18559 }; 18560 return LocateControl; 18561 }, window); 18562 } 18563 }); 18564 18565
vendor: 67,047 bytes, lines 18565-19518
18565// node_modules/sortablejs/Sortable.min.js 18566 var require_Sortable_min = __commonJS({ 18567 "node_modules/sortablejs/Sortable.min.js"(exports, module) { 18568 !function(t, e) { 18569 "object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : (t = t || self).Sortable = e(); 18570 }(exports, function() { 18571 "use strict"; 18572 function e(e2, t2) { 18573 var n2, o2 = Object.keys(e2); 18574 return Object.getOwnPropertySymbols && (n2 = Object.getOwnPropertySymbols(e2), t2 && (n2 = n2.filter(function(t3) { 18575 return Object.getOwnPropertyDescriptor(e2, t3).enumerable; 18576 })), o2.push.apply(o2, n2)), o2; 18577 } 18578 function M(o2) { 18579 for (var t2 = 1; t2 < arguments.length; t2++) { 18580 var i3 = null != arguments[t2] ? arguments[t2] : {}; 18581 t2 % 2 ? e(Object(i3), true).forEach(function(t3) { 18582 var e2, n2; 18583 e2 = o2, t3 = i3[n2 = t3], n2 in e2 ? Object.defineProperty(e2, n2, { value: t3, enumerable: true, configurable: true, writable: true }) : e2[n2] = t3; 18584 }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(o2, Object.getOwnPropertyDescriptors(i3)) : e(Object(i3)).forEach(function(t3) { 18585 Object.defineProperty(o2, t3, Object.getOwnPropertyDescriptor(i3, t3)); 18586 }); 18587 } 18588 return o2; 18589 } 18590 function o(t2) { 18591 return (o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t3) { 18592 return typeof t3; 18593 } : function(t3) { 18594 return t3 && "function" == typeof Symbol && t3.constructor === Symbol && t3 !== Symbol.prototype ? "symbol" : typeof t3; 18595 })(t2); 18596 } 18597 function a() { 18598 return (a = Object.assign || function(t2) { 18599 for (var e2 = 1; e2 < arguments.length; e2++) { 18600 var n2, o2 = arguments[e2]; 18601 for (n2 in o2) 18602 Object.prototype.hasOwnProperty.call(o2, n2) && (t2[n2] = o2[n2]); 18603 } 18604 return t2; 18605 }).apply(this, arguments); 18606 } 18607 function i2(t2, e2) { 18608 if (null == t2) 18609 return {}; 18610 var n2, o2 = function(t3, e3) { 18611 if (null == t3) 18612 return {}; 18613 for (var n3, o3 = {}, i4 = Object.keys(t3), r3 = 0; r3 < i4.length; r3++) 18614 n3 = i4[r3], 0 <= e3.indexOf(n3) || (o3[n3] = t3[n3]); 18615 return o3; 18616 }(t2, e2); 18617 if (Object.getOwnPropertySymbols) 18618 for (var i3 = Object.getOwnPropertySymbols(t2), r2 = 0; r2 < i3.length; r2++) 18619 n2 = i3[r2], 0 <= e2.indexOf(n2) || Object.prototype.propertyIsEnumerable.call(t2, n2) && (o2[n2] = t2[n2]); 18620 return o2; 18621 } 18622 function r(t2) { 18623 return function(t3) { 18624 if (Array.isArray(t3)) 18625 return l(t3); 18626 }(t2) || function(t3) { 18627 if ("undefined" != typeof Symbol && null != t3[Symbol.iterator] || null != t3["@@iterator"]) 18628 return Array.from(t3); 18629 }(t2) || function(t3, e2) { 18630 if (t3) { 18631 if ("string" == typeof t3) 18632 return l(t3, e2); 18633 var n2 = Object.prototype.toString.call(t3).slice(8, -1); 18634 return "Map" === (n2 = "Object" === n2 && t3.constructor ? t3.constructor.name : n2) || "Set" === n2 ? Array.from(t3) : "Arguments" === n2 || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n2) ? l(t3, e2) : void 0; 18635 } 18636 }(t2) || function() { 18637 throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); 18638 }(); 18639 } 18640 function l(t2, e2) { 18641 (null == e2 || e2 > t2.length) && (e2 = t2.length); 18642 for (var n2 = 0, o2 = new Array(e2); n2 < e2; n2++) 18643 o2[n2] = t2[n2]; 18644 return o2; 18645 } 18646 function t(t2) { 18647 if ("undefined" != typeof window && window.navigator) 18648 return !!navigator.userAgent.match(t2); 18649 } 18650 var y = t(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i), w = t(/Edge/i), s = t(/firefox/i), u = t(/safari/i) && !t(/chrome/i) && !t(/android/i), n = t(/iP(ad|od|hone)/i), c = t(/chrome/i) && t(/android/i), d = { capture: false, passive: false }; 18651 function h(t2, e2, n2) { 18652 t2.addEventListener(e2, n2, !y && d); 18653 } 18654 function f(t2, e2, n2) { 18655 t2.removeEventListener(e2, n2, !y && d); 18656 } 18657 function p(t2, e2) { 18658 if (e2 && (">" === e2[0] && (e2 = e2.substring(1)), t2)) 18659 try { 18660 if (t2.matches) 18661 return t2.matches(e2); 18662 if (t2.msMatchesSelector) 18663 return t2.msMatchesSelector(e2); 18664 if (t2.webkitMatchesSelector) 18665 return t2.webkitMatchesSelector(e2); 18666 } catch (t3) { 18667 return; 18668 } 18669 } 18670 function N(t2, e2, n2, o2) { 18671 if (t2) { 18672 n2 = n2 || document; 18673 do { 18674 if (null != e2 && (">" !== e2[0] || t2.parentNode === n2) && p(t2, e2) || o2 && t2 === n2) 18675 return t2; 18676 } while (t2 !== n2 && (t2 = (i3 = t2).host && i3 !== document && i3.host.nodeType ? i3.host : i3.parentNode)); 18677 } 18678 var i3; 18679 return null; 18680 } 18681 var g, m = /\s+/g; 18682 function I(t2, e2, n2) { 18683 var o2; 18684 t2 && e2 && (t2.classList ? t2.classList[n2 ? "add" : "remove"](e2) : (o2 = (" " + t2.className + " ").replace(m, " ").replace(" " + e2 + " ", " "), t2.className = (o2 + (n2 ? " " + e2 : "")).replace(m, " "))); 18685 } 18686 function P(t2, e2, n2) { 18687 var o2 = t2 && t2.style; 18688 if (o2) { 18689 if (void 0 === n2) 18690 return document.defaultView && document.defaultView.getComputedStyle ? n2 = document.defaultView.getComputedStyle(t2, "") : t2.currentStyle && (n2 = t2.currentStyle), void 0 === e2 ? n2 : n2[e2]; 18691 o2[e2 = !(e2 in o2 || -1 !== e2.indexOf("webkit")) ? "-webkit-" + e2 : e2] = n2 + ("string" == typeof n2 ? "" : "px"); 18692 } 18693 } 18694 function v(t2, e2) { 18695 var n2 = ""; 18696 if ("string" == typeof t2) 18697 n2 = t2; 18698 else 18699 do { 18700 var o2 = P(t2, "transform"); 18701 } while (o2 && "none" !== o2 && (n2 = o2 + " " + n2), !e2 && (t2 = t2.parentNode)); 18702 var i3 = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix; 18703 return i3 && new i3(n2); 18704 } 18705 function b(t2, e2, n2) { 18706 if (t2) { 18707 var o2 = t2.getElementsByTagName(e2), i3 = 0, r2 = o2.length; 18708 if (n2) 18709 for (; i3 < r2; i3++) 18710 n2(o2[i3], i3); 18711 return o2; 18712 } 18713 return []; 18714 } 18715 function O() { 18716 var t2 = document.scrollingElement; 18717 return t2 || document.documentElement; 18718 } 18719 function k(t2, e2, n2, o2, i3) { 18720 if (t2.getBoundingClientRect || t2 === window) { 18721 var r2, a2, l2, s2, c2, u2, d2 = t2 !== window && t2.parentNode && t2 !== O() ? (a2 = (r2 = t2.getBoundingClientRect()).top, l2 = r2.left, s2 = r2.bottom, c2 = r2.right, u2 = r2.height, r2.width) : (l2 = a2 = 0, s2 = window.innerHeight, c2 = window.innerWidth, u2 = window.innerHeight, window.innerWidth); 18722 if ((e2 || n2) && t2 !== window && (i3 = i3 || t2.parentNode, !y)) 18723 do { 18724 if (i3 && i3.getBoundingClientRect && ("none" !== P(i3, "transform") || n2 && "static" !== P(i3, "position"))) { 18725 var h2 = i3.getBoundingClientRect(); 18726 a2 -= h2.top + parseInt(P(i3, "border-top-width")), l2 -= h2.left + parseInt(P(i3, "border-left-width")), s2 = a2 + r2.height, c2 = l2 + r2.width; 18727 break; 18728 } 18729 } while (i3 = i3.parentNode); 18730 return o2 && t2 !== window && (o2 = (e2 = v(i3 || t2)) && e2.a, t2 = e2 && e2.d, e2 && (s2 = (a2 /= t2) + (u2 /= t2), c2 = (l2 /= o2) + (d2 /= o2))), { top: a2, left: l2, bottom: s2, right: c2, width: d2, height: u2 }; 18731 } 18732 } 18733 function R(t2, e2, n2) { 18734 for (var o2 = A(t2, true), i3 = k(t2)[e2]; o2; ) { 18735 var r2 = k(o2)[n2]; 18736 if (!("top" === n2 || "left" === n2 ? r2 <= i3 : i3 <= r2)) 18737 return o2; 18738 if (o2 === O()) 18739 break; 18740 o2 = A(o2, false); 18741 } 18742 return false; 18743 } 18744 function X(t2, e2, n2, o2) { 18745 for (var i3 = 0, r2 = 0, a2 = t2.children; r2 < a2.length; ) { 18746 if ("none" !== a2[r2].style.display && a2[r2] !== Bt.ghost && (o2 || a2[r2] !== Bt.dragged) && N(a2[r2], n2.draggable, t2, false)) { 18747 if (i3 === e2) 18748 return a2[r2]; 18749 i3++; 18750 } 18751 r2++; 18752 } 18753 return null; 18754 } 18755 function Y(t2, e2) { 18756 for (var n2 = t2.lastElementChild; n2 && (n2 === Bt.ghost || "none" === P(n2, "display") || e2 && !p(n2, e2)); ) 18757 n2 = n2.previousElementSibling; 18758 return n2 || null; 18759 } 18760 function B(t2, e2) { 18761 var n2 = 0; 18762 if (!t2 || !t2.parentNode) 18763 return -1; 18764 for (; t2 = t2.previousElementSibling; ) 18765 "TEMPLATE" === t2.nodeName.toUpperCase() || t2 === Bt.clone || e2 && !p(t2, e2) || n2++; 18766 return n2; 18767 } 18768 function E(t2) { 18769 var e2 = 0, n2 = 0, o2 = O(); 18770 if (t2) 18771 do { 18772 var i3 = v(t2), r2 = i3.a, i3 = i3.d; 18773 } while (e2 += t2.scrollLeft * r2, n2 += t2.scrollTop * i3, t2 !== o2 && (t2 = t2.parentNode)); 18774 return [e2, n2]; 18775 } 18776 function A(t2, e2) { 18777 if (!t2 || !t2.getBoundingClientRect) 18778 return O(); 18779 var n2 = t2, o2 = false; 18780 do { 18781 if (n2.clientWidth < n2.scrollWidth || n2.clientHeight < n2.scrollHeight) { 18782 var i3 = P(n2); 18783 if (n2.clientWidth < n2.scrollWidth && ("auto" == i3.overflowX || "scroll" == i3.overflowX) || n2.clientHeight < n2.scrollHeight && ("auto" == i3.overflowY || "scroll" == i3.overflowY)) { 18784 if (!n2.getBoundingClientRect || n2 === document.body) 18785 return O(); 18786 if (o2 || e2) 18787 return n2; 18788 o2 = true; 18789 } 18790 } 18791 } while (n2 = n2.parentNode); 18792 return O(); 18793 } 18794 function D(t2, e2) { 18795 return Math.round(t2.top) === Math.round(e2.top) && Math.round(t2.left) === Math.round(e2.left) && Math.round(t2.height) === Math.round(e2.height) && Math.round(t2.width) === Math.round(e2.width); 18796 } 18797 function S(e2, n2) { 18798 return function() { 18799 var t2; 18800 g || (1 === (t2 = arguments).length ? e2.call(this, t2[0]) : e2.apply(this, t2), g = setTimeout(function() { 18801 g = void 0; 18802 }, n2)); 18803 }; 18804 } 18805 function F(t2, e2, n2) { 18806 t2.scrollLeft += e2, t2.scrollTop += n2; 18807 } 18808 function _(t2) { 18809 var e2 = window.Polymer, n2 = window.jQuery || window.Zepto; 18810 return e2 && e2.dom ? e2.dom(t2).cloneNode(true) : n2 ? n2(t2).clone(true)[0] : t2.cloneNode(true); 18811 } 18812 function C(t2, e2) { 18813 P(t2, "position", "absolute"), P(t2, "top", e2.top), P(t2, "left", e2.left), P(t2, "width", e2.width), P(t2, "height", e2.height); 18814 } 18815 function T(t2) { 18816 P(t2, "position", ""), P(t2, "top", ""), P(t2, "left", ""), P(t2, "width", ""), P(t2, "height", ""); 18817 } 18818 var j = "Sortable" + new Date().getTime(); 18819 function x() { 18820 var e2, o2 = []; 18821 return { captureAnimationState: function() { 18822 o2 = [], this.options.animation && [].slice.call(this.el.children).forEach(function(t2) { 18823 var e3, n2; 18824 "none" !== P(t2, "display") && t2 !== Bt.ghost && (o2.push({ target: t2, rect: k(t2) }), e3 = M({}, o2[o2.length - 1].rect), !t2.thisAnimationDuration || (n2 = v(t2, true)) && (e3.top -= n2.f, e3.left -= n2.e), t2.fromRect = e3); 18825 }); 18826 }, addAnimationState: function(t2) { 18827 o2.push(t2); 18828 }, removeAnimationState: function(t2) { 18829 o2.splice(function(t3, e3) { 18830 for (var n2 in t3) 18831 if (t3.hasOwnProperty(n2)) { 18832 for (var o3 in e3) 18833 if (e3.hasOwnProperty(o3) && e3[o3] === t3[n2][o3]) 18834 return Number(n2); 18835 } 18836 return -1; 18837 }(o2, { target: t2 }), 1); 18838 }, animateAll: function(t2) { 18839 var c2 = this; 18840 if (!this.options.animation) 18841 return clearTimeout(e2), void ("function" == typeof t2 && t2()); 18842 var u2 = false, d2 = 0; 18843 o2.forEach(function(t3) { 18844 var e3 = 0, n2 = t3.target, o3 = n2.fromRect, i3 = k(n2), r2 = n2.prevFromRect, a2 = n2.prevToRect, l2 = t3.rect, s2 = v(n2, true); 18845 s2 && (i3.top -= s2.f, i3.left -= s2.e), n2.toRect = i3, n2.thisAnimationDuration && D(r2, i3) && !D(o3, i3) && (l2.top - i3.top) / (l2.left - i3.left) == (o3.top - i3.top) / (o3.left - i3.left) && (t3 = l2, s2 = r2, r2 = a2, a2 = c2.options, e3 = Math.sqrt(Math.pow(s2.top - t3.top, 2) + Math.pow(s2.left - t3.left, 2)) / Math.sqrt(Math.pow(s2.top - r2.top, 2) + Math.pow(s2.left - r2.left, 2)) * a2.animation), D(i3, o3) || (n2.prevFromRect = o3, n2.prevToRect = i3, e3 = e3 || c2.options.animation, c2.animate(n2, l2, i3, e3)), e3 && (u2 = true, d2 = Math.max(d2, e3), clearTimeout(n2.animationResetTimer), n2.animationResetTimer = setTimeout(function() { 18846 n2.animationTime = 0, n2.prevFromRect = null, n2.fromRect = null, n2.prevToRect = null, n2.thisAnimationDuration = null; 18847 }, e3), n2.thisAnimationDuration = e3); 18848 }), clearTimeout(e2), u2 ? e2 = setTimeout(function() { 18849 "function" == typeof t2 && t2(); 18850 }, d2) : "function" == typeof t2 && t2(), o2 = []; 18851 }, animate: function(t2, e3, n2, o3) { 18852 var i3, r2; 18853 o3 && (P(t2, "transition", ""), P(t2, "transform", ""), i3 = (r2 = v(this.el)) && r2.a, r2 = r2 && r2.d, i3 = (e3.left - n2.left) / (i3 || 1), r2 = (e3.top - n2.top) / (r2 || 1), t2.animatingX = !!i3, t2.animatingY = !!r2, P(t2, "transform", "translate3d(" + i3 + "px," + r2 + "px,0)"), this.forRepaintDummy = t2.offsetWidth, P(t2, "transition", "transform " + o3 + "ms" + (this.options.easing ? " " + this.options.easing : "")), P(t2, "transform", "translate3d(0,0,0)"), "number" == typeof t2.animated && clearTimeout(t2.animated), t2.animated = setTimeout(function() { 18854 P(t2, "transition", ""), P(t2, "transform", ""), t2.animated = false, t2.animatingX = false, t2.animatingY = false; 18855 }, o3)); 18856 } }; 18857 } 18858 var H = [], L2 = { initializeByDefault: true }, K = { mount: function(e2) { 18859 for (var t2 in L2) 18860 !L2.hasOwnProperty(t2) || t2 in e2 || (e2[t2] = L2[t2]); 18861 H.forEach(function(t3) { 18862 if (t3.pluginName === e2.pluginName) 18863 throw "Sortable: Cannot mount plugin ".concat(e2.pluginName, " more than once"); 18864 }), H.push(e2); 18865 }, pluginEvent: function(e2, n2, o2) { 18866 var t2 = this; 18867 this.eventCanceled = false, o2.cancel = function() { 18868 t2.eventCanceled = true; 18869 }; 18870 var i3 = e2 + "Global"; 18871 H.forEach(function(t3) { 18872 n2[t3.pluginName] && (n2[t3.pluginName][i3] && n2[t3.pluginName][i3](M({ sortable: n2 }, o2)), n2.options[t3.pluginName] && n2[t3.pluginName][e2] && n2[t3.pluginName][e2](M({ sortable: n2 }, o2))); 18873 }); 18874 }, initializePlugins: function(n2, o2, i3, t2) { 18875 for (var e2 in H.forEach(function(t3) { 18876 var e3 = t3.pluginName; 18877 (n2.options[e3] || t3.initializeByDefault) && ((t3 = new t3(n2, o2, n2.options)).sortable = n2, t3.options = n2.options, n2[e3] = t3, a(i3, t3.defaults)); 18878 }), n2.options) { 18879 var r2; 18880 n2.options.hasOwnProperty(e2) && (void 0 !== (r2 = this.modifyOption(n2, e2, n2.options[e2])) && (n2.options[e2] = r2)); 18881 } 18882 }, getEventProperties: function(e2, n2) { 18883 var o2 = {}; 18884 return H.forEach(function(t2) { 18885 "function" == typeof t2.eventProperties && a(o2, t2.eventProperties.call(n2[t2.pluginName], e2)); 18886 }), o2; 18887 }, modifyOption: function(e2, n2, o2) { 18888 var i3; 18889 return H.forEach(function(t2) { 18890 e2[t2.pluginName] && t2.optionListeners && "function" == typeof t2.optionListeners[n2] && (i3 = t2.optionListeners[n2].call(e2[t2.pluginName], o2)); 18891 }), i3; 18892 } }; 18893 function W(t2) { 18894 var e2 = t2.sortable, n2 = t2.rootEl, o2 = t2.name, i3 = t2.targetEl, r2 = t2.cloneEl, a2 = t2.toEl, l2 = t2.fromEl, s2 = t2.oldIndex, c2 = t2.newIndex, u2 = t2.oldDraggableIndex, d2 = t2.newDraggableIndex, h2 = t2.originalEvent, f2 = t2.putSortable, p2 = t2.extraEventProperties; 18895 if (e2 = e2 || n2 && n2[j]) { 18896 var g2, m2 = e2.options, t2 = "on" + o2.charAt(0).toUpperCase() + o2.substr(1); 18897 !window.CustomEvent || y || w ? (g2 = document.createEvent("Event")).initEvent(o2, true, true) : g2 = new CustomEvent(o2, { bubbles: true, cancelable: true }), g2.to = a2 || n2, g2.from = l2 || n2, g2.item = i3 || n2, g2.clone = r2, g2.oldIndex = s2, g2.newIndex = c2, g2.oldDraggableIndex = u2, g2.newDraggableIndex = d2, g2.originalEvent = h2, g2.pullMode = f2 ? f2.lastPutMode : void 0; 18898 var v2, b2 = M(M({}, p2), K.getEventProperties(o2, e2)); 18899 for (v2 in b2) 18900 g2[v2] = b2[v2]; 18901 n2 && n2.dispatchEvent(g2), m2[t2] && m2[t2].call(e2, g2); 18902 } 18903 } 18904 function z(t2, e2) { 18905 var n2 = (o2 = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {}).evt, o2 = i2(o2, G); 18906 K.pluginEvent.bind(Bt)(t2, e2, M({ dragEl: q, parentEl: V, ghostEl: Z, rootEl: $2, nextEl: Q, lastDownEl: J, cloneEl: tt, cloneHidden: et, dragStarted: pt, putSortable: lt, activeSortable: Bt.active, originalEvent: n2, oldIndex: nt, oldDraggableIndex: it, newIndex: ot, newDraggableIndex: rt, hideGhostForTarget: kt, unhideGhostForTarget: Rt, cloneNowHidden: function() { 18907 et = true; 18908 }, cloneNowShown: function() { 18909 et = false; 18910 }, dispatchSortableEvent: function(t3) { 18911 U({ sortable: e2, name: t3, originalEvent: n2 }); 18912 } }, o2)); 18913 } 18914 var G = ["evt"]; 18915 function U(t2) { 18916 W(M({ putSortable: lt, cloneEl: tt, targetEl: q, rootEl: $2, oldIndex: nt, oldDraggableIndex: it, newIndex: ot, newDraggableIndex: rt }, t2)); 18917 } 18918 var q, V, Z, $2, Q, J, tt, et, nt, ot, it, rt, at, lt, st, ct, ut, dt, ht, ft, pt, gt, mt, vt, bt, yt = false, wt = false, Et = [], Dt = false, St = false, _t = [], Ct = false, Tt = [], xt = "undefined" != typeof document, Ot = n, At = w || y ? "cssFloat" : "float", Mt = xt && !c && !n && "draggable" in document.createElement("div"), Nt = function() { 18919 if (xt) { 18920 if (y) 18921 return false; 18922 var t2 = document.createElement("x"); 18923 return t2.style.cssText = "pointer-events:auto", "auto" === t2.style.pointerEvents; 18924 } 18925 }(), It = function(t2, e2) { 18926 var n2 = P(t2), o2 = parseInt(n2.width) - parseInt(n2.paddingLeft) - parseInt(n2.paddingRight) - parseInt(n2.borderLeftWidth) - parseInt(n2.borderRightWidth), i3 = X(t2, 0, e2), r2 = X(t2, 1, e2), a2 = i3 && P(i3), l2 = r2 && P(r2), s2 = a2 && parseInt(a2.marginLeft) + parseInt(a2.marginRight) + k(i3).width, t2 = l2 && parseInt(l2.marginLeft) + parseInt(l2.marginRight) + k(r2).width; 18927 if ("flex" === n2.display) 18928 return "column" === n2.flexDirection || "column-reverse" === n2.flexDirection ? "vertical" : "horizontal"; 18929 if ("grid" === n2.display) 18930 return n2.gridTemplateColumns.split(" ").length <= 1 ? "vertical" : "horizontal"; 18931 if (i3 && a2.float && "none" !== a2.float) { 18932 e2 = "left" === a2.float ? "left" : "right"; 18933 return !r2 || "both" !== l2.clear && l2.clear !== e2 ? "horizontal" : "vertical"; 18934 } 18935 return i3 && ("block" === a2.display || "flex" === a2.display || "table" === a2.display || "grid" === a2.display || o2 <= s2 && "none" === n2[At] || r2 && "none" === n2[At] && o2 < s2 + t2) ? "vertical" : "horizontal"; 18936 }, Pt = function(t2) { 18937 function l2(r2, a2) { 18938 return function(t3, e3, n3, o2) { 18939 var i3 = t3.options.group.name && e3.options.group.name && t3.options.group.name === e3.options.group.name; 18940 if (null == r2 && (a2 || i3)) 18941 return true; 18942 if (null == r2 || false === r2) 18943 return false; 18944 if (a2 && "clone" === r2) 18945 return r2; 18946 if ("function" == typeof r2) 18947 return l2(r2(t3, e3, n3, o2), a2)(t3, e3, n3, o2); 18948 e3 = (a2 ? t3 : e3).options.group.name; 18949 return true === r2 || "string" == typeof r2 && r2 === e3 || r2.join && -1 < r2.indexOf(e3); 18950 }; 18951 } 18952 var e2 = {}, n2 = t2.group; 18953 n2 && "object" == o(n2) || (n2 = { name: n2 }), e2.name = n2.name, e2.checkPull = l2(n2.pull, true), e2.checkPut = l2(n2.put), e2.revertClone = n2.revertClone, t2.group = e2; 18954 }, kt = function() { 18955 !Nt && Z && P(Z, "display", "none"); 18956 }, Rt = function() { 18957 !Nt && Z && P(Z, "display", ""); 18958 }; 18959 xt && !c && document.addEventListener("click", function(t2) { 18960 if (wt) 18961 return t2.preventDefault(), t2.stopPropagation && t2.stopPropagation(), t2.stopImmediatePropagation && t2.stopImmediatePropagation(), wt = false; 18962 }, true); 18963 function Xt(t2) { 18964 if (q) { 18965 t2 = t2.touches ? t2.touches[0] : t2; 18966 var e2 = (i3 = t2.clientX, r2 = t2.clientY, Et.some(function(t3) { 18967 var e3 = t3[j].options.emptyInsertThreshold; 18968 if (e3 && !Y(t3)) { 18969 var n3 = k(t3), o3 = i3 >= n3.left - e3 && i3 <= n3.right + e3, e3 = r2 >= n3.top - e3 && r2 <= n3.bottom + e3; 18970 return o3 && e3 ? a2 = t3 : void 0; 18971 } 18972 }), a2); 18973 if (e2) { 18974 var n2, o2 = {}; 18975 for (n2 in t2) 18976 t2.hasOwnProperty(n2) && (o2[n2] = t2[n2]); 18977 o2.target = o2.rootEl = e2, o2.preventDefault = void 0, o2.stopPropagation = void 0, e2[j]._onDragOver(o2); 18978 } 18979 } 18980 var i3, r2, a2; 18981 } 18982 function Yt(t2) { 18983 q && q.parentNode[j]._isOutsideThisEl(t2.target); 18984 } 18985 function Bt(t2, e2) { 18986 if (!t2 || !t2.nodeType || 1 !== t2.nodeType) 18987 throw "Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(t2)); 18988 this.el = t2, this.options = e2 = a({}, e2), t2[j] = this; 18989 var n2, o2, i3 = { group: null, sort: true, disabled: false, store: null, handle: null, draggable: /^[uo]l$/i.test(t2.nodeName) ? ">li" : ">*", swapThreshold: 1, invertSwap: false, invertedSwapThreshold: null, removeCloneOnHide: true, direction: function() { 18990 return It(t2, this.options); 18991 }, ghostClass: "sortable-ghost", chosenClass: "sortable-chosen", dragClass: "sortable-drag", ignore: "a, img", filter: null, preventOnFilter: true, animation: 0, easing: null, setData: function(t3, e3) { 18992 t3.setData("Text", e3.textContent); 18993 }, dropBubble: false, dragoverBubble: false, dataIdAttr: "data-id", delay: 0, delayOnTouchOnly: false, touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1, forceFallback: false, fallbackClass: "sortable-fallback", fallbackOnBody: false, fallbackTolerance: 0, fallbackOffset: { x: 0, y: 0 }, supportPointer: false !== Bt.supportPointer && "PointerEvent" in window && !u, emptyInsertThreshold: 5 }; 18994 for (n2 in K.initializePlugins(this, t2, i3), i3) 18995 n2 in e2 || (e2[n2] = i3[n2]); 18996 for (o2 in Pt(e2), this) 18997 "_" === o2.charAt(0) && "function" == typeof this[o2] && (this[o2] = this[o2].bind(this)); 18998 this.nativeDraggable = !e2.forceFallback && Mt, this.nativeDraggable && (this.options.touchStartThreshold = 1), e2.supportPointer ? h(t2, "pointerdown", this._onTapStart) : (h(t2, "mousedown", this._onTapStart), h(t2, "touchstart", this._onTapStart)), this.nativeDraggable && (h(t2, "dragover", this), h(t2, "dragenter", this)), Et.push(this.el), e2.store && e2.store.get && this.sort(e2.store.get(this) || []), a(this, x()); 18999 } 19000 function Ft(t2, e2, n2, o2, i3, r2, a2, l2) { 19001 var s2, c2, u2 = t2[j], d2 = u2.options.onMove; 19002 return !window.CustomEvent || y || w ? (s2 = document.createEvent("Event")).initEvent("move", true, true) : s2 = new CustomEvent("move", { bubbles: true, cancelable: true }), s2.to = e2, s2.from = t2, s2.dragged = n2, s2.draggedRect = o2, s2.related = i3 || e2, s2.relatedRect = r2 || k(e2), s2.willInsertAfter = l2, s2.originalEvent = a2, t2.dispatchEvent(s2), c2 = d2 ? d2.call(u2, s2, a2) : c2; 19003 } 19004 function jt(t2) { 19005 t2.draggable = false; 19006 } 19007 function Ht() { 19008 Ct = false; 19009 } 19010 function Lt(t2) { 19011 return setTimeout(t2, 0); 19012 } 19013 function Kt(t2) { 19014 return clearTimeout(t2); 19015 } 19016 Bt.prototype = { constructor: Bt, _isOutsideThisEl: function(t2) { 19017 this.el.contains(t2) || t2 === this.el || (gt = null); 19018 }, _getDirection: function(t2, e2) { 19019 return "function" == typeof this.options.direction ? this.options.direction.call(this, t2, e2, q) : this.options.direction; 19020 }, _onTapStart: function(e2) { 19021 if (e2.cancelable) { 19022 var n2 = this, o2 = this.el, t2 = this.options, i3 = t2.preventOnFilter, r2 = e2.type, a2 = e2.touches && e2.touches[0] || e2.pointerType && "touch" === e2.pointerType && e2, l2 = (a2 || e2).target, s2 = e2.target.shadowRoot && (e2.path && e2.path[0] || e2.composedPath && e2.composedPath()[0]) || l2, c2 = t2.filter; 19023 if (!function(t3) { 19024 Tt.length = 0; 19025 var e3 = t3.getElementsByTagName("input"), n3 = e3.length; 19026 for (; n3--; ) { 19027 var o3 = e3[n3]; 19028 o3.checked && Tt.push(o3); 19029 } 19030 }(o2), !q && !(/mousedown|pointerdown/.test(r2) && 0 !== e2.button || t2.disabled) && !s2.isContentEditable && (this.nativeDraggable || !u || !l2 || "SELECT" !== l2.tagName.toUpperCase()) && !((l2 = N(l2, t2.draggable, o2, false)) && l2.animated || J === l2)) { 19031 if (nt = B(l2), it = B(l2, t2.draggable), "function" == typeof c2) { 19032 if (c2.call(this, e2, l2, this)) 19033 return U({ sortable: n2, rootEl: s2, name: "filter", targetEl: l2, toEl: o2, fromEl: o2 }), z("filter", n2, { evt: e2 }), void (i3 && e2.cancelable && e2.preventDefault()); 19034 } else if (c2 = c2 && c2.split(",").some(function(t3) { 19035 if (t3 = N(s2, t3.trim(), o2, false)) 19036 return U({ sortable: n2, rootEl: t3, name: "filter", targetEl: l2, fromEl: o2, toEl: o2 }), z("filter", n2, { evt: e2 }), true; 19037 })) 19038 return void (i3 && e2.cancelable && e2.preventDefault()); 19039 t2.handle && !N(s2, t2.handle, o2, false) || this._prepareDragStart(e2, a2, l2); 19040 } 19041 } 19042 }, _prepareDragStart: function(t2, e2, n2) { 19043 var o2, i3 = this, r2 = i3.el, a2 = i3.options, l2 = r2.ownerDocument; 19044 n2 && !q && n2.parentNode === r2 && (o2 = k(n2), $2 = r2, V = (q = n2).parentNode, Q = q.nextSibling, J = n2, at = a2.group, st = { target: Bt.dragged = q, clientX: (e2 || t2).clientX, clientY: (e2 || t2).clientY }, ht = st.clientX - o2.left, ft = st.clientY - o2.top, this._lastX = (e2 || t2).clientX, this._lastY = (e2 || t2).clientY, q.style["will-change"] = "all", o2 = function() { 19045 z("delayEnded", i3, { evt: t2 }), Bt.eventCanceled ? i3._onDrop() : (i3._disableDelayedDragEvents(), !s && i3.nativeDraggable && (q.draggable = true), i3._triggerDragStart(t2, e2), U({ sortable: i3, name: "choose", originalEvent: t2 }), I(q, a2.chosenClass, true)); 19046 }, a2.ignore.split(",").forEach(function(t3) { 19047 b(q, t3.trim(), jt); 19048 }), h(l2, "dragover", Xt), h(l2, "mousemove", Xt), h(l2, "touchmove", Xt), h(l2, "mouseup", i3._onDrop), h(l2, "touchend", i3._onDrop), h(l2, "touchcancel", i3._onDrop), s && this.nativeDraggable && (this.options.touchStartThreshold = 4, q.draggable = true), z("delayStart", this, { evt: t2 }), !a2.delay || a2.delayOnTouchOnly && !e2 || this.nativeDraggable && (w || y) ? o2() : Bt.eventCanceled ? this._onDrop() : (h(l2, "mouseup", i3._disableDelayedDrag), h(l2, "touchend", i3._disableDelayedDrag), h(l2, "touchcancel", i3._disableDelayedDrag), h(l2, "mousemove", i3._delayedDragTouchMoveHandler), h(l2, "touchmove", i3._delayedDragTouchMoveHandler), a2.supportPointer && h(l2, "pointermove", i3._delayedDragTouchMoveHandler), i3._dragStartTimer = setTimeout(o2, a2.delay))); 19049 }, _delayedDragTouchMoveHandler: function(t2) { 19050 t2 = t2.touches ? t2.touches[0] : t2; 19051 Math.max(Math.abs(t2.clientX - this._lastX), Math.abs(t2.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1)) && this._disableDelayedDrag(); 19052 }, _disableDelayedDrag: function() { 19053 q && jt(q), clearTimeout(this._dragStartTimer), this._disableDelayedDragEvents(); 19054 }, _disableDelayedDragEvents: function() { 19055 var t2 = this.el.ownerDocument; 19056 f(t2, "mouseup", this._disableDelayedDrag), f(t2, "touchend", this._disableDelayedDrag), f(t2, "touchcancel", this._disableDelayedDrag), f(t2, "mousemove", this._delayedDragTouchMoveHandler), f(t2, "touchmove", this._delayedDragTouchMoveHandler), f(t2, "pointermove", this._delayedDragTouchMoveHandler); 19057 }, _triggerDragStart: function(t2, e2) { 19058 e2 = e2 || "touch" == t2.pointerType && t2, !this.nativeDraggable || e2 ? this.options.supportPointer ? h(document, "pointermove", this._onTouchMove) : h(document, e2 ? "touchmove" : "mousemove", this._onTouchMove) : (h(q, "dragend", this), h($2, "dragstart", this._onDragStart)); 19059 try { 19060 document.selection ? Lt(function() { 19061 document.selection.empty(); 19062 }) : window.getSelection().removeAllRanges(); 19063 } catch (t3) { 19064 } 19065 }, _dragStarted: function(t2, e2) { 19066 var n2; 19067 yt = false, $2 && q ? (z("dragStarted", this, { evt: e2 }), this.nativeDraggable && h(document, "dragover", Yt), n2 = this.options, t2 || I(q, n2.dragClass, false), I(q, n2.ghostClass, true), Bt.active = this, t2 && this._appendGhost(), U({ sortable: this, name: "start", originalEvent: e2 })) : this._nulling(); 19068 }, _emulateDragOver: function() { 19069 if (ct) { 19070 this._lastX = ct.clientX, this._lastY = ct.clientY, kt(); 19071 for (var t2 = document.elementFromPoint(ct.clientX, ct.clientY), e2 = t2; t2 && t2.shadowRoot && (t2 = t2.shadowRoot.elementFromPoint(ct.clientX, ct.clientY)) !== e2; ) 19072 e2 = t2; 19073 if (q.parentNode[j]._isOutsideThisEl(t2), e2) 19074 do { 19075 if (e2[j]) { 19076 if (e2[j]._onDragOver({ clientX: ct.clientX, clientY: ct.clientY, target: t2, rootEl: e2 }) && !this.options.dragoverBubble) 19077 break; 19078 } 19079 } while (e2 = (t2 = e2).parentNode); 19080 Rt(); 19081 } 19082 }, _onTouchMove: function(t2) { 19083 if (st) { 19084 var e2 = this.options, n2 = e2.fallbackTolerance, o2 = e2.fallbackOffset, i3 = t2.touches ? t2.touches[0] : t2, r2 = Z && v(Z, true), a2 = Z && r2 && r2.a, l2 = Z && r2 && r2.d, e2 = Ot && bt && E(bt), a2 = (i3.clientX - st.clientX + o2.x) / (a2 || 1) + (e2 ? e2[0] - _t[0] : 0) / (a2 || 1), l2 = (i3.clientY - st.clientY + o2.y) / (l2 || 1) + (e2 ? e2[1] - _t[1] : 0) / (l2 || 1); 19085 if (!Bt.active && !yt) { 19086 if (n2 && Math.max(Math.abs(i3.clientX - this._lastX), Math.abs(i3.clientY - this._lastY)) < n2) 19087 return; 19088 this._onDragStart(t2, true); 19089 } 19090 Z && (r2 ? (r2.e += a2 - (ut || 0), r2.f += l2 - (dt || 0)) : r2 = { a: 1, b: 0, c: 0, d: 1, e: a2, f: l2 }, r2 = "matrix(".concat(r2.a, ",").concat(r2.b, ",").concat(r2.c, ",").concat(r2.d, ",").concat(r2.e, ",").concat(r2.f, ")"), P(Z, "webkitTransform", r2), P(Z, "mozTransform", r2), P(Z, "msTransform", r2), P(Z, "transform", r2), ut = a2, dt = l2, ct = i3), t2.cancelable && t2.preventDefault(); 19091 } 19092 }, _appendGhost: function() { 19093 if (!Z) { 19094 var t2 = this.options.fallbackOnBody ? document.body : $2, e2 = k(q, true, Ot, true, t2), n2 = this.options; 19095 if (Ot) { 19096 for (bt = t2; "static" === P(bt, "position") && "none" === P(bt, "transform") && bt !== document; ) 19097 bt = bt.parentNode; 19098 bt !== document.body && bt !== document.documentElement ? (bt === document && (bt = O()), e2.top += bt.scrollTop, e2.left += bt.scrollLeft) : bt = O(), _t = E(bt); 19099 } 19100 I(Z = q.cloneNode(true), n2.ghostClass, false), I(Z, n2.fallbackClass, true), I(Z, n2.dragClass, true), P(Z, "transition", ""), P(Z, "transform", ""), P(Z, "box-sizing", "border-box"), P(Z, "margin", 0), P(Z, "top", e2.top), P(Z, "left", e2.left), P(Z, "width", e2.width), P(Z, "height", e2.height), P(Z, "opacity", "0.8"), P(Z, "position", Ot ? "absolute" : "fixed"), P(Z, "zIndex", "100000"), P(Z, "pointerEvents", "none"), Bt.ghost = Z, t2.appendChild(Z), P(Z, "transform-origin", ht / parseInt(Z.style.width) * 100 + "% " + ft / parseInt(Z.style.height) * 100 + "%"); 19101 } 19102 }, _onDragStart: function(t2, e2) { 19103 var n2 = this, o2 = t2.dataTransfer, i3 = n2.options; 19104 z("dragStart", this, { evt: t2 }), Bt.eventCanceled ? this._onDrop() : (z("setupClone", this), Bt.eventCanceled || ((tt = _(q)).removeAttribute("id"), tt.draggable = false, tt.style["will-change"] = "", this._hideClone(), I(tt, this.options.chosenClass, false), Bt.clone = tt), n2.cloneId = Lt(function() { 19105 z("clone", n2), Bt.eventCanceled || (n2.options.removeCloneOnHide || $2.insertBefore(tt, q), n2._hideClone(), U({ sortable: n2, name: "clone" })); 19106 }), e2 || I(q, i3.dragClass, true), e2 ? (wt = true, n2._loopId = setInterval(n2._emulateDragOver, 50)) : (f(document, "mouseup", n2._onDrop), f(document, "touchend", n2._onDrop), f(document, "touchcancel", n2._onDrop), o2 && (o2.effectAllowed = "move", i3.setData && i3.setData.call(n2, o2, q)), h(document, "drop", n2), P(q, "transform", "translateZ(0)")), yt = true, n2._dragStartId = Lt(n2._dragStarted.bind(n2, e2, t2)), h(document, "selectstart", n2), pt = true, u && P(document.body, "user-select", "none")); 19107 }, _onDragOver: function(n2) { 19108 var o2, i3, r2, t2, a2 = this.el, l2 = n2.target, e2 = this.options, s2 = e2.group, c2 = Bt.active, u2 = at === s2, d2 = e2.sort, h2 = lt || c2, f2 = this, p2 = false; 19109 if (!Ct) { 19110 if (void 0 !== n2.preventDefault && n2.cancelable && n2.preventDefault(), l2 = N(l2, e2.draggable, a2, true), T2("dragOver"), Bt.eventCanceled) 19111 return p2; 19112 if (q.contains(n2.target) || l2.animated && l2.animatingX && l2.animatingY || f2._ignoreWhileAnimating === l2) 19113 return O2(false); 19114 if (wt = false, c2 && !e2.disabled && (u2 ? d2 || (i3 = V !== $2) : lt === this || (this.lastPutMode = at.checkPull(this, c2, q, n2)) && s2.checkPut(this, c2, q, n2))) { 19115 if (r2 = "vertical" === this._getDirection(n2, l2), o2 = k(q), T2("dragOverValid"), Bt.eventCanceled) 19116 return p2; 19117 if (i3) 19118 return V = $2, x2(), this._hideClone(), T2("revert"), Bt.eventCanceled || (Q ? $2.insertBefore(q, Q) : $2.appendChild(q)), O2(true); 19119 var g2 = Y(a2, e2.draggable); 19120 if (!g2 || function(t3, e3, n3) { 19121 n3 = k(Y(n3.el, n3.options.draggable)); 19122 return e3 ? t3.clientX > n3.right + 10 || t3.clientX <= n3.right && t3.clientY > n3.bottom && t3.clientX >= n3.left : t3.clientX > n3.right && t3.clientY > n3.top || t3.clientX <= n3.right && t3.clientY > n3.bottom + 10; 19123 }(n2, r2, this) && !g2.animated) { 19124 if (g2 === q) 19125 return O2(false); 19126 if ((l2 = g2 && a2 === n2.target ? g2 : l2) && (w2 = k(l2)), false !== Ft($2, a2, q, o2, l2, w2, n2, !!l2)) 19127 return x2(), g2 && g2.nextSibling ? a2.insertBefore(q, g2.nextSibling) : a2.appendChild(q), V = a2, A2(), O2(true); 19128 } else if (g2 && function(t3, e3, n3) { 19129 n3 = k(X(n3.el, 0, n3.options, true)); 19130 return e3 ? t3.clientX < n3.left - 10 || t3.clientY < n3.top && t3.clientX < n3.right : t3.clientY < n3.top - 10 || t3.clientY < n3.bottom && t3.clientX < n3.left; 19131 }(n2, r2, this)) { 19132 var m2 = X(a2, 0, e2, true); 19133 if (m2 === q) 19134 return O2(false); 19135 if (w2 = k(l2 = m2), false !== Ft($2, a2, q, o2, l2, w2, n2, false)) 19136 return x2(), a2.insertBefore(q, m2), V = a2, A2(), O2(true); 19137 } else if (l2.parentNode === a2) { 19138 var v2, b2, y2, w2 = k(l2), E2 = q.parentNode !== a2, D2 = (D2 = q.animated && q.toRect || o2, C2 = l2.animated && l2.toRect || w2, S2 = (t2 = r2) ? D2.left : D2.top, s2 = t2 ? D2.right : D2.bottom, g2 = t2 ? D2.width : D2.height, m2 = t2 ? C2.left : C2.top, D2 = t2 ? C2.right : C2.bottom, C2 = t2 ? C2.width : C2.height, !(S2 === m2 || s2 === D2 || S2 + g2 / 2 === m2 + C2 / 2)), S2 = r2 ? "top" : "left", g2 = R(l2, "top", "top") || R(q, "top", "top"), m2 = g2 ? g2.scrollTop : void 0; 19139 if (gt !== l2 && (b2 = w2[S2], Dt = false, St = !D2 && e2.invertSwap || E2), 0 !== (v2 = function(t3, e3, n3, o3, i4, r3, a3, l3) { 19140 var s3 = o3 ? t3.clientY : t3.clientX, c3 = o3 ? n3.height : n3.width, t3 = o3 ? n3.top : n3.left, o3 = o3 ? n3.bottom : n3.right, n3 = false; 19141 if (!a3) { 19142 if (l3 && vt < c3 * i4) { 19143 if (Dt = !Dt && (1 === mt ? t3 + c3 * r3 / 2 < s3 : s3 < o3 - c3 * r3 / 2) ? true : Dt) 19144 n3 = true; 19145 else if (1 === mt ? s3 < t3 + vt : o3 - vt < s3) 19146 return -mt; 19147 } else if (t3 + c3 * (1 - i4) / 2 < s3 && s3 < o3 - c3 * (1 - i4) / 2) 19148 return function(t4) { 19149 return B(q) < B(t4) ? 1 : -1; 19150 }(e3); 19151 } 19152 if ((n3 = n3 || a3) && (s3 < t3 + c3 * r3 / 2 || o3 - c3 * r3 / 2 < s3)) 19153 return t3 + c3 / 2 < s3 ? 1 : -1; 19154 return 0; 19155 }(n2, l2, w2, r2, D2 ? 1 : e2.swapThreshold, null == e2.invertedSwapThreshold ? e2.swapThreshold : e2.invertedSwapThreshold, St, gt === l2))) 19156 for (var _2 = B(q); (y2 = V.children[_2 -= v2]) && ("none" === P(y2, "display") || y2 === Z); ) 19157 ; 19158 if (0 === v2 || y2 === l2) 19159 return O2(false); 19160 mt = v2; 19161 var C2 = (gt = l2).nextElementSibling, E2 = false, D2 = Ft($2, a2, q, o2, l2, w2, n2, E2 = 1 === v2); 19162 if (false !== D2) 19163 return 1 !== D2 && -1 !== D2 || (E2 = 1 === D2), Ct = true, setTimeout(Ht, 30), x2(), E2 && !C2 ? a2.appendChild(q) : l2.parentNode.insertBefore(q, E2 ? C2 : l2), g2 && F(g2, 0, m2 - g2.scrollTop), V = q.parentNode, void 0 === b2 || St || (vt = Math.abs(b2 - k(l2)[S2])), A2(), O2(true); 19164 } 19165 if (a2.contains(q)) 19166 return O2(false); 19167 } 19168 return false; 19169 } 19170 function T2(t3, e3) { 19171 z(t3, f2, M({ evt: n2, isOwner: u2, axis: r2 ? "vertical" : "horizontal", revert: i3, dragRect: o2, targetRect: w2, canSort: d2, fromSortable: h2, target: l2, completed: O2, onMove: function(t4, e4) { 19172 return Ft($2, a2, q, o2, t4, k(t4), n2, e4); 19173 }, changed: A2 }, e3)); 19174 } 19175 function x2() { 19176 T2("dragOverAnimationCapture"), f2.captureAnimationState(), f2 !== h2 && h2.captureAnimationState(); 19177 } 19178 function O2(t3) { 19179 return T2("dragOverCompleted", { insertion: t3 }), t3 && (u2 ? c2._hideClone() : c2._showClone(f2), f2 !== h2 && (I(q, (lt || c2).options.ghostClass, false), I(q, e2.ghostClass, true)), lt !== f2 && f2 !== Bt.active ? lt = f2 : f2 === Bt.active && lt && (lt = null), h2 === f2 && (f2._ignoreWhileAnimating = l2), f2.animateAll(function() { 19180 T2("dragOverAnimationComplete"), f2._ignoreWhileAnimating = null; 19181 }), f2 !== h2 && (h2.animateAll(), h2._ignoreWhileAnimating = null)), (l2 === q && !q.animated || l2 === a2 && !l2.animated) && (gt = null), e2.dragoverBubble || n2.rootEl || l2 === document || (q.parentNode[j]._isOutsideThisEl(n2.target), t3 || Xt(n2)), !e2.dragoverBubble && n2.stopPropagation && n2.stopPropagation(), p2 = true; 19182 } 19183 function A2() { 19184 ot = B(q), rt = B(q, e2.draggable), U({ sortable: f2, name: "change", toEl: a2, newIndex: ot, newDraggableIndex: rt, originalEvent: n2 }); 19185 } 19186 }, _ignoreWhileAnimating: null, _offMoveEvents: function() { 19187 f(document, "mousemove", this._onTouchMove), f(document, "touchmove", this._onTouchMove), f(document, "pointermove", this._onTouchMove), f(document, "dragover", Xt), f(document, "mousemove", Xt), f(document, "touchmove", Xt); 19188 }, _offUpEvents: function() { 19189 var t2 = this.el.ownerDocument; 19190 f(t2, "mouseup", this._onDrop), f(t2, "touchend", this._onDrop), f(t2, "pointerup", this._onDrop), f(t2, "touchcancel", this._onDrop), f(document, "selectstart", this); 19191 }, _onDrop: function(t2) { 19192 var e2 = this.el, n2 = this.options; 19193 ot = B(q), rt = B(q, n2.draggable), z("drop", this, { evt: t2 }), V = q && q.parentNode, ot = B(q), rt = B(q, n2.draggable), Bt.eventCanceled || (Dt = St = yt = false, clearInterval(this._loopId), clearTimeout(this._dragStartTimer), Kt(this.cloneId), Kt(this._dragStartId), this.nativeDraggable && (f(document, "drop", this), f(e2, "dragstart", this._onDragStart)), this._offMoveEvents(), this._offUpEvents(), u && P(document.body, "user-select", ""), P(q, "transform", ""), t2 && (pt && (t2.cancelable && t2.preventDefault(), n2.dropBubble || t2.stopPropagation()), Z && Z.parentNode && Z.parentNode.removeChild(Z), ($2 === V || lt && "clone" !== lt.lastPutMode) && tt && tt.parentNode && tt.parentNode.removeChild(tt), q && (this.nativeDraggable && f(q, "dragend", this), jt(q), q.style["will-change"] = "", pt && !yt && I(q, (lt || this).options.ghostClass, false), I(q, this.options.chosenClass, false), U({ sortable: this, name: "unchoose", toEl: V, newIndex: null, newDraggableIndex: null, originalEvent: t2 }), $2 !== V ? (0 <= ot && (U({ rootEl: V, name: "add", toEl: V, fromEl: $2, originalEvent: t2 }), U({ sortable: this, name: "remove", toEl: V, originalEvent: t2 }), U({ rootEl: V, name: "sort", toEl: V, fromEl: $2, originalEvent: t2 }), U({ sortable: this, name: "sort", toEl: V, originalEvent: t2 })), lt && lt.save()) : ot !== nt && 0 <= ot && (U({ sortable: this, name: "update", toEl: V, originalEvent: t2 }), U({ sortable: this, name: "sort", toEl: V, originalEvent: t2 })), Bt.active && (null != ot && -1 !== ot || (ot = nt, rt = it), U({ sortable: this, name: "end", toEl: V, originalEvent: t2 }), this.save())))), this._nulling(); 19194 }, _nulling: function() { 19195 z("nulling", this), $2 = q = V = Z = Q = tt = J = et = st = ct = pt = ot = rt = nt = it = gt = mt = lt = at = Bt.dragged = Bt.ghost = Bt.clone = Bt.active = null, Tt.forEach(function(t2) { 19196 t2.checked = true; 19197 }), Tt.length = ut = dt = 0; 19198 }, handleEvent: function(t2) { 19199 switch (t2.type) { 19200 case "drop": 19201 case "dragend": 19202 this._onDrop(t2); 19203 break; 19204 case "dragenter": 19205 case "dragover": 19206 q && (this._onDragOver(t2), function(t3) { 19207 t3.dataTransfer && (t3.dataTransfer.dropEffect = "move"); 19208 t3.cancelable && t3.preventDefault(); 19209 }(t2)); 19210 break; 19211 case "selectstart": 19212 t2.preventDefault(); 19213 } 19214 }, toArray: function() { 19215 for (var t2, e2 = [], n2 = this.el.children, o2 = 0, i3 = n2.length, r2 = this.options; o2 < i3; o2++) 19216 N(t2 = n2[o2], r2.draggable, this.el, false) && e2.push(t2.getAttribute(r2.dataIdAttr) || function(t3) { 19217 var e3 = t3.tagName + t3.className + t3.src + t3.href + t3.textContent, n3 = e3.length, o3 = 0; 19218 for (; n3--; ) 19219 o3 += e3.charCodeAt(n3); 19220 return o3.toString(36); 19221 }(t2)); 19222 return e2; 19223 }, sort: function(t2, e2) { 19224 var n2 = {}, o2 = this.el; 19225 this.toArray().forEach(function(t3, e3) { 19226 e3 = o2.children[e3]; 19227 N(e3, this.options.draggable, o2, false) && (n2[t3] = e3); 19228 }, this), e2 && this.captureAnimationState(), t2.forEach(function(t3) { 19229 n2[t3] && (o2.removeChild(n2[t3]), o2.appendChild(n2[t3])); 19230 }), e2 && this.animateAll(); 19231 }, save: function() { 19232 var t2 = this.options.store; 19233 t2 && t2.set && t2.set(this); 19234 }, closest: function(t2, e2) { 19235 return N(t2, e2 || this.options.draggable, this.el, false); 19236 }, option: function(t2, e2) { 19237 var n2 = this.options; 19238 if (void 0 === e2) 19239 return n2[t2]; 19240 var o2 = K.modifyOption(this, t2, e2); 19241 n2[t2] = void 0 !== o2 ? o2 : e2, "group" === t2 && Pt(n2); 19242 }, destroy: function() { 19243 z("destroy", this); 19244 var t2 = this.el; 19245 t2[j] = null, f(t2, "mousedown", this._onTapStart), f(t2, "touchstart", this._onTapStart), f(t2, "pointerdown", this._onTapStart), this.nativeDraggable && (f(t2, "dragover", this), f(t2, "dragenter", this)), Array.prototype.forEach.call(t2.querySelectorAll("[draggable]"), function(t3) { 19246 t3.removeAttribute("draggable"); 19247 }), this._onDrop(), this._disableDelayedDragEvents(), Et.splice(Et.indexOf(this.el), 1), this.el = t2 = null; 19248 }, _hideClone: function() { 19249 et || (z("hideClone", this), Bt.eventCanceled || (P(tt, "display", "none"), this.options.removeCloneOnHide && tt.parentNode && tt.parentNode.removeChild(tt), et = true)); 19250 }, _showClone: function(t2) { 19251 "clone" === t2.lastPutMode ? et && (z("showClone", this), Bt.eventCanceled || (q.parentNode != $2 || this.options.group.revertClone ? Q ? $2.insertBefore(tt, Q) : $2.appendChild(tt) : $2.insertBefore(tt, q), this.options.group.revertClone && this.animate(q, tt), P(tt, "display", ""), et = false)) : this._hideClone(); 19252 } }, xt && h(document, "touchmove", function(t2) { 19253 (Bt.active || yt) && t2.cancelable && t2.preventDefault(); 19254 }), Bt.utils = { on: h, off: f, css: P, find: b, is: function(t2, e2) { 19255 return !!N(t2, e2, t2, false); 19256 }, extend: function(t2, e2) { 19257 if (t2 && e2) 19258 for (var n2 in e2) 19259 e2.hasOwnProperty(n2) && (t2[n2] = e2[n2]); 19260 return t2; 19261 }, throttle: S, closest: N, toggleClass: I, clone: _, index: B, nextTick: Lt, cancelNextTick: Kt, detectDirection: It, getChild: X }, Bt.get = function(t2) { 19262 return t2[j]; 19263 }, Bt.mount = function() { 19264 for (var t2 = arguments.length, e2 = new Array(t2), n2 = 0; n2 < t2; n2++) 19265 e2[n2] = arguments[n2]; 19266 (e2 = e2[0].constructor === Array ? e2[0] : e2).forEach(function(t3) { 19267 if (!t3.prototype || !t3.prototype.constructor) 19268 throw "Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(t3)); 19269 t3.utils && (Bt.utils = M(M({}, Bt.utils), t3.utils)), K.mount(t3); 19270 }); 19271 }, Bt.create = function(t2, e2) { 19272 return new Bt(t2, e2); 19273 }; 19274 var Wt, zt, Gt, Ut, qt, Vt, Zt = [], $t = !(Bt.version = "1.15.0"); 19275 function Qt() { 19276 Zt.forEach(function(t2) { 19277 clearInterval(t2.pid); 19278 }), Zt = []; 19279 } 19280 function Jt() { 19281 clearInterval(Vt); 19282 } 19283 var te, ee = S(function(n2, t2, e2, o2) { 19284 if (t2.scroll) { 19285 var i3, r2 = (n2.touches ? n2.touches[0] : n2).clientX, a2 = (n2.touches ? n2.touches[0] : n2).clientY, l2 = t2.scrollSensitivity, s2 = t2.scrollSpeed, c2 = O(), u2 = false; 19286 zt !== e2 && (zt = e2, Qt(), Wt = t2.scroll, i3 = t2.scrollFn, true === Wt && (Wt = A(e2, true))); 19287 var d2 = 0, h2 = Wt; 19288 do { 19289 var f2 = h2, p2 = k(f2), g2 = p2.top, m2 = p2.bottom, v2 = p2.left, b2 = p2.right, y2 = p2.width, w2 = p2.height, E2 = void 0, D2 = void 0, S2 = f2.scrollWidth, _2 = f2.scrollHeight, C2 = P(f2), T2 = f2.scrollLeft, p2 = f2.scrollTop, D2 = f2 === c2 ? (E2 = y2 < S2 && ("auto" === C2.overflowX || "scroll" === C2.overflowX || "visible" === C2.overflowX), w2 < _2 && ("auto" === C2.overflowY || "scroll" === C2.overflowY || "visible" === C2.overflowY)) : (E2 = y2 < S2 && ("auto" === C2.overflowX || "scroll" === C2.overflowX), w2 < _2 && ("auto" === C2.overflowY || "scroll" === C2.overflowY)), T2 = E2 && (Math.abs(b2 - r2) <= l2 && T2 + y2 < S2) - (Math.abs(v2 - r2) <= l2 && !!T2), p2 = D2 && (Math.abs(m2 - a2) <= l2 && p2 + w2 < _2) - (Math.abs(g2 - a2) <= l2 && !!p2); 19290 if (!Zt[d2]) 19291 for (var x2 = 0; x2 <= d2; x2++) 19292 Zt[x2] || (Zt[x2] = {}); 19293 Zt[d2].vx == T2 && Zt[d2].vy == p2 && Zt[d2].el === f2 || (Zt[d2].el = f2, Zt[d2].vx = T2, Zt[d2].vy = p2, clearInterval(Zt[d2].pid), 0 == T2 && 0 == p2 || (u2 = true, Zt[d2].pid = setInterval(function() { 19294 o2 && 0 === this.layer && Bt.active._onTouchMove(qt); 19295 var t3 = Zt[this.layer].vy ? Zt[this.layer].vy * s2 : 0, e3 = Zt[this.layer].vx ? Zt[this.layer].vx * s2 : 0; 19296 "function" == typeof i3 && "continue" !== i3.call(Bt.dragged.parentNode[j], e3, t3, n2, qt, Zt[this.layer].el) || F(Zt[this.layer].el, e3, t3); 19297 }.bind({ layer: d2 }), 24))), d2++; 19298 } while (t2.bubbleScroll && h2 !== c2 && (h2 = A(h2, false))); 19299 $t = u2; 19300 } 19301 }, 30), c = function(t2) { 19302 var e2 = t2.originalEvent, n2 = t2.putSortable, o2 = t2.dragEl, i3 = t2.activeSortable, r2 = t2.dispatchSortableEvent, a2 = t2.hideGhostForTarget, t2 = t2.unhideGhostForTarget; 19303 e2 && (i3 = n2 || i3, a2(), e2 = e2.changedTouches && e2.changedTouches.length ? e2.changedTouches[0] : e2, e2 = document.elementFromPoint(e2.clientX, e2.clientY), t2(), i3 && !i3.el.contains(e2) && (r2("spill"), this.onSpill({ dragEl: o2, putSortable: n2 }))); 19304 }; 19305 function ne() { 19306 } 19307 function oe() { 19308 } 19309 ne.prototype = { startIndex: null, dragStart: function(t2) { 19310 t2 = t2.oldDraggableIndex; 19311 this.startIndex = t2; 19312 }, onSpill: function(t2) { 19313 var e2 = t2.dragEl, n2 = t2.putSortable; 19314 this.sortable.captureAnimationState(), n2 && n2.captureAnimationState(); 19315 t2 = X(this.sortable.el, this.startIndex, this.options); 19316 t2 ? this.sortable.el.insertBefore(e2, t2) : this.sortable.el.appendChild(e2), this.sortable.animateAll(), n2 && n2.animateAll(); 19317 }, drop: c }, a(ne, { pluginName: "revertOnSpill" }), oe.prototype = { onSpill: function(t2) { 19318 var e2 = t2.dragEl, t2 = t2.putSortable || this.sortable; 19319 t2.captureAnimationState(), e2.parentNode && e2.parentNode.removeChild(e2), t2.animateAll(); 19320 }, drop: c }, a(oe, { pluginName: "removeOnSpill" }); 19321 var ie, re2, ae, le, se, ce = [], ue = [], de = false, he = false, fe = false; 19322 function pe(n2, o2) { 19323 ue.forEach(function(t2, e2) { 19324 e2 = o2.children[t2.sortableIndex + (n2 ? Number(e2) : 0)]; 19325 e2 ? o2.insertBefore(t2, e2) : o2.appendChild(t2); 19326 }); 19327 } 19328 function ge() { 19329 ce.forEach(function(t2) { 19330 t2 !== ae && t2.parentNode && t2.parentNode.removeChild(t2); 19331 }); 19332 } 19333 return Bt.mount(new function() { 19334 function t2() { 19335 for (var t3 in this.defaults = { scroll: true, forceAutoScrollFallback: false, scrollSensitivity: 30, scrollSpeed: 10, bubbleScroll: true }, this) 19336 "_" === t3.charAt(0) && "function" == typeof this[t3] && (this[t3] = this[t3].bind(this)); 19337 } 19338 return t2.prototype = { dragStarted: function(t3) { 19339 t3 = t3.originalEvent; 19340 this.sortable.nativeDraggable ? h(document, "dragover", this._handleAutoScroll) : this.options.supportPointer ? h(document, "pointermove", this._handleFallbackAutoScroll) : t3.touches ? h(document, "touchmove", this._handleFallbackAutoScroll) : h(document, "mousemove", this._handleFallbackAutoScroll); 19341 }, dragOverCompleted: function(t3) { 19342 t3 = t3.originalEvent; 19343 this.options.dragOverBubble || t3.rootEl || this._handleAutoScroll(t3); 19344 }, drop: function() { 19345 this.sortable.nativeDraggable ? f(document, "dragover", this._handleAutoScroll) : (f(document, "pointermove", this._handleFallbackAutoScroll), f(document, "touchmove", this._handleFallbackAutoScroll), f(document, "mousemove", this._handleFallbackAutoScroll)), Jt(), Qt(), clearTimeout(g), g = void 0; 19346 }, nulling: function() { 19347 qt = zt = Wt = $t = Vt = Gt = Ut = null, Zt.length = 0; 19348 }, _handleFallbackAutoScroll: function(t3) { 19349 this._handleAutoScroll(t3, true); 19350 }, _handleAutoScroll: function(e2, n2) { 19351 var o2, i3 = this, r2 = (e2.touches ? e2.touches[0] : e2).clientX, a2 = (e2.touches ? e2.touches[0] : e2).clientY, t3 = document.elementFromPoint(r2, a2); 19352 qt = e2, n2 || this.options.forceAutoScrollFallback || w || y || u ? (ee(e2, this.options, t3, n2), o2 = A(t3, true), !$t || Vt && r2 === Gt && a2 === Ut || (Vt && Jt(), Vt = setInterval(function() { 19353 var t4 = A(document.elementFromPoint(r2, a2), true); 19354 t4 !== o2 && (o2 = t4, Qt()), ee(e2, i3.options, t4, n2); 19355 }, 10), Gt = r2, Ut = a2)) : this.options.bubbleScroll && A(t3, true) !== O() ? ee(e2, this.options, A(t3, false), false) : Qt(); 19356 } }, a(t2, { pluginName: "scroll", initializeByDefault: true }); 19357 }()), Bt.mount(oe, ne), Bt.mount(new function() { 19358 function t2() { 19359 this.defaults = { swapClass: "sortable-swap-highlight" }; 19360 } 19361 return t2.prototype = { dragStart: function(t3) { 19362 t3 = t3.dragEl; 19363 te = t3; 19364 }, dragOverValid: function(t3) { 19365 var e2 = t3.completed, n2 = t3.target, o2 = t3.onMove, i3 = t3.activeSortable, r2 = t3.changed, a2 = t3.cancel; 19366 i3.options.swap && (t3 = this.sortable.el, i3 = this.options, n2 && n2 !== t3 && (t3 = te, te = false !== o2(n2) ? (I(n2, i3.swapClass, true), n2) : null, t3 && t3 !== te && I(t3, i3.swapClass, false)), r2(), e2(true), a2()); 19367 }, drop: function(t3) { 19368 var e2, n2, o2 = t3.activeSortable, i3 = t3.putSortable, r2 = t3.dragEl, a2 = i3 || this.sortable, l2 = this.options; 19369 te && I(te, l2.swapClass, false), te && (l2.swap || i3 && i3.options.swap) && r2 !== te && (a2.captureAnimationState(), a2 !== o2 && o2.captureAnimationState(), n2 = te, t3 = (e2 = r2).parentNode, l2 = n2.parentNode, t3 && l2 && !t3.isEqualNode(n2) && !l2.isEqualNode(e2) && (i3 = B(e2), r2 = B(n2), t3.isEqualNode(l2) && i3 < r2 && r2++, t3.insertBefore(n2, t3.children[i3]), l2.insertBefore(e2, l2.children[r2])), a2.animateAll(), a2 !== o2 && o2.animateAll()); 19370 }, nulling: function() { 19371 te = null; 19372 } }, a(t2, { pluginName: "swap", eventProperties: function() { 19373 return { swapItem: te }; 19374 } }); 19375 }()), Bt.mount(new function() { 19376 function t2(o2) { 19377 for (var t3 in this) 19378 "_" === t3.charAt(0) && "function" == typeof this[t3] && (this[t3] = this[t3].bind(this)); 19379 o2.options.avoidImplicitDeselect || (o2.options.supportPointer ? h(document, "pointerup", this._deselectMultiDrag) : (h(document, "mouseup", this._deselectMultiDrag), h(document, "touchend", this._deselectMultiDrag))), h(document, "keydown", this._checkKeyDown), h(document, "keyup", this._checkKeyUp), this.defaults = { selectedClass: "sortable-selected", multiDragKey: null, avoidImplicitDeselect: false, setData: function(t4, e2) { 19380 var n2 = ""; 19381 ce.length && re2 === o2 ? ce.forEach(function(t5, e3) { 19382 n2 += (e3 ? ", " : "") + t5.textContent; 19383 }) : n2 = e2.textContent, t4.setData("Text", n2); 19384 } }; 19385 } 19386 return t2.prototype = { multiDragKeyDown: false, isMultiDrag: false, delayStartGlobal: function(t3) { 19387 t3 = t3.dragEl; 19388 ae = t3; 19389 }, delayEnded: function() { 19390 this.isMultiDrag = ~ce.indexOf(ae); 19391 }, setupClone: function(t3) { 19392 var e2 = t3.sortable, t3 = t3.cancel; 19393 if (this.isMultiDrag) { 19394 for (var n2 = 0; n2 < ce.length; n2++) 19395 ue.push(_(ce[n2])), ue[n2].sortableIndex = ce[n2].sortableIndex, ue[n2].draggable = false, ue[n2].style["will-change"] = "", I(ue[n2], this.options.selectedClass, false), ce[n2] === ae && I(ue[n2], this.options.chosenClass, false); 19396 e2._hideClone(), t3(); 19397 } 19398 }, clone: function(t3) { 19399 var e2 = t3.sortable, n2 = t3.rootEl, o2 = t3.dispatchSortableEvent, t3 = t3.cancel; 19400 this.isMultiDrag && (this.options.removeCloneOnHide || ce.length && re2 === e2 && (pe(true, n2), o2("clone"), t3())); 19401 }, showClone: function(t3) { 19402 var e2 = t3.cloneNowShown, n2 = t3.rootEl, t3 = t3.cancel; 19403 this.isMultiDrag && (pe(false, n2), ue.forEach(function(t4) { 19404 P(t4, "display", ""); 19405 }), e2(), se = false, t3()); 19406 }, hideClone: function(t3) { 19407 var e2 = this, n2 = (t3.sortable, t3.cloneNowHidden), t3 = t3.cancel; 19408 this.isMultiDrag && (ue.forEach(function(t4) { 19409 P(t4, "display", "none"), e2.options.removeCloneOnHide && t4.parentNode && t4.parentNode.removeChild(t4); 19410 }), n2(), se = true, t3()); 19411 }, dragStartGlobal: function(t3) { 19412 t3.sortable; 19413 !this.isMultiDrag && re2 && re2.multiDrag._deselectMultiDrag(), ce.forEach(function(t4) { 19414 t4.sortableIndex = B(t4); 19415 }), ce = ce.sort(function(t4, e2) { 19416 return t4.sortableIndex - e2.sortableIndex; 19417 }), fe = true; 19418 }, dragStarted: function(t3) { 19419 var e2, n2 = this, t3 = t3.sortable; 19420 this.isMultiDrag && (this.options.sort && (t3.captureAnimationState(), this.options.animation && (ce.forEach(function(t4) { 19421 t4 !== ae && P(t4, "position", "absolute"); 19422 }), e2 = k(ae, false, true, true), ce.forEach(function(t4) { 19423 t4 !== ae && C(t4, e2); 19424 }), de = he = true)), t3.animateAll(function() { 19425 de = he = false, n2.options.animation && ce.forEach(function(t4) { 19426 T(t4); 19427 }), n2.options.sort && ge(); 19428 })); 19429 }, dragOver: function(t3) { 19430 var e2 = t3.target, n2 = t3.completed, t3 = t3.cancel; 19431 he && ~ce.indexOf(e2) && (n2(false), t3()); 19432 }, revert: function(t3) { 19433 var n2, o2, e2 = t3.fromSortable, i3 = t3.rootEl, r2 = t3.sortable, a2 = t3.dragRect; 19434 1 < ce.length && (ce.forEach(function(t4) { 19435 r2.addAnimationState({ target: t4, rect: he ? k(t4) : a2 }), T(t4), t4.fromRect = a2, e2.removeAnimationState(t4); 19436 }), he = false, n2 = !this.options.removeCloneOnHide, o2 = i3, ce.forEach(function(t4, e3) { 19437 e3 = o2.children[t4.sortableIndex + (n2 ? Number(e3) : 0)]; 19438 e3 ? o2.insertBefore(t4, e3) : o2.appendChild(t4); 19439 })); 19440 }, dragOverCompleted: function(t3) { 19441 var e2, n2 = t3.sortable, o2 = t3.isOwner, i3 = t3.insertion, r2 = t3.activeSortable, a2 = t3.parentEl, l2 = t3.putSortable, t3 = this.options; 19442 i3 && (o2 && r2._hideClone(), de = false, t3.animation && 1 < ce.length && (he || !o2 && !r2.options.sort && !l2) && (e2 = k(ae, false, true, true), ce.forEach(function(t4) { 19443 t4 !== ae && (C(t4, e2), a2.appendChild(t4)); 19444 }), he = true), o2 || (he || ge(), 1 < ce.length ? (o2 = se, r2._showClone(n2), r2.options.animation && !se && o2 && ue.forEach(function(t4) { 19445 r2.addAnimationState({ target: t4, rect: le }), t4.fromRect = le, t4.thisAnimationDuration = null; 19446 })) : r2._showClone(n2))); 19447 }, dragOverAnimationCapture: function(t3) { 19448 var e2 = t3.dragRect, n2 = t3.isOwner, t3 = t3.activeSortable; 19449 ce.forEach(function(t4) { 19450 t4.thisAnimationDuration = null; 19451 }), t3.options.animation && !n2 && t3.multiDrag.isMultiDrag && (le = a({}, e2), e2 = v(ae, true), le.top -= e2.f, le.left -= e2.e); 19452 }, dragOverAnimationComplete: function() { 19453 he && (he = false, ge()); 19454 }, drop: function(t3) { 19455 var e2 = t3.originalEvent, n2 = t3.rootEl, o2 = t3.parentEl, i3 = t3.sortable, r2 = t3.dispatchSortableEvent, a2 = t3.oldIndex, l2 = t3.putSortable, s2 = l2 || this.sortable; 19456 if (e2) { 19457 var c2, u2, d2, h2 = this.options, f2 = o2.children; 19458 if (!fe) 19459 if (h2.multiDragKey && !this.multiDragKeyDown && this._deselectMultiDrag(), I(ae, h2.selectedClass, !~ce.indexOf(ae)), ~ce.indexOf(ae)) 19460 ce.splice(ce.indexOf(ae), 1), ie = null, W({ sortable: i3, rootEl: n2, name: "deselect", targetEl: ae, originalEvent: e2 }); 19461 else { 19462 if (ce.push(ae), W({ sortable: i3, rootEl: n2, name: "select", targetEl: ae, originalEvent: e2 }), e2.shiftKey && ie && i3.el.contains(ie)) { 19463 var p2 = B(ie), t3 = B(ae); 19464 if (~p2 && ~t3 && p2 !== t3) 19465 for (var g2, m2 = p2 < t3 ? (g2 = p2, t3) : (g2 = t3, p2 + 1); g2 < m2; g2++) 19466 ~ce.indexOf(f2[g2]) || (I(f2[g2], h2.selectedClass, true), ce.push(f2[g2]), W({ sortable: i3, rootEl: n2, name: "select", targetEl: f2[g2], originalEvent: e2 })); 19467 } else 19468 ie = ae; 19469 re2 = s2; 19470 } 19471 fe && this.isMultiDrag && (he = false, (o2[j].options.sort || o2 !== n2) && 1 < ce.length && (c2 = k(ae), u2 = B(ae, ":not(." + this.options.selectedClass + ")"), !de && h2.animation && (ae.thisAnimationDuration = null), s2.captureAnimationState(), de || (h2.animation && (ae.fromRect = c2, ce.forEach(function(t4) { 19472 var e3; 19473 t4.thisAnimationDuration = null, t4 !== ae && (e3 = he ? k(t4) : c2, t4.fromRect = e3, s2.addAnimationState({ target: t4, rect: e3 })); 19474 })), ge(), ce.forEach(function(t4) { 19475 f2[u2] ? o2.insertBefore(t4, f2[u2]) : o2.appendChild(t4), u2++; 19476 }), a2 === B(ae) && (d2 = false, ce.forEach(function(t4) { 19477 t4.sortableIndex !== B(t4) && (d2 = true); 19478 }), d2 && r2("update"))), ce.forEach(function(t4) { 19479 T(t4); 19480 }), s2.animateAll()), re2 = s2), (n2 === o2 || l2 && "clone" !== l2.lastPutMode) && ue.forEach(function(t4) { 19481 t4.parentNode && t4.parentNode.removeChild(t4); 19482 }); 19483 } 19484 }, nullingGlobal: function() { 19485 this.isMultiDrag = fe = false, ue.length = 0; 19486 }, destroyGlobal: function() { 19487 this._deselectMultiDrag(), f(document, "pointerup", this._deselectMultiDrag), f(document, "mouseup", this._deselectMultiDrag), f(document, "touchend", this._deselectMultiDrag), f(document, "keydown", this._checkKeyDown), f(document, "keyup", this._checkKeyUp); 19488 }, _deselectMultiDrag: function(t3) { 19489 if (!(void 0 !== fe && fe || re2 !== this.sortable || t3 && N(t3.target, this.options.draggable, this.sortable.el, false) || t3 && 0 !== t3.button)) 19490 for (; ce.length; ) { 19491 var e2 = ce[0]; 19492 I(e2, this.options.selectedClass, false), ce.shift(), W({ sortable: this.sortable, rootEl: this.sortable.el, name: "deselect", targetEl: e2, originalEvent: t3 }); 19493 } 19494 }, _checkKeyDown: function(t3) { 19495 t3.key === this.options.multiDragKey && (this.multiDragKeyDown = true); 19496 }, _checkKeyUp: function(t3) { 19497 t3.key === this.options.multiDragKey && (this.multiDragKeyDown = false); 19498 } }, a(t2, { pluginName: "multiDrag", utils: { select: function(t3) { 19499 var e2 = t3.parentNode[j]; 19500 e2 && e2.options.multiDrag && !~ce.indexOf(t3) && (re2 && re2 !== e2 && (re2.multiDrag._deselectMultiDrag(), re2 = e2), I(t3, e2.options.selectedClass, true), ce.push(t3)); 19501 }, deselect: function(t3) { 19502 var e2 = t3.parentNode[j], n2 = ce.indexOf(t3); 19503 e2 && e2.options.multiDrag && ~n2 && (I(t3, e2.options.selectedClass, false), ce.splice(n2, 1)); 19504 } }, eventProperties: function() { 19505 var n2 = this, o2 = [], i3 = []; 19506 return ce.forEach(function(t3) { 19507 var e2; 19508 o2.push({ multiDragElement: t3, index: t3.sortableIndex }), e2 = he && t3 !== ae ? -1 : he ? B(t3, ":not(." + n2.options.selectedClass + ")") : B(t3), i3.push({ multiDragElement: t3, index: e2 }); 19509 }), { items: r(ce), clones: [].concat(ue), oldIndicies: o2, newIndicies: i3 }; 19510 }, optionListeners: { multiDragKey: function(t3) { 19511 return "ctrl" === (t3 = t3.toLowerCase()) ? t3 = "Control" : 1 < t3.length && (t3 = t3.charAt(0).toUpperCase() + t3.substr(1)), t3; 19512 } } }); 19513 }()), Bt; 19514 }); 19515 } 19516 }); 19517 19518
vendor: 1,770 bytes, lines 19518-19570
19518// node_modules/fast-deep-equal/index.js 19519 var require_fast_deep_equal = __commonJS({ 19520 "node_modules/fast-deep-equal/index.js"(exports, module) { 19521 "use strict"; 19522 var isArray = Array.isArray; 19523 var keyList = Object.keys; 19524 var hasProp = Object.prototype.hasOwnProperty; 19525 module.exports = function equal(a, b) { 19526 if (a === b) 19527 return true; 19528 if (a && b && typeof a == "object" && typeof b == "object") { 19529 var arrA = isArray(a), arrB = isArray(b), i2, length2, key; 19530 if (arrA && arrB) { 19531 length2 = a.length; 19532 if (length2 != b.length) 19533 return false; 19534 for (i2 = length2; i2-- !== 0; ) 19535 if (!equal(a[i2], b[i2])) 19536 return false; 19537 return true; 19538 } 19539 if (arrA != arrB) 19540 return false; 19541 var dateA = a instanceof Date, dateB = b instanceof Date; 19542 if (dateA != dateB) 19543 return false; 19544 if (dateA && dateB) 19545 return a.getTime() == b.getTime(); 19546 var regexpA = a instanceof RegExp, regexpB = b instanceof RegExp; 19547 if (regexpA != regexpB) 19548 return false; 19549 if (regexpA && regexpB) 19550 return a.toString() == b.toString(); 19551 var keys = keyList(a); 19552 length2 = keys.length; 19553 if (length2 !== keyList(b).length) 19554 return false; 19555 for (i2 = length2; i2-- !== 0; ) 19556 if (!hasProp.call(b, keys[i2])) 19557 return false; 19558 for (i2 = length2; i2-- !== 0; ) { 19559 key = keys[i2]; 19560 if (!equal(a[key], b[key])) 19561 return false; 19562 } 19563 return true; 19564 } 19565 return a !== a && b !== b; 19566 }; 19567 } 19568 }); 19569 19570
vendor: 297 bytes, lines 19570-19581
19570// node_modules/lodash/_listCacheClear.js 19571 var require_listCacheClear = __commonJS({ 19572 "node_modules/lodash/_listCacheClear.js"(exports, module) { 19573 function listCacheClear() { 19574 this.__data__ = []; 19575 this.size = 0; 19576 } 19577 module.exports = listCacheClear; 19578 } 19579 }); 19580 19581
vendor: 270 bytes, lines 19581-19591
19581// node_modules/lodash/eq.js 19582 var require_eq = __commonJS({ 19583 "node_modules/lodash/eq.js"(exports, module) { 19584 function eq(value2, other) { 19585 return value2 === other || value2 !== value2 && other !== other; 19586 } 19587 module.exports = eq; 19588 } 19589 }); 19590 19591
vendor: 452 bytes, lines 19591-19608
19591// node_modules/lodash/_assocIndexOf.js 19592 var require_assocIndexOf = __commonJS({ 19593 "node_modules/lodash/_assocIndexOf.js"(exports, module) { 19594 var eq = require_eq(); 19595 function assocIndexOf(array, key) { 19596 var length2 = array.length; 19597 while (length2--) { 19598 if (eq(array[length2][0], key)) { 19599 return length2; 19600 } 19601 } 19602 return -1; 19603 } 19604 module.exports = assocIndexOf; 19605 } 19606 }); 19607 19608
vendor: 712 bytes, lines 19608-19632
19608// node_modules/lodash/_listCacheDelete.js 19609 var require_listCacheDelete = __commonJS({ 19610 "node_modules/lodash/_listCacheDelete.js"(exports, module) { 19611 var assocIndexOf = require_assocIndexOf(); 19612 var arrayProto = Array.prototype; 19613 var splice = arrayProto.splice; 19614 function listCacheDelete(key) { 19615 var data = this.__data__, index = assocIndexOf(data, key); 19616 if (index < 0) { 19617 return false; 19618 } 19619 var lastIndex = data.length - 1; 19620 if (index == lastIndex) { 19621 data.pop(); 19622 } else { 19623 splice.call(data, index, 1); 19624 } 19625 --this.size; 19626 return true; 19627 } 19628 module.exports = listCacheDelete; 19629 } 19630 }); 19631 19632
vendor: 407 bytes, lines 19632-19644
19632// node_modules/lodash/_listCacheGet.js 19633 var require_listCacheGet = __commonJS({ 19634 "node_modules/lodash/_listCacheGet.js"(exports, module) { 19635 var assocIndexOf = require_assocIndexOf(); 19636 function listCacheGet(key) { 19637 var data = this.__data__, index = assocIndexOf(data, key); 19638 return index < 0 ? void 0 : data[index][1]; 19639 } 19640 module.exports = listCacheGet; 19641 } 19642 }); 19643 19644
vendor: 342 bytes, lines 19644-19655
19644// node_modules/lodash/_listCacheHas.js 19645 var require_listCacheHas = __commonJS({ 19646 "node_modules/lodash/_listCacheHas.js"(exports, module) { 19647 var assocIndexOf = require_assocIndexOf(); 19648 function listCacheHas(key) { 19649 return assocIndexOf(this.__data__, key) > -1; 19650 } 19651 module.exports = listCacheHas; 19652 } 19653 }); 19654 19655
vendor: 530 bytes, lines 19655-19673
19655// node_modules/lodash/_listCacheSet.js 19656 var require_listCacheSet = __commonJS({ 19657 "node_modules/lodash/_listCacheSet.js"(exports, module) { 19658 var assocIndexOf = require_assocIndexOf(); 19659 function listCacheSet(key, value2) { 19660 var data = this.__data__, index = assocIndexOf(data, key); 19661 if (index < 0) { 19662 ++this.size; 19663 data.push([key, value2]); 19664 } else { 19665 data[index][1] = value2; 19666 } 19667 return this; 19668 } 19669 module.exports = listCacheSet; 19670 } 19671 }); 19672 19673
vendor: 944 bytes, lines 19673-19698
19673// node_modules/lodash/_ListCache.js 19674 var require_ListCache = __commonJS({ 19675 "node_modules/lodash/_ListCache.js"(exports, module) { 19676 var listCacheClear = require_listCacheClear(); 19677 var listCacheDelete = require_listCacheDelete(); 19678 var listCacheGet = require_listCacheGet(); 19679 var listCacheHas = require_listCacheHas(); 19680 var listCacheSet = require_listCacheSet(); 19681 function ListCache(entries) { 19682 var index = -1, length2 = entries == null ? 0 : entries.length; 19683 this.clear(); 19684 while (++index < length2) { 19685 var entry = entries[index]; 19686 this.set(entry[0], entry[1]); 19687 } 19688 } 19689 ListCache.prototype.clear = listCacheClear; 19690 ListCache.prototype["delete"] = listCacheDelete; 19691 ListCache.prototype.get = listCacheGet; 19692 ListCache.prototype.has = listCacheHas; 19693 ListCache.prototype.set = listCacheSet; 19694 module.exports = ListCache; 19695 } 19696 }); 19697 19698
vendor: 333 bytes, lines 19698-19710
19698// node_modules/lodash/_stackClear.js 19699 var require_stackClear = __commonJS({ 19700 "node_modules/lodash/_stackClear.js"(exports, module) { 19701 var ListCache = require_ListCache(); 19702 function stackClear() { 19703 this.__data__ = new ListCache(); 19704 this.size = 0; 19705 } 19706 module.exports = stackClear; 19707 } 19708 }); 19709 19710
vendor: 352 bytes, lines 19710-19722
19710// node_modules/lodash/_stackDelete.js 19711 var require_stackDelete = __commonJS({ 19712 "node_modules/lodash/_stackDelete.js"(exports, module) { 19713 function stackDelete(key) { 19714 var data = this.__data__, result = data["delete"](key); 19715 this.size = data.size; 19716 return result; 19717 } 19718 module.exports = stackDelete; 19719 } 19720 }); 19721 19722
vendor: 258 bytes, lines 19722-19732
19722// node_modules/lodash/_stackGet.js 19723 var require_stackGet = __commonJS({ 19724 "node_modules/lodash/_stackGet.js"(exports, module) { 19725 function stackGet(key) { 19726 return this.__data__.get(key); 19727 } 19728 module.exports = stackGet; 19729 } 19730 }); 19731 19732
vendor: 258 bytes, lines 19732-19742
19732// node_modules/lodash/_stackHas.js 19733 var require_stackHas = __commonJS({ 19734 "node_modules/lodash/_stackHas.js"(exports, module) { 19735 function stackHas(key) { 19736 return this.__data__.has(key); 19737 } 19738 module.exports = stackHas; 19739 } 19740 }); 19741 19742
vendor: 286 bytes, lines 19742-19750
19742// node_modules/lodash/_freeGlobal.js 19743 var require_freeGlobal = __commonJS({ 19744 "node_modules/lodash/_freeGlobal.js"(exports, module) { 19745 var freeGlobal = typeof global == "object" && global && global.Object === Object && global; 19746 module.exports = freeGlobal; 19747 } 19748 }); 19749 19750
vendor: 367 bytes, lines 19750-19760
19750// node_modules/lodash/_root.js 19751 var require_root = __commonJS({ 19752 "node_modules/lodash/_root.js"(exports, module) { 19753 var freeGlobal = require_freeGlobal(); 19754 var freeSelf = typeof self == "object" && self && self.Object === Object && self; 19755 var root = freeGlobal || freeSelf || Function("return this")(); 19756 module.exports = root; 19757 } 19758 }); 19759 19760
vendor: 239 bytes, lines 19760-19769
19760// node_modules/lodash/_Symbol.js 19761 var require_Symbol = __commonJS({ 19762 "node_modules/lodash/_Symbol.js"(exports, module) { 19763 var root = require_root(); 19764 var Symbol2 = root.Symbol; 19765 module.exports = Symbol2; 19766 } 19767 }); 19768 19769
vendor: 951 bytes, lines 19769-19798
19769// node_modules/lodash/_getRawTag.js 19770 var require_getRawTag = __commonJS({ 19771 "node_modules/lodash/_getRawTag.js"(exports, module) { 19772 var Symbol2 = require_Symbol(); 19773 var objectProto = Object.prototype; 19774 var hasOwnProperty = objectProto.hasOwnProperty; 19775 var nativeObjectToString = objectProto.toString; 19776 var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0; 19777 function getRawTag(value2) { 19778 var isOwn = hasOwnProperty.call(value2, symToStringTag), tag = value2[symToStringTag]; 19779 try { 19780 value2[symToStringTag] = void 0; 19781 var unmasked = true; 19782 } catch (e) { 19783 } 19784 var result = nativeObjectToString.call(value2); 19785 if (unmasked) { 19786 if (isOwn) { 19787 value2[symToStringTag] = tag; 19788 } else { 19789 delete value2[symToStringTag]; 19790 } 19791 } 19792 return result; 19793 } 19794 module.exports = getRawTag; 19795 } 19796 }); 19797 19798
vendor: 399 bytes, lines 19798-19810
19798// node_modules/lodash/_objectToString.js 19799 var require_objectToString = __commonJS({ 19800 "node_modules/lodash/_objectToString.js"(exports, module) { 19801 var objectProto = Object.prototype; 19802 var nativeObjectToString = objectProto.toString; 19803 function objectToString(value2) { 19804 return nativeObjectToString.call(value2); 19805 } 19806 module.exports = objectToString; 19807 } 19808 }); 19809 19810
vendor: 730 bytes, lines 19810-19829
19810// node_modules/lodash/_baseGetTag.js 19811 var require_baseGetTag = __commonJS({ 19812 "node_modules/lodash/_baseGetTag.js"(exports, module) { 19813 var Symbol2 = require_Symbol(); 19814 var getRawTag = require_getRawTag(); 19815 var objectToString = require_objectToString(); 19816 var nullTag = "[object Null]"; 19817 var undefinedTag = "[object Undefined]"; 19818 var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0; 19819 function baseGetTag(value2) { 19820 if (value2 == null) { 19821 return value2 === void 0 ? undefinedTag : nullTag; 19822 } 19823 return symToStringTag && symToStringTag in Object(value2) ? getRawTag(value2) : objectToString(value2); 19824 } 19825 module.exports = baseGetTag; 19826 } 19827 }); 19828 19829
vendor: 334 bytes, lines 19829-19840
19829// node_modules/lodash/isObject.js 19830 var require_isObject = __commonJS({ 19831 "node_modules/lodash/isObject.js"(exports, module) { 19832 function isObject2(value2) { 19833 var type2 = typeof value2; 19834 return value2 != null && (type2 == "object" || type2 == "function"); 19835 } 19836 module.exports = isObject2; 19837 } 19838 }); 19839 19840
vendor: 685 bytes, lines 19840-19860
19840// node_modules/lodash/isFunction.js 19841 var require_isFunction = __commonJS({ 19842 "node_modules/lodash/isFunction.js"(exports, module) { 19843 var baseGetTag = require_baseGetTag(); 19844 var isObject2 = require_isObject(); 19845 var asyncTag = "[object AsyncFunction]"; 19846 var funcTag = "[object Function]"; 19847 var genTag = "[object GeneratorFunction]"; 19848 var proxyTag = "[object Proxy]"; 19849 function isFunction(value2) { 19850 if (!isObject2(value2)) { 19851 return false; 19852 } 19853 var tag = baseGetTag(value2); 19854 return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; 19855 } 19856 module.exports = isFunction; 19857 } 19858 }); 19859 19860
vendor: 272 bytes, lines 19860-19869
19860// node_modules/lodash/_coreJsData.js 19861 var require_coreJsData = __commonJS({ 19862 "node_modules/lodash/_coreJsData.js"(exports, module) { 19863 var root = require_root(); 19864 var coreJsData = root["__core-js_shared__"]; 19865 module.exports = coreJsData; 19866 } 19867 }); 19868 19869
vendor: 511 bytes, lines 19869-19884
19869// node_modules/lodash/_isMasked.js 19870 var require_isMasked = __commonJS({ 19871 "node_modules/lodash/_isMasked.js"(exports, module) { 19872 var coreJsData = require_coreJsData(); 19873 var maskSrcKey = function() { 19874 var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ""); 19875 return uid ? "Symbol(src)_1." + uid : ""; 19876 }(); 19877 function isMasked(func) { 19878 return !!maskSrcKey && maskSrcKey in func; 19879 } 19880 module.exports = isMasked; 19881 } 19882 }); 19883 19884
vendor: 542 bytes, lines 19884-19906
19884// node_modules/lodash/_toSource.js 19885 var require_toSource = __commonJS({ 19886 "node_modules/lodash/_toSource.js"(exports, module) { 19887 var funcProto = Function.prototype; 19888 var funcToString = funcProto.toString; 19889 function toSource(func) { 19890 if (func != null) { 19891 try { 19892 return funcToString.call(func); 19893 } catch (e) { 19894 } 19895 try { 19896 return func + ""; 19897 } catch (e) { 19898 } 19899 } 19900 return ""; 19901 } 19902 module.exports = toSource; 19903 } 19904 }); 19905 19906
vendor: 1,103 bytes, lines 19906-19933
19906// node_modules/lodash/_baseIsNative.js 19907 var require_baseIsNative = __commonJS({ 19908 "node_modules/lodash/_baseIsNative.js"(exports, module) { 19909 var isFunction = require_isFunction(); 19910 var isMasked = require_isMasked(); 19911 var isObject2 = require_isObject(); 19912 var toSource = require_toSource(); 19913 var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; 19914 var reIsHostCtor = /^\[object .+?Constructor\]$/; 19915 var funcProto = Function.prototype; 19916 var objectProto = Object.prototype; 19917 var funcToString = funcProto.toString; 19918 var hasOwnProperty = objectProto.hasOwnProperty; 19919 var reIsNative = RegExp( 19920 "^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$" 19921 ); 19922 function baseIsNative(value2) { 19923 if (!isObject2(value2) || isMasked(value2)) { 19924 return false; 19925 } 19926 var pattern = isFunction(value2) ? reIsNative : reIsHostCtor; 19927 return pattern.test(toSource(value2)); 19928 } 19929 module.exports = baseIsNative; 19930 } 19931 }); 19932 19933
vendor: 281 bytes, lines 19933-19943
19933// node_modules/lodash/_getValue.js 19934 var require_getValue = __commonJS({ 19935 "node_modules/lodash/_getValue.js"(exports, module) { 19936 function getValue(object, key) { 19937 return object == null ? void 0 : object[key]; 19938 } 19939 module.exports = getValue; 19940 } 19941 }); 19942 19943
vendor: 421 bytes, lines 19943-19956
19943// node_modules/lodash/_getNative.js 19944 var require_getNative = __commonJS({ 19945 "node_modules/lodash/_getNative.js"(exports, module) { 19946 var baseIsNative = require_baseIsNative(); 19947 var getValue = require_getValue(); 19948 function getNative(object, key) { 19949 var value2 = getValue(object, key); 19950 return baseIsNative(value2) ? value2 : void 0; 19951 } 19952 module.exports = getNative; 19953 } 19954 }); 19955 19956
vendor: 278 bytes, lines 19956-19966
19956// node_modules/lodash/_Map.js 19957 var require_Map = __commonJS({ 19958 "node_modules/lodash/_Map.js"(exports, module) { 19959 var getNative = require_getNative(); 19960 var root = require_root(); 19961 var Map2 = getNative(root, "Map"); 19962 module.exports = Map2; 19963 } 19964 }); 19965 19966
vendor: 293 bytes, lines 19966-19975
19966// node_modules/lodash/_nativeCreate.js 19967 var require_nativeCreate = __commonJS({ 19968 "node_modules/lodash/_nativeCreate.js"(exports, module) { 19969 var getNative = require_getNative(); 19970 var nativeCreate = getNative(Object, "create"); 19971 module.exports = nativeCreate; 19972 } 19973 }); 19974 19975
vendor: 357 bytes, lines 19975-19987
19975// node_modules/lodash/_hashClear.js 19976 var require_hashClear = __commonJS({ 19977 "node_modules/lodash/_hashClear.js"(exports, module) { 19978 var nativeCreate = require_nativeCreate(); 19979 function hashClear() { 19980 this.__data__ = nativeCreate ? nativeCreate(null) : {}; 19981 this.size = 0; 19982 } 19983 module.exports = hashClear; 19984 } 19985 }); 19986 19987
vendor: 354 bytes, lines 19987-19999
19987// node_modules/lodash/_hashDelete.js 19988 var require_hashDelete = __commonJS({ 19989 "node_modules/lodash/_hashDelete.js"(exports, module) { 19990 function hashDelete(key) { 19991 var result = this.has(key) && delete this.__data__[key]; 19992 this.size -= result ? 1 : 0; 19993 return result; 19994 } 19995 module.exports = hashDelete; 19996 } 19997 }); 19998 19999
vendor: 652 bytes, lines 19999-20018
19999// node_modules/lodash/_hashGet.js 20000 var require_hashGet = __commonJS({ 20001 "node_modules/lodash/_hashGet.js"(exports, module) { 20002 var nativeCreate = require_nativeCreate(); 20003 var HASH_UNDEFINED = "__lodash_hash_undefined__"; 20004 var objectProto = Object.prototype; 20005 var hasOwnProperty = objectProto.hasOwnProperty; 20006 function hashGet(key) { 20007 var data = this.__data__; 20008 if (nativeCreate) { 20009 var result = data[key]; 20010 return result === HASH_UNDEFINED ? void 0 : result; 20011 } 20012 return hasOwnProperty.call(data, key) ? data[key] : void 0; 20013 } 20014 module.exports = hashGet; 20015 } 20016 }); 20017 20018
vendor: 479 bytes, lines 20018-20032
20018// node_modules/lodash/_hashHas.js 20019 var require_hashHas = __commonJS({ 20020 "node_modules/lodash/_hashHas.js"(exports, module) { 20021 var nativeCreate = require_nativeCreate(); 20022 var objectProto = Object.prototype; 20023 var hasOwnProperty = objectProto.hasOwnProperty; 20024 function hashHas(key) { 20025 var data = this.__data__; 20026 return nativeCreate ? data[key] !== void 0 : hasOwnProperty.call(data, key); 20027 } 20028 module.exports = hashHas; 20029 } 20030 }); 20031 20032
vendor: 507 bytes, lines 20032-20047
20032// node_modules/lodash/_hashSet.js 20033 var require_hashSet = __commonJS({ 20034 "node_modules/lodash/_hashSet.js"(exports, module) { 20035 var nativeCreate = require_nativeCreate(); 20036 var HASH_UNDEFINED = "__lodash_hash_undefined__"; 20037 function hashSet(key, value2) { 20038 var data = this.__data__; 20039 this.size += this.has(key) ? 0 : 1; 20040 data[key] = nativeCreate && value2 === void 0 ? HASH_UNDEFINED : value2; 20041 return this; 20042 } 20043 module.exports = hashSet; 20044 } 20045 }); 20046 20047
vendor: 819 bytes, lines 20047-20072
20047// node_modules/lodash/_Hash.js 20048 var require_Hash = __commonJS({ 20049 "node_modules/lodash/_Hash.js"(exports, module) { 20050 var hashClear = require_hashClear(); 20051 var hashDelete = require_hashDelete(); 20052 var hashGet = require_hashGet(); 20053 var hashHas = require_hashHas(); 20054 var hashSet = require_hashSet(); 20055 function Hash(entries) { 20056 var index = -1, length2 = entries == null ? 0 : entries.length; 20057 this.clear(); 20058 while (++index < length2) { 20059 var entry = entries[index]; 20060 this.set(entry[0], entry[1]); 20061 } 20062 } 20063 Hash.prototype.clear = hashClear; 20064 Hash.prototype["delete"] = hashDelete; 20065 Hash.prototype.get = hashGet; 20066 Hash.prototype.has = hashHas; 20067 Hash.prototype.set = hashSet; 20068 module.exports = Hash; 20069 } 20070 }); 20071 20072
vendor: 514 bytes, lines 20072-20090
20072// node_modules/lodash/_mapCacheClear.js 20073 var require_mapCacheClear = __commonJS({ 20074 "node_modules/lodash/_mapCacheClear.js"(exports, module) { 20075 var Hash = require_Hash(); 20076 var ListCache = require_ListCache(); 20077 var Map2 = require_Map(); 20078 function mapCacheClear() { 20079 this.size = 0; 20080 this.__data__ = { 20081 "hash": new Hash(), 20082 "map": new (Map2 || ListCache)(), 20083 "string": new Hash() 20084 }; 20085 } 20086 module.exports = mapCacheClear; 20087 } 20088 }); 20089 20090
vendor: 403 bytes, lines 20090-20101
20090// node_modules/lodash/_isKeyable.js 20091 var require_isKeyable = __commonJS({ 20092 "node_modules/lodash/_isKeyable.js"(exports, module) { 20093 function isKeyable(value2) { 20094 var type2 = typeof value2; 20095 return type2 == "string" || type2 == "number" || type2 == "symbol" || type2 == "boolean" ? value2 !== "__proto__" : value2 === null; 20096 } 20097 module.exports = isKeyable; 20098 } 20099 }); 20100 20101
vendor: 405 bytes, lines 20101-20113
20101// node_modules/lodash/_getMapData.js 20102 var require_getMapData = __commonJS({ 20103 "node_modules/lodash/_getMapData.js"(exports, module) { 20104 var isKeyable = require_isKeyable(); 20105 function getMapData(map2, key) { 20106 var data = map2.__data__; 20107 return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map; 20108 } 20109 module.exports = getMapData; 20110 } 20111 }); 20112 20113
vendor: 413 bytes, lines 20113-20126
20113// node_modules/lodash/_mapCacheDelete.js 20114 var require_mapCacheDelete = __commonJS({ 20115 "node_modules/lodash/_mapCacheDelete.js"(exports, module) { 20116 var getMapData = require_getMapData(); 20117 function mapCacheDelete(key) { 20118 var result = getMapData(this, key)["delete"](key); 20119 this.size -= result ? 1 : 0; 20120 return result; 20121 } 20122 module.exports = mapCacheDelete; 20123 } 20124 }); 20125 20126
vendor: 326 bytes, lines 20126-20137
20126// node_modules/lodash/_mapCacheGet.js 20127 var require_mapCacheGet = __commonJS({ 20128 "node_modules/lodash/_mapCacheGet.js"(exports, module) { 20129 var getMapData = require_getMapData(); 20130 function mapCacheGet(key) { 20131 return getMapData(this, key).get(key); 20132 } 20133 module.exports = mapCacheGet; 20134 } 20135 }); 20136 20137
vendor: 326 bytes, lines 20137-20148
20137// node_modules/lodash/_mapCacheHas.js 20138 var require_mapCacheHas = __commonJS({ 20139 "node_modules/lodash/_mapCacheHas.js"(exports, module) { 20140 var getMapData = require_getMapData(); 20141 function mapCacheHas(key) { 20142 return getMapData(this, key).has(key); 20143 } 20144 module.exports = mapCacheHas; 20145 } 20146 }); 20147 20148
vendor: 447 bytes, lines 20148-20162
20148// node_modules/lodash/_mapCacheSet.js 20149 var require_mapCacheSet = __commonJS({ 20150 "node_modules/lodash/_mapCacheSet.js"(exports, module) { 20151 var getMapData = require_getMapData(); 20152 function mapCacheSet(key, value2) { 20153 var data = getMapData(this, key), size = data.size; 20154 data.set(key, value2); 20155 this.size += data.size == size ? 0 : 1; 20156 return this; 20157 } 20158 module.exports = mapCacheSet; 20159 } 20160 }); 20161 20162
vendor: 919 bytes, lines 20162-20187
20162// node_modules/lodash/_MapCache.js 20163 var require_MapCache = __commonJS({ 20164 "node_modules/lodash/_MapCache.js"(exports, module) { 20165 var mapCacheClear = require_mapCacheClear(); 20166 var mapCacheDelete = require_mapCacheDelete(); 20167 var mapCacheGet = require_mapCacheGet(); 20168 var mapCacheHas = require_mapCacheHas(); 20169 var mapCacheSet = require_mapCacheSet(); 20170 function MapCache(entries) { 20171 var index = -1, length2 = entries == null ? 0 : entries.length; 20172 this.clear(); 20173 while (++index < length2) { 20174 var entry = entries[index]; 20175 this.set(entry[0], entry[1]); 20176 } 20177 } 20178 MapCache.prototype.clear = mapCacheClear; 20179 MapCache.prototype["delete"] = mapCacheDelete; 20180 MapCache.prototype.get = mapCacheGet; 20181 MapCache.prototype.has = mapCacheHas; 20182 MapCache.prototype.set = mapCacheSet; 20183 module.exports = MapCache; 20184 } 20185 }); 20186 20187
vendor: 811 bytes, lines 20187-20213
20187// node_modules/lodash/_stackSet.js 20188 var require_stackSet = __commonJS({ 20189 "node_modules/lodash/_stackSet.js"(exports, module) { 20190 var ListCache = require_ListCache(); 20191 var Map2 = require_Map(); 20192 var MapCache = require_MapCache(); 20193 var LARGE_ARRAY_SIZE = 200; 20194 function stackSet(key, value2) { 20195 var data = this.__data__; 20196 if (data instanceof ListCache) { 20197 var pairs = data.__data__; 20198 if (!Map2 || pairs.length < LARGE_ARRAY_SIZE - 1) { 20199 pairs.push([key, value2]); 20200 this.size = ++data.size; 20201 return this; 20202 } 20203 data = this.__data__ = new MapCache(pairs); 20204 } 20205 data.set(key, value2); 20206 this.size = data.size; 20207 return this; 20208 } 20209 module.exports = stackSet; 20210 } 20211 }); 20212 20213
vendor: 759 bytes, lines 20213-20235
20213// node_modules/lodash/_Stack.js 20214 var require_Stack = __commonJS({ 20215 "node_modules/lodash/_Stack.js"(exports, module) { 20216 var ListCache = require_ListCache(); 20217 var stackClear = require_stackClear(); 20218 var stackDelete = require_stackDelete(); 20219 var stackGet = require_stackGet(); 20220 var stackHas = require_stackHas(); 20221 var stackSet = require_stackSet(); 20222 function Stack(entries) { 20223 var data = this.__data__ = new ListCache(entries); 20224 this.size = data.size; 20225 } 20226 Stack.prototype.clear = stackClear; 20227 Stack.prototype["delete"] = stackDelete; 20228 Stack.prototype.get = stackGet; 20229 Stack.prototype.has = stackHas; 20230 Stack.prototype.set = stackSet; 20231 module.exports = Stack; 20232 } 20233 }); 20234 20235
vendor: 467 bytes, lines 20235-20251
20235// node_modules/lodash/_arrayEach.js 20236 var require_arrayEach = __commonJS({ 20237 "node_modules/lodash/_arrayEach.js"(exports, module) { 20238 function arrayEach(array, iteratee) { 20239 var index = -1, length2 = array == null ? 0 : array.length; 20240 while (++index < length2) { 20241 if (iteratee(array[index], index, array) === false) { 20242 break; 20243 } 20244 } 20245 return array; 20246 } 20247 module.exports = arrayEach; 20248 } 20249 }); 20250 20251
vendor: 453 bytes, lines 20251-20267
20251// node_modules/lodash/_defineProperty.js 20252 var require_defineProperty = __commonJS({ 20253 "node_modules/lodash/_defineProperty.js"(exports, module) { 20254 var getNative = require_getNative(); 20255 var defineProperty = function() { 20256 try { 20257 var func = getNative(Object, "defineProperty"); 20258 func({}, "", {}); 20259 return func; 20260 } catch (e) { 20261 } 20262 }(); 20263 module.exports = defineProperty; 20264 } 20265 }); 20266 20267
vendor: 612 bytes, lines 20267-20287
20267// node_modules/lodash/_baseAssignValue.js 20268 var require_baseAssignValue = __commonJS({ 20269 "node_modules/lodash/_baseAssignValue.js"(exports, module) { 20270 var defineProperty = require_defineProperty(); 20271 function baseAssignValue(object, key, value2) { 20272 if (key == "__proto__" && defineProperty) { 20273 defineProperty(object, key, { 20274 "configurable": true, 20275 "enumerable": true, 20276 "value": value2, 20277 "writable": true 20278 }); 20279 } else { 20280 object[key] = value2; 20281 } 20282 } 20283 module.exports = baseAssignValue; 20284 } 20285 }); 20286 20287
vendor: 641 bytes, lines 20287-20304
20287// node_modules/lodash/_assignValue.js 20288 var require_assignValue = __commonJS({ 20289 "node_modules/lodash/_assignValue.js"(exports, module) { 20290 var baseAssignValue = require_baseAssignValue(); 20291 var eq = require_eq(); 20292 var objectProto = Object.prototype; 20293 var hasOwnProperty = objectProto.hasOwnProperty; 20294 function assignValue(object, key, value2) { 20295 var objValue = object[key]; 20296 if (!(hasOwnProperty.call(object, key) && eq(objValue, value2)) || value2 === void 0 && !(key in object)) { 20297 baseAssignValue(object, key, value2); 20298 } 20299 } 20300 module.exports = assignValue; 20301 } 20302 }); 20303 20304
vendor: 919 bytes, lines 20304-20331
20304// node_modules/lodash/_copyObject.js 20305 var require_copyObject = __commonJS({ 20306 "node_modules/lodash/_copyObject.js"(exports, module) { 20307 var assignValue = require_assignValue(); 20308 var baseAssignValue = require_baseAssignValue(); 20309 function copyObject(source, props, object, customizer) { 20310 var isNew = !object; 20311 object || (object = {}); 20312 var index = -1, length2 = props.length; 20313 while (++index < length2) { 20314 var key = props[index]; 20315 var newValue = customizer ? customizer(object[key], source[key], key, object, source) : void 0; 20316 if (newValue === void 0) { 20317 newValue = source[key]; 20318 } 20319 if (isNew) { 20320 baseAssignValue(object, key, newValue); 20321 } else { 20322 assignValue(object, key, newValue); 20323 } 20324 } 20325 return object; 20326 } 20327 module.exports = copyObject; 20328 } 20329 }); 20330 20331
vendor: 381 bytes, lines 20331-20345
20331// node_modules/lodash/_baseTimes.js 20332 var require_baseTimes = __commonJS({ 20333 "node_modules/lodash/_baseTimes.js"(exports, module) { 20334 function baseTimes(n, iteratee) { 20335 var index = -1, result = Array(n); 20336 while (++index < n) { 20337 result[index] = iteratee(index); 20338 } 20339 return result; 20340 } 20341 module.exports = baseTimes; 20342 } 20343 }); 20344 20345
vendor: 300 bytes, lines 20345-20355
20345// node_modules/lodash/isObjectLike.js 20346 var require_isObjectLike = __commonJS({ 20347 "node_modules/lodash/isObjectLike.js"(exports, module) { 20348 function isObjectLike(value2) { 20349 return value2 != null && typeof value2 == "object"; 20350 } 20351 module.exports = isObjectLike; 20352 } 20353 }); 20354 20355
vendor: 463 bytes, lines 20355-20368
20355// node_modules/lodash/_baseIsArguments.js 20356 var require_baseIsArguments = __commonJS({ 20357 "node_modules/lodash/_baseIsArguments.js"(exports, module) { 20358 var baseGetTag = require_baseGetTag(); 20359 var isObjectLike = require_isObjectLike(); 20360 var argsTag = "[object Arguments]"; 20361 function baseIsArguments(value2) { 20362 return isObjectLike(value2) && baseGetTag(value2) == argsTag; 20363 } 20364 module.exports = baseIsArguments; 20365 } 20366 }); 20367 20368
vendor: 722 bytes, lines 20368-20385
20368// node_modules/lodash/isArguments.js 20369 var require_isArguments = __commonJS({ 20370 "node_modules/lodash/isArguments.js"(exports, module) { 20371 var baseIsArguments = require_baseIsArguments(); 20372 var isObjectLike = require_isObjectLike(); 20373 var objectProto = Object.prototype; 20374 var hasOwnProperty = objectProto.hasOwnProperty; 20375 var propertyIsEnumerable = objectProto.propertyIsEnumerable; 20376 var isArguments = baseIsArguments(function() { 20377 return arguments; 20378 }()) ? baseIsArguments : function(value2) { 20379 return isObjectLike(value2) && hasOwnProperty.call(value2, "callee") && !propertyIsEnumerable.call(value2, "callee"); 20380 }; 20381 module.exports = isArguments; 20382 } 20383 }); 20384 20385
vendor: 209 bytes, lines 20385-20393
20385// node_modules/lodash/isArray.js 20386 var require_isArray = __commonJS({ 20387 "node_modules/lodash/isArray.js"(exports, module) { 20388 var isArray = Array.isArray; 20389 module.exports = isArray; 20390 } 20391 }); 20392 20393
vendor: 241 bytes, lines 20393-20403
20393// node_modules/lodash/stubFalse.js 20394 var require_stubFalse = __commonJS({ 20395 "node_modules/lodash/stubFalse.js"(exports, module) { 20396 function stubFalse() { 20397 return false; 20398 } 20399 module.exports = stubFalse; 20400 } 20401 }); 20402 20403
vendor: 702 bytes, lines 20403-20418
20403// node_modules/lodash/isBuffer.js 20404 var require_isBuffer = __commonJS({ 20405 "node_modules/lodash/isBuffer.js"(exports, module) { 20406 var root = require_root(); 20407 var stubFalse = require_stubFalse(); 20408 var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports; 20409 var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module; 20410 var moduleExports = freeModule && freeModule.exports === freeExports; 20411 var Buffer2 = moduleExports ? root.Buffer : void 0; 20412 var nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : void 0; 20413 var isBuffer = nativeIsBuffer || stubFalse; 20414 module.exports = isBuffer; 20415 } 20416 }); 20417 20418
vendor: 564 bytes, lines 20418-20432
20418// node_modules/lodash/_isIndex.js 20419 var require_isIndex = __commonJS({ 20420 "node_modules/lodash/_isIndex.js"(exports, module) { 20421 var MAX_SAFE_INTEGER = 9007199254740991; 20422 var reIsUint = /^(?:0|[1-9]\d*)$/; 20423 function isIndex(value2, length2) { 20424 var type2 = typeof value2; 20425 length2 = length2 == null ? MAX_SAFE_INTEGER : length2; 20426 return !!length2 && (type2 == "number" || type2 != "symbol" && reIsUint.test(value2)) && (value2 > -1 && value2 % 1 == 0 && value2 < length2); 20427 } 20428 module.exports = isIndex; 20429 } 20430 }); 20431 20432
vendor: 373 bytes, lines 20432-20443
20432// node_modules/lodash/isLength.js 20433 var require_isLength = __commonJS({ 20434 "node_modules/lodash/isLength.js"(exports, module) { 20435 var MAX_SAFE_INTEGER = 9007199254740991; 20436 function isLength(value2) { 20437 return typeof value2 == "number" && value2 > -1 && value2 % 1 == 0 && value2 <= MAX_SAFE_INTEGER; 20438 } 20439 module.exports = isLength; 20440 } 20441 }); 20442 20443
vendor: 2,255 bytes, lines 20443-20483
20443// node_modules/lodash/_baseIsTypedArray.js 20444 var require_baseIsTypedArray = __commonJS({ 20445 "node_modules/lodash/_baseIsTypedArray.js"(exports, module) { 20446 var baseGetTag = require_baseGetTag(); 20447 var isLength = require_isLength(); 20448 var isObjectLike = require_isObjectLike(); 20449 var argsTag = "[object Arguments]"; 20450 var arrayTag = "[object Array]"; 20451 var boolTag = "[object Boolean]"; 20452 var dateTag = "[object Date]"; 20453 var errorTag = "[object Error]"; 20454 var funcTag = "[object Function]"; 20455 var mapTag = "[object Map]"; 20456 var numberTag = "[object Number]"; 20457 var objectTag = "[object Object]"; 20458 var regexpTag = "[object RegExp]"; 20459 var setTag = "[object Set]"; 20460 var stringTag = "[object String]"; 20461 var weakMapTag = "[object WeakMap]"; 20462 var arrayBufferTag = "[object ArrayBuffer]"; 20463 var dataViewTag = "[object DataView]"; 20464 var float32Tag = "[object Float32Array]"; 20465 var float64Tag = "[object Float64Array]"; 20466 var int8Tag = "[object Int8Array]"; 20467 var int16Tag = "[object Int16Array]"; 20468 var int32Tag = "[object Int32Array]"; 20469 var uint8Tag = "[object Uint8Array]"; 20470 var uint8ClampedTag = "[object Uint8ClampedArray]"; 20471 var uint16Tag = "[object Uint16Array]"; 20472 var uint32Tag = "[object Uint32Array]"; 20473 var typedArrayTags = {}; 20474 typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true; 20475 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; 20476 function baseIsTypedArray(value2) { 20477 return isObjectLike(value2) && isLength(value2.length) && !!typedArrayTags[baseGetTag(value2)]; 20478 } 20479 module.exports = baseIsTypedArray; 20480 } 20481 }); 20482 20483
vendor: 301 bytes, lines 20483-20495
20483// node_modules/lodash/_baseUnary.js 20484 var require_baseUnary = __commonJS({ 20485 "node_modules/lodash/_baseUnary.js"(exports, module) { 20486 function baseUnary(func) { 20487 return function(value2) { 20488 return func(value2); 20489 }; 20490 } 20491 module.exports = baseUnary; 20492 } 20493 }); 20494 20495
vendor: 890 bytes, lines 20495-20517
20495// node_modules/lodash/_nodeUtil.js 20496 var require_nodeUtil = __commonJS({ 20497 "node_modules/lodash/_nodeUtil.js"(exports, module) { 20498 var freeGlobal = require_freeGlobal(); 20499 var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports; 20500 var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module; 20501 var moduleExports = freeModule && freeModule.exports === freeExports; 20502 var freeProcess = moduleExports && freeGlobal.process; 20503 var nodeUtil = function() { 20504 try { 20505 var types = freeModule && freeModule.require && freeModule.require("util").types; 20506 if (types) { 20507 return types; 20508 } 20509 return freeProcess && freeProcess.binding && freeProcess.binding("util"); 20510 } catch (e) { 20511 } 20512 }(); 20513 module.exports = nodeUtil; 20514 } 20515 }); 20516 20517
vendor: 491 bytes, lines 20517-20529
20517// node_modules/lodash/isTypedArray.js 20518 var require_isTypedArray = __commonJS({ 20519 "node_modules/lodash/isTypedArray.js"(exports, module) { 20520 var baseIsTypedArray = require_baseIsTypedArray(); 20521 var baseUnary = require_baseUnary(); 20522 var nodeUtil = require_nodeUtil(); 20523 var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; 20524 var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; 20525 module.exports = isTypedArray; 20526 } 20527 }); 20528 20529
vendor: 1,300 bytes, lines 20529-20553
20529// node_modules/lodash/_arrayLikeKeys.js 20530 var require_arrayLikeKeys = __commonJS({ 20531 "node_modules/lodash/_arrayLikeKeys.js"(exports, module) { 20532 var baseTimes = require_baseTimes(); 20533 var isArguments = require_isArguments(); 20534 var isArray = require_isArray(); 20535 var isBuffer = require_isBuffer(); 20536 var isIndex = require_isIndex(); 20537 var isTypedArray = require_isTypedArray(); 20538 var objectProto = Object.prototype; 20539 var hasOwnProperty = objectProto.hasOwnProperty; 20540 function arrayLikeKeys(value2, inherited) { 20541 var isArr = isArray(value2), isArg = !isArr && isArguments(value2), isBuff = !isArr && !isArg && isBuffer(value2), isType = !isArr && !isArg && !isBuff && isTypedArray(value2), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value2.length, String) : [], length2 = result.length; 20542 for (var key in value2) { 20543 if ((inherited || hasOwnProperty.call(value2, key)) && !(skipIndexes && (key == "length" || isBuff && (key == "offset" || key == "parent") || isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || isIndex(key, length2)))) { 20544 result.push(key); 20545 } 20546 } 20547 return result; 20548 } 20549 module.exports = arrayLikeKeys; 20550 } 20551 }); 20552 20553
vendor: 429 bytes, lines 20553-20565
20553// node_modules/lodash/_isPrototype.js 20554 var require_isPrototype = __commonJS({ 20555 "node_modules/lodash/_isPrototype.js"(exports, module) { 20556 var objectProto = Object.prototype; 20557 function isPrototype(value2) { 20558 var Ctor = value2 && value2.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto; 20559 return value2 === proto; 20560 } 20561 module.exports = isPrototype; 20562 } 20563 }); 20564 20565
vendor: 307 bytes, lines 20565-20577
20565// node_modules/lodash/_overArg.js 20566 var require_overArg = __commonJS({ 20567 "node_modules/lodash/_overArg.js"(exports, module) { 20568 function overArg(func, transform) { 20569 return function(arg) { 20570 return func(transform(arg)); 20571 }; 20572 } 20573 module.exports = overArg; 20574 } 20575 }); 20576 20577
vendor: 280 bytes, lines 20577-20586
20577// node_modules/lodash/_nativeKeys.js 20578 var require_nativeKeys = __commonJS({ 20579 "node_modules/lodash/_nativeKeys.js"(exports, module) { 20580 var overArg = require_overArg(); 20581 var nativeKeys = overArg(Object.keys, Object); 20582 module.exports = nativeKeys; 20583 } 20584 }); 20585 20586
vendor: 710 bytes, lines 20586-20609
20586// node_modules/lodash/_baseKeys.js 20587 var require_baseKeys = __commonJS({ 20588 "node_modules/lodash/_baseKeys.js"(exports, module) { 20589 var isPrototype = require_isPrototype(); 20590 var nativeKeys = require_nativeKeys(); 20591 var objectProto = Object.prototype; 20592 var hasOwnProperty = objectProto.hasOwnProperty; 20593 function baseKeys(object) { 20594 if (!isPrototype(object)) { 20595 return nativeKeys(object); 20596 } 20597 var result = []; 20598 for (var key in Object(object)) { 20599 if (hasOwnProperty.call(object, key) && key != "constructor") { 20600 result.push(key); 20601 } 20602 } 20603 return result; 20604 } 20605 module.exports = baseKeys; 20606 } 20607 }); 20608 20609
vendor: 402 bytes, lines 20609-20621
20609// node_modules/lodash/isArrayLike.js 20610 var require_isArrayLike = __commonJS({ 20611 "node_modules/lodash/isArrayLike.js"(exports, module) { 20612 var isFunction = require_isFunction(); 20613 var isLength = require_isLength(); 20614 function isArrayLike(value2) { 20615 return value2 != null && isLength(value2.length) && !isFunction(value2); 20616 } 20617 module.exports = isArrayLike; 20618 } 20619 }); 20620 20621
vendor: 418 bytes, lines 20621-20634
20621// node_modules/lodash/keys.js 20622 var require_keys = __commonJS({ 20623 "node_modules/lodash/keys.js"(exports, module) { 20624 var arrayLikeKeys = require_arrayLikeKeys(); 20625 var baseKeys = require_baseKeys(); 20626 var isArrayLike = require_isArrayLike(); 20627 function keys(object) { 20628 return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); 20629 } 20630 module.exports = keys; 20631 } 20632 }); 20633 20634
vendor: 385 bytes, lines 20634-20646
20634// node_modules/lodash/_baseAssign.js 20635 var require_baseAssign = __commonJS({ 20636 "node_modules/lodash/_baseAssign.js"(exports, module) { 20637 var copyObject = require_copyObject(); 20638 var keys = require_keys(); 20639 function baseAssign(object, source) { 20640 return object && copyObject(source, keys(source), object); 20641 } 20642 module.exports = baseAssign; 20643 } 20644 }); 20645 20646
vendor: 416 bytes, lines 20646-20662
20646// node_modules/lodash/_nativeKeysIn.js 20647 var require_nativeKeysIn = __commonJS({ 20648 "node_modules/lodash/_nativeKeysIn.js"(exports, module) { 20649 function nativeKeysIn(object) { 20650 var result = []; 20651 if (object != null) { 20652 for (var key in Object(object)) { 20653 result.push(key); 20654 } 20655 } 20656 return result; 20657 } 20658 module.exports = nativeKeysIn; 20659 } 20660 }); 20661 20662
vendor: 806 bytes, lines 20662-20686
20662// node_modules/lodash/_baseKeysIn.js 20663 var require_baseKeysIn = __commonJS({ 20664 "node_modules/lodash/_baseKeysIn.js"(exports, module) { 20665 var isObject2 = require_isObject(); 20666 var isPrototype = require_isPrototype(); 20667 var nativeKeysIn = require_nativeKeysIn(); 20668 var objectProto = Object.prototype; 20669 var hasOwnProperty = objectProto.hasOwnProperty; 20670 function baseKeysIn(object) { 20671 if (!isObject2(object)) { 20672 return nativeKeysIn(object); 20673 } 20674 var isProto = isPrototype(object), result = []; 20675 for (var key in object) { 20676 if (!(key == "constructor" && (isProto || !hasOwnProperty.call(object, key)))) { 20677 result.push(key); 20678 } 20679 } 20680 return result; 20681 } 20682 module.exports = baseKeysIn; 20683 } 20684 }); 20685 20686
vendor: 440 bytes, lines 20686-20699
20686// node_modules/lodash/keysIn.js 20687 var require_keysIn = __commonJS({ 20688 "node_modules/lodash/keysIn.js"(exports, module) { 20689 var arrayLikeKeys = require_arrayLikeKeys(); 20690 var baseKeysIn = require_baseKeysIn(); 20691 var isArrayLike = require_isArrayLike(); 20692 function keysIn(object) { 20693 return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); 20694 } 20695 module.exports = keysIn; 20696 } 20697 }); 20698 20699
vendor: 401 bytes, lines 20699-20711
20699// node_modules/lodash/_baseAssignIn.js 20700 var require_baseAssignIn = __commonJS({ 20701 "node_modules/lodash/_baseAssignIn.js"(exports, module) { 20702 var copyObject = require_copyObject(); 20703 var keysIn = require_keysIn(); 20704 function baseAssignIn(object, source) { 20705 return object && copyObject(source, keysIn(source), object); 20706 } 20707 module.exports = baseAssignIn; 20708 } 20709 }); 20710 20711
vendor: 909 bytes, lines 20711-20732
20711// node_modules/lodash/_cloneBuffer.js 20712 var require_cloneBuffer = __commonJS({ 20713 "node_modules/lodash/_cloneBuffer.js"(exports, module) { 20714 var root = require_root(); 20715 var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports; 20716 var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module; 20717 var moduleExports = freeModule && freeModule.exports === freeExports; 20718 var Buffer2 = moduleExports ? root.Buffer : void 0; 20719 var allocUnsafe = Buffer2 ? Buffer2.allocUnsafe : void 0; 20720 function cloneBuffer(buffer, isDeep) { 20721 if (isDeep) { 20722 return buffer.slice(); 20723 } 20724 var length2 = buffer.length, result = allocUnsafe ? allocUnsafe(length2) : new buffer.constructor(length2); 20725 buffer.copy(result); 20726 return result; 20727 } 20728 module.exports = cloneBuffer; 20729 } 20730 }); 20731 20732
vendor: 434 bytes, lines 20732-20747
20732// node_modules/lodash/_copyArray.js 20733 var require_copyArray = __commonJS({ 20734 "node_modules/lodash/_copyArray.js"(exports, module) { 20735 function copyArray(source, array) { 20736 var index = -1, length2 = source.length; 20737 array || (array = Array(length2)); 20738 while (++index < length2) { 20739 array[index] = source[index]; 20740 } 20741 return array; 20742 } 20743 module.exports = copyArray; 20744 } 20745 }); 20746 20747
vendor: 550 bytes, lines 20747-20764
20747// node_modules/lodash/_arrayFilter.js 20748 var require_arrayFilter = __commonJS({ 20749 "node_modules/lodash/_arrayFilter.js"(exports, module) { 20750 function arrayFilter(array, predicate) { 20751 var index = -1, length2 = array == null ? 0 : array.length, resIndex = 0, result = []; 20752 while (++index < length2) { 20753 var value2 = array[index]; 20754 if (predicate(value2, index, array)) { 20755 result[resIndex++] = value2; 20756 } 20757 } 20758 return result; 20759 } 20760 module.exports = arrayFilter; 20761 } 20762 }); 20763 20764
vendor: 238 bytes, lines 20764-20774
20764// node_modules/lodash/stubArray.js 20765 var require_stubArray = __commonJS({ 20766 "node_modules/lodash/stubArray.js"(exports, module) { 20767 function stubArray() { 20768 return []; 20769 } 20770 module.exports = stubArray; 20771 } 20772 }); 20773 20774
vendor: 767 bytes, lines 20774-20795
20774// node_modules/lodash/_getSymbols.js 20775 var require_getSymbols = __commonJS({ 20776 "node_modules/lodash/_getSymbols.js"(exports, module) { 20777 var arrayFilter = require_arrayFilter(); 20778 var stubArray = require_stubArray(); 20779 var objectProto = Object.prototype; 20780 var propertyIsEnumerable = objectProto.propertyIsEnumerable; 20781 var nativeGetSymbols = Object.getOwnPropertySymbols; 20782 var getSymbols = !nativeGetSymbols ? stubArray : function(object) { 20783 if (object == null) { 20784 return []; 20785 } 20786 object = Object(object); 20787 return arrayFilter(nativeGetSymbols(object), function(symbol) { 20788 return propertyIsEnumerable.call(object, symbol); 20789 }); 20790 }; 20791 module.exports = getSymbols; 20792 } 20793 }); 20794 20795
vendor: 398 bytes, lines 20795-20807
20795// node_modules/lodash/_copySymbols.js 20796 var require_copySymbols = __commonJS({ 20797 "node_modules/lodash/_copySymbols.js"(exports, module) { 20798 var copyObject = require_copyObject(); 20799 var getSymbols = require_getSymbols(); 20800 function copySymbols(source, object) { 20801 return copyObject(source, getSymbols(source), object); 20802 } 20803 module.exports = copySymbols; 20804 } 20805 }); 20806 20807
vendor: 423 bytes, lines 20807-20821
20807// node_modules/lodash/_arrayPush.js 20808 var require_arrayPush = __commonJS({ 20809 "node_modules/lodash/_arrayPush.js"(exports, module) { 20810 function arrayPush(array, values) { 20811 var index = -1, length2 = values.length, offset = array.length; 20812 while (++index < length2) { 20813 array[offset + index] = values[index]; 20814 } 20815 return array; 20816 } 20817 module.exports = arrayPush; 20818 } 20819 }); 20820 20821
vendor: 300 bytes, lines 20821-20830
20821// node_modules/lodash/_getPrototype.js 20822 var require_getPrototype = __commonJS({ 20823 "node_modules/lodash/_getPrototype.js"(exports, module) { 20824 var overArg = require_overArg(); 20825 var getPrototype = overArg(Object.getPrototypeOf, Object); 20826 module.exports = getPrototype; 20827 } 20828 }); 20829 20830
vendor: 693 bytes, lines 20830-20850
20830// node_modules/lodash/_getSymbolsIn.js 20831 var require_getSymbolsIn = __commonJS({ 20832 "node_modules/lodash/_getSymbolsIn.js"(exports, module) { 20833 var arrayPush = require_arrayPush(); 20834 var getPrototype = require_getPrototype(); 20835 var getSymbols = require_getSymbols(); 20836 var stubArray = require_stubArray(); 20837 var nativeGetSymbols = Object.getOwnPropertySymbols; 20838 var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { 20839 var result = []; 20840 while (object) { 20841 arrayPush(result, getSymbols(object)); 20842 object = getPrototype(object); 20843 } 20844 return result; 20845 }; 20846 module.exports = getSymbolsIn; 20847 } 20848 }); 20849 20850
vendor: 414 bytes, lines 20850-20862
20850// node_modules/lodash/_copySymbolsIn.js 20851 var require_copySymbolsIn = __commonJS({ 20852 "node_modules/lodash/_copySymbolsIn.js"(exports, module) { 20853 var copyObject = require_copyObject(); 20854 var getSymbolsIn = require_getSymbolsIn(); 20855 function copySymbolsIn(source, object) { 20856 return copyObject(source, getSymbolsIn(source), object); 20857 } 20858 module.exports = copySymbolsIn; 20859 } 20860 }); 20861 20862
vendor: 478 bytes, lines 20862-20875
20862// node_modules/lodash/_baseGetAllKeys.js 20863 var require_baseGetAllKeys = __commonJS({ 20864 "node_modules/lodash/_baseGetAllKeys.js"(exports, module) { 20865 var arrayPush = require_arrayPush(); 20866 var isArray = require_isArray(); 20867 function baseGetAllKeys(object, keysFunc, symbolsFunc) { 20868 var result = keysFunc(object); 20869 return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); 20870 } 20871 module.exports = baseGetAllKeys; 20872 } 20873 }); 20874 20875
vendor: 420 bytes, lines 20875-20888
20875// node_modules/lodash/_getAllKeys.js 20876 var require_getAllKeys = __commonJS({ 20877 "node_modules/lodash/_getAllKeys.js"(exports, module) { 20878 var baseGetAllKeys = require_baseGetAllKeys(); 20879 var getSymbols = require_getSymbols(); 20880 var keys = require_keys(); 20881 function getAllKeys(object) { 20882 return baseGetAllKeys(object, keys, getSymbols); 20883 } 20884 module.exports = getAllKeys; 20885 } 20886 }); 20887 20888
vendor: 442 bytes, lines 20888-20901
20888// node_modules/lodash/_getAllKeysIn.js 20889 var require_getAllKeysIn = __commonJS({ 20890 "node_modules/lodash/_getAllKeysIn.js"(exports, module) { 20891 var baseGetAllKeys = require_baseGetAllKeys(); 20892 var getSymbolsIn = require_getSymbolsIn(); 20893 var keysIn = require_keysIn(); 20894 function getAllKeysIn(object) { 20895 return baseGetAllKeys(object, keysIn, getSymbolsIn); 20896 } 20897 module.exports = getAllKeysIn; 20898 } 20899 }); 20900 20901
vendor: 308 bytes, lines 20901-20911
20901// node_modules/lodash/_DataView.js 20902 var require_DataView = __commonJS({ 20903 "node_modules/lodash/_DataView.js"(exports, module) { 20904 var getNative = require_getNative(); 20905 var root = require_root(); 20906 var DataView2 = getNative(root, "DataView"); 20907 module.exports = DataView2; 20908 } 20909 }); 20910 20911
vendor: 302 bytes, lines 20911-20921
20911// node_modules/lodash/_Promise.js 20912 var require_Promise = __commonJS({ 20913 "node_modules/lodash/_Promise.js"(exports, module) { 20914 var getNative = require_getNative(); 20915 var root = require_root(); 20916 var Promise2 = getNative(root, "Promise"); 20917 module.exports = Promise2; 20918 } 20919 }); 20920 20921
vendor: 278 bytes, lines 20921-20931
20921// node_modules/lodash/_Set.js 20922 var require_Set = __commonJS({ 20923 "node_modules/lodash/_Set.js"(exports, module) { 20924 var getNative = require_getNative(); 20925 var root = require_root(); 20926 var Set2 = getNative(root, "Set"); 20927 module.exports = Set2; 20928 } 20929 }); 20930 20931
vendor: 300 bytes, lines 20931-20941
20931// node_modules/lodash/_WeakMap.js 20932 var require_WeakMap = __commonJS({ 20933 "node_modules/lodash/_WeakMap.js"(exports, module) { 20934 var getNative = require_getNative(); 20935 var root = require_root(); 20936 var WeakMap = getNative(root, "WeakMap"); 20937 module.exports = WeakMap; 20938 } 20939 }); 20940 20941
vendor: 1,881 bytes, lines 20941-20987
20941// node_modules/lodash/_getTag.js 20942 var require_getTag = __commonJS({ 20943 "node_modules/lodash/_getTag.js"(exports, module) { 20944 var DataView2 = require_DataView(); 20945 var Map2 = require_Map(); 20946 var Promise2 = require_Promise(); 20947 var Set2 = require_Set(); 20948 var WeakMap = require_WeakMap(); 20949 var baseGetTag = require_baseGetTag(); 20950 var toSource = require_toSource(); 20951 var mapTag = "[object Map]"; 20952 var objectTag = "[object Object]"; 20953 var promiseTag = "[object Promise]"; 20954 var setTag = "[object Set]"; 20955 var weakMapTag = "[object WeakMap]"; 20956 var dataViewTag = "[object DataView]"; 20957 var dataViewCtorString = toSource(DataView2); 20958 var mapCtorString = toSource(Map2); 20959 var promiseCtorString = toSource(Promise2); 20960 var setCtorString = toSource(Set2); 20961 var weakMapCtorString = toSource(WeakMap); 20962 var getTag = baseGetTag; 20963 if (DataView2 && getTag(new DataView2(new ArrayBuffer(1))) != dataViewTag || Map2 && getTag(new Map2()) != mapTag || Promise2 && getTag(Promise2.resolve()) != promiseTag || Set2 && getTag(new Set2()) != setTag || WeakMap && getTag(new WeakMap()) != weakMapTag) { 20964 getTag = function(value2) { 20965 var result = baseGetTag(value2), Ctor = result == objectTag ? value2.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : ""; 20966 if (ctorString) { 20967 switch (ctorString) { 20968 case dataViewCtorString: 20969 return dataViewTag; 20970 case mapCtorString: 20971 return mapTag; 20972 case promiseCtorString: 20973 return promiseTag; 20974 case setCtorString: 20975 return setTag; 20976 case weakMapCtorString: 20977 return weakMapTag; 20978 } 20979 } 20980 return result; 20981 }; 20982 } 20983 module.exports = getTag; 20984 } 20985 }); 20986 20987
vendor: 627 bytes, lines 20987-21004
20987// node_modules/lodash/_initCloneArray.js 20988 var require_initCloneArray = __commonJS({ 20989 "node_modules/lodash/_initCloneArray.js"(exports, module) { 20990 var objectProto = Object.prototype; 20991 var hasOwnProperty = objectProto.hasOwnProperty; 20992 function initCloneArray(array) { 20993 var length2 = array.length, result = new array.constructor(length2); 20994 if (length2 && typeof array[0] == "string" && hasOwnProperty.call(array, "index")) { 20995 result.index = array.index; 20996 result.input = array.input; 20997 } 20998 return result; 20999 } 21000 module.exports = initCloneArray; 21001 } 21002 }); 21003 21004
vendor: 263 bytes, lines 21004-21013
21004// node_modules/lodash/_Uint8Array.js 21005 var require_Uint8Array = __commonJS({ 21006 "node_modules/lodash/_Uint8Array.js"(exports, module) { 21007 var root = require_root(); 21008 var Uint8Array2 = root.Uint8Array; 21009 module.exports = Uint8Array2; 21010 } 21011 }); 21012 21013
vendor: 477 bytes, lines 21013-21026
21013// node_modules/lodash/_cloneArrayBuffer.js 21014 var require_cloneArrayBuffer = __commonJS({ 21015 "node_modules/lodash/_cloneArrayBuffer.js"(exports, module) { 21016 var Uint8Array2 = require_Uint8Array(); 21017 function cloneArrayBuffer(arrayBuffer) { 21018 var result = new arrayBuffer.constructor(arrayBuffer.byteLength); 21019 new Uint8Array2(result).set(new Uint8Array2(arrayBuffer)); 21020 return result; 21021 } 21022 module.exports = cloneArrayBuffer; 21023 } 21024 }); 21025 21026
vendor: 488 bytes, lines 21026-21038
21026// node_modules/lodash/_cloneDataView.js 21027 var require_cloneDataView = __commonJS({ 21028 "node_modules/lodash/_cloneDataView.js"(exports, module) { 21029 var cloneArrayBuffer = require_cloneArrayBuffer(); 21030 function cloneDataView(dataView, isDeep) { 21031 var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; 21032 return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); 21033 } 21034 module.exports = cloneDataView; 21035 } 21036 }); 21037 21038
vendor: 415 bytes, lines 21038-21051
21038// node_modules/lodash/_cloneRegExp.js 21039 var require_cloneRegExp = __commonJS({ 21040 "node_modules/lodash/_cloneRegExp.js"(exports, module) { 21041 var reFlags = /\w*$/; 21042 function cloneRegExp(regexp) { 21043 var result = new regexp.constructor(regexp.source, reFlags.exec(regexp)); 21044 result.lastIndex = regexp.lastIndex; 21045 return result; 21046 } 21047 module.exports = cloneRegExp; 21048 } 21049 }); 21050 21051
vendor: 479 bytes, lines 21051-21064
21051// node_modules/lodash/_cloneSymbol.js 21052 var require_cloneSymbol = __commonJS({ 21053 "node_modules/lodash/_cloneSymbol.js"(exports, module) { 21054 var Symbol2 = require_Symbol(); 21055 var symbolProto = Symbol2 ? Symbol2.prototype : void 0; 21056 var symbolValueOf = symbolProto ? symbolProto.valueOf : void 0; 21057 function cloneSymbol(symbol) { 21058 return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {}; 21059 } 21060 module.exports = cloneSymbol; 21061 } 21062 }); 21063 21064
vendor: 506 bytes, lines 21064-21076
21064// node_modules/lodash/_cloneTypedArray.js 21065 var require_cloneTypedArray = __commonJS({ 21066 "node_modules/lodash/_cloneTypedArray.js"(exports, module) { 21067 var cloneArrayBuffer = require_cloneArrayBuffer(); 21068 function cloneTypedArray(typedArray, isDeep) { 21069 var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; 21070 return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); 21071 } 21072 module.exports = cloneTypedArray; 21073 } 21074 }); 21075 21076
vendor: 2,279 bytes, lines 21076-21140
21076// node_modules/lodash/_initCloneByTag.js 21077 var require_initCloneByTag = __commonJS({ 21078 "node_modules/lodash/_initCloneByTag.js"(exports, module) { 21079 var cloneArrayBuffer = require_cloneArrayBuffer(); 21080 var cloneDataView = require_cloneDataView(); 21081 var cloneRegExp = require_cloneRegExp(); 21082 var cloneSymbol = require_cloneSymbol(); 21083 var cloneTypedArray = require_cloneTypedArray(); 21084 var boolTag = "[object Boolean]"; 21085 var dateTag = "[object Date]"; 21086 var mapTag = "[object Map]"; 21087 var numberTag = "[object Number]"; 21088 var regexpTag = "[object RegExp]"; 21089 var setTag = "[object Set]"; 21090 var stringTag = "[object String]"; 21091 var symbolTag = "[object Symbol]"; 21092 var arrayBufferTag = "[object ArrayBuffer]"; 21093 var dataViewTag = "[object DataView]"; 21094 var float32Tag = "[object Float32Array]"; 21095 var float64Tag = "[object Float64Array]"; 21096 var int8Tag = "[object Int8Array]"; 21097 var int16Tag = "[object Int16Array]"; 21098 var int32Tag = "[object Int32Array]"; 21099 var uint8Tag = "[object Uint8Array]"; 21100 var uint8ClampedTag = "[object Uint8ClampedArray]"; 21101 var uint16Tag = "[object Uint16Array]"; 21102 var uint32Tag = "[object Uint32Array]"; 21103 function initCloneByTag(object, tag, isDeep) { 21104 var Ctor = object.constructor; 21105 switch (tag) { 21106 case arrayBufferTag: 21107 return cloneArrayBuffer(object); 21108 case boolTag: 21109 case dateTag: 21110 return new Ctor(+object); 21111 case dataViewTag: 21112 return cloneDataView(object, isDeep); 21113 case float32Tag: 21114 case float64Tag: 21115 case int8Tag: 21116 case int16Tag: 21117 case int32Tag: 21118 case uint8Tag: 21119 case uint8ClampedTag: 21120 case uint16Tag: 21121 case uint32Tag: 21122 return cloneTypedArray(object, isDeep); 21123 case mapTag: 21124 return new Ctor(); 21125 case numberTag: 21126 case stringTag: 21127 return new Ctor(object); 21128 case regexpTag: 21129 return cloneRegExp(object); 21130 case setTag: 21131 return new Ctor(); 21132 case symbolTag: 21133 return cloneSymbol(object); 21134 } 21135 } 21136 module.exports = initCloneByTag; 21137 } 21138 }); 21139 21140
vendor: 686 bytes, lines 21140-21165
21140// node_modules/lodash/_baseCreate.js 21141 var require_baseCreate = __commonJS({ 21142 "node_modules/lodash/_baseCreate.js"(exports, module) { 21143 var isObject2 = require_isObject(); 21144 var objectCreate = Object.create; 21145 var baseCreate = function() { 21146 function object() { 21147 } 21148 return function(proto) { 21149 if (!isObject2(proto)) { 21150 return {}; 21151 } 21152 if (objectCreate) { 21153 return objectCreate(proto); 21154 } 21155 object.prototype = proto; 21156 var result = new object(); 21157 object.prototype = void 0; 21158 return result; 21159 }; 21160 }(); 21161 module.exports = baseCreate; 21162 } 21163 }); 21164 21165
vendor: 518 bytes, lines 21165-21178
21165// node_modules/lodash/_initCloneObject.js 21166 var require_initCloneObject = __commonJS({ 21167 "node_modules/lodash/_initCloneObject.js"(exports, module) { 21168 var baseCreate = require_baseCreate(); 21169 var getPrototype = require_getPrototype(); 21170 var isPrototype = require_isPrototype(); 21171 function initCloneObject(object) { 21172 return typeof object.constructor == "function" && !isPrototype(object) ? baseCreate(getPrototype(object)) : {}; 21173 } 21174 module.exports = initCloneObject; 21175 } 21176 }); 21177 21178
vendor: 413 bytes, lines 21178-21191
21178// node_modules/lodash/_baseIsMap.js 21179 var require_baseIsMap = __commonJS({ 21180 "node_modules/lodash/_baseIsMap.js"(exports, module) { 21181 var getTag = require_getTag(); 21182 var isObjectLike = require_isObjectLike(); 21183 var mapTag = "[object Map]"; 21184 function baseIsMap(value2) { 21185 return isObjectLike(value2) && getTag(value2) == mapTag; 21186 } 21187 module.exports = baseIsMap; 21188 } 21189 }); 21190 21191
vendor: 407 bytes, lines 21191-21203
21191// node_modules/lodash/isMap.js 21192 var require_isMap = __commonJS({ 21193 "node_modules/lodash/isMap.js"(exports, module) { 21194 var baseIsMap = require_baseIsMap(); 21195 var baseUnary = require_baseUnary(); 21196 var nodeUtil = require_nodeUtil(); 21197 var nodeIsMap = nodeUtil && nodeUtil.isMap; 21198 var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap; 21199 module.exports = isMap; 21200 } 21201 }); 21202 21203
vendor: 413 bytes, lines 21203-21216
21203// node_modules/lodash/_baseIsSet.js 21204 var require_baseIsSet = __commonJS({ 21205 "node_modules/lodash/_baseIsSet.js"(exports, module) { 21206 var getTag = require_getTag(); 21207 var isObjectLike = require_isObjectLike(); 21208 var setTag = "[object Set]"; 21209 function baseIsSet(value2) { 21210 return isObjectLike(value2) && getTag(value2) == setTag; 21211 } 21212 module.exports = baseIsSet; 21213 } 21214 }); 21215 21216
vendor: 407 bytes, lines 21216-21228
21216// node_modules/lodash/isSet.js 21217 var require_isSet = __commonJS({ 21218 "node_modules/lodash/isSet.js"(exports, module) { 21219 var baseIsSet = require_baseIsSet(); 21220 var baseUnary = require_baseUnary(); 21221 var nodeUtil = require_nodeUtil(); 21222 var nodeIsSet = nodeUtil && nodeUtil.isSet; 21223 var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet; 21224 module.exports = isSet; 21225 } 21226 }); 21227 21228
vendor: 5,455 bytes, lines 21228-21349
21228// node_modules/lodash/_baseClone.js 21229 var require_baseClone = __commonJS({ 21230 "node_modules/lodash/_baseClone.js"(exports, module) { 21231 var Stack = require_Stack(); 21232 var arrayEach = require_arrayEach(); 21233 var assignValue = require_assignValue(); 21234 var baseAssign = require_baseAssign(); 21235 var baseAssignIn = require_baseAssignIn(); 21236 var cloneBuffer = require_cloneBuffer(); 21237 var copyArray = require_copyArray(); 21238 var copySymbols = require_copySymbols(); 21239 var copySymbolsIn = require_copySymbolsIn(); 21240 var getAllKeys = require_getAllKeys(); 21241 var getAllKeysIn = require_getAllKeysIn(); 21242 var getTag = require_getTag(); 21243 var initCloneArray = require_initCloneArray(); 21244 var initCloneByTag = require_initCloneByTag(); 21245 var initCloneObject = require_initCloneObject(); 21246 var isArray = require_isArray(); 21247 var isBuffer = require_isBuffer(); 21248 var isMap = require_isMap(); 21249 var isObject2 = require_isObject(); 21250 var isSet = require_isSet(); 21251 var keys = require_keys(); 21252 var keysIn = require_keysIn(); 21253 var CLONE_DEEP_FLAG = 1; 21254 var CLONE_FLAT_FLAG = 2; 21255 var CLONE_SYMBOLS_FLAG = 4; 21256 var argsTag = "[object Arguments]"; 21257 var arrayTag = "[object Array]"; 21258 var boolTag = "[object Boolean]"; 21259 var dateTag = "[object Date]"; 21260 var errorTag = "[object Error]"; 21261 var funcTag = "[object Function]"; 21262 var genTag = "[object GeneratorFunction]"; 21263 var mapTag = "[object Map]"; 21264 var numberTag = "[object Number]"; 21265 var objectTag = "[object Object]"; 21266 var regexpTag = "[object RegExp]"; 21267 var setTag = "[object Set]"; 21268 var stringTag = "[object String]"; 21269 var symbolTag = "[object Symbol]"; 21270 var weakMapTag = "[object WeakMap]"; 21271 var arrayBufferTag = "[object ArrayBuffer]"; 21272 var dataViewTag = "[object DataView]"; 21273 var float32Tag = "[object Float32Array]"; 21274 var float64Tag = "[object Float64Array]"; 21275 var int8Tag = "[object Int8Array]"; 21276 var int16Tag = "[object Int16Array]"; 21277 var int32Tag = "[object Int32Array]"; 21278 var uint8Tag = "[object Uint8Array]"; 21279 var uint8ClampedTag = "[object Uint8ClampedArray]"; 21280 var uint16Tag = "[object Uint16Array]"; 21281 var uint32Tag = "[object Uint32Array]"; 21282 var cloneableTags = {}; 21283 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; 21284 cloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false; 21285 function baseClone(value2, bitmask, customizer, key, object, stack) { 21286 var result, isDeep = bitmask & CLONE_DEEP_FLAG, isFlat = bitmask & CLONE_FLAT_FLAG, isFull = bitmask & CLONE_SYMBOLS_FLAG; 21287 if (customizer) { 21288 result = object ? customizer(value2, key, object, stack) : customizer(value2); 21289 } 21290 if (result !== void 0) { 21291 return result; 21292 } 21293 if (!isObject2(value2)) { 21294 return value2; 21295 } 21296 var isArr = isArray(value2); 21297 if (isArr) { 21298 result = initCloneArray(value2); 21299 if (!isDeep) { 21300 return copyArray(value2, result); 21301 } 21302 } else { 21303 var tag = getTag(value2), isFunc = tag == funcTag || tag == genTag; 21304 if (isBuffer(value2)) { 21305 return cloneBuffer(value2, isDeep); 21306 } 21307 if (tag == objectTag || tag == argsTag || isFunc && !object) { 21308 result = isFlat || isFunc ? {} : initCloneObject(value2); 21309 if (!isDeep) { 21310 return isFlat ? copySymbolsIn(value2, baseAssignIn(result, value2)) : copySymbols(value2, baseAssign(result, value2)); 21311 } 21312 } else { 21313 if (!cloneableTags[tag]) { 21314 return object ? value2 : {}; 21315 } 21316 result = initCloneByTag(value2, tag, isDeep); 21317 } 21318 } 21319 stack || (stack = new Stack()); 21320 var stacked = stack.get(value2); 21321 if (stacked) { 21322 return stacked; 21323 } 21324 stack.set(value2, result); 21325 if (isSet(value2)) { 21326 value2.forEach(function(subValue) { 21327 result.add(baseClone(subValue, bitmask, customizer, subValue, value2, stack)); 21328 }); 21329 } else if (isMap(value2)) { 21330 value2.forEach(function(subValue, key2) { 21331 result.set(key2, baseClone(subValue, bitmask, customizer, key2, value2, stack)); 21332 }); 21333 } 21334 var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys; 21335 var props = isArr ? void 0 : keysFunc(value2); 21336 arrayEach(props || value2, function(subValue, key2) { 21337 if (props) { 21338 key2 = subValue; 21339 subValue = value2[key2]; 21340 } 21341 assignValue(result, key2, baseClone(subValue, bitmask, customizer, key2, value2, stack)); 21342 }); 21343 return result; 21344 } 21345 module.exports = baseClone; 21346 } 21347 }); 21348 21349
vendor: 527 bytes, lines 21349-21363
21349// node_modules/lodash/cloneDeepWith.js 21350 var require_cloneDeepWith = __commonJS({ 21351 "node_modules/lodash/cloneDeepWith.js"(exports, module) { 21352 var baseClone = require_baseClone(); 21353 var CLONE_DEEP_FLAG = 1; 21354 var CLONE_SYMBOLS_FLAG = 4; 21355 function cloneDeepWith2(value2, customizer) { 21356 customizer = typeof customizer == "function" ? customizer : void 0; 21357 return baseClone(value2, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer); 21358 } 21359 module.exports = cloneDeepWith2; 21360 } 21361 }); 21362 21363
vendor: 2,850 bytes, lines 21363-21435
21363// node_modules/crypt/crypt.js 21364 var require_crypt = __commonJS({ 21365 "node_modules/crypt/crypt.js"(exports, module) { 21366 (function() { 21367 var base64map = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", crypt = { 21368 rotl: function(n, b) { 21369 return n << b | n >>> 32 - b; 21370 }, 21371 rotr: function(n, b) { 21372 return n << 32 - b | n >>> b; 21373 }, 21374 endian: function(n) { 21375 if (n.constructor == Number) { 21376 return crypt.rotl(n, 8) & 16711935 | crypt.rotl(n, 24) & 4278255360; 21377 } 21378 for (var i2 = 0; i2 < n.length; i2++) 21379 n[i2] = crypt.endian(n[i2]); 21380 return n; 21381 }, 21382 randomBytes: function(n) { 21383 for (var bytes = []; n > 0; n--) 21384 bytes.push(Math.floor(Math.random() * 256)); 21385 return bytes; 21386 }, 21387 bytesToWords: function(bytes) { 21388 for (var words = [], i2 = 0, b = 0; i2 < bytes.length; i2++, b += 8) 21389 words[b >>> 5] |= bytes[i2] << 24 - b % 32; 21390 return words; 21391 }, 21392 wordsToBytes: function(words) { 21393 for (var bytes = [], b = 0; b < words.length * 32; b += 8) 21394 bytes.push(words[b >>> 5] >>> 24 - b % 32 & 255); 21395 return bytes; 21396 }, 21397 bytesToHex: function(bytes) { 21398 for (var hex = [], i2 = 0; i2 < bytes.length; i2++) { 21399 hex.push((bytes[i2] >>> 4).toString(16)); 21400 hex.push((bytes[i2] & 15).toString(16)); 21401 } 21402 return hex.join(""); 21403 }, 21404 hexToBytes: function(hex) { 21405 for (var bytes = [], c = 0; c < hex.length; c += 2) 21406 bytes.push(parseInt(hex.substr(c, 2), 16)); 21407 return bytes; 21408 }, 21409 bytesToBase64: function(bytes) { 21410 for (var base64 = [], i2 = 0; i2 < bytes.length; i2 += 3) { 21411 var triplet = bytes[i2] << 16 | bytes[i2 + 1] << 8 | bytes[i2 + 2]; 21412 for (var j = 0; j < 4; j++) 21413 if (i2 * 8 + j * 6 <= bytes.length * 8) 21414 base64.push(base64map.charAt(triplet >>> 6 * (3 - j) & 63)); 21415 else 21416 base64.push("="); 21417 } 21418 return base64.join(""); 21419 }, 21420 base64ToBytes: function(base64) { 21421 base64 = base64.replace(/[^A-Z0-9+\/]/ig, ""); 21422 for (var bytes = [], i2 = 0, imod4 = 0; i2 < base64.length; imod4 = ++i2 % 4) { 21423 if (imod4 == 0) 21424 continue; 21425 bytes.push((base64map.indexOf(base64.charAt(i2 - 1)) & Math.pow(2, -2 * imod4 + 8) - 1) << imod4 * 2 | base64map.indexOf(base64.charAt(i2)) >>> 6 - imod4 * 2); 21426 } 21427 return bytes; 21428 } 21429 }; 21430 module.exports = crypt; 21431 })(); 21432 } 21433 }); 21434 21435
vendor: 934 bytes, lines 21435-21464
21435// node_modules/charenc/charenc.js 21436 var require_charenc = __commonJS({ 21437 "node_modules/charenc/charenc.js"(exports, module) { 21438 var charenc = { 21439 utf8: { 21440 stringToBytes: function(str) { 21441 return charenc.bin.stringToBytes(unescape(encodeURIComponent(str))); 21442 }, 21443 bytesToString: function(bytes) { 21444 return decodeURIComponent(escape(charenc.bin.bytesToString(bytes))); 21445 } 21446 }, 21447 bin: { 21448 stringToBytes: function(str) { 21449 for (var bytes = [], i2 = 0; i2 < str.length; i2++) 21450 bytes.push(str.charCodeAt(i2) & 255); 21451 return bytes; 21452 }, 21453 bytesToString: function(bytes) { 21454 for (var str = [], i2 = 0; i2 < bytes.length; i2++) 21455 str.push(String.fromCharCode(bytes[i2])); 21456 return str.join(""); 21457 } 21458 } 21459 }; 21460 module.exports = charenc; 21461 } 21462 }); 21463 21464
vendor: 598 bytes, lines 21464-21479
21464// node_modules/is-buffer/index.js 21465 var require_is_buffer = __commonJS({ 21466 "node_modules/is-buffer/index.js"(exports, module) { 21467 module.exports = function(obj) { 21468 return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer); 21469 }; 21470 function isBuffer(obj) { 21471 return !!obj.constructor && typeof obj.constructor.isBuffer === "function" && obj.constructor.isBuffer(obj); 21472 } 21473 function isSlowBuffer(obj) { 21474 return typeof obj.readFloatLE === "function" && typeof obj.slice === "function" && isBuffer(obj.slice(0, 0)); 21475 } 21476 } 21477 }); 21478 21479
vendor: 6,403 bytes, lines 21479-21601
21479// node_modules/md5/md5.js 21480 var require_md5 = __commonJS({ 21481 "node_modules/md5/md5.js"(exports, module) { 21482 (function() { 21483 var crypt = require_crypt(), utf8 = require_charenc().utf8, isBuffer = require_is_buffer(), bin = require_charenc().bin, md52 = function(message, options) { 21484 if (message.constructor == String) 21485 if (options && options.encoding === "binary") 21486 message = bin.stringToBytes(message); 21487 else 21488 message = utf8.stringToBytes(message); 21489 else if (isBuffer(message)) 21490 message = Array.prototype.slice.call(message, 0); 21491 else if (!Array.isArray(message) && message.constructor !== Uint8Array) 21492 message = message.toString(); 21493 var m = crypt.bytesToWords(message), l = message.length * 8, a = 1732584193, b = -271733879, c = -1732584194, d = 271733878; 21494 for (var i2 = 0; i2 < m.length; i2++) { 21495 m[i2] = (m[i2] << 8 | m[i2] >>> 24) & 16711935 | (m[i2] << 24 | m[i2] >>> 8) & 4278255360; 21496 } 21497 m[l >>> 5] |= 128 << l % 32; 21498 m[(l + 64 >>> 9 << 4) + 14] = l; 21499 var FF = md52._ff, GG = md52._gg, HH = md52._hh, II = md52._ii; 21500 for (var i2 = 0; i2 < m.length; i2 += 16) { 21501 var aa = a, bb = b, cc = c, dd = d; 21502 a = FF(a, b, c, d, m[i2 + 0], 7, -680876936); 21503 d = FF(d, a, b, c, m[i2 + 1], 12, -389564586); 21504 c = FF(c, d, a, b, m[i2 + 2], 17, 606105819); 21505 b = FF(b, c, d, a, m[i2 + 3], 22, -1044525330); 21506 a = FF(a, b, c, d, m[i2 + 4], 7, -176418897); 21507 d = FF(d, a, b, c, m[i2 + 5], 12, 1200080426); 21508 c = FF(c, d, a, b, m[i2 + 6], 17, -1473231341); 21509 b = FF(b, c, d, a, m[i2 + 7], 22, -45705983); 21510 a = FF(a, b, c, d, m[i2 + 8], 7, 1770035416); 21511 d = FF(d, a, b, c, m[i2 + 9], 12, -1958414417); 21512 c = FF(c, d, a, b, m[i2 + 10], 17, -42063); 21513 b = FF(b, c, d, a, m[i2 + 11], 22, -1990404162); 21514 a = FF(a, b, c, d, m[i2 + 12], 7, 1804603682); 21515 d = FF(d, a, b, c, m[i2 + 13], 12, -40341101); 21516 c = FF(c, d, a, b, m[i2 + 14], 17, -1502002290); 21517 b = FF(b, c, d, a, m[i2 + 15], 22, 1236535329); 21518 a = GG(a, b, c, d, m[i2 + 1], 5, -165796510); 21519 d = GG(d, a, b, c, m[i2 + 6], 9, -1069501632); 21520 c = GG(c, d, a, b, m[i2 + 11], 14, 643717713); 21521 b = GG(b, c, d, a, m[i2 + 0], 20, -373897302); 21522 a = GG(a, b, c, d, m[i2 + 5], 5, -701558691); 21523 d = GG(d, a, b, c, m[i2 + 10], 9, 38016083); 21524 c = GG(c, d, a, b, m[i2 + 15], 14, -660478335); 21525 b = GG(b, c, d, a, m[i2 + 4], 20, -405537848); 21526 a = GG(a, b, c, d, m[i2 + 9], 5, 568446438); 21527 d = GG(d, a, b, c, m[i2 + 14], 9, -1019803690); 21528 c = GG(c, d, a, b, m[i2 + 3], 14, -187363961); 21529 b = GG(b, c, d, a, m[i2 + 8], 20, 1163531501); 21530 a = GG(a, b, c, d, m[i2 + 13], 5, -1444681467); 21531 d = GG(d, a, b, c, m[i2 + 2], 9, -51403784); 21532 c = GG(c, d, a, b, m[i2 + 7], 14, 1735328473); 21533 b = GG(b, c, d, a, m[i2 + 12], 20, -1926607734); 21534 a = HH(a, b, c, d, m[i2 + 5], 4, -378558); 21535 d = HH(d, a, b, c, m[i2 + 8], 11, -2022574463); 21536 c = HH(c, d, a, b, m[i2 + 11], 16, 1839030562); 21537 b = HH(b, c, d, a, m[i2 + 14], 23, -35309556); 21538 a = HH(a, b, c, d, m[i2 + 1], 4, -1530992060); 21539 d = HH(d, a, b, c, m[i2 + 4], 11, 1272893353); 21540 c = HH(c, d, a, b, m[i2 + 7], 16, -155497632); 21541 b = HH(b, c, d, a, m[i2 + 10], 23, -1094730640); 21542 a = HH(a, b, c, d, m[i2 + 13], 4, 681279174); 21543 d = HH(d, a, b, c, m[i2 + 0], 11, -358537222); 21544 c = HH(c, d, a, b, m[i2 + 3], 16, -722521979); 21545 b = HH(b, c, d, a, m[i2 + 6], 23, 76029189); 21546 a = HH(a, b, c, d, m[i2 + 9], 4, -640364487); 21547 d = HH(d, a, b, c, m[i2 + 12], 11, -421815835); 21548 c = HH(c, d, a, b, m[i2 + 15], 16, 530742520); 21549 b = HH(b, c, d, a, m[i2 + 2], 23, -995338651); 21550 a = II(a, b, c, d, m[i2 + 0], 6, -198630844); 21551 d = II(d, a, b, c, m[i2 + 7], 10, 1126891415); 21552 c = II(c, d, a, b, m[i2 + 14], 15, -1416354905); 21553 b = II(b, c, d, a, m[i2 + 5], 21, -57434055); 21554 a = II(a, b, c, d, m[i2 + 12], 6, 1700485571); 21555 d = II(d, a, b, c, m[i2 + 3], 10, -1894986606); 21556 c = II(c, d, a, b, m[i2 + 10], 15, -1051523); 21557 b = II(b, c, d, a, m[i2 + 1], 21, -2054922799); 21558 a = II(a, b, c, d, m[i2 + 8], 6, 1873313359); 21559 d = II(d, a, b, c, m[i2 + 15], 10, -30611744); 21560 c = II(c, d, a, b, m[i2 + 6], 15, -1560198380); 21561 b = II(b, c, d, a, m[i2 + 13], 21, 1309151649); 21562 a = II(a, b, c, d, m[i2 + 4], 6, -145523070); 21563 d = II(d, a, b, c, m[i2 + 11], 10, -1120210379); 21564 c = II(c, d, a, b, m[i2 + 2], 15, 718787259); 21565 b = II(b, c, d, a, m[i2 + 9], 21, -343485551); 21566 a = a + aa >>> 0; 21567 b = b + bb >>> 0; 21568 c = c + cc >>> 0; 21569 d = d + dd >>> 0; 21570 } 21571 return crypt.endian([a, b, c, d]); 21572 }; 21573 md52._ff = function(a, b, c, d, x, s, t) { 21574 var n = a + (b & c | ~b & d) + (x >>> 0) + t; 21575 return (n << s | n >>> 32 - s) + b; 21576 }; 21577 md52._gg = function(a, b, c, d, x, s, t) { 21578 var n = a + (b & d | c & ~d) + (x >>> 0) + t; 21579 return (n << s | n >>> 32 - s) + b; 21580 }; 21581 md52._hh = function(a, b, c, d, x, s, t) { 21582 var n = a + (b ^ c ^ d) + (x >>> 0) + t; 21583 return (n << s | n >>> 32 - s) + b; 21584 }; 21585 md52._ii = function(a, b, c, d, x, s, t) { 21586 var n = a + (c ^ (b | ~d)) + (x >>> 0) + t; 21587 return (n << s | n >>> 32 - s) + b; 21588 }; 21589 md52._blocksize = 16; 21590 md52._digestsize = 16; 21591 module.exports = function(message, options) { 21592 if (message === void 0 || message === null) 21593 throw new Error("Illegal argument " + message); 21594 var digestbytes = crypt.wordsToBytes(md52(message, options)); 21595 return options && options.asBytes ? digestbytes : options && options.asString ? bin.bytesToString(digestbytes) : crypt.bytesToHex(digestbytes); 21596 }; 21597 })(); 21598 } 21599 }); 21600 21601
vendor: 50,736 bytes, lines 21601-23055
21601// node_modules/highlight.js/lib/core.js 21602 var require_core = __commonJS({ 21603 "node_modules/highlight.js/lib/core.js"(exports, module) { 21604 function deepFreeze(obj) { 21605 if (obj instanceof Map) { 21606 obj.clear = obj.delete = obj.set = function() { 21607 throw new Error("map is read-only"); 21608 }; 21609 } else if (obj instanceof Set) { 21610 obj.add = obj.clear = obj.delete = function() { 21611 throw new Error("set is read-only"); 21612 }; 21613 } 21614 Object.freeze(obj); 21615 Object.getOwnPropertyNames(obj).forEach(function(name2) { 21616 var prop = obj[name2]; 21617 if (typeof prop == "object" && !Object.isFrozen(prop)) { 21618 deepFreeze(prop); 21619 } 21620 }); 21621 return obj; 21622 } 21623 var deepFreezeEs6 = deepFreeze; 21624 var _default = deepFreeze; 21625 deepFreezeEs6.default = _default; 21626 var Response = class { 21627 constructor(mode) { 21628 if (mode.data === void 0) 21629 mode.data = {}; 21630 this.data = mode.data; 21631 this.isMatchIgnored = false; 21632 } 21633 ignoreMatch() { 21634 this.isMatchIgnored = true; 21635 } 21636 }; 21637 function escapeHTML(value2) { 21638 return value2.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'"); 21639 } 21640 function inherit(original, ...objects) { 21641 const result = /* @__PURE__ */ Object.create(null); 21642 for (const key in original) { 21643 result[key] = original[key]; 21644 } 21645 objects.forEach(function(obj) { 21646 for (const key in obj) { 21647 result[key] = obj[key]; 21648 } 21649 }); 21650 return result; 21651 } 21652 var SPAN_CLOSE = "</span>"; 21653 var emitsWrappingTags = (node) => { 21654 return !!node.kind; 21655 }; 21656 var HTMLRenderer = class { 21657 constructor(parseTree, options) { 21658 this.buffer = ""; 21659 this.classPrefix = options.classPrefix; 21660 parseTree.walk(this); 21661 } 21662 addText(text) { 21663 this.buffer += escapeHTML(text); 21664 } 21665 openNode(node) { 21666 if (!emitsWrappingTags(node)) 21667 return; 21668 let className = node.kind; 21669 if (!node.sublanguage) { 21670 className = `${this.classPrefix}${className}`; 21671 } 21672 this.span(className); 21673 } 21674 closeNode(node) { 21675 if (!emitsWrappingTags(node)) 21676 return; 21677 this.buffer += SPAN_CLOSE; 21678 } 21679 value() { 21680 return this.buffer; 21681 } 21682 span(className) { 21683 this.buffer += `<span class="${className}">`; 21684 } 21685 }; 21686 var TokenTree = class { 21687 constructor() { 21688 this.rootNode = { children: [] }; 21689 this.stack = [this.rootNode]; 21690 } 21691 get top() { 21692 return this.stack[this.stack.length - 1]; 21693 } 21694 get root() { 21695 return this.rootNode; 21696 } 21697 add(node) { 21698 this.top.children.push(node); 21699 } 21700 openNode(kind) { 21701 const node = { kind, children: [] }; 21702 this.add(node); 21703 this.stack.push(node); 21704 } 21705 closeNode() { 21706 if (this.stack.length > 1) { 21707 return this.stack.pop(); 21708 } 21709 return void 0; 21710 } 21711 closeAllNodes() { 21712 while (this.closeNode()) 21713 ; 21714 } 21715 toJSON() { 21716 return JSON.stringify(this.rootNode, null, 4); 21717 } 21718 walk(builder) { 21719 return this.constructor._walk(builder, this.rootNode); 21720 } 21721 static _walk(builder, node) { 21722 if (typeof node === "string") { 21723 builder.addText(node); 21724 } else if (node.children) { 21725 builder.openNode(node); 21726 node.children.forEach((child) => this._walk(builder, child)); 21727 builder.closeNode(node); 21728 } 21729 return builder; 21730 } 21731 static _collapse(node) { 21732 if (typeof node === "string") 21733 return; 21734 if (!node.children) 21735 return; 21736 if (node.children.every((el) => typeof el === "string")) { 21737 node.children = [node.children.join("")]; 21738 } else { 21739 node.children.forEach((child) => { 21740 TokenTree._collapse(child); 21741 }); 21742 } 21743 } 21744 }; 21745 var TokenTreeEmitter = class extends TokenTree { 21746 constructor(options) { 21747 super(); 21748 this.options = options; 21749 } 21750 addKeyword(text, kind) { 21751 if (text === "") { 21752 return; 21753 } 21754 this.openNode(kind); 21755 this.addText(text); 21756 this.closeNode(); 21757 } 21758 addText(text) { 21759 if (text === "") { 21760 return; 21761 } 21762 this.add(text); 21763 } 21764 addSublanguage(emitter, name2) { 21765 const node = emitter.root; 21766 node.kind = name2; 21767 node.sublanguage = true; 21768 this.add(node); 21769 } 21770 toHTML() { 21771 const renderer = new HTMLRenderer(this, this.options); 21772 return renderer.value(); 21773 } 21774 finalize() { 21775 return true; 21776 } 21777 }; 21778 function escape2(value2) { 21779 return new RegExp(value2.replace(/[-/\\^$*+?.()|[\]{}]/g, "\\$&"), "m"); 21780 } 21781 function source(re2) { 21782 if (!re2) 21783 return null; 21784 if (typeof re2 === "string") 21785 return re2; 21786 return re2.source; 21787 } 21788 function concat(...args) { 21789 const joined = args.map((x) => source(x)).join(""); 21790 return joined; 21791 } 21792 function either(...args) { 21793 const joined = "(" + args.map((x) => source(x)).join("|") + ")"; 21794 return joined; 21795 } 21796 function countMatchGroups(re2) { 21797 return new RegExp(re2.toString() + "|").exec("").length - 1; 21798 } 21799 function startsWith(re2, lexeme) { 21800 const match = re2 && re2.exec(lexeme); 21801 return match && match.index === 0; 21802 } 21803 var BACKREF_RE = /\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./; 21804 function join(regexps, separator = "|") { 21805 let numCaptures = 0; 21806 return regexps.map((regex) => { 21807 numCaptures += 1; 21808 const offset = numCaptures; 21809 let re2 = source(regex); 21810 let out = ""; 21811 while (re2.length > 0) { 21812 const match = BACKREF_RE.exec(re2); 21813 if (!match) { 21814 out += re2; 21815 break; 21816 } 21817 out += re2.substring(0, match.index); 21818 re2 = re2.substring(match.index + match[0].length); 21819 if (match[0][0] === "\\" && match[1]) { 21820 out += "\\" + String(Number(match[1]) + offset); 21821 } else { 21822 out += match[0]; 21823 if (match[0] === "(") { 21824 numCaptures++; 21825 } 21826 } 21827 } 21828 return out; 21829 }).map((re2) => `(${re2})`).join(separator); 21830 } 21831 var MATCH_NOTHING_RE = /\b\B/; 21832 var IDENT_RE = "[a-zA-Z]\\w*"; 21833 var UNDERSCORE_IDENT_RE = "[a-zA-Z_]\\w*"; 21834 var NUMBER_RE = "\\b\\d+(\\.\\d+)?"; 21835 var C_NUMBER_RE = "(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)"; 21836 var BINARY_NUMBER_RE = "\\b(0b[01]+)"; 21837 var RE_STARTERS_RE = "!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~"; 21838 var SHEBANG = (opts = {}) => { 21839 const beginShebang = /^#![ ]*\//; 21840 if (opts.binary) { 21841 opts.begin = concat( 21842 beginShebang, 21843 /.*\b/, 21844 opts.binary, 21845 /\b.*/ 21846 ); 21847 } 21848 return inherit({ 21849 className: "meta", 21850 begin: beginShebang, 21851 end: /$/, 21852 relevance: 0, 21853 "on:begin": (m, resp) => { 21854 if (m.index !== 0) 21855 resp.ignoreMatch(); 21856 } 21857 }, opts); 21858 }; 21859 var BACKSLASH_ESCAPE = { 21860 begin: "\\\\[\\s\\S]", 21861 relevance: 0 21862 }; 21863 var APOS_STRING_MODE = { 21864 className: "string", 21865 begin: "'", 21866 end: "'", 21867 illegal: "\\n", 21868 contains: [BACKSLASH_ESCAPE] 21869 }; 21870 var QUOTE_STRING_MODE = { 21871 className: "string", 21872 begin: '"', 21873 end: '"', 21874 illegal: "\\n", 21875 contains: [BACKSLASH_ESCAPE] 21876 }; 21877 var PHRASAL_WORDS_MODE = { 21878 begin: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/ 21879 }; 21880 var COMMENT = function(begin, end, modeOptions = {}) { 21881 const mode = inherit( 21882 { 21883 className: "comment", 21884 begin, 21885 end, 21886 contains: [] 21887 }, 21888 modeOptions 21889 ); 21890 mode.contains.push(PHRASAL_WORDS_MODE); 21891 mode.contains.push({ 21892 className: "doctag", 21893 begin: "(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):", 21894 relevance: 0 21895 }); 21896 return mode; 21897 }; 21898 var C_LINE_COMMENT_MODE = COMMENT("//", "$"); 21899 var C_BLOCK_COMMENT_MODE = COMMENT("/\\*", "\\*/"); 21900 var HASH_COMMENT_MODE = COMMENT("#", "$"); 21901 var NUMBER_MODE = { 21902 className: "number", 21903 begin: NUMBER_RE, 21904 relevance: 0 21905 }; 21906 var C_NUMBER_MODE = { 21907 className: "number", 21908 begin: C_NUMBER_RE, 21909 relevance: 0 21910 }; 21911 var BINARY_NUMBER_MODE = { 21912 className: "number", 21913 begin: BINARY_NUMBER_RE, 21914 relevance: 0 21915 }; 21916 var CSS_NUMBER_MODE = { 21917 className: "number", 21918 begin: NUMBER_RE + "(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?", 21919 relevance: 0 21920 }; 21921 var REGEXP_MODE = { 21922 begin: /(?=\/[^/\n]*\/)/, 21923 contains: [{ 21924 className: "regexp", 21925 begin: /\//, 21926 end: /\/[gimuy]*/, 21927 illegal: /\n/, 21928 contains: [ 21929 BACKSLASH_ESCAPE, 21930 { 21931 begin: /\[/, 21932 end: /\]/, 21933 relevance: 0, 21934 contains: [BACKSLASH_ESCAPE] 21935 } 21936 ] 21937 }] 21938 }; 21939 var TITLE_MODE = { 21940 className: "title", 21941 begin: IDENT_RE, 21942 relevance: 0 21943 }; 21944 var UNDERSCORE_TITLE_MODE = { 21945 className: "title", 21946 begin: UNDERSCORE_IDENT_RE, 21947 relevance: 0 21948 }; 21949 var METHOD_GUARD = { 21950 begin: "\\.\\s*" + UNDERSCORE_IDENT_RE, 21951 relevance: 0 21952 }; 21953 var END_SAME_AS_BEGIN = function(mode) { 21954 return Object.assign( 21955 mode, 21956 { 21957 "on:begin": (m, resp) => { 21958 resp.data._beginMatch = m[1]; 21959 }, 21960 "on:end": (m, resp) => { 21961 if (resp.data._beginMatch !== m[1]) 21962 resp.ignoreMatch(); 21963 } 21964 } 21965 ); 21966 }; 21967 var MODES = /* @__PURE__ */ Object.freeze({ 21968 __proto__: null, 21969 MATCH_NOTHING_RE, 21970 IDENT_RE, 21971 UNDERSCORE_IDENT_RE, 21972 NUMBER_RE, 21973 C_NUMBER_RE, 21974 BINARY_NUMBER_RE, 21975 RE_STARTERS_RE, 21976 SHEBANG, 21977 BACKSLASH_ESCAPE, 21978 APOS_STRING_MODE, 21979 QUOTE_STRING_MODE, 21980 PHRASAL_WORDS_MODE, 21981 COMMENT, 21982 C_LINE_COMMENT_MODE, 21983 C_BLOCK_COMMENT_MODE, 21984 HASH_COMMENT_MODE, 21985 NUMBER_MODE, 21986 C_NUMBER_MODE, 21987 BINARY_NUMBER_MODE, 21988 CSS_NUMBER_MODE, 21989 REGEXP_MODE, 21990 TITLE_MODE, 21991 UNDERSCORE_TITLE_MODE, 21992 METHOD_GUARD, 21993 END_SAME_AS_BEGIN 21994 }); 21995 function skipIfhasPrecedingDot(match, response) { 21996 const before = match.input[match.index - 1]; 21997 if (before === ".") { 21998 response.ignoreMatch(); 21999 } 22000 } 22001 function beginKeywords(mode, parent) { 22002 if (!parent) 22003 return; 22004 if (!mode.beginKeywords) 22005 return; 22006 mode.begin = "\\b(" + mode.beginKeywords.split(" ").join("|") + ")(?!\\.)(?=\\b|\\s)"; 22007 mode.__beforeBegin = skipIfhasPrecedingDot; 22008 mode.keywords = mode.keywords || mode.beginKeywords; 22009 delete mode.beginKeywords; 22010 if (mode.relevance === void 0) 22011 mode.relevance = 0; 22012 } 22013 function compileIllegal(mode, _parent) { 22014 if (!Array.isArray(mode.illegal)) 22015 return; 22016 mode.illegal = either(...mode.illegal); 22017 } 22018 function compileMatch(mode, _parent) { 22019 if (!mode.match) 22020 return; 22021 if (mode.begin || mode.end) 22022 throw new Error("begin & end are not supported with match"); 22023 mode.begin = mode.match; 22024 delete mode.match; 22025 } 22026 function compileRelevance(mode, _parent) { 22027 if (mode.relevance === void 0) 22028 mode.relevance = 1; 22029 } 22030 var COMMON_KEYWORDS = [ 22031 "of", 22032 "and", 22033 "for", 22034 "in", 22035 "not", 22036 "or", 22037 "if", 22038 "then", 22039 "parent", 22040 "list", 22041 "value" 22042 ]; 22043 var DEFAULT_KEYWORD_CLASSNAME = "keyword"; 22044 function compileKeywords(rawKeywords, caseInsensitive, className = DEFAULT_KEYWORD_CLASSNAME) { 22045 const compiledKeywords = {}; 22046 if (typeof rawKeywords === "string") { 22047 compileList(className, rawKeywords.split(" ")); 22048 } else if (Array.isArray(rawKeywords)) { 22049 compileList(className, rawKeywords); 22050 } else { 22051 Object.keys(rawKeywords).forEach(function(className2) { 22052 Object.assign( 22053 compiledKeywords, 22054 compileKeywords(rawKeywords[className2], caseInsensitive, className2) 22055 ); 22056 }); 22057 } 22058 return compiledKeywords; 22059 function compileList(className2, keywordList) { 22060 if (caseInsensitive) { 22061 keywordList = keywordList.map((x) => x.toLowerCase()); 22062 } 22063 keywordList.forEach(function(keyword) { 22064 const pair = keyword.split("|"); 22065 compiledKeywords[pair[0]] = [className2, scoreForKeyword(pair[0], pair[1])]; 22066 }); 22067 } 22068 } 22069 function scoreForKeyword(keyword, providedScore) { 22070 if (providedScore) { 22071 return Number(providedScore); 22072 } 22073 return commonKeyword(keyword) ? 0 : 1; 22074 } 22075 function commonKeyword(keyword) { 22076 return COMMON_KEYWORDS.includes(keyword.toLowerCase()); 22077 } 22078 function compileLanguage(language, { plugins }) { 22079 function langRe(value2, global2) { 22080 return new RegExp( 22081 source(value2), 22082 "m" + (language.case_insensitive ? "i" : "") + (global2 ? "g" : "") 22083 ); 22084 } 22085 class MultiRegex { 22086 constructor() { 22087 this.matchIndexes = {}; 22088 this.regexes = []; 22089 this.matchAt = 1; 22090 this.position = 0; 22091 } 22092 addRule(re2, opts) { 22093 opts.position = this.position++; 22094 this.matchIndexes[this.matchAt] = opts; 22095 this.regexes.push([opts, re2]); 22096 this.matchAt += countMatchGroups(re2) + 1; 22097 } 22098 compile() { 22099 if (this.regexes.length === 0) { 22100 this.exec = () => null; 22101 } 22102 const terminators = this.regexes.map((el) => el[1]); 22103 this.matcherRe = langRe(join(terminators), true); 22104 this.lastIndex = 0; 22105 } 22106 exec(s) { 22107 this.matcherRe.lastIndex = this.lastIndex; 22108 const match = this.matcherRe.exec(s); 22109 if (!match) { 22110 return null; 22111 } 22112 const i2 = match.findIndex((el, i3) => i3 > 0 && el !== void 0); 22113 const matchData = this.matchIndexes[i2]; 22114 match.splice(0, i2); 22115 return Object.assign(match, matchData); 22116 } 22117 } 22118 class ResumableMultiRegex { 22119 constructor() { 22120 this.rules = []; 22121 this.multiRegexes = []; 22122 this.count = 0; 22123 this.lastIndex = 0; 22124 this.regexIndex = 0; 22125 } 22126 getMatcher(index) { 22127 if (this.multiRegexes[index]) 22128 return this.multiRegexes[index]; 22129 const matcher = new MultiRegex(); 22130 this.rules.slice(index).forEach(([re2, opts]) => matcher.addRule(re2, opts)); 22131 matcher.compile(); 22132 this.multiRegexes[index] = matcher; 22133 return matcher; 22134 } 22135 resumingScanAtSamePosition() { 22136 return this.regexIndex !== 0; 22137 } 22138 considerAll() { 22139 this.regexIndex = 0; 22140 } 22141 addRule(re2, opts) { 22142 this.rules.push([re2, opts]); 22143 if (opts.type === "begin") 22144 this.count++; 22145 } 22146 exec(s) { 22147 const m = this.getMatcher(this.regexIndex); 22148 m.lastIndex = this.lastIndex; 22149 let result = m.exec(s); 22150 if (this.resumingScanAtSamePosition()) { 22151 if (result && result.index === this.lastIndex) 22152 ; 22153 else { 22154 const m2 = this.getMatcher(0); 22155 m2.lastIndex = this.lastIndex + 1; 22156 result = m2.exec(s); 22157 } 22158 } 22159 if (result) { 22160 this.regexIndex += result.position + 1; 22161 if (this.regexIndex === this.count) { 22162 this.considerAll(); 22163 } 22164 } 22165 return result; 22166 } 22167 } 22168 function buildModeRegex(mode) { 22169 const mm = new ResumableMultiRegex(); 22170 mode.contains.forEach((term) => mm.addRule(term.begin, { rule: term, type: "begin" })); 22171 if (mode.terminatorEnd) { 22172 mm.addRule(mode.terminatorEnd, { type: "end" }); 22173 } 22174 if (mode.illegal) { 22175 mm.addRule(mode.illegal, { type: "illegal" }); 22176 } 22177 return mm; 22178 } 22179 function compileMode(mode, parent) { 22180 const cmode = mode; 22181 if (mode.isCompiled) 22182 return cmode; 22183 [ 22184 compileMatch 22185 ].forEach((ext) => ext(mode, parent)); 22186 language.compilerExtensions.forEach((ext) => ext(mode, parent)); 22187 mode.__beforeBegin = null; 22188 [ 22189 beginKeywords, 22190 compileIllegal, 22191 compileRelevance 22192 ].forEach((ext) => ext(mode, parent)); 22193 mode.isCompiled = true; 22194 let keywordPattern = null; 22195 if (typeof mode.keywords === "object") { 22196 keywordPattern = mode.keywords.$pattern; 22197 delete mode.keywords.$pattern; 22198 } 22199 if (mode.keywords) { 22200 mode.keywords = compileKeywords(mode.keywords, language.case_insensitive); 22201 } 22202 if (mode.lexemes && keywordPattern) { 22203 throw new Error("ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) "); 22204 } 22205 keywordPattern = keywordPattern || mode.lexemes || /\w+/; 22206 cmode.keywordPatternRe = langRe(keywordPattern, true); 22207 if (parent) { 22208 if (!mode.begin) 22209 mode.begin = /\B|\b/; 22210 cmode.beginRe = langRe(mode.begin); 22211 if (mode.endSameAsBegin) 22212 mode.end = mode.begin; 22213 if (!mode.end && !mode.endsWithParent) 22214 mode.end = /\B|\b/; 22215 if (mode.end) 22216 cmode.endRe = langRe(mode.end); 22217 cmode.terminatorEnd = source(mode.end) || ""; 22218 if (mode.endsWithParent && parent.terminatorEnd) { 22219 cmode.terminatorEnd += (mode.end ? "|" : "") + parent.terminatorEnd; 22220 } 22221 } 22222 if (mode.illegal) 22223 cmode.illegalRe = langRe(mode.illegal); 22224 if (!mode.contains) 22225 mode.contains = []; 22226 mode.contains = [].concat(...mode.contains.map(function(c) { 22227 return expandOrCloneMode(c === "self" ? mode : c); 22228 })); 22229 mode.contains.forEach(function(c) { 22230 compileMode(c, cmode); 22231 }); 22232 if (mode.starts) { 22233 compileMode(mode.starts, parent); 22234 } 22235 cmode.matcher = buildModeRegex(cmode); 22236 return cmode; 22237 } 22238 if (!language.compilerExtensions) 22239 language.compilerExtensions = []; 22240 if (language.contains && language.contains.includes("self")) { 22241 throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation."); 22242 } 22243 language.classNameAliases = inherit(language.classNameAliases || {}); 22244 return compileMode(language); 22245 } 22246 function dependencyOnParent(mode) { 22247 if (!mode) 22248 return false; 22249 return mode.endsWithParent || dependencyOnParent(mode.starts); 22250 } 22251 function expandOrCloneMode(mode) { 22252 if (mode.variants && !mode.cachedVariants) { 22253 mode.cachedVariants = mode.variants.map(function(variant) { 22254 return inherit(mode, { variants: null }, variant); 22255 }); 22256 } 22257 if (mode.cachedVariants) { 22258 return mode.cachedVariants; 22259 } 22260 if (dependencyOnParent(mode)) { 22261 return inherit(mode, { starts: mode.starts ? inherit(mode.starts) : null }); 22262 } 22263 if (Object.isFrozen(mode)) { 22264 return inherit(mode); 22265 } 22266 return mode; 22267 } 22268 var version = "10.7.3"; 22269 function hasValueOrEmptyAttribute(value2) { 22270 return Boolean(value2 || value2 === ""); 22271 } 22272 function BuildVuePlugin(hljs2) { 22273 const Component = { 22274 props: ["language", "code", "autodetect"], 22275 data: function() { 22276 return { 22277 detectedLanguage: "", 22278 unknownLanguage: false 22279 }; 22280 }, 22281 computed: { 22282 className() { 22283 if (this.unknownLanguage) 22284 return ""; 22285 return "hljs " + this.detectedLanguage; 22286 }, 22287 highlighted() { 22288 if (!this.autoDetect && !hljs2.getLanguage(this.language)) { 22289 console.warn(`The language "${this.language}" you specified could not be found.`); 22290 this.unknownLanguage = true; 22291 return escapeHTML(this.code); 22292 } 22293 let result = {}; 22294 if (this.autoDetect) { 22295 result = hljs2.highlightAuto(this.code); 22296 this.detectedLanguage = result.language; 22297 } else { 22298 result = hljs2.highlight(this.language, this.code, this.ignoreIllegals); 22299 this.detectedLanguage = this.language; 22300 } 22301 return result.value; 22302 }, 22303 autoDetect() { 22304 return !this.language || hasValueOrEmptyAttribute(this.autodetect); 22305 }, 22306 ignoreIllegals() { 22307 return true; 22308 } 22309 }, 22310 render(createElement) { 22311 return createElement("pre", {}, [ 22312 createElement("code", { 22313 class: this.className, 22314 domProps: { innerHTML: this.highlighted } 22315 }) 22316 ]); 22317 } 22318 }; 22319 const VuePlugin = { 22320 install(Vue) { 22321 Vue.component("highlightjs", Component); 22322 } 22323 }; 22324 return { Component, VuePlugin }; 22325 } 22326 var mergeHTMLPlugin = { 22327 "after:highlightElement": ({ el, result, text }) => { 22328 const originalStream = nodeStream(el); 22329 if (!originalStream.length) 22330 return; 22331 const resultNode = document.createElement("div"); 22332 resultNode.innerHTML = result.value; 22333 result.value = mergeStreams(originalStream, nodeStream(resultNode), text); 22334 } 22335 }; 22336 function tag(node) { 22337 return node.nodeName.toLowerCase(); 22338 } 22339 function nodeStream(node) { 22340 const result = []; 22341 (function _nodeStream(node2, offset) { 22342 for (let child = node2.firstChild; child; child = child.nextSibling) { 22343 if (child.nodeType === 3) { 22344 offset += child.nodeValue.length; 22345 } else if (child.nodeType === 1) { 22346 result.push({ 22347 event: "start", 22348 offset, 22349 node: child 22350 }); 22351 offset = _nodeStream(child, offset); 22352 if (!tag(child).match(/br|hr|img|input/)) { 22353 result.push({ 22354 event: "stop", 22355 offset, 22356 node: child 22357 }); 22358 } 22359 } 22360 } 22361 return offset; 22362 })(node, 0); 22363 return result; 22364 } 22365 function mergeStreams(original, highlighted, value2) { 22366 let processed = 0; 22367 let result = ""; 22368 const nodeStack = []; 22369 function selectStream() { 22370 if (!original.length || !highlighted.length) { 22371 return original.length ? original : highlighted; 22372 } 22373 if (original[0].offset !== highlighted[0].offset) { 22374 return original[0].offset < highlighted[0].offset ? original : highlighted; 22375 } 22376 return highlighted[0].event === "start" ? original : highlighted; 22377 } 22378 function open(node) { 22379 function attributeString(attr) { 22380 return " " + attr.nodeName + '="' + escapeHTML(attr.value) + '"'; 22381 } 22382 result += "<" + tag(node) + [].map.call(node.attributes, attributeString).join("") + ">"; 22383 } 22384 function close(node) { 22385 result += "</" + tag(node) + ">"; 22386 } 22387 function render(event) { 22388 (event.event === "start" ? open : close)(event.node); 22389 } 22390 while (original.length || highlighted.length) { 22391 let stream = selectStream(); 22392 result += escapeHTML(value2.substring(processed, stream[0].offset)); 22393 processed = stream[0].offset; 22394 if (stream === original) { 22395 nodeStack.reverse().forEach(close); 22396 do { 22397 render(stream.splice(0, 1)[0]); 22398 stream = selectStream(); 22399 } while (stream === original && stream.length && stream[0].offset === processed); 22400 nodeStack.reverse().forEach(open); 22401 } else { 22402 if (stream[0].event === "start") { 22403 nodeStack.push(stream[0].node); 22404 } else { 22405 nodeStack.pop(); 22406 } 22407 render(stream.splice(0, 1)[0]); 22408 } 22409 } 22410 return result + escapeHTML(value2.substr(processed)); 22411 } 22412 var seenDeprecations = {}; 22413 var error = (message) => { 22414 console.error(message); 22415 }; 22416 var warn = (message, ...args) => { 22417 console.log(`WARN: ${message}`, ...args); 22418 }; 22419 var deprecated = (version2, message) => { 22420 if (seenDeprecations[`${version2}/${message}`]) 22421 return; 22422 console.log(`Deprecated as of ${version2}. ${message}`); 22423 seenDeprecations[`${version2}/${message}`] = true; 22424 }; 22425 var escape$1 = escapeHTML; 22426 var inherit$1 = inherit; 22427 var NO_MATCH = Symbol("nomatch"); 22428 var HLJS = function(hljs2) { 22429 const languages = /* @__PURE__ */ Object.create(null); 22430 const aliases = /* @__PURE__ */ Object.create(null); 22431 const plugins = []; 22432 let SAFE_MODE = true; 22433 const fixMarkupRe = /(^(<[^>]+>|\t|)+|\n)/gm; 22434 const LANGUAGE_NOT_FOUND = "Could not find the language '{}', did you forget to load/include a language module?"; 22435 const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: "Plain text", contains: [] }; 22436 let options = { 22437 noHighlightRe: /^(no-?highlight)$/i, 22438 languageDetectRe: /\blang(?:uage)?-([\w-]+)\b/i, 22439 classPrefix: "hljs-", 22440 tabReplace: null, 22441 useBR: false, 22442 languages: null, 22443 __emitter: TokenTreeEmitter 22444 }; 22445 function shouldNotHighlight(languageName) { 22446 return options.noHighlightRe.test(languageName); 22447 } 22448 function blockLanguage(block) { 22449 let classes = block.className + " "; 22450 classes += block.parentNode ? block.parentNode.className : ""; 22451 const match = options.languageDetectRe.exec(classes); 22452 if (match) { 22453 const language = getLanguage(match[1]); 22454 if (!language) { 22455 warn(LANGUAGE_NOT_FOUND.replace("{}", match[1])); 22456 warn("Falling back to no-highlight mode for this block.", block); 22457 } 22458 return language ? match[1] : "no-highlight"; 22459 } 22460 return classes.split(/\s+/).find((_class) => shouldNotHighlight(_class) || getLanguage(_class)); 22461 } 22462 function highlight2(codeOrlanguageName, optionsOrCode, ignoreIllegals, continuation) { 22463 let code = ""; 22464 let languageName = ""; 22465 if (typeof optionsOrCode === "object") { 22466 code = codeOrlanguageName; 22467 ignoreIllegals = optionsOrCode.ignoreIllegals; 22468 languageName = optionsOrCode.language; 22469 continuation = void 0; 22470 } else { 22471 deprecated("10.7.0", "highlight(lang, code, ...args) has been deprecated."); 22472 deprecated("10.7.0", "Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"); 22473 languageName = codeOrlanguageName; 22474 code = optionsOrCode; 22475 } 22476 const context = { 22477 code, 22478 language: languageName 22479 }; 22480 fire("before:highlight", context); 22481 const result = context.result ? context.result : _highlight(context.language, context.code, ignoreIllegals, continuation); 22482 result.code = context.code; 22483 fire("after:highlight", result); 22484 return result; 22485 } 22486 function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) { 22487 function keywordData(mode, match) { 22488 const matchText = language.case_insensitive ? match[0].toLowerCase() : match[0]; 22489 return Object.prototype.hasOwnProperty.call(mode.keywords, matchText) && mode.keywords[matchText]; 22490 } 22491 function processKeywords() { 22492 if (!top.keywords) { 22493 emitter.addText(modeBuffer); 22494 return; 22495 } 22496 let lastIndex = 0; 22497 top.keywordPatternRe.lastIndex = 0; 22498 let match = top.keywordPatternRe.exec(modeBuffer); 22499 let buf = ""; 22500 while (match) { 22501 buf += modeBuffer.substring(lastIndex, match.index); 22502 const data = keywordData(top, match); 22503 if (data) { 22504 const [kind, keywordRelevance] = data; 22505 emitter.addText(buf); 22506 buf = ""; 22507 relevance += keywordRelevance; 22508 if (kind.startsWith("_")) { 22509 buf += match[0]; 22510 } else { 22511 const cssClass = language.classNameAliases[kind] || kind; 22512 emitter.addKeyword(match[0], cssClass); 22513 } 22514 } else { 22515 buf += match[0]; 22516 } 22517 lastIndex = top.keywordPatternRe.lastIndex; 22518 match = top.keywordPatternRe.exec(modeBuffer); 22519 } 22520 buf += modeBuffer.substr(lastIndex); 22521 emitter.addText(buf); 22522 } 22523 function processSubLanguage() { 22524 if (modeBuffer === "") 22525 return; 22526 let result2 = null; 22527 if (typeof top.subLanguage === "string") { 22528 if (!languages[top.subLanguage]) { 22529 emitter.addText(modeBuffer); 22530 return; 22531 } 22532 result2 = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]); 22533 continuations[top.subLanguage] = result2.top; 22534 } else { 22535 result2 = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null); 22536 } 22537 if (top.relevance > 0) { 22538 relevance += result2.relevance; 22539 } 22540 emitter.addSublanguage(result2.emitter, result2.language); 22541 } 22542 function processBuffer() { 22543 if (top.subLanguage != null) { 22544 processSubLanguage(); 22545 } else { 22546 processKeywords(); 22547 } 22548 modeBuffer = ""; 22549 } 22550 function startNewMode(mode) { 22551 if (mode.className) { 22552 emitter.openNode(language.classNameAliases[mode.className] || mode.className); 22553 } 22554 top = Object.create(mode, { parent: { value: top } }); 22555 return top; 22556 } 22557 function endOfMode(mode, match, matchPlusRemainder) { 22558 let matched = startsWith(mode.endRe, matchPlusRemainder); 22559 if (matched) { 22560 if (mode["on:end"]) { 22561 const resp = new Response(mode); 22562 mode["on:end"](match, resp); 22563 if (resp.isMatchIgnored) 22564 matched = false; 22565 } 22566 if (matched) { 22567 while (mode.endsParent && mode.parent) { 22568 mode = mode.parent; 22569 } 22570 return mode; 22571 } 22572 } 22573 if (mode.endsWithParent) { 22574 return endOfMode(mode.parent, match, matchPlusRemainder); 22575 } 22576 } 22577 function doIgnore(lexeme) { 22578 if (top.matcher.regexIndex === 0) { 22579 modeBuffer += lexeme[0]; 22580 return 1; 22581 } else { 22582 resumeScanAtSamePosition = true; 22583 return 0; 22584 } 22585 } 22586 function doBeginMatch(match) { 22587 const lexeme = match[0]; 22588 const newMode = match.rule; 22589 const resp = new Response(newMode); 22590 const beforeCallbacks = [newMode.__beforeBegin, newMode["on:begin"]]; 22591 for (const cb of beforeCallbacks) { 22592 if (!cb) 22593 continue; 22594 cb(match, resp); 22595 if (resp.isMatchIgnored) 22596 return doIgnore(lexeme); 22597 } 22598 if (newMode && newMode.endSameAsBegin) { 22599 newMode.endRe = escape2(lexeme); 22600 } 22601 if (newMode.skip) { 22602 modeBuffer += lexeme; 22603 } else { 22604 if (newMode.excludeBegin) { 22605 modeBuffer += lexeme; 22606 } 22607 processBuffer(); 22608 if (!newMode.returnBegin && !newMode.excludeBegin) { 22609 modeBuffer = lexeme; 22610 } 22611 } 22612 startNewMode(newMode); 22613 return newMode.returnBegin ? 0 : lexeme.length; 22614 } 22615 function doEndMatch(match) { 22616 const lexeme = match[0]; 22617 const matchPlusRemainder = codeToHighlight.substr(match.index); 22618 const endMode = endOfMode(top, match, matchPlusRemainder); 22619 if (!endMode) { 22620 return NO_MATCH; 22621 } 22622 const origin = top; 22623 if (origin.skip) { 22624 modeBuffer += lexeme; 22625 } else { 22626 if (!(origin.returnEnd || origin.excludeEnd)) { 22627 modeBuffer += lexeme; 22628 } 22629 processBuffer(); 22630 if (origin.excludeEnd) { 22631 modeBuffer = lexeme; 22632 } 22633 } 22634 do { 22635 if (top.className) { 22636 emitter.closeNode(); 22637 } 22638 if (!top.skip && !top.subLanguage) { 22639 relevance += top.relevance; 22640 } 22641 top = top.parent; 22642 } while (top !== endMode.parent); 22643 if (endMode.starts) { 22644 if (endMode.endSameAsBegin) { 22645 endMode.starts.endRe = endMode.endRe; 22646 } 22647 startNewMode(endMode.starts); 22648 } 22649 return origin.returnEnd ? 0 : lexeme.length; 22650 } 22651 function processContinuations() { 22652 const list = []; 22653 for (let current = top; current !== language; current = current.parent) { 22654 if (current.className) { 22655 list.unshift(current.className); 22656 } 22657 } 22658 list.forEach((item) => emitter.openNode(item)); 22659 } 22660 let lastMatch = {}; 22661 function processLexeme(textBeforeMatch, match) { 22662 const lexeme = match && match[0]; 22663 modeBuffer += textBeforeMatch; 22664 if (lexeme == null) { 22665 processBuffer(); 22666 return 0; 22667 } 22668 if (lastMatch.type === "begin" && match.type === "end" && lastMatch.index === match.index && lexeme === "") { 22669 modeBuffer += codeToHighlight.slice(match.index, match.index + 1); 22670 if (!SAFE_MODE) { 22671 const err = new Error("0 width match regex"); 22672 err.languageName = languageName; 22673 err.badRule = lastMatch.rule; 22674 throw err; 22675 } 22676 return 1; 22677 } 22678 lastMatch = match; 22679 if (match.type === "begin") { 22680 return doBeginMatch(match); 22681 } else if (match.type === "illegal" && !ignoreIllegals) { 22682 const err = new Error('Illegal lexeme "' + lexeme + '" for mode "' + (top.className || "<unnamed>") + '"'); 22683 err.mode = top; 22684 throw err; 22685 } else if (match.type === "end") { 22686 const processed = doEndMatch(match); 22687 if (processed !== NO_MATCH) { 22688 return processed; 22689 } 22690 } 22691 if (match.type === "illegal" && lexeme === "") { 22692 return 1; 22693 } 22694 if (iterations > 1e5 && iterations > match.index * 3) { 22695 const err = new Error("potential infinite loop, way more iterations than matches"); 22696 throw err; 22697 } 22698 modeBuffer += lexeme; 22699 return lexeme.length; 22700 } 22701 const language = getLanguage(languageName); 22702 if (!language) { 22703 error(LANGUAGE_NOT_FOUND.replace("{}", languageName)); 22704 throw new Error('Unknown language: "' + languageName + '"'); 22705 } 22706 const md = compileLanguage(language, { plugins }); 22707 let result = ""; 22708 let top = continuation || md; 22709 const continuations = {}; 22710 const emitter = new options.__emitter(options); 22711 processContinuations(); 22712 let modeBuffer = ""; 22713 let relevance = 0; 22714 let index = 0; 22715 let iterations = 0; 22716 let resumeScanAtSamePosition = false; 22717 try { 22718 top.matcher.considerAll(); 22719 for (; ; ) { 22720 iterations++; 22721 if (resumeScanAtSamePosition) { 22722 resumeScanAtSamePosition = false; 22723 } else { 22724 top.matcher.considerAll(); 22725 } 22726 top.matcher.lastIndex = index; 22727 const match = top.matcher.exec(codeToHighlight); 22728 if (!match) 22729 break; 22730 const beforeMatch = codeToHighlight.substring(index, match.index); 22731 const processedCount = processLexeme(beforeMatch, match); 22732 index = match.index + processedCount; 22733 } 22734 processLexeme(codeToHighlight.substr(index)); 22735 emitter.closeAllNodes(); 22736 emitter.finalize(); 22737 result = emitter.toHTML(); 22738 return { 22739 relevance: Math.floor(relevance), 22740 value: result, 22741 language: languageName, 22742 illegal: false, 22743 emitter, 22744 top 22745 }; 22746 } catch (err) { 22747 if (err.message && err.message.includes("Illegal")) { 22748 return { 22749 illegal: true, 22750 illegalBy: { 22751 msg: err.message, 22752 context: codeToHighlight.slice(index - 100, index + 100), 22753 mode: err.mode 22754 }, 22755 sofar: result, 22756 relevance: 0, 22757 value: escape$1(codeToHighlight), 22758 emitter 22759 }; 22760 } else if (SAFE_MODE) { 22761 return { 22762 illegal: false, 22763 relevance: 0, 22764 value: escape$1(codeToHighlight), 22765 emitter, 22766 language: languageName, 22767 top, 22768 errorRaised: err 22769 }; 22770 } else { 22771 throw err; 22772 } 22773 } 22774 } 22775 function justTextHighlightResult(code) { 22776 const result = { 22777 relevance: 0, 22778 emitter: new options.__emitter(options), 22779 value: escape$1(code), 22780 illegal: false, 22781 top: PLAINTEXT_LANGUAGE 22782 }; 22783 result.emitter.addText(code); 22784 return result; 22785 } 22786 function highlightAuto(code, languageSubset) { 22787 languageSubset = languageSubset || options.languages || Object.keys(languages); 22788 const plaintext = justTextHighlightResult(code); 22789 const results = languageSubset.filter(getLanguage).filter(autoDetection).map( 22790 (name2) => _highlight(name2, code, false) 22791 ); 22792 results.unshift(plaintext); 22793 const sorted = results.sort((a, b) => { 22794 if (a.relevance !== b.relevance) 22795 return b.relevance - a.relevance; 22796 if (a.language && b.language) { 22797 if (getLanguage(a.language).supersetOf === b.language) { 22798 return 1; 22799 } else if (getLanguage(b.language).supersetOf === a.language) { 22800 return -1; 22801 } 22802 } 22803 return 0; 22804 }); 22805 const [best, secondBest] = sorted; 22806 const result = best; 22807 result.second_best = secondBest; 22808 return result; 22809 } 22810 function fixMarkup(html) { 22811 if (!(options.tabReplace || options.useBR)) { 22812 return html; 22813 } 22814 return html.replace(fixMarkupRe, (match) => { 22815 if (match === "\n") { 22816 return options.useBR ? "<br>" : match; 22817 } else if (options.tabReplace) { 22818 return match.replace(/\t/g, options.tabReplace); 22819 } 22820 return match; 22821 }); 22822 } 22823 function updateClassName(element, currentLang, resultLang) { 22824 const language = currentLang ? aliases[currentLang] : resultLang; 22825 element.classList.add("hljs"); 22826 if (language) 22827 element.classList.add(language); 22828 } 22829 const brPlugin = { 22830 "before:highlightElement": ({ el }) => { 22831 if (options.useBR) { 22832 el.innerHTML = el.innerHTML.replace(/\n/g, "").replace(/<br[ /]*>/g, "\n"); 22833 } 22834 }, 22835 "after:highlightElement": ({ result }) => { 22836 if (options.useBR) { 22837 result.value = result.value.replace(/\n/g, "<br>"); 22838 } 22839 } 22840 }; 22841 const TAB_REPLACE_RE = /^(<[^>]+>|\t)+/gm; 22842 const tabReplacePlugin = { 22843 "after:highlightElement": ({ result }) => { 22844 if (options.tabReplace) { 22845 result.value = result.value.replace( 22846 TAB_REPLACE_RE, 22847 (m) => m.replace(/\t/g, options.tabReplace) 22848 ); 22849 } 22850 } 22851 }; 22852 function highlightElement(element) { 22853 let node = null; 22854 const language = blockLanguage(element); 22855 if (shouldNotHighlight(language)) 22856 return; 22857 fire( 22858 "before:highlightElement", 22859 { el: element, language } 22860 ); 22861 node = element; 22862 const text = node.textContent; 22863 const result = language ? highlight2(text, { language, ignoreIllegals: true }) : highlightAuto(text); 22864 fire("after:highlightElement", { el: element, result, text }); 22865 element.innerHTML = result.value; 22866 updateClassName(element, language, result.language); 22867 element.result = { 22868 language: result.language, 22869 re: result.relevance, 22870 relavance: result.relevance 22871 }; 22872 if (result.second_best) { 22873 element.second_best = { 22874 language: result.second_best.language, 22875 re: result.second_best.relevance, 22876 relavance: result.second_best.relevance 22877 }; 22878 } 22879 } 22880 function configure(userOptions) { 22881 if (userOptions.useBR) { 22882 deprecated("10.3.0", "'useBR' will be removed entirely in v11.0"); 22883 deprecated("10.3.0", "Please see https://github.com/highlightjs/highlight.js/issues/2559"); 22884 } 22885 options = inherit$1(options, userOptions); 22886 } 22887 const initHighlighting = () => { 22888 if (initHighlighting.called) 22889 return; 22890 initHighlighting.called = true; 22891 deprecated("10.6.0", "initHighlighting() is deprecated. Use highlightAll() instead."); 22892 const blocks = document.querySelectorAll("pre code"); 22893 blocks.forEach(highlightElement); 22894 }; 22895 function initHighlightingOnLoad() { 22896 deprecated("10.6.0", "initHighlightingOnLoad() is deprecated. Use highlightAll() instead."); 22897 wantsHighlight = true; 22898 } 22899 let wantsHighlight = false; 22900 function highlightAll() { 22901 if (document.readyState === "loading") { 22902 wantsHighlight = true; 22903 return; 22904 } 22905 const blocks = document.querySelectorAll("pre code"); 22906 blocks.forEach(highlightElement); 22907 } 22908 function boot() { 22909 if (wantsHighlight) 22910 highlightAll(); 22911 } 22912 if (typeof window !== "undefined" && window.addEventListener) { 22913 window.addEventListener("DOMContentLoaded", boot, false); 22914 } 22915 function registerLanguage(languageName, languageDefinition) { 22916 let lang = null; 22917 try { 22918 lang = languageDefinition(hljs2); 22919 } catch (error$1) { 22920 error("Language definition for '{}' could not be registered.".replace("{}", languageName)); 22921 if (!SAFE_MODE) { 22922 throw error$1; 22923 } else { 22924 error(error$1); 22925 } 22926 lang = PLAINTEXT_LANGUAGE; 22927 } 22928 if (!lang.name) 22929 lang.name = languageName; 22930 languages[languageName] = lang; 22931 lang.rawDefinition = languageDefinition.bind(null, hljs2); 22932 if (lang.aliases) { 22933 registerAliases(lang.aliases, { languageName }); 22934 } 22935 } 22936 function unregisterLanguage(languageName) { 22937 delete languages[languageName]; 22938 for (const alias of Object.keys(aliases)) { 22939 if (aliases[alias] === languageName) { 22940 delete aliases[alias]; 22941 } 22942 } 22943 } 22944 function listLanguages() { 22945 return Object.keys(languages); 22946 } 22947 function requireLanguage(name2) { 22948 deprecated("10.4.0", "requireLanguage will be removed entirely in v11."); 22949 deprecated("10.4.0", "Please see https://github.com/highlightjs/highlight.js/pull/2844"); 22950 const lang = getLanguage(name2); 22951 if (lang) { 22952 return lang; 22953 } 22954 const err = new Error("The '{}' language is required, but not loaded.".replace("{}", name2)); 22955 throw err; 22956 } 22957 function getLanguage(name2) { 22958 name2 = (name2 || "").toLowerCase(); 22959 return languages[name2] || languages[aliases[name2]]; 22960 } 22961 function registerAliases(aliasList, { languageName }) { 22962 if (typeof aliasList === "string") { 22963 aliasList = [aliasList]; 22964 } 22965 aliasList.forEach((alias) => { 22966 aliases[alias.toLowerCase()] = languageName; 22967 }); 22968 } 22969 function autoDetection(name2) { 22970 const lang = getLanguage(name2); 22971 return lang && !lang.disableAutodetect; 22972 } 22973 function upgradePluginAPI(plugin) { 22974 if (plugin["before:highlightBlock"] && !plugin["before:highlightElement"]) { 22975 plugin["before:highlightElement"] = (data) => { 22976 plugin["before:highlightBlock"]( 22977 Object.assign({ block: data.el }, data) 22978 ); 22979 }; 22980 } 22981 if (plugin["after:highlightBlock"] && !plugin["after:highlightElement"]) { 22982 plugin["after:highlightElement"] = (data) => { 22983 plugin["after:highlightBlock"]( 22984 Object.assign({ block: data.el }, data) 22985 ); 22986 }; 22987 } 22988 } 22989 function addPlugin(plugin) { 22990 upgradePluginAPI(plugin); 22991 plugins.push(plugin); 22992 } 22993 function fire(event, args) { 22994 const cb = event; 22995 plugins.forEach(function(plugin) { 22996 if (plugin[cb]) { 22997 plugin[cb](args); 22998 } 22999 }); 23000 } 23001 function deprecateFixMarkup(arg) { 23002 deprecated("10.2.0", "fixMarkup will be removed entirely in v11.0"); 23003 deprecated("10.2.0", "Please see https://github.com/highlightjs/highlight.js/issues/2534"); 23004 return fixMarkup(arg); 23005 } 23006 function deprecateHighlightBlock(el) { 23007 deprecated("10.7.0", "highlightBlock will be removed entirely in v12.0"); 23008 deprecated("10.7.0", "Please use highlightElement now."); 23009 return highlightElement(el); 23010 } 23011 Object.assign(hljs2, { 23012 highlight: highlight2, 23013 highlightAuto, 23014 highlightAll, 23015 fixMarkup: deprecateFixMarkup, 23016 highlightElement, 23017 highlightBlock: deprecateHighlightBlock, 23018 configure, 23019 initHighlighting, 23020 initHighlightingOnLoad, 23021 registerLanguage, 23022 unregisterLanguage, 23023 listLanguages, 23024 getLanguage, 23025 registerAliases, 23026 requireLanguage, 23027 autoDetection, 23028 inherit: inherit$1, 23029 addPlugin, 23030 vuePlugin: BuildVuePlugin(hljs2).VuePlugin 23031 }); 23032 hljs2.debugMode = function() { 23033 SAFE_MODE = false; 23034 }; 23035 hljs2.safeMode = function() { 23036 SAFE_MODE = true; 23037 }; 23038 hljs2.versionString = version; 23039 for (const key in MODES) { 23040 if (typeof MODES[key] === "object") { 23041 deepFreezeEs6(MODES[key]); 23042 } 23043 } 23044 Object.assign(hljs2, MODES); 23045 hljs2.addPlugin(brPlugin); 23046 hljs2.addPlugin(mergeHTMLPlugin); 23047 hljs2.addPlugin(tabReplacePlugin); 23048 return hljs2; 23049 }; 23050 var highlight = HLJS({}); 23051 module.exports = highlight; 23052 } 23053 }); 23054 23055
vendor: 13,542 bytes, lines 23055-23551
23055// node_modules/highlight.js/lib/languages/javascript.js 23056 var require_javascript = __commonJS({ 23057 "node_modules/highlight.js/lib/languages/javascript.js"(exports, module) { 23058 var IDENT_RE = "[A-Za-z$_][0-9A-Za-z$_]*"; 23059 var KEYWORDS = [ 23060 "as", 23061 "in", 23062 "of", 23063 "if", 23064 "for", 23065 "while", 23066 "finally", 23067 "var", 23068 "new", 23069 "function", 23070 "do", 23071 "return", 23072 "void", 23073 "else", 23074 "break", 23075 "catch", 23076 "instanceof", 23077 "with", 23078 "throw", 23079 "case", 23080 "default", 23081 "try", 23082 "switch", 23083 "continue", 23084 "typeof", 23085 "delete", 23086 "let", 23087 "yield", 23088 "const", 23089 "class", 23090 "debugger", 23091 "async", 23092 "await", 23093 "static", 23094 "import", 23095 "from", 23096 "export", 23097 "extends" 23098 ]; 23099 var LITERALS = [ 23100 "true", 23101 "false", 23102 "null", 23103 "undefined", 23104 "NaN", 23105 "Infinity" 23106 ]; 23107 var TYPES = [ 23108 "Intl", 23109 "DataView", 23110 "Number", 23111 "Math", 23112 "Date", 23113 "String", 23114 "RegExp", 23115 "Object", 23116 "Function", 23117 "Boolean", 23118 "Error", 23119 "Symbol", 23120 "Set", 23121 "Map", 23122 "WeakSet", 23123 "WeakMap", 23124 "Proxy", 23125 "Reflect", 23126 "JSON", 23127 "Promise", 23128 "Float64Array", 23129 "Int16Array", 23130 "Int32Array", 23131 "Int8Array", 23132 "Uint16Array", 23133 "Uint32Array", 23134 "Float32Array", 23135 "Array", 23136 "Uint8Array", 23137 "Uint8ClampedArray", 23138 "ArrayBuffer", 23139 "BigInt64Array", 23140 "BigUint64Array", 23141 "BigInt" 23142 ]; 23143 var ERROR_TYPES = [ 23144 "EvalError", 23145 "InternalError", 23146 "RangeError", 23147 "ReferenceError", 23148 "SyntaxError", 23149 "TypeError", 23150 "URIError" 23151 ]; 23152 var BUILT_IN_GLOBALS = [ 23153 "setInterval", 23154 "setTimeout", 23155 "clearInterval", 23156 "clearTimeout", 23157 "require", 23158 "exports", 23159 "eval", 23160 "isFinite", 23161 "isNaN", 23162 "parseFloat", 23163 "parseInt", 23164 "decodeURI", 23165 "decodeURIComponent", 23166 "encodeURI", 23167 "encodeURIComponent", 23168 "escape", 23169 "unescape" 23170 ]; 23171 var BUILT_IN_VARIABLES = [ 23172 "arguments", 23173 "this", 23174 "super", 23175 "console", 23176 "window", 23177 "document", 23178 "localStorage", 23179 "module", 23180 "global" 23181 ]; 23182 var BUILT_INS = [].concat( 23183 BUILT_IN_GLOBALS, 23184 BUILT_IN_VARIABLES, 23185 TYPES, 23186 ERROR_TYPES 23187 ); 23188 function source(re2) { 23189 if (!re2) 23190 return null; 23191 if (typeof re2 === "string") 23192 return re2; 23193 return re2.source; 23194 } 23195 function lookahead(re2) { 23196 return concat("(?=", re2, ")"); 23197 } 23198 function concat(...args) { 23199 const joined = args.map((x) => source(x)).join(""); 23200 return joined; 23201 } 23202 function javascript(hljs2) { 23203 const hasClosingTag = (match, { after }) => { 23204 const tag = "</" + match[0].slice(1); 23205 const pos = match.input.indexOf(tag, after); 23206 return pos !== -1; 23207 }; 23208 const IDENT_RE$1 = IDENT_RE; 23209 const FRAGMENT = { 23210 begin: "<>", 23211 end: "</>" 23212 }; 23213 const XML_TAG = { 23214 begin: /<[A-Za-z0-9\\._:-]+/, 23215 end: /\/[A-Za-z0-9\\._:-]+>|\/>/, 23216 isTrulyOpeningTag: (match, response) => { 23217 const afterMatchIndex = match[0].length + match.index; 23218 const nextChar = match.input[afterMatchIndex]; 23219 if (nextChar === "<") { 23220 response.ignoreMatch(); 23221 return; 23222 } 23223 if (nextChar === ">") { 23224 if (!hasClosingTag(match, { after: afterMatchIndex })) { 23225 response.ignoreMatch(); 23226 } 23227 } 23228 } 23229 }; 23230 const KEYWORDS$1 = { 23231 $pattern: IDENT_RE, 23232 keyword: KEYWORDS, 23233 literal: LITERALS, 23234 built_in: BUILT_INS 23235 }; 23236 const decimalDigits = "[0-9](_?[0-9])*"; 23237 const frac = `\\.(${decimalDigits})`; 23238 const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`; 23239 const NUMBER = { 23240 className: "number", 23241 variants: [ 23242 { begin: `(\\b(${decimalInteger})((${frac})|\\.)?|(${frac}))[eE][+-]?(${decimalDigits})\\b` }, 23243 { begin: `\\b(${decimalInteger})\\b((${frac})\\b|\\.)?|(${frac})\\b` }, 23244 { begin: `\\b(0|[1-9](_?[0-9])*)n\\b` }, 23245 { begin: "\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b" }, 23246 { begin: "\\b0[bB][0-1](_?[0-1])*n?\\b" }, 23247 { begin: "\\b0[oO][0-7](_?[0-7])*n?\\b" }, 23248 { begin: "\\b0[0-7]+n?\\b" } 23249 ], 23250 relevance: 0 23251 }; 23252 const SUBST = { 23253 className: "subst", 23254 begin: "\\$\\{", 23255 end: "\\}", 23256 keywords: KEYWORDS$1, 23257 contains: [] 23258 }; 23259 const HTML_TEMPLATE = { 23260 begin: "html`", 23261 end: "", 23262 starts: { 23263 end: "`", 23264 returnEnd: false, 23265 contains: [ 23266 hljs2.BACKSLASH_ESCAPE, 23267 SUBST 23268 ], 23269 subLanguage: "xml" 23270 } 23271 }; 23272 const CSS_TEMPLATE = { 23273 begin: "css`", 23274 end: "", 23275 starts: { 23276 end: "`", 23277 returnEnd: false, 23278 contains: [ 23279 hljs2.BACKSLASH_ESCAPE, 23280 SUBST 23281 ], 23282 subLanguage: "css" 23283 } 23284 }; 23285 const TEMPLATE_STRING = { 23286 className: "string", 23287 begin: "`", 23288 end: "`", 23289 contains: [ 23290 hljs2.BACKSLASH_ESCAPE, 23291 SUBST 23292 ] 23293 }; 23294 const JSDOC_COMMENT = hljs2.COMMENT( 23295 /\/\*\*(?!\/)/, 23296 "\\*/", 23297 { 23298 relevance: 0, 23299 contains: [ 23300 { 23301 className: "doctag", 23302 begin: "@[A-Za-z]+", 23303 contains: [ 23304 { 23305 className: "type", 23306 begin: "\\{", 23307 end: "\\}", 23308 relevance: 0 23309 }, 23310 { 23311 className: "variable", 23312 begin: IDENT_RE$1 + "(?=\\s*(-)|$)", 23313 endsParent: true, 23314 relevance: 0 23315 }, 23316 { 23317 begin: /(?=[^\n])\s/, 23318 relevance: 0 23319 } 23320 ] 23321 } 23322 ] 23323 } 23324 ); 23325 const COMMENT = { 23326 className: "comment", 23327 variants: [ 23328 JSDOC_COMMENT, 23329 hljs2.C_BLOCK_COMMENT_MODE, 23330 hljs2.C_LINE_COMMENT_MODE 23331 ] 23332 }; 23333 const SUBST_INTERNALS = [ 23334 hljs2.APOS_STRING_MODE, 23335 hljs2.QUOTE_STRING_MODE, 23336 HTML_TEMPLATE, 23337 CSS_TEMPLATE, 23338 TEMPLATE_STRING, 23339 NUMBER, 23340 hljs2.REGEXP_MODE 23341 ]; 23342 SUBST.contains = SUBST_INTERNALS.concat({ 23343 begin: /\{/, 23344 end: /\}/, 23345 keywords: KEYWORDS$1, 23346 contains: [ 23347 "self" 23348 ].concat(SUBST_INTERNALS) 23349 }); 23350 const SUBST_AND_COMMENTS = [].concat(COMMENT, SUBST.contains); 23351 const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([ 23352 { 23353 begin: /\(/, 23354 end: /\)/, 23355 keywords: KEYWORDS$1, 23356 contains: ["self"].concat(SUBST_AND_COMMENTS) 23357 } 23358 ]); 23359 const PARAMS = { 23360 className: "params", 23361 begin: /\(/, 23362 end: /\)/, 23363 excludeBegin: true, 23364 excludeEnd: true, 23365 keywords: KEYWORDS$1, 23366 contains: PARAMS_CONTAINS 23367 }; 23368 return { 23369 name: "Javascript", 23370 aliases: ["js", "jsx", "mjs", "cjs"], 23371 keywords: KEYWORDS$1, 23372 exports: { PARAMS_CONTAINS }, 23373 illegal: /#(?![$_A-z])/, 23374 contains: [ 23375 hljs2.SHEBANG({ 23376 label: "shebang", 23377 binary: "node", 23378 relevance: 5 23379 }), 23380 { 23381 label: "use_strict", 23382 className: "meta", 23383 relevance: 10, 23384 begin: /^\s*['"]use (strict|asm)['"]/ 23385 }, 23386 hljs2.APOS_STRING_MODE, 23387 hljs2.QUOTE_STRING_MODE, 23388 HTML_TEMPLATE, 23389 CSS_TEMPLATE, 23390 TEMPLATE_STRING, 23391 COMMENT, 23392 NUMBER, 23393 { 23394 begin: concat( 23395 /[{,\n]\s*/, 23396 lookahead(concat( 23397 /(((\/\/.*$)|(\/\*(\*[^/]|[^*])*\*\/))\s*)*/, 23398 IDENT_RE$1 + "\\s*:" 23399 )) 23400 ), 23401 relevance: 0, 23402 contains: [ 23403 { 23404 className: "attr", 23405 begin: IDENT_RE$1 + lookahead("\\s*:"), 23406 relevance: 0 23407 } 23408 ] 23409 }, 23410 { 23411 begin: "(" + hljs2.RE_STARTERS_RE + "|\\b(case|return|throw)\\b)\\s*", 23412 keywords: "return throw case", 23413 contains: [ 23414 COMMENT, 23415 hljs2.REGEXP_MODE, 23416 { 23417 className: "function", 23418 begin: "(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|" + hljs2.UNDERSCORE_IDENT_RE + ")\\s*=>", 23419 returnBegin: true, 23420 end: "\\s*=>", 23421 contains: [ 23422 { 23423 className: "params", 23424 variants: [ 23425 { 23426 begin: hljs2.UNDERSCORE_IDENT_RE, 23427 relevance: 0 23428 }, 23429 { 23430 className: null, 23431 begin: /\(\s*\)/, 23432 skip: true 23433 }, 23434 { 23435 begin: /\(/, 23436 end: /\)/, 23437 excludeBegin: true, 23438 excludeEnd: true, 23439 keywords: KEYWORDS$1, 23440 contains: PARAMS_CONTAINS 23441 } 23442 ] 23443 } 23444 ] 23445 }, 23446 { 23447 begin: /,/, 23448 relevance: 0 23449 }, 23450 { 23451 className: "", 23452 begin: /\s/, 23453 end: /\s*/, 23454 skip: true 23455 }, 23456 { 23457 variants: [ 23458 { begin: FRAGMENT.begin, end: FRAGMENT.end }, 23459 { 23460 begin: XML_TAG.begin, 23461 "on:begin": XML_TAG.isTrulyOpeningTag, 23462 end: XML_TAG.end 23463 } 23464 ], 23465 subLanguage: "xml", 23466 contains: [ 23467 { 23468 begin: XML_TAG.begin, 23469 end: XML_TAG.end, 23470 skip: true, 23471 contains: ["self"] 23472 } 23473 ] 23474 } 23475 ], 23476 relevance: 0 23477 }, 23478 { 23479 className: "function", 23480 beginKeywords: "function", 23481 end: /[{;]/, 23482 excludeEnd: true, 23483 keywords: KEYWORDS$1, 23484 contains: [ 23485 "self", 23486 hljs2.inherit(hljs2.TITLE_MODE, { begin: IDENT_RE$1 }), 23487 PARAMS 23488 ], 23489 illegal: /%/ 23490 }, 23491 { 23492 beginKeywords: "while if switch catch for" 23493 }, 23494 { 23495 className: "function", 23496 begin: hljs2.UNDERSCORE_IDENT_RE + "\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{", 23497 returnBegin: true, 23498 contains: [ 23499 PARAMS, 23500 hljs2.inherit(hljs2.TITLE_MODE, { begin: IDENT_RE$1 }) 23501 ] 23502 }, 23503 { 23504 variants: [ 23505 { begin: "\\." + IDENT_RE$1 }, 23506 { begin: "\\$" + IDENT_RE$1 } 23507 ], 23508 relevance: 0 23509 }, 23510 { 23511 className: "class", 23512 beginKeywords: "class", 23513 end: /[{;=]/, 23514 excludeEnd: true, 23515 illegal: /[:"[\]]/, 23516 contains: [ 23517 { beginKeywords: "extends" }, 23518 hljs2.UNDERSCORE_TITLE_MODE 23519 ] 23520 }, 23521 { 23522 begin: /\b(?=constructor)/, 23523 end: /[{;]/, 23524 excludeEnd: true, 23525 contains: [ 23526 hljs2.inherit(hljs2.TITLE_MODE, { begin: IDENT_RE$1 }), 23527 "self", 23528 PARAMS 23529 ] 23530 }, 23531 { 23532 begin: "(get|set)\\s+(?=" + IDENT_RE$1 + "\\()", 23533 end: /\{/, 23534 keywords: "get set", 23535 contains: [ 23536 hljs2.inherit(hljs2.TITLE_MODE, { begin: IDENT_RE$1 }), 23537 { begin: /\(\)/ }, 23538 PARAMS 23539 ] 23540 }, 23541 { 23542 begin: /\$[(.]/ 23543 } 23544 ] 23545 }; 23546 } 23547 module.exports = javascript; 23548 } 23549 }); 23550 23551
vendor: 9,092 bytes, lines 23551-23937
23551// node_modules/highlight.js/lib/languages/python.js 23552 var require_python = __commonJS({ 23553 "node_modules/highlight.js/lib/languages/python.js"(exports, module) { 23554 function source(re2) { 23555 if (!re2) 23556 return null; 23557 if (typeof re2 === "string") 23558 return re2; 23559 return re2.source; 23560 } 23561 function lookahead(re2) { 23562 return concat("(?=", re2, ")"); 23563 } 23564 function concat(...args) { 23565 const joined = args.map((x) => source(x)).join(""); 23566 return joined; 23567 } 23568 function python(hljs2) { 23569 const RESERVED_WORDS = [ 23570 "and", 23571 "as", 23572 "assert", 23573 "async", 23574 "await", 23575 "break", 23576 "class", 23577 "continue", 23578 "def", 23579 "del", 23580 "elif", 23581 "else", 23582 "except", 23583 "finally", 23584 "for", 23585 "from", 23586 "global", 23587 "if", 23588 "import", 23589 "in", 23590 "is", 23591 "lambda", 23592 "nonlocal|10", 23593 "not", 23594 "or", 23595 "pass", 23596 "raise", 23597 "return", 23598 "try", 23599 "while", 23600 "with", 23601 "yield" 23602 ]; 23603 const BUILT_INS = [ 23604 "__import__", 23605 "abs", 23606 "all", 23607 "any", 23608 "ascii", 23609 "bin", 23610 "bool", 23611 "breakpoint", 23612 "bytearray", 23613 "bytes", 23614 "callable", 23615 "chr", 23616 "classmethod", 23617 "compile", 23618 "complex", 23619 "delattr", 23620 "dict", 23621 "dir", 23622 "divmod", 23623 "enumerate", 23624 "eval", 23625 "exec", 23626 "filter", 23627 "float", 23628 "format", 23629 "frozenset", 23630 "getattr", 23631 "globals", 23632 "hasattr", 23633 "hash", 23634 "help", 23635 "hex", 23636 "id", 23637 "input", 23638 "int", 23639 "isinstance", 23640 "issubclass", 23641 "iter", 23642 "len", 23643 "list", 23644 "locals", 23645 "map", 23646 "max", 23647 "memoryview", 23648 "min", 23649 "next", 23650 "object", 23651 "oct", 23652 "open", 23653 "ord", 23654 "pow", 23655 "print", 23656 "property", 23657 "range", 23658 "repr", 23659 "reversed", 23660 "round", 23661 "set", 23662 "setattr", 23663 "slice", 23664 "sorted", 23665 "staticmethod", 23666 "str", 23667 "sum", 23668 "super", 23669 "tuple", 23670 "type", 23671 "vars", 23672 "zip" 23673 ]; 23674 const LITERALS = [ 23675 "__debug__", 23676 "Ellipsis", 23677 "False", 23678 "None", 23679 "NotImplemented", 23680 "True" 23681 ]; 23682 const TYPES = [ 23683 "Any", 23684 "Callable", 23685 "Coroutine", 23686 "Dict", 23687 "List", 23688 "Literal", 23689 "Generic", 23690 "Optional", 23691 "Sequence", 23692 "Set", 23693 "Tuple", 23694 "Type", 23695 "Union" 23696 ]; 23697 const KEYWORDS = { 23698 $pattern: /[A-Za-z]\w+|__\w+__/, 23699 keyword: RESERVED_WORDS, 23700 built_in: BUILT_INS, 23701 literal: LITERALS, 23702 type: TYPES 23703 }; 23704 const PROMPT = { 23705 className: "meta", 23706 begin: /^(>>>|\.\.\.) / 23707 }; 23708 const SUBST = { 23709 className: "subst", 23710 begin: /\{/, 23711 end: /\}/, 23712 keywords: KEYWORDS, 23713 illegal: /#/ 23714 }; 23715 const LITERAL_BRACKET = { 23716 begin: /\{\{/, 23717 relevance: 0 23718 }; 23719 const STRING = { 23720 className: "string", 23721 contains: [hljs2.BACKSLASH_ESCAPE], 23722 variants: [ 23723 { 23724 begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/, 23725 end: /'''/, 23726 contains: [ 23727 hljs2.BACKSLASH_ESCAPE, 23728 PROMPT 23729 ], 23730 relevance: 10 23731 }, 23732 { 23733 begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/, 23734 end: /"""/, 23735 contains: [ 23736 hljs2.BACKSLASH_ESCAPE, 23737 PROMPT 23738 ], 23739 relevance: 10 23740 }, 23741 { 23742 begin: /([fF][rR]|[rR][fF]|[fF])'''/, 23743 end: /'''/, 23744 contains: [ 23745 hljs2.BACKSLASH_ESCAPE, 23746 PROMPT, 23747 LITERAL_BRACKET, 23748 SUBST 23749 ] 23750 }, 23751 { 23752 begin: /([fF][rR]|[rR][fF]|[fF])"""/, 23753 end: /"""/, 23754 contains: [ 23755 hljs2.BACKSLASH_ESCAPE, 23756 PROMPT, 23757 LITERAL_BRACKET, 23758 SUBST 23759 ] 23760 }, 23761 { 23762 begin: /([uU]|[rR])'/, 23763 end: /'/, 23764 relevance: 10 23765 }, 23766 { 23767 begin: /([uU]|[rR])"/, 23768 end: /"/, 23769 relevance: 10 23770 }, 23771 { 23772 begin: /([bB]|[bB][rR]|[rR][bB])'/, 23773 end: /'/ 23774 }, 23775 { 23776 begin: /([bB]|[bB][rR]|[rR][bB])"/, 23777 end: /"/ 23778 }, 23779 { 23780 begin: /([fF][rR]|[rR][fF]|[fF])'/, 23781 end: /'/, 23782 contains: [ 23783 hljs2.BACKSLASH_ESCAPE, 23784 LITERAL_BRACKET, 23785 SUBST 23786 ] 23787 }, 23788 { 23789 begin: /([fF][rR]|[rR][fF]|[fF])"/, 23790 end: /"/, 23791 contains: [ 23792 hljs2.BACKSLASH_ESCAPE, 23793 LITERAL_BRACKET, 23794 SUBST 23795 ] 23796 }, 23797 hljs2.APOS_STRING_MODE, 23798 hljs2.QUOTE_STRING_MODE 23799 ] 23800 }; 23801 const digitpart = "[0-9](_?[0-9])*"; 23802 const pointfloat = `(\\b(${digitpart}))?\\.(${digitpart})|\\b(${digitpart})\\.`; 23803 const NUMBER = { 23804 className: "number", 23805 relevance: 0, 23806 variants: [ 23807 { 23808 begin: `(\\b(${digitpart})|(${pointfloat}))[eE][+-]?(${digitpart})[jJ]?\\b` 23809 }, 23810 { 23811 begin: `(${pointfloat})[jJ]?` 23812 }, 23813 { 23814 begin: "\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?\\b" 23815 }, 23816 { 23817 begin: "\\b0[bB](_?[01])+[lL]?\\b" 23818 }, 23819 { 23820 begin: "\\b0[oO](_?[0-7])+[lL]?\\b" 23821 }, 23822 { 23823 begin: "\\b0[xX](_?[0-9a-fA-F])+[lL]?\\b" 23824 }, 23825 { 23826 begin: `\\b(${digitpart})[jJ]\\b` 23827 } 23828 ] 23829 }; 23830 const COMMENT_TYPE = { 23831 className: "comment", 23832 begin: lookahead(/# type:/), 23833 end: /$/, 23834 keywords: KEYWORDS, 23835 contains: [ 23836 { 23837 begin: /# type:/ 23838 }, 23839 { 23840 begin: /#/, 23841 end: /\b\B/, 23842 endsWithParent: true 23843 } 23844 ] 23845 }; 23846 const PARAMS = { 23847 className: "params", 23848 variants: [ 23849 { 23850 className: "", 23851 begin: /\(\s*\)/, 23852 skip: true 23853 }, 23854 { 23855 begin: /\(/, 23856 end: /\)/, 23857 excludeBegin: true, 23858 excludeEnd: true, 23859 keywords: KEYWORDS, 23860 contains: [ 23861 "self", 23862 PROMPT, 23863 NUMBER, 23864 STRING, 23865 hljs2.HASH_COMMENT_MODE 23866 ] 23867 } 23868 ] 23869 }; 23870 SUBST.contains = [ 23871 STRING, 23872 NUMBER, 23873 PROMPT 23874 ]; 23875 return { 23876 name: "Python", 23877 aliases: [ 23878 "py", 23879 "gyp", 23880 "ipython" 23881 ], 23882 keywords: KEYWORDS, 23883 illegal: /(<\/|->|\?)|=>/, 23884 contains: [ 23885 PROMPT, 23886 NUMBER, 23887 { 23888 begin: /\bself\b/ 23889 }, 23890 { 23891 beginKeywords: "if", 23892 relevance: 0 23893 }, 23894 STRING, 23895 COMMENT_TYPE, 23896 hljs2.HASH_COMMENT_MODE, 23897 { 23898 variants: [ 23899 { 23900 className: "function", 23901 beginKeywords: "def" 23902 }, 23903 { 23904 className: "class", 23905 beginKeywords: "class" 23906 } 23907 ], 23908 end: /:/, 23909 illegal: /[${=;\n,]/, 23910 contains: [ 23911 hljs2.UNDERSCORE_TITLE_MODE, 23912 PARAMS, 23913 { 23914 begin: /->/, 23915 endsWithParent: true, 23916 keywords: KEYWORDS 23917 } 23918 ] 23919 }, 23920 { 23921 className: "meta", 23922 begin: /^[\t ]*@/, 23923 end: /(?=#)|$/, 23924 contains: [ 23925 NUMBER, 23926 PARAMS, 23927 STRING 23928 ] 23929 } 23930 ] 23931 }; 23932 } 23933 module.exports = python; 23934 } 23935 }); 23936 23937
vendor: 6,440 bytes, lines 23937-24176
23937// node_modules/highlight.js/lib/languages/xml.js 23938 var require_xml = __commonJS({ 23939 "node_modules/highlight.js/lib/languages/xml.js"(exports, module) { 23940 function source(re2) { 23941 if (!re2) 23942 return null; 23943 if (typeof re2 === "string") 23944 return re2; 23945 return re2.source; 23946 } 23947 function lookahead(re2) { 23948 return concat("(?=", re2, ")"); 23949 } 23950 function optional(re2) { 23951 return concat("(", re2, ")?"); 23952 } 23953 function concat(...args) { 23954 const joined = args.map((x) => source(x)).join(""); 23955 return joined; 23956 } 23957 function either(...args) { 23958 const joined = "(" + args.map((x) => source(x)).join("|") + ")"; 23959 return joined; 23960 } 23961 function xml(hljs2) { 23962 const TAG_NAME_RE = concat(/[A-Z_]/, optional(/[A-Z0-9_.-]*:/), /[A-Z0-9_.-]*/); 23963 const XML_IDENT_RE = /[A-Za-z0-9._:-]+/; 23964 const XML_ENTITIES = { 23965 className: "symbol", 23966 begin: /&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/ 23967 }; 23968 const XML_META_KEYWORDS = { 23969 begin: /\s/, 23970 contains: [ 23971 { 23972 className: "meta-keyword", 23973 begin: /#?[a-z_][a-z1-9_-]+/, 23974 illegal: /\n/ 23975 } 23976 ] 23977 }; 23978 const XML_META_PAR_KEYWORDS = hljs2.inherit(XML_META_KEYWORDS, { 23979 begin: /\(/, 23980 end: /\)/ 23981 }); 23982 const APOS_META_STRING_MODE = hljs2.inherit(hljs2.APOS_STRING_MODE, { 23983 className: "meta-string" 23984 }); 23985 const QUOTE_META_STRING_MODE = hljs2.inherit(hljs2.QUOTE_STRING_MODE, { 23986 className: "meta-string" 23987 }); 23988 const TAG_INTERNALS = { 23989 endsWithParent: true, 23990 illegal: /</, 23991 relevance: 0, 23992 contains: [ 23993 { 23994 className: "attr", 23995 begin: XML_IDENT_RE, 23996 relevance: 0 23997 }, 23998 { 23999 begin: /=\s*/, 24000 relevance: 0, 24001 contains: [ 24002 { 24003 className: "string", 24004 endsParent: true, 24005 variants: [ 24006 { 24007 begin: /"/, 24008 end: /"/, 24009 contains: [XML_ENTITIES] 24010 }, 24011 { 24012 begin: /'/, 24013 end: /'/, 24014 contains: [XML_ENTITIES] 24015 }, 24016 { 24017 begin: /[^\s"'=<>`]+/ 24018 } 24019 ] 24020 } 24021 ] 24022 } 24023 ] 24024 }; 24025 return { 24026 name: "HTML, XML", 24027 aliases: [ 24028 "html", 24029 "xhtml", 24030 "rss", 24031 "atom", 24032 "xjb", 24033 "xsd", 24034 "xsl", 24035 "plist", 24036 "wsf", 24037 "svg" 24038 ], 24039 case_insensitive: true, 24040 contains: [ 24041 { 24042 className: "meta", 24043 begin: /<![a-z]/, 24044 end: />/, 24045 relevance: 10, 24046 contains: [ 24047 XML_META_KEYWORDS, 24048 QUOTE_META_STRING_MODE, 24049 APOS_META_STRING_MODE, 24050 XML_META_PAR_KEYWORDS, 24051 { 24052 begin: /\[/, 24053 end: /\]/, 24054 contains: [ 24055 { 24056 className: "meta", 24057 begin: /<![a-z]/, 24058 end: />/, 24059 contains: [ 24060 XML_META_KEYWORDS, 24061 XML_META_PAR_KEYWORDS, 24062 QUOTE_META_STRING_MODE, 24063 APOS_META_STRING_MODE 24064 ] 24065 } 24066 ] 24067 } 24068 ] 24069 }, 24070 hljs2.COMMENT( 24071 /<!--/, 24072 /-->/, 24073 { 24074 relevance: 10 24075 } 24076 ), 24077 { 24078 begin: /<!\[CDATA\[/, 24079 end: /\]\]>/, 24080 relevance: 10 24081 }, 24082 XML_ENTITIES, 24083 { 24084 className: "meta", 24085 begin: /<\?xml/, 24086 end: /\?>/, 24087 relevance: 10 24088 }, 24089 { 24090 className: "tag", 24091 begin: /<style(?=\s|>)/, 24092 end: />/, 24093 keywords: { 24094 name: "style" 24095 }, 24096 contains: [TAG_INTERNALS], 24097 starts: { 24098 end: /<\/style>/, 24099 returnEnd: true, 24100 subLanguage: [ 24101 "css", 24102 "xml" 24103 ] 24104 } 24105 }, 24106 { 24107 className: "tag", 24108 begin: /<script(?=\s|>)/, 24109 end: />/, 24110 keywords: { 24111 name: "script" 24112 }, 24113 contains: [TAG_INTERNALS], 24114 starts: { 24115 end: /<\/script>/, 24116 returnEnd: true, 24117 subLanguage: [ 24118 "javascript", 24119 "handlebars", 24120 "xml" 24121 ] 24122 } 24123 }, 24124 { 24125 className: "tag", 24126 begin: /<>|<\/>/ 24127 }, 24128 { 24129 className: "tag", 24130 begin: concat( 24131 /</, 24132 lookahead(concat( 24133 TAG_NAME_RE, 24134 either(/\/>/, />/, /\s/) 24135 )) 24136 ), 24137 end: /\/?>/, 24138 contains: [ 24139 { 24140 className: "name", 24141 begin: TAG_NAME_RE, 24142 relevance: 0, 24143 starts: TAG_INTERNALS 24144 } 24145 ] 24146 }, 24147 { 24148 className: "tag", 24149 begin: concat( 24150 /<\//, 24151 lookahead(concat( 24152 TAG_NAME_RE, 24153 />/ 24154 )) 24155 ), 24156 contains: [ 24157 { 24158 className: "name", 24159 begin: TAG_NAME_RE, 24160 relevance: 0 24161 }, 24162 { 24163 begin: />/, 24164 relevance: 0, 24165 endsParent: true 24166 } 24167 ] 24168 } 24169 ] 24170 }; 24171 } 24172 module.exports = xml; 24173 } 24174 }); 24175 24176
vendor: 2,632 bytes, lines 24176-24229
24176// node_modules/highlight.js/lib/languages/django.js 24177 var require_django = __commonJS({ 24178 "node_modules/highlight.js/lib/languages/django.js"(exports, module) { 24179 function django(hljs2) { 24180 const FILTER = { 24181 begin: /\|[A-Za-z]+:?/, 24182 keywords: { 24183 name: "truncatewords removetags linebreaksbr yesno get_digit timesince random striptags filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort dictsortreversed default_if_none pluralize lower join center default truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize localtime utc timezone" 24184 }, 24185 contains: [ 24186 hljs2.QUOTE_STRING_MODE, 24187 hljs2.APOS_STRING_MODE 24188 ] 24189 }; 24190 return { 24191 name: "Django", 24192 aliases: ["jinja"], 24193 case_insensitive: true, 24194 subLanguage: "xml", 24195 contains: [ 24196 hljs2.COMMENT(/\{%\s*comment\s*%\}/, /\{%\s*endcomment\s*%\}/), 24197 hljs2.COMMENT(/\{#/, /#\}/), 24198 { 24199 className: "template-tag", 24200 begin: /\{%/, 24201 end: /%\}/, 24202 contains: [{ 24203 className: "name", 24204 begin: /\w+/, 24205 keywords: { 24206 name: "comment endcomment load templatetag ifchanged endifchanged if endif firstof for endfor ifnotequal endifnotequal widthratio extends include spaceless endspaceless regroup ifequal endifequal ssi now with cycle url filter endfilter debug block endblock else autoescape endautoescape csrf_token empty elif endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix plural get_current_language language get_available_languages get_current_language_bidi get_language_info get_language_info_list localize endlocalize localtime endlocaltime timezone endtimezone get_current_timezone verbatim" 24207 }, 24208 starts: { 24209 endsWithParent: true, 24210 keywords: "in by as", 24211 contains: [FILTER], 24212 relevance: 0 24213 } 24214 }] 24215 }, 24216 { 24217 className: "template-variable", 24218 begin: /\{\{/, 24219 end: /\}\}/, 24220 contains: [FILTER] 24221 } 24222 ] 24223 }; 24224 } 24225 module.exports = django; 24226 } 24227 }); 24228 24229
vendor: 4,099 bytes, lines 24229-24362
24229// node_modules/highlight.js/lib/languages/bash.js 24230 var require_bash = __commonJS({ 24231 "node_modules/highlight.js/lib/languages/bash.js"(exports, module) { 24232 function source(re2) { 24233 if (!re2) 24234 return null; 24235 if (typeof re2 === "string") 24236 return re2; 24237 return re2.source; 24238 } 24239 function concat(...args) { 24240 const joined = args.map((x) => source(x)).join(""); 24241 return joined; 24242 } 24243 function bash(hljs2) { 24244 const VAR = {}; 24245 const BRACED_VAR = { 24246 begin: /\$\{/, 24247 end: /\}/, 24248 contains: [ 24249 "self", 24250 { 24251 begin: /:-/, 24252 contains: [VAR] 24253 } 24254 ] 24255 }; 24256 Object.assign(VAR, { 24257 className: "variable", 24258 variants: [ 24259 { begin: concat( 24260 /\$[\w\d#@][\w\d_]*/, 24261 `(?![\\w\\d])(?![$])` 24262 ) }, 24263 BRACED_VAR 24264 ] 24265 }); 24266 const SUBST = { 24267 className: "subst", 24268 begin: /\$\(/, 24269 end: /\)/, 24270 contains: [hljs2.BACKSLASH_ESCAPE] 24271 }; 24272 const HERE_DOC = { 24273 begin: /<<-?\s*(?=\w+)/, 24274 starts: { 24275 contains: [ 24276 hljs2.END_SAME_AS_BEGIN({ 24277 begin: /(\w+)/, 24278 end: /(\w+)/, 24279 className: "string" 24280 }) 24281 ] 24282 } 24283 }; 24284 const QUOTE_STRING = { 24285 className: "string", 24286 begin: /"/, 24287 end: /"/, 24288 contains: [ 24289 hljs2.BACKSLASH_ESCAPE, 24290 VAR, 24291 SUBST 24292 ] 24293 }; 24294 SUBST.contains.push(QUOTE_STRING); 24295 const ESCAPED_QUOTE = { 24296 className: "", 24297 begin: /\\"/ 24298 }; 24299 const APOS_STRING = { 24300 className: "string", 24301 begin: /'/, 24302 end: /'/ 24303 }; 24304 const ARITHMETIC = { 24305 begin: /\$\(\(/, 24306 end: /\)\)/, 24307 contains: [ 24308 { begin: /\d+#[0-9a-f]+/, className: "number" }, 24309 hljs2.NUMBER_MODE, 24310 VAR 24311 ] 24312 }; 24313 const SH_LIKE_SHELLS = [ 24314 "fish", 24315 "bash", 24316 "zsh", 24317 "sh", 24318 "csh", 24319 "ksh", 24320 "tcsh", 24321 "dash", 24322 "scsh" 24323 ]; 24324 const KNOWN_SHEBANG = hljs2.SHEBANG({ 24325 binary: `(${SH_LIKE_SHELLS.join("|")})`, 24326 relevance: 10 24327 }); 24328 const FUNCTION = { 24329 className: "function", 24330 begin: /\w[\w\d_]*\s*\(\s*\)\s*\{/, 24331 returnBegin: true, 24332 contains: [hljs2.inherit(hljs2.TITLE_MODE, { begin: /\w[\w\d_]*/ })], 24333 relevance: 0 24334 }; 24335 return { 24336 name: "Bash", 24337 aliases: ["sh", "zsh"], 24338 keywords: { 24339 $pattern: /\b[a-z._-]+\b/, 24340 keyword: "if then else elif fi for while in do done case esac function", 24341 literal: "true false", 24342 built_in: "break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp" 24343 }, 24344 contains: [ 24345 KNOWN_SHEBANG, 24346 hljs2.SHEBANG(), 24347 FUNCTION, 24348 ARITHMETIC, 24349 hljs2.HASH_COMMENT_MODE, 24350 HERE_DOC, 24351 QUOTE_STRING, 24352 ESCAPED_QUOTE, 24353 APOS_STRING, 24354 VAR 24355 ] 24356 }; 24357 } 24358 module.exports = bash; 24359 } 24360 }); 24361 24362
vendor: 13,351 bytes, lines 24362-24921
24362// node_modules/highlight.js/lib/languages/css.js 24363 var require_css = __commonJS({ 24364 "node_modules/highlight.js/lib/languages/css.js"(exports, module) { 24365 var MODES = (hljs2) => { 24366 return { 24367 IMPORTANT: { 24368 className: "meta", 24369 begin: "!important" 24370 }, 24371 HEXCOLOR: { 24372 className: "number", 24373 begin: "#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})" 24374 }, 24375 ATTRIBUTE_SELECTOR_MODE: { 24376 className: "selector-attr", 24377 begin: /\[/, 24378 end: /\]/, 24379 illegal: "$", 24380 contains: [ 24381 hljs2.APOS_STRING_MODE, 24382 hljs2.QUOTE_STRING_MODE 24383 ] 24384 } 24385 }; 24386 }; 24387 var TAGS = [ 24388 "a", 24389 "abbr", 24390 "address", 24391 "article", 24392 "aside", 24393 "audio", 24394 "b", 24395 "blockquote", 24396 "body", 24397 "button", 24398 "canvas", 24399 "caption", 24400 "cite", 24401 "code", 24402 "dd", 24403 "del", 24404 "details", 24405 "dfn", 24406 "div", 24407 "dl", 24408 "dt", 24409 "em", 24410 "fieldset", 24411 "figcaption", 24412 "figure", 24413 "footer", 24414 "form", 24415 "h1", 24416 "h2", 24417 "h3", 24418 "h4", 24419 "h5", 24420 "h6", 24421 "header", 24422 "hgroup", 24423 "html", 24424 "i", 24425 "iframe", 24426 "img", 24427 "input", 24428 "ins", 24429 "kbd", 24430 "label", 24431 "legend", 24432 "li", 24433 "main", 24434 "mark", 24435 "menu", 24436 "nav", 24437 "object", 24438 "ol", 24439 "p", 24440 "q", 24441 "quote", 24442 "samp", 24443 "section", 24444 "span", 24445 "strong", 24446 "summary", 24447 "sup", 24448 "table", 24449 "tbody", 24450 "td", 24451 "textarea", 24452 "tfoot", 24453 "th", 24454 "thead", 24455 "time", 24456 "tr", 24457 "ul", 24458 "var", 24459 "video" 24460 ]; 24461 var MEDIA_FEATURES = [ 24462 "any-hover", 24463 "any-pointer", 24464 "aspect-ratio", 24465 "color", 24466 "color-gamut", 24467 "color-index", 24468 "device-aspect-ratio", 24469 "device-height", 24470 "device-width", 24471 "display-mode", 24472 "forced-colors", 24473 "grid", 24474 "height", 24475 "hover", 24476 "inverted-colors", 24477 "monochrome", 24478 "orientation", 24479 "overflow-block", 24480 "overflow-inline", 24481 "pointer", 24482 "prefers-color-scheme", 24483 "prefers-contrast", 24484 "prefers-reduced-motion", 24485 "prefers-reduced-transparency", 24486 "resolution", 24487 "scan", 24488 "scripting", 24489 "update", 24490 "width", 24491 "min-width", 24492 "max-width", 24493 "min-height", 24494 "max-height" 24495 ]; 24496 var PSEUDO_CLASSES = [ 24497 "active", 24498 "any-link", 24499 "blank", 24500 "checked", 24501 "current", 24502 "default", 24503 "defined", 24504 "dir", 24505 "disabled", 24506 "drop", 24507 "empty", 24508 "enabled", 24509 "first", 24510 "first-child", 24511 "first-of-type", 24512 "fullscreen", 24513 "future", 24514 "focus", 24515 "focus-visible", 24516 "focus-within", 24517 "has", 24518 "host", 24519 "host-context", 24520 "hover", 24521 "indeterminate", 24522 "in-range", 24523 "invalid", 24524 "is", 24525 "lang", 24526 "last-child", 24527 "last-of-type", 24528 "left", 24529 "link", 24530 "local-link", 24531 "not", 24532 "nth-child", 24533 "nth-col", 24534 "nth-last-child", 24535 "nth-last-col", 24536 "nth-last-of-type", 24537 "nth-of-type", 24538 "only-child", 24539 "only-of-type", 24540 "optional", 24541 "out-of-range", 24542 "past", 24543 "placeholder-shown", 24544 "read-only", 24545 "read-write", 24546 "required", 24547 "right", 24548 "root", 24549 "scope", 24550 "target", 24551 "target-within", 24552 "user-invalid", 24553 "valid", 24554 "visited", 24555 "where" 24556 ]; 24557 var PSEUDO_ELEMENTS = [ 24558 "after", 24559 "backdrop", 24560 "before", 24561 "cue", 24562 "cue-region", 24563 "first-letter", 24564 "first-line", 24565 "grammar-error", 24566 "marker", 24567 "part", 24568 "placeholder", 24569 "selection", 24570 "slotted", 24571 "spelling-error" 24572 ]; 24573 var ATTRIBUTES = [ 24574 "align-content", 24575 "align-items", 24576 "align-self", 24577 "animation", 24578 "animation-delay", 24579 "animation-direction", 24580 "animation-duration", 24581 "animation-fill-mode", 24582 "animation-iteration-count", 24583 "animation-name", 24584 "animation-play-state", 24585 "animation-timing-function", 24586 "auto", 24587 "backface-visibility", 24588 "background", 24589 "background-attachment", 24590 "background-clip", 24591 "background-color", 24592 "background-image", 24593 "background-origin", 24594 "background-position", 24595 "background-repeat", 24596 "background-size", 24597 "border", 24598 "border-bottom", 24599 "border-bottom-color", 24600 "border-bottom-left-radius", 24601 "border-bottom-right-radius", 24602 "border-bottom-style", 24603 "border-bottom-width", 24604 "border-collapse", 24605 "border-color", 24606 "border-image", 24607 "border-image-outset", 24608 "border-image-repeat", 24609 "border-image-slice", 24610 "border-image-source", 24611 "border-image-width", 24612 "border-left", 24613 "border-left-color", 24614 "border-left-style", 24615 "border-left-width", 24616 "border-radius", 24617 "border-right", 24618 "border-right-color", 24619 "border-right-style", 24620 "border-right-width", 24621 "border-spacing", 24622 "border-style", 24623 "border-top", 24624 "border-top-color", 24625 "border-top-left-radius", 24626 "border-top-right-radius", 24627 "border-top-style", 24628 "border-top-width", 24629 "border-width", 24630 "bottom", 24631 "box-decoration-break", 24632 "box-shadow", 24633 "box-sizing", 24634 "break-after", 24635 "break-before", 24636 "break-inside", 24637 "caption-side", 24638 "clear", 24639 "clip", 24640 "clip-path", 24641 "color", 24642 "column-count", 24643 "column-fill", 24644 "column-gap", 24645 "column-rule", 24646 "column-rule-color", 24647 "column-rule-style", 24648 "column-rule-width", 24649 "column-span", 24650 "column-width", 24651 "columns", 24652 "content", 24653 "counter-increment", 24654 "counter-reset", 24655 "cursor", 24656 "direction", 24657 "display", 24658 "empty-cells", 24659 "filter", 24660 "flex", 24661 "flex-basis", 24662 "flex-direction", 24663 "flex-flow", 24664 "flex-grow", 24665 "flex-shrink", 24666 "flex-wrap", 24667 "float", 24668 "font", 24669 "font-display", 24670 "font-family", 24671 "font-feature-settings", 24672 "font-kerning", 24673 "font-language-override", 24674 "font-size", 24675 "font-size-adjust", 24676 "font-smoothing", 24677 "font-stretch", 24678 "font-style", 24679 "font-variant", 24680 "font-variant-ligatures", 24681 "font-variation-settings", 24682 "font-weight", 24683 "height", 24684 "hyphens", 24685 "icon", 24686 "image-orientation", 24687 "image-rendering", 24688 "image-resolution", 24689 "ime-mode", 24690 "inherit", 24691 "initial", 24692 "justify-content", 24693 "left", 24694 "letter-spacing", 24695 "line-height", 24696 "list-style", 24697 "list-style-image", 24698 "list-style-position", 24699 "list-style-type", 24700 "margin", 24701 "margin-bottom", 24702 "margin-left", 24703 "margin-right", 24704 "margin-top", 24705 "marks", 24706 "mask", 24707 "max-height", 24708 "max-width", 24709 "min-height", 24710 "min-width", 24711 "nav-down", 24712 "nav-index", 24713 "nav-left", 24714 "nav-right", 24715 "nav-up", 24716 "none", 24717 "normal", 24718 "object-fit", 24719 "object-position", 24720 "opacity", 24721 "order", 24722 "orphans", 24723 "outline", 24724 "outline-color", 24725 "outline-offset", 24726 "outline-style", 24727 "outline-width", 24728 "overflow", 24729 "overflow-wrap", 24730 "overflow-x", 24731 "overflow-y", 24732 "padding", 24733 "padding-bottom", 24734 "padding-left", 24735 "padding-right", 24736 "padding-top", 24737 "page-break-after", 24738 "page-break-before", 24739 "page-break-inside", 24740 "perspective", 24741 "perspective-origin", 24742 "pointer-events", 24743 "position", 24744 "quotes", 24745 "resize", 24746 "right", 24747 "src", 24748 "tab-size", 24749 "table-layout", 24750 "text-align", 24751 "text-align-last", 24752 "text-decoration", 24753 "text-decoration-color", 24754 "text-decoration-line", 24755 "text-decoration-style", 24756 "text-indent", 24757 "text-overflow", 24758 "text-rendering", 24759 "text-shadow", 24760 "text-transform", 24761 "text-underline-position", 24762 "top", 24763 "transform", 24764 "transform-origin", 24765 "transform-style", 24766 "transition", 24767 "transition-delay", 24768 "transition-duration", 24769 "transition-property", 24770 "transition-timing-function", 24771 "unicode-bidi", 24772 "vertical-align", 24773 "visibility", 24774 "white-space", 24775 "widows", 24776 "width", 24777 "word-break", 24778 "word-spacing", 24779 "word-wrap", 24780 "z-index" 24781 ].reverse(); 24782 function source(re2) { 24783 if (!re2) 24784 return null; 24785 if (typeof re2 === "string") 24786 return re2; 24787 return re2.source; 24788 } 24789 function lookahead(re2) { 24790 return concat("(?=", re2, ")"); 24791 } 24792 function concat(...args) { 24793 const joined = args.map((x) => source(x)).join(""); 24794 return joined; 24795 } 24796 function css(hljs2) { 24797 const modes = MODES(hljs2); 24798 const FUNCTION_DISPATCH = { 24799 className: "built_in", 24800 begin: /[\w-]+(?=\()/ 24801 }; 24802 const VENDOR_PREFIX = { 24803 begin: /-(webkit|moz|ms|o)-(?=[a-z])/ 24804 }; 24805 const AT_MODIFIERS = "and or not only"; 24806 const AT_PROPERTY_RE = /@-?\w[\w]*(-\w+)*/; 24807 const IDENT_RE = "[a-zA-Z-][a-zA-Z0-9_-]*"; 24808 const STRINGS = [ 24809 hljs2.APOS_STRING_MODE, 24810 hljs2.QUOTE_STRING_MODE 24811 ]; 24812 return { 24813 name: "CSS", 24814 case_insensitive: true, 24815 illegal: /[=|'\$]/, 24816 keywords: { 24817 keyframePosition: "from to" 24818 }, 24819 classNameAliases: { 24820 keyframePosition: "selector-tag" 24821 }, 24822 contains: [ 24823 hljs2.C_BLOCK_COMMENT_MODE, 24824 VENDOR_PREFIX, 24825 hljs2.CSS_NUMBER_MODE, 24826 { 24827 className: "selector-id", 24828 begin: /#[A-Za-z0-9_-]+/, 24829 relevance: 0 24830 }, 24831 { 24832 className: "selector-class", 24833 begin: "\\." + IDENT_RE, 24834 relevance: 0 24835 }, 24836 modes.ATTRIBUTE_SELECTOR_MODE, 24837 { 24838 className: "selector-pseudo", 24839 variants: [ 24840 { 24841 begin: ":(" + PSEUDO_CLASSES.join("|") + ")" 24842 }, 24843 { 24844 begin: "::(" + PSEUDO_ELEMENTS.join("|") + ")" 24845 } 24846 ] 24847 }, 24848 { 24849 className: "attribute", 24850 begin: "\\b(" + ATTRIBUTES.join("|") + ")\\b" 24851 }, 24852 { 24853 begin: ":", 24854 end: "[;}]", 24855 contains: [ 24856 modes.HEXCOLOR, 24857 modes.IMPORTANT, 24858 hljs2.CSS_NUMBER_MODE, 24859 ...STRINGS, 24860 { 24861 begin: /(url|data-uri)\(/, 24862 end: /\)/, 24863 relevance: 0, 24864 keywords: { 24865 built_in: "url data-uri" 24866 }, 24867 contains: [ 24868 { 24869 className: "string", 24870 begin: /[^)]/, 24871 endsWithParent: true, 24872 excludeEnd: true 24873 } 24874 ] 24875 }, 24876 FUNCTION_DISPATCH 24877 ] 24878 }, 24879 { 24880 begin: lookahead(/@/), 24881 end: "[{;]", 24882 relevance: 0, 24883 illegal: /:/, 24884 contains: [ 24885 { 24886 className: "keyword", 24887 begin: AT_PROPERTY_RE 24888 }, 24889 { 24890 begin: /\s/, 24891 endsWithParent: true, 24892 excludeEnd: true, 24893 relevance: 0, 24894 keywords: { 24895 $pattern: /[a-z-]+/, 24896 keyword: AT_MODIFIERS, 24897 attribute: MEDIA_FEATURES.join(" ") 24898 }, 24899 contains: [ 24900 { 24901 begin: /[a-z-]+(?=:)/, 24902 className: "attribute" 24903 }, 24904 ...STRINGS, 24905 hljs2.CSS_NUMBER_MODE 24906 ] 24907 } 24908 ] 24909 }, 24910 { 24911 className: "selector-tag", 24912 begin: "\\b(" + TAGS.join("|") + ")\\b" 24913 } 24914 ] 24915 }; 24916 } 24917 module.exports = css; 24918 } 24919 }); 24920 24921
vendor: 5,581 bytes, lines 24921-25147
24921// node_modules/highlight.js/lib/languages/markdown.js 24922 var require_markdown = __commonJS({ 24923 "node_modules/highlight.js/lib/languages/markdown.js"(exports, module) { 24924 function source(re2) { 24925 if (!re2) 24926 return null; 24927 if (typeof re2 === "string") 24928 return re2; 24929 return re2.source; 24930 } 24931 function concat(...args) { 24932 const joined = args.map((x) => source(x)).join(""); 24933 return joined; 24934 } 24935 function markdown(hljs2) { 24936 const INLINE_HTML = { 24937 begin: /<\/?[A-Za-z_]/, 24938 end: ">", 24939 subLanguage: "xml", 24940 relevance: 0 24941 }; 24942 const HORIZONTAL_RULE = { 24943 begin: "^[-\\*]{3,}", 24944 end: "$" 24945 }; 24946 const CODE = { 24947 className: "code", 24948 variants: [ 24949 { 24950 begin: "(`{3,})[^`](.|\\n)*?\\1`*[ ]*" 24951 }, 24952 { 24953 begin: "(~{3,})[^~](.|\\n)*?\\1~*[ ]*" 24954 }, 24955 { 24956 begin: "```", 24957 end: "```+[ ]*$" 24958 }, 24959 { 24960 begin: "~~~", 24961 end: "~~~+[ ]*$" 24962 }, 24963 { 24964 begin: "`.+?`" 24965 }, 24966 { 24967 begin: "(?=^( {4}|\\t))", 24968 contains: [ 24969 { 24970 begin: "^( {4}|\\t)", 24971 end: "(\\n)$" 24972 } 24973 ], 24974 relevance: 0 24975 } 24976 ] 24977 }; 24978 const LIST = { 24979 className: "bullet", 24980 begin: "^[ ]*([*+-]|(\\d+\\.))(?=\\s+)", 24981 end: "\\s+", 24982 excludeEnd: true 24983 }; 24984 const LINK_REFERENCE = { 24985 begin: /^\[[^\n]+\]:/, 24986 returnBegin: true, 24987 contains: [ 24988 { 24989 className: "symbol", 24990 begin: /\[/, 24991 end: /\]/, 24992 excludeBegin: true, 24993 excludeEnd: true 24994 }, 24995 { 24996 className: "link", 24997 begin: /:\s*/, 24998 end: /$/, 24999 excludeBegin: true 25000 } 25001 ] 25002 }; 25003 const URL_SCHEME = /[A-Za-z][A-Za-z0-9+.-]*/; 25004 const LINK = { 25005 variants: [ 25006 { 25007 begin: /\[.+?\]\[.*?\]/, 25008 relevance: 0 25009 }, 25010 { 25011 begin: /\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/, 25012 relevance: 2 25013 }, 25014 { 25015 begin: concat(/\[.+?\]\(/, URL_SCHEME, /:\/\/.*?\)/), 25016 relevance: 2 25017 }, 25018 { 25019 begin: /\[.+?\]\([./?&#].*?\)/, 25020 relevance: 1 25021 }, 25022 { 25023 begin: /\[.+?\]\(.*?\)/, 25024 relevance: 0 25025 } 25026 ], 25027 returnBegin: true, 25028 contains: [ 25029 { 25030 className: "string", 25031 relevance: 0, 25032 begin: "\\[", 25033 end: "\\]", 25034 excludeBegin: true, 25035 returnEnd: true 25036 }, 25037 { 25038 className: "link", 25039 relevance: 0, 25040 begin: "\\]\\(", 25041 end: "\\)", 25042 excludeBegin: true, 25043 excludeEnd: true 25044 }, 25045 { 25046 className: "symbol", 25047 relevance: 0, 25048 begin: "\\]\\[", 25049 end: "\\]", 25050 excludeBegin: true, 25051 excludeEnd: true 25052 } 25053 ] 25054 }; 25055 const BOLD = { 25056 className: "strong", 25057 contains: [], 25058 variants: [ 25059 { 25060 begin: /_{2}/, 25061 end: /_{2}/ 25062 }, 25063 { 25064 begin: /\*{2}/, 25065 end: /\*{2}/ 25066 } 25067 ] 25068 }; 25069 const ITALIC = { 25070 className: "emphasis", 25071 contains: [], 25072 variants: [ 25073 { 25074 begin: /\*(?!\*)/, 25075 end: /\*/ 25076 }, 25077 { 25078 begin: /_(?!_)/, 25079 end: /_/, 25080 relevance: 0 25081 } 25082 ] 25083 }; 25084 BOLD.contains.push(ITALIC); 25085 ITALIC.contains.push(BOLD); 25086 let CONTAINABLE = [ 25087 INLINE_HTML, 25088 LINK 25089 ]; 25090 BOLD.contains = BOLD.contains.concat(CONTAINABLE); 25091 ITALIC.contains = ITALIC.contains.concat(CONTAINABLE); 25092 CONTAINABLE = CONTAINABLE.concat(BOLD, ITALIC); 25093 const HEADER = { 25094 className: "section", 25095 variants: [ 25096 { 25097 begin: "^#{1,6}", 25098 end: "$", 25099 contains: CONTAINABLE 25100 }, 25101 { 25102 begin: "(?=^.+?\\n[=-]{2,}$)", 25103 contains: [ 25104 { 25105 begin: "^[=-]*$" 25106 }, 25107 { 25108 begin: "^", 25109 end: "\\n", 25110 contains: CONTAINABLE 25111 } 25112 ] 25113 } 25114 ] 25115 }; 25116 const BLOCKQUOTE = { 25117 className: "quote", 25118 begin: "^>\\s+", 25119 contains: CONTAINABLE, 25120 end: "$" 25121 }; 25122 return { 25123 name: "Markdown", 25124 aliases: [ 25125 "md", 25126 "mkdown", 25127 "mkd" 25128 ], 25129 contains: [ 25130 HEADER, 25131 INLINE_HTML, 25132 LIST, 25133 BOLD, 25134 ITALIC, 25135 BLOCKQUOTE, 25136 CODE, 25137 HORIZONTAL_RULE, 25138 LINK, 25139 LINK_REFERENCE 25140 ] 25141 }; 25142 } 25143 module.exports = markdown; 25144 } 25145 }); 25146 25147
vendor: 1,982 bytes, lines 25147-25228
25147// node_modules/highlight.js/lib/languages/diff.js 25148 var require_diff = __commonJS({ 25149 "node_modules/highlight.js/lib/languages/diff.js"(exports, module) { 25150 function diff(hljs2) { 25151 return { 25152 name: "Diff", 25153 aliases: ["patch"], 25154 contains: [ 25155 { 25156 className: "meta", 25157 relevance: 10, 25158 variants: [ 25159 { 25160 begin: /^@@ +-\d+,\d+ +\+\d+,\d+ +@@/ 25161 }, 25162 { 25163 begin: /^\*\*\* +\d+,\d+ +\*\*\*\*$/ 25164 }, 25165 { 25166 begin: /^--- +\d+,\d+ +----$/ 25167 } 25168 ] 25169 }, 25170 { 25171 className: "comment", 25172 variants: [ 25173 { 25174 begin: /Index: /, 25175 end: /$/ 25176 }, 25177 { 25178 begin: /^index/, 25179 end: /$/ 25180 }, 25181 { 25182 begin: /={3,}/, 25183 end: /$/ 25184 }, 25185 { 25186 begin: /^-{3}/, 25187 end: /$/ 25188 }, 25189 { 25190 begin: /^\*{3} /, 25191 end: /$/ 25192 }, 25193 { 25194 begin: /^\+{3}/, 25195 end: /$/ 25196 }, 25197 { 25198 begin: /^\*{15}$/ 25199 }, 25200 { 25201 begin: /^diff --git/, 25202 end: /$/ 25203 } 25204 ] 25205 }, 25206 { 25207 className: "addition", 25208 begin: /^\+/, 25209 end: /$/ 25210 }, 25211 { 25212 className: "deletion", 25213 begin: /^-/, 25214 end: /$/ 25215 }, 25216 { 25217 className: "addition", 25218 begin: /^!/, 25219 end: /$/ 25220 } 25221 ] 25222 }; 25223 } 25224 module.exports = diff; 25225 } 25226 }); 25227 25228
vendor: 1,575 bytes, lines 25228-25288
25228// node_modules/highlight.js/lib/languages/json.js 25229 var require_json = __commonJS({ 25230 "node_modules/highlight.js/lib/languages/json.js"(exports, module) { 25231 function json(hljs2) { 25232 const LITERALS = { 25233 literal: "true false null" 25234 }; 25235 const ALLOWED_COMMENTS = [ 25236 hljs2.C_LINE_COMMENT_MODE, 25237 hljs2.C_BLOCK_COMMENT_MODE 25238 ]; 25239 const TYPES = [ 25240 hljs2.QUOTE_STRING_MODE, 25241 hljs2.C_NUMBER_MODE 25242 ]; 25243 const VALUE_CONTAINER = { 25244 end: ",", 25245 endsWithParent: true, 25246 excludeEnd: true, 25247 contains: TYPES, 25248 keywords: LITERALS 25249 }; 25250 const OBJECT = { 25251 begin: /\{/, 25252 end: /\}/, 25253 contains: [ 25254 { 25255 className: "attr", 25256 begin: /"/, 25257 end: /"/, 25258 contains: [hljs2.BACKSLASH_ESCAPE], 25259 illegal: "\\n" 25260 }, 25261 hljs2.inherit(VALUE_CONTAINER, { 25262 begin: /:/ 25263 }) 25264 ].concat(ALLOWED_COMMENTS), 25265 illegal: "\\S" 25266 }; 25267 const ARRAY = { 25268 begin: "\\[", 25269 end: "\\]", 25270 contains: [hljs2.inherit(VALUE_CONTAINER)], 25271 illegal: "\\S" 25272 }; 25273 TYPES.push(OBJECT, ARRAY); 25274 ALLOWED_COMMENTS.forEach(function(rule) { 25275 TYPES.push(rule); 25276 }); 25277 return { 25278 name: "JSON", 25279 contains: TYPES, 25280 keywords: LITERALS, 25281 illegal: "\\S" 25282 }; 25283 } 25284 module.exports = json; 25285 } 25286 }); 25287 25288
vendor: 15,149 bytes, lines 25288-25907
25288// node_modules/highlight.js/lib/languages/less.js 25289 var require_less = __commonJS({ 25290 "node_modules/highlight.js/lib/languages/less.js"(exports, module) { 25291 var MODES = (hljs2) => { 25292 return { 25293 IMPORTANT: { 25294 className: "meta", 25295 begin: "!important" 25296 }, 25297 HEXCOLOR: { 25298 className: "number", 25299 begin: "#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})" 25300 }, 25301 ATTRIBUTE_SELECTOR_MODE: { 25302 className: "selector-attr", 25303 begin: /\[/, 25304 end: /\]/, 25305 illegal: "$", 25306 contains: [ 25307 hljs2.APOS_STRING_MODE, 25308 hljs2.QUOTE_STRING_MODE 25309 ] 25310 } 25311 }; 25312 }; 25313 var TAGS = [ 25314 "a", 25315 "abbr", 25316 "address", 25317 "article", 25318 "aside", 25319 "audio", 25320 "b", 25321 "blockquote", 25322 "body", 25323 "button", 25324 "canvas", 25325 "caption", 25326 "cite", 25327 "code", 25328 "dd", 25329 "del", 25330 "details", 25331 "dfn", 25332 "div", 25333 "dl", 25334 "dt", 25335 "em", 25336 "fieldset", 25337 "figcaption", 25338 "figure", 25339 "footer", 25340 "form", 25341 "h1", 25342 "h2", 25343 "h3", 25344 "h4", 25345 "h5", 25346 "h6", 25347 "header", 25348 "hgroup", 25349 "html", 25350 "i", 25351 "iframe", 25352 "img", 25353 "input", 25354 "ins", 25355 "kbd", 25356 "label", 25357 "legend", 25358 "li", 25359 "main", 25360 "mark", 25361 "menu", 25362 "nav", 25363 "object", 25364 "ol", 25365 "p", 25366 "q", 25367 "quote", 25368 "samp", 25369 "section", 25370 "span", 25371 "strong", 25372 "summary", 25373 "sup", 25374 "table", 25375 "tbody", 25376 "td", 25377 "textarea", 25378 "tfoot", 25379 "th", 25380 "thead", 25381 "time", 25382 "tr", 25383 "ul", 25384 "var", 25385 "video" 25386 ]; 25387 var MEDIA_FEATURES = [ 25388 "any-hover", 25389 "any-pointer", 25390 "aspect-ratio", 25391 "color", 25392 "color-gamut", 25393 "color-index", 25394 "device-aspect-ratio", 25395 "device-height", 25396 "device-width", 25397 "display-mode", 25398 "forced-colors", 25399 "grid", 25400 "height", 25401 "hover", 25402 "inverted-colors", 25403 "monochrome", 25404 "orientation", 25405 "overflow-block", 25406 "overflow-inline", 25407 "pointer", 25408 "prefers-color-scheme", 25409 "prefers-contrast", 25410 "prefers-reduced-motion", 25411 "prefers-reduced-transparency", 25412 "resolution", 25413 "scan", 25414 "scripting", 25415 "update", 25416 "width", 25417 "min-width", 25418 "max-width", 25419 "min-height", 25420 "max-height" 25421 ]; 25422 var PSEUDO_CLASSES = [ 25423 "active", 25424 "any-link", 25425 "blank", 25426 "checked", 25427 "current", 25428 "default", 25429 "defined", 25430 "dir", 25431 "disabled", 25432 "drop", 25433 "empty", 25434 "enabled", 25435 "first", 25436 "first-child", 25437 "first-of-type", 25438 "fullscreen", 25439 "future", 25440 "focus", 25441 "focus-visible", 25442 "focus-within", 25443 "has", 25444 "host", 25445 "host-context", 25446 "hover", 25447 "indeterminate", 25448 "in-range", 25449 "invalid", 25450 "is", 25451 "lang", 25452 "last-child", 25453 "last-of-type", 25454 "left", 25455 "link", 25456 "local-link", 25457 "not", 25458 "nth-child", 25459 "nth-col", 25460 "nth-last-child", 25461 "nth-last-col", 25462 "nth-last-of-type", 25463 "nth-of-type", 25464 "only-child", 25465 "only-of-type", 25466 "optional", 25467 "out-of-range", 25468 "past", 25469 "placeholder-shown", 25470 "read-only", 25471 "read-write", 25472 "required", 25473 "right", 25474 "root", 25475 "scope", 25476 "target", 25477 "target-within", 25478 "user-invalid", 25479 "valid", 25480 "visited", 25481 "where" 25482 ]; 25483 var PSEUDO_ELEMENTS = [ 25484 "after", 25485 "backdrop", 25486 "before", 25487 "cue", 25488 "cue-region", 25489 "first-letter", 25490 "first-line", 25491 "grammar-error", 25492 "marker", 25493 "part", 25494 "placeholder", 25495 "selection", 25496 "slotted", 25497 "spelling-error" 25498 ]; 25499 var ATTRIBUTES = [ 25500 "align-content", 25501 "align-items", 25502 "align-self", 25503 "animation", 25504 "animation-delay", 25505 "animation-direction", 25506 "animation-duration", 25507 "animation-fill-mode", 25508 "animation-iteration-count", 25509 "animation-name", 25510 "animation-play-state", 25511 "animation-timing-function", 25512 "auto", 25513 "backface-visibility", 25514 "background", 25515 "background-attachment", 25516 "background-clip", 25517 "background-color", 25518 "background-image", 25519 "background-origin", 25520 "background-position", 25521 "background-repeat", 25522 "background-size", 25523 "border", 25524 "border-bottom", 25525 "border-bottom-color", 25526 "border-bottom-left-radius", 25527 "border-bottom-right-radius", 25528 "border-bottom-style", 25529 "border-bottom-width", 25530 "border-collapse", 25531 "border-color", 25532 "border-image", 25533 "border-image-outset", 25534 "border-image-repeat", 25535 "border-image-slice", 25536 "border-image-source", 25537 "border-image-width", 25538 "border-left", 25539 "border-left-color", 25540 "border-left-style", 25541 "border-left-width", 25542 "border-radius", 25543 "border-right", 25544 "border-right-color", 25545 "border-right-style", 25546 "border-right-width", 25547 "border-spacing", 25548 "border-style", 25549 "border-top", 25550 "border-top-color", 25551 "border-top-left-radius", 25552 "border-top-right-radius", 25553 "border-top-style", 25554 "border-top-width", 25555 "border-width", 25556 "bottom", 25557 "box-decoration-break", 25558 "box-shadow", 25559 "box-sizing", 25560 "break-after", 25561 "break-before", 25562 "break-inside", 25563 "caption-side", 25564 "clear", 25565 "clip", 25566 "clip-path", 25567 "color", 25568 "column-count", 25569 "column-fill", 25570 "column-gap", 25571 "column-rule", 25572 "column-rule-color", 25573 "column-rule-style", 25574 "column-rule-width", 25575 "column-span", 25576 "column-width", 25577 "columns", 25578 "content", 25579 "counter-increment", 25580 "counter-reset", 25581 "cursor", 25582 "direction", 25583 "display", 25584 "empty-cells", 25585 "filter", 25586 "flex", 25587 "flex-basis", 25588 "flex-direction", 25589 "flex-flow", 25590 "flex-grow", 25591 "flex-shrink", 25592 "flex-wrap", 25593 "float", 25594 "font", 25595 "font-display", 25596 "font-family", 25597 "font-feature-settings", 25598 "font-kerning", 25599 "font-language-override", 25600 "font-size", 25601 "font-size-adjust", 25602 "font-smoothing", 25603 "font-stretch", 25604 "font-style", 25605 "font-variant", 25606 "font-variant-ligatures", 25607 "font-variation-settings", 25608 "font-weight", 25609 "height", 25610 "hyphens", 25611 "icon", 25612 "image-orientation", 25613 "image-rendering", 25614 "image-resolution", 25615 "ime-mode", 25616 "inherit", 25617 "initial", 25618 "justify-content", 25619 "left", 25620 "letter-spacing", 25621 "line-height", 25622 "list-style", 25623 "list-style-image", 25624 "list-style-position", 25625 "list-style-type", 25626 "margin", 25627 "margin-bottom", 25628 "margin-left", 25629 "margin-right", 25630 "margin-top", 25631 "marks", 25632 "mask", 25633 "max-height", 25634 "max-width", 25635 "min-height", 25636 "min-width", 25637 "nav-down", 25638 "nav-index", 25639 "nav-left", 25640 "nav-right", 25641 "nav-up", 25642 "none", 25643 "normal", 25644 "object-fit", 25645 "object-position", 25646 "opacity", 25647 "order", 25648 "orphans", 25649 "outline", 25650 "outline-color", 25651 "outline-offset", 25652 "outline-style", 25653 "outline-width", 25654 "overflow", 25655 "overflow-wrap", 25656 "overflow-x", 25657 "overflow-y", 25658 "padding", 25659 "padding-bottom", 25660 "padding-left", 25661 "padding-right", 25662 "padding-top", 25663 "page-break-after", 25664 "page-break-before", 25665 "page-break-inside", 25666 "perspective", 25667 "perspective-origin", 25668 "pointer-events", 25669 "position", 25670 "quotes", 25671 "resize", 25672 "right", 25673 "src", 25674 "tab-size", 25675 "table-layout", 25676 "text-align", 25677 "text-align-last", 25678 "text-decoration", 25679 "text-decoration-color", 25680 "text-decoration-line", 25681 "text-decoration-style", 25682 "text-indent", 25683 "text-overflow", 25684 "text-rendering", 25685 "text-shadow", 25686 "text-transform", 25687 "text-underline-position", 25688 "top", 25689 "transform", 25690 "transform-origin", 25691 "transform-style", 25692 "transition", 25693 "transition-delay", 25694 "transition-duration", 25695 "transition-property", 25696 "transition-timing-function", 25697 "unicode-bidi", 25698 "vertical-align", 25699 "visibility", 25700 "white-space", 25701 "widows", 25702 "width", 25703 "word-break", 25704 "word-spacing", 25705 "word-wrap", 25706 "z-index" 25707 ].reverse(); 25708 var PSEUDO_SELECTORS = PSEUDO_CLASSES.concat(PSEUDO_ELEMENTS); 25709 function less(hljs2) { 25710 const modes = MODES(hljs2); 25711 const PSEUDO_SELECTORS$1 = PSEUDO_SELECTORS; 25712 const AT_MODIFIERS = "and or not only"; 25713 const IDENT_RE = "[\\w-]+"; 25714 const INTERP_IDENT_RE = "(" + IDENT_RE + "|@\\{" + IDENT_RE + "\\})"; 25715 const RULES = []; 25716 const VALUE_MODES = []; 25717 const STRING_MODE = function(c) { 25718 return { 25719 className: "string", 25720 begin: "~?" + c + ".*?" + c 25721 }; 25722 }; 25723 const IDENT_MODE = function(name2, begin, relevance) { 25724 return { 25725 className: name2, 25726 begin, 25727 relevance 25728 }; 25729 }; 25730 const AT_KEYWORDS = { 25731 $pattern: /[a-z-]+/, 25732 keyword: AT_MODIFIERS, 25733 attribute: MEDIA_FEATURES.join(" ") 25734 }; 25735 const PARENS_MODE = { 25736 begin: "\\(", 25737 end: "\\)", 25738 contains: VALUE_MODES, 25739 keywords: AT_KEYWORDS, 25740 relevance: 0 25741 }; 25742 VALUE_MODES.push( 25743 hljs2.C_LINE_COMMENT_MODE, 25744 hljs2.C_BLOCK_COMMENT_MODE, 25745 STRING_MODE("'"), 25746 STRING_MODE('"'), 25747 hljs2.CSS_NUMBER_MODE, 25748 { 25749 begin: "(url|data-uri)\\(", 25750 starts: { 25751 className: "string", 25752 end: "[\\)\\n]", 25753 excludeEnd: true 25754 } 25755 }, 25756 modes.HEXCOLOR, 25757 PARENS_MODE, 25758 IDENT_MODE("variable", "@@?" + IDENT_RE, 10), 25759 IDENT_MODE("variable", "@\\{" + IDENT_RE + "\\}"), 25760 IDENT_MODE("built_in", "~?`[^`]*?`"), 25761 { 25762 className: "attribute", 25763 begin: IDENT_RE + "\\s*:", 25764 end: ":", 25765 returnBegin: true, 25766 excludeEnd: true 25767 }, 25768 modes.IMPORTANT 25769 ); 25770 const VALUE_WITH_RULESETS = VALUE_MODES.concat({ 25771 begin: /\{/, 25772 end: /\}/, 25773 contains: RULES 25774 }); 25775 const MIXIN_GUARD_MODE = { 25776 beginKeywords: "when", 25777 endsWithParent: true, 25778 contains: [ 25779 { 25780 beginKeywords: "and not" 25781 } 25782 ].concat(VALUE_MODES) 25783 }; 25784 const RULE_MODE = { 25785 begin: INTERP_IDENT_RE + "\\s*:", 25786 returnBegin: true, 25787 end: /[;}]/, 25788 relevance: 0, 25789 contains: [ 25790 { 25791 begin: /-(webkit|moz|ms|o)-/ 25792 }, 25793 { 25794 className: "attribute", 25795 begin: "\\b(" + ATTRIBUTES.join("|") + ")\\b", 25796 end: /(?=:)/, 25797 starts: { 25798 endsWithParent: true, 25799 illegal: "[<=$]", 25800 relevance: 0, 25801 contains: VALUE_MODES 25802 } 25803 } 25804 ] 25805 }; 25806 const AT_RULE_MODE = { 25807 className: "keyword", 25808 begin: "@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b", 25809 starts: { 25810 end: "[;{}]", 25811 keywords: AT_KEYWORDS, 25812 returnEnd: true, 25813 contains: VALUE_MODES, 25814 relevance: 0 25815 } 25816 }; 25817 const VAR_RULE_MODE = { 25818 className: "variable", 25819 variants: [ 25820 { 25821 begin: "@" + IDENT_RE + "\\s*:", 25822 relevance: 15 25823 }, 25824 { 25825 begin: "@" + IDENT_RE 25826 } 25827 ], 25828 starts: { 25829 end: "[;}]", 25830 returnEnd: true, 25831 contains: VALUE_WITH_RULESETS 25832 } 25833 }; 25834 const SELECTOR_MODE = { 25835 variants: [ 25836 { 25837 begin: "[\\.#:&\\[>]", 25838 end: "[;{}]" 25839 }, 25840 { 25841 begin: INTERP_IDENT_RE, 25842 end: /\{/ 25843 } 25844 ], 25845 returnBegin: true, 25846 returnEnd: true, 25847 illegal: `[<='$"]`, 25848 relevance: 0, 25849 contains: [ 25850 hljs2.C_LINE_COMMENT_MODE, 25851 hljs2.C_BLOCK_COMMENT_MODE, 25852 MIXIN_GUARD_MODE, 25853 IDENT_MODE("keyword", "all\\b"), 25854 IDENT_MODE("variable", "@\\{" + IDENT_RE + "\\}"), 25855 { 25856 begin: "\\b(" + TAGS.join("|") + ")\\b", 25857 className: "selector-tag" 25858 }, 25859 IDENT_MODE("selector-tag", INTERP_IDENT_RE + "%?", 0), 25860 IDENT_MODE("selector-id", "#" + INTERP_IDENT_RE), 25861 IDENT_MODE("selector-class", "\\." + INTERP_IDENT_RE, 0), 25862 IDENT_MODE("selector-tag", "&", 0), 25863 modes.ATTRIBUTE_SELECTOR_MODE, 25864 { 25865 className: "selector-pseudo", 25866 begin: ":(" + PSEUDO_CLASSES.join("|") + ")" 25867 }, 25868 { 25869 className: "selector-pseudo", 25870 begin: "::(" + PSEUDO_ELEMENTS.join("|") + ")" 25871 }, 25872 { 25873 begin: "\\(", 25874 end: "\\)", 25875 contains: VALUE_WITH_RULESETS 25876 }, 25877 { 25878 begin: "!important" 25879 } 25880 ] 25881 }; 25882 const PSEUDO_SELECTOR_MODE = { 25883 begin: IDENT_RE + `:(:)?(${PSEUDO_SELECTORS$1.join("|")})`, 25884 returnBegin: true, 25885 contains: [SELECTOR_MODE] 25886 }; 25887 RULES.push( 25888 hljs2.C_LINE_COMMENT_MODE, 25889 hljs2.C_BLOCK_COMMENT_MODE, 25890 AT_RULE_MODE, 25891 VAR_RULE_MODE, 25892 PSEUDO_SELECTOR_MODE, 25893 RULE_MODE, 25894 SELECTOR_MODE 25895 ); 25896 return { 25897 name: "Less", 25898 case_insensitive: true, 25899 illegal: `[=>'/<($"]`, 25900 contains: RULES 25901 }; 25902 } 25903 module.exports = less; 25904 } 25905 }); 25906 25907
vendor: 3,461 bytes, lines 25907-26035
25907// node_modules/highlight.js/lib/languages/nginx.js 25908 var require_nginx = __commonJS({ 25909 "node_modules/highlight.js/lib/languages/nginx.js"(exports, module) { 25910 function nginx(hljs2) { 25911 const VAR = { 25912 className: "variable", 25913 variants: [ 25914 { 25915 begin: /\$\d+/ 25916 }, 25917 { 25918 begin: /\$\{/, 25919 end: /\}/ 25920 }, 25921 { 25922 begin: /[$@]/ + hljs2.UNDERSCORE_IDENT_RE 25923 } 25924 ] 25925 }; 25926 const DEFAULT = { 25927 endsWithParent: true, 25928 keywords: { 25929 $pattern: "[a-z/_]+", 25930 literal: "on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll" 25931 }, 25932 relevance: 0, 25933 illegal: "=>", 25934 contains: [ 25935 hljs2.HASH_COMMENT_MODE, 25936 { 25937 className: "string", 25938 contains: [ 25939 hljs2.BACKSLASH_ESCAPE, 25940 VAR 25941 ], 25942 variants: [ 25943 { 25944 begin: /"/, 25945 end: /"/ 25946 }, 25947 { 25948 begin: /'/, 25949 end: /'/ 25950 } 25951 ] 25952 }, 25953 { 25954 begin: "([a-z]+):/", 25955 end: "\\s", 25956 endsWithParent: true, 25957 excludeEnd: true, 25958 contains: [VAR] 25959 }, 25960 { 25961 className: "regexp", 25962 contains: [ 25963 hljs2.BACKSLASH_ESCAPE, 25964 VAR 25965 ], 25966 variants: [ 25967 { 25968 begin: "\\s\\^", 25969 end: "\\s|\\{|;", 25970 returnEnd: true 25971 }, 25972 { 25973 begin: "~\\*?\\s+", 25974 end: "\\s|\\{|;", 25975 returnEnd: true 25976 }, 25977 { 25978 begin: "\\*(\\.[a-z\\-]+)+" 25979 }, 25980 { 25981 begin: "([a-z\\-]+\\.)+\\*" 25982 } 25983 ] 25984 }, 25985 { 25986 className: "number", 25987 begin: "\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b" 25988 }, 25989 { 25990 className: "number", 25991 begin: "\\b\\d+[kKmMgGdshdwy]*\\b", 25992 relevance: 0 25993 }, 25994 VAR 25995 ] 25996 }; 25997 return { 25998 name: "Nginx config", 25999 aliases: ["nginxconf"], 26000 contains: [ 26001 hljs2.HASH_COMMENT_MODE, 26002 { 26003 begin: hljs2.UNDERSCORE_IDENT_RE + "\\s+\\{", 26004 returnBegin: true, 26005 end: /\{/, 26006 contains: [ 26007 { 26008 className: "section", 26009 begin: hljs2.UNDERSCORE_IDENT_RE 26010 } 26011 ], 26012 relevance: 0 26013 }, 26014 { 26015 begin: hljs2.UNDERSCORE_IDENT_RE + "\\s", 26016 end: ";|\\{", 26017 returnBegin: true, 26018 contains: [ 26019 { 26020 className: "attribute", 26021 begin: hljs2.UNDERSCORE_IDENT_RE, 26022 starts: DEFAULT 26023 } 26024 ], 26025 relevance: 0 26026 } 26027 ], 26028 illegal: "[^\\s\\}]" 26029 }; 26030 } 26031 module.exports = nginx; 26032 } 26033 }); 26034 26035
vendor: 13,554 bytes, lines 26035-26559
26035// node_modules/highlight.js/lib/languages/scss.js 26036 var require_scss = __commonJS({ 26037 "node_modules/highlight.js/lib/languages/scss.js"(exports, module) { 26038 var MODES = (hljs2) => { 26039 return { 26040 IMPORTANT: { 26041 className: "meta", 26042 begin: "!important" 26043 }, 26044 HEXCOLOR: { 26045 className: "number", 26046 begin: "#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})" 26047 }, 26048 ATTRIBUTE_SELECTOR_MODE: { 26049 className: "selector-attr", 26050 begin: /\[/, 26051 end: /\]/, 26052 illegal: "$", 26053 contains: [ 26054 hljs2.APOS_STRING_MODE, 26055 hljs2.QUOTE_STRING_MODE 26056 ] 26057 } 26058 }; 26059 }; 26060 var TAGS = [ 26061 "a", 26062 "abbr", 26063 "address", 26064 "article", 26065 "aside", 26066 "audio", 26067 "b", 26068 "blockquote", 26069 "body", 26070 "button", 26071 "canvas", 26072 "caption", 26073 "cite", 26074 "code", 26075 "dd", 26076 "del", 26077 "details", 26078 "dfn", 26079 "div", 26080 "dl", 26081 "dt", 26082 "em", 26083 "fieldset", 26084 "figcaption", 26085 "figure", 26086 "footer", 26087 "form", 26088 "h1", 26089 "h2", 26090 "h3", 26091 "h4", 26092 "h5", 26093 "h6", 26094 "header", 26095 "hgroup", 26096 "html", 26097 "i", 26098 "iframe", 26099 "img", 26100 "input", 26101 "ins", 26102 "kbd", 26103 "label", 26104 "legend", 26105 "li", 26106 "main", 26107 "mark", 26108 "menu", 26109 "nav", 26110 "object", 26111 "ol", 26112 "p", 26113 "q", 26114 "quote", 26115 "samp", 26116 "section", 26117 "span", 26118 "strong", 26119 "summary", 26120 "sup", 26121 "table", 26122 "tbody", 26123 "td", 26124 "textarea", 26125 "tfoot", 26126 "th", 26127 "thead", 26128 "time", 26129 "tr", 26130 "ul", 26131 "var", 26132 "video" 26133 ]; 26134 var MEDIA_FEATURES = [ 26135 "any-hover", 26136 "any-pointer", 26137 "aspect-ratio", 26138 "color", 26139 "color-gamut", 26140 "color-index", 26141 "device-aspect-ratio", 26142 "device-height", 26143 "device-width", 26144 "display-mode", 26145 "forced-colors", 26146 "grid", 26147 "height", 26148 "hover", 26149 "inverted-colors", 26150 "monochrome", 26151 "orientation", 26152 "overflow-block", 26153 "overflow-inline", 26154 "pointer", 26155 "prefers-color-scheme", 26156 "prefers-contrast", 26157 "prefers-reduced-motion", 26158 "prefers-reduced-transparency", 26159 "resolution", 26160 "scan", 26161 "scripting", 26162 "update", 26163 "width", 26164 "min-width", 26165 "max-width", 26166 "min-height", 26167 "max-height" 26168 ]; 26169 var PSEUDO_CLASSES = [ 26170 "active", 26171 "any-link", 26172 "blank", 26173 "checked", 26174 "current", 26175 "default", 26176 "defined", 26177 "dir", 26178 "disabled", 26179 "drop", 26180 "empty", 26181 "enabled", 26182 "first", 26183 "first-child", 26184 "first-of-type", 26185 "fullscreen", 26186 "future", 26187 "focus", 26188 "focus-visible", 26189 "focus-within", 26190 "has", 26191 "host", 26192 "host-context", 26193 "hover", 26194 "indeterminate", 26195 "in-range", 26196 "invalid", 26197 "is", 26198 "lang", 26199 "last-child", 26200 "last-of-type", 26201 "left", 26202 "link", 26203 "local-link", 26204 "not", 26205 "nth-child", 26206 "nth-col", 26207 "nth-last-child", 26208 "nth-last-col", 26209 "nth-last-of-type", 26210 "nth-of-type", 26211 "only-child", 26212 "only-of-type", 26213 "optional", 26214 "out-of-range", 26215 "past", 26216 "placeholder-shown", 26217 "read-only", 26218 "read-write", 26219 "required", 26220 "right", 26221 "root", 26222 "scope", 26223 "target", 26224 "target-within", 26225 "user-invalid", 26226 "valid", 26227 "visited", 26228 "where" 26229 ]; 26230 var PSEUDO_ELEMENTS = [ 26231 "after", 26232 "backdrop", 26233 "before", 26234 "cue", 26235 "cue-region", 26236 "first-letter", 26237 "first-line", 26238 "grammar-error", 26239 "marker", 26240 "part", 26241 "placeholder", 26242 "selection", 26243 "slotted", 26244 "spelling-error" 26245 ]; 26246 var ATTRIBUTES = [ 26247 "align-content", 26248 "align-items", 26249 "align-self", 26250 "animation", 26251 "animation-delay", 26252 "animation-direction", 26253 "animation-duration", 26254 "animation-fill-mode", 26255 "animation-iteration-count", 26256 "animation-name", 26257 "animation-play-state", 26258 "animation-timing-function", 26259 "auto", 26260 "backface-visibility", 26261 "background", 26262 "background-attachment", 26263 "background-clip", 26264 "background-color", 26265 "background-image", 26266 "background-origin", 26267 "background-position", 26268 "background-repeat", 26269 "background-size", 26270 "border", 26271 "border-bottom", 26272 "border-bottom-color", 26273 "border-bottom-left-radius", 26274 "border-bottom-right-radius", 26275 "border-bottom-style", 26276 "border-bottom-width", 26277 "border-collapse", 26278 "border-color", 26279 "border-image", 26280 "border-image-outset", 26281 "border-image-repeat", 26282 "border-image-slice", 26283 "border-image-source", 26284 "border-image-width", 26285 "border-left", 26286 "border-left-color", 26287 "border-left-style", 26288 "border-left-width", 26289 "border-radius", 26290 "border-right", 26291 "border-right-color", 26292 "border-right-style", 26293 "border-right-width", 26294 "border-spacing", 26295 "border-style", 26296 "border-top", 26297 "border-top-color", 26298 "border-top-left-radius", 26299 "border-top-right-radius", 26300 "border-top-style", 26301 "border-top-width", 26302 "border-width", 26303 "bottom", 26304 "box-decoration-break", 26305 "box-shadow", 26306 "box-sizing", 26307 "break-after", 26308 "break-before", 26309 "break-inside", 26310 "caption-side", 26311 "clear", 26312 "clip", 26313 "clip-path", 26314 "color", 26315 "column-count", 26316 "column-fill", 26317 "column-gap", 26318 "column-rule", 26319 "column-rule-color", 26320 "column-rule-style", 26321 "column-rule-width", 26322 "column-span", 26323 "column-width", 26324 "columns", 26325 "content", 26326 "counter-increment", 26327 "counter-reset", 26328 "cursor", 26329 "direction", 26330 "display", 26331 "empty-cells", 26332 "filter", 26333 "flex", 26334 "flex-basis", 26335 "flex-direction", 26336 "flex-flow", 26337 "flex-grow", 26338 "flex-shrink", 26339 "flex-wrap", 26340 "float", 26341 "font", 26342 "font-display", 26343 "font-family", 26344 "font-feature-settings", 26345 "font-kerning", 26346 "font-language-override", 26347 "font-size", 26348 "font-size-adjust", 26349 "font-smoothing", 26350 "font-stretch", 26351 "font-style", 26352 "font-variant", 26353 "font-variant-ligatures", 26354 "font-variation-settings", 26355 "font-weight", 26356 "height", 26357 "hyphens", 26358 "icon", 26359 "image-orientation", 26360 "image-rendering", 26361 "image-resolution", 26362 "ime-mode", 26363 "inherit", 26364 "initial", 26365 "justify-content", 26366 "left", 26367 "letter-spacing", 26368 "line-height", 26369 "list-style", 26370 "list-style-image", 26371 "list-style-position", 26372 "list-style-type", 26373 "margin", 26374 "margin-bottom", 26375 "margin-left", 26376 "margin-right", 26377 "margin-top", 26378 "marks", 26379 "mask", 26380 "max-height", 26381 "max-width", 26382 "min-height", 26383 "min-width", 26384 "nav-down", 26385 "nav-index", 26386 "nav-left", 26387 "nav-right", 26388 "nav-up", 26389 "none", 26390 "normal", 26391 "object-fit", 26392 "object-position", 26393 "opacity", 26394 "order", 26395 "orphans", 26396 "outline", 26397 "outline-color", 26398 "outline-offset", 26399 "outline-style", 26400 "outline-width", 26401 "overflow", 26402 "overflow-wrap", 26403 "overflow-x", 26404 "overflow-y", 26405 "padding", 26406 "padding-bottom", 26407 "padding-left", 26408 "padding-right", 26409 "padding-top", 26410 "page-break-after", 26411 "page-break-before", 26412 "page-break-inside", 26413 "perspective", 26414 "perspective-origin", 26415 "pointer-events", 26416 "position", 26417 "quotes", 26418 "resize", 26419 "right", 26420 "src", 26421 "tab-size", 26422 "table-layout", 26423 "text-align", 26424 "text-align-last", 26425 "text-decoration", 26426 "text-decoration-color", 26427 "text-decoration-line", 26428 "text-decoration-style", 26429 "text-indent", 26430 "text-overflow", 26431 "text-rendering", 26432 "text-shadow", 26433 "text-transform", 26434 "text-underline-position", 26435 "top", 26436 "transform", 26437 "transform-origin", 26438 "transform-style", 26439 "transition", 26440 "transition-delay", 26441 "transition-duration", 26442 "transition-property", 26443 "transition-timing-function", 26444 "unicode-bidi", 26445 "vertical-align", 26446 "visibility", 26447 "white-space", 26448 "widows", 26449 "width", 26450 "word-break", 26451 "word-spacing", 26452 "word-wrap", 26453 "z-index" 26454 ].reverse(); 26455 function scss(hljs2) { 26456 const modes = MODES(hljs2); 26457 const PSEUDO_ELEMENTS$1 = PSEUDO_ELEMENTS; 26458 const PSEUDO_CLASSES$1 = PSEUDO_CLASSES; 26459 const AT_IDENTIFIER = "@[a-z-]+"; 26460 const AT_MODIFIERS = "and or not only"; 26461 const IDENT_RE = "[a-zA-Z-][a-zA-Z0-9_-]*"; 26462 const VARIABLE = { 26463 className: "variable", 26464 begin: "(\\$" + IDENT_RE + ")\\b" 26465 }; 26466 return { 26467 name: "SCSS", 26468 case_insensitive: true, 26469 illegal: "[=/|']", 26470 contains: [ 26471 hljs2.C_LINE_COMMENT_MODE, 26472 hljs2.C_BLOCK_COMMENT_MODE, 26473 { 26474 className: "selector-id", 26475 begin: "#[A-Za-z0-9_-]+", 26476 relevance: 0 26477 }, 26478 { 26479 className: "selector-class", 26480 begin: "\\.[A-Za-z0-9_-]+", 26481 relevance: 0 26482 }, 26483 modes.ATTRIBUTE_SELECTOR_MODE, 26484 { 26485 className: "selector-tag", 26486 begin: "\\b(" + TAGS.join("|") + ")\\b", 26487 relevance: 0 26488 }, 26489 { 26490 className: "selector-pseudo", 26491 begin: ":(" + PSEUDO_CLASSES$1.join("|") + ")" 26492 }, 26493 { 26494 className: "selector-pseudo", 26495 begin: "::(" + PSEUDO_ELEMENTS$1.join("|") + ")" 26496 }, 26497 VARIABLE, 26498 { 26499 begin: /\(/, 26500 end: /\)/, 26501 contains: [hljs2.CSS_NUMBER_MODE] 26502 }, 26503 { 26504 className: "attribute", 26505 begin: "\\b(" + ATTRIBUTES.join("|") + ")\\b" 26506 }, 26507 { 26508 begin: "\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b" 26509 }, 26510 { 26511 begin: ":", 26512 end: ";", 26513 contains: [ 26514 VARIABLE, 26515 modes.HEXCOLOR, 26516 hljs2.CSS_NUMBER_MODE, 26517 hljs2.QUOTE_STRING_MODE, 26518 hljs2.APOS_STRING_MODE, 26519 modes.IMPORTANT 26520 ] 26521 }, 26522 { 26523 begin: "@(page|font-face)", 26524 lexemes: AT_IDENTIFIER, 26525 keywords: "@page @font-face" 26526 }, 26527 { 26528 begin: "@", 26529 end: "[{;]", 26530 returnBegin: true, 26531 keywords: { 26532 $pattern: /[a-z-]+/, 26533 keyword: AT_MODIFIERS, 26534 attribute: MEDIA_FEATURES.join(" ") 26535 }, 26536 contains: [ 26537 { 26538 begin: AT_IDENTIFIER, 26539 className: "keyword" 26540 }, 26541 { 26542 begin: /[a-z-]+(?=:)/, 26543 className: "attribute" 26544 }, 26545 VARIABLE, 26546 hljs2.QUOTE_STRING_MODE, 26547 hljs2.APOS_STRING_MODE, 26548 modes.HEXCOLOR, 26549 hljs2.CSS_NUMBER_MODE 26550 ] 26551 } 26552 ] 26553 }; 26554 } 26555 module.exports = scss; 26556 } 26557 }); 26558 26559
vendor: 601 bytes, lines 26559-26582
26559// node_modules/highlight.js/lib/languages/shell.js 26560 var require_shell = __commonJS({ 26561 "node_modules/highlight.js/lib/languages/shell.js"(exports, module) { 26562 function shell(hljs2) { 26563 return { 26564 name: "Shell Session", 26565 aliases: ["console"], 26566 contains: [ 26567 { 26568 className: "meta", 26569 begin: /^\s{0,3}[/~\w\d[\]()@-]*[>%$#]/, 26570 starts: { 26571 end: /[^\\](?=\s*$)/, 26572 subLanguage: "bash" 26573 } 26574 } 26575 ] 26576 }; 26577 } 26578 module.exports = shell; 26579 } 26580 }); 26581 26582
vendor: 14,769 bytes, lines 26582-27231
26582// node_modules/highlight.js/lib/languages/sql.js 26583 var require_sql = __commonJS({ 26584 "node_modules/highlight.js/lib/languages/sql.js"(exports, module) { 26585 function source(re2) { 26586 if (!re2) 26587 return null; 26588 if (typeof re2 === "string") 26589 return re2; 26590 return re2.source; 26591 } 26592 function concat(...args) { 26593 const joined = args.map((x) => source(x)).join(""); 26594 return joined; 26595 } 26596 function either(...args) { 26597 const joined = "(" + args.map((x) => source(x)).join("|") + ")"; 26598 return joined; 26599 } 26600 function sql(hljs2) { 26601 const COMMENT_MODE = hljs2.COMMENT("--", "$"); 26602 const STRING = { 26603 className: "string", 26604 variants: [ 26605 { 26606 begin: /'/, 26607 end: /'/, 26608 contains: [ 26609 { begin: /''/ } 26610 ] 26611 } 26612 ] 26613 }; 26614 const QUOTED_IDENTIFIER = { 26615 begin: /"/, 26616 end: /"/, 26617 contains: [{ begin: /""/ }] 26618 }; 26619 const LITERALS = [ 26620 "true", 26621 "false", 26622 "unknown" 26623 ]; 26624 const MULTI_WORD_TYPES = [ 26625 "double precision", 26626 "large object", 26627 "with timezone", 26628 "without timezone" 26629 ]; 26630 const TYPES = [ 26631 "bigint", 26632 "binary", 26633 "blob", 26634 "boolean", 26635 "char", 26636 "character", 26637 "clob", 26638 "date", 26639 "dec", 26640 "decfloat", 26641 "decimal", 26642 "float", 26643 "int", 26644 "integer", 26645 "interval", 26646 "nchar", 26647 "nclob", 26648 "national", 26649 "numeric", 26650 "real", 26651 "row", 26652 "smallint", 26653 "time", 26654 "timestamp", 26655 "varchar", 26656 "varying", 26657 "varbinary" 26658 ]; 26659 const NON_RESERVED_WORDS = [ 26660 "add", 26661 "asc", 26662 "collation", 26663 "desc", 26664 "final", 26665 "first", 26666 "last", 26667 "view" 26668 ]; 26669 const RESERVED_WORDS = [ 26670 "abs", 26671 "acos", 26672 "all", 26673 "allocate", 26674 "alter", 26675 "and", 26676 "any", 26677 "are", 26678 "array", 26679 "array_agg", 26680 "array_max_cardinality", 26681 "as", 26682 "asensitive", 26683 "asin", 26684 "asymmetric", 26685 "at", 26686 "atan", 26687 "atomic", 26688 "authorization", 26689 "avg", 26690 "begin", 26691 "begin_frame", 26692 "begin_partition", 26693 "between", 26694 "bigint", 26695 "binary", 26696 "blob", 26697 "boolean", 26698 "both", 26699 "by", 26700 "call", 26701 "called", 26702 "cardinality", 26703 "cascaded", 26704 "case", 26705 "cast", 26706 "ceil", 26707 "ceiling", 26708 "char", 26709 "char_length", 26710 "character", 26711 "character_length", 26712 "check", 26713 "classifier", 26714 "clob", 26715 "close", 26716 "coalesce", 26717 "collate", 26718 "collect", 26719 "column", 26720 "commit", 26721 "condition", 26722 "connect", 26723 "constraint", 26724 "contains", 26725 "convert", 26726 "copy", 26727 "corr", 26728 "corresponding", 26729 "cos", 26730 "cosh", 26731 "count", 26732 "covar_pop", 26733 "covar_samp", 26734 "create", 26735 "cross", 26736 "cube", 26737 "cume_dist", 26738 "current", 26739 "current_catalog", 26740 "current_date", 26741 "current_default_transform_group", 26742 "current_path", 26743 "current_role", 26744 "current_row", 26745 "current_schema", 26746 "current_time", 26747 "current_timestamp", 26748 "current_path", 26749 "current_role", 26750 "current_transform_group_for_type", 26751 "current_user", 26752 "cursor", 26753 "cycle", 26754 "date", 26755 "day", 26756 "deallocate", 26757 "dec", 26758 "decimal", 26759 "decfloat", 26760 "declare", 26761 "default", 26762 "define", 26763 "delete", 26764 "dense_rank", 26765 "deref", 26766 "describe", 26767 "deterministic", 26768 "disconnect", 26769 "distinct", 26770 "double", 26771 "drop", 26772 "dynamic", 26773 "each", 26774 "element", 26775 "else", 26776 "empty", 26777 "end", 26778 "end_frame", 26779 "end_partition", 26780 "end-exec", 26781 "equals", 26782 "escape", 26783 "every", 26784 "except", 26785 "exec", 26786 "execute", 26787 "exists", 26788 "exp", 26789 "external", 26790 "extract", 26791 "false", 26792 "fetch", 26793 "filter", 26794 "first_value", 26795 "float", 26796 "floor", 26797 "for", 26798 "foreign", 26799 "frame_row", 26800 "free", 26801 "from", 26802 "full", 26803 "function", 26804 "fusion", 26805 "get", 26806 "global", 26807 "grant", 26808 "group", 26809 "grouping", 26810 "groups", 26811 "having", 26812 "hold", 26813 "hour", 26814 "identity", 26815 "in", 26816 "indicator", 26817 "initial", 26818 "inner", 26819 "inout", 26820 "insensitive", 26821 "insert", 26822 "int", 26823 "integer", 26824 "intersect", 26825 "intersection", 26826 "interval", 26827 "into", 26828 "is", 26829 "join", 26830 "json_array", 26831 "json_arrayagg", 26832 "json_exists", 26833 "json_object", 26834 "json_objectagg", 26835 "json_query", 26836 "json_table", 26837 "json_table_primitive", 26838 "json_value", 26839 "lag", 26840 "language", 26841 "large", 26842 "last_value", 26843 "lateral", 26844 "lead", 26845 "leading", 26846 "left", 26847 "like", 26848 "like_regex", 26849 "listagg", 26850 "ln", 26851 "local", 26852 "localtime", 26853 "localtimestamp", 26854 "log", 26855 "log10", 26856 "lower", 26857 "match", 26858 "match_number", 26859 "match_recognize", 26860 "matches", 26861 "max", 26862 "member", 26863 "merge", 26864 "method", 26865 "min", 26866 "minute", 26867 "mod", 26868 "modifies", 26869 "module", 26870 "month", 26871 "multiset", 26872 "national", 26873 "natural", 26874 "nchar", 26875 "nclob", 26876 "new", 26877 "no", 26878 "none", 26879 "normalize", 26880 "not", 26881 "nth_value", 26882 "ntile", 26883 "null", 26884 "nullif", 26885 "numeric", 26886 "octet_length", 26887 "occurrences_regex", 26888 "of", 26889 "offset", 26890 "old", 26891 "omit", 26892 "on", 26893 "one", 26894 "only", 26895 "open", 26896 "or", 26897 "order", 26898 "out", 26899 "outer", 26900 "over", 26901 "overlaps", 26902 "overlay", 26903 "parameter", 26904 "partition", 26905 "pattern", 26906 "per", 26907 "percent", 26908 "percent_rank", 26909 "percentile_cont", 26910 "percentile_disc", 26911 "period", 26912 "portion", 26913 "position", 26914 "position_regex", 26915 "power", 26916 "precedes", 26917 "precision", 26918 "prepare", 26919 "primary", 26920 "procedure", 26921 "ptf", 26922 "range", 26923 "rank", 26924 "reads", 26925 "real", 26926 "recursive", 26927 "ref", 26928 "references", 26929 "referencing", 26930 "regr_avgx", 26931 "regr_avgy", 26932 "regr_count", 26933 "regr_intercept", 26934 "regr_r2", 26935 "regr_slope", 26936 "regr_sxx", 26937 "regr_sxy", 26938 "regr_syy", 26939 "release", 26940 "result", 26941 "return", 26942 "returns", 26943 "revoke", 26944 "right", 26945 "rollback", 26946 "rollup", 26947 "row", 26948 "row_number", 26949 "rows", 26950 "running", 26951 "savepoint", 26952 "scope", 26953 "scroll", 26954 "search", 26955 "second", 26956 "seek", 26957 "select", 26958 "sensitive", 26959 "session_user", 26960 "set", 26961 "show", 26962 "similar", 26963 "sin", 26964 "sinh", 26965 "skip", 26966 "smallint", 26967 "some", 26968 "specific", 26969 "specifictype", 26970 "sql", 26971 "sqlexception", 26972 "sqlstate", 26973 "sqlwarning", 26974 "sqrt", 26975 "start", 26976 "static", 26977 "stddev_pop", 26978 "stddev_samp", 26979 "submultiset", 26980 "subset", 26981 "substring", 26982 "substring_regex", 26983 "succeeds", 26984 "sum", 26985 "symmetric", 26986 "system", 26987 "system_time", 26988 "system_user", 26989 "table", 26990 "tablesample", 26991 "tan", 26992 "tanh", 26993 "then", 26994 "time", 26995 "timestamp", 26996 "timezone_hour", 26997 "timezone_minute", 26998 "to", 26999 "trailing", 27000 "translate", 27001 "translate_regex", 27002 "translation", 27003 "treat", 27004 "trigger", 27005 "trim", 27006 "trim_array", 27007 "true", 27008 "truncate", 27009 "uescape", 27010 "union", 27011 "unique", 27012 "unknown", 27013 "unnest", 27014 "update ", 27015 "upper", 27016 "user", 27017 "using", 27018 "value", 27019 "values", 27020 "value_of", 27021 "var_pop", 27022 "var_samp", 27023 "varbinary", 27024 "varchar", 27025 "varying", 27026 "versioning", 27027 "when", 27028 "whenever", 27029 "where", 27030 "width_bucket", 27031 "window", 27032 "with", 27033 "within", 27034 "without", 27035 "year" 27036 ]; 27037 const RESERVED_FUNCTIONS = [ 27038 "abs", 27039 "acos", 27040 "array_agg", 27041 "asin", 27042 "atan", 27043 "avg", 27044 "cast", 27045 "ceil", 27046 "ceiling", 27047 "coalesce", 27048 "corr", 27049 "cos", 27050 "cosh", 27051 "count", 27052 "covar_pop", 27053 "covar_samp", 27054 "cume_dist", 27055 "dense_rank", 27056 "deref", 27057 "element", 27058 "exp", 27059 "extract", 27060 "first_value", 27061 "floor", 27062 "json_array", 27063 "json_arrayagg", 27064 "json_exists", 27065 "json_object", 27066 "json_objectagg", 27067 "json_query", 27068 "json_table", 27069 "json_table_primitive", 27070 "json_value", 27071 "lag", 27072 "last_value", 27073 "lead", 27074 "listagg", 27075 "ln", 27076 "log", 27077 "log10", 27078 "lower", 27079 "max", 27080 "min", 27081 "mod", 27082 "nth_value", 27083 "ntile", 27084 "nullif", 27085 "percent_rank", 27086 "percentile_cont", 27087 "percentile_disc", 27088 "position", 27089 "position_regex", 27090 "power", 27091 "rank", 27092 "regr_avgx", 27093 "regr_avgy", 27094 "regr_count", 27095 "regr_intercept", 27096 "regr_r2", 27097 "regr_slope", 27098 "regr_sxx", 27099 "regr_sxy", 27100 "regr_syy", 27101 "row_number", 27102 "sin", 27103 "sinh", 27104 "sqrt", 27105 "stddev_pop", 27106 "stddev_samp", 27107 "substring", 27108 "substring_regex", 27109 "sum", 27110 "tan", 27111 "tanh", 27112 "translate", 27113 "translate_regex", 27114 "treat", 27115 "trim", 27116 "trim_array", 27117 "unnest", 27118 "upper", 27119 "value_of", 27120 "var_pop", 27121 "var_samp", 27122 "width_bucket" 27123 ]; 27124 const POSSIBLE_WITHOUT_PARENS = [ 27125 "current_catalog", 27126 "current_date", 27127 "current_default_transform_group", 27128 "current_path", 27129 "current_role", 27130 "current_schema", 27131 "current_transform_group_for_type", 27132 "current_user", 27133 "session_user", 27134 "system_time", 27135 "system_user", 27136 "current_time", 27137 "localtime", 27138 "current_timestamp", 27139 "localtimestamp" 27140 ]; 27141 const COMBOS = [ 27142 "create table", 27143 "insert into", 27144 "primary key", 27145 "foreign key", 27146 "not null", 27147 "alter table", 27148 "add constraint", 27149 "grouping sets", 27150 "on overflow", 27151 "character set", 27152 "respect nulls", 27153 "ignore nulls", 27154 "nulls first", 27155 "nulls last", 27156 "depth first", 27157 "breadth first" 27158 ]; 27159 const FUNCTIONS = RESERVED_FUNCTIONS; 27160 const KEYWORDS = [...RESERVED_WORDS, ...NON_RESERVED_WORDS].filter((keyword) => { 27161 return !RESERVED_FUNCTIONS.includes(keyword); 27162 }); 27163 const VARIABLE = { 27164 className: "variable", 27165 begin: /@[a-z0-9]+/ 27166 }; 27167 const OPERATOR = { 27168 className: "operator", 27169 begin: /[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/, 27170 relevance: 0 27171 }; 27172 const FUNCTION_CALL = { 27173 begin: concat(/\b/, either(...FUNCTIONS), /\s*\(/), 27174 keywords: { 27175 built_in: FUNCTIONS 27176 } 27177 }; 27178 function reduceRelevancy(list, { exceptions, when } = {}) { 27179 const qualifyFn = when; 27180 exceptions = exceptions || []; 27181 return list.map((item) => { 27182 if (item.match(/\|\d+$/) || exceptions.includes(item)) { 27183 return item; 27184 } else if (qualifyFn(item)) { 27185 return `${item}|0`; 27186 } else { 27187 return item; 27188 } 27189 }); 27190 } 27191 return { 27192 name: "SQL", 27193 case_insensitive: true, 27194 illegal: /[{}]|<\//, 27195 keywords: { 27196 $pattern: /\b[\w\.]+/, 27197 keyword: reduceRelevancy(KEYWORDS, { when: (x) => x.length < 3 }), 27198 literal: LITERALS, 27199 type: TYPES, 27200 built_in: POSSIBLE_WITHOUT_PARENS 27201 }, 27202 contains: [ 27203 { 27204 begin: either(...COMBOS), 27205 keywords: { 27206 $pattern: /[\w\.]+/, 27207 keyword: KEYWORDS.concat(COMBOS), 27208 literal: LITERALS, 27209 type: TYPES 27210 } 27211 }, 27212 { 27213 className: "type", 27214 begin: either(...MULTI_WORD_TYPES) 27215 }, 27216 FUNCTION_CALL, 27217 VARIABLE, 27218 STRING, 27219 QUOTED_IDENTIFIER, 27220 hljs2.C_NUMBER_MODE, 27221 hljs2.C_BLOCK_COMMENT_MODE, 27222 COMMENT_MODE, 27223 OPERATOR 27224 ] 27225 }; 27226 } 27227 module.exports = sql; 27228 } 27229 }); 27230 27231
27231// frappe/website/js/syntax_highlight.js 27232 var require_syntax_highlight = __commonJS({ 27233 "frappe/website/js/syntax_highlight.js"(exports, module) { 27234 var hljs2 = require_core(); 27235 hljs2.registerLanguage("javascript", require_javascript()); 27236 hljs2.registerLanguage("python", require_python()); 27237 hljs2.registerLanguage("xml", require_xml()); 27238 hljs2.registerLanguage("django", require_django()); 27239 hljs2.registerLanguage("bash", require_bash()); 27240 hljs2.registerLanguage("css", require_css()); 27241 hljs2.registerLanguage("markdown", require_markdown()); 27242 hljs2.registerLanguage("diff", require_diff()); 27243 hljs2.registerLanguage("json", require_json()); 27244 hljs2.registerLanguage("less", require_less()); 27245 hljs2.registerLanguage("nginx", require_nginx()); 27246 hljs2.registerLanguage("scss", require_scss()); 27247 hljs2.registerLanguage("shell", require_shell()); 27248 hljs2.registerLanguage("sql", require_sql()); 27249 module.exports = hljs2; 27250 } 27251 }); 27252 27253
27253// frappe/public/js/jquery-bootstrap.js 27254 var import_jquery = __toESM(require_jquery()); 27255 var import_alert = __toESM(require_alert()); 27256 var import_button = __toESM(require_button()); 27257 var import_carousel = __toESM(require_carousel()); 27258 var import_collapse = __toESM(require_collapse()); 27259 var import_dropdown = __toESM(require_dropdown()); 27260 var import_modal = __toESM(require_modal()); 27261 var import_popover = __toESM(require_popover()); 27262 var import_scrollspy = __toESM(require_scrollspy()); 27263 var import_tab = __toESM(require_tab()); 27264 var import_toast = __toESM(require_toast()); 27265 var import_tooltip = __toESM(require_tooltip()); 27266 var import_util = __toESM(require_util()); 27267 window.jQuery = import_jquery.default; 27268 window.$ = import_jquery.default; 27269 27270
27270// frappe/public/js/lib/moment.js 27271 var import_moment_timezone_with_data_10_year_range_min = __toESM(require_moment_timezone_with_data_10_year_range_min()); 27272 window.moment = import_moment_timezone_with_data_10_year_range_min.default; 27273 27274
27274// frappe/public/js/libs.bundle.js 27275 var import_leaflet = __toESM(require_leaflet()); 27276 27277
27277// frappe/public/js/lib/leaflet_easy_button/easy-button.js 27278 (function() { 27279 L.Control.EasyBar = L.Control.extend({ 27280 options: { 27281 position: "topleft", 27282 id: null, 27283 leafletClasses: true 27284 }, 27285 initialize: function(buttons, options) { 27286 if (options) { 27287 L.Util.setOptions(this, options); 27288 } 27289 this._buildContainer(); 27290 this._buttons = []; 27291 for (var i2 = 0; i2 < buttons.length; i2++) { 27292 buttons[i2]._bar = this; 27293 buttons[i2]._container = buttons[i2].button; 27294 this._buttons.push(buttons[i2]); 27295 this.container.appendChild(buttons[i2].button); 27296 } 27297 }, 27298 _buildContainer: function() { 27299 this._container = this.container = L.DomUtil.create("div", ""); 27300 this.options.leafletClasses && L.DomUtil.addClass(this.container, "leaflet-bar easy-button-container leaflet-control"); 27301 this.options.id && (this.container.id = this.options.id); 27302 }, 27303 enable: function() { 27304 L.DomUtil.addClass(this.container, "enabled"); 27305 L.DomUtil.removeClass(this.container, "disabled"); 27306 this.container.setAttribute("aria-hidden", "false"); 27307 return this; 27308 }, 27309 disable: function() { 27310 L.DomUtil.addClass(this.container, "disabled"); 27311 L.DomUtil.removeClass(this.container, "enabled"); 27312 this.container.setAttribute("aria-hidden", "true"); 27313 return this; 27314 }, 27315 onAdd: function() { 27316 return this.container; 27317 }, 27318 addTo: function(map2) { 27319 this._map = map2; 27320 for (var i2 = 0; i2 < this._buttons.length; i2++) { 27321 this._buttons[i2]._map = map2; 27322 } 27323 var container = this._container = this.onAdd(map2), pos = this.getPosition(), corner = map2._controlCorners[pos]; 27324 L.DomUtil.addClass(container, "leaflet-control"); 27325 if (pos.indexOf("bottom") !== -1) { 27326 corner.insertBefore(container, corner.firstChild); 27327 } else { 27328 corner.appendChild(container); 27329 } 27330 return this; 27331 } 27332 }); 27333 L.easyBar = function() { 27334 var args = [L.Control.EasyBar]; 27335 for (var i2 = 0; i2 < arguments.length; i2++) { 27336 args.push(arguments[i2]); 27337 } 27338 return new (Function.prototype.bind.apply(L.Control.EasyBar, args))(); 27339 }; 27340 L.Control.EasyButton = L.Control.extend({ 27341 options: { 27342 position: "topleft", 27343 id: null, 27344 type: "replace", 27345 states: [], 27346 leafletClasses: true, 27347 tagName: "button" 27348 }, 27349 initialize: function(icon, onClick, title, id) { 27350 this.options.states = []; 27351 if (id != null) { 27352 this.options.id = id; 27353 } 27354 this.storage = {}; 27355 if (typeof arguments[arguments.length - 1] === "object") { 27356 L.Util.setOptions(this, arguments[arguments.length - 1]); 27357 } 27358 if (this.options.states.length === 0 && typeof icon === "string" && typeof onClick === "function") { 27359 this.options.states.push({ 27360 icon, 27361 onClick, 27362 title: typeof title === "string" ? title : "" 27363 }); 27364 } 27365 this._states = []; 27366 for (var i2 = 0; i2 < this.options.states.length; i2++) { 27367 this._states.push(new State(this.options.states[i2], this)); 27368 } 27369 this._buildButton(); 27370 this._activateState(this._states[0]); 27371 }, 27372 _buildButton: function() { 27373 this.button = L.DomUtil.create(this.options.tagName, ""); 27374 if (this.options.tagName === "button") { 27375 this.button.setAttribute("type", "button"); 27376 } 27377 if (this.options.id) { 27378 this.button.id = this.options.id; 27379 } 27380 if (this.options.leafletClasses) { 27381 L.DomUtil.addClass(this.button, "easy-button-button leaflet-bar-part leaflet-interactive"); 27382 } 27383 L.DomEvent.addListener(this.button, "dblclick", L.DomEvent.stop); 27384 L.DomEvent.addListener(this.button, "mousedown", L.DomEvent.stop); 27385 L.DomEvent.addListener(this.button, "click", function(e) { 27386 L.DomEvent.stop(e); 27387 this._currentState.onClick(this, this._map ? this._map : null); 27388 this._map && this._map.getContainer().focus(); 27389 }, this); 27390 if (this.options.type == "replace") { 27391 this.button.appendChild(this._currentState.icon); 27392 } else { 27393 for (var i2 = 0; i2 < this._states.length; i2++) { 27394 this.button.appendChild(this._states[i2].icon); 27395 } 27396 } 27397 }, 27398 _currentState: { 27399 stateName: "unnamed", 27400 icon: function() { 27401 return document.createElement("span"); 27402 }() 27403 }, 27404 _states: null, 27405 state: function(newState) { 27406 if (typeof newState == "string") { 27407 this._activateStateNamed(newState); 27408 } else if (typeof newState == "number") { 27409 this._activateState(this._states[newState]); 27410 } 27411 return this; 27412 }, 27413 _activateStateNamed: function(stateName) { 27414 for (var i2 = 0; i2 < this._states.length; i2++) { 27415 if (this._states[i2].stateName == stateName) { 27416 this._activateState(this._states[i2]); 27417 } 27418 } 27419 }, 27420 _activateState: function(newState) { 27421 if (newState === this._currentState) { 27422 return; 27423 } else { 27424 if (this.options.type == "replace") { 27425 this.button.appendChild(newState.icon); 27426 this.button.removeChild(this._currentState.icon); 27427 } 27428 if (newState.title) { 27429 this.button.title = newState.title; 27430 } else { 27431 this.button.removeAttribute("title"); 27432 } 27433 for (var i2 = 0; i2 < this._states.length; i2++) { 27434 L.DomUtil.removeClass(this._states[i2].icon, this._currentState.stateName + "-active"); 27435 L.DomUtil.addClass(this._states[i2].icon, newState.stateName + "-active"); 27436 } 27437 L.DomUtil.removeClass(this.button, this._currentState.stateName + "-active"); 27438 L.DomUtil.addClass(this.button, newState.stateName + "-active"); 27439 this._currentState = newState; 27440 } 27441 }, 27442 enable: function() { 27443 L.DomUtil.addClass(this.button, "enabled"); 27444 L.DomUtil.removeClass(this.button, "disabled"); 27445 this.button.setAttribute("aria-hidden", "false"); 27446 return this; 27447 }, 27448 disable: function() { 27449 L.DomUtil.addClass(this.button, "disabled"); 27450 L.DomUtil.removeClass(this.button, "enabled"); 27451 this.button.setAttribute("aria-hidden", "true"); 27452 return this; 27453 }, 27454 onAdd: function(map2) { 27455 var bar = L.easyBar([this], { 27456 position: this.options.position, 27457 leafletClasses: this.options.leafletClasses 27458 }); 27459 this._anonymousBar = bar; 27460 this._container = bar.container; 27461 return this._anonymousBar.container; 27462 }, 27463 removeFrom: function(map2) { 27464 if (this._map === map2) 27465 this.remove(); 27466 return this; 27467 } 27468 }); 27469 L.easyButton = function() { 27470 var args = Array.prototype.concat.apply([L.Control.EasyButton], arguments); 27471 return new (Function.prototype.bind.apply(L.Control.EasyButton, args))(); 27472 }; 27473 function State(template, easyButton) { 27474 this.title = template.title; 27475 this.stateName = template.stateName ? template.stateName : "unnamed-state"; 27476 this.icon = L.DomUtil.create("span", ""); 27477 L.DomUtil.addClass(this.icon, "button-state state-" + this.stateName.replace(/(^\s*|\s*$)/g, "")); 27478 this.icon.innerHTML = buildIcon(template.icon); 27479 this.onClick = L.Util.bind(template.onClick ? template.onClick : function() { 27480 }, easyButton); 27481 }
27482 function buildIcon(ambiguousIconString) { 27483 var tmpIcon; 27484 if (ambiguousIconString.match(/[&;=<>"']/)) { 27485 tmpIcon = ambiguousIconString; 27486 } else { 27487 ambiguousIconString = ambiguousIconString.replace(/(^\s*|\s*$)/g, ""); 27488 tmpIcon = L.DomUtil.create("span", ""); 27489 if (ambiguousIconString.indexOf("fa-") === 0) { 27490 L.DomUtil.addClass(tmpIcon, "fa " + ambiguousIconString); 27491 } else if (ambiguousIconString.indexOf("glyphicon-") === 0) { 27492 L.DomUtil.addClass(tmpIcon, "glyphicon " + ambiguousIconString); 27493 } else { 27494 L.DomUtil.addClass(tmpIcon, ambiguousIconString); 27495 } 27496 tmpIcon = tmpIcon.outerHTML; 27497 } 27498 return tmpIcon; 27499 } 27500 })(); 27501 27502
27502// frappe/public/js/lib/leaflet_draw/leaflet.draw.js 27503 !function(t, e, i2) { 27504 function o(t2, e2) { 27505 for (; (t2 = t2.parentElement) && !t2.classList.contains(e2); ) 27506 ; 27507 return t2; 27508 } 27509 L.drawVersion = "0.4.12", L.Draw = {}, L.drawLocal = { 27510 draw: { 27511 toolbar: { 27512 actions: { 27513 title: "Cancel drawing", 27514 text: "Cancel" 27515 }, 27516 finish: { 27517 title: "Finish drawing", 27518 text: "Finish" 27519 }, 27520 undo: { 27521 title: "Delete last point drawn", 27522 text: "Delete last point" 27523 }, 27524 buttons: { 27525 polyline: "Draw a polyline", 27526 polygon: "Draw a polygon", 27527 rectangle: "Draw a rectangle", 27528 circle: "Draw a circle", 27529 marker: "Draw a marker", 27530 circlemarker: "Draw a circlemarker" 27531 } 27532 }, 27533 handlers: { 27534 circle: { 27535 tooltip: { 27536 start: "Click and drag to draw circle." 27537 }, 27538 radius: "Radius" 27539 }, 27540 circlemarker: { 27541 tooltip: { 27542 start: "Click map to place circle marker." 27543 } 27544 }, 27545 marker: { 27546 tooltip: { 27547 start: "Click map to place marker." 27548 } 27549 }, 27550 polygon: { 27551 tooltip: { 27552 start: "Click to start drawing shape.", 27553 cont: "Click to continue drawing shape.", 27554 end: "Click first point to close this shape." 27555 } 27556 }, 27557 polyline: { 27558 error: "<strong>Error:</strong> shape edges cannot cross!", 27559 tooltip: { 27560 start: "Click to start drawing line.", 27561 cont: "Click to continue drawing line.", 27562 end: "Click last point to finish line." 27563 } 27564 }, 27565 rectangle: { 27566 tooltip: { 27567 start: "Click and drag to draw rectangle." 27568 } 27569 }, 27570 simpleshape: { 27571 tooltip: { 27572 end: "Release mouse to finish drawing." 27573 } 27574 } 27575 } 27576 }, 27577 edit: { 27578 toolbar: { 27579 actions: { 27580 save: { 27581 title: "Save changes", 27582 text: "Save" 27583 }, 27584 cancel: { 27585 title: "Cancel editing, discards all changes", 27586 text: "Cancel" 27587 }, 27588 clearAll: { 27589 title: "Clear all layers", 27590 text: "Clear All" 27591 } 27592 }, 27593 buttons: { 27594 edit: "Edit layers", 27595 editDisabled: "No layers to edit", 27596 remove: "Delete layers", 27597 removeDisabled: "No layers to delete" 27598 } 27599 }, 27600 handlers: { 27601 edit: { 27602 tooltip: { 27603 text: "Drag handles or markers to edit features.", 27604 subtext: "Click cancel to undo changes." 27605 } 27606 }, 27607 remove: { 27608 tooltip: { 27609 text: "Click on a feature to remove." 27610 } 27611 } 27612 } 27613 } 27614 }, L.Draw.Event = {}, L.Draw.Event.CREATED = "draw:created", L.Draw.Event.EDITED = "draw:edited", L.Draw.Event.DELETED = "draw:deleted", L.Draw.Event.DRAWSTART = "draw:drawstart", L.Draw.Event.DRAWSTOP = "draw:drawstop", L.Draw.Event.DRAWVERTEX = "draw:drawvertex", L.Draw.Event.EDITSTART = "draw:editstart", L.Draw.Event.EDITMOVE = "draw:editmove", L.Draw.Event.EDITRESIZE = "draw:editresize", L.Draw.Event.EDITVERTEX = "draw:editvertex", L.Draw.Event.EDITSTOP = "draw:editstop", L.Draw.Event.DELETESTART = "draw:deletestart", L.Draw.Event.DELETESTOP = "draw:deletestop", L.Draw = L.Draw || {}, L.Draw.Feature = L.Handler.extend({ 27615 initialize: function(t2, e2) { 27616 this._map = t2, this._container = t2._container, this._overlayPane = t2._panes.overlayPane, this._popupPane = t2._panes.popupPane, e2 && e2.shapeOptions && (e2.shapeOptions = L.Util.extend({}, this.options.shapeOptions, e2.shapeOptions)), L.setOptions(this, e2); 27617 var version = L.version.split("."); 27618 if (parseInt(version[0], 10) === 1 && parseInt(version[1], 10) >= 2) { 27619 L.Draw.Feature.include(L.Evented.prototype); 27620 } else { 27621 L.Draw.Feature.include(L.Mixin.Events); 27622 } 27623 }, 27624 enable: function() { 27625 this._enabled || (L.Handler.prototype.enable.call(this), this.fire("enabled", { 27626 handler: this.type 27627 }), this._map.fire(L.Draw.Event.DRAWSTART, { 27628 layerType: this.type 27629 })); 27630 }, 27631 disable: function() { 27632 this._enabled && (L.Handler.prototype.disable.call(this), this._map.fire(L.Draw.Event.DRAWSTOP, { 27633 layerType: this.type 27634 }), this.fire("disabled", { 27635 handler: this.type 27636 })); 27637 }, 27638 addHooks: function() { 27639 var t2 = this._map; 27640 t2 && (L.DomUtil.disableTextSelection(), t2.getContainer().focus(), this._tooltip = new L.Draw.Tooltip(this._map), L.DomEvent.on(this._container, "keyup", this._cancelDrawing, this)); 27641 }, 27642 removeHooks: function() { 27643 this._map && (L.DomUtil.enableTextSelection(), this._tooltip.dispose(), this._tooltip = null, L.DomEvent.off(this._container, "keyup", this._cancelDrawing, this)); 27644 }, 27645 setOptions: function(t2) { 27646 L.setOptions(this, t2); 27647 }, 27648 _fireCreatedEvent: function(t2) { 27649 this._map.fire(L.Draw.Event.CREATED, { 27650 layer: t2, 27651 layerType: this.type 27652 }); 27653 }, 27654 _cancelDrawing: function(t2) { 27655 27 === t2.keyCode && (this._map.fire("draw:canceled", { 27656 layerType: this.type 27657 }), this.disable()); 27658 } 27659 }), L.Draw.Polyline = L.Draw.Feature.extend({ 27660 statics: { 27661 TYPE: "polyline" 27662 }, 27663 Poly: L.Polyline, 27664 options: { 27665 allowIntersection: true, 27666 repeatMode: false, 27667 drawError: { 27668 color: "#b00b00", 27669 timeout: 2500 27670 }, 27671 icon: new L.DivIcon({ 27672 iconSize: new L.Point(8, 8), 27673 className: "leaflet-div-icon leaflet-editing-icon" 27674 }), 27675 touchIcon: new L.DivIcon({ 27676 iconSize: new L.Point(20, 20), 27677 className: "leaflet-div-icon leaflet-editing-icon leaflet-touch-icon" 27678 }), 27679 guidelineDistance: 20, 27680 maxGuideLineLength: 4e3, 27681 shapeOptions: { 27682 stroke: true, 27683 color: "#3388ff", 27684 weight: 4, 27685 opacity: 0.5, 27686 fill: false, 27687 clickable: true 27688 }, 27689 metric: true, 27690 feet: true,
27691 nautic: false, 27692 showLength: true, 27693 zIndexOffset: 2e3, 27694 factor: 1 27695 }, 27696 initialize: function(t2, e2) { 27697 L.Browser.touch && (this.options.icon = this.options.touchIcon), this.options.drawError.message = L.drawLocal.draw.handlers.polyline.error, e2 && e2.drawError && (e2.drawError = L.Util.extend({}, this.options.drawError, e2.drawError)), this.type = L.Draw.Polyline.TYPE, L.Draw.Feature.prototype.initialize.call(this, t2, e2); 27698 }, 27699 addHooks: function() { 27700 L.Draw.Feature.prototype.addHooks.call(this), this._map && (this._markers = [], this._markerGroup = new L.LayerGroup(), this._map.addLayer(this._markerGroup), this._poly = new L.Polyline([], this.options.shapeOptions), this._tooltip.updateContent(this._getTooltipText()), this._mouseMarker || (this._mouseMarker = L.marker(this._map.getCenter(), { 27701 icon: L.divIcon({ 27702 className: "leaflet-mouse-marker", 27703 iconAnchor: [20, 20], 27704 iconSize: [40, 40] 27705 }), 27706 opacity: 0, 27707 zIndexOffset: this.options.zIndexOffset 27708 })), this._mouseMarker.on("mouseout", this._onMouseOut, this).on("mousemove", this._onMouseMove, this).on("mousedown", this._onMouseDown, this).on("mouseup", this._onMouseUp, this).addTo(this._map), this._map.on("mouseup", this._onMouseUp, this).on("mousemove", this._onMouseMove, this).on("zoomlevelschange", this._onZoomEnd, this).on("touchstart", this._onTouch, this).on("zoomend", this._onZoomEnd, this)); 27709 }, 27710 removeHooks: function() { 27711 L.Draw.Feature.prototype.removeHooks.call(this), this._clearHideErrorTimeout(), this._cleanUpShape(), this._map.removeLayer(this._markerGroup), delete this._markerGroup, delete this._markers, this._map.removeLayer(this._poly), delete this._poly, this._mouseMarker.off("mousedown", this._onMouseDown, this).off("mouseout", this._onMouseOut, this).off("mouseup", this._onMouseUp, this).off("mousemove", this._onMouseMove, this), this._map.removeLayer(this._mouseMarker), delete this._mouseMarker, this._clearGuides(), this._map.off("mouseup", this._onMouseUp, this).off("mousemove", this._onMouseMove, this).off("zoomlevelschange", this._onZoomEnd, this).off("zoomend", this._onZoomEnd, this).off("touchstart", this._onTouch, this).off("click", this._onTouch, this); 27712 }, 27713 deleteLastVertex: function() { 27714 if (!(this._markers.length <= 1)) { 27715 var t2 = this._markers.pop(), e2 = this._poly, i3 = e2.getLatLngs(), o2 = i3.splice(-1, 1)[0]; 27716 this._poly.setLatLngs(i3), this._markerGroup.removeLayer(t2), e2.getLatLngs().length < 2 && this._map.removeLayer(e2), this._vertexChanged(o2, false); 27717 } 27718 }, 27719 addVertex: function(t2) { 27720 if (this._markers.length >= 2 && !this.options.allowIntersection && this._poly.newLatLngIntersects(t2)) 27721 return void this._showErrorTooltip(); 27722 this._errorShown && this._hideErrorTooltip(), this._markers.push(this._createMarker(t2)), this._poly.addLatLng(t2), 2 === this._poly.getLatLngs().length && this._map.addLayer(this._poly), this._vertexChanged(t2, true); 27723 }, 27724 completeShape: function() { 27725 this._markers.length <= 1 || (this._fireCreatedEvent(), this.disable(), this.options.repeatMode && this.enable()); 27726 }, 27727 _finishShape: function() { 27728 var t2 = this._poly._defaultShape ? this._poly._defaultShape() : this._poly.getLatLngs(), e2 = this._poly.newLatLngIntersects(t2[t2.length - 1]); 27729 if (!this.options.allowIntersection && e2 || !this._shapeIsValid()) 27730 return void this._showErrorTooltip(); 27731 this._fireCreatedEvent(), this.disable(), this.options.repeatMode && this.enable(); 27732 }, 27733 _shapeIsValid: function() { 27734 return true; 27735 }, 27736 _onZoomEnd: function() { 27737 null !== this._markers && this._updateGuide(); 27738 }, 27739 _onMouseMove: function(t2) { 27740 var e2 = this._map.mouseEventToLayerPoint(t2.originalEvent), i3 = this._map.layerPointToLatLng(e2); 27741 this._currentLatLng = i3, this._updateTooltip(i3), this._updateGuide(e2), this._mouseMarker.setLatLng(i3), L.DomEvent.preventDefault(t2.originalEvent); 27742 }, 27743 _vertexChanged: function(t2, e2) { 27744 this._map.fire(L.Draw.Event.DRAWVERTEX, { 27745 layers: this._markerGroup 27746 }), this._updateFinishHandler(), this._updateRunningMeasure(t2, e2), this._clearGuides(), this._updateTooltip(); 27747 }, 27748 _onMouseDown: function(t2) { 27749 if (!this._clickHandled && !this._touchHandled && !this._disableMarkers) { 27750 this._onMouseMove(t2), this._clickHandled = true, this._disableNewMarkers(); 27751 var e2 = t2.originalEvent, i3 = e2.clientX, o2 = e2.clientY; 27752 this._startPoint.call(this, i3, o2); 27753 } 27754 }, 27755 _startPoint: function(t2, e2) { 27756 this._mouseDownOrigin = L.point(t2, e2); 27757 }, 27758 _onMouseUp: function(t2) { 27759 var e2 = t2.originalEvent, i3 = e2.clientX, o2 = e2.clientY; 27760 this._endPoint.call(this, i3, o2, t2), this._clickHandled = null; 27761 }, 27762 _endPoint: function(e2, i3, o2) { 27763 if (this._mouseDownOrigin) { 27764 var n = L.point(e2, i3).distanceTo(this._mouseDownOrigin); 27765 this._calculateFinishDistance(o2.latlng) < 10 && L.Browser.touch ? this._finishShape() : Math.abs(n) < 9 * (t.devicePixelRatio || 1) && this.addVertex(o2.latlng), this._enableNewMarkers(); 27766 } 27767 this._mouseDownOrigin = null; 27768 }, 27769 _onTouch: function(t2) { 27770 var e2, i3, o2 = t2.originalEvent; 27771 !o2.touches || !o2.touches[0] || this._clickHandled || this._touchHandled || this._disableMarkers || (e2 = o2.touches[0].clientX, i3 = o2.touches[0].clientY, this._disableNewMarkers(), this._touchHandled = true, this._startPoint.call(this, e2, i3), this._endPoint.call(this, e2, i3, t2), this._touchHandled = null), this._clickHandled = null; 27772 }, 27773 _onMouseOut: function() { 27774 this._tooltip && this._tooltip._onMouseOut.call(this._tooltip); 27775 }, 27776 _calculateFinishDistance: function(t2) { 27777 var e2; 27778 if (this._markers.length > 0) { 27779 var i3;
27780 if (this.type === L.Draw.Polyline.TYPE) 27781 i3 = this._markers[this._markers.length - 1]; 27782 else { 27783 if (this.type !== L.Draw.Polygon.TYPE) 27784 return 1 / 0; 27785 i3 = this._markers[0]; 27786 } 27787 var o2 = this._map.latLngToContainerPoint(i3.getLatLng()), n = new L.Marker(t2, { 27788 icon: this.options.icon, 27789 zIndexOffset: 2 * this.options.zIndexOffset 27790 }), a = this._map.latLngToContainerPoint(n.getLatLng()); 27791 e2 = o2.distanceTo(a); 27792 } else 27793 e2 = 1 / 0; 27794 return e2; 27795 }, 27796 _updateFinishHandler: function() { 27797 var t2 = this._markers.length; 27798 t2 > 1 && this._markers[t2 - 1].on("click", this._finishShape, this), t2 > 2 && this._markers[t2 - 2].off("click", this._finishShape, this); 27799 }, 27800 _createMarker: function(t2) { 27801 var e2 = new L.Marker(t2, { 27802 icon: this.options.icon, 27803 zIndexOffset: 2 * this.options.zIndexOffset 27804 }); 27805 return this._markerGroup.addLayer(e2), e2; 27806 }, 27807 _updateGuide: function(t2) { 27808 var e2 = this._markers ? this._markers.length : 0; 27809 e2 > 0 && (t2 = t2 || this._map.latLngToLayerPoint(this._currentLatLng), this._clearGuides(), this._drawGuide(this._map.latLngToLayerPoint(this._markers[e2 - 1].getLatLng()), t2)); 27810 }, 27811 _updateTooltip: function(t2) { 27812 var e2 = this._getTooltipText(); 27813 t2 && this._tooltip.updatePosition(t2), this._errorShown || this._tooltip.updateContent(e2); 27814 }, 27815 _drawGuide: function(t2, e2) { 27816 var i3, o2, n, a = Math.floor(Math.sqrt(Math.pow(e2.x - t2.x, 2) + Math.pow(e2.y - t2.y, 2))), s = this.options.guidelineDistance, r = this.options.maxGuideLineLength, l = a > r ? a - r : s; 27817 for (this._guidesContainer || (this._guidesContainer = L.DomUtil.create("div", "leaflet-draw-guides", this._overlayPane)); l < a; l += this.options.guidelineDistance) 27818 i3 = l / a, o2 = { 27819 x: Math.floor(t2.x * (1 - i3) + i3 * e2.x), 27820 y: Math.floor(t2.y * (1 - i3) + i3 * e2.y) 27821 }, n = L.DomUtil.create("div", "leaflet-draw-guide-dash", this._guidesContainer), n.style.backgroundColor = this._errorShown ? this.options.drawError.color : this.options.shapeOptions.color, L.DomUtil.setPosition(n, o2); 27822 }, 27823 _updateGuideColor: function(t2) { 27824 if (this._guidesContainer) 27825 for (var e2 = 0, i3 = this._guidesContainer.childNodes.length; e2 < i3; e2++) 27826 this._guidesContainer.childNodes[e2].style.backgroundColor = t2; 27827 }, 27828 _clearGuides: function() { 27829 if (this._guidesContainer) 27830 for (; this._guidesContainer.firstChild; ) 27831 this._guidesContainer.removeChild(this._guidesContainer.firstChild); 27832 }, 27833 _getTooltipText: function() { 27834 var t2, e2, i3 = this.options.showLength; 27835 return L.Browser.touch && (i3 = false), 0 === this._markers.length ? t2 = { 27836 text: L.drawLocal.draw.handlers.polyline.tooltip.start 27837 } : (e2 = i3 ? this._getMeasurementString() : "", t2 = 1 === this._markers.length ? { 27838 text: L.drawLocal.draw.handlers.polyline.tooltip.cont, 27839 subtext: e2 27840 } : { 27841 text: L.drawLocal.draw.handlers.polyline.tooltip.end, 27842 subtext: e2 27843 }), t2; 27844 }, 27845 _updateRunningMeasure: function(t2, e2) { 27846 var i3, o2, n = this._markers.length; 27847 1 === this._markers.length ? this._measurementRunningTotal = 0 : (i3 = n - (e2 ? 2 : 1), o2 = this._map.distance(t2, this._markers[i3].getLatLng()) * (this.options.factor || 1), this._measurementRunningTotal += o2 * (e2 ? 1 : -1)); 27848 }, 27849 _getMeasurementString: function() { 27850 var t2, e2 = this._currentLatLng, i3 = this._markers[this._markers.length - 1].getLatLng(); 27851 return t2 = i3 && e2 ? this._measurementRunningTotal + this._map.distance(e2, i3) * (this.options.factor || 1) : this._measurementRunningTotal || 0, L.GeometryUtil.readableDistance(t2, this.options.metric, this.options.feet, this.options.nautic, this.options.precision); 27852 }, 27853 _showErrorTooltip: function() { 27854 this._errorShown = true, this._tooltip.showAsError().updateContent({ 27855 text: this.options.drawError.message 27856 }), this._updateGuideColor(this.options.drawError.color), this._poly.setStyle({ 27857 color: this.options.drawError.color 27858 }), this._clearHideErrorTimeout(), this._hideErrorTimeout = setTimeout(L.Util.bind(this._hideErrorTooltip, this), this.options.drawError.timeout); 27859 }, 27860 _hideErrorTooltip: function() { 27861 this._errorShown = false, this._clearHideErrorTimeout(), this._tooltip.removeError().updateContent(this._getTooltipText()), this._updateGuideColor(this.options.shapeOptions.color), this._poly.setStyle({ 27862 color: this.options.shapeOptions.color 27863 }); 27864 }, 27865 _clearHideErrorTimeout: function() { 27866 this._hideErrorTimeout && (clearTimeout(this._hideErrorTimeout), this._hideErrorTimeout = null); 27867 }, 27868 _disableNewMarkers: function() { 27869 this._disableMarkers = true; 27870 }, 27871 _enableNewMarkers: function() { 27872 setTimeout(function() { 27873 this._disableMarkers = false;
27874 }.bind(this), 50); 27875 }, 27876 _cleanUpShape: function() { 27877 this._markers.length > 1 && this._markers[this._markers.length - 1].off("click", this._finishShape, this); 27878 }, 27879 _fireCreatedEvent: function() { 27880 var t2 = new this.Poly(this._poly.getLatLngs(), this.options.shapeOptions); 27881 L.Draw.Feature.prototype._fireCreatedEvent.call(this, t2); 27882 } 27883 }), L.Draw.Polygon = L.Draw.Polyline.extend({ 27884 statics: { 27885 TYPE: "polygon" 27886 }, 27887 Poly: L.Polygon, 27888 options: { 27889 showArea: false, 27890 showLength: false, 27891 shapeOptions: { 27892 stroke: true, 27893 color: "#3388ff", 27894 weight: 4, 27895 opacity: 0.5, 27896 fill: true, 27897 fillColor: null, 27898 fillOpacity: 0.2, 27899 clickable: true 27900 }, 27901 metric: true, 27902 feet: true, 27903 nautic: false, 27904 precision: {} 27905 }, 27906 initialize: function(t2, e2) { 27907 L.Draw.Polyline.prototype.initialize.call(this, t2, e2), this.type = L.Draw.Polygon.TYPE; 27908 }, 27909 _updateFinishHandler: function() { 27910 var t2 = this._markers.length; 27911 1 === t2 && this._markers[0].on("click", this._finishShape, this), t2 > 2 && (this._markers[t2 - 1].on("dblclick", this._finishShape, this), t2 > 3 && this._markers[t2 - 2].off("dblclick", this._finishShape, this)); 27912 }, 27913 _getTooltipText: function() { 27914 var t2, e2; 27915 return 0 === this._markers.length ? t2 = L.drawLocal.draw.handlers.polygon.tooltip.start : this._markers.length < 3 ? (t2 = L.drawLocal.draw.handlers.polygon.tooltip.cont, e2 = this._getMeasurementString()) : (t2 = L.drawLocal.draw.handlers.polygon.tooltip.end, e2 = this._getMeasurementString()), { 27916 text: t2, 27917 subtext: e2 27918 }; 27919 }, 27920 _getMeasurementString: function() { 27921 var t2 = this._area, e2 = ""; 27922 return t2 || this.options.showLength ? (this.options.showLength && (e2 = L.Draw.Polyline.prototype._getMeasurementString.call(this)), t2 && (e2 += "<br>" + L.GeometryUtil.readableArea(t2, this.options.metric, this.options.precision)), e2) : null; 27923 }, 27924 _shapeIsValid: function() { 27925 return this._markers.length >= 3; 27926 }, 27927 _vertexChanged: function(t2, e2) { 27928 var i3; 27929 !this.options.allowIntersection && this.options.showArea && (i3 = this._poly.getLatLngs(), this._area = L.GeometryUtil.geodesicArea(i3)), L.Draw.Polyline.prototype._vertexChanged.call(this, t2, e2); 27930 }, 27931 _cleanUpShape: function() { 27932 var t2 = this._markers.length; 27933 t2 > 0 && (this._markers[0].off("click", this._finishShape, this), t2 > 2 && this._markers[t2 - 1].off("dblclick", this._finishShape, this)); 27934 } 27935 }), L.SimpleShape = {}, L.Draw.SimpleShape = L.Draw.Feature.extend({ 27936 options: { 27937 repeatMode: false 27938 }, 27939 initialize: function(t2, e2) { 27940 this._endLabelText = L.drawLocal.draw.handlers.simpleshape.tooltip.end, L.Draw.Feature.prototype.initialize.call(this, t2, e2); 27941 }, 27942 addHooks: function() { 27943 L.Draw.Feature.prototype.addHooks.call(this), this._map && (this._mapDraggable = this._map.dragging.enabled(), this._mapDraggable && this._map.dragging.disable(), this._container.style.cursor = "crosshair", this._tooltip.updateContent({ 27944 text: this._initialLabelText 27945 }), this._map.on("mousedown", this._onMouseDown, this).on("mousemove", this._onMouseMove, this).on("touchstart", this._onMouseDown, this).on("touchmove", this._onMouseMove, this)); 27946 }, 27947 removeHooks: function() { 27948 L.Draw.Feature.prototype.removeHooks.call(this), this._map && (this._mapDraggable && this._map.dragging.enable(), this._container.style.cursor = "", this._map.off("mousedown", this._onMouseDown, this).off("mousemove", this._onMouseMove, this).off("touchstart", this._onMouseDown, this).off("touchmove", this._onMouseMove, this), L.DomEvent.off(e, "mouseup", this._onMouseUp, this), L.DomEvent.off(e, "touchend", this._onMouseUp, this), this._shape && (this._map.removeLayer(this._shape), delete this._shape)), this._isDrawing = false;
27949 }, 27950 _getTooltipText: function() { 27951 return { 27952 text: this._endLabelText 27953 }; 27954 }, 27955 _onMouseDown: function(t2) { 27956 this._isDrawing = true, this._startLatLng = t2.latlng, L.DomEvent.on(e, "mouseup", this._onMouseUp, this).on(e, "touchend", this._onMouseUp, this).preventDefault(t2.originalEvent); 27957 }, 27958 _onMouseMove: function(t2) { 27959 var e2 = t2.latlng; 27960 this._tooltip.updatePosition(e2), this._isDrawing && (this._tooltip.updateContent(this._getTooltipText()), this._drawShape(e2)); 27961 }, 27962 _onMouseUp: function() { 27963 this._shape && this._fireCreatedEvent(), this.disable(), this.options.repeatMode && this.enable(); 27964 } 27965 }), L.Draw.Rectangle = L.Draw.SimpleShape.extend({ 27966 statics: { 27967 TYPE: "rectangle" 27968 }, 27969 options: { 27970 shapeOptions: { 27971 stroke: true, 27972 color: "#3388ff", 27973 weight: 4, 27974 opacity: 0.5, 27975 fill: true, 27976 fillColor: null, 27977 fillOpacity: 0.2, 27978 showArea: true, 27979 clickable: true 27980 }, 27981 metric: true 27982 }, 27983 initialize: function(t2, e2) { 27984 this.type = L.Draw.Rectangle.TYPE, this._initialLabelText = L.drawLocal.draw.handlers.rectangle.tooltip.start, L.Draw.SimpleShape.prototype.initialize.call(this, t2, e2); 27985 }, 27986 disable: function() { 27987 this._enabled && (this._isCurrentlyTwoClickDrawing = false, L.Draw.SimpleShape.prototype.disable.call(this)); 27988 }, 27989 _onMouseUp: function(t2) { 27990 if (!this._shape && !this._isCurrentlyTwoClickDrawing) 27991 return void (this._isCurrentlyTwoClickDrawing = true); 27992 this._isCurrentlyTwoClickDrawing && !o(t2.target, "leaflet-pane") || L.Draw.SimpleShape.prototype._onMouseUp.call(this); 27993 }, 27994 _drawShape: function(t2) { 27995 this._shape ? this._shape.setBounds(new L.LatLngBounds(this._startLatLng, t2)) : (this._shape = new L.Rectangle(new L.LatLngBounds(this._startLatLng, t2), this.options.shapeOptions), this._map.addLayer(this._shape)); 27996 }, 27997 _fireCreatedEvent: function() { 27998 var t2 = new L.Rectangle(this._shape.getBounds(), this.options.shapeOptions); 27999 L.Draw.SimpleShape.prototype._fireCreatedEvent.call(this, t2); 28000 }, 28001 _getTooltipText: function() { 28002 var t2, e2, i3, o2 = L.Draw.SimpleShape.prototype._getTooltipText.call(this), n = this._shape, a = this.options.showArea; 28003 return n && (t2 = this._shape._defaultShape ? this._shape._defaultShape() : this._shape.getLatLngs(), e2 = L.GeometryUtil.geodesicArea(t2), i3 = a ? L.GeometryUtil.readableArea(e2, this.options.metric) : ""), { 28004 text: o2.text, 28005 subtext: i3 28006 }; 28007 } 28008 }), L.Draw.Marker = L.Draw.Feature.extend({ 28009 statics: { 28010 TYPE: "marker" 28011 }, 28012 options: { 28013 icon: new L.Icon.Default(), 28014 repeatMode: false, 28015 zIndexOffset: 2e3 28016 }, 28017 initialize: function(t2, e2) { 28018 this.type = L.Draw.Marker.TYPE, this._initialLabelText = L.drawLocal.draw.handlers.marker.tooltip.start, L.Draw.Feature.prototype.initialize.call(this, t2, e2); 28019 }, 28020 addHooks: function() { 28021 L.Draw.Feature.prototype.addHooks.call(this), this._map && (this._tooltip.updateContent({ 28022 text: this._initialLabelText 28023 }), this._mouseMarker || (this._mouseMarker = L.marker(this._map.getCenter(), { 28024 icon: L.divIcon({ 28025 className: "leaflet-mouse-marker", 28026 iconAnchor: [20, 20], 28027 iconSize: [40, 40] 28028 }), 28029 opacity: 0, 28030 zIndexOffset: this.options.zIndexOffset 28031 })), this._mouseMarker.on("click", this._onClick, this).addTo(this._map), this._map.on("mousemove", this._onMouseMove, this), this._map.on("click", this._onTouch, this)); 28032 }, 28033 removeHooks: function() { 28034 L.Draw.Feature.prototype.removeHooks.call(this), this._map && (this._marker && (this._marker.off("click", this._onClick, this), this._map.off("click", this._onClick, this).off("click", this._onTouch, this).removeLayer(this._marker), delete this._marker), this._mouseMarker.off("click", this._onClick, this), this._map.removeLayer(this._mouseMarker), delete this._mouseMarker, this._map.off("mousemove", this._onMouseMove, this)); 28035 }, 28036 _onMouseMove: function(t2) { 28037 var e2 = t2.latlng; 28038 this._tooltip.updatePosition(e2), this._mouseMarker.setLatLng(e2), this._marker ? (e2 = this._mouseMarker.getLatLng(), this._marker.setLatLng(e2)) : (this._marker = this._createMarker(e2), this._marker.on("click", this._onClick, this), this._map.on("click", this._onClick, this).addLayer(this._marker)); 28039 }, 28040 _createMarker: function(t2) { 28041 return new L.Marker(t2, { 28042 icon: this.options.icon, 28043 zIndexOffset: this.options.zIndexOffset 28044 }); 28045 }, 28046 _onClick: function() { 28047 this._fireCreatedEvent(), this.disable(), this.options.repeatMode && this.enable(); 28048 }, 28049 _onTouch: function(t2) { 28050 this._onMouseMove(t2), this._onClick(); 28051 }, 28052 _fireCreatedEvent: function() { 28053 var t2 = new L.Marker.Touch(this._marker.getLatLng(), { 28054 icon: this.options.icon 28055 }); 28056 L.Draw.Feature.prototype._fireCreatedEvent.call(this, t2); 28057 } 28058 }), L.Draw.CircleMarker = L.Draw.Marker.extend({ 28059 statics: { 28060 TYPE: "circlemarker" 28061 }, 28062 options: { 28063 stroke: true, 28064 color: "#3388ff", 28065 weight: 4, 28066 opacity: 0.5, 28067 fill: true, 28068 fillColor: null, 28069 fillOpacity: 0.2, 28070 clickable: true, 28071 zIndexOffset: 2e3 28072 }, 28073 initialize: function(t2, e2) { 28074 this.type = L.Draw.CircleMarker.TYPE, this._initialLabelText = L.drawLocal.draw.handlers.circlemarker.tooltip.start, L.Draw.Feature.prototype.initialize.call(this, t2, e2); 28075 }, 28076 _fireCreatedEvent: function() { 28077 var t2 = new L.CircleMarker(this._marker.getLatLng(), this.options); 28078 L.Draw.Feature.prototype._fireCreatedEvent.call(this, t2); 28079 }, 28080 _createMarker: function(t2) { 28081 return new L.CircleMarker(t2, this.options); 28082 } 28083 }), L.Draw.Circle = L.Draw.SimpleShape.extend({ 28084 statics: { 28085 TYPE: "circle" 28086 }, 28087 options: { 28088 shapeOptions: { 28089 stroke: true, 28090 color: "#3388ff", 28091 weight: 4, 28092 opacity: 0.5, 28093 fill: true, 28094 fillColor: null, 28095 fillOpacity: 0.2, 28096 clickable: true 28097 }, 28098 showRadius: true, 28099 metric: true, 28100 feet: true,
28101 nautic: false 28102 }, 28103 initialize: function(t2, e2) { 28104 this.type = L.Draw.Circle.TYPE, this._initialLabelText = L.drawLocal.draw.handlers.circle.tooltip.start, L.Draw.SimpleShape.prototype.initialize.call(this, t2, e2); 28105 }, 28106 _drawShape: function(t2) { 28107 var e2 = this._map.distance(this._startLatLng, t2); 28108 this._shape ? this._shape.setRadius(e2) : (this._shape = new L.Circle(this._startLatLng, e2, this.options.shapeOptions), this._map.addLayer(this._shape)); 28109 }, 28110 _fireCreatedEvent: function() { 28111 var t2 = new L.Circle(this._startLatLng, this._shape.getRadius(), this.options.shapeOptions); 28112 L.Draw.SimpleShape.prototype._fireCreatedEvent.call(this, t2); 28113 }, 28114 _onMouseMove: function(t2) { 28115 var e2, i3 = t2.latlng, o2 = this.options.showRadius, n = this.options.metric; 28116 if (this._tooltip.updatePosition(i3), this._isDrawing) { 28117 this._drawShape(i3), e2 = this._shape.getRadius().toFixed(1); 28118 var a = ""; 28119 o2 && (a = L.drawLocal.draw.handlers.circle.radius + ": " + L.GeometryUtil.readableDistance(e2, n, this.options.feet, this.options.nautic)), this._tooltip.updateContent({ 28120 text: this._endLabelText, 28121 subtext: a 28122 }); 28123 } 28124 } 28125 }), L.Edit = L.Edit || {}, L.Edit.Marker = L.Handler.extend({ 28126 initialize: function(t2, e2) { 28127 this._marker = t2, L.setOptions(this, e2); 28128 }, 28129 addHooks: function() { 28130 var t2 = this._marker; 28131 t2.dragging.enable(), t2.on("dragend", this._onDragEnd, t2), this._toggleMarkerHighlight(); 28132 }, 28133 removeHooks: function() { 28134 var t2 = this._marker; 28135 t2.dragging.disable(), t2.off("dragend", this._onDragEnd, t2), this._toggleMarkerHighlight(); 28136 }, 28137 _onDragEnd: function(t2) { 28138 var e2 = t2.target; 28139 e2.edited = true, this._map.fire(L.Draw.Event.EDITMOVE, { 28140 layer: e2 28141 }); 28142 }, 28143 _toggleMarkerHighlight: function() { 28144 var t2 = this._marker._icon; 28145 t2 && (t2.style.display = "none", L.DomUtil.hasClass(t2, "leaflet-edit-marker-selected") ? (L.DomUtil.removeClass(t2, "leaflet-edit-marker-selected"), this._offsetMarker(t2, -4)) : (L.DomUtil.addClass(t2, "leaflet-edit-marker-selected"), this._offsetMarker(t2, 4)), t2.style.display = ""); 28146 }, 28147 _offsetMarker: function(t2, e2) { 28148 var i3 = parseInt(t2.style.marginTop, 10) - e2, o2 = parseInt(t2.style.marginLeft, 10) - e2; 28149 t2.style.marginTop = i3 + "px", t2.style.marginLeft = o2 + "px"; 28150 } 28151 }), L.Marker.addInitHook(function() { 28152 L.Edit.Marker && (this.editing = new L.Edit.Marker(this), this.options.editable && this.editing.enable()); 28153 }), L.Edit = L.Edit || {}, L.Edit.Poly = L.Handler.extend({ 28154 options: {}, 28155 initialize: function(t2, e2) { 28156 this.latlngs = [t2._latlngs], t2._holes && (this.latlngs = this.latlngs.concat(t2._holes)), this._poly = t2, L.setOptions(this, e2), this._poly.on("revert-edited", this._updateLatLngs, this); 28157 }, 28158 _defaultShape: function() { 28159 return L.Polyline._flat ? L.Polyline._flat(this._poly._latlngs) ? this._poly._latlngs : this._poly._latlngs[0] : this._poly._latlngs; 28160 }, 28161 _eachVertexHandler: function(t2) { 28162 for (var e2 = 0; e2 < this._verticesHandlers.length; e2++) 28163 t2(this._verticesHandlers[e2]); 28164 }, 28165 addHooks: function() { 28166 this._initHandlers(), this._eachVertexHandler(function(t2) { 28167 t2.addHooks(); 28168 }); 28169 }, 28170 removeHooks: function() { 28171 this._eachVertexHandler(function(t2) { 28172 t2.removeHooks(); 28173 }); 28174 }, 28175 updateMarkers: function() { 28176 this._eachVertexHandler(function(t2) { 28177 t2.updateMarkers(); 28178 }); 28179 }, 28180 _initHandlers: function() { 28181 this._verticesHandlers = []; 28182 for (var t2 = 0; t2 < this.latlngs.length; t2++) 28183 this._verticesHandlers.push(new L.Edit.PolyVerticesEdit(this._poly, this.latlngs[t2], this.options)); 28184 }, 28185 _updateLatLngs: function(t2) { 28186 this.latlngs = [t2.layer._latlngs], t2.layer._holes && (this.latlngs = this.latlngs.concat(t2.layer._holes)); 28187 } 28188 }), L.Edit.PolyVerticesEdit = L.Handler.extend({ 28189 options: { 28190 icon: new L.DivIcon({ 28191 iconSize: new L.Point(8, 8), 28192 className: "leaflet-div-icon leaflet-editing-icon" 28193 }), 28194 touchIcon: new L.DivIcon({ 28195 iconSize: new L.Point(20, 20), 28196 className: "leaflet-div-icon leaflet-editing-icon leaflet-touch-icon" 28197 }), 28198 drawError: { 28199 color: "#b00b00", 28200 timeout: 1e3 28201 } 28202 }, 28203 initialize: function(t2, e2, i3) { 28204 L.Browser.touch && (this.options.icon = this.options.touchIcon), this._poly = t2, i3 && i3.drawError && (i3.drawError = L.Util.extend({}, this.options.drawError, i3.drawError)), this._latlngs = e2, L.setOptions(this, i3); 28205 }, 28206 _defaultShape: function() { 28207 return L.Polyline._flat ? L.Polyline._flat(this._latlngs) ? this._latlngs : this._latlngs[0] : this._latlngs; 28208 }, 28209 addHooks: function() { 28210 var t2 = this._poly; 28211 t2 instanceof L.Polygon || (t2.options.fill = false, t2.options.editing && (t2.options.editing.fill = false)), t2.setStyle(t2.options.editing), this._poly._map && (this._map = this._poly._map, this._markerGroup || this._initMarkers(), this._poly._map.addLayer(this._markerGroup)); 28212 }, 28213 removeHooks: function() { 28214 var t2 = this._poly; 28215 t2.setStyle(t2.options.original), t2._map && (t2._map.removeLayer(this._markerGroup), delete this._markerGroup, delete this._markers); 28216 }, 28217 updateMarkers: function() { 28218 this._markerGroup.clearLayers(), this._initMarkers(); 28219 }, 28220 _initMarkers: function() { 28221 this._markerGroup || (this._markerGroup = new L.LayerGroup()), this._markers = []; 28222 var t2, e2, i3, o2, n = this._defaultShape(); 28223 for (t2 = 0, i3 = n.length; t2 < i3; t2++) 28224 o2 = this._createMarker(n[t2], t2), o2.on("click", this._onMarkerClick, this), this._markers.push(o2); 28225 var a, s; 28226 for (t2 = 0, e2 = i3 - 1; t2 < i3; e2 = t2++) 28227 (0 !== t2 || L.Polygon && this._poly instanceof L.Polygon) && (a = this._markers[e2], s = this._markers[t2], this._createMiddleMarker(a, s), this._updatePrevNext(a, s)); 28228 }, 28229 _createMarker: function(t2, e2) { 28230 var i3 = new L.Marker.Touch(t2, { 28231 draggable: true, 28232 icon: this.options.icon 28233 }); 28234 return i3._origLatLng = t2, i3._index = e2, i3.on("dragstart", this._onMarkerDragStart, this).on("drag", this._onMarkerDrag, this).on("dragend", this._fireEdit, this).on("touchmove", this._onTouchMove, this).on("touchend", this._fireEdit, this).on("MSPointerMove", this._onTouchMove, this).on("MSPointerUp", this._fireEdit, this), this._markerGroup.addLayer(i3), i3; 28235 }, 28236 _onMarkerDragStart: function() { 28237 this._poly.fire("editstart"); 28238 },
28239 _spliceLatLngs: function() { 28240 var t2 = this._defaultShape(), e2 = [].splice.apply(t2, arguments); 28241 return this._poly._convertLatLngs(t2, true), this._poly.redraw(), e2; 28242 }, 28243 _removeMarker: function(t2) { 28244 var e2 = t2._index; 28245 this._markerGroup.removeLayer(t2), this._markers.splice(e2, 1), this._spliceLatLngs(e2, 1), this._updateIndexes(e2, -1), t2.off("dragstart", this._onMarkerDragStart, this).off("drag", this._onMarkerDrag, this).off("dragend", this._fireEdit, this).off("touchmove", this._onMarkerDrag, this).off("touchend", this._fireEdit, this).off("click", this._onMarkerClick, this).off("MSPointerMove", this._onTouchMove, this).off("MSPointerUp", this._fireEdit, this); 28246 }, 28247 _fireEdit: function() { 28248 this._poly.edited = true, this._poly.fire("edit"), this._poly._map.fire(L.Draw.Event.EDITVERTEX, { 28249 layers: this._markerGroup, 28250 poly: this._poly 28251 }); 28252 }, 28253 _onMarkerDrag: function(t2) { 28254 var e2 = t2.target, i3 = this._poly; 28255 if (L.extend(e2._origLatLng, e2._latlng), e2._middleLeft && e2._middleLeft.setLatLng(this._getMiddleLatLng(e2._prev, e2)), e2._middleRight && e2._middleRight.setLatLng(this._getMiddleLatLng(e2, e2._next)), i3.options.poly) { 28256 var o2 = i3._map._editTooltip; 28257 if (!i3.options.poly.allowIntersection && i3.intersects()) { 28258 var n = i3.options.color; 28259 i3.setStyle({ 28260 color: this.options.drawError.color 28261 }), 0 !== L.version.indexOf("0.7") && e2.dragging._draggable._onUp(t2), this._onMarkerClick(t2), o2 && o2.updateContent({ 28262 text: L.drawLocal.draw.handlers.polyline.error 28263 }), setTimeout(function() { 28264 i3.setStyle({ 28265 color: n 28266 }), o2 && o2.updateContent({ 28267 text: L.drawLocal.edit.handlers.edit.tooltip.text, 28268 subtext: L.drawLocal.edit.handlers.edit.tooltip.subtext 28269 }); 28270 }, 1e3); 28271 } 28272 } 28273 this._poly.redraw(), this._poly.fire("editdrag"); 28274 }, 28275 _onMarkerClick: function(t2) { 28276 var e2 = L.Polygon && this._poly instanceof L.Polygon ? 4 : 3, i3 = t2.target; 28277 this._defaultShape().length < e2 || (this._removeMarker(i3), this._updatePrevNext(i3._prev, i3._next), i3._middleLeft && this._markerGroup.removeLayer(i3._middleLeft), i3._middleRight && this._markerGroup.removeLayer(i3._middleRight), i3._prev && i3._next ? this._createMiddleMarker(i3._prev, i3._next) : i3._prev ? i3._next || (i3._prev._middleRight = null) : i3._next._middleLeft = null, this._fireEdit()); 28278 }, 28279 _onTouchMove: function(t2) { 28280 var e2 = this._map.mouseEventToLayerPoint(t2.originalEvent.touches[0]), i3 = this._map.layerPointToLatLng(e2), o2 = t2.target; 28281 L.extend(o2._origLatLng, i3), o2._middleLeft && o2._middleLeft.setLatLng(this._getMiddleLatLng(o2._prev, o2)), o2._middleRight && o2._middleRight.setLatLng(this._getMiddleLatLng(o2, o2._next)), this._poly.redraw(), this.updateMarkers(); 28282 }, 28283 _updateIndexes: function(t2, e2) { 28284 this._markerGroup.eachLayer(function(i3) { 28285 i3._index > t2 && (i3._index += e2); 28286 }); 28287 }, 28288 _createMiddleMarker: function(t2, e2) { 28289 var i3, o2, n, a = this._getMiddleLatLng(t2, e2), s = this._createMarker(a); 28290 s.setOpacity(0.6), t2._middleRight = e2._middleLeft = s, o2 = function() { 28291 s.off("touchmove", o2, this); 28292 var n2 = e2._index; 28293 s._index = n2, s.off("click", i3, this).on("click", this._onMarkerClick, this), a.lat = s.getLatLng().lat, a.lng = s.getLatLng().lng, this._spliceLatLngs(n2, 0, a), this._markers.splice(n2, 0, s), s.setOpacity(1), this._updateIndexes(n2, 1), e2._index++, this._updatePrevNext(t2, s), this._updatePrevNext(s, e2), this._poly.fire("editstart"); 28294 }, n = function() { 28295 s.off("dragstart", o2, this), s.off("dragend", n, this), s.off("touchmove", o2, this), this._createMiddleMarker(t2, s), this._createMiddleMarker(s, e2); 28296 }, i3 = function() { 28297 o2.call(this), n.call(this), this._fireEdit(); 28298 }, s.on("click", i3, this).on("dragstart", o2, this).on("dragend", n, this).on("touchmove", o2, this), this._markerGroup.addLayer(s); 28299 }, 28300 _updatePrevNext: function(t2, e2) { 28301 t2 && (t2._next = e2), e2 && (e2._prev = t2); 28302 }, 28303 _getMiddleLatLng: function(t2, e2) { 28304 var i3 = this._poly._map, o2 = i3.project(t2.getLatLng()), n = i3.project(e2.getLatLng()); 28305 return i3.unproject(o2._add(n)._divideBy(2)); 28306 } 28307 }), L.Polyline.addInitHook(function() { 28308 this.editing || (L.Edit.Poly && (this.editing = new L.Edit.Poly(this, this.options.poly), this.options.editable && this.editing.enable()), this.on("add", function() { 28309 this.editing && this.editing.enabled() && this.editing.addHooks(); 28310 }), this.on("remove", function() { 28311 this.editing && this.editing.enabled() && this.editing.removeHooks(); 28312 })); 28313 }), L.Edit = L.Edit || {}, L.Edit.SimpleShape = L.Handler.extend({ 28314 options: { 28315 moveIcon: new L.DivIcon({ 28316 iconSize: new L.Point(8, 8), 28317 className: "leaflet-div-icon leaflet-editing-icon leaflet-edit-move" 28318 }), 28319 resizeIcon: new L.DivIcon({ 28320 iconSize: new L.Point(8, 8), 28321 className: "leaflet-div-icon leaflet-editing-icon leaflet-edit-resize" 28322 }), 28323 touchMoveIcon: new L.DivIcon({ 28324 iconSize: new L.Point(20, 20), 28325 className: "leaflet-div-icon leaflet-editing-icon leaflet-edit-move leaflet-touch-icon" 28326 }), 28327 touchResizeIcon: new L.DivIcon({ 28328 iconSize: new L.Point(20, 20), 28329 className: "leaflet-div-icon leaflet-editing-icon leaflet-edit-resize leaflet-touch-icon" 28330 }) 28331 }, 28332 initialize: function(t2, e2) { 28333 L.Browser.touch && (this.options.moveIcon = this.options.touchMoveIcon, this.options.resizeIcon = this.options.touchResizeIcon), this._shape = t2, L.Util.setOptions(this, e2); 28334 }, 28335 addHooks: function() { 28336 var t2 = this._shape; 28337 this._shape._map && (this._map = this._shape._map, t2.setStyle(t2.options.editing), t2._map && (this._map = t2._map, this._markerGroup || this._initMarkers(), this._map.addLayer(this._markerGroup))); 28338 }, 28339 removeHooks: function() { 28340 var t2 = this._shape; 28341 if (t2.setStyle(t2.options.original), t2._map) { 28342 this._unbindMarker(this._moveMarker); 28343 for (var e2 = 0, i3 = this._resizeMarkers.length; e2 < i3; e2++) 28344 this._unbindMarker(this._resizeMarkers[e2]); 28345 this._resizeMarkers = null, this._map.removeLayer(this._markerGroup), delete this._markerGroup; 28346 } 28347 this._map = null; 28348 }, 28349 updateMarkers: function() { 28350 this._markerGroup.clearLayers(), this._initMarkers(); 28351 }, 28352 _initMarkers: function() { 28353 this._markerGroup || (this._markerGroup = new L.LayerGroup()), this._createMoveMarker(), this._createResizeMarker(); 28354 }, 28355 _createMoveMarker: function() { 28356 }, 28357 _createResizeMarker: function() { 28358 }, 28359 _createMarker: function(t2, e2) { 28360 var i3 = new L.Marker.Touch(t2, { 28361 draggable: true, 28362 icon: e2, 28363 zIndexOffset: 10 28364 }); 28365 return this._bindMarker(i3), this._markerGroup.addLayer(i3), i3; 28366 }, 28367 _bindMarker: function(t2) { 28368 t2.on("dragstart", this._onMarkerDragStart, this).on("drag", this._onMarkerDrag, this).on("dragend", this._onMarkerDragEnd, this).on("touchstart", this._onTouchStart, this).on("touchmove", this._onTouchMove, this).on("MSPointerMove", this._onTouchMove, this).on("touchend", this._onTouchEnd, this).on("MSPointerUp", this._onTouchEnd, this); 28369 }, 28370 _unbindMarker: function(t2) { 28371 t2.off("dragstart", this._onMarkerDragStart, this).off("drag", this._onMarkerDrag, this).off("dragend", this._onMarkerDragEnd, this).off("touchstart", this._onTouchStart, this).off("touchmove", this._onTouchMove, this).off("MSPointerMove", this._onTouchMove, this).off("touchend", this._onTouchEnd, this).off("MSPointerUp", this._onTouchEnd, this); 28372 }, 28373 _onMarkerDragStart: function(t2) { 28374 t2.target.setOpacity(0), this._shape.fire("editstart"); 28375 }, 28376 _fireEdit: function() { 28377 this._shape.edited = true, this._shape.fire("edit"); 28378 }, 28379 _onMarkerDrag: function(t2) { 28380 var e2 = t2.target, i3 = e2.getLatLng(); 28381 e2 === this._moveMarker ? this._move(i3) : this._resize(i3), this._shape.redraw(), this._shape.fire("editdrag"); 28382 }, 28383 _onMarkerDragEnd: function(t2) { 28384 t2.target.setOpacity(1), this._fireEdit(); 28385 }, 28386 _onTouchStart: function(t2) { 28387 if (L.Edit.SimpleShape.prototype._onMarkerDragStart.call(this, t2), "function" == typeof this._getCorners) { 28388 var e2 = this._getCorners(), i3 = t2.target, o2 = i3._cornerIndex; 28389 i3.setOpacity(0), this._oppositeCorner = e2[(o2 + 2) % 4], this._toggleCornerMarkers(0, o2); 28390 } 28391 this._shape.fire("editstart"); 28392 }, 28393 _onTouchMove: function(t2) { 28394 var e2 = this._map.mouseEventToLayerPoint(t2.originalEvent.touches[0]), i3 = this._map.layerPointToLatLng(e2); 28395 return t2.target === this._moveMarker ? this._move(i3) : this._resize(i3), this._shape.redraw(), false; 28396 }, 28397 _onTouchEnd: function(t2) { 28398 t2.target.setOpacity(1), this.updateMarkers(), this._fireEdit(); 28399 }, 28400 _move: function() { 28401 }, 28402 _resize: function() { 28403 } 28404 }), L.Edit = L.Edit || {}, L.Edit.Rectangle = L.Edit.SimpleShape.extend({ 28405 _createMoveMarker: function() { 28406 var t2 = this._shape.getBounds(), e2 = t2.getCenter(); 28407 this._moveMarker = this._createMarker(e2, this.options.moveIcon); 28408 }, 28409 _createResizeMarker: function() { 28410 var t2 = this._getCorners(); 28411 this._resizeMarkers = []; 28412 for (var e2 = 0, i3 = t2.length; e2 < i3; e2++) 28413 this._resizeMarkers.push(this._createMarker(t2[e2], this.options.resizeIcon)), this._resizeMarkers[e2]._cornerIndex = e2; 28414 }, 28415 _onMarkerDragStart: function(t2) { 28416 L.Edit.SimpleShape.prototype._onMarkerDragStart.call(this, t2); 28417 var e2 = this._getCorners(), i3 = t2.target, o2 = i3._cornerIndex; 28418 this._oppositeCorner = e2[(o2 + 2) % 4], this._toggleCornerMarkers(0, o2); 28419 }, 28420 _onMarkerDragEnd: function(t2) { 28421 var e2, i3, o2 = t2.target; 28422 o2 === this._moveMarker && (e2 = this._shape.getBounds(), i3 = e2.getCenter(), o2.setLatLng(i3)), this._toggleCornerMarkers(1), this._repositionCornerMarkers(), L.Edit.SimpleShape.prototype._onMarkerDragEnd.call(this, t2); 28423 }, 28424 _move: function(t2) { 28425 for (var e2, i3 = this._shape._defaultShape ? this._shape._defaultShape() : this._shape.getLatLngs(), o2 = this._shape.getBounds(), n = o2.getCenter(), a = [], s = 0, r = i3.length; s < r; s++) 28426 e2 = [i3[s].lat - n.lat, i3[s].lng - n.lng], a.push([t2.lat + e2[0], t2.lng + e2[1]]); 28427 this._shape.setLatLngs(a), this._repositionCornerMarkers(), this._map.fire(L.Draw.Event.EDITMOVE, { 28428 layer: this._shape 28429 }); 28430 }, 28431 _resize: function(t2) { 28432 var e2; 28433 this._shape.setBounds(L.latLngBounds(t2, this._oppositeCorner)), e2 = this._shape.getBounds(), this._moveMarker.setLatLng(e2.getCenter()), this._map.fire(L.Draw.Event.EDITRESIZE, { 28434 layer: this._shape 28435 }); 28436 }, 28437 _getCorners: function() { 28438 var t2 = this._shape.getBounds(); 28439 return [t2.getNorthWest(), t2.getNorthEast(), t2.getSouthEast(), t2.getSouthWest
28439()]; 28440 }, 28441 _toggleCornerMarkers: function(t2) { 28442 for (var e2 = 0, i3 = this._resizeMarkers.length; e2 < i3; e2++) 28443 this._resizeMarkers[e2].setOpacity(t2); 28444 }, 28445 _repositionCornerMarkers: function() { 28446 for (var t2 = this._getCorners(), e2 = 0, i3 = this._resizeMarkers.length; e2 < i3; e2++) 28447 this._resizeMarkers[e2].setLatLng(t2[e2]); 28448 } 28449 }), L.Rectangle.addInitHook(function() { 28450 L.Edit.Rectangle && (this.editing = new L.Edit.Rectangle(this), this.options.editable && this.editing.enable()); 28451 }), L.Edit = L.Edit || {}, L.Edit.CircleMarker = L.Edit.SimpleShape.extend({ 28452 _createMoveMarker: function() { 28453 var t2 = this._shape.getLatLng(); 28454 this._moveMarker = this._createMarker(t2, this.options.moveIcon); 28455 }, 28456 _createResizeMarker: function() { 28457 this._resizeMarkers = []; 28458 }, 28459 _move: function(t2) { 28460 if (this._resizeMarkers.length) { 28461 var e2 = this._getResizeMarkerPoint(t2); 28462 this._resizeMarkers[0].setLatLng(e2); 28463 } 28464 this._shape.setLatLng(t2), this._map.fire(L.Draw.Event.EDITMOVE, { 28465 layer: this._shape 28466 }); 28467 } 28468 }), L.CircleMarker.addInitHook(function() { 28469 L.Edit.CircleMarker && (this.editing = new L.Edit.CircleMarker(this), this.options.editable && this.editing.enable()), this.on("add", function() { 28470 this.editing && this.editing.enabled() && this.editing.addHooks(); 28471 }), this.on("remove", function() { 28472 this.editing && this.editing.enabled() && this.editing.removeHooks(); 28473 }); 28474 }), L.Edit = L.Edit || {}, L.Edit.Circle = L.Edit.CircleMarker.extend({ 28475 _createResizeMarker: function() { 28476 var t2 = this._shape.getLatLng(), e2 = this._getResizeMarkerPoint(t2); 28477 this._resizeMarkers = [], this._resizeMarkers.push(this._createMarker(e2, this.options.resizeIcon)); 28478 }, 28479 _getResizeMarkerPoint: function(t2) { 28480 var e2 = this._shape._radius * Math.cos(Math.PI / 4), i3 = this._map.project(t2); 28481 return this._map.unproject([i3.x + e2, i3.y - e2]); 28482 }, 28483 _resize: function(t2) { 28484 var e2 = this._moveMarker.getLatLng(), i3 = this._map.distance(e2, t2); 28485 this._shape.setRadius(i3), this._map.fire(L.Draw.Event.EDITRESIZE, { 28486 layer: this._shape 28487 }); 28488 } 28489 }), L.Circle.addInitHook(function() { 28490 L.Edit.Circle && (this.editing = new L.Edit.Circle(this), this.options.editable && this.editing.enable()), this.on("add", function() { 28491 this.editing && this.editing.enabled() && this.editing.addHooks(); 28492 }), this.on("remove", function() { 28493 this.editing && this.editing.enabled() && this.editing.removeHooks(); 28494 }); 28495 }), L.Map.mergeOptions({ 28496 touchExtend: true 28497 }), L.Map.TouchExtend = L.Handler.extend({ 28498 initialize: function(t2) { 28499 this._map = t2, this._container = t2._container, this._pane = t2._panes.overlayPane; 28500 }, 28501 addHooks: function() { 28502 L.DomEvent.on(this._container, "touchstart", this._onTouchStart, this), L.DomEvent.on(this._container, "touchend", this._onTouchEnd, this), L.DomEvent.on(this._container, "touchmove", this._onTouchMove, this), this._detectIE() ? (L.DomEvent.on(this._container, "MSPointerDown", this._onTouchStart, this), L.DomEvent.on(this._container, "MSPointerUp", this._onTouchEnd, this), L.DomEvent.on(this._container, "MSPointerMove", this._onTouchMove, this), L.DomEvent.on(this._container, "MSPointerCancel", this._onTouchCancel, this)) : (L.DomEvent.on(this._container, "touchcancel", this._onTouchCancel, this), L.DomEvent.on(this._container, "touchleave", this._onTouchLeave, this)); 28503 }, 28504 removeHooks: function() { 28505 L.DomEvent.off(this._container, "touchstart", this._onTouchStart), L.DomEvent.off(this._container, "touchend", this._onTouchEnd), L.DomEvent.off(this._container, "touchmove", this._onTouchMove), this._detectIE() ? (L.DomEvent.off(this._container, "MSPointerDowm", this._onTouchStart), L.DomEvent.off(this._container, "MSPointerUp", this._onTouchEnd), L.DomEvent.off(this._container, "MSPointerMove", this._onTouchMove), L.DomEvent.off(this._container, "MSPointerCancel", this._onTouchCancel)) : (L.DomEvent.off(this._container, "touchcancel", this._onTouchCancel), L.DomEvent.off(this._container, "touchleave", this._onTouchLeave)); 28506 }, 28507 _touchEvent: function(t2, e2) { 28508 var i3 = {}; 28509 if (void 0 !== t2.touches) { 28510 if (!t2.touches.length) 28511 return; 28512 i3 = t2.touches[0]; 28513 } else { 28514 if ("touch" !== t2.pointerType) 28515 return; 28516 if (i3 = t2, !this._filterClick(t2)) 28517 return; 28518 } 28519 var o2 = this._map.mouseEventToContainerPoint(i3), n = this._map.mouseEventToLayerPoint(i3), a = this._map.layerPointToLatLng(n); 28520 this._map.fire(e2, { 28521 latlng: a, 28522 layerPoint: n, 28523 containerPoint: o2, 28524 pageX: i3.pageX, 28525 pageY: i3.pageY, 28526 originalEvent: t2 28527 }); 28528 }, 28529 _filterClick: function(t2) { 28530 var e2 = t2.timeStamp || t2.originalEvent.timeStamp, i3 = L.DomEvent._lastClick && e2 - L.DomEvent._lastClick; 28531 return i3 && i3 > 100 && i3 < 500 || t2.target._simulatedClick && !t2._simulated ? (L.DomEvent.stop(t2), false) : (L.DomEvent._lastClick = e2, true); 28532 }, 28533 _onTouchStart: function(t2) { 28534 if (this._map._loaded) { 28535 this._touchEvent(t2, "touchstart"); 28536 } 28537 }, 28538 _onTouchEnd: function(t2) { 28539 if (this._map._loaded) { 28540 this._touchEvent(t2, "touchend"); 28541 } 28542 }, 28543 _onTouchCancel: function(t2) { 28544 if (this._map._loaded) { 28545 var e2 = "touchcancel"; 28546 this._detectIE() && (e2 = "pointercancel"), this._touchEvent(t2, e2); 28547 } 28548 }, 28549 _onTouchLeave: function(t2) { 28550 if (this._map._loaded) { 28551 this._touchEvent(t2, "touchleave"); 28552 } 28553 }, 28554 _onTouchMove: function(t2) { 28555 if (this._map._loaded) { 28556 this._touchEvent(t2, "touchmove"); 28557 } 28558 }, 28559 _detectIE: function() { 28560 var e2 = t.navigator.userAgent, i3 = e2.indexOf("MSIE "); 28561 if (i3 > 0) 28562 return parseInt(e2.substring(i3 + 5, e2.indexOf(".", i3)), 10); 28563 if (e2.indexOf("Trident/") > 0) { 28564 var o2 = e2.indexOf("rv:"); 28565 return parseInt(e2.substring(o2 + 3, e2.indexOf(".", o2)), 10); 28566 } 28567 var n = e2.indexOf("Edge/"); 28568 return n > 0 && parseInt(e2.substring(n + 5, e2.indexOf(".", n)), 10); 28569 } 28570 }), L.Map.addInitHook("addHandler", "touchExtend", L.Map.TouchExtend), L.Marker.Touch = L.Marker.extend({ 28571 _initInteraction: function() { 28572 return this.addInteractiveTarget ? L.Marker.prototype._initInteraction.apply(this) : this._initInteractionLegacy(); 28573 }, 28574 _initInteractionLegacy: function() { 28575 if (this.options.clickable) { 28576 var t2 = this._icon, e2 = ["dblclick", "mousedown", "mouseover", "mouseout", "contextmenu", "touchstart", "touchend", "touchmove"]; 28577 this._detectIE ? e2.concat(["MSPointerDown", "MSPointerUp", "MSPointerMove", "MSPointerCancel"]) : e2.concat(["touchcancel"]), L.DomUtil.addClass(t2, "leaflet-clickable"), L.DomEvent.on(t2, "click", this._onMouseClick, this), L.DomEvent.on(t2, "keypress", this._onKeyPress, this); 28578 for (var i3 = 0; i3 < e2.length; i3++) 28579 L.DomEvent.on(t2, e2[i3], this._fireMouseEvent, this); 28580 L.Handler.MarkerDrag && (this.dragging = new L.Handler.MarkerDrag(this), this.options.draggable && this.dragging.enable()); 28581 } 28582 }, 28583 _detectIE: function() { 28584 var e2 = t.navigator.userAgent, i3 = e2.indexOf("MSIE "); 28585 if (i3 > 0) 28586 return parseInt(e2.substring(i3 + 5, e2.indexOf(".", i3)), 10); 28587 if (e2.indexOf("Trident/") > 0) { 28588 var o2 = e2.indexOf("rv:"); 28589 return parseInt(e2.substring(o2 + 3, e2.indexOf(".", o2)), 10); 28590 } 28591 var n = e2.indexOf("Edge/"); 28592 return n > 0 && parseInt(e2.substring(n + 5, e2.indexOf(".", n)), 10); 28593 } 28594 }), L.LatLngUtil = { 28595 cloneLatLngs: function(t2) { 28596 for (var e2 = [], i3 = 0, o2 = t2.length; i3 < o2; i3++) 28597 Array.isArray(t2[i3]) ? e2.push(L.LatLngUtil.cloneLatLngs(t2[i3])) : e2.push(this.cloneLatLng(t2[i3])); 28598 return e2; 28599 }, 28600 cloneLatLng: function(t2) { 28601 return L.latLng(t2.lat, t2.lng); 28602 } 28603 }, function() { 28604 var t2 = { 28605 km: 2, 28606 ha: 2, 28607 m: 0, 28608 mi: 2, 28609 ac: 2, 28610 yd: 0, 28611 ft: 0, 28612 nm: 2 28613 }; 28614 L.GeometryUtil = L.extend(L.GeometryUtil || {}, { 28615 geodesicArea: function(t3) { 28616 var e2, i3, o2 = t3.length, n = 0, a = Math.PI / 180; 28617 if (o2 > 2) { 28618 for (var s = 0; s < o2; s++) 28619 e2 = t3[s], i3 = t3[(s + 1) % o2], n += (i3.lng - e2.lng) * a * (2 + Math.sin(e2.lat * a) + Math.sin(i3.lat * a)); 28620 n = 6378137 * n * 6378137 / 2; 28621 } 28622 return Math.abs(n); 28623 }, 28624 formattedNumber: function(t3, e2) { 28625 var i3 = parseFloat(t3).toFixed(e2), o2 = L.drawLocal.format && L.drawLocal.format.numeric, n = o2 && o2.delimiters, a = n && n.thousands, s = n && n.decimal; 28626 if (a || s) { 28627 var r = i3.split("."); 28628 i3 = a ? r[0].replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1" + a) : r[0], s = s || ".", r.length > 1 && (i3 = i3 + s + r[1]); 28629 } 28630 return i3; 28631 }, 28632 readableArea: function(e2, i3, o2) { 28633 var n, a, o2 = L.Util.extend({}, t2, o2); 28634 return i3 ? (a = ["ha", "m"], type = typeof i3, "string" === type ? a = [i3] : "boolean" !== type && (a = i3), n = e2 >= 1e6 && -1 !== a.indexOf("km") ? L.GeometryUtil.formattedNumber(1e-6 * e2, o2.km) + " km\xB2" : e2 >= 1e4 && -1 !== a.indexOf("ha") ? L.GeometryUtil.formattedNumber(1e-4 * e2, o2.ha) + " ha" : L.GeometryUtil.formattedNumber(e2, o2.m) + " m\xB2") : (e2 /= 0.836127, n = e2 >= 3097600 ? L.GeometryUtil.formattedNumber(e2 / 3097600, o2.mi) + " mi\xB2" : e2 >= 4840 ? L.GeometryUtil.formattedNumber(e2 / 4840, o2.ac) + " acres" : L.GeometryUtil.formattedNumber(e2, o2.yd) + " yd\xB2"), n; 28635 }, 28636 readableDistance: function(e2, i3, o2, n, a) { 28637 var s, a = L.Util.extend({}, t2, a); 28638 switch (i3 ? "string" == typeof i3 ? i3 : "metric" : o2 ? "feet" : n ? "nauticalMile" : "yards") { 28639 case "metric": 28640 s = e2 > 1e3 ? L.GeometryUtil.formattedNumber(e2 / 1e3, a.km) + " km" : L.GeometryUtil.formattedNumber(e2, a.m) + " m"; 28641 break; 28642 case "feet": 28643 e2 *= 3.28083, s = L.GeometryUtil.formattedNumber(e2, a.ft) + " ft"; 28644 break; 28645 case "nauticalMile": 28646 e2 *= 0.53996, s = L.GeometryUtil.formattedNumber(e2 / 1e3, a.nm) + " nm"; 28647 break; 28648 case "yards": 28649 default: 28650 e2 *= 1.09361, s = e2 > 1760 ? L.GeometryUtil.formattedNumber(e2 / 1760, a.mi) + " miles" : L.GeometryUtil.formattedNumber(e2, a.yd) + " yd"; 28651 } 28652 return s; 28653 } 28654 }); 28655 }(), L.Util.extend(L.LineUtil, { 28656 segmentsIntersect: function(t2, e2, i3, o2) { 28657 return this._checkCounterclockwise(t2, i3, o2) !== this._checkCounterclockwise(e2, i3, o2) && this._checkCounterclockwise(t2, e2, i3) !== this._checkCounterclockwise(t2, e2, o2); 28658 }, 28659 _checkCounterclockwise: function(t2, e2, i3) { 28660 return (i3.y - t2.y) * (e2.x - t2.x) > (e2.y - t2.y) * (i3.x - t2.x); 28661 } 28662 }), L.Polyline.include({ 28663 intersects: function() { 28664 var t2, e2, i3, o2 = this._getProjectedPoints(), n = o2 ? o2.length : 0; 28665 if (this._tooFewPointsForIntersection()) 28666 return false;
vendor: 16,384 bytes, lines 28667-28972
28667 for (t2 = n - 1; t2 >= 3; t2--) 28668 if (e2 = o2[t2 - 1], i3 = o2[t2], this._lineSegmentsIntersectsRange(e2, i3, t2 - 2)) 28669 return true; 28670 return false; 28671 }, 28672 newLatLngIntersects: function(t2, e2) { 28673 return !!this._map && this.newPointIntersects(this._map.latLngToLayerPoint(t2), e2); 28674 }, 28675 newPointIntersects: function(t2, e2) { 28676 var i3 = this._getProjectedPoints(), o2 = i3 ? i3.length : 0, n = i3 ? i3[o2 - 1] : null, a = o2 - 2; 28677 return !this._tooFewPointsForIntersection(1) && this._lineSegmentsIntersectsRange(n, t2, a, e2 ? 1 : 0); 28678 }, 28679 _tooFewPointsForIntersection: function(t2) { 28680 var e2 = this._getProjectedPoints(), i3 = e2 ? e2.length : 0; 28681 return i3 += t2 || 0, !e2 || i3 <= 3; 28682 }, 28683 _lineSegmentsIntersectsRange: function(t2, e2, i3, o2) { 28684 var n, a, s = this._getProjectedPoints(); 28685 o2 = o2 || 0; 28686 for (var r = i3; r > o2; r--) 28687 if (n = s[r - 1], a = s[r], L.LineUtil.segmentsIntersect(t2, e2, n, a)) 28688 return true; 28689 return false; 28690 }, 28691 _getProjectedPoints: function() { 28692 if (!this._defaultShape) 28693 return this._originalPoints; 28694 for (var t2 = [], e2 = this._defaultShape(), i3 = 0; i3 < e2.length; i3++) 28695 t2.push(this._map.latLngToLayerPoint(e2[i3])); 28696 return t2; 28697 } 28698 }), L.Polygon.include({ 28699 intersects: function() { 28700 var t2, e2, i3, o2, n = this._getProjectedPoints(); 28701 return !this._tooFewPointsForIntersection() && (!!L.Polyline.prototype.intersects.call(this) || (t2 = n.length, e2 = n[0], i3 = n[t2 - 1], o2 = t2 - 2, this._lineSegmentsIntersectsRange(i3, e2, o2, 1))); 28702 } 28703 }), L.Control.Draw = L.Control.extend({ 28704 options: { 28705 position: "topleft", 28706 draw: {}, 28707 edit: false 28708 }, 28709 initialize: function(t2) { 28710 if (L.version < "0.7") 28711 throw new Error("Leaflet.draw 0.2.3+ requires Leaflet 0.7.0+. Download latest from https://github.com/Leaflet/Leaflet/"); 28712 L.Control.prototype.initialize.call(this, t2); 28713 var e2; 28714 this._toolbars = {}, L.DrawToolbar && this.options.draw && (e2 = new L.DrawToolbar(this.options.draw), this._toolbars[L.DrawToolbar.TYPE] = e2, this._toolbars[L.DrawToolbar.TYPE].on("enable", this._toolbarEnabled, this)), L.EditToolbar && this.options.edit && (e2 = new L.EditToolbar(this.options.edit), this._toolbars[L.EditToolbar.TYPE] = e2, this._toolbars[L.EditToolbar.TYPE].on("enable", this._toolbarEnabled, this)), L.toolbar = this; 28715 }, 28716 onAdd: function(t2) { 28717 var e2, i3 = L.DomUtil.create("div", "leaflet-draw"), o2 = false; 28718 for (var n in this._toolbars) 28719 this._toolbars.hasOwnProperty(n) && (e2 = this._toolbars[n].addToolbar(t2)) && (o2 || (L.DomUtil.hasClass(e2, "leaflet-draw-toolbar-top") || L.DomUtil.addClass(e2.childNodes[0], "leaflet-draw-toolbar-top"), o2 = true), i3.appendChild(e2)); 28720 return i3; 28721 }, 28722 onRemove: function() { 28723 for (var t2 in this._toolbars) 28724 this._toolbars.hasOwnProperty(t2) && this._toolbars[t2].removeToolbar(); 28725 }, 28726 setDrawingOptions: function(t2) { 28727 for (var e2 in this._toolbars) 28728 this._toolbars[e2] instanceof L.DrawToolbar && this._toolbars[e2].setOptions(t2); 28729 }, 28730 _toolbarEnabled: function(t2) { 28731 var e2 = t2.target; 28732 for (var i3 in this._toolbars) 28733 this._toolbars[i3] !== e2 && this._toolbars[i3].disable(); 28734 } 28735 }), L.Map.mergeOptions({ 28736 drawControlTooltips: true, 28737 drawControl: false 28738 }), L.Map.addInitHook(function() { 28739 this.options.drawControl && (this.drawControl = new L.Control.Draw(), this.addControl(this.drawControl)); 28740 }), L.Toolbar = L.Class.extend({ 28741 initialize: function(t2) { 28742 L.setOptions(this, t2); 28743 this._modes = {}; 28744 this._actionButtons = []; 28745 this._activeMode = null; 28746 var version = L.version.split("."); 28747 if (parseInt(version[0], 10) === 1 && parseInt(version[1], 10) >= 2) { 28748 L.Toolbar.include(L.Evented.prototype); 28749 } else { 28750 L.Toolbar.include(L.Mixin.Events); 28751 } 28752 }, 28753 enabled: function() { 28754 return this._activeMode !== null; 28755 }, 28756 disable: function() { 28757 this.enabled() && this._activeMode.handler.disable(); 28758 }, 28759 addToolbar: function(t2) { 28760 var e2, i3 = L.DomUtil.create("div", "leaflet-draw-section"), o2 = 0, n = this._toolbarClass || "", a = this.getModeHandlers(t2); 28761 for (this._toolbarContainer = L.DomUtil.create("div", "leaflet-draw-toolbar leaflet-bar"), this._map = t2, e2 = 0; e2 < a.length; e2++) 28762 a[e2].enabled && this._initModeHandler(a[e2].handler, this._toolbarContainer, o2++, n, a[e2].title); 28763 if (o2) 28764 return this._lastButtonIndex = --o2, this._actionsContainer = L.DomUtil.create("ul", "leaflet-draw-actions"), i3.appendChild(this._toolbarContainer), i3.appendChild(this._actionsContainer), i3; 28765 }, 28766 removeToolbar: function() { 28767 for (var t2 in this._modes) 28768 this._modes.hasOwnProperty(t2) && (this._disposeButton(this._modes[t2].button, this._modes[t2].handler.enable, this._modes[t2].handler), this._modes[t2].handler.disable(), this._modes[t2].handler.off("enabled", this._handlerActivated, this).off("disabled", this._handlerDeactivated, this)); 28769 this._modes = {}; 28770 for (var e2 = 0, i3 = this._actionButtons.length; e2 < i3; e2++) 28771 this._disposeButton(this._actionButtons[e2].button, this._actionButtons[e2].callback, this); 28772 this._actionButtons = [], this._actionsContainer = null; 28773 }, 28774 _initModeHandler: function(t2, e2, i3, o2, n) { 28775 var a = t2.type; 28776 this._modes[a] = {}, this._modes[a].handler = t2, this._modes[a].button = this._createButton({ 28777 type: a, 28778 title: n, 28779 className: o2 + "-" + a, 28780 container: e2, 28781 callback: this._modes[a].handler.enable, 28782 context: this._modes[a].handler 28783 }), this._modes[a].buttonIndex = i3, this._modes[a].handler.on("enabled", this._handlerActivated, this).on("disabled", this._handlerDeactivated, this); 28784 }, 28785 _detectIOS: function() { 28786 return /iPad|iPhone|iPod/.test(navigator.userAgent) && !t.MSStream; 28787 }, 28788 _createButton: function(t2) { 28789 var e2 = L.DomUtil.create("a", t2.className || "", t2.container), i3 = L.DomUtil.create("span", "sr-only", t2.container); 28790 e2.href = "#", e2.appendChild(i3), t2.title && (e2.title = t2.title, i3.innerHTML = t2.title), t2.text && (e2.innerHTML = t2.text, i3.innerHTML = t2.text); 28791 var o2 = this._detectIOS() ? "touchstart" : "click"; 28792 return L.DomEvent.on(e2, "click", L.DomEvent.stopPropagation).on(e2, "mousedown", L.DomEvent.stopPropagation).on(e2, "dblclick", L.DomEvent.stopPropagation).on(e2, "touchstart", L.DomEvent.stopPropagation).on(e2, "click", L.DomEvent.preventDefault).on(e2, o2, t2.callback, t2.context), e2; 28793 }, 28794 _disposeButton: function(t2, e2) { 28795 var i3 = this._detectIOS() ? "touchstart" : "click"; 28796 L.DomEvent.off(t2, "click", L.DomEvent.stopPropagation).off(t2, "mousedown", L.DomEvent.stopPropagation).off(t2, "dblclick", L.DomEvent.stopPropagation).off(t2, "touchstart", L.DomEvent.stopPropagation).off(t2, "click", L.DomEvent.preventDefault).off(t2, i3, e2); 28797 }, 28798 _handlerActivated: function(t2) { 28799 this.disable(), this._activeMode = this._modes[t2.handler], L.DomUtil.addClass(this._activeMode.button, "leaflet-draw-toolbar-button-enabled"), this._showActionsToolbar(), this.fire("enable"); 28800 }, 28801 _handlerDeactivated: function() { 28802 this._hideActionsToolbar(), L.DomUtil.removeClass(this._activeMode.button, "leaflet-draw-toolbar-button-enabled"), this._activeMode = null, this.fire("disable"); 28803 }, 28804 _createActions: function(t2) { 28805 var e2, i3, o2, n, a = this._actionsContainer, s = this.getActions(t2), r = s.length; 28806 for (i3 = 0, o2 = this._actionButtons.length; i3 < o2; i3++) 28807 this._disposeButton(this._actionButtons[i3].button, this._actionButtons[i3].callback); 28808 for (this._actionButtons = []; a.firstChild; ) 28809 a.removeChild(a.firstChild); 28810 for (var l = 0; l < r; l++) 28811 "enabled" in s[l] && !s[l].enabled || (e2 = L.DomUtil.create("li", "", a), n = this._createButton({ 28812 title: s[l].title, 28813 text: s[l].text, 28814 container: e2, 28815 callback: s[l].callback, 28816 context: s[l].context 28817 }), this._actionButtons.push({ 28818 button: n, 28819 callback: s[l].callback 28820 })); 28821 }, 28822 _showActionsToolbar: function() { 28823 var t2 = this._activeMode.buttonIndex, e2 = this._lastButtonIndex, i3 = this._activeMode.button.offsetTop - 1; 28824 this._createActions(this._activeMode.handler), this._actionsContainer.style.top = i3 + "px", 0 === t2 && (L.DomUtil.addClass(this._toolbarContainer, "leaflet-draw-toolbar-notop"), L.DomUtil.addClass(this._actionsContainer, "leaflet-draw-actions-top")), t2 === e2 && (L.DomUtil.addClass(this._toolbarContainer, "leaflet-draw-toolbar-nobottom"), L.DomUtil.addClass(this._actionsContainer, "leaflet-draw-actions-bottom")), this._actionsContainer.style.display = "block"; 28825 }, 28826 _hideActionsToolbar: function() { 28827 this._actionsContainer.style.display = "none", L.DomUtil.removeClass(this._toolbarContainer, "leaflet-draw-toolbar-notop"), L.DomUtil.removeClass(this._toolbarContainer, "leaflet-draw-toolbar-nobottom"), L.DomUtil.removeClass(this._actionsContainer, "leaflet-draw-actions-top"), L.DomUtil.removeClass(this._actionsContainer, "leaflet-draw-actions-bottom"); 28828 } 28829 }), L.Draw = L.Draw || {}, L.Draw.Tooltip = L.Class.extend({ 28830 initialize: function(t2) { 28831 this._map = t2, this._popupPane = t2._panes.popupPane, this._visible = false, this._container = t2.options.drawControlTooltips ? L.DomUtil.create("div", "leaflet-draw-tooltip", this._popupPane) : null, this._singleLineLabel = false, this._map.on("mouseout", this._onMouseOut, this); 28832 }, 28833 dispose: function() { 28834 this._map.off("mouseout", this._onMouseOut, this), this._container && (this._popupPane.removeChild(this._container), this._container = null); 28835 }, 28836 updateContent: function(t2) { 28837 return this._container ? (t2.subtext = t2.subtext || "", 0 !== t2.subtext.length || this._singleLineLabel ? t2.subtext.length > 0 && this._singleLineLabel && (L.DomUtil.removeClass(this._container, "leaflet-draw-tooltip-single"), this._singleLineLabel = false) : (L.DomUtil.addClass(this._container, "leaflet-draw-tooltip-single"), this._singleLineLabel = true), this._container.innerHTML = (t2.subtext.length > 0 ? '<span class="leaflet-draw-tooltip-subtext">' + t2.subtext + "</span><br />" : "") + "<span>" + t2.text + "</span>", t2.text || t2.subtext ? (this._visible = true, this._container.style.visibility = "inherit") : (this._visible = false, this._container.style.visibility = "hidden"), this) : this; 28838 }, 28839 updatePosition: function(t2) { 28840 var e2 = this._map.latLngToLayerPoint(t2), i3 = this._container; 28841 return this._container && (this._visible && (i3.style.visibility = "inherit"), L.DomUtil.setPosition(i3, e2)), this; 28842 }, 28843 showAsError: function() { 28844 return this._container && L.DomUtil.addClass(this._container, "leaflet-error-draw-tooltip"), this; 28845 }, 28846 removeError: function() { 28847 return this._container && L.DomUtil.removeClass(this._container, "leaflet-error-draw-tooltip"), this; 28848 }, 28849 _onMouseOut: function() { 28850 this._container && (this._container.style.visibility = "hidden"); 28851 } 28852 }), L.DrawToolbar = L.Toolbar.extend({ 28853 statics: { 28854 TYPE: "draw" 28855 }, 28856 options: { 28857 polyline: {}, 28858 polygon: {}, 28859 rectangle: {}, 28860 circle: {}, 28861 marker: {}, 28862 circlemarker: {} 28863 }, 28864 initialize: function(t2) { 28865 for (var e2 in this.options) 28866 this.options.hasOwnProperty(e2) && t2[e2] && (t2[e2] = L.extend({}, this.options[e2], t2[e2])); 28867 this._toolbarClass = "leaflet-draw-draw", L.Toolbar.prototype.initialize.call(this, t2); 28868 }, 28869 getModeHandlers: function(t2) { 28870 return [{ 28871 enabled: this.options.polyline, 28872 handler: new L.Draw.Polyline(t2, this.options.polyline), 28873 title: L.drawLocal.draw.toolbar.buttons.polyline 28874 }, { 28875 enabled: this.options.polygon, 28876 handler: new L.Draw.Polygon(t2, this.options.polygon), 28877 title: L.drawLocal.draw.toolbar.buttons.polygon 28878 }, { 28879 enabled: this.options.rectangle, 28880 handler: new L.Draw.Rectangle(t2, this.options.rectangle), 28881 title: L.drawLocal.draw.toolbar.buttons.rectangle 28882 }, { 28883 enabled: this.options.circle, 28884 handler: new L.Draw.Circle(t2, this.options.circle), 28885 title: L.drawLocal.draw.toolbar.buttons.circle 28886 }, { 28887 enabled: this.options.marker, 28888 handler: new L.Draw.Marker(t2, this.options.marker), 28889 title: L.drawLocal.draw.toolbar.buttons.marker 28890 }, { 28891 enabled: this.options.circlemarker, 28892 handler: new L.Draw.CircleMarker(t2, this.options.circlemarker), 28893 title: L.drawLocal.draw.toolbar.buttons.circlemarker 28894 }]; 28895 }, 28896 getActions: function(t2) { 28897 return [{ 28898 enabled: t2.completeShape, 28899 title: L.drawLocal.draw.toolbar.finish.title, 28900 text: L.drawLocal.draw.toolbar.finish.text, 28901 callback: t2.completeShape, 28902 context: t2 28903 }, { 28904 enabled: t2.deleteLastVertex, 28905 title: L.drawLocal.draw.toolbar.undo.title, 28906 text: L.drawLocal.draw.toolbar.undo.text, 28907 callback: t2.deleteLastVertex, 28908 context: t2 28909 }, { 28910 title: L.drawLocal.draw.toolbar.actions.title, 28911 text: L.drawLocal.draw.toolbar.actions.text, 28912 callback: this.disable, 28913 context: this 28914 }]; 28915 }, 28916 setOptions: function(t2) { 28917 L.setOptions(this, t2); 28918 for (var e2 in this._modes) 28919 this._modes.hasOwnProperty(e2) && t2.hasOwnProperty(e2) && this._modes[e2].handler.setOptions(t2[e2]); 28920 } 28921 }), L.EditToolbar = L.Toolbar.extend({ 28922 statics: { 28923 TYPE: "edit" 28924 }, 28925 options: { 28926 edit: { 28927 selectedPathOptions: { 28928 dashArray: "10, 10", 28929 fill: true, 28930 fillColor: "#fe57a1", 28931 fillOpacity: 0.1, 28932 maintainColor: false 28933 } 28934 }, 28935 remove: {}, 28936 poly: null, 28937 featureGroup: null 28938 }, 28939 initialize: function(t2) { 28940 t2.edit && (void 0 === t2.edit.selectedPathOptions && (t2.edit.selectedPathOptions = this.options.edit.selectedPathOptions), t2.edit.selectedPathOptions = L.extend({}, this.options.edit.selectedPathOptions, t2.edit.selectedPathOptions)), t2.remove && (t2.remove = L.extend({}, this.options.remove, t2.remove)), t2.poly && (t2.poly = L.extend({}, this.options.poly, t2.poly)), this._toolbarClass = "leaflet-draw-edit", L.Toolbar.prototype.initialize.call(this, t2), this._selectedFeatureCount = 0; 28941 }, 28942 getModeHandlers: function(t2) { 28943 var e2 = this.options.featureGroup; 28944 return [{ 28945 enabled: this.options.edit, 28946 handler: new L.EditToolbar.Edit(t2, { 28947 featureGroup: e2, 28948 selectedPathOptions: this.options.edit.selectedPathOptions, 28949 poly: this.options.poly 28950 }), 28951 title: L.drawLocal.edit.toolbar.buttons.edit 28952 }, { 28953 enabled: this.options.remove, 28954 handler: new L.EditToolbar.Delete(t2, { 28955 featureGroup: e2 28956 }), 28957 title: L.drawLocal.edit.toolbar.buttons.remove 28958 }]; 28959 }, 28960 getActions: function(t2) { 28961 var e2 = [{ 28962 title: L.drawLocal.edit.toolbar.actions.save.title, 28963 text: L.drawLocal.edit.toolbar.actions.save.text, 28964 callback: this._save, 28965 context: this 28966 }, { 28967 title: L.drawLocal.edit.toolbar.actions.cancel.title, 28968 text: L.drawLocal.edit.toolbar.actions.cancel.text, 28969 callback: this.disable, 28970 context: this 28971 }]; 28972
28972 return t2.removeAllLayers && e2.push({ 28973 title: L.drawLocal.edit.toolbar.actions.clearAll.title, 28974 text: L.drawLocal.edit.toolbar.actions.clearAll.text, 28975 callback: this._clearAllLayers, 28976 context: this 28977 }), e2; 28978 }, 28979 addToolbar: function(t2) { 28980 var e2 = L.Toolbar.prototype.addToolbar.call(this, t2); 28981 return this._checkDisabled(), this.options.featureGroup.on("layeradd layerremove", this._checkDisabled, this), e2; 28982 }, 28983 removeToolbar: function() { 28984 this.options.featureGroup.off("layeradd layerremove", this._checkDisabled, this), L.Toolbar.prototype.removeToolbar.call(this); 28985 }, 28986 disable: function() { 28987 this.enabled() && (this._activeMode.handler.revertLayers(), L.Toolbar.prototype.disable.call(this)); 28988 }, 28989 _save: function() { 28990 this._activeMode.handler.save(), this._activeMode && this._activeMode.handler.disable(); 28991 }, 28992 _clearAllLayers: function() { 28993 this._activeMode.handler.removeAllLayers(), this._activeMode && this._activeMode.handler.disable(); 28994 }, 28995 _checkDisabled: function() { 28996 var t2, e2 = this.options.featureGroup, i3 = 0 !== e2.getLayers().length; 28997 this.options.edit && (t2 = this._modes[L.EditToolbar.Edit.TYPE].button, i3 ? L.DomUtil.removeClass(t2, "leaflet-disabled") : L.DomUtil.addClass(t2, "leaflet-disabled"), t2.setAttribute("title", i3 ? L.drawLocal.edit.toolbar.buttons.edit : L.drawLocal.edit.toolbar.buttons.editDisabled)), this.options.remove && (t2 = this._modes[L.EditToolbar.Delete.TYPE].button, i3 ? L.DomUtil.removeClass(t2, "leaflet-disabled") : L.DomUtil.addClass(t2, "leaflet-disabled"), t2.setAttribute("title", i3 ? L.drawLocal.edit.toolbar.buttons.remove : L.drawLocal.edit.toolbar.buttons.removeDisabled)); 28998 } 28999 }), L.EditToolbar.Edit = L.Handler.extend({ 29000 statics: { 29001 TYPE: "edit" 29002 }, 29003 initialize: function(t2, e2) { 29004 if (L.Handler.prototype.initialize.call(this, t2), L.setOptions(this, e2), this._featureGroup = e2.featureGroup, !(this._featureGroup instanceof L.FeatureGroup)) 29005 throw new Error("options.featureGroup must be a L.FeatureGroup"); 29006 this._uneditedLayerProps = {}, this.type = L.EditToolbar.Edit.TYPE; 29007 var version = L.version.split("."); 29008 if (parseInt(version[0], 10) === 1 && parseInt(version[1], 10) >= 2) { 29009 L.EditToolbar.Edit.include(L.Evented.prototype); 29010 } else { 29011 L.EditToolbar.Edit.include(L.Mixin.Events); 29012 } 29013 }, 29014 enable: function() { 29015 !this._enabled && this._hasAvailableLayers() && (this.fire("enabled", { 29016 handler: this.type 29017 }), this._map.fire(L.Draw.Event.EDITSTART, { 29018 handler: this.type 29019 }), L.Handler.prototype.enable.call(this), this._featureGroup.on("layeradd", this._enableLayerEdit, this).on("layerremove", this._disableLayerEdit, this)); 29020 }, 29021 disable: function() { 29022 this._enabled && (this._featureGroup.off("layeradd", this._enableLayerEdit, this).off("layerremove", this._disableLayerEdit, this), L.Handler.prototype.disable.call(this), this._map.fire(L.Draw.Event.EDITSTOP, { 29023 handler: this.type 29024 }), this.fire("disabled", { 29025 handler: this.type 29026 })); 29027 }, 29028 addHooks: function() { 29029 var t2 = this._map; 29030 t2 && (t2.getContainer().focus(), this._featureGroup.eachLayer(this._enableLayerEdit, this), this._tooltip = new L.Draw.Tooltip(this._map), this._tooltip.updateContent({ 29031 text: L.drawLocal.edit.handlers.edit.tooltip.text, 29032 subtext: L.drawLocal.edit.handlers.edit.tooltip.subtext 29033 }), t2._editTooltip = this._tooltip, this._updateTooltip(), this._map.on("mousemove", this._onMouseMove, this).on("touchmove", this._onMouseMove, this).on("MSPointerMove", this._onMouseMove, this).on(L.Draw.Event.EDITVERTEX, this._updateTooltip, this)); 29034 }, 29035 removeHooks: function() { 29036 this._map && (this._featureGroup.eachLayer(this._disableLayerEdit, this), this._uneditedLayerProps = {}, this._tooltip.dispose(), this._tooltip = null, this._map.off("mousemove", this._onMouseMove, this).off("touchmove", this._onMouseMove, this).off("MSPointerMove", this._onMouseMove, this).off(L.Draw.Event.EDITVERTEX, this._updateTooltip, this)); 29037 }, 29038 revertLayers: function() { 29039 this._featureGroup.eachLayer(function(t2) { 29040 this._revertLayer(t2); 29041 }, this); 29042 }, 29043 save: function() { 29044 var t2 = new L.LayerGroup(); 29045 this._featureGroup.eachLayer(function(e2) { 29046 e2.edited && (t2.addLayer(e2), e2.edited = false); 29047 }), this._map.fire(L.Draw.Event.EDITED, { 29048 layers: t2 29049 }); 29050 }, 29051 _backupLayer: function(t2) { 29052 var e2 = L.Util.stamp(t2); 29053 this._uneditedLayerProps[e2] || (t2 instanceof L.Polyline || t2 instanceof L.Polygon || t2 instanceof L.Rectangle ? this._uneditedLayerProps[e2] = { 29054 latlngs: L.LatLngUtil.cloneLatLngs(t2.getLatLngs()) 29055 } : t2 instanceof L.Circle ? this._uneditedLayerProps[e2] = { 29056 latlng: L.LatLngUtil.cloneLatLng(t2.getLatLng()), 29057 radius: t2.getRadius() 29058 } : (t2 instanceof L.Marker || t2 instanceof L.CircleMarker) && (this._uneditedLayerProps[e2] = { 29059 latlng: L.LatLngUtil.cloneLatLng(t2.getLatLng()) 29060 })); 29061 }, 29062 _getTooltipText: function() { 29063 return { 29064 text: L.drawLocal.edit.handlers.edit.tooltip.text, 29065 subtext: L.drawLocal.edit.handlers.edit.tooltip.subtext 29066 }; 29067 }, 29068 _updateTooltip: function() { 29069 this._tooltip.updateContent(this._getTooltipText()); 29070 }, 29071 _revertLayer: function(t2) { 29072 var e2 = L.Util.stamp(t2); 29073 t2.edited = false, this._uneditedLayerProps.hasOwnProperty(e2) && (t2 instanceof L.Polyline || t2 instanceof L.Polygon || t2 instanceof L.Rectangle ? t2.setLatLngs(this._uneditedLayerProps[e2].latlngs) : t2 instanceof L.Circle ? (t2.setLatLng(this._uneditedLayerProps[e2].latlng), t2.setRadius(this._uneditedLayerProps[e2].radius)) : (t2 instanceof L.Marker || t2 instanceof L.CircleMarker) && t2.setLatLng(this._uneditedLayerProps[e2].latlng), t2.fire("revert-edited", { 29074 layer: t2 29075 })); 29076 }, 29077 _enableLayerEdit: function(t2) { 29078 var e2, i3, o2 = t2.layer || t2.target || t2; 29079 this._backupLayer(o2), this.options.poly && (i3 = L.Util.extend({}, this.options.poly), o2.options.poly = i3), this.options.selectedPathOptions && (e2 = L.Util.extend({}, this.options.selectedPathOptions), e2.maintainColor && (e2.color = o2.options.color, e2.fillColor = o2.options.fillColor), o2.options.original = L.extend({}, o2.options), o2.options.editing = e2), o2 instanceof L.Marker ? (o2.editing && o2.editing.enable(), o2.dragging.enable(), o2.on("dragend", this._onMarkerDragEnd).on("touchmove", this._onTouchMove, this).on("MSPointerMove", this._onTouchMove, this).on("touchend", this._onMarkerDragEnd, this).on("MSPointerUp", this._onMarkerDragEnd, this)) : o2.editing.enable(); 29080 }, 29081 _disableLayerEdit: function(t2) { 29082 var e2 = t2.layer || t2.target || t2; 29083 e2.edited = false, e2.editing && e2.editing.disable(), delete e2.options.editing, delete e2.options.original, this._selectedPathOptions && (e2 instanceof L.Marker ? this._toggleMarkerHighlight(e2) : (e2.setStyle(e2.options.previousOptions), delete e2.options.previousOptions)), e2 instanceof L.Marker ? (e2.dragging.disable(), e2.off("dragend", this._onMarkerDragEnd, this).off("touchmove", this._onTouchMove, this).off("MSPointerMove", this._onTouchMove, this).off("touchend", this._onMarkerDragEnd, this).off("MSPointerUp", this._onMarkerDragEnd, this)) : e2.editing.disable(); 29084 }, 29085 _onMouseMove: function(t2) { 29086 this._tooltip.updatePosition(t2.latlng); 29087 }, 29088 _onMarkerDragEnd: function(t2) { 29089 var e2 = t2.target; 29090 e2.edited = true, this._map.fire(L.Draw.Event.EDITMOVE, { 29091 layer: e2 29092 }); 29093 }, 29094 _onTouchMove: function(t2) { 29095 var e2 = t2.originalEvent.changedTouches[0], i3 = this._map.mouseEventToLayerPoint(e2), o2 = this._map.layerPointToLatLng(i3); 29096 t2.target.setLatLng(o2); 29097 }, 29098 _hasAvailableLayers: function() { 29099 return 0 !== this._featureGroup.getLayers().length; 29100 } 29101 }), L.EditToolbar.Delete = L.Handler.extend({ 29102 statics: { 29103 TYPE: "remove" 29104 }, 29105 initialize: function(t2, e2) { 29106 if (L.Handler.prototype.initialize.call(this, t2), L.Util.setOptions(this, e2), this._deletableLayers = this.options.featureGroup, !(this._deletableLayers instanceof L.FeatureGroup)) 29107 throw new Error("options.featureGroup must be a L.FeatureGroup"); 29108 this.type = L.EditToolbar.Delete.TYPE; 29109 var version = L.version.split("."); 29110 if (parseInt(version[0], 10) === 1 && parseInt(version[1], 10) >= 2) { 29111 L.EditToolbar.Delete.include(L.Evented.prototype); 29112 } else { 29113 L.EditToolbar.Delete.include(L.Mixin.Events); 29114 } 29115 }, 29116 enable: function() { 29117 !this._enabled && this._hasAvailableLayers() && (this.fire("enabled", { 29118 handler: this.type 29119 }), this._map.fire(L.Draw.Event.DELETESTART, { 29120 handler: this.type 29121 }), L.Handler.prototype.enable.call(this), this._deletableLayers.on("layeradd", this._enableLayerDelete, this).on("layerremove", this._disableLayerDelete, this)); 29122 }, 29123 disable: function() { 29124 this._enabled && (this._deletableLayers.off("layeradd", this._enableLayerDelete, this).off("layerremove", this._disableLayerDelete, this), L.Handler.prototype.disable.call(this), this._map.fire(L.Draw.Event.DELETESTOP, { 29125 handler: this.type 29126 }), this.fire("disabled", { 29127 handler: this.type 29128 })); 29129 }, 29130 addHooks: function() { 29131 var t2 = this._map; 29132 t2 && (t2.getContainer().focus(), this._deletableLayers.eachLayer(this._enableLayerDelete, this), this._deletedLayers = new L.LayerGroup(), this._tooltip = new L.Draw.Tooltip(this._map), this._tooltip.updateContent({ 29133 text: L.drawLocal.edit.handlers.remove.tooltip.text 29134 }), this._map.on("mousemove", this._onMouseMove, this)); 29135 }, 29136 removeHooks: function() { 29137 this._map && (this._deletableLayers.eachLayer(this._disableLayerDelete, this), this._deletedLayers = null, this._tooltip.dispose(), this._tooltip = null, this._map.off("mousemove", this._onMouseMove, this)); 29138 }, 29139 revertLayers: function() { 29140 this._deletedLayers.eachLayer(function(t2) { 29141 this._deletableLayers.addLayer(t2), t2.fire("revert-deleted", { 29142 layer: t2 29143 }); 29144 }, this); 29145 }, 29146 save: function() { 29147 this._map.fire(L.Draw.Event.DELETED, { 29148 layers: this._deletedLayers 29149 }); 29150 }, 29151 removeAllLayers: function() { 29152 this._deletableLayers.eachLayer(function(t2) { 29153 this._removeLayer({ 29154 layer: t2 29155 }); 29156 }, this), this.save(); 29157 }, 29158 _enableLayerDelete: function(t2) { 29159 (t2.layer || t2.target || t2).on("click", this._removeLayer, this); 29160 }, 29161 _disableLayerDelete: function(t2) { 29162 var e2 = t2.layer || t2.target || t2; 29163 e2.off("click", this._removeLayer, this), this._deletedLayers.removeLayer(e2); 29164 }, 29165 _removeLayer: function(t2) { 29166 var e2 = t2.layer || t2.target || t2; 29167 this._deletableLayers.removeLayer(e2), this._deletedLayers.addLayer(e2), e2.fire("deleted"); 29168 }, 29169 _onMouseMove: function(t2) { 29170 this._tooltip.updatePosition(t2.latlng); 29171 }, 29172 _hasAvailableLayers: function() { 29173 return 0 !== this._deletableLayers.getLayers().length; 29174 } 29175 }); 29176 }(window, document); 29177 29178
29178// frappe/public/js/libs.bundle.js 29179 var import_L_Control_Locate = __toESM(require_L_Control_Locate()); 29180 var import_sortablejs = __toESM(require_Sortable_min()); 29181 window.SetVueGlobals = (app) => { 29182 app.config.globalProperties.__ = window.__; 29183 app.config.globalProperties.frappe = window.frappe; 29184 }; 29185 window.Sortable = import_sortablejs.default; 29186 29187
29187// frappe/public/js/frappe/class.js 29188 (function(global2) { 29189 "use strict"; 29190 var fnTest = /xyz/.test(function() { 29191 xyz; 29192 }) ? /\b_super\b/ : /.*/; 29193 function Class() { 29194 } 29195 Class.extend = function(props) { 29196 var _super = this.prototype; 29197 var proto = Object.create(_super); 29198 for (var name2 in props) { 29199 proto[name2] = typeof props[name2] === "function" && typeof _super[name2] == "function" && fnTest.test(props[name2]) ? function(name3, fn) { 29200 return function() { 29201 var tmp = this._super; 29202 this._super = _super[name3]; 29203 var ret = fn.apply(this, arguments); 29204 this._super = tmp; 29205 return ret; 29206 }; 29207 }(name2, props[name2]) : props[name2]; 29208 } 29209 var newClass = typeof proto.init === "function" ? proto.hasOwnProperty("init") ? proto.init : function SubClass() { 29210 _super.init.apply(this, arguments); 29211 } : function EmptyClass() { 29212 }; 29213 newClass.prototype = proto; 29214 proto.constructor = newClass; 29215 newClass.extend = Class.extend; 29216 return newClass; 29217 }; 29218 global2.Class = Class; 29219 })(window); 29220 29221
29221// frappe/public/js/frappe/polyfill.js 29222 if (!String.prototype.includes) { 29223 String.prototype.includes = function(search, start) { 29224 "use strict"; 29225 if (typeof start !== "number") { 29226 start = 0; 29227 } 29228 if (start + search.length > this.length) { 29229 return false; 29230 } else { 29231 return this.indexOf(search, start) !== -1; 29232 } 29233 }; 29234 } 29235 if (!Array.prototype.includes) { 29236 Object.defineProperty(Array.prototype, "includes", { 29237 value: function(searchElement, fromIndex) { 29238 if (this == null) { 29239 throw new TypeError('"this" is null or not defined'); 29240 } 29241 var o = Object(this); 29242 var len = o.length >>> 0; 29243 if (len === 0) { 29244 return false; 29245 } 29246 var n = fromIndex | 0; 29247 var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); 29248 while (k < len) { 29249 if (o[k] === searchElement) { 29250 return true; 29251 } 29252 k++; 29253 } 29254 return false; 29255 } 29256 }); 29257 } 29258 if (typeof String.prototype.trimLeft !== "function") { 29259 String.prototype.trimLeft = function() { 29260 return this.replace(/^\s+/, ""); 29261 }; 29262 } 29263 if (typeof String.prototype.trimRight !== "function") { 29264 String.prototype.trimRight = function() { 29265 return this.replace(/\s+$/, ""); 29266 }; 29267 } 29268 if (typeof Object.assign != "function") { 29269 Object.defineProperty(Object, "assign", { 29270 value: function assign(target) { 29271 "use strict"; 29272 if (target == null) { 29273 throw new TypeError("Cannot convert undefined or null to object"); 29274 } 29275 var to = Object(target); 29276 for (var index = 1; index < arguments.length; index++) { 29277 var nextSource = arguments[index]; 29278 if (nextSource != null) { 29279 for (var nextKey in nextSource) { 29280 if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) { 29281 to[nextKey] = nextSource[nextKey]; 29282 } 29283 } 29284 } 29285 } 29286 return to; 29287 }, 29288 writable: true, 29289 configurable: true 29290 }); 29291 } 29292 29293
29293// frappe/public/js/frappe/provide.js 29294 if (!window.frappe) 29295 window.frappe = {}; 29296 frappe.provide = function(namespace) { 29297 var nsl = namespace.split("."); 29298 var parent = window; 29299 for (var i2 = 0; i2 < nsl.length; i2++) { 29300 var n = nsl[i2]; 29301 if (!parent[n]) { 29302 parent[n] = {}; 29303 } 29304 parent = parent[n]; 29305 } 29306 return parent; 29307 }; 29308 frappe.provide("locals"); 29309 frappe.provide("frappe.flags"); 29310 frappe.provide("frappe.settings"); 29311 frappe.provide("frappe.utils"); 29312 frappe.provide("frappe.ui.form"); 29313 frappe.provide("frappe.modules"); 29314 frappe.provide("frappe.templates"); 29315 frappe.provide("frappe.test_data"); 29316 frappe.provide("frappe.utils"); 29317 frappe.provide("frappe.model"); 29318 frappe.provide("frappe.user"); 29319 frappe.provide("frappe.session"); 29320 frappe.provide("frappe._messages"); 29321 frappe.provide("locals.DocType"); 29322 frappe.provide("frappe.listview_settings"); 29323 frappe.provide("frappe.tour"); 29324 frappe.provide("frappe.listview_parent_route"); 29325 window.NEWLINE = "\n"; 29326 window.TAB = 9; 29327 window.UP_ARROW = 38; 29328 window.DOWN_ARROW = 40; 29329 window.cur_frm = null; 29330 29331
29331// frappe/public/js/frappe/translate.js 29332 frappe._ = function(txt, replace, context = null) { 29333 if (!txt) 29334 return txt; 29335 if (typeof txt != "string") 29336 return txt; 29337 let translated_text = ""; 29338 let key = txt; 29339 if (context) { 29340 translated_text = frappe._messages[`${key}:${context}`]; 29341 } 29342 if (!translated_text) { 29343 translated_text = frappe._messages[key] || txt; 29344 } 29345 if (replace && typeof replace === "object") { 29346 translated_text = $.format(translated_text, replace); 29347 } 29348 return translated_text; 29349 }; 29350 window.__ = frappe._; 29351 frappe.get_languages = function() { 29352 if (!frappe.languages) { 29353 frappe.languages = []; 29354 $.each(frappe.boot.lang_dict, function(lang, value2) { 29355 frappe.languages.push({ label: lang, value: value2 }); 29356 }); 29357 frappe.languages = frappe.languages.sort(function(a, b) { 29358 return a.value < b.value ? -1 : 1; 29359 }); 29360 } 29361 return frappe.languages; 29362 }; 29363 29364
29364// frappe/public/js/frappe/form/formatters.js 29365 frappe.provide("frappe.form.formatters"); 29366 frappe.form.link_formatters = {}; 29367 frappe.form.formatters = { 29368 _right: function(value2, options) { 29369 if (options && (options.inline || options.only_value)) { 29370 return value2; 29371 } else { 29372 return "<div style='text-align: right'>" + value2 + "</div>"; 29373 } 29374 }, 29375 _apply_custom_formatter: function(value2, df) { 29376 if (df) { 29377 const std_df = frappe.meta.docfield_map[df.parent] && frappe.meta.docfield_map[df.parent][df.fieldname]; 29378 if (std_df && std_df.formatter && typeof std_df.formatter === "function") { 29379 value2 = std_df.formatter(value2, df); 29380 } 29381 } 29382 return value2; 29383 }, 29384 Data: function(value2, df) { 29385 if (df && df.options == "URL") { 29386 if (!value2) 29387 return; 29388 return `<a href="${value2}" title="Open Link" target="_blank">${value2}</a>`; 29389 } 29390 value2 = value2 == null ? "" : value2; 29391 return frappe.form.formatters._apply_custom_formatter(value2, df); 29392 }, 29393 Autocomplete: function(value2, df) { 29394 return __(frappe.form.formatters["Data"](value2, df)); 29395 }, 29396 Select: function(value2, df) { 29397 return __(frappe.form.formatters["Data"](value2, df)); 29398 }, 29399 Float: function(value2, docfield, options, doc) { 29400 if (value2 === null) { 29401 return ""; 29402 } 29403 var precision3 = docfield.precision || cint(frappe.boot.sysdefaults && frappe.boot.sysdefaults.float_precision) || null; 29404 if (docfield.options && docfield.options.trim()) { 29405 docfield.precision = precision3; 29406 return frappe.form.formatters.Currency(value2, docfield, options, doc); 29407 } else { 29408 if (!(options || {}).always_show_decimals && !is_null(value2)) { 29409 var temp = cstr(value2).split("."); 29410 if (temp[1] == void 0 || cint(temp[1]) === 0) { 29411 precision3 = 0; 29412 } 29413 } 29414 value2 = value2 == null || value2 === "" ? "" : value2; 29415 return frappe.form.formatters._right(format_number(value2, null, precision3), options); 29416 } 29417 }, 29418 Int: function(value2, docfield, options) { 29419 if (value2 === null) { 29420 return ""; 29421 } 29422 if (cstr(docfield.options).trim() === "File Size") { 29423 return frappe.form.formatters.FileSize(value2); 29424 } 29425 return frappe.form.formatters._right(value2 == null ? "" : cint(value2), options); 29426 }, 29427 Percent: function(value2, docfield, options) { 29428 if (value2 === null) { 29429 return ""; 29430 } 29431 const precision3 = docfield.precision || cint(frappe.boot.sysdefaults && frappe.boot.sysdefaults.float_precision) || 2; 29432 return frappe.form.formatters._right(flt(value2, precision3) + "%", options); 29433 }, 29434 Rating: function(value2, docfield) { 29435 let rating_html = ""; 29436 let number_of_stars = docfield.options || 5; 29437 value2 = value2 * number_of_stars; 29438 value2 = Math.round(value2 * 2) / 2; 29439 Array.from({ length: cint(number_of_stars) }, (_, i2) => i2 + 1).forEach((i2) => { 29440 rating_html += `<svg class="icon icon-md" data-rating=${i2} viewBox="0 0 24 24" fill="none"> 29441 <path class="right-half ${i2 <= (value2 || 0) ? "star-click" : ""}" d="M11.9987 3.00011C12.177 3.00011 12.3554 3.09303 12.4471 3.27888L14.8213 8.09112C14.8941 8.23872 15.0349 8.34102 15.1978 8.3647L20.5069 9.13641C20.917 9.19602 21.0807 9.69992 20.7841 9.9892L16.9421 13.7354C16.8243 13.8503 16.7706 14.0157 16.7984 14.1779L17.7053 19.4674C17.7753 19.8759 17.3466 20.1874 16.9798 19.9945L12.2314 17.4973C12.1586 17.459 12.0786 17.4398 11.9987 17.4398V3.00011Z" fill="var(--star-fill)" stroke="var(--star-fill)"/> 29442 <path class="left-half ${i2 <= (value2 || 0) || i2 - 0.5 == value2 ? "star-click" : ""}" d="M11.9987 3.00011C11.8207 3.00011 11.6428 3.09261 11.5509 3.27762L9.15562 8.09836C9.08253 8.24546 8.94185 8.34728 8.77927 8.37075L3.42887 9.14298C3.01771 9.20233 2.85405 9.70811 3.1525 9.99707L7.01978 13.7414C7.13858 13.8564 7.19283 14.0228 7.16469 14.1857L6.25116 19.4762C6.18071 19.8842 6.6083 20.1961 6.97531 20.0045L11.7672 17.5022C11.8397 17.4643 11.9192 17.4454 11.9987 17.4454V3.00011Z" fill="var(--star-fill)" stroke="var(--star-fill)"/> 29443 </svg>`; 29444 }); 29445 return `<div class="rating"> 29446 ${rating_html} 29447 </div>`; 29448 }, 29449 Currency: function(value2, docfield, options, doc) { 29450 if (value2 === null) { 29451 return ""; 29452 } 29453 var currency = frappe.meta.get_field_currency(docfield, doc); 29454 let precision3; 29455 if (typeof docfield.precision == "number") { 29456 precision3 = docfield.precision; 29457 } else { 29458 precision3 = cint( 29459 docfield.precision || frappe.boot.sysdefaults.currency_precision || 2 29460 ); 29461 } 29462 if (precision3 > 2) { 29463 var parts2 = cstr(value2).split("."); 29464 var decimals = parts2.length > 1 ? parts2[1] : ""; 29465 if (decimals.length < 3 || decimals.length < precision3) { 29466 const fraction = frappe.model.get_value(":Currency", currency, "fraction_units") || 100; 29467 if (decimals.length < cstr(fraction).length) { 29468 precision3 = cstr(fraction).length - 1; 29469 } 29470 } 29471 } 29472 value2 = value2 == null || value2 === "" ? "" : value2; 29473 value2 = format_currency(value2, currency, precision3); 29474 if (options && options.only_value) { 29475 return value2; 29476 } else { 29477 return frappe.form.formatters._right(value2, options); 29478 } 29479 }, 29480 Check: function(value2) { 29481 return `<input type="checkbox" disabled 29482 class="disabled-${value2 ? "selected" : "deselected"}">`; 29483 }, 29484 Link: function(value2, docfield, options, doc) { 29485 var doctype = docfield._options || docfield.options; 29486 var original_value = value2; 29487 let link_title = frappe.utils.get_link_title(doctype, value2); 29488 if (link_title === value2) { 29489 link_title = null; 29490 } 29491 if (value2 && value2.match && value2.match(/^['"].*['"]$/)) { 29492 value2.replace(/^.(.*).$/, "$1"); 29493 } 29494 if (options && (options.for_print || options.only_value)) { 29495 return link_title || value2; 29496 } 29497 if (frappe.form.link_formatters[doctype]) { 29498 if (doc && doctype !== doc.doctype) { 29499 value2 = frappe.form.link_formatters[doctype](value2, doc, docfield); 29500 } 29501 } 29502 if (!value2) { 29503 return ""; 29504 } 29505 if (value2[0] == "'" && value2[value2.length - 1] == "'") { 29506 return value2.substring(1, value2.length - 1); 29507 } 29508 if (docfield && docfield.link_onclick) { 29509 return repl('<a onclick="%(onclick)s" href="#">%(value)s</a>', { 29510 onclick: docfield.link_onclick.replace(/"/g, """) + "; return false;", 29511 value: value2 29512 }); 29513 } else if (docfield && doctype) { 29514 if (frappe.model.can_read(doctype)) { 29515 const a = document.createElement("a"); 29516 a.href = `/app/${encodeURIComponent( 29517 frappe.router.slug(doctype) 29518 )}/${encodeURIComponent(original_value)}`; 29519 a.dataset.doctype = doctype; 29520 a.dataset.name = original_value; 29521 a.dataset.value = original_value; 29522 a.innerText = __(options && options.label || link_title || value2); 29523 return a.outerHTML; 29524 } else { 29525 return link_title || value2; 29526 } 29527 } else { 29528 return link_title || value2; 29529 } 29530 }, 29531 Date: function(value2) { 29532 if (!frappe.datetime.str_to_user) { 29533 return value2; 29534 } 29535 if (value2) { 29536 value2 = frappe.datetime.str_to_user(value2, false, true); 29537 if (value2 === "Invalid date") { 29538 value2 = null; 29539 } 29540 } 29541 return value2 || ""; 29542 }, 29543 DateRange: function(value2) { 29544 if (Array.isArray(value2)) { 29545 return __("{0} to {1}", [ 29546 frappe.datetime.str_to_user(value2[0]), 29547 frappe.datetime.str_to_user(value2[1]) 29548 ]); 29549 } else { 29550 return value2 || ""; 29551 } 29552 }, 29553 Datetime: function(value2) { 29554 if (value2) { 29555 return moment(frappe.datetime.convert_to_user_tz(value2)).format( 29556 frappe.boot.sysdefaults.date_format.toUpperCase() + " " + (frappe.boot.sysdefaults.time_format || "HH:mm:ss") 29557 ); 29558 } else { 29559 return ""; 29560 } 29561 }, 29562 Text: function(value2, df) { 29563 if (value2) { 29564 var tags = ["<p", "<div", "<br", "<table"]; 29565 var match = false;
29566 for (var i2 = 0; i2 < tags.length; i2++) { 29567 if (value2.match(tags[i2])) { 29568 match = true; 29569 break; 29570 } 29571 } 29572 if (!match) { 29573 value2 = frappe.utils.replace_newlines(value2); 29574 } 29575 } 29576 return frappe.form.formatters.Data(value2, df); 29577 }, 29578 Time: function(value2) { 29579 if (value2) { 29580 value2 = frappe.datetime.str_to_user(value2, true); 29581 } 29582 return value2 || ""; 29583 }, 29584 Duration: function(value2, docfield) { 29585 if (value2) { 29586 let duration_options = frappe.utils.get_duration_options(docfield); 29587 value2 = frappe.utils.get_formatted_duration(value2, duration_options); 29588 } 29589 return value2 || "0s"; 29590 }, 29591 LikedBy: function(value2) { 29592 var html = ""; 29593 $.each(JSON.parse(value2 || "[]"), function(i2, v) { 29594 if (v) 29595 html += frappe.avatar(v); 29596 }); 29597 return html; 29598 }, 29599 Tag: function(value2) { 29600 var html = ""; 29601 $.each((value2 || "").split(","), function(i2, v) { 29602 if (v) 29603 html += ` 29604 <span 29605 class="data-pill btn-xs align-center ellipsis" 29606 style="background-color: var(--control-bg); box-shadow: none; margin-right: 4px;" 29607 data-field="_user_tags" data-label="${v}'"> 29608 ${v} 29609 </span>`; 29610 }); 29611 return html; 29612 }, 29613 Comment: function(value2) { 29614 return value2; 29615 }, 29616 Assign: function(value2) { 29617 var html = ""; 29618 $.each(JSON.parse(value2 || "[]"), function(i2, v) { 29619 if (v) 29620 html += '<span class="label label-warning" style="margin-right: 7px;" data-field="_assign">' + v + "</span>"; 29621 }); 29622 return html; 29623 }, 29624 SmallText: function(value2) { 29625 return frappe.form.formatters.Text(value2); 29626 }, 29627 TextEditor: function(value2) { 29628 let formatted_value = frappe.form.formatters.Text(value2); 29629 try { 29630 if (!$(formatted_value).find(".ql-editor").length && !$(formatted_value).hasClass("ql-editor")) { 29631 formatted_value = `<div class="ql-editor read-mode">${formatted_value}</div>`; 29632 } 29633 } catch (e) { 29634 formatted_value = `<div class="ql-editor read-mode">${formatted_value}</div>`; 29635 } 29636 return formatted_value; 29637 }, 29638 Code: function(value2) { 29639 return "<pre>" + (value2 == null ? "" : $("<div>").text(value2).html()) + "</pre>"; 29640 }, 29641 WorkflowState: function(value2) { 29642 var workflow_state = frappe.get_doc("Workflow State", value2); 29643 if (workflow_state) { 29644 return repl( 29645 "<span class='label label-%(style)s' data-workflow-state='%(value)s' style='padding-bottom: 4px; cursor: pointer;'> <i class='fa fa-small fa-white fa-%(icon)s'></i> %(value)s</span>", 29646 { 29647 value: value2, 29648 style: workflow_state.style.toLowerCase(), 29649 icon: workflow_state.icon 29650 } 29651 ); 29652 } else { 29653 return "<span class='label'>" + value2 + "</span>"; 29654 } 29655 }, 29656 Email: function(value2) { 29657 return $("<div></div>").text(value2).html(); 29658 }, 29659 FileSize: function(value2) { 29660 value2 = cint(value2); 29661 if (value2 > 1048576) { 29662 return (value2 / 1048576).toFixed(2) + "M"; 29663 } else if (value2 > 1024) { 29664 return (value2 / 1024).toFixed(2) + "K"; 29665 } 29666 return value2; 29667 }, 29668 TableMultiSelect: function(rows, df, options) { 29669 rows = rows || []; 29670 const meta = frappe.get_meta(df.options); 29671 const link_field = meta.fields.find((df2) => df2.fieldtype === "Link"); 29672 const formatted_values = rows.map((row) => { 29673 const value2 = row[link_field.fieldname]; 29674 return `<span class="text-nowrap"> 29675 ${frappe.format(value2, link_field, options, row)} 29676 </span>`; 29677 }); 29678 return formatted_values.join(", "); 29679 }, 29680 Color: (value2) => { 29681 return value2 ? `<div> 29682 <div class="selected-color" style="background-color: ${value2}"></div> 29683 <span class="color-value">${value2}</span> 29684 </div>` : ""; 29685 }, 29686 Icon: (value2) => { 29687 return value2 ? `<div> 29688 <div class="selected-icon">${frappe.utils.icon(value2, "md")}</div> 29689 <span class="icon-value">${value2}</span> 29690 </div>` : ""; 29691 }, 29692 Attach: format_attachment_url, 29693 AttachImage: format_attachment_url 29694 }; 29695 function format_attachment_url(url2) { 29696 return url2 ? `<a href="${url2}" target="_blank">${url2}</a>` : ""; 29697 } 29698 frappe.form.get_formatter = function(fieldtype) { 29699 if (!fieldtype) 29700 fieldtype = "Data"; 29701 return frappe.form.formatters[fieldtype.replace(/ /g, "")] || frappe.form.formatters.Data; 29702 }; 29703 frappe.format = function(value2, df, options, doc) { 29704 if (!df) 29705 df = { fieldtype: "Data" }; 29706 if (df.fieldname == "_user_tags") 29707 df = __spreadProps(__spreadValues({}, df), { fieldtype: "Tag" }); 29708 var fieldtype = df.fieldtype || "Data"; 29709 if (fieldtype === "Dynamic Link") { 29710 fieldtype = "Link"; 29711 df._options = doc ? doc[df.options] : null; 29712 } 29713 var formatter = df.formatter || frappe.form.get_formatter(fieldtype); 29714 var formatted = formatter(value2, df, options, doc); 29715 if (typeof formatted == "string") 29716 formatted = frappe.dom.remove_script_and_style(formatted); 29717 return formatted; 29718 }; 29719 frappe.get_format_helper = function(doc) { 29720 var helper = { 29721 get_formatted: function(fieldname) { 29722 var df = frappe.meta.get_docfield(doc.doctype, fieldname); 29723 if (!df) { 29724 console.log("fieldname not found: " + fieldname); 29725 } 29726 return frappe.format(doc[fieldname], df, { inline: 1 }, doc); 29727 } 29728 }; 29729 $.extend(helper, doc); 29730 return helper; 29731 }; 29732 frappe.form.link_formatters["User"] = function(value2, doc, docfield) { 29733 let full_name = doc && (doc.full_name || docfield && doc[`${docfield.fieldname}_full_name`]); 29734 return full_name || value2; 29735 }; 29736 29737
29737// frappe/public/js/frappe/format.js 29738 function format(str, args) { 29739 if (str == void 0) 29740 return str; 29741 this.unkeyed_index = 0; 29742 return str.replace( 29743 /\{(\w*)\}/g, 29744 function(match, key) { 29745 if (key === "") { 29746 key = this.unkeyed_index; 29747 this.unkeyed_index++; 29748 } 29749 if (key == +key) { 29750 return args[key] !== void 0 ? args[key] : match; 29751 } 29752 }.bind(this) 29753 ); 29754 } 29755 if (jQuery) { 29756 jQuery.format = format; 29757 } 29758 29759
29759// frappe/public/js/frappe/utils/datatype.js 29760 window.cstr = function(s) { 29761 if (s == null) 29762 return ""; 29763 return s + ""; 29764 }; 29765 window.cint = function(v, def) { 29766 if (v === true) 29767 return 1; 29768 if (v === false) 29769 return 0; 29770 v = v + ""; 29771 if (v !== "0") 29772 v = lstrip(v, ["0"]); 29773 v = parseInt(v); 29774 if (isNaN(v)) 29775 v = def === void 0 ? 0 : def; 29776 return v; 29777 }; 29778 window.toTitle = function(str) { 29779 var word_in = str.split(" "); 29780 var word_out = []; 29781 for (var w in word_in) { 29782 word_out[w] = word_in[w].charAt(0).toUpperCase() + word_in[w].slice(1); 29783 } 29784 return word_out.join(" "); 29785 }; 29786 window.is_null = function(v) { 29787 if (v === null || v === void 0 || cstr(v).trim() === "") 29788 return true; 29789 }; 29790 window.copy_dict = function(d) { 29791 var n = {}; 29792 for (var k in d) 29793 n[k] = d[k]; 29794 return n; 29795 }; 29796 window.validate_email = function(txt) { 29797 return frappe.utils.validate_type(txt, "email"); 29798 }; 29799 window.validate_phone = function(txt) { 29800 return frappe.utils.validate_type(txt, "phone"); 29801 }; 29802 window.validate_name = function(txt) { 29803 return frappe.utils.validate_type(txt, "name"); 29804 }; 29805 window.validate_url = function(txt) { 29806 return frappe.utils.validate_type(txt, "url"); 29807 }; 29808 window.nth = function(number) { 29809 number = cint(number); 29810 var s = "th"; 29811 if ((number + "").substr(-1) == "1") 29812 s = "st"; 29813 if ((number + "").substr(-1) == "2") 29814 s = "nd"; 29815 if ((number + "").substr(-1) == "3") 29816 s = "rd"; 29817 return number + s; 29818 }; 29819 window.has_words = function(list, item) { 29820 if (!item) 29821 return true; 29822 if (!list) 29823 return false; 29824 for (var i2 = 0, j = list.length; i2 < j; i2++) { 29825 if (item.indexOf(list[i2]) != -1) 29826 return true; 29827 } 29828 return false; 29829 }; 29830 window.has_common = function(list1, list2) { 29831 if (!list1 || !list2) 29832 return false; 29833 for (var i2 = 0, j = list1.length; i2 < j; i2++) { 29834 if (list2.includes(list1[i2])) 29835 return true; 29836 } 29837 return false; 29838 }; 29839 29840
29840// frappe/public/js/frappe/utils/number_format.js 29841 if (!window.frappe) 29842 window.frappe = {}; 29843 function flt2(v, decimals, number_format, rounding_method) { 29844 if (v == null || v == "") 29845 return 0; 29846 if (typeof v !== "number") { 29847 v = v + ""; 29848 if (v.indexOf(" ") != -1) { 29849 var parts2 = v.split(" "); 29850 v = isNaN(parseFloat(parts2[0])) ? parts2.slice(parts2.length - 1).join(" ") : v; 29851 } 29852 v = strip_number_groups(v, number_format); 29853 v = parseFloat(v); 29854 if (isNaN(v)) 29855 v = 0; 29856 } 29857 if (decimals != null) 29858 return _round(v, decimals, rounding_method); 29859 return v; 29860 } 29861 function strip_number_groups(v, number_format) { 29862 if (!number_format) 29863 number_format = get_number_format2(); 29864 var info = get_number_format_info2(number_format); 29865 var group_regex = new RegExp(info.group_sep === "." ? "\\." : info.group_sep, "g"); 29866 v = v.replace(group_regex, ""); 29867 if (info.decimal_str !== "." && info.decimal_str !== "") { 29868 var decimal_regex = new RegExp(info.decimal_str, "g"); 29869 v = v.replace(decimal_regex, "."); 29870 } 29871 return v; 29872 } 29873 function convert_old_to_new_number_format(v, old_number_format, new_number_format) { 29874 if (!new_number_format) 29875 new_number_format = get_number_format2(); 29876 let new_info = get_number_format_info2(new_number_format); 29877 if (!old_number_format) 29878 old_number_format = "#,###.##"; 29879 let old_info = get_number_format_info2(old_number_format); 29880 if (old_number_format === new_number_format) 29881 return v; 29882 if (new_info.decimal_str == "") { 29883 return strip_number_groups(v); 29884 } 29885 let v_parts = v.split(old_info.decimal_str); 29886 let v_before_decimal = v_parts[0]; 29887 let v_after_decimal = v_parts[1] || ""; 29888 let old_group_regex = new RegExp(old_info.group_sep === "." ? "\\." : old_info.group_sep, "g"); 29889 v_before_decimal = v_before_decimal.replace(old_group_regex, new_info.group_sep); 29890 v = v_before_decimal; 29891 if (v_after_decimal) { 29892 v = v + new_info.decimal_str + v_after_decimal; 29893 } 29894 return v; 29895 } 29896 frappe.number_format_info = { 29897 "#,###.##": { decimal_str: ".", group_sep: "," }, 29898 "#.###,##": { decimal_str: ",", group_sep: "." }, 29899 "# ###.##": { decimal_str: ".", group_sep: " " }, 29900 "# ###,##": { decimal_str: ",", group_sep: " " }, 29901 "#'###.##": { decimal_str: ".", group_sep: "'" }, 29902 "#, ###.##": { decimal_str: ".", group_sep: ", " }, 29903 "#,##,###.##": { decimal_str: ".", group_sep: "," }, 29904 "#,###.###": { decimal_str: ".", group_sep: "," }, 29905 "#.###": { decimal_str: "", group_sep: "." }, 29906 "#,###": { decimal_str: "", group_sep: "," } 29907 }; 29908 window.format_number = function(v, format2, decimals) { 29909 if (!format2) { 29910 format2 = get_number_format2(); 29911 if (decimals == null) 29912 decimals = cint(frappe.defaults.get_default("float_precision")) || 3; 29913 } 29914 var info = get_number_format_info2(format2); 29915 if (decimals == null) 29916 decimals = info.precision; 29917 v = flt2(v, decimals, format2); 29918 let is_negative = false; 29919 if (v < 0) 29920 is_negative = true; 29921 v = Math.abs(v); 29922 v = v.toFixed(decimals); 29923 var part = v.split("."); 29924 var group_position = info.group_sep ? 3 : 0; 29925 if (group_position) { 29926 var integer = part[0]; 29927 var str = ""; 29928 var offset = integer.length % group_position; 29929 for (var i2 = integer.length; i2 >= 0; i2--) { 29930 var l = replace_all(str, info.group_sep, "").length; 29931 if (format2 == "#,##,###.##" && str.indexOf(",") != -1) { 29932 group_position = 2; 29933 l += 1; 29934 } 29935 str += integer.charAt(i2); 29936 if (l && !((l + 1) % group_position) && i2 != 0) { 29937 str += info.group_sep; 29938 } 29939 } 29940 part[0] = str.split("").reverse().join(""); 29941 } 29942 if (part[0] + "" == "") { 29943 part[0] = "0"; 29944 } 29945 part[1] = part[1] && info.decimal_str ? info.decimal_str + part[1] : ""; 29946 return (is_negative ? "-" : "") + part[0] + part[1]; 29947 }; 29948 function format_currency2(v, currency, decimals) { 29949 var _a; 29950 const format2 = get_number_format2(currency); 29951 const symbol = get_currency_symbol(currency); 29952 const show_symbol_on_right = (_a = frappe.model.get_value(":Currency", currency, "symbol_on_right")) != null ? _a : false;
29953 if (decimals === void 0) { 29954 decimals = frappe.boot.sysdefaults.currency_precision || null; 29955 } 29956 if (symbol) { 29957 if (show_symbol_on_right) { 29958 return format_number(v, format2, decimals) + " " + __(symbol); 29959 } 29960 return __(symbol) + " " + format_number(v, format2, decimals); 29961 } 29962 return format_number(v, format2, decimals); 29963 } 29964 function get_currency_symbol(currency) { 29965 if (frappe.boot) { 29966 if (frappe.boot.sysdefaults && frappe.boot.sysdefaults.hide_currency_symbol == "Yes") 29967 return null; 29968 if (!currency) 29969 currency = frappe.boot.sysdefaults.currency; 29970 return frappe.model.get_value(":Currency", currency, "symbol") || currency; 29971 } else { 29972 return frappe.currency_symbols[currency]; 29973 } 29974 } 29975 function get_number_format2(currency) { 29976 var _a; 29977 let sysdefaults = (_a = frappe == null ? void 0 : frappe.boot) == null ? void 0 : _a.sysdefaults; 29978 return cint(sysdefaults == null ? void 0 : sysdefaults.use_number_format_from_currency) && currency && frappe.model.get_value(":Currency", currency, "number_format") || sysdefaults.number_format || "#,###.##"; 29979 } 29980 function get_number_format_info2(format2) { 29981 var info = frappe.number_format_info[format2]; 29982 if (!info) { 29983 info = { decimal_str: ".", group_sep: "," }; 29984 } 29985 info.precision = format2.split(info.decimal_str).slice(1)[0].length; 29986 return info; 29987 } 29988 function _round(num, precision3, rounding_method) { 29989 rounding_method = rounding_method || frappe.boot.sysdefaults.rounding_method || "Banker's Rounding (legacy)"; 29990 let is_negative = num < 0 ? true : false; 29991 if (rounding_method == "Banker's Rounding (legacy)") { 29992 var d = cint(precision3); 29993 var m = Math.pow(10, d); 29994 var n = +(d ? Math.abs(num) * m : Math.abs(num)).toFixed(8); 29995 var i2 = Math.floor(n), f = n - i2; 29996 var r = !precision3 && f == 0.5 ? i2 % 2 == 0 ? i2 : i2 + 1 : Math.round(n); 29997 r = d ? r / m : r; 29998 return is_negative ? -r : r; 29999 } else if (rounding_method == "Banker's Rounding") { 30000 if (num == 0) 30001 return 0; 30002 precision3 = cint(precision3); 30003 let multiplier = Math.pow(10, precision3); 30004 num = Math.abs(num) * multiplier; 30005 let floor_num = Math.floor(num); 30006 let decimal_part = num - floor_num; 30007 let epsilon = 2 ** (Math.log2(Math.abs(num)) - 52); 30008 if (Math.abs(decimal_part - 0.5) < epsilon) { 30009 num = floor_num % 2 == 0 ? floor_num : floor_num + 1; 30010 } else { 30011 num = Math.round(num); 30012 } 30013 num = num / multiplier; 30014 return is_negative ? -num : num; 30015 } else if (rounding_method == "Commercial Rounding") { 30016 if (num == 0) 30017 return 0; 30018 let digits = cint(precision3); 30019 let multiplier = Math.pow(10, digits); 30020 num = num * multiplier; 30021 let epsilon = 2 ** (Math.log2(Math.abs(num)) - 52); 30022 if (is_negative) { 30023 epsilon = -1 * epsilon; 30024 } 30025 num = Math.round(num + epsilon); 30026 return num / multiplier; 30027 } else { 30028 throw new Error(`Unknown rounding method ${rounding_method}`); 30029 } 30030 } 30031 function roundNumber(num, precision3) { 30032 return _round(num, precision3); 30033 } 30034 function precision2(fieldname, doc) { 30035 if (cur_frm) { 30036 if (!doc) 30037 doc = cur_frm.doc; 30038 var df = frappe.meta.get_docfield(doc.doctype, fieldname, doc.parent || doc.name); 30039 if (!df) 30040 console.log(fieldname + ": could not find docfield in method precision()"); 30041 return frappe.meta.get_field_precision(df, doc); 30042 } else { 30043 return frappe.boot.sysdefaults.float_precision; 30044 } 30045 } 30046 function in_list(list, item) { 30047 return list.includes(item); 30048 } 30049 function remainder(numerator, denominator, precision3) { 30050 precision3 = cint(precision3); 30051 var multiplier = Math.pow(10, precision3); 30052 let _remainder; 30053 if (precision3) { 30054 _remainder = numerator * multiplier % (denominator * multiplier) / multiplier; 30055 } else { 30056 _remainder = numerator % denominator; 30057 } 30058 return flt2(_remainder, precision3); 30059 } 30060 function round_based_on_smallest_currency_fraction(value2, currency, precision3) { 30061 var smallest_currency_fraction_value = flt2( 30062 frappe.model.get_value(":Currency", currency, "smallest_currency_fraction_value") 30063 ); 30064 if (smallest_currency_fraction_value) { 30065 var remainder_val = remainder(value2, smallest_currency_fraction_value, precision3); 30066 if (remainder_val > smallest_currency_fraction_value / 2) { 30067 value2 += smallest_currency_fraction_value - remainder_val; 30068 } else { 30069 value2 -= remainder_val; 30070 } 30071 } else { 30072 value2 = _round(value2); 30073 } 30074 return value2; 30075 } 30076 function fmt_money(v, format2) { 30077 return format_currency2(v, format2); 30078 } 30079 Object.assign(window, { 30080 flt: flt2, 30081 cint, 30082 strip_number_groups, 30083 convert_old_to_new_number_format, 30084 format_currency: format_currency2, 30085 fmt_money, 30086 get_currency_symbol, 30087 get_number_format: get_number_format2, 30088 get_number_format_info: get_number_format_info2, 30089 _round, 30090 roundNumber, 30091 precision: precision2, 30092 remainder, 30093 round_based_on_smallest_currency_fraction, 30094 in_list 30095 }); 30096 30097
30097// frappe/public/js/frappe/utils/utils.js 30098 var import_fast_deep_equal = __toESM(require_fast_deep_equal()); 30099 30100
30100// frappe/public/js/frappe/utils/number_systems.js 30101 var number_systems_default = { 30102 default: [ 30103 { 30104 divisor: 1e12, 30105 symbol: __("T", null, "Number system") 30106 }, 30107 { 30108 divisor: 1e9, 30109 symbol: __("B", null, "Number system") 30110 }, 30111 { 30112 divisor: 1e6, 30113 symbol: __("M", null, "Number system") 30114 }, 30115 { 30116 divisor: 1e3, 30117 symbol: __("K", null, "Number system") 30118 } 30119 ], 30120 indian: [ 30121 { 30122 divisor: 1e7, 30123 symbol: __("Cr", null, "Number system") 30124 }, 30125 { 30126 divisor: 1e5, 30127 symbol: __("L", null, "Number system") 30128 }, 30129 { 30130 divisor: 1e3, 30131 symbol: __("K", null, "Number system") 30132 } 30133 ], 30134 nepalese: [ 30135 { 30136 divisor: 1e11, 30137 symbol: __("Kh", null, "Number system") 30138 }, 30139 { 30140 divisor: 1e9, 30141 symbol: __("Ar", null, "Number system") 30142 }, 30143 { 30144 divisor: 1e7, 30145 symbol: __("Cr", null, "Number system") 30146 }, 30147 { 30148 divisor: 1e5, 30149 symbol: __("L", null, "Number system") 30150 }, 30151 { 30152 divisor: 1e3, 30153 symbol: __("K", null, "Number system") 30154 } 30155 ] 30156 }; 30157 30158
30158// frappe/public/js/frappe/utils/utils.js 30159 var import_cloneDeepWith = __toESM(require_cloneDeepWith()); 30160 frappe.provide("frappe.utils"); 30161 if (!Array.prototype.uniqBy) { 30162 Object.defineProperty(Array.prototype, "uniqBy", { 30163 value: function(key) { 30164 var seen = {}; 30165 return this.filter(function(item) { 30166 var k = key(item); 30167 return k in seen ? false : seen[k] = true; 30168 }); 30169 } 30170 }); 30171 Object.defineProperty(Array.prototype, "move", { 30172 value: function(from, to) { 30173 this.splice(to, 0, this.splice(from, 1)[0]); 30174 } 30175 }); 30176 } 30177 Object.defineProperty(Object.prototype, "setDefault", { 30178 value: function(key, default_value) { 30179 if (!(key in this)) 30180 this[key] = default_value; 30181 return this[key]; 30182 }, 30183 writable: true 30184 }); 30185 String.prototype.plural = function(revert) { 30186 const plural = { 30187 "(quiz)$": "$1zes", 30188 "^(ox)$": "$1en", 30189 "([m|l])ouse$": "$1ice", 30190 "(matr|vert|ind)ix|ex$": "$1ices", 30191 "(x|ch|ss|sh)$": "$1es", 30192 "([^aeiouy]|qu)y$": "$1ies", 30193 "(hive)$": "$1s", 30194 "(?:([^f])fe|([lr])f)$": "$1$2ves", 30195 "(shea|lea|loa|thie)f$": "$1ves", 30196 sis$: "ses", 30197 "([ti])um$": "$1a", 30198 "(tomat|potat|ech|her|vet)o$": "$1oes", 30199 "(bu)s$": "$1ses", 30200 "(alias)$": "$1es", 30201 "(octop)us$": "$1i", 30202 "(ax|test)is$": "$1es", 30203 "(us)$": "$1es", 30204 "([^s]+)$": "$1s" 30205 }; 30206 const singular = { 30207 "(quiz)zes$": "$1", 30208 "(matr)ices$": "$1ix", 30209 "(vert|ind)ices$": "$1ex", 30210 "^(ox)en$": "$1", 30211 "(alias)es$": "$1", 30212 "(octop|vir)i$": "$1us", 30213 "(cris|ax|test)es$": "$1is", 30214 "(shoe)s$": "$1", 30215 "(o)es$": "$1", 30216 "(bus)es$": "$1", 30217 "([m|l])ice$": "$1ouse", 30218 "(x|ch|ss|sh)es$": "$1", 30219 "(m)ovies$": "$1ovie", 30220 "(s)eries$": "$1eries", 30221 "([^aeiouy]|qu)ies$": "$1y", 30222 "([lr])ves$": "$1f", 30223 "(tive)s$": "$1", 30224 "(hive)s$": "$1", 30225 "(li|wi|kni)ves$": "$1fe", 30226 "(shea|loa|lea|thie)ves$": "$1f", 30227 "(^analy)ses$": "$1sis", 30228 "((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$": "$1$2sis", 30229 "([ti])a$": "$1um", 30230 "(n)ews$": "$1ews", 30231 "(h|bl)ouses$": "$1ouse", 30232 "(corpse)s$": "$1", 30233 "(us)es$": "$1", 30234 s$: "" 30235 }; 30236 const irregular = { 30237 move: "moves", 30238 foot: "feet", 30239 goose: "geese", 30240 sex: "sexes", 30241 child: "children", 30242 man: "men", 30243 tooth: "teeth", 30244 person: "people" 30245 }; 30246 const uncountable = [ 30247 "sheep", 30248 "fish", 30249 "deer", 30250 "moose", 30251 "series", 30252 "species", 30253 "money", 30254 "rice", 30255 "information", 30256 "equipment" 30257 ]; 30258 if (uncountable.indexOf(this.toLowerCase()) >= 0) 30259 return this; 30260 let word; 30261 let pattern; 30262 let replace; 30263 for (word in irregular) { 30264 if (revert) { 30265 pattern = new RegExp(irregular[word] + "$", "i"); 30266 replace = word; 30267 } else { 30268 pattern = new RegExp(word + "$", "i"); 30269 replace = irregular[word]; 30270 } 30271 if (pattern.test(this)) 30272 return this.replace(pattern, replace); 30273 } 30274 let array; 30275 if (revert) 30276 array = singular; 30277 else 30278 array = plural; 30279 let reg; 30280 for (reg in array) { 30281 pattern = new RegExp(reg, "i"); 30282 if (pattern.test(this)) 30283 return this.replace(pattern, array[reg]); 30284 } 30285 return this; 30286 }; 30287 Object.assign(frappe.utils, { 30288 get_random: function(len) { 30289 var text = ""; 30290 var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; 30291 for (var i2 = 0; i2 < len; i2++) 30292 text += possible.charAt(Math.floor(Math.random() * possible.length)); 30293 return text; 30294 }, 30295 get_file_link: function(filename) { 30296 filename = cstr(filename); 30297 if (frappe.utils.is_url(filename)) { 30298 return filename; 30299 } else if (filename.indexOf("/") === -1) { 30300 return "files/" + filename; 30301 } else { 30302 return filename; 30303 } 30304 }, 30305 replace_newlines(t) { 30306 return t ? t.replace(/\n/g, "<br>") : ""; 30307 }, 30308 is_html: function(txt) { 30309 if (!txt) 30310 return false;
30311 if (txt.indexOf("<br>") == -1 && txt.indexOf("<p") == -1 && txt.indexOf("<img") == -1 && txt.indexOf("<div") == -1 && !txt.includes("<span")) { 30312 return false; 30313 } 30314 return true; 30315 }, 30316 is_mac: function() { 30317 return window.navigator.platform === "MacIntel"; 30318 }, 30319 is_xs: function() { 30320 return $(document).width() < 768; 30321 }, 30322 is_sm: function() { 30323 return $(document).width() < 991 && $(document).width() >= 768; 30324 }, 30325 is_md: function() { 30326 return $(document).width() < 1199 && $(document).width() >= 991; 30327 }, 30328 is_json: function(str) { 30329 try { 30330 JSON.parse(str); 30331 } catch (e) { 30332 return false; 30333 } 30334 return true; 30335 }, 30336 parse_json: function(str) { 30337 let parsed_json = ""; 30338 try { 30339 parsed_json = JSON.parse(str); 30340 } catch (e) { 30341 return str; 30342 } 30343 return parsed_json; 30344 }, 30345 strip_whitespace: function(html) { 30346 return (html || "").replace(/<p>\s*<\/p>/g, "").replace(/<br>(\s*<br>\s*)+/g, "<br><br>"); 30347 }, 30348 encode_tags: function(html) { 30349 var tagsToReplace = { 30350 "&": "&", 30351 "<": "<", 30352 ">": ">" 30353 }; 30354 function replaceTag(tag) { 30355 return tagsToReplace[tag] || tag; 30356 } 30357 return html.replace(/[&<>]/g, replaceTag); 30358 }, 30359 strip_original_content: function(txt) { 30360 var out = [], part = [], newline = txt.indexOf("<br>") === -1 ? "\n" : "<br>"; 30361 $.each(txt.split(newline), function(i2, t) { 30362 var tt = strip(t); 30363 if (tt && (tt.substr(0, 1) === ">" || tt.substr(0, 4) === ">")) { 30364 part.push(t); 30365 } else { 30366 out = out.concat(part); 30367 out.push(t); 30368 part = []; 30369 } 30370 }); 30371 return out.join(newline); 30372 }, 30373 escape_html: function(txt) { 30374 if (!txt) 30375 return ""; 30376 let escape_html_mapping = { 30377 "&": "&", 30378 "<": "<", 30379 ">": ">", 30380 '"': """, 30381 "'": "'", 30382 "`": "`", 30383 "=": "=" 30384 }; 30385 return String(txt).replace(/[&<>"'`=]/g, (char) => escape_html_mapping[char] || char); 30386 }, 30387 unescape_html: function(txt) { 30388 let unescape_html_mapping = { 30389 "&": "&", 30390 "<": "<", 30391 ">": ">", 30392 """: '"', 30393 "'": "'", 30394 "`": "`", 30395 "=": "=" 30396 }; 30397 return String(txt).replace( 30398 /&|<|>|"|'|`|=/g, 30399 (char) => unescape_html_mapping[char] || char 30400 ); 30401 }, 30402 html2text: function(html) { 30403 const parser = new DOMParser(); 30404 const dom = parser.parseFromString(html, "text/html"); 30405 return dom.body.textContent; 30406 }, 30407 is_url: function(txt) { 30408 return txt.toLowerCase().substr(0, 7) == "http://" || txt.toLowerCase().substr(0, 8) == "https://"; 30409 }, 30410 to_title_case: function(string, with_space = false) { 30411 let titlecased_string = string.toLowerCase().replace(/(?:^|[\s-/])\w/g, function(match) { 30412 return match.toUpperCase(); 30413 }); 30414 let replace_with = with_space ? " " : ""; 30415 return titlecased_string.replace(/-|_/g, replace_with); 30416 }, 30417 toggle_blockquote: function(txt) { 30418 if (!txt) 30419 return txt; 30420 var content = $("<div></div>").html(txt); 30421 content.find("blockquote").parent("blockquote").addClass("hidden").before( 30422 '<p><a class="text-muted btn btn-default toggle-blockquote" style="padding: 2px 7px 0px; line-height: 1;"> \u2022 \u2022 \u2022 </a></p>' 30423 ); 30424 return content.html(); 30425 }, 30426 scroll_to: function(element, animate = true, additional_offset, element_to_be_scrolled, callback, highlight_element = false) { 30427 if (frappe.flags.disable_auto_scroll) 30428 return; 30429 element_to_be_scrolled = element_to_be_scrolled || $("html, body"); 30430 let scroll_top = 0; 30431 if (element) { 30432 scroll_top = typeof element == "number" ? element - cint(additional_offset) : this.get_scroll_position(element, additional_offset); 30433 } 30434 if (scroll_top < 0) { 30435 scroll_top = 0; 30436 } 30437 const highlight = () => { 30438 if (highlight_element) { 30439 $(element).addClass("highlight"); 30440 document.addEventListener( 30441 "click", 30442 function() { 30443 $(element).removeClass("highlight"); 30444 }, 30445 { once: true } 30446 ); 30447 } 30448 }; 30449 if (scroll_top == element_to_be_scrolled.scrollTop()) { 30450 return highlight(); 30451 } 30452 if (animate) { 30453 element_to_be_scrolled.animate({ 30454 scrollTop: scroll_top 30455 }).promise().then(() => { 30456 highlight(); 30457 callback && callback(); 30458 }); 30459 } else { 30460 element_to_be_scrolled.scrollTop(scroll_top); 30461 } 30462 }, 30463 get_scroll_position: function(element, additional_offset) { 30464 let header_offset = $(".navbar").height() + $(".page-head:visible").height() || $(".navbar").height(); 30465 return $(element).offset().top - header_offset - cint(additional_offset); 30466 }, 30467 filter_dict: function(dict, filters) { 30468 var ret = []; 30469 if (typeof filters == "string") { 30470 return [dict[filters]]; 30471 } 30472 $.each(dict, function(i2, d) { 30473 for (var key in filters) { 30474 if ($.isArray(filters[key])) { 30475 if (filters[key][0] == "in") { 30476 if (filters[key][1].indexOf(d[key]) == -1) 30477 return; 30478 } else if (filters[key][0] == "not in") { 30479 if (filters[key][1].indexOf(d[key]) != -1) 30480 return; 30481 } else if (filters[key][0] == "<") { 30482 if (!(d[key] < filters[key])) 30483 return; 30484 } else if (filters[key][0] == "<=") { 30485 if (!(d[key] <= filters[key])) 30486 return; 30487 } else if (filters[key][0] == ">") { 30488 if (!(d[key] > filters[key])) 30489 return; 30490 } else if (filters[key][0] == ">=") { 30491 if (!(d[key] >= filters[key])) 30492 return; 30493 } 30494 } else { 30495 if (d[key] != filters[key]) 30496 return; 30497 } 30498 }
30499 ret.push(d); 30500 }); 30501 return ret; 30502 }, 30503 comma_or: function(list) { 30504 return frappe.utils.comma_sep(list, " " + __("or") + " "); 30505 }, 30506 comma_and: function(list) { 30507 return frappe.utils.comma_sep(list, " " + __("and") + " "); 30508 }, 30509 comma_sep: function(list, sep) { 30510 if (list instanceof Array) { 30511 if (list.length == 0) { 30512 return ""; 30513 } else if (list.length == 1) { 30514 return list[0]; 30515 } else { 30516 return list.slice(0, list.length - 1).join(", ") + sep + list.slice(-1)[0]; 30517 } 30518 } else { 30519 return list; 30520 } 30521 }, 30522 set_footnote: function(footnote_area, wrapper, txt) { 30523 if (!footnote_area) { 30524 footnote_area = $('<div class="text-muted footnote-area level">').appendTo(wrapper); 30525 } 30526 if (txt) { 30527 footnote_area.html(txt); 30528 } else { 30529 footnote_area.remove(); 30530 footnote_area = null; 30531 } 30532 return footnote_area; 30533 }, 30534 get_args_dict_from_url: function(txt) { 30535 var args = {}; 30536 $.each(decodeURIComponent(txt).split("&"), function(i2, arg) { 30537 arg = arg.split("="); 30538 args[arg[0]] = arg[1]; 30539 }); 30540 return args; 30541 }, 30542 get_url_from_dict: function(args) { 30543 return $.map(args, function(val, key) { 30544 if (val !== null) 30545 return encodeURIComponent(key) + "=" + encodeURIComponent(val); 30546 else 30547 return null; 30548 }).join("&") || ""; 30549 }, 30550 validate_type: function(val, type2) { 30551 var regExp; 30552 switch (type2) { 30553 case "phone": 30554 regExp = /^([0-9 +_\-,.*#()]){1,20}$/; 30555 break; 30556 case "name": 30557 regExp = /^[\w][\w'-]*([ \w][\w'-]+)*$/; 30558 break; 30559 case "number": 30560 regExp = /^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/; 30561 break; 30562 case "digits": 30563 regExp = /^\d+$/; 30564 break; 30565 case "alphanum": 30566 regExp = /^\w+$/; 30567 break; 30568 case "email": 30569 regExp = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 30570 break; 30571 case "url": 30572 regExp = /^((([A-Za-z0-9.+-]+:(?:\/\/)?)(?:[-;:&=\+\,\w]@)?[A-Za-z0-9.-]+(:[0-9]+)?|(?:www.|[-;
30572:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)$/i; 30573 break; 30574 case "dateIso": 30575 regExp = /^(\d{4})\D?(0[1-9]|1[0-2])\D?([12]\d|0[1-9]|3[01])$/; 30576 break; 30577 default: 30578 return false; 30579 } 30580 return "" !== val ? regExp.test(val) : false; 30581 }, 30582 guess_style: function(text, default_style, _colour) { 30583 var style = default_style || "default"; 30584 var colour = "gray"; 30585 if (text) { 30586 text = cstr(text); 30587 if (has_words(["Pending", "Review", "Medium", "Not Approved"], text)) { 30588 style = "warning"; 30589 colour = "orange"; 30590 } else if (has_words(["Open", "Urgent", "High", "Failed", "Rejected", "Error"], text)) { 30591 style = "danger"; 30592 colour = "red"; 30593 } else if (has_words( 30594 [ 30595 "Closed", 30596 "Finished", 30597 "Converted", 30598 "Completed", 30599 "Complete", 30600 "Confirmed", 30601 "Approved", 30602 "Yes", 30603 "Active", 30604 "Available", 30605 "Paid", 30606 "Success" 30607 ], 30608 text 30609 )) { 30610 style = "success"; 30611 colour = "green"; 30612 } else if (has_words(["Submitted"], text)) { 30613 style = "info"; 30614 colour = "blue"; 30615 } 30616 } 30617 return _colour ? colour : style; 30618 }, 30619 guess_colour: function(text) { 30620 return frappe.utils.guess_style(text, null, true); 30621 }, 30622 get_indicator_color: function(state) { 30623 return frappe.db.get_list("Workflow State", { filters: { name: state }, fields: ["name", "style"] }).then((res) => { 30624 const state2 = res[0]; 30625 if (!state2.style) { 30626 return frappe.utils.guess_colour(state2.name); 30627 } 30628 const style = state2.style; 30629 const colour_map = { 30630 Success: "green", 30631 Warning: "orange", 30632 Danger: "red", 30633 Primary: "blue" 30634 }; 30635 return colour_map[style]; 30636 }); 30637 }, 30638 sort: function(list, key, compare_type, reverse) { 30639 if (!list || list.length < 2) 30640 return list || []; 30641 var sort_fn = { 30642 string: function(a, b) { 30643 return cstr(a[key]).localeCompare(cstr(b[key])); 30644 }, 30645 number: function(a, b) { 30646 return flt(a[key]) - flt(b[key]); 30647 } 30648 }; 30649 if (!compare_type) 30650 compare_type = typeof list[0][key] === "string" ? "string" : "number"; 30651 list.sort(sort_fn[compare_type]); 30652 if (reverse) { 30653 list.reverse(); 30654 } 30655 return list; 30656 }, 30657 unique: function(list) { 30658 var dict = {}, arr = []; 30659 for (var i2 = 0, l = list.length; i2 < l; i2++) { 30660 if (!(list[i2] in dict)) { 30661 dict[list[i2]] = null; 30662 arr.push(list[i2]); 30663 } 30664 } 30665 return arr; 30666 }, 30667 remove_nulls: function(list) { 30668 var new_list = []; 30669 for (var i2 = 0, l = list.length; i2 < l; i2++) { 30670 if (!is_null(list[i2])) { 30671 new_list.push(list[i2]); 30672 } 30673 } 30674 return new_list; 30675 }, 30676 all: function(lst) { 30677 for (var i2 = 0, l = lst.length; i2 < l; i2++) { 30678 if (!lst[i2]) { 30679 return false; 30680 } 30681 } 30682 return true; 30683 }, 30684 dict: function(keys, values) { 30685 var out = []; 30686 $.each(values, function(row_idx, row) { 30687 var new_row = {}; 30688 $.each(keys, function(key_idx, key) { 30689 new_row[key] = row[key_idx]; 30690 }); 30691 out.push(new_row); 30692 }); 30693 return out; 30694 }, 30695 sum: function(list) { 30696 return list.reduce(function(previous_value, current_value) { 30697 return flt(previous_value) + flt(current_value); 30698 }, 0); 30699 }, 30700 arrays_equal: function(arr1, arr2) { 30701 if (!arr1 || !arr2) { 30702 return false; 30703 } 30704 if (arr1.length != arr2.length) { 30705 return false; 30706 } 30707 for (var i2 = 0; i2 < arr1.length; i2++) { 30708 if ($.isArray(arr1[i2])) { 30709 if (!frappe.utils.arrays_equal(arr1[i2], arr2[i2])) { 30710 return false; 30711 } 30712 } else if (arr1[i2] !== arr2[i2]) { 30713 return false;
30714 } 30715 } 30716 return true; 30717 }, 30718 intersection: function(a, b) { 30719 var ai = 0, bi = 0; 30720 var result = new Array(); 30721 a = [].concat(a).sort(); 30722 b = [].concat(b).sort(); 30723 while (ai < a.length && bi < b.length) { 30724 if (a[ai] < b[bi]) { 30725 ai++; 30726 } else if (a[ai] > b[bi]) { 30727 bi++; 30728 } else { 30729 result.push(a[ai]); 30730 ai++; 30731 bi++; 30732 } 30733 } 30734 return result; 30735 }, 30736 resize_image: function(reader, callback, max_width, max_height) { 30737 var tempImg = new Image(); 30738 if (!max_width) 30739 max_width = 600; 30740 if (!max_height) 30741 max_height = 400; 30742 tempImg.src = reader.result; 30743 tempImg.onload = function() { 30744 var tempW = tempImg.width; 30745 var tempH = tempImg.height; 30746 if (tempW > tempH) { 30747 if (tempW > max_width) { 30748 tempH *= max_width / tempW; 30749 tempW = max_width; 30750 } 30751 } else { 30752 if (tempH > max_height) { 30753 tempW *= max_height / tempH; 30754 tempH = max_height; 30755 } 30756 } 30757 var canvas = document.createElement("canvas"); 30758 canvas.width = tempW; 30759 canvas.height = tempH; 30760 var ctx = canvas.getContext("2d"); 30761 ctx.drawImage(this, 0, 0, tempW, tempH); 30762 var dataURL = canvas.toDataURL("image/jpeg"); 30763 setTimeout(function() { 30764 callback(dataURL); 30765 }, 10); 30766 }; 30767 }, 30768 csv_to_array: function(strData, strDelimiter) { 30769 strDelimiter = strDelimiter || ","; 30770 var objPattern = new RegExp( 30771 "(\\" + strDelimiter + '|\\r?\\n|\\r|^)(?:"([^"]*(?:""[^"]*)*)"|([^"\\' + strDelimiter + "\\r\\n]*))", 30772 "gi" 30773 ); 30774 var arrData = [[]]; 30775 var arrMatches = null; 30776 while (arrMatches = objPattern.exec(strData)) { 30777 var strMatchedDelimiter = arrMatches[1]; 30778 if (strMatchedDelimiter.length && strMatchedDelimiter !== strDelimiter) { 30779 arrData.push([]); 30780 } 30781 var strMatchedValue; 30782 if (arrMatches[2]) { 30783 strMatchedValue = arrMatches[2].replace(new RegExp('""', "g"), '"'); 30784 } else { 30785 strMatchedValue = arrMatches[3]; 30786 } 30787 arrData[arrData.length - 1].push(strMatchedValue); 30788 } 30789 return arrData; 30790 }, 30791 warn_page_name_change: function() { 30792 frappe.msgprint(__("Note: Changing the Page Name will break previous URL to this page.")); 30793 }, 30794 set_title: function(title) { 30795 frappe._original_title = title; 30796 if (frappe._title_prefix) { 30797 title = frappe._title_prefix + " " + title.replace(/<[^>]*>/g, ""); 30798 } 30799 document.title = title; 30800 const sub_path = frappe.router.get_sub_path(); 30801 frappe.route_titles[sub_path] = title; 30802 }, 30803 set_title_prefix: function(prefix) { 30804 frappe._title_prefix = prefix; 30805 frappe.utils.set_title(frappe._original_title); 30806 }, 30807 is_image_file: function(filename) { 30808 if (!filename) 30809 return false; 30810 filename = filename.split("?")[0]; 30811 return /\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(filename); 30812 }, 30813 is_video_file: function(filename) { 30814 if (!filename) 30815 return false; 30816 filename = filename.split("?")[0]; 30817 return /\.(mov|mp4|mkv|webm)$/i.test(filename); 30818 }, 30819 play_sound: function(name2) { 30820 try { 30821 if (frappe.boot.user.mute_sounds) { 30822 return; 30823 } 30824 var audio = $("#sound-" + name2)[0]; 30825 audio.volume = audio.getAttribute("volume"); 30826 audio.play(); 30827 } catch (e) { 30828 console.log("Cannot play sound", name2, e); 30829 } 30830 }, 30831 split_emails: function(txt) { 30832 var email_list = []; 30833 if (!txt) { 30834 return email_list; 30835 } 30836 txt.split(/[,\n](?=(?:[^"]|"[^"]*")*$)/g).forEach(function(email) { 30837 email = email.trim(); 30838 if (email) { 30839 email_list.push(email); 30840 } 30841 }); 30842 return email_list; 30843 }, 30844 supportsES6: function() { 30845 try { 30846 new Function("(a = 0) => a"); 30847 return true; 30848 } catch (err) { 30849 return false; 30850 } 30851 }(), 30852 throttle: function(func, wait, options) { 30853 var context, args, result; 30854 var timeout = null; 30855 var previous = 0; 30856 if (!options) 30857 options = {}; 30858 let later = function() { 30859 previous = options.leading === false ? 0 : Date.now(); 30860 timeout = null;
30861 result = func.apply(context, args); 30862 if (!timeout) 30863 context = args = null; 30864 }; 30865 return function() { 30866 var now = Date.now(); 30867 if (!previous && options.leading === false) 30868 previous = now; 30869 let remaining = wait - (now - previous); 30870 context = this; 30871 args = arguments; 30872 if (remaining <= 0 || remaining > wait) { 30873 if (timeout) { 30874 clearTimeout(timeout); 30875 timeout = null; 30876 } 30877 previous = now; 30878 result = func.apply(context, args); 30879 if (!timeout) 30880 context = args = null; 30881 } else if (!timeout && options.trailing !== false) { 30882 timeout = setTimeout(later, remaining); 30883 } 30884 return result; 30885 }; 30886 }, 30887 debounce: function(func, wait, immediate) { 30888 var timeout; 30889 return function() { 30890 var context = this, args = arguments; 30891 var later = function() { 30892 timeout = null; 30893 if (!immediate) 30894 func.apply(context, args); 30895 }; 30896 var callNow = immediate && !timeout; 30897 clearTimeout(timeout); 30898 timeout = setTimeout(later, wait); 30899 if (callNow) 30900 func.apply(context, args); 30901 }; 30902 }, 30903 get_form_link: function(doctype, name2, html = false, display_text = null, query_params_obj = null) { 30904 display_text = display_text || name2; 30905 name2 = encodeURIComponent(name2); 30906 let route = `/app/${encodeURIComponent(doctype.toLowerCase().replace(/ /g, "-"))}/${name2}`; 30907 if (query_params_obj) { 30908 route += frappe.utils.make_query_string(query_params_obj); 30909 } 30910 if (html) { 30911 return `<a href="${route}">${display_text}</a>`; 30912 } 30913 return route; 30914 }, 30915 get_route_label(route_str) { 30916 let route = route_str.split("/"); 30917 if (route[2] === "Report" || route[0] === "query-report") { 30918 return __("{0} Report", [__(route[3]) || __(route[1])]); 30919 } 30920 if (route[0] === "List") { 30921 return __("{0} List", [__(route[1])]); 30922 } 30923 if (route[0] === "modules") { 30924 return __("{0} Modules", [__(route[1])]); 30925 } 30926 if (route[0] === "dashboard") { 30927 return __("{0} Dashboard", [__(route[1])]); 30928 } 30929 return __(frappe.utils.to_title_case(__(route[0]), true)); 30930 }, 30931 report_column_total: function(values, column, type2) { 30932 if (column.column.disable_total) { 30933 return ""; 30934 } else if (values.length > 0) { 30935 if (column.column.fieldtype == "Percent" || type2 === "mean") { 30936 return values.reduce((a, b) => flt(a) + flt(b)) / values.length; 30937 } else if (column.column.fieldtype == "Int") { 30938 return values.reduce((a, b) => cint(a) + cint(b)); 30939 } else if (frappe.model.is_numeric_field(column.column.fieldtype)) { 30940 return values.reduce((a, b) => flt(a) + flt(b)); 30941 } else { 30942 return null; 30943 } 30944 } else { 30945 return null; 30946 } 30947 }, 30948 setup_search($wrapper, el_class, text_class, data_attr) { 30949 const $search_input = $wrapper.find('[data-element="search"]').show(); 30950 $search_input.focus().val(""); 30951 const $elements = $wrapper.find(el_class).show(); 30952 $search_input.off("keyup").on("keyup", () => { 30953 let text_filter = $search_input.val().toLowerCase(); 30954 text_filter = text_filter.replace(/^\s+|\s+$/g, ""); 30955 for (let i2 = 0; i2 < $elements.length; i2++) { 30956 const text_element = $elements.eq(i2).find(text_class); 30957 const text = text_element.text().toLowerCase(); 30958 let name2 = ""; 30959 if (data_attr && text_element.attr(data_attr)) { 30960 name2 = text_element.attr(data_attr).toLowerCase(); 30961 } 30962 if (text.includes(text_filter) || name2.includes(text_filter)) { 30963 $elements.eq(i2).css("display", ""); 30964 } else { 30965 $elements.eq(i2).css("display", "none"); 30966 } 30967 } 30968 }); 30969 }, 30970 setup_timer(start, end, $element) { 30971 const increment = end > start; 30972 let counter = start; 30973 let interval = setInterval(() => { 30974 increment ? counter++ : counter--; 30975 if (increment ? counter > end : counter < end) { 30976 clearInterval(interval); 30977 return; 30978 } 30979 $element.text(counter); 30980 }, 1e3); 30981 }, 30982 deep_equal(a, b) { 30983 return (0, import_fast_deep_equal.default)(a, b); 30984 }, 30985 deep_clone(obj, customizer) { 30986 return (0, import_cloneDeepWith.default)(obj, customizer); 30987 }, 30988 file_name_ellipsis(filename, length2) { 30989 let first_part_length = length2 * 2 / 3; 30990 let last_part_length = length2 - first_part_length; 30991 let parts2 = filename.split("."); 30992 let extn = parts2.pop(); 30993 let name2 = parts2.join(""); 30994 let first_part = name2.slice(0, first_part_length); 30995 let last_part = name2.slice(-last_part_length); 30996 if (name2.length > length2) { 30997 return `${first_part}...${last_part}.${extn}`; 30998 } else { 30999 return filename; 31000 } 31001 }, 31002 get_decoded_string(dataURI) { 31003 let parts2 = dataURI.split(","); 31004 const encoded_data = parts2[1]; 31005 let decoded = atob(encoded_data);
31006 try { 31007 const escaped = escape(decoded); 31008 decoded = decodeURIComponent(escaped); 31009 } catch (e) { 31010 } 31011 return decoded; 31012 }, 31013 copy_to_clipboard(string) { 31014 const show_success_alert = () => { 31015 frappe.show_alert({ 31016 indicator: "green", 31017 message: __("Copied to clipboard.") 31018 }); 31019 }; 31020 if (navigator.clipboard && window.isSecureContext) { 31021 navigator.clipboard.writeText(string).then(show_success_alert); 31022 } else { 31023 let input = $("<textarea>"); 31024 $("body").append(input); 31025 input.val(string).select(); 31026 document.execCommand("copy"); 31027 show_success_alert(); 31028 input.remove(); 31029 } 31030 }, 31031 is_rtl(lang = null) { 31032 return ["ar", "he", "fa", "ps"].includes(lang || frappe.boot.lang); 31033 }, 31034 bind_actions_with_object($el, object) { 31035 $($el).off("click.class_actions"); 31036 $($el).on("click.class_actions", "[data-action]", (e) => { 31037 let $target = $(e.currentTarget); 31038 let action = $target.data("action"); 31039 let method = object[action]; 31040 method ? object[action](e, $target) : null; 31041 }); 31042 return $el; 31043 }, 31044 eval(code, context = {}) { 31045 let variable_names = Object.keys(context); 31046 let variables = Object.values(context); 31047 code = `let out = ${code}; return out`; 31048 try { 31049 let expression_function = new Function(...variable_names, code); 31050 return expression_function(...variables); 31051 } catch (error) { 31052 console.log("Error evaluating the following expression:"); 31053 console.error(code); 31054 throw error; 31055 } 31056 }, 31057 get_browser() { 31058 let ua = navigator.userAgent; 31059 let tem; 31060 let M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || []; 31061 if (/trident/i.test(M[1])) { 31062 tem = /\brv[ :]+(\d+)/g.exec(ua) || []; 31063 return { name: "IE", version: tem[1] || "" }; 31064 } 31065 if (M[1] === "Chrome") { 31066 tem = ua.match(/\bOPR|Edge\/(\d+)/); 31067 if (tem != null) { 31068 return { name: "Opera", version: tem[1] }; 31069 } 31070 } 31071 M = M[2] ? [M[1], M[2]] : [navigator.appName, navigator.appVersion, "-?"]; 31072 if ((tem = ua.match(/version\/(\d+)/i)) != null) { 31073 M.splice(1, 1, tem[1]); 31074 } 31075 return { 31076 name: M[0], 31077 version: M[1] 31078 }; 31079 }, 31080 get_formatted_duration(value2, duration_options = null) { 31081 let duration = ""; 31082 if (!duration_options) { 31083 duration_options = { 31084 hide_days: 0, 31085 hide_seconds: 0 31086 }; 31087 } 31088 if (value2) { 31089 let total_duration = frappe.utils.seconds_to_duration(value2, duration_options); 31090 if (total_duration.days) { 31091 duration += total_duration.days + __("d", null, "Days (Field: Duration)"); 31092 } 31093 if (total_duration.hours) { 31094 duration += duration.length ? " " : ""; 31095 duration += total_duration.hours + __("h", null, "Hours (Field: Duration)"); 31096 } 31097 if (total_duration.minutes) { 31098 duration += duration.length ? " " : ""; 31099 duration += total_duration.minutes + __("m", null, "Minutes (Field: Duration)"); 31100 } 31101 if (total_duration.seconds) { 31102 duration += duration.length ? " " : ""; 31103 duration += total_duration.seconds + __("s", null, "Seconds (Field: Duration)"); 31104 } 31105 } 31106 return duration; 31107 }, 31108 seconds_to_duration(seconds, duration_options) { 31109 const round = seconds > 0 ? Math.floor : Math.ceil; 31110 const total_duration = { 31111 days: round(seconds / 86400), 31112 hours: round(seconds % 86400 / 3600), 31113 minutes: round(seconds % 3600 / 60), 31114 seconds: round(seconds % 60) 31115 }; 31116 if (duration_options && duration_options.hide_days) { 31117 total_duration.hours = round(seconds / 3600); 31118 total_duration.days = 0; 31119 } 31120 return total_duration; 31121 }, 31122 duration_to_seconds(days = 0, hours = 0, minutes = 0, seconds = 0) { 31123 let value2 = 0; 31124 if (days) { 31125 value2 += days * 24 * 60 * 60; 31126 } 31127 if (hours) { 31128 value2 += hours * 60 * 60; 31129 } 31130 if (minutes) { 31131 value2 += minutes * 60; 31132 } 31133 if (seconds) { 31134 value2 += seconds; 31135 } 31136 return value2; 31137 }, 31138 get_duration_options: function(docfield) { 31139 return { 31140 hide_days: docfield.hide_days, 31141 hide_seconds: docfield.hide_seconds 31142 }; 31143 }, 31144 get_number_system: function(country) { 31145 if (["Bangladesh", "India", "Myanmar", "Pakistan"].includes(country)) { 31146 return number_systems_default.indian; 31147 } else if (country == "Nepal") { 31148 return number_systems_default.nepalese; 31149 } else { 31150 return number_systems_default.default; 31151 } 31152 }, 31153 map_defaults: { 31154 center: [19.08, 72.8961], 31155 zoom: 13, 31156 tiles: "https://tile.openstreetmap.org/{z}/{x}/{y}.png", 31157 options: { 31158 attribution: '© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors' 31159 }, 31160 image_path: "/assets/frappe/images/leaflet/" 31161 }, 31162 icon(icon_name, size = "sm", icon_class = "", icon_style = "", svg_class = "") { 31163 let size_class = ""; 31164 let is_espresso = icon_name.startsWith("es-"); 31165 icon_name = is_espresso ? `${"#" + icon_name}` : `${"#icon-" + icon_name}`; 31166 if (typeof size == "object") { 31167 icon_style += ` width: ${size.width}; height: ${size.height}`; 31168 } else { 31169 size_class = `icon-${size}`; 31170 } 31171 return `<svg class="${is_espresso ? icon_name.startsWith("es-solid") ? "es-icon es-solid" : "es-icon es-line" : "icon"} ${svg_class} ${size_class}" style="${icon_style}" aria-hidden="true"> 31172 <use class="${icon_class}" href="${icon_name}"></use> 31173 </svg>`; 31174 }, 31175 flag(country_code) { 31176 return `<img 31177 src="https://flagcdn.com/${country_code}.svg" 31178 width="20" height="15">`; 31179 }, 31180 make_chart(wrapper, custom_options = {}) { 31181 let chart_args = { 31182 type: "bar", 31183 colors: ["light-blue"], 31184 axisOptions: { 31185 xIsSeries: 1, 31186 shortenYAxisNumbers: 1, 31187 xAxisMode: "tick", 31188 numberFormatter: frappe.utils.format_chart_axis_number 31189 } 31190 }; 31191 for (let key in custom_options) { 31192 if (typeof chart_args[key] === "object" && typeof custom_options[key] === "object") { 31193 chart_args[key] = Object.assign(chart_args[key], custom_options[key]); 31194 } else { 31195 chart_args[key] = custom_options[key]; 31196 } 31197 } 31198 return new frappe.Chart(wrapper, chart_args); 31199 }, 31200 format_chart_axis_number(label, country) { 31201 const default_country = frappe.sys_defaults.country; 31202 return frappe.utils.shorten_number(label, country || default_country, 3); 31203 }, 31204 generate_route(item) { 31205 const type2 = item.type.toLowerCase(); 31206 if (type2 === "doctype") { 31207 item.doctype = item.name; 31208 } 31209 let route = ""; 31210 if (!item.route) { 31211 if (item.link) { 31212 route = strip(item.link, "#"); 31213 } else if (type2 === "doctype") { 31214 let doctype_slug = frappe.router.slug(item.doctype); 31215 if (frappe.model.is_single(item.doctype)) { 31216 route = doctype_slug; 31217 } else { 31218 switch (item.doc_view) { 31219 case "List": 31220 if (item.filters) { 31221 frappe.route_options = item.filters; 31222 } 31223 route = `${doctype_slug}/view/list`; 31224 break; 31225 case "Tree": 31226 route = `${doctype_slug}/view/tree`; 31227 break; 31228 case "Report Builder": 31229 route = `${doctype_slug}/view/report`; 31230 break; 31231 case "Dashboard": 31232 route = `${doctype_slug}/view/dashboard`; 31233 break; 31234 case "New": 31235 route = `${doctype_slug}/new`; 31236 break; 31237 case "Calendar": 31238 route = `${doctype_slug}/view/calendar/default`; 31239 break; 31240 case "Kanban": 31241 route = `${doctype_slug}/view/kanban`; 31242 if (item.kanban_board) { 31243 route += `/${item.kanban_board}`; 31244 } 31245 break; 31246 default: 31247 route = doctype_slug; 31248 } 31249 } 31250 } else if (type2 === "report") { 31251 if (item.is_query_report) { 31252 route = "query-report/" + item.name; 31253 } else if (!item.is_query_report && item.report_ref_doctype) { 31254 route = frappe.router.slug(item.report_ref_doctype) + "/view/report/" + item.name; 31255 } else { 31256 route = "/report/" + item.name; 31257 } 31258 } else if (type2 === "page") { 31259 route = item.name; 31260 } else if (type2 === "dashboard") { 31261 route = `dashboard-view/${item.name}`; 31262 } 31263 } else { 31264 route = item.route; 31265 } 31266 if (item.route_options) { 31267 route += "?" + $.map(item.route_options, function(value2, key) { 31268 return encodeURIComponent(key) + "=" + encodeURIComponent(value2); 31269 }).join("&"); 31270 } 31271 return `/app/${route}`; 31272 }, 31273 shorten_number: function(number, country, min_length = 4, max_no_of_decimals = 2) { 31274 const len = String(number).match(/\d/g).length; 31275 if (len < min_length) { 31276 return number.toString(); 31277 } 31278 const number_system = this.get_number_system(country); 31279 let x = Math.abs(Math.round(number)); 31280 const x_string = x.toString(); 31281 if (x_string.length < min_length) { 31282 return x_string; 31283 } 31284 for (const map2 of number_system) { 31285 if (x >= map2.divisor) { 31286 let result = number / map2.divisor; 31287 const no_of_decimals = this.get_number_of_decimals(result); 31288 result = no_of_decimals > max_no_of_decimals ? result.toFixed(max_no_of_decimals) : result; 31289 return result + " " + map2.symbol; 31290 } 31291 } 31292 return number.toFixed(max_no_of_decimals); 31293 }, 31294 get_number_of_decimals: function(number) { 31295 if (Math.floor(number) === number) 31296 return 0; 31297 return number.toString().split(".")[1].length || 0; 31298 }, 31299 build_summary_item(summary) { 31300 if (summary.type == "separator") { 31301 return $(`<div class="summary-separator"> 31302 <div class="summary-value ${summary.color ? summary.color.toLowerCase() : "text-muted"}">${summary.value}</div> 31303 </div>`); 31304 } 31305 let df = { fieldtype: summary.datatype }; 31306 let doc = null; 31307 if (summary.datatype == "Currency") { 31308 df.options = "currency"; 31309 doc = { currency: summary.currency }; 31310 } 31311 let value2 = frappe.format(summary.value, df, { only_value: true }, doc); 31312 let color = summary.indicator ? summary.indicator.toLowerCase() : summary.color ? summary.color.toLowerCase() : ""; 31313 return $(`<div class="summary-item"> 31314 <span class="summary-label">${__(summary.label)}</span> 31315 <div class="summary-value ${color}">${value2}</div> 31316 </div>`); 31317 }, 31318 print(doctype, docname, print_format, letterhead, lang_code) { 31319 let w = window.open( 31320 frappe.urllib.get_full_url( 31321 "/printview?doctype=" + encodeURIComponent(doctype) + "&name=" + encodeURIComponent(docname) + "&trigger_print=1&format=" + encodeURIComponent(print_format) + "&no_letterhead=" + (letterhead ? "0" : "1") + "&letterhead=" + encodeURIComponent(letterhead) + (lang_code ? "&_lang=" + lang_code : "") 31322 ) 31323 ); 31324 if (!w) { 31325 frappe.msgprint(__("Please enable pop-ups")); 31326 return; 31327 } 31328 }, 31329 get_clipboard_data(clipboard_paste_event) { 31330 let e = clipboard_paste_event; 31331 let clipboard_data = e.clipboardData || window.clipboardData || e.originalEvent.clipboardData; 31332 return clipboard_data.getData("Text"); 31333 }, 31334 add_custom_button(html, action, class_name = "", title = "", btn_type, wrapper, prepend) { 31335 if (!btn_type) 31336 btn_type = "btn-secondary"; 31337 let button = $( 31338 `<button class="btn ${btn_type} btn-xs ${class_name}" title="${title}">${html}</button>` 31339 ); 31340 button.click((event) => { 31341 event.stopPropagation(); 31342 action && action(event); 31343 }); 31344 !prepend && button.appendTo(wrapper); 31345 prepend && wrapper.prepend(button); 31346 },
31347 add_select_group_button(wrapper, actions, btn_type, icon = "", prepend) { 31348 let selected_action = actions[0]; 31349 let $select_group_button = $(` 31350 <div class="btn-group select-group-btn"> 31351 <button type="button" class="btn ${btn_type} btn-sm selected-button"> 31352 <span class="left-icon">${icon && frappe.utils.icon(icon, "xs")}</span> 31353 <span class="label">${selected_action.label}</span> 31354 </button> 31355 31356 <button type="button" class="btn ${btn_type} btn-sm dropdown-toggle dropdown-toggle-split" data-toggle="dropdown"> 31357 ${frappe.utils.icon("down", "xs")} 31358 </button> 31359 31360 <ul class="dropdown-menu dropdown-menu-right" role="menu"></ul> 31361 </div> 31362 `); 31363 actions.forEach((action) => { 31364 $(`<li> 31365 <a class="dropdown-item flex"> 31366 <div class="tick-icon mr-2">${frappe.utils.icon("check", "xs")}</div> 31367 <div> 31368 <div class="item-label">${action.label}</div> 31369 <div class="item-description text-muted small">${action.description || ""}</div> 31370 </div> 31371 </a> 31372 </li>`).appendTo($select_group_button.find(".dropdown-menu")).click((e) => { 31373 selected_action = action; 31374 $select_group_button.find(".selected-button .label").text(action.label); 31375 $(e.currentTarget).find(".tick-icon").addClass("selected"); 31376 $(e.currentTarget).siblings().find(".tick-icon").removeClass("selected"); 31377 }); 31378 }); 31379 $select_group_button.find(".dropdown-menu li:first-child .tick-icon").addClass("selected"); 31380 $select_group_button.find(".selected-button").click((event) => { 31381 event.stopPropagation(); 31382 selected_action.action && selected_action.action(event); 31383 }); 31384 !prepend && $select_group_button.appendTo(wrapper); 31385 prepend && wrapper.prepend($select_group_button); 31386 return $select_group_button; 31387 }, 31388 sleep(time) { 31389 return new Promise((resolve) => setTimeout(resolve, time)); 31390 }, 31391 parse_array(array) { 31392 if (array && array.length !== 0) { 31393 return array; 31394 } 31395 return void 0; 31396 }, 31397 range(start, end) { 31398 if (!end) { 31399 end = start; 31400 start = 0; 31401 } 31402 let arr = []; 31403 for (let i2 = start; i2 < end; i2++) { 31404 arr.push(i2); 31405 } 31406 return arr; 31407 }, 31408 get_link_title(doctype, name2) { 31409 if (!doctype || !name2 || !frappe._link_titles) { 31410 return; 31411 } 31412 return frappe._link_titles[doctype + "::" + name2]; 31413 }, 31414 add_link_title(doctype, name2, value2) { 31415 if (!doctype || !name2) { 31416 return; 31417 } 31418 if (!frappe._link_titles) { 31419 frappe._link_titles = {}; 31420 } 31421 frappe._link_titles[doctype + "::" + name2] = value2; 31422 }, 31423 fetch_link_title(doctype, name2) { 31424 if (!doctype || !name2) { 31425 return; 31426 } 31427 try { 31428 return frappe.xcall("frappe.desk.search.get_link_title", { 31429 doctype, 31430 docname: name2 31431 }).then((title) => { 31432 frappe.utils.add_link_title(doctype, name2, title); 31433 return title; 31434 }); 31435 } catch (error) { 31436 console.log("Error while fetching link title."); 31437 console.log(error); 31438 return Promise.resolve(name2); 31439 } 31440 }, 31441 only_allow_num_decimal(input) { 31442 input.on("input", (e) => { 31443 let self2 = $(e.target); 31444 self2.val(self2.val().replace(/[^0-9.\-]/g, "")); 31445 if ((e.which != 46 || self2.val().indexOf(".") != -1) && (e.which < 48 || e.which > 57)) { 31446 e.preventDefault(); 31447 } 31448 }); 31449 }, 31450 string_to_boolean(string) { 31451 switch (string.toLowerCase().trim()) { 31452 case "t": 31453 case "true": 31454 case "y": 31455 case "yes": 31456 case "1": 31457 return true; 31458 case "f": 31459 case "false": 31460 case "n": 31461 case "no": 31462 case "0": 31463 case null: 31464 return false; 31465 default: 31466 return string; 31467 } 31468 }, 31469 get_filter_as_json(filters) { 31470 let filter = null; 31471 if (filters.length) { 31472 filter = {}; 31473 filters.forEach((arr) => { 31474 filter[arr[1]] = [arr[2], arr[3]]; 31475 }); 31476 filter = JSON.stringify(filter); 31477 } 31478 return filter; 31479 }, 31480 process_filter_expression(filter) { 31481 return new Function(`return ${filter}`)(); 31482 }, 31483 get_filter_from_json(filter_json, doctype) { 31484 if (filter_json) { 31485 if (!filter_json.length) { 31486 return []; 31487 } 31488 const filters_json = this.process_filter_expression(filter_json); 31489 if (!doctype) { 31490 if (Array.isArray(filters_json)) { 31491 let filter = {}; 31492 filters_json.forEach((arr) => { 31493 filter[arr[1]] = [arr[2], arr[3]]; 31494 }); 31495 return filter || []; 31496 } 31497 return filters_json || []; 31498 } 31499 if (Array.isArray(filters_json)) { 31500 return filters_json; 31501 } 31502 return Object.keys(filters_json).map((filter) => {
31503 let val = filters_json[filter]; 31504 return [doctype, filter, val[0], val[1], false]; 31505 }); 31506 } 31507 }, 31508 load_video_player() { 31509 return frappe.require("video_player.bundle.js"); 31510 }, 31511 is_current_user(user) { 31512 return user === frappe.session.user; 31513 }, 31514 debug: { 31515 watch_property(obj, prop, callback = console.trace) { 31516 if (!frappe.boot.developer_mode) { 31517 return; 31518 } 31519 console.warn("Adding property watcher, make sure to remove it after debugging."); 31520 const private_prop = "$_" + prop + "_$"; 31521 obj[private_prop] = obj[prop]; 31522 Object.defineProperty(obj, prop, { 31523 get: function() { 31524 return obj[private_prop]; 31525 }, 31526 set: function(value2) { 31527 callback(); 31528 obj[private_prop] = value2; 31529 } 31530 }); 31531 } 31532 }, 31533 generate_tracking_url() { 31534 frappe.prompt( 31535 [ 31536 { 31537 fieldname: "url", 31538 label: __("Web Page URL"), 31539 fieldtype: "Data", 31540 options: "URL", 31541 reqd: 1, 31542 default: localStorage.getItem("tracker_url:url") 31543 }, 31544 { 31545 fieldname: "source", 31546 label: __("Source"), 31547 fieldtype: "Data", 31548 default: localStorage.getItem("tracker_url:source") 31549 }, 31550 { 31551 fieldname: "campaign", 31552 label: __("Campaign"), 31553 fieldtype: "Link", 31554 ignore_link_validation: 1, 31555 options: "Marketing Campaign", 31556 default: localStorage.getItem("tracker_url:campaign") 31557 }, 31558 { 31559 fieldname: "medium", 31560 label: __("Medium"), 31561 fieldtype: "Data", 31562 default: localStorage.getItem("tracker_url:medium") 31563 } 31564 ], 31565 function(data) { 31566 let url2 = data.url; 31567 localStorage.setItem("tracker_url:url", data.url); 31568 if (data.source) { 31569 url2 += "?source=" + data.source; 31570 localStorage.setItem("tracker_url:source", data.source); 31571 } 31572 if (data.campaign) { 31573 url2 += "&campaign=" + data.campaign; 31574 localStorage.setItem("tracker_url:campaign", data.campaign); 31575 } 31576 if (data.medium) { 31577 url2 += "&medium=" + data.medium.toLowerCase(); 31578 localStorage.setItem("tracker_url:medium", data.medium); 31579 } 31580 frappe.utils.copy_to_clipboard(url2); 31581 frappe.msgprint( 31582 __("Tracking URL generated and copied to clipboard") + `: <br><a href="${url2}">${url2.bold()}</a>`, 31583 __("Here's your tracking URL") 31584 ); 31585 }, 31586 __("Generate Tracking URL") 31587 ); 31588 } 31589 }); 31590 31591
31591// frappe/public/js/frappe/utils/common.js 31592 var import_md5 = __toESM(require_md5()); 31593 frappe.avatar = function(user, css_class, title, image_url = null, remove_color = false, filterable = false) { 31594 let user_info; 31595 if (user) { 31596 user_info = frappe.user_info(user); 31597 } else { 31598 let full_name = title || frappe.get_cookie("full_name"); 31599 user_info = { 31600 image: image_url === null ? frappe.get_cookie("user_image") : image_url, 31601 fullname: full_name, 31602 abbr: frappe.get_abbr(full_name), 31603 color: frappe.get_palette(full_name) 31604 }; 31605 } 31606 if (!title) { 31607 title = user_info.fullname; 31608 } 31609 let data_attr = ""; 31610 if (filterable) { 31611 css_class += " filterable"; 31612 data_attr = `data-filter="_assign,like,%${user}%"`; 31613 } 31614 return frappe.get_avatar( 31615 css_class, 31616 title, 31617 image_url || user_info.image, 31618 remove_color, 31619 data_attr 31620 ); 31621 }; 31622 frappe.get_avatar = function(css_class, title, image_url = null, remove_color, data_attributes) { 31623 if (!css_class) { 31624 css_class = "avatar-small"; 31625 } 31626 let el = document.createElement("div"); 31627 if (image_url) { 31628 el.innerHTML = ` 31629 <span class="avatar ${css_class}" ${data_attributes}> 31630 <span class="avatar-frame" style='background-image: url("${image_url}")'</span> 31631 </span>`; 31632 } else { 31633 let abbr = frappe.get_abbr(title); 31634 let style = ""; 31635 if (!remove_color) { 31636 let color = frappe.get_palette(title); 31637 style = `background-color: var(${color[0]}); color: var(${color[1]})`; 31638 } 31639 if (css_class === "avatar-small" || css_class == "avatar-xs") { 31640 abbr = abbr.substr(0, 1); 31641 } 31642 el.innerHTML = `<span class="avatar ${css_class}" ${data_attributes}> 31643 <div class="avatar-frame standard-image" 31644 style="${style}"> 31645 ${abbr} 31646 </div> 31647 </span>`; 31648 } 31649 el.querySelector(".avatar").setAttribute("title", title); 31650 el.querySelector(".avatar-frame").setAttribute("title", title); 31651 return el.innerHTML; 31652 }; 31653 frappe.avatar_group = function(users, limit = 4, options = {}) { 31654 let avatar_action_html = ""; 31655 const display_users = users.slice(0, limit); 31656 const extra_users = users.slice(limit); 31657 const css_class = options.css_class || ""; 31658 let html = display_users.map( 31659 (user) => frappe.avatar(user, "avatar-small " + css_class, null, null, false, options.filterable) 31660 ).join(""); 31661 if (extra_users.length === 1) { 31662 html += frappe.avatar( 31663 extra_users[0], 31664 "avatar-small " + css_class, 31665 null, 31666 null, 31667 false, 31668 options.filterable 31669 ); 31670 } else if (extra_users.length > 1) { 31671 html = ` 31672 ${html} 31673 <span class="avatar avatar-small ${css_class}"> 31674 <div class="avatar-frame standard-image avatar-extra-count" 31675 title="${extra_users.map((u) => frappe.user_info(u).fullname).join(", ")}"> 31676 +${extra_users.length} 31677 </div> 31678 </span> 31679 `; 31680 } 31681 if (options.action_icon) { 31682 avatar_action_html = ` 31683 <span class="avatar avatar-small"> 31684 <div class="avatar-frame avatar-action"> 31685 ${frappe.utils.icon(options.action_icon, "sm")} 31686 </div> 31687 </span> 31688 `; 31689 } 31690 const $avatar_group = $(`<div class="avatar-group ${options.align || "right"} ${options.overlap != false ? "overlap" : ""}"> 31691 ${html} 31692 ${avatar_action_html} 31693 </div>`); 31694 $avatar_group.find(".avatar-action").on("click", options.action); 31695 return $avatar_group; 31696 }; 31697 frappe.ui.scroll = function(element, animate, additional_offset) { 31698 var header_offset = $(".navbar").height() + $(".page-head").height(); 31699 var top = $(element).offset().top - header_offset - cint(additional_offset); 31700 if (animate) { 31701 $("html, body").animate({ scrollTop: top }); 31702 } else { 31703 $(window).scrollTop(top); 31704 } 31705 }; 31706 frappe.palette = [ 31707 ["--orange-avatar-bg", "--orange-avatar-color"], 31708 ["--pink-avatar-bg", "--pink-avatar-color"], 31709 ["--blue-avatar-bg", "--blue-avatar-color"], 31710 ["--green-avatar-bg", "--green-avatar-color"], 31711 ["--dark-green-avatar-bg", "--dark-green-avatar-color"], 31712 ["--red-avatar-bg", "--red-avatar-color"], 31713 ["--yellow-avatar-bg", "--yellow-avatar-color"], 31714 ["--purple-avatar-bg", "--purple-avatar-color"], 31715 ["--gray-avatar-bg", "--gray-avatar-color0"] 31716 ]; 31717 frappe.get_palette = function(txt) { 31718 if (!txt) 31719 return frappe.palette[8]; 31720 var idx = cint((parseInt((0, import_md5.default)(txt).substr(4, 2), 16) + 1) / 5.33); 31721 return frappe.palette[idx % 8]; 31722 }; 31723 frappe.get_abbr = function(txt, max_length) { 31724 if (!txt) 31725 return ""; 31726 var abbr = ""; 31727 $.each(txt.split(" "), function(i2, w) { 31728 if (abbr.length >= (max_length || 2)) { 31729 return false;
31730 } else if (!w.trim().length) { 31731 return true; 31732 } 31733 abbr += w.trim()[0]; 31734 }); 31735 return abbr || "?"; 31736 }; 31737 frappe.gravatars = {}; 31738 frappe.get_gravatar = function(email_id, size = 0) { 31739 var param = size ? "s=" + size : "d=retro"; 31740 if (!frappe.gravatars[email_id]) { 31741 frappe.gravatars[email_id] = "https://secure.gravatar.com/avatar/" + (0, import_md5.default)(email_id) + "?" + param; 31742 } 31743 return frappe.gravatars[email_id]; 31744 }; 31745 window.repl = function repl2(s, dict) { 31746 if (s == null) 31747 return ""; 31748 for (var key in dict) { 31749 s = s.split("%(" + key + ")s").join(dict[key]); 31750 } 31751 return s; 31752 }; 31753 window.replace_all = function(s, t1, t2) { 31754 return s.split(t1).join(t2); 31755 }; 31756 window.strip_html = function(txt) { 31757 return cstr(txt).replace(/<[^>]*>/g, ""); 31758 }; 31759 window.strip = function(s, chars2) { 31760 if (s) { 31761 s = lstrip(s, chars2); 31762 s = rstrip(s, chars2); 31763 return s; 31764 } 31765 }; 31766 window.lstrip = function lstrip2(s, chars2) { 31767 if (!chars2) 31768 chars2 = ["\n", " ", " "]; 31769 let first_char = s.substr(0, 1); 31770 while (chars2.includes(first_char)) { 31771 s = s.substr(1); 31772 first_char = s.substr(0, 1); 31773 } 31774 return s; 31775 }; 31776 window.rstrip = function(s, chars2) { 31777 if (!chars2) 31778 chars2 = ["\n", " ", " "]; 31779 let last_char = s.substr(s.length - 1); 31780 while (chars2.includes(last_char)) { 31781 s = s.substr(0, s.length - 1); 31782 last_char = s.substr(s.length - 1); 31783 } 31784 return s; 31785 }; 31786 frappe.get_cookie = function getCookie(name2) { 31787 return frappe.get_cookies()[name2]; 31788 }; 31789 frappe.get_cookies = function getCookies() { 31790 var c = document.cookie, v = 0, cookies = {}; 31791 if (document.cookie.match(/^\s*\$Version=(?:"1"|1);\s*(.*)/)) { 31792 c = RegExp.$1; 31793 v = 1; 31794 } 31795 if (v === 0) { 31796 c.split(/[,;]/).map(function(cookie) { 31797 var parts2 = cookie.split(/=/, 2), name2 = decodeURIComponent(parts2[0].trimLeft()), value2 = parts2.length > 1 ? decodeURIComponent(parts2[1].trimRight()) : null; 31798 if (value2 && value2.charAt(0) === '"') { 31799 value2 = value2.substr(1, value2.length - 2); 31800 } 31801 cookies[name2] = value2; 31802 }); 31803 } else { 31804 c.match( 31805 /(?:^|\s+)([!#$%&'*+\-.0-9A-Z^`a-z|~]+)=([!#$%&'*+\-.0-9A-Z^`a-z|~]*|"(?:[\x20-\x7E\x80\xFF]|\\[\x00-\x7F])*")(?=\s*[,;]|$)/g 31806 ).map(function($0, $1) { 31807 var name2 = $0, value2 = $1.charAt(0) === '"' ? $1.substr(1, -1).replace(/\\(.)/g, "$1") : $1; 31808 cookies[name2] = value2; 31809 }); 31810 } 31811 return cookies; 31812 }; 31813 frappe.is_mobile = function() { 31814 return $(document).width() < 768; 31815 }; 31816 frappe.is_large_screen = function() { 31817 return $(document).height() > 1180; 31818 }; 31819 frappe.utils.xss_sanitise = function(string, options) { 31820 let sanitised = string; 31821 const DEFAULT_OPTIONS = { 31822 strategies: ["html", "js"] 31823 }; 31824 const HTML_ESCAPE_MAP = { 31825 "<": "<", 31826 ">": ">", 31827 '"': """, 31828 "'": "'", 31829 "/": "/" 31830 }; 31831 const REGEX_SCRIPT = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi; 31832 const REGEX_ALERT = /confirm\(.*\)|alert\(.*\)|prompt\(.*\)/gi; 31833 options = Object.assign({}, DEFAULT_OPTIONS, options); 31834 if (options.strategies.includes("js")) { 31835 sanitised = sanitised.replace(REGEX_SCRIPT, ""); 31836 sanitised = sanitised.replace(REGEX_ALERT, ""); 31837 } 31838 if (options.strategies.includes("html")) { 31839 for (let char in HTML_ESCAPE_MAP) { 31840 const escape2 = HTML_ESCAPE_MAP[char]; 31841 const regex = new RegExp(char, "g"); 31842 sanitised = sanitised.replace(regex, escape2); 31843 } 31844 } 31845 return sanitised; 31846 }; 31847 frappe.utils.sanitise_redirect = (url2) => { 31848 const is_external = (() => { 31849 return (url3) => { 31850 function domain(url4) { 31851 let base_domain = /^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^:/\n?]+)/gim.exec( 31852 url4 31853 ); 31854 return base_domain == null ? "" : base_domain[1]; 31855 } 31856 function is_absolute(url4) { 31857 return /^(?:[a-z]+:)?\/\//i.test(url4); 31858 } 31859 return is_absolute(url3) ? domain(location.href) !== domain(url3) : false;
31860 }; 31861 })(); 31862 const sanitise_javascript = (url3) => { 31863 const REGEX_ESC_UNIT = /\s*(&#x.{1,7})?/; 31864 const REGEX_SCRIPT = new RegExp( 31865 Array.from("javascript").join(REGEX_ESC_UNIT.source), 31866 "gi" 31867 ); 31868 return url3.replace(REGEX_SCRIPT, ""); 31869 }; 31870 url2 = frappe.utils.strip_url(url2); 31871 return is_external(url2) ? "" : sanitise_javascript(frappe.utils.xss_sanitise(url2, { strategies: ["js"] })); 31872 }; 31873 frappe.utils.strip_url = (url2) => { 31874 return url2.replace(/^[^A-Za-z0-9(//)#]+/g, ""); 31875 }; 31876 frappe.utils.new_auto_repeat_prompt = function(frm) { 31877 const fields = [ 31878 { 31879 fieldname: "frequency", 31880 fieldtype: "Select", 31881 label: __("Frequency"), 31882 reqd: 1, 31883 options: [ 31884 { label: __("Daily"), value: "Daily" }, 31885 { label: __("Weekly"), value: "Weekly" }, 31886 { label: __("Monthly"), value: "Monthly" }, 31887 { label: __("Quarterly"), value: "Quarterly" }, 31888 { label: __("Half-yearly"), value: "Half-yearly" }, 31889 { label: __("Yearly"), value: "Yearly" } 31890 ] 31891 }, 31892 { 31893 fieldname: "start_date", 31894 fieldtype: "Date", 31895 label: __("Start Date"), 31896 reqd: 1, 31897 default: frappe.datetime.nowdate() 31898 }, 31899 { 31900 fieldname: "end_date", 31901 fieldtype: "Date", 31902 label: __("End Date") 31903 } 31904 ]; 31905 frappe.prompt( 31906 fields, 31907 function(values) { 31908 frappe.call({ 31909 method: "frappe.automation.doctype.auto_repeat.auto_repeat.make_auto_repeat", 31910 args: { 31911 doctype: frm.doc.doctype, 31912 docname: frm.doc.name, 31913 frequency: values["frequency"], 31914 start_date: values["start_date"], 31915 end_date: values["end_date"] 31916 }, 31917 callback: function(r) { 31918 if (r.message) { 31919 frappe.show_alert({ 31920 message: __("Auto Repeat created for this document"), 31921 indicator: "green" 31922 }); 31923 frm.reload_doc(); 31924 } 31925 } 31926 }); 31927 }, 31928 __("Auto Repeat"), 31929 __("Save") 31930 ); 31931 }; 31932 frappe.utils.get_page_view_count = function(route) { 31933 return frappe.call("frappe.website.doctype.web_page_view.web_page_view.get_page_view_count", { 31934 path: route 31935 }); 31936 }; 31937 31938
31938// frappe/public/js/frappe/form/section.js 31939 var Section = class { 31940 constructor(parent, df, card_layout, layout) { 31941 this.layout = layout; 31942 this.card_layout = card_layout; 31943 this.parent = parent; 31944 this.df = df || {}; 31945 this.columns = []; 31946 this.fields_list = []; 31947 this.fields_dict = {}; 31948 this.make(); 31949 if (this.df.label && this.df.collapsible && localStorage.getItem(df.css_class + "-closed")) { 31950 this.collapse(); 31951 } 31952 this.row = { 31953 wrapper: this.wrapper 31954 }; 31955 this.refresh(); 31956 } 31957 make() { 31958 let make_card = this.card_layout; 31959 this.wrapper = $(`<div class="row 31960 ${this.df.is_dashboard_section ? "form-dashboard-section" : "form-section"} 31961 ${make_card ? "card-section" : ""}" data-fieldname="${this.df.fieldname}"> 31962 `).appendTo(this.parent); 31963 if (this.df) { 31964 if (this.df.label) { 31965 this.make_head(); 31966 } 31967 if (this.df.description) { 31968 this.description_wrapper = $( 31969 `<div class="col-sm-12 form-section-description"> 31970 ${__(this.df.description)} 31971 </div>` 31972 ); 31973 this.wrapper.append(this.description_wrapper); 31974 } 31975 if (this.df.css_class) { 31976 this.wrapper.addClass(this.df.css_class); 31977 } 31978 if (this.df.hide_border) { 31979 this.wrapper.toggleClass("hide-border", true); 31980 } 31981 } 31982 this.body = $('<div class="section-body">').appendTo(this.wrapper); 31983 if (this.df.body_html) { 31984 this.body.append(this.df.body_html); 31985 } 31986 } 31987 make_head() { 31988 this.head = $(` 31989 <div class="section-head"> 31990 ${__(this.df.label, null, this.df.parent)} 31991 <span class="ml-2 collapse-indicator mb-1"></span> 31992 </div> 31993 `); 31994 this.head.appendTo(this.wrapper); 31995 this.indicator = this.head.find(".collapse-indicator"); 31996 this.indicator.hide(); 31997 if (this.df.collapsible) { 31998 this.head.addClass("collapsible"); 31999 this.collapse_link = this.head.on("click", () => { 32000 this.collapse(); 32001 }); 32002 this.set_icon(); 32003 this.indicator.show(); 32004 } 32005 } 32006 replace_field(fieldname, fieldobj) { 32007 var _a; 32008 if ((_a = this.fields_dict[fieldname]) == null ? void 0 : _a.df) { 32009 const olfldobj = this.fields_dict[fieldname]; 32010 const idx = this.fields_list.findIndex((e) => e == olfldobj); 32011 this.fields_list.splice(idx, 1, fieldobj); 32012 this.fields_dict[fieldname] = fieldobj; 32013 fieldobj.section = this; 32014 } 32015 } 32016 add_field(fieldobj) { 32017 this.fields_list.push(fieldobj); 32018 this.fields_dict[fieldobj.df.fieldname] = fieldobj; 32019 fieldobj.section = this; 32020 } 32021 refresh(hide) { 32022 if (!this.df) 32023 return; 32024 hide = hide || this.df.hidden || this.df.hidden_due_to_dependency; 32025 this.wrapper.toggleClass("hide-control", !!hide); 32026 } 32027 collapse(hide) { 32028 if (!(this.head && this.body)) { 32029 return; 32030 } 32031 if (hide === void 0) { 32032 hide = !this.body.hasClass("hide"); 32033 } 32034 this.body.toggleClass("hide", hide); 32035 this.head && this.head.toggleClass("collapsed", hide); 32036 this.set_icon(hide); 32037 this.fields_list.forEach((f) => f.on_section_collapse && f.on_section_collapse(hide)); 32038 if (this.df.css_class) 32039 localStorage.setItem(this.df.css_class + "-closed", hide ? "1" : ""); 32040 } 32041 set_icon(hide) { 32042 let indicator_icon = hide ? "es-line-down" : "es-line-up"; 32043 this.indicator && this.indicator.html(frappe.utils.icon(indicator_icon, "sm", "mb-1")); 32044 } 32045 is_collapsed() { 32046 return this.body.hasClass("hide"); 32047 } 32048 has_missing_mandatory() { 32049 let missing_mandatory = false; 32050 for (let j = 0, l = this.fields_list.length; j < l; j++) { 32051 const section_df = this.fields_list[j].df; 32052 if (section_df.reqd && this.layout.doc[section_df.fieldname] == null) { 32053 missing_mandatory = true; 32054 break; 32055 } 32056 } 32057 return missing_mandatory; 32058 } 32059 hide() { 32060 this.on_section_toggle(false); 32061 } 32062 show() { 32063 this.on_section_toggle(true); 32064 } 32065 on_section_toggle(show) { 32066 this.wrapper.toggleClass("hide-control", !show); 32067 } 32068 }; 32069 32070
32070// frappe/public/js/frappe/form/tab.js 32071 var Tab2 = class { 32072 constructor(layout, df, frm, tab_link_container, tabs_content) { 32073 var _a, _b; 32074 this.layout = layout; 32075 this.df = df || {}; 32076 this.frm = frm; 32077 this.doctype = (_b = (_a = this.frm) == null ? void 0 : _a.doctype) != null ? _b : this.df.parent; 32078 this.label = this.df && this.df.label; 32079 this.tab_link_container = tab_link_container; 32080 this.tabs_content = tabs_content; 32081 this.make(); 32082 this.setup_listeners(); 32083 this.refresh(); 32084 } 32085 make() { 32086 const id = `${frappe.scrub(this.doctype, "-")}-${this.df.fieldname}`; 32087 this.tab_link = $(` 32088 <li class="nav-item"> 32089 <a class="nav-link ${this.df.active ? "active" : ""}" id="${id}-tab" 32090 data-toggle="tab" 32091 data-fieldname="${this.df.fieldname}" 32092 href="#${id}" 32093 role="tab" 32094 aria-controls="${id}"> 32095 ${__(this.label)} 32096 </a> 32097 </li> 32098 `).appendTo(this.tab_link_container); 32099 this.wrapper = $(`<div class="tab-pane fade show ${this.df.active ? "active" : ""}" 32100 id="${id}" role="tabpanel" aria-labelledby="${id}-tab">`).appendTo(this.tabs_content); 32101 } 32102 refresh() { 32103 if (!this.df) 32104 return; 32105 let hide = this.df.hidden || this.df.hidden_due_to_dependency; 32106 if (!hide && this.frm && !this.frm.get_perm(this.df.permlevel || 0, "read")) { 32107 hide = true; 32108 } 32109 if (!hide) { 32110 hide = true; 32111 if (this.wrapper.find( 32112 ".form-section:not(.hide-control, .empty-section), .form-dashboard-section:not(.hide-control, .empty-section)" 32113 ).length) { 32114 hide = false;
32115 } 32116 } 32117 this.toggle(!hide); 32118 } 32119 toggle(show) { 32120 this.tab_link.toggleClass("hide", !show); 32121 this.wrapper.toggleClass("hide", !show); 32122 this.tab_link.toggleClass("show", show); 32123 this.wrapper.toggleClass("show", show); 32124 this.hidden = !show; 32125 } 32126 show() { 32127 this.tab_link.show(); 32128 } 32129 hide() { 32130 this.tab_link.hide(); 32131 } 32132 add_field(fieldobj) { 32133 fieldobj.tab = this; 32134 } 32135 replace_field(fieldobj) { 32136 fieldobj.tab = this; 32137 } 32138 set_active() { 32139 var _a, _b; 32140 this.tab_link.find(".nav-link").tab("show"); 32141 this.wrapper.addClass("show"); 32142 (_b = (_a = this.frm) == null ? void 0 : _a.set_active_tab) == null ? void 0 : _b.call(_a, this); 32143 } 32144 is_active() { 32145 return this.wrapper.hasClass("active"); 32146 } 32147 is_hidden() { 32148 return this.wrapper.hasClass("hide") && this.tab_link.hasClass("hide"); 32149 } 32150 setup_listeners() { 32151 this.tab_link.find(".nav-link").on("shown.bs.tab", () => { 32152 var _a, _b; 32153 (_b = this == null ? void 0 : (_a = this.frm).set_active_tab) == null ? void 0 : _b.call(_a, this); 32154 }); 32155 } 32156 }; 32157 32158
32158// frappe/public/js/frappe/form/column.js 32159 var Column = class { 32160 constructor(section, df) { 32161 if (!df) 32162 df = {}; 32163 this.df = df; 32164 this.section = section; 32165 this.section.columns.push(this); 32166 this.make(); 32167 this.resize_all_columns(); 32168 } 32169 make() { 32170 this.wrapper = $(` 32171 <div class="form-column" data-fieldname="${this.df.fieldname}"> 32172 <form> 32173 </form> 32174 </div> 32175 `).appendTo(this.section.body); 32176 this.form = this.wrapper.find("form").on("submit", () => false); 32177 if (this.df.description) { 32178 $(` 32179 <p class="col-sm-12 form-column-description"> 32180 ${__(this.df.description)} 32181 </p> 32182 `).prependTo(this.wrapper); 32183 } 32184 if (this.df.label) { 32185 $(` 32186 <label class="column-label"> 32187 ${__(this.df.label, null, this.df.parent)} 32188 </label> 32189 `).prependTo(this.wrapper); 32190 } 32191 } 32192 resize_all_columns() { 32193 let columns = this.section.wrapper.find(".form-column").length; 32194 let colspan = cint(12 / columns); 32195 if (columns == 5) { 32196 colspan = 20; 32197 } 32198 this.section.wrapper.find(".form-column").removeClass().addClass("form-column").addClass("col-sm-" + colspan); 32199 } 32200 add_field() { 32201 } 32202 refresh() { 32203 this.section.refresh(); 32204 } 32205 }; 32206 32207
32207// frappe/public/js/frappe/form/layout.js 32208 frappe.ui.form.Layout = class Layout { 32209 constructor(opts) { 32210 this.views = {}; 32211 this.pages = []; 32212 this.tabs = []; 32213 this.sections = []; 32214 this.page_breaks = []; 32215 this.sections_dict = {}; 32216 this.fields_list = []; 32217 this.fields_dict = {}; 32218 this.section_count = 0; 32219 this.column_count = 0; 32220 $.extend(this, opts); 32221 } 32222 make() { 32223 if (!this.parent && this.body) { 32224 this.parent = this.body; 32225 } 32226 this.wrapper = $('<div class="form-layout">').appendTo(this.parent); 32227 this.message = $('<div class="form-message hidden"></div>').appendTo(this.wrapper); 32228 this.page = $('<div class="form-page"></div>').appendTo(this.wrapper); 32229 if (!this.fields) { 32230 this.fields = this.get_doctype_fields(); 32231 } 32232 if (this.is_tabbed_layout()) { 32233 this.setup_tabbed_layout(); 32234 } 32235 this.setup_tab_events(); 32236 this.frm && this.setup_tooltip_events(); 32237 this.render(); 32238 } 32239 setup_tabbed_layout() { 32240 $(` 32241 <div class="form-tabs-list"> 32242 <ul class="nav form-tabs" id="form-tabs" role="tablist"></ul> 32243 </div> 32244 `).appendTo(this.page); 32245 this.tab_link_container = this.page.find(".form-tabs"); 32246 this.tabs_content = $(`<div class="form-tab-content tab-content"></div>`).appendTo( 32247 this.page 32248 ); 32249 this.setup_events(); 32250 } 32251 get_doctype_fields() { 32252 let fields = [this.get_new_name_field()]; 32253 if (this.doctype_layout) { 32254 fields = fields.concat(this.get_fields_from_layout()); 32255 } else { 32256 fields = fields.concat( 32257 frappe.meta.sort_docfields(frappe.meta.docfield_map[this.doctype]) 32258 ); 32259 } 32260 return fields; 32261 } 32262 get_new_name_field() { 32263 return { 32264 parent: this.frm.doctype, 32265 fieldtype: "Data", 32266 fieldname: "__newname", 32267 reqd: 1, 32268 hidden: 1, 32269 label: __("Name"), 32270 get_status: function(field) { 32271 if (field.frm && field.frm.is_new() && field.frm.meta.autoname && ["prompt", "name"].includes(field.frm.meta.autoname.toLowerCase())) { 32272 return "Write"; 32273 } 32274 return "None"; 32275 } 32276 }; 32277 } 32278 get_fields_from_layout() { 32279 const fields = []; 32280 for (let f of this.doctype_layout.fields) { 32281 const docfield = copy_dict(frappe.meta.docfield_map[this.doctype][f.fieldname]); 32282 docfield.label = f.label; 32283 fields.push(docfield); 32284 } 32285 return fields; 32286 } 32287 show_message(html, color) { 32288 if (this.message_color) { 32289 this.message.removeClass(this.message_color); 32290 } 32291 let close_message = $(`<div class="close-message">${frappe.utils.icon("close")}</div>`); 32292 this.message_color = color && ["yellow", "blue", "red", "green", "orange"].includes(color) ? color : "blue"; 32293 if (html) { 32294 if (html.substr(0, 1) !== "<") { 32295 html = "<div>" + html + "</div>"; 32296 } 32297 this.message.removeClass("hidden").addClass(this.message_color); 32298 $(html).appendTo(this.message); 32299 close_message.appendTo(this.message); 32300 close_message.on("click", () => this.message.empty().addClass("hidden")); 32301 } else { 32302 this.message.empty().addClass("hidden"); 32303 } 32304 } 32305 render(new_fields) { 32306 let fields = new_fields || this.fields; 32307 this.section = null; 32308 this.column = null; 32309 if (this.no_opening_section() && !this.is_tabbed_layout()) { 32310 this.fields.unshift({ fieldtype: "Section Break" }); 32311 } 32312 if (this.is_tabbed_layout()) { 32313 let default_tab = { 32314 label: __("Details"), 32315 fieldtype: "Tab Break", 32316 fieldname: "__details" 32317 }; 32318 let first_field_visible = this.fields.find((element) => element.hidden == false); 32319 let first_tab = (first_field_visible == null ? void 0 : first_field_visible.fieldtype) === "Tab Break" ? first_field_visible : null; 32320 if (!first_tab) { 32321 this.fields.splice(0, 0, default_tab); 32322 } else { 32323 let newname_field = this.fields.find((df) => df.fieldname === "__newname"); 32324 if (newname_field && newname_field.get_status(this) === "Write") { 32325 this.fields.splice(0, 1); 32326 this.fields.splice(1, 0, newname_field); 32327 } 32328 } 32329 } 32330 fields.forEach((df) => { 32331 switch (df.fieldtype) { 32332 case "Fold": 32333 this.make_page(df); 32334 break; 32335 case "Page Break": 32336 this.make_page_break(); 32337 this.make_section(df); 32338 break; 32339 case "Section Break": 32340 this.make_section(df); 32341 break; 32342 case "Column Break": 32343 this.make_column(df); 32344 break; 32345 case "Tab Break": 32346 this.make_tab(df); 32347 break; 32348 default: 32349 this.make_field(df); 32350 } 32351 }); 32352 } 32353 no_opening_section() { 32354 return this.fields[0] && this.fields[0].fieldtype != "Section Break" || !this.fields.length; 32355 } 32356 no_opening_tab() { 32357 return this.fields[1] && this.fields[1].fieldtype != "Tab Break" || !this.fields.length; 32358 } 32359 is_tabbed_layout() { 32360 return this.fields.find((f) => f.fieldtype === "Tab Break"); 32361 } 32362 replace_field(fieldname, df, render) { 32363 var _a; 32364 df.fieldname = fieldname; 32365 if (this.fields_dict[fieldname] && this.fields_dict[fieldname].df) { 32366 const prev_fieldobj = this.fields_dict[fieldname]; 32367 const fieldobj = this.init_field(df, prev_fieldobj.parent, render); 32368 prev_fieldobj.$wrapper.replaceWith(fieldobj.$wrapper); 32369 const idx = this.fields_list.findIndex((e) => e == prev_fieldobj); 32370 this.fields_list.splice(idx, 1, fieldobj); 32371 this.fields_dict[fieldname] = fieldobj; 32372 this.sections.forEach((section) => section.replace_field(fieldname, fieldobj)); 32373 (_a = prev_fieldobj.tab) == null ? void 0 : _a.replace_field(fieldobj); 32374 this.refresh_fields([df]); 32375 } 32376 } 32377 make_field(df, colspan, render) { 32378 !this.section && this.make_section(); 32379 !this.column && this.make_column(); 32380 const parent = this.column.form.get(0); 32381 const fieldobj = this.init_field(df, parent, render); 32382 if (!fieldobj) 32383 return; 32384 this.fields_list.push(fieldobj); 32385 this.fields_dict[df.fieldname] = fieldobj; 32386 this.section.add_field(fieldobj); 32387 this.column.add_field(fieldobj); 32388 if (this.current_tab) { 32389 this.current_tab.add_field(fieldobj); 32390 } 32391 } 32392 init_field(df, parent, render = false) { 32393 const fieldobj = frappe.ui.form.make_control({ 32394 df, 32395 doctype: this.doctype, 32396 parent, 32397 frm: this.frm, 32398 render_input: render, 32399 doc: this.doc, 32400 layout: this 32401 }); 32402 if (fieldobj) { 32403 fieldobj.layout = this; 32404 } 32405 return fieldobj; 32406 } 32407 make_page_break() { 32408 this.page = $('<div class="form-page page-break"></div>').appendTo(this.wrapper); 32409 } 32410 make_page(df) { 32411 let me = this; 32412 let head = $(` 32413 <div class="form-clickable-section text-center">
32414 <a class="btn-fold h6 text-muted"> 32415 ${__("Show more details")} 32416 </a> 32417 </div> 32418 `).appendTo(this.wrapper); 32419 this.page = $('<div class="form-page second-page hide"></div>').appendTo(this.wrapper); 32420 this.fold_btn = head.find(".btn-fold").on("click", function() { 32421 let page = $(this).parent().next(); 32422 if (page.hasClass("hide")) { 32423 $(this).removeClass("btn-fold").html(__("Hide details")); 32424 page.removeClass("hide"); 32425 frappe.utils.scroll_to($(this), true, 30); 32426 me.folded = false; 32427 } else { 32428 $(this).addClass("btn-fold").html(__("Show more details")); 32429 page.addClass("hide"); 32430 me.folded = true; 32431 } 32432 }); 32433 this.section = null; 32434 this.folded = true; 32435 } 32436 unfold() { 32437 this.fold_btn.trigger("click"); 32438 } 32439 make_section(df = {}) { 32440 this.section_count++; 32441 if (!df.fieldname) { 32442 df.fieldname = `__section_${this.section_count}`; 32443 df.fieldtype = "Section Break"; 32444 } 32445 this.section = new Section( 32446 this.current_tab ? this.current_tab.wrapper : this.page, 32447 df, 32448 this.card_layout, 32449 this 32450 ); 32451 this.sections.push(this.section); 32452 this.sections_dict[df.fieldname] = this.section; 32453 if (df) { 32454 this.fields_dict[df.fieldname] = this.section; 32455 this.fields_list.push(this.section); 32456 } 32457 this.column = null; 32458 } 32459 make_column(df = {}) { 32460 this.column_count++; 32461 if (!df.fieldname) { 32462 df.fieldname = `__column_${this.section_count}`; 32463 df.fieldtype = "Column Break"; 32464 } 32465 this.column = new Column(this.section, df); 32466 if (df && df.fieldname) { 32467 this.fields_list.push(this.column); 32468 } 32469 } 32470 make_tab(df) { 32471 this.section = null; 32472 let tab = new Tab2(this, df, this.frm, this.tab_link_container, this.tabs_content); 32473 this.current_tab = tab; 32474 this.make_section({ fieldtype: "Section Break" }); 32475 this.tabs.push(tab); 32476 return tab; 32477 } 32478 refresh(doc) { 32479 if (doc) 32480 this.doc = doc; 32481 if (this.frm) { 32482 this.wrapper.find(".empty-form-alert").remove(); 32483 } 32484 this.attach_doc_and_docfields(true); 32485 if (this.frm && this.frm.wrapper) { 32486 $(this.frm.wrapper).trigger("refresh-fields"); 32487 } 32488 this.refresh_dependency(); 32489 this.refresh_sections(); 32490 if (this.frm) { 32491 this.refresh_section_collapse(); 32492 } 32493 if (document.activeElement) { 32494 if (document.activeElement.tagName == "INPUT" && this.is_numeric_field_active()) { 32495 document.activeElement.select(); 32496 } 32497 } 32498 } 32499 is_numeric_field_active() { 32500 const control = $(document.activeElement).closest(".frappe-control"); 32501 const fieldtype = (control.data() || {}).fieldtype; 32502 return frappe.model.numeric_fieldtypes.includes(fieldtype); 32503 } 32504 refresh_sections() { 32505 this.wrapper.find(".form-section:not(.hide-control)").each(function() { 32506 const section = $(this).removeClass("empty-section visible-section"); 32507 if (section.find(".frappe-control:not(.hide-control)").length) { 32508 section.addClass("visible-section"); 32509 } else if (section.parent().hasClass("tab-pane") || section.parent().hasClass("form-page")) { 32510 section.addClass("empty-section"); 32511 } 32512 }); 32513 this.is_tabbed_layout() && this.refresh_tabs(); 32514 } 32515 refresh_tabs() { 32516 for (let tab of this.tabs) { 32517 tab.refresh(); 32518 } 32519 const visible_tabs = this.tabs.filter((tab) => !tab.hidden); 32520 if (visible_tabs && visible_tabs.length == 1) { 32521 visible_tabs[0].tab_link.toggleClass("hide show"); 32522 } 32523 this.set_tab_as_active(); 32524 } 32525 select_tab(label_or_fieldname) { 32526 var _a; 32527 for (let tab of this.tabs) { 32528 if (tab.label.toLowerCase() === label_or_fieldname.toLowerCase() || ((_a = tab.df.fieldname) == null ? void 0 : _a.toLowerCase()) === label_or_fieldname.toLowerCase()) { 32529 tab.set_active(); 32530 return; 32531 } 32532 } 32533 } 32534 set_tab_as_active() { 32535 var _a, _b; 32536 let frm_active_tab = (_b = (_a = this.frm) == null ? void 0 : _a.get_active_tab) == null ? void 0 : _b.call(_a); 32537 if (frm_active_tab) { 32538 frm_active_tab.set_active(); 32539 } else if (this.tabs.length) { 32540 let first_visible_tab = this.tabs.find((tab) => !tab.is_hidden()); 32541 first_visible_tab && first_visible_tab.set_active(); 32542 } 32543 } 32544 refresh_fields(fields) { 32545 let fieldnames = fields.map((field) => { 32546 if (field.fieldname) 32547 return field.fieldname; 32548 }); 32549 this.fields_list.map((fieldobj) => { 32550 if (fieldnames.includes(fieldobj.df.fieldname)) { 32551 fieldobj.refresh(); 32552 if (fieldobj.df["default"]) { 32553 fieldobj.set_input(fieldobj.df["default"]); 32554 } 32555 } 32556 }); 32557 } 32558 add_fields(fields) { 32559 this.render(fields); 32560 this.refresh_fields(fields); 32561 } 32562 refresh_section_collapse() { 32563 if (!(this.sections && this.sections.length)) 32564 return; 32565 for (let i2 = 0; i2 < this.sections.length; i2++) { 32566 let section = this.sections[i2]; 32567 let df = section.df; 32568 if (df && df.collapsible) { 32569 let collapse = true; 32570 if (df.collapsible_depends_on) { 32571 collapse = !this.evaluate_depends_on_value(df.collapsible_depends_on); 32572 } 32573 if (collapse && section.has_missing_mandatory()) { 32574 collapse = false;
32575 } 32576 section.collapse(collapse); 32577 } 32578 } 32579 } 32580 attach_doc_and_docfields(refresh) { 32581 let me = this; 32582 for (let i2 = 0, l = this.fields_list.length; i2 < l; i2++) { 32583 let fieldobj = this.fields_list[i2]; 32584 if (me.doc) { 32585 fieldobj.doc = me.doc; 32586 fieldobj.doctype = me.doc.doctype; 32587 fieldobj.docname = me.doc.name; 32588 fieldobj.df = frappe.meta.get_docfield(me.doc.doctype, fieldobj.df.fieldname, me.doc.name) || fieldobj.df; 32589 } 32590 refresh && fieldobj.df && fieldobj.refresh && fieldobj.refresh(); 32591 } 32592 } 32593 refresh_section_count() { 32594 this.wrapper.find(".section-count-label:visible").each(function(i2) { 32595 $(this).html(i2 + 1); 32596 }); 32597 } 32598 setup_events() { 32599 let last_scroll = 0; 32600 let tabs_list = $(".form-tabs-list"); 32601 let tabs_content = this.tabs_content[0]; 32602 if (!tabs_list.length) 32603 return; 32604 $(window).scroll( 32605 frappe.utils.throttle(() => { 32606 let current_scroll = document.documentElement.scrollTop; 32607 if (current_scroll > 0 && last_scroll <= current_scroll) { 32608 tabs_list.removeClass("form-tabs-sticky-down"); 32609 tabs_list.addClass("form-tabs-sticky-up"); 32610 } else { 32611 tabs_list.removeClass("form-tabs-sticky-up"); 32612 tabs_list.addClass("form-tabs-sticky-down"); 32613 } 32614 last_scroll = current_scroll; 32615 }, 500) 32616 ); 32617 this.tab_link_container.off("click").on("click", ".nav-link", (e) => { 32618 e.preventDefault(); 32619 e.stopImmediatePropagation(); 32620 $(e.currentTarget).tab("show"); 32621 if (tabs_content.getBoundingClientRect().top < 100) { 32622 tabs_content.scrollIntoView(); 32623 setTimeout(() => { 32624 $(".page-head").css("top", "-15px"); 32625 $(".form-tabs-list").removeClass("form-tabs-sticky-down"); 32626 $(".form-tabs-list").addClass("form-tabs-sticky-up"); 32627 }, 3); 32628 } 32629 }); 32630 } 32631 setup_tab_events() { 32632 this.wrapper.on("keydown", (ev) => { 32633 if (ev.which == 9) { 32634 let current = $(ev.target); 32635 let doctype = current.attr("data-doctype"); 32636 let fieldname = current.attr("data-fieldname"); 32637 if (doctype) { 32638 return this.handle_tab(doctype, fieldname, ev.shiftKey); 32639 } 32640 } 32641 }); 32642 } 32643 setup_tooltip_events() { 32644 $(document).on("keydown", (e) => { 32645 if (e.altKey) { 32646 this.wrapper.addClass("show-tooltip"); 32647 } 32648 }); 32649 $(document).on("keyup", (e) => { 32650 if (!e.altKey) { 32651 this.wrapper.removeClass("show-tooltip"); 32652 } 32653 }); 32654 this.frm.page && frappe.ui.keys.add_shortcut({ 32655 shortcut: "alt+hover", 32656 page: this.frm.page, 32657 description: __("Show Fieldname (click to copy on clipboard)") 32658 }); 32659 } 32660 handle_tab(doctype, fieldname, shift) { 32661 let grid_row = null, prev2 = null, fields = this.fields_list, focused = false; 32662 if (doctype != this.doctype) { 32663 grid_row = this.get_open_grid_row(); 32664 if (!grid_row || !grid_row.layout) { 32665 return; 32666 } 32667 fields = grid_row.layout.fields_list; 32668 } 32669 for (let i2 = 0, len = fields.length; i2 < len; i2++) { 32670 if (fields[i2].df.fieldname == fieldname) { 32671 if (shift) { 32672 if (prev2) { 32673 this.set_focus(prev2); 32674 } else { 32675 $(this.primary_button).focus(); 32676 } 32677 break; 32678 } 32679 if (i2 < len - 1) { 32680 focused = this.focus_on_next_field(i2, fields); 32681 } 32682 if (focused) { 32683 break; 32684 } 32685 } 32686 if (this.is_visible(fields[i2])) 32687 prev2 = fields[i2]; 32688 } 32689 if (!focused) { 32690 if (grid_row) { 32691 if (grid_row.doc.idx == grid_row.grid.grid_rows.length) { 32692 grid_row.toggle_view(false, function() { 32693 grid_row.grid.frm.layout.handle_tab( 32694 grid_row.grid.df.parent, 32695 grid_row.grid.df.fieldname 32696 ); 32697 }); 32698 } else { 32699 grid_row.grid.grid_rows[grid_row.doc.idx].toggle_view(true); 32700 } 32701 } else if (!shift) { 32702 $(this.primary_button).focus(); 32703 } 32704 } 32705 return false;
32706 } 32707 focus_on_next_field(start_idx, fields) { 32708 for (let i2 = start_idx + 1, len = fields.length; i2 < len; i2++) { 32709 let field = fields[i2]; 32710 if (this.is_visible(field)) { 32711 if (field.df.fieldtype === "Table") { 32712 if (!(field.grid.grid_rows && field.grid.grid_rows.length)) { 32713 field.grid.add_new_row(); 32714 } 32715 field.grid.grid_rows[0].show_form(); 32716 return true; 32717 } else if (field.df.fieldtype === "Table MultiSelect" || !frappe.model.no_value_type.includes(field.df.fieldtype)) { 32718 this.set_focus(field); 32719 return true; 32720 } 32721 } 32722 } 32723 } 32724 is_visible(field) { 32725 return field.disp_status === "Write" && field.df && "hidden" in field.df && !field.df.hidden; 32726 } 32727 set_focus(field) { 32728 if (field.tab) { 32729 field.tab.set_active(); 32730 } 32731 if (field.df.fieldtype == "Table") { 32732 if (!field.grid.grid_rows.length) { 32733 field.grid.add_new_row(1); 32734 } else { 32735 field.grid.grid_rows[0].toggle_view(true); 32736 } 32737 } else if (field.editor) { 32738 field.editor.set_focus(); 32739 } else if (field.$input) { 32740 field.$input.focus(); 32741 } 32742 } 32743 get_open_grid_row() { 32744 return $(".grid-row-open").data("grid_row"); 32745 } 32746 refresh_dependency() { 32747 let has_dep = false; 32748 const fields = this.fields_list.concat(this.tabs); 32749 for (let fkey in fields) { 32750 let f = fields[fkey]; 32751 if (f.df.depends_on || f.df.mandatory_depends_on || f.df.read_only_depen
32751ds_on) { 32752 has_dep = true; 32753 break; 32754 } 32755 } 32756 if (!has_dep) 32757 return; 32758 for (let i2 = fields.length - 1; i2 >= 0; i2--) { 32759 let f = fields[i2]; 32760 f.guardian_has_value = true; 32761 if (f.df.depends_on) { 32762 f.guardian_has_value = this.evaluate_depends_on_value(f.df.depends_on); 32763 if (f.guardian_has_value) { 32764 if (f.df.hidden_due_to_dependency) { 32765 f.df.hidden_due_to_dependency = false; 32766 f.refresh(); 32767 } 32768 } else { 32769 if (!f.df.hidden_due_to_dependency) { 32770 f.df.hidden_due_to_dependency = true; 32771 f.refresh(); 32772 } 32773 } 32774 } 32775 if (f.df.mandatory_depends_on) { 32776 this.set_dependant_property(f.df.mandatory_depends_on, f.df.fieldname, "reqd"); 32777 } 32778 if (f.df.read_only_depends_on) { 32779 this.set_dependant_property( 32780 f.df.read_only_depends_on, 32781 f.df.fieldname, 32782 "read_only" 32783 ); 32784 } 32785 } 32786 this.refresh_section_count(); 32787 } 32788 set_dependant_property(condition, fieldname, property) { 32789 let set_property = this.evaluate_depends_on_value(condition); 32790 let value2 = set_property ? 1 : 0; 32791 let form_obj; 32792 if (this.frm) { 32793 form_obj = this.frm; 32794 } else if (this.is_dialog || this.doctype === "Web Form") { 32795 form_obj = this; 32796 } 32797 if (form_obj) { 32798 if (this.doc && this.doc.parent && this.doc.parentfield) { 32799 form_obj.setting_dependency = true; 32800 form_obj.set_df_property( 32801 this.doc.parentfield, 32802 property, 32803 value2, 32804 this.doc.parent, 32805 fieldname, 32806 this.doc.name 32807 ); 32808 form_obj.setting_dependency = false; 32809 this.fields_dict[fieldname] && this.fields_dict[fieldname].refresh(); 32810 } else { 32811 form_obj.set_df_property(fieldname, property, value2); 32812 } 32813 } 32814 } 32815 evaluate_depends_on_value(expression) { 32816 let out = null; 32817 let doc = this.doc; 32818 if (!doc && this.get_values) { 32819 doc = this.get_values(true); 32820 } 32821 if (!doc) { 32822 return; 32823 } 32824 let parent = this.frm ? this.frm.doc : this.doc || null; 32825 if (typeof expression === "boolean") { 32826 out = expression; 32827 } else if (typeof expression === "function") { 32828 out = expression(doc); 32829 } else if (expression.substr(0, 5) == "eval:") { 32830 try { 32831 out = frappe.utils.eval(expression.substr(5), { doc, parent }); 32832 if (parent && parent.istable && expression.includes("is_submittable")) { 32833 out = true; 32834 } 32835 } catch (e) { 32836 frappe.throw(__('Invalid "depends_on" expression')); 32837 } 32838 } else if (expression.substr(0, 3) == "fn:" && this.frm) { 32839 out = this.frm.script_manager.trigger( 32840 expression.substr(3), 32841 this.doctype, 32842 this.docname 32843 ); 32844 } else { 32845 var value2 = doc[expression]; 32846 if ($.isArray(value2)) { 32847 out = !!value2.length; 32848 } else { 32849 out = !!value2; 32850 } 32851 } 32852 return out; 32853 } 32854 }; 32855 32856
32856// frappe/public/js/frappe/ui/field_group.js 32857 frappe.provide("frappe.ui"); 32858 frappe.ui.FieldGroup = class FieldGroup extends frappe.ui.form.Layout { 32859 constructor(opts) { 32860 super(opts); 32861 this.dirty = false; 32862 $.each(this.fields || [], function(i2, f) { 32863 if (!f.fieldname && f.label) { 32864 f.fieldname = f.label.replace(/ /g, "_").toLowerCase(); 32865 } 32866 }); 32867 if (this.values) { 32868 this.set_values(this.values); 32869 } 32870 } 32871 make() { 32872 let me = this; 32873 if (this.fields) { 32874 super.make(); 32875 this.refresh(); 32876 $.each(this.fields_list, function(i2, field) { 32877 if (field.df["default"]) { 32878 let def_value = field.df["default"]; 32879 if (def_value == "Today" && field.df["fieldtype"] == "Date") { 32880 def_value = frappe.datetime.get_today(); 32881 } 32882 field.set_input(def_value); 32883 me.refresh_dependency(); 32884 } 32885 }); 32886 if (!this.no_submit_on_enter) { 32887 this.catch_enter_as_submit(); 32888 } 32889 $(this.wrapper).find("input, select").on("change awesomplete-selectcomplete", () => { 32890 this.dirty = true; 32891 frappe.run_serially([ 32892 () => frappe.timeout(0.1), 32893 () => me.refresh_dependency() 32894 ]); 32895 }); 32896 } 32897 } 32898 focus_on_first_input() { 32899 if (this.no_focus) 32900 return; 32901 $.each(this.fields_list, function(i2, f) { 32902 if (!["Date", "Datetime", "Time", "Check"].includes(f.df.fieldtype) && f.set_focus) { 32903 f.set_focus(); 32904 return false; 32905 } 32906 }); 32907 } 32908 catch_enter_as_submit() { 32909 let me = this; 32910 $(this.body).find('input[type="text"], input[type="password"], select').keypress(function(e) { 32911 if (e.which == 13) { 32912 if (me.has_primary_action) { 32913 e.preventDefault(); 32914 me.get_primary_btn().trigger("click"); 32915 } 32916 } 32917 }); 32918 } 32919 get_input(fieldname) { 32920 let field = this.fields_dict[fieldname]; 32921 if (!field) 32922 return ""; 32923 return $(field.txt ? field.txt : field.input); 32924 } 32925 get_field(fieldname) { 32926 return this.fields_dict[fieldname]; 32927 } 32928 get_values(ignore_errors, check_invalid) { 32929 let ret = {}; 32930 let errors = []; 32931 let invalid = []; 32932 for (let key in this.fields_dict) { 32933 let f = this.fields_dict[key]; 32934 if (f.get_value) { 32935 let v = f.get_value(); 32936 if (f.df.reqd && is_null(typeof v === "string" ? strip_html(v) : v)) 32937 errors.push(__(f.df.label)); 32938 if (f.df.reqd && f.df.fieldtype === "Text Editor" && is_null(strip_html(cstr(v)))) 32939 errors.push(__(f.df.label)); 32940 if (!is_null(v)) 32941 ret[f.df.fieldname] = v; 32942 } 32943 if (this.is_dialog && f.df.reqd && !f.value) { 32944 f.refresh_input(); 32945 } 32946 if (f.df.invalid) { 32947 invalid.push(__(f.df.label)); 32948 } 32949 } 32950 if (errors.length && !ignore_errors) { 32951 frappe.msgprint({ 32952 title: __("Missing Values Required"), 32953 message: __("Following fields have missing values:") + "<br><br><ul><li>" + errors.join("<li>") + "</ul>", 32954 indicator: "orange" 32955 }); 32956 return null; 32957 } 32958 if (invalid.length && check_invalid) { 32959 frappe.msgprint({ 32960 title: __("Invalid Values"), 32961 message: __("Following fields have invalid values:") + "<br><br><ul><li>" + invalid.join("<li>") + "</ul>", 32962 indicator: "orange" 32963 }); 32964 return null; 32965 } 32966 return ret; 32967 } 32968 get_value(key) { 32969 let f = this.fields_dict[key]; 32970 return f && (f.get_value ? f.get_value() : null); 32971 } 32972 set_value(key, val) { 32973 return new Promise((resolve) => { 32974 let f = this.fields_dict[key]; 32975 if (f) { 32976 f.set_value(val).then(() => { 32977 var _a; 32978 (_a = f.set_input) == null ? void 0 : _a.call(f, val); 32979 this.refresh_dependency(); 32980 resolve(); 32981 }); 32982 } else { 32983 resolve(); 32984 } 32985 }); 32986 } 32987 has_field(fieldname) { 32988 return !!this.fields_dict[fieldname]; 32989 } 32990 set_input(key, val) { 32991 return this.set_value(key, val); 32992 } 32993 set_values(dict) { 32994 let promises = []; 32995 for (let key in dict) { 32996 if (this.fields_dict[key]) { 32997 promises.push(this.set_value(key, dict[key])); 32998 } 32999 } 33000 return Promise.all(promises); 33001 } 33002 clear() { 33003 for (let key in this.fields_dict) { 33004 let f = this.fields_dict[key]; 33005 if (f && f.set_input) { 33006 f.set_input(f.df["default"] || ""); 33007 } 33008 } 33009 } 33010 set_df_property(fieldname, prop, value2) { 33011 if (!fieldname) { 33012 return; 33013 } 33014 const field = this.get_field(fieldname); 33015 field.df[prop] = value2; 33016 field.refresh(); 33017 } 33018 }; 33019 33020
33020// frappe/public/js/frappe/dom.js 33021 frappe.provide("frappe.dom"); 33022 frappe.dom = { 33023 id_count: 0, 33024 freeze_count: 0, 33025 by_id: function(id) { 33026 return document.getElementById(id); 33027 }, 33028 get_unique_id: function() { 33029 const id = "unique-" + frappe.dom.id_count; 33030 frappe.dom.id_count++; 33031 return id; 33032 }, 33033 set_unique_id: function(ele) { 33034 var $ele = $(ele); 33035 if ($ele.attr("id")) { 33036 return $ele.attr("id"); 33037 } 33038 var id = "unique-" + frappe.dom.id_count; 33039 $ele.attr("id", id); 33040 frappe.dom.id_count++; 33041 return id; 33042 }, 33043 eval: function(txt) { 33044 if (!txt) 33045 return; 33046 var el = document.createElement("script"); 33047 el.appendChild(document.createTextNode(txt)); 33048 document.getElementsByTagName("head")[0].appendChild(el); 33049 }, 33050 remove_script_and_style: function(txt) { 33051 const evil_tags = ["script", "style", "noscript", "title", "meta", "base", "head"]; 33052 const parser = new DOMParser(); 33053 const doc = parser.parseFromString(txt, "text/html"); 33054 const body = doc.body; 33055 let found = !!doc.head.innerHTML; 33056 for (const tag of evil_tags) { 33057 for (const element of body.getElementsByTagName(tag)) { 33058 found = true; 33059 element.parentNode.removeChild(element); 33060 } 33061 } 33062 for (const element of body.getElementsByTagName("link")) { 33063 const relation = element.getAttribute("rel"); 33064 if (relation && relation.toLowerCase().trim() === "stylesheet") { 33065 found = true; 33066 element.parentNode.removeChild(element); 33067 } 33068 } 33069 if (found) { 33070 return body.innerHTML; 33071 } else { 33072 return txt; 33073 } 33074 }, 33075 is_element_in_viewport: function(el, tolerance = 0) { 33076 if (typeof jQuery === "function" && el instanceof jQuery) { 33077 el = el[0]; 33078 } 33079 var rect = el.getBoundingClientRect(); 33080 return rect.top + tolerance >= 0 && rect.left + tolerance >= 0 && rect.bottom - tolerance <= $(window).height() && rect.right - tolerance <= $(window).width(); 33081 }, 33082 is_element_in_modal(element) { 33083 return Boolean($(element).parents(".modal").length); 33084 }, 33085 set_style: function(txt, id) { 33086 if (!txt) 33087 return; 33088 var se = document.createElement("style"); 33089 se.type = "text/css"; 33090 if (id) { 33091 var element = document.getElementById(id); 33092 if (element) { 33093 element.parentNode.removeChild(element); 33094 } 33095 se.id = id; 33096 } 33097 if (se.styleSheet) { 33098 se.styleSheet.cssText = txt; 33099 } else { 33100 se.appendChild(document.createTextNode(txt)); 33101 } 33102 document.getElementsByTagName("head")[0].appendChild(se); 33103 return se; 33104 }, 33105 add: function(parent, newtag, className, cs, innerHTML, onclick) { 33106 if (parent && parent.substr) 33107 parent = frappe.dom.by_id(parent); 33108 var c = document.createElement(newtag); 33109 if (parent) 33110 parent.appendChild(c); 33111 if (className) { 33112 if (newtag.toLowerCase() == "img") 33113 c.src = className; 33114 else 33115 c.className = className; 33116 } 33117 if (cs) 33118 frappe.dom.css(c, cs); 33119 if (innerHTML) 33120 c.innerHTML = innerHTML; 33121 if (onclick) 33122 c.onclick = onclick; 33123 return c; 33124 }, 33125 css: function(ele, s) { 33126 if (ele && s) { 33127 $.extend(ele.style, s); 33128 } 33129 return ele; 33130 }, 33131 activate: function($parent, $child, common_class, active_class = "active") { 33132 $parent.find(`.${common_class}.${active_class}`).removeClass(active_class); 33133 $child.addClass(active_class); 33134 }, 33135 freeze: function(msg, css_class) { 33136 if (!$("#freeze").length) { 33137 var freeze = $('<div id="freeze" class="modal-backdrop fade"></div>').on("click", function() { 33138 if (cur_frm && cur_frm.cur_grid) { 33139 cur_frm.cur_grid.toggle_view(); 33140 return false; 33141 } 33142 }).appendTo("#body"); 33143 freeze.html( 33144 repl( 33145 '<div class="freeze-message-container"><div class="freeze-message"><p class="lead">%(msg)s</p></div></div>', 33146 { msg: msg || "" } 33147 ) 33148 ); 33149 setTimeout(function() { 33150 freeze.addClass("in"); 33151 }, 1); 33152 } else { 33153 $("#freeze").addClass("in"); 33154 } 33155 if (css_class) { 33156 $("#freeze").addClass(css_class); 33157 } 33158 frappe.dom.freeze_count++; 33159 }, 33160 unfreeze: function() { 33161 if (!frappe.dom.freeze_count) 33162 return; 33163 frappe.dom.freeze_count--; 33164 if (!frappe.dom.freeze_count) { 33165 var freeze = $("#freeze").removeClass("in").remove(); 33166 } 33167 }, 33168 save_selection: function() { 33169 if (window.getSelection) { 33170 var sel = window.getSelection(); 33171 if (sel.getRangeAt && sel.rangeCount) { 33172 var ranges = []; 33173 for (var i2 = 0, len = sel.rangeCount; i2 < len; ++i2) { 33174 ranges.push(sel.getRangeAt(i2)); 33175 } 33176 return ranges; 33177 } 33178 } else if (document.selection && document.selection.createRange) { 33179 return document.selection.createRange(); 33180 } 33181 return null; 33182 }, 33183 restore_selection: function(savedSel) { 33184 if (savedSel) { 33185 if (window.getSelection) { 33186 var sel = window.getSelection(); 33187 sel.removeAllRanges();
33188 for (var i2 = 0, len = savedSel.length; i2 < len; ++i2) { 33189 sel.addRange(savedSel[i2]); 33190 } 33191 } else if (document.selection && savedSel.select) { 33192 savedSel.select(); 33193 } 33194 } 33195 }, 33196 is_touchscreen: function() { 33197 return "ontouchstart" in window; 33198 }, 33199 handle_broken_images(container) { 33200 $(container).find("img").on("error", (e) => { 33201 const $img = $(e.currentTarget); 33202 $img.addClass("no-image"); 33203 }); 33204 }, 33205 scroll_to_bottom(container) { 33206 const $container = $(container); 33207 $container.scrollTop($container[0].scrollHeight); 33208 }, 33209 file_to_base64(file_obj) { 33210 return new Promise((resolve) => { 33211 const reader = new FileReader(); 33212 reader.onload = function() { 33213 resolve(reader.result); 33214 }; 33215 reader.readAsDataURL(file_obj); 33216 }); 33217 }, 33218 scroll_to_section(section_name) { 33219 setTimeout(() => { 33220 const section = $(`a:contains("${section_name}")`); 33221 if (section.length) { 33222 if (section.parent().hasClass("collapsed")) { 33223 section.click(); 33224 } 33225 frappe.ui.scroll(section.parent().parent()); 33226 } 33227 }, 200); 33228 }, 33229 pixel_to_inches(pixels) { 33230 const div = $( 33231 '<div id="dpi" style="height: 1in; width: 1in; left: 100%; position: fixed; top: 100%;"></div>' 33232 ); 33233 div.appendTo(document.body); 33234 const dpi_x = document.getElementById("dpi").offsetWidth; 33235 const inches = pixels / dpi_x; 33236 div.remove(); 33237 return inches; 33238 } 33239 }; 33240 frappe.ellipsis = function(text, max) { 33241 if (!max) 33242 max = 20; 33243 text = cstr(text); 33244 if (text.length > max) { 33245 text = text.substr(0, max) + "..."; 33246 } 33247 return text; 33248 }; 33249 frappe.run_serially = function(tasks) { 33250 var result = Promise.resolve(); 33251 tasks.forEach((task) => { 33252 if (task) { 33253 result = result.then ? result.then(task) : Promise.resolve(); 33254 } 33255 }); 33256 return result; 33257 }; 33258 frappe.load_image = (src, onload, onerror, preprocess = () => { 33259 }) => { 33260 var tester = new Image(); 33261 tester.onload = function() { 33262 onload(this); 33263 }; 33264 tester.onerror = onerror; 33265 preprocess(tester); 33266 tester.src = src; 33267 }; 33268 frappe.timeout = (seconds) => { 33269 return new Promise((resolve) => { 33270 setTimeout(() => resolve(), seconds * 1e3); 33271 }); 33272 }; 33273 frappe.scrub = function(text, spacer = "_") { 33274 return text.replace(/ /g, spacer).toLowerCase(); 33275 }; 33276 frappe.unscrub = function(txt) { 33277 return frappe.model.unscrub(txt); 33278 }; 33279 frappe.get_data_pill = (label, target_id = null, remove_action = null, image = null, colored = false) => {
33280 let color = "", style = ""; 33281 if (colored) { 33282 color = frappe.get_palette(label); 33283 } 33284 style = `background-color: var(${color[0]}); color: var(${color[1]})`; 33285 let data_pill_wrapper = $(` 33286 <button class="data-pill btn" style="${style}"> 33287 <div class="flex align-center ellipsis"> 33288 ${image ? image : ""} 33289 <span class="pill-label">${label} </span> 33290 </div> 33291 </button> 33292 `); 33293 if (remove_action) { 33294 let remove_btn = $(` 33295 <span class="remove-btn cursor-pointer"> 33296 ${frappe.utils.icon("close", "sm")} 33297 </span> 33298 `); 33299 if (typeof remove_action === "function") { 33300 remove_btn.click(() => { 33301 remove_action(target_id || label, data_pill_wrapper); 33302 }); 33303 } 33304 data_pill_wrapper.append(remove_btn); 33305 } 33306 return data_pill_wrapper; 33307 }; 33308 frappe.get_modal = function(title, content) { 33309 return $(`<div class="modal fade" style="overflow: auto;" tabindex="-1"> 33310 <div class="modal-dialog"> 33311 <div class="modal-content"> 33312 <div class="modal-header"> 33313 <div class="fill-width flex title-section"> 33314 <span class="indicator hidden"></span> 33315 <h4 class="modal-title">${title}</h4> 33316 </div> 33317 <div class="modal-actions"> 33318 <button class="btn btn-modal-minimize btn-link hide"> 33319 ${frappe.utils.icon("collapse")} 33320 </button> 33321 <button class="btn btn-modal-close btn-link" data-dismiss="modal"> 33322 ${frappe.utils.icon("close-alt", "sm", "close-alt")} 33323 </button> 33324 </div> 33325 </div> 33326 <div class="modal-body ui-front">${content}</div> 33327 <div class="modal-footer hide"> 33328 <div class="custom-actions"></div> 33329 <div class="standard-actions"> 33330 <button type="button" class="btn btn-secondary btn-sm hide btn-modal-secondary"> 33331 </button> 33332 <button type="button" class="btn btn-primary btn-sm hide btn-modal-primary"> 33333 ${__("Confirm")} 33334 </button> 33335 </div> 33336 </div> 33337 </div> 33338 </div> 33339 </div>`); 33340 }; 33341 frappe.is_online = function() { 33342 if (frappe.boot.developer_mode == 1) { 33343 return true; 33344 } 33345 if ("onLine" in navigator) { 33346 return navigator.onLine; 33347 } 33348 return true; 33349 }; 33350 frappe.create_shadow_element = function(wrapper, html, css, js) { 33351 let random_id = "custom-block-" + frappe.utils.get_random(5).toLowerCase(); 33352 class CustomBlock extends HTMLElement { 33353 constructor() { 33354 var _a, _b, _c, _d; 33355 super(); 33356 let div = document.createElement("div"); 33357 div.innerHTML = frappe.dom.remove_script_and_style(html); 33358 let link = document.createElement("link"); 33359 link.rel = "stylesheet"; 33360 link.href = frappe.assets.bundled_asset("desk.bundle.css"); 33361 let style = document.createElement("style"); 33362 style.textContent = css; 33363 let script = document.createElement("script"); 33364 script.textContent = ` 33365 (function() { 33366 let cname = ${JSON.stringify(random_id)}; 33367 let root_element = document.querySelector(cname).shadowRoot; 33368 ${js} 33369 })(); 33370 `; 33371 this.attachShadow({ mode: "open" }); 33372 (_a = this.shadowRoot) == null ? void 0 : _a.appendChild(link); 33373 (_b = this.shadowRoot) == null ? void 0 : _b.appendChild(div); 33374 (_c = this.shadowRoot) == null ? void 0 : _c.appendChild(style); 33375 (_d = this.shadowRoot) == null ? void 0 : _d.appendChild(script); 33376 } 33377 } 33378 if (!customElements.get(random_id)) { 33379 customElements.define(random_id, CustomBlock); 33380 } 33381 wrapper.innerHTML = `<${random_id}></${random_id}>`; 33382 }; 33383 $(window).on("online", function() { 33384 if (document.hidden) 33385 return; 33386 frappe.show_alert({ 33387 indicator: "green", 33388 message: __("You are connected to internet.") 33389 }); 33390 }); 33391 $(window).on("offline", function() { 33392 if (document.hidden) 33393 return; 33394 frappe.show_alert({ 33395 indicator: "orange", 33396 message: __("Connection lost. Some features might not work.") 33397 }); 33398 }); 33399 33400
33400// frappe/public/js/frappe/ui/dialog.js 33401 frappe.provide("frappe.ui"); 33402 window.cur_dialog = null; 33403 frappe.ui.open_dialogs = []; 33404 frappe.ui.Dialog = class Dialog extends frappe.ui.FieldGroup { 33405 constructor(opts) { 33406 super(); 33407 this.display = false; 33408 this.is_dialog = true; 33409 $.extend(this, { animate: true, size: null }, opts); 33410 this.make(); 33411 } 33412 make() { 33413 this.$wrapper = frappe.get_modal("", ""); 33414 if (this.static) { 33415 this.$wrapper.modal({ 33416 backdrop: "static", 33417 keyboard: false 33418 }); 33419 this.get_close_btn().hide(); 33420 } 33421 if (!this.size) 33422 this.set_modal_size(); 33423 this.wrapper = this.$wrapper.find(".modal-dialog").get(0); 33424 if (this.size == "small") 33425 $(this.wrapper).addClass("modal-sm"); 33426 else if (this.size == "large") 33427 $(this.wrapper).addClass("modal-lg"); 33428 else if (this.size == "extra-large") 33429 $(this.wrapper).addClass("modal-xl"); 33430 this.make_head(); 33431 this.modal_body = this.$wrapper.find(".modal-body"); 33432 this.$body = $("<div></div>").appendTo(this.modal_body); 33433 this.body = this.$body.get(0); 33434 this.$message = $('<div class="hide modal-message"></div>').appendTo(this.modal_body); 33435 this.header = this.$wrapper.find(".modal-header"); 33436 this.footer = this.$wrapper.find(".modal-footer"); 33437 this.standard_actions = this.footer.find(".standard-actions"); 33438 this.custom_actions = this.footer.find(".custom-actions"); 33439 this.set_indicator(); 33440 super.make(); 33441 this.refresh_section_collapse(); 33442 this.action = this.action || { primary: {}, secondary: {} }; 33443 if (this.primary_action || this.action.primary && this.action.primary.onsubmit) { 33444 this.set_primary_action( 33445 this.primary_action_label || this.action.primary.label || __("Submit", null, "Primary action in dialog"), 33446 this.primary_action || this.action.primary.onsubmit 33447 ); 33448 } 33449 if (this.secondary_action) { 33450 this.set_secondary_action(this.secondary_action); 33451 } 33452 if (this.secondary_action_label || this.action.secondary && this.action.secondary.label) { 33453 this.set_secondary_action_label( 33454 this.secondary_action_label || this.action.secondary.label 33455 ); 33456 } 33457 if (this.minimizable) { 33458 this.header.find(".title-section").click(() => this.is_minimized && this.toggle_minimize()); 33459 this.get_minimize_btn().removeClass("hide").on("click", () => this.toggle_minimize()); 33460 } 33461 var me = this; 33462 this.$wrapper.on("hide.bs.modal", function() { 33463 var _a, _b, _c; 33464 me.display = false; 33465 me.is_minimized = false; 33466 me.hide_scrollbar(false); 33467 (_c = (_b = (_a = frappe.ui.form).get_open_grid_form) == null ? void 0 : _b.call(_a)) == null ? void 0 : _c.hide_form(); 33468 if (frappe.ui.open_dialogs[frappe.ui.open_dialogs.length - 1] === me) { 33469 frappe.ui.open_dialogs.pop(); 33470 if (frappe.ui.open_dialogs.length) { 33471 window.cur_dialog = frappe.ui.open_dialogs[frappe.ui.open_dialogs.length - 1]; 33472 } else { 33473 window.cur_dialog = null; 33474 } 33475 } 33476 me.onhide && me.onhide(); 33477 me.on_hide && me.on_hide(); 33478 }).on("shown.bs.modal", function() { 33479 me.display = true; 33480 window.cur_dialog = me; 33481 frappe.ui.open_dialogs.push(me); 33482 me.focus_on_first_input(); 33483 me.hide_scrollbar(true); 33484 me.on_page_show && me.on_page_show(); 33485 $(document).trigger("frappe.ui.Dialog:shown"); 33486 $(document).off("focusin.modal"); 33487 }).on("scroll", function() { 33488 var $input = $("input:focus"); 33489 if ($input.length && ["Date", "Datetime", "Time"].includes($input.attr("data-fieldtype"))) { 33490 $input.blur(); 33491 } 33492 }); 33493 } 33494 set_modal_size() { 33495 if (!this.fields) { 33496 this.size = ""; 33497 return; 33498 } 33499 let col_brk = 0; 33500 let cur_col_brk = 0; 33501 this.fields.forEach((field) => { 33502 if (field.fieldtype == "Column Break") { 33503 cur_col_brk++; 33504 if (cur_col_brk > col_brk) { 33505 col_brk = cur_col_brk; 33506 } 33507 } else if (field.fieldtype == "Section Break") { 33508 cur_col_brk = 0; 33509 } 33510 }); 33511 this.size = col_brk >= 4 ? "extra-large" : col_brk >= 2 ? "large" : ""; 33512 } 33513 get_primary_btn() { 33514 return this.standard_actions.find(".btn-primary"); 33515 } 33516 get_minimize_btn() {
33517 return this.$wrapper.find(".modal-header .btn-modal-minimize"); 33518 } 33519 set_message(text) { 33520 this.$message.removeClass("hide"); 33521 this.$body.addClass("hide"); 33522 this.$message.text(text); 33523 } 33524 clear_message() { 33525 this.$message.addClass("hide"); 33526 this.$body.removeClass("hide"); 33527 } 33528 clear() { 33529 super.clear(); 33530 this.clear_message(); 33531 } 33532 set_primary_action(label, click) { 33533 this.footer.removeClass("hide"); 33534 this.has_primary_action = true; 33535 var me = this; 33536 const primary_btn = this.get_primary_btn().removeClass("hide").html(label); 33537 if (typeof click == "function") { 33538 primary_btn.off("click").on("click", function() { 33539 me.primary_action_fulfilled = true; 33540 var values = me.get_values(); 33541 if (!values) 33542 return; 33543 click && click.apply(me, [values]); 33544 }); 33545 } 33546 return primary_btn; 33547 } 33548 set_secondary_action(click) { 33549 this.footer.removeClass("hide"); 33550 return this.get_secondary_btn().removeClass("hide").off("click").on("click", click); 33551 } 33552 set_secondary_action_label(label) { 33553 this.get_secondary_btn().removeClass("hide").html(label); 33554 } 33555 disable_primary_action() { 33556 this.get_primary_btn().addClass("disabled"); 33557 } 33558 enable_primary_action() { 33559 this.get_primary_btn().removeClass("disabled"); 33560 } 33561 make_head() { 33562 this.set_title(this.title); 33563 } 33564 set_title(t) { 33565 this.$wrapper.find(".modal-title").html(t); 33566 } 33567 set_indicator() { 33568 if (this.indicator) { 33569 this.header.find(".indicator").removeClass().addClass("indicator " + this.indicator); 33570 } 33571 } 33572 show() { 33573 if (this.animate) { 33574 this.$wrapper.addClass("fade"); 33575 } else { 33576 this.$wrapper.removeClass("fade"); 33577 } 33578 this.$wrapper.modal("show"); 33579 this.$wrapper.removeClass("modal-minimize"); 33580 if (this.minimizable && this.is_minimized) { 33581 $(".modal-backdrop").toggle(); 33582 this.is_minimized = false; 33583 } 33584 this.clear_message(); 33585 this.primary_action_fulfilled = false; 33586 this.is_visible = true; 33587 return this; 33588 } 33589 hide() { 33590 this.$wrapper.modal("hide"); 33591 this.is_visible = false; 33592 } 33593 get_close_btn() { 33594 return this.$wrapper.find(".btn-modal-close"); 33595 } 33596 get_secondary_btn() { 33597 return this.standard_actions.find(".btn-modal-secondary"); 33598 } 33599 no_cancel() { 33600 this.get_close_btn().toggle(false); 33601 } 33602 cancel() { 33603 this.get_close_btn().trigger("click"); 33604 } 33605 toggle_minimize() { 33606 $(".modal-backdrop").toggle(); 33607 let modal = this.$wrapper.closest(".modal").toggleClass("modal-minimize"); 33608 modal.attr("tabindex") ? modal.removeAttr("tabindex") : modal.attr("tabindex", -1); 33609 this.is_minimized = !this.is_minimized; 33610 const icon = this.is_minimized ? "expand" : "collapse"; 33611 this.get_minimize_btn().html(frappe.utils.icon(icon)); 33612 this.on_minimize_toggle && this.on_minimize_toggle(this.is_minimized); 33613 this.header.find(".modal-title").toggleClass("cursor-pointer"); 33614 this.hide_scrollbar(!this.is_minimized); 33615 } 33616 hide_scrollbar(bool) { 33617 $("body").css("overflow", bool ? "hidden" : "auto"); 33618 } 33619 add_custom_action(label, action, css_class = null) { 33620 this.footer.removeClass("hide"); 33621 let action_button = $(` 33622 <button class="btn btn-secondary btn-sm ${css_class || ""}"> 33623 ${label} 33624 </button> 33625 `); 33626 this.custom_actions.append(action_button); 33627 action && action_button.click(action); 33628 } 33629 }; 33630 frappe.ui.hide_open_dialog = () => { 33631 if (window.cur_dialog) { 33632 if (!cur_dialog.minimizable) { 33633 cur_dialog.hide(); 33634 } else if (!cur_dialog.is_minimized) { 33635 cur_dialog.toggle_minimize(); 33636 } 33637 } 33638 }; 33639 33640
33640// frappe/public/js/frappe/ui/messages.js 33641 frappe.provide("frappe.messages"); 33642 frappe.messages.waiting = function(parent, msg) { 33643 return $(frappe.messages.get_waiting_message(msg)).appendTo(parent); 33644 }; 33645 frappe.messages.get_waiting_message = function(msg) { 33646 return repl( 33647 '<div class="msg-box" style="width: 63%; margin: 30px auto;"> <p class="text-center">%(msg)s</p></div>', 33648 { msg } 33649 ); 33650 }; 33651 frappe.throw = function(msg) { 33652 if (typeof msg === "string") { 33653 msg = { message: msg, title: __("Error") }; 33654 } 33655 if (!msg.indicator) 33656 msg.indicator = "red"; 33657 frappe.msgprint(msg); 33658 throw new Error(msg.message); 33659 }; 33660 frappe.confirm = function(message, confirm_action, reject_action) { 33661 var d = new frappe.ui.Dialog({ 33662 title: __("Confirm", null, "Title of confirmation dialog"), 33663 primary_action_label: __("Yes", null, "Approve confirmation dialog"), 33664 primary_action: () => { 33665 confirm_action && confirm_action(); 33666 d.hide(); 33667 }, 33668 secondary_action_label: __("No", null, "Dismiss confirmation dialog"), 33669 secondary_action: () => d.hide() 33670 }); 33671 d.$body.append(`<p class="frappe-confirm-message">${message}</p>`); 33672 d.show(); 33673 d.confirm_dialog = true; 33674 if (reject_action) { 33675 d.onhide = () => { 33676 if (!d.primary_action_fulfilled) { 33677 reject_action(); 33678 } 33679 }; 33680 } 33681 return d; 33682 }; 33683 frappe.warn = function(title, message_html, proceed_action, primary_label, is_minimizable) { 33684 const d = new frappe.ui.Dialog({ 33685 title, 33686 indicator: "red", 33687 primary_action_label: primary_label, 33688 primary_action: () => { 33689 if (proceed_action) 33690 proceed_action(); 33691 d.hide(); 33692 }, 33693 secondary_action_label: __("Cancel", null, "Secondary button in warning dialog"), 33694 secondary_action: () => d.hide(), 33695 minimizable: is_minimizable 33696 }); 33697 d.$body.append(`<div class="frappe-confirm-message">${message_html}</div>`); 33698 d.standard_actions.find(".btn-primary").removeClass("btn-primary").addClass("btn-danger"); 33699 d.show(); 33700 return d; 33701 }; 33702 frappe.prompt = function(fields, callback, title, primary_label) { 33703 if (typeof fields === "string") { 33704 fields = [ 33705 { 33706 label: fields, 33707 fieldname: "value", 33708 fieldtype: "Data", 33709 reqd: 1 33710 } 33711 ]; 33712 } 33713 if (!$.isArray(fields)) 33714 fields = [fields]; 33715 var d = new frappe.ui.Dialog({ 33716 fields, 33717 title: title || __("Enter Value", null, "Title of prompt dialog") 33718 }); 33719 d.set_primary_action( 33720 primary_label || __("Submit", null, "Primary action of prompt dialog"), 33721 function() { 33722 var values = d.get_values(); 33723 if (!values) { 33724 return; 33725 } 33726 d.hide(); 33727 callback(values); 33728 } 33729 ); 33730 d.show(); 33731 return d; 33732 }; 33733 frappe.msgprint = function(msg, title, is_minimizable) { 33734 if (!msg) 33735 return; 33736 let data; 33737 if ($.isPlainObject(msg)) { 33738 data = msg; 33739 } else { 33740 if (typeof msg === "string" && msg.substr(0, 1) === "{") { 33741 data = JSON.parse(msg); 33742 } else { 33743 data = { message: msg, title }; 33744 } 33745 } 33746 if (!data.indicator) { 33747 data.indicator = "blue"; 33748 } 33749 if (data.as_list) { 33750 const list_rows = data.message.map((m) => `<li>${m}</li>`).join(""); 33751 data.message = `<ul style="padding-left: 20px">${list_rows}</ul>`; 33752 } 33753 if (data.as_table) { 33754 const rows = data.message.map((row) => { 33755 const cols = row.map((col) => `<td>${col}</td>`).join(""); 33756 return `<tr>${cols}</tr>`; 33757 }).join(""); 33758 data.message = `<table class="table table-bordered" style="margin: 0;">${rows}</table>`; 33759 } 33760 if (data.message instanceof Array) { 33761 let messages = data.message; 33762 const exceptions = messages.map((m) => { 33763 if (typeof m == "string") { 33764 return JSON.parse(m); 33765 } else { 33766 return m; 33767 } 33768 }).filter((m) => m.raise_exception); 33769 if (exceptions.length) { 33770 messages = exceptions; 33771 }
33772 messages.forEach(function(m) { 33773 frappe.msgprint(m); 33774 }); 33775 return; 33776 } 33777 if (data.alert || data.toast) { 33778 frappe.show_alert(data); 33779 return; 33780 } 33781 if (!frappe.msg_dialog) { 33782 frappe.msg_dialog = new frappe.ui.Dialog({ 33783 title: __("Message"), 33784 onhide: function() { 33785 if (frappe.msg_dialog.custom_onhide) { 33786 frappe.msg_dialog.custom_onhide(); 33787 } 33788 frappe.msg_dialog.msg_area.empty(); 33789 }, 33790 minimizable: data.is_minimizable || is_minimizable 33791 }); 33792 frappe.msg_dialog.msg_area = $('<div class="msgprint">').appendTo(frappe.msg_dialog.body); 33793 frappe.msg_dialog.clear = function() { 33794 frappe.msg_dialog.msg_area.empty(); 33795 }; 33796 frappe.msg_dialog.indicator = frappe.msg_dialog.header.find(".indicator"); 33797 } 33798 if (data.primary_action) { 33799 if (data.primary_action.server_action && typeof data.primary_action.server_action === "string") { 33800 data.primary_action.action = () => { 33801 frappe.call({ 33802 method: data.primary_action.server_action, 33803 args: { 33804 args: data.primary_action.args 33805 }, 33806 callback() { 33807 if (data.primary_action.hide_on_success) { 33808 frappe.hide_msgprint(); 33809 } 33810 } 33811 }); 33812 }; 33813 } 33814 if (data.primary_action.client_action && typeof data.primary_action.client_action === "string") { 33815 let parts2 = data.primary_action.client_action.split("."); 33816 let obj = window; 33817 for (let part of parts2) { 33818 obj = obj[part]; 33819 } 33820 data.primary_action.action = () => { 33821 if (typeof obj === "function") { 33822 obj(data.primary_action.args); 33823 } 33824 }; 33825 } 33826 frappe.msg_dialog.set_primary_action( 33827 __(data.primary_action.label) || __(data.primary_action_label) || __("Done"), 33828 data.primary_action.action 33829 ); 33830 } else { 33831 if (frappe.msg_dialog.has_primary_action) { 33832 frappe.msg_dialog.get_primary_btn().addClass("hide"); 33833 frappe.msg_dialog.has_primary_action = false; 33834 } 33835 } 33836 if (data.secondary_action) { 33837 frappe.msg_dialog.set_secondary_action(data.secondary_action.action); 33838 frappe.msg_dialog.set_secondary_action_label( 33839 __(data.secondary_action.label) || __("Close") 33840 ); 33841 } 33842 if (data.message == null) { 33843 data.message = ""; 33844 } 33845 if (data.message.search(/<br>|<p>|<li>/) == -1) { 33846 msg = frappe.utils.replace_newlines(data.message); 33847 } 33848 var msg_exists = false; 33849 if (data.clear) { 33850 frappe.msg_dialog.msg_area.empty(); 33851 } else { 33852 msg_exists = frappe.msg_dialog.msg_area.html(); 33853 } 33854 if (data.title || !msg_exists) { 33855 frappe.msg_dialog.set_title( 33856 data.title || __("Message", null, "Default title of the message dialog") 33857 ); 33858 } 33859 if (data.indicator) { 33860 frappe.msg_dialog.indicator.removeClass().addClass("indicator " + data.indicator); 33861 } else { 33862 frappe.msg_dialog.indicator.removeClass().addClass("hidden"); 33863 } 33864 if (data.wide) { 33865 if (frappe.msg_dialog.wrapper.classList.contains("msgprint-dialog")) { 33866 frappe.msg_dialog.wrapper.classList.remove("msgprint-dialog"); 33867 } 33868 } else { 33869 frappe.msg_dialog.wrapper.classList.add("msgprint-dialog"); 33870 } 33871 if (msg_exists) { 33872 frappe.msg_dialog.msg_area.append("<hr>"); 33873 } 33874 frappe.msg_dialog.msg_area.append(data.message); 33875 frappe.msg_dialog.$wrapper.css("z-index", 2e3); 33876 frappe.msg_dialog.show(); 33877 return frappe.msg_dialog; 33878 }; 33879 window.msgprint = frappe.msgprint; 33880 frappe.hide_msgprint = function(instant) { 33881 if (frappe.msg_dialog && frappe.msg_dialog.msg_area) { 33882 frappe.msg_dialog.msg_area.empty(); 33883 } 33884 if (frappe.msg_dialog && frappe.msg_dialog.$wrapper.is(":visible")) { 33885 if (instant) { 33886 frappe.msg_dialog.$wrapper.removeClass("fade"); 33887 } 33888 frappe.msg_dialog.hide(); 33889 if (instant) { 33890 frappe.msg_dialog.$wrapper.addClass("fade"); 33891 } 33892 } 33893 }; 33894 frappe.update_msgprint = function(html) { 33895 if (!frappe.msg_dialog || frappe.msg_dialog && !frappe.msg_dialog.$wrapper.is(":visible")) { 33896 frappe.msgprint(html); 33897 } else { 33898 frappe.msg_dialog.msg_area.html(html); 33899 } 33900 }; 33901 frappe.verify_password = function(callback) { 33902 frappe.prompt( 33903 { 33904 fieldname: "password", 33905 label: __("Enter your password"), 33906 fieldtype: "Password", 33907 reqd: 1 33908 }, 33909 function(data) { 33910 frappe.call({ 33911 method: "frappe.core.doctype.user.user.verify_password", 33912 args: { 33913 password: data.password 33914 }, 33915 callback: function(r) { 33916 if (!r.exc) { 33917 callback(); 33918 } 33919 } 33920 }); 33921 }, 33922 __("Verify Password"), 33923 __("Verify") 33924 ); 33925 }; 33926 frappe.show_progress = (title, count, total = 100, description, hide_on_completion = false) => { 33927 let dialog; 33928 if (frappe.cur_progress && frappe.cur_progress.title === title && frappe.cur_progress.is_visible) { 33929 dialog = frappe.cur_progress; 33930 } else { 33931 dialog = new frappe.ui.Dialog({ 33932 title 33933 }); 33934 dialog.progress = $(`<div> 33935 <div class="progress"> 33936 <div class="progress-bar"></div> 33937 </div> 33938 <p class="description text-muted small"></p> 33939 </div`).appendTo(dialog.body); 33940 dialog.progress_bar = dialog.progress.css({ "margin-top": "10px" }).find(".progress-bar"); 33941 dialog.$wrapper.removeClass("fade"); 33942 dialog.show(); 33943 frappe.cur_progress = dialog; 33944 } 33945 if (description) { 33946 dialog.progress.find(".description").text(description); 33947 } 33948 dialog.percent = cint(flt(count) * 100 / total); 33949 dialog.progress_bar.css({ width: dialog.percent + "%" }); 33950 if (hide_on_completion && dialog.percent === 100) { 33951 setTimeout(frappe.hide_progress, 500); 33952 } 33953 frappe.cur_progress.$wrapper.css("z-index", 2e3); 33954 return dialog; 33955 }; 33956 frappe.hide_progress = function() { 33957 if (frappe.cur_progress) { 33958 frappe.cur_progress.hide(); 33959 frappe.cur_progress = null; 33960 } 33961 }; 33962 frappe.show_alert = frappe.toast = function(message, seconds = 7, actions = {}) { 33963 let indicator_icon_map = { 33964 orange: "solid-warning", 33965 yellow: "solid-warning", 33966 blue: "solid-info", 33967 green: "solid-success", 33968 red: "solid-error" 33969 }; 33970 if (typeof message === "string") { 33971 message = { 33972 message 33973 }; 33974 } 33975 if (!$("#dialog-container").length) { 33976 $('<div id="dialog-container"><div id="alert-container"></div></div>').appendTo("body"); 33977 } 33978 let icon; 33979 if (message.indicator) { 33980 icon = indicator_icon_map[message.indicator.toLowerCase()] || "solid-" + message.indicator; 33981 } else { 33982 icon = "solid-info"; 33983 } 33984 const indicator = message.indicator || "blue"; 33985 const div = $(` 33986 <div class="alert desk-alert ${indicator}" role="alert"> 33987 <div class="alert-message-container"> 33988 <div class="alert-title-container"> 33989 <div>${frappe.utils.icon(icon, "lg")}</div> 33990 <div class="alert-message">${message.message}</div>
33991 </div> 33992 <div class="alert-subtitle">${message.subtitle || ""}</div> 33993 </div> 33994 <div class="alert-body" style="display: none"></div> 33995 <a class="close">${frappe.utils.icon("close-alt")}</a> 33996 </div> 33997 `); 33998 div.hide().appendTo("#alert-container").show(); 33999 if (message.body) { 34000 div.find(".alert-body").show().html(message.body); 34001 } 34002 div.find(".close, button").click(function() { 34003 div.addClass("out"); 34004 setTimeout(() => div.remove(), 800); 34005 return false; 34006 }); 34007 Object.keys(actions).map((key) => { 34008 div.find(`[data-action=${key}]`).on("click", actions[key]); 34009 }); 34010 if (seconds > 2) { 34011 seconds = seconds - 0.8; 34012 } 34013 setTimeout(() => { 34014 div.addClass("out"); 34015 setTimeout(() => div.remove(), 800); 34016 return false; 34017 }, seconds * 1e3); 34018 return div; 34019 }; 34020 34021
34021// frappe/public/js/frappe/utils/pretty_date.js 34022 function prettyDate(date, mini) { 34023 if (!date) 34024 return ""; 34025 if (typeof date == "string") { 34026 date = frappe.datetime.convert_to_user_tz(date); 34027 date = new Date( 34028 (date || "").replace(/-/g, "/").replace(/[TZ]/g, " ").replace(/\.[0-9]*/, "") 34029 ); 34030 } 34031 let diff = (new Date(frappe.datetime.now_datetime().replace(/-/g, "/")).getTime() - date.getTime()) / 1e3; 34032 let day_diff = Math.floor(diff / 86400); 34033 if (isNaN(day_diff) || day_diff < 0) 34034 return ""; 34035 if (mini) { 34036 if (day_diff == 0) { 34037 if (diff < 60) { 34038 return __("now"); 34039 } else if (diff < 3600) { 34040 return __("{0} m", [Math.floor(diff / 60)]); 34041 } else if (diff < 86400) { 34042 return __("{0} h", [Math.floor(diff / 3600)]); 34043 } 34044 } else { 34045 if (day_diff < 7) { 34046 return __("{0} d", [day_diff]); 34047 } else if (day_diff < 31) { 34048 return __("{0} w", [Math.floor(day_diff / 7)]); 34049 } else if (day_diff < 365) { 34050 return __("{0} M", [Math.floor(day_diff / 30)]); 34051 } else { 34052 return __("{0} y", [Math.floor(day_diff / 365)]); 34053 } 34054 } 34055 } else { 34056 if (day_diff == 0) { 34057 if (diff < 60) { 34058 return __("just now"); 34059 } else if (diff < 120) { 34060 return __("1 minute ago"); 34061 } else if (diff < 3600) { 34062 return __("{0} minutes ago", [Math.floor(diff / 60)]); 34063 } else if (diff < 7200) { 34064 return __("1 hour ago"); 34065 } else if (diff < 86400) { 34066 return __("{0} hours ago", [Math.floor(diff / 3600)]); 34067 } 34068 } else { 34069 if (day_diff == 1) { 34070 return __("yesterday"); 34071 } else if (day_diff < 7) { 34072 return __("{0} days ago", [day_diff]); 34073 } else if (day_diff < 14) { 34074 return __("1 week ago"); 34075 } else if (day_diff < 31) { 34076 return __("{0} weeks ago", [Math.floor(day_diff / 7)]); 34077 } else if (day_diff < 62) { 34078 return __("1 month ago"); 34079 } else if (day_diff < 365) { 34080 return __("{0} months ago", [Math.floor(day_diff / 30)]); 34081 } else if (day_diff < 730) { 34082 return __("1 year ago"); 34083 } else { 34084 return __("{0} years ago", [Math.floor(day_diff / 365)]); 34085 } 34086 } 34087 } 34088 } 34089 frappe.provide("frappe.datetime"); 34090 window.comment_when = function(datetime, mini) { 34091 var timestamp = frappe.datetime.str_to_user ? frappe.datetime.str_to_user(datetime) : datetime; 34092 return '<span class="frappe-timestamp ' + (mini ? " mini" : "") + '" data-timestamp="' + datetime + '" title="' + timestamp + '">' + prettyDate(datetime, mini) + "</span>"; 34093 }; 34094 frappe.datetime.comment_when = comment_when; 34095 frappe.datetime.prettyDate = prettyDate; 34096 frappe.datetime.refresh_when = function() { 34097 if (jQuery) { 34098 $(".frappe-timestamp").each(function() { 34099 $(this).html(prettyDate($(this).attr("data-timestamp"), $(this).hasClass("mini"))); 34100 }); 34101 } 34102 }; 34103 setInterval(function() { 34104 frappe.datetime.refresh_when(); 34105 }, 6e4); 34106 34107
34107// frappe/public/js/frappe/utils/datetime.js 34108 frappe.provide("frappe.datetime"); 34109 frappe.defaultDateFormat = "YYYY-MM-DD"; 34110 frappe.defaultTimeFormat = "HH:mm:ss"; 34111 frappe.defaultDatetimeFormat = frappe.defaultDateFormat + " " + frappe.defaultTimeFormat; 34112 moment.defaultFormat = frappe.defaultDateFormat; 34113 frappe.provide("frappe.datetime"); 34114 $.extend(frappe.datetime, { 34115 convert_to_user_tz: function(date, format2) { 34116 let date_obj = null; 34117 if (frappe.boot.time_zone && frappe.boot.time_zone.system && frappe.boot.time_zone.user) { 34118 date_obj = moment.tz(date, frappe.boot.time_zone.system).clone().tz(frappe.boot.time_zone.user); 34119 } else { 34120 date_obj = moment(date); 34121 } 34122 return format2 === false ? date_obj : date_obj.format(frappe.defaultDatetimeFormat); 34123 }, 34124 convert_to_system_tz: function(date, format2) { 34125 let date_obj = null; 34126 if (frappe.boot.time_zone && frappe.boot.time_zone.system && frappe.boot.time_zone.user) { 34127 date_obj = moment.tz(date, frappe.boot.time_zone.user).clone().tz(frappe.boot.time_zone.system); 34128 } else { 34129 date_obj = moment(date); 34130 } 34131 return format2 === false ? date_obj : date_obj.format(frappe.defaultDatetimeFormat); 34132 }, 34133 is_system_time_zone: function() { 34134 if (frappe.boot.time_zone && frappe.boot.time_zone.system && frappe.boot.time_zone.user) { 34135 return moment().tz(frappe.boot.time_zone.system).utcOffset() === moment().tz(frappe.boot.time_zone.user).utcOffset(); 34136 } 34137 return true; 34138 }, 34139 is_timezone_same: function() { 34140 return frappe.datetime.is_system_time_zone(); 34141 }, 34142 str_to_obj: function(d) { 34143 return moment(d, frappe.defaultDatetimeFormat)._d; 34144 }, 34145 obj_to_str: function(d) { 34146 return moment(d).locale("en").format(); 34147 }, 34148 obj_to_user: function(d) { 34149 return moment(d).format(frappe.datetime.get_user_date_fmt().toUpperCase()); 34150 }, 34151 get_diff: function(d1, d2) { 34152 return moment(d1).diff(d2, "days"); 34153 }, 34154 get_hour_diff: function(d1, d2) { 34155 return moment(d1).diff(d2, "hours"); 34156 }, 34157 get_minute_diff: function(d1, d2) { 34158 return moment(d1).diff(d2, "minutes"); 34159 }, 34160 get_day_diff: function(d1, d2) { 34161 return moment(d1).diff(d2, "days"); 34162 }, 34163 add_days: function(d, days) { 34164 return moment(d).add(days, "days").format(); 34165 }, 34166 add_months: function(d, months) { 34167 return moment(d).add(months, "months").format(); 34168 }, 34169 week_start: function() { 34170 return moment().startOf("week").format(); 34171 }, 34172 week_end: function() { 34173 return moment().endOf("week").format(); 34174 }, 34175 month_start: function() { 34176 return moment().startOf("month").format(); 34177 }, 34178 month_end: function() { 34179 return moment().endOf("month").format(); 34180 }, 34181 quarter_start: function() { 34182 return moment().startOf("quarter").format(); 34183 }, 34184 quarter_end: function() { 34185 return moment().endOf("quarter").format(); 34186 }, 34187 year_start: function() { 34188 return moment().startOf("year").format(); 34189 }, 34190 year_end: function() { 34191 return moment().endOf("year").format(); 34192 }, 34193 get_user_time_fmt: function() { 34194 return frappe.sys_defaults && frappe.sys_defaults.time_format || "HH:mm:ss"; 34195 }, 34196 get_user_date_fmt: function() { 34197 return frappe.sys_defaults && frappe.sys_defaults.date_format || "yyyy-mm-dd"; 34198 }, 34199 get_user_fmt: function() { 34200 return frappe.sys_defaults && frappe.sys_defaults.date_format || "yyyy-mm-dd"; 34201 }, 34202 str_to_user: function(val, only_time = false, only_date = false) { 34203 if (!val) { 34204 return ""; 34205 } 34206 const user_date_fmt = frappe.datetime.get_user_date_fmt().toUpperCase(); 34207 const user_time_fmt = frappe.datetime.get_user_time_fmt(); 34208 if (only_time) { 34209 let date_obj = moment(val, frappe.defaultTimeFormat); 34210 return date_obj.format(user_time_fmt); 34211 } else if (only_date || typeof val === "string" && val.indexOf(" ") === -1) { 34212 let date_obj = moment(val, frappe.defaultDateFormat); 34213 return date_obj.format(user_date_fmt); 34214 } else { 34215 const system_datetime = moment.tz( 34216 val, 34217 frappe.defaultDatetimeFormat, 34218 frappe.boot.time_zone.system 34219 ); 34220 const user_datetime = system_datetime.clone().tz(frappe.boot.time_zone.user); 34221 return user_datetime.format(user_date_fmt + " " + user_time_fmt); 34222 } 34223 }, 34224 get_datetime_as_string: function(d) { 34225 return moment(d).format("YYYY-MM-DD HH:mm:ss"); 34226 }, 34227 user_to_str: function(val, only_time = false) { 34228 var user_time_fmt = frappe.datetime.get_user_time_fmt(); 34229 if (only_time) { 34230 return moment(val, user_time_fmt).format(frappe.defaultTimeFormat); 34231 } 34232 var user_fmt = frappe.datetime.get_user_date_fmt().toUpperCase(); 34233 var system_fmt = "YYYY-MM-DD"; 34234 if (val.indexOf(" ") !== -1) { 34235 user_fmt += " " + user_time_fmt; 34236 system_fmt += " HH:mm:ss"; 34237 } 34238 return moment(val, [user_fmt.replace("YYYY", "YY"), user_fmt]).locale("en").format(system_fmt); 34239 }, 34240 user_to_obj: function(d) { 34241 return frappe.datetime.str_to_obj(frappe.datetime.user_to_str(d)); 34242 }, 34243 global_date_format: function(d) { 34244 var m = moment(d); 34245 if (m._f && m._f.indexOf("HH") !== -1) { 34246 return m.format("Do MMMM YYYY, hh:mm A"); 34247 } else { 34248 return m.format("Do MMMM YYYY"); 34249 } 34250 }, 34251 now_date: function(as_obj = false) { 34252 return frappe.datetime._date(frappe.defaultDateFormat, as_obj); 34253 }, 34254 now_time: function(as_obj = false) { 34255 return frappe.datetime._date(frappe.defaultTimeFormat, as_obj); 34256 }, 34257 now_datetime: function(as_obj = false) { 34258 return frappe.datetime._date(frappe.defaultDatetimeFormat, as_obj); 34259 }, 34260 system_datetime: function(as_obj = false) { 34261 return frappe.datetime._date(frappe.defaultDatetimeFormat, as_obj, true); 34262 }, 34263 _date: function(format2, as_obj = false, system_time = false) { 34264 var _a, _b; 34265 let time_zone = ((_a = frappe.boot.time_zone) == null ? void 0 : _a.system) || frappe.sys_defaults.time_zone; 34266 if (!system_time) { 34267 time_zone = ((_b = frappe.boot.time_zone) == null ? void 0 : _b.user) || time_zone; 34268 } 34269 let date = moment.tz(time_zone); 34270 return as_obj ? frappe.datetime.moment_to_date_obj(date) : date.format(format2); 34271 }, 34272 moment_to_date_obj: function(moment_obj) { 34273 const date_obj = new Date(); 34274 const date_array = moment_obj.toArray(); 34275 date_obj.setFullYear(date_array[0]); 34276 date_obj.setMonth(date_array[1]); 34277 date_obj.setDate(date_array[2]); 34278 date_obj.setHours(date_array[3]); 34279 date_obj.setMinutes(date_array[4]); 34280 date_obj.setSeconds(date_array[5]); 34281 date_obj.setMilliseconds(date_array[6]); 34282 return date_obj; 34283 }, 34284 nowdate: function() { 34285 return frappe.datetime.now_date(); 34286 }, 34287 get_today: function() { 34288 return frappe.datetime.now_date(); 34289 }, 34290 get_time: (timestamp) => { 34291 return moment(timestamp).format("hh:mm A"); 34292 }, 34293 validate: function(d) { 34294 return moment( 34295 d, 34296 [frappe.defaultDateFormat, frappe.defaultDatetimeFormat, frappe.defaultTimeFormat], 34297 true 34298 ).isValid(); 34299 }, 34300 get_first_day_of_the_week_index() { 34301 const first_day_of_the_week = frappe.sys_defaults.first_day_of_the_week || "Sunday"; 34302 return moment.weekdays().indexOf(first_day_of_the_week); 34303 } 34304 }); 34305 34306
34306// frappe/public/js/frappe/microtemplate.js 34307 frappe.template = { compiled: {}, debug: {} }; 34308 frappe.template.compile = function(str, name2) { 34309 var key = name2 || str; 34310 if (!frappe.template.compiled[key]) { 34311 let replacer2 = function(match, p1, p2, offset, string) { 34312 var i2 = frappe.utils.get_random(3); 34313 var len = frappe.utils.get_random(3); 34314 return "{% for (var " + i2 + "=0, " + len + "=" + p2 + ".length; " + i2 + "<" + len + "; " + i2 + "++) { var " + p1 + " = " + p2 + "[" + i2 + "]; " + p1 + "._index = " + i2 + "; %}"; 34315 }; 34316 var replacer = replacer2; 34317 if (str.indexOf("'") !== -1) { 34318 str.replace(/'/g, "\\'"); 34319 } 34320 str = str.replace(/{{/g, "{%=").replace(/}}/g, "%}"); 34321 str = str.replace(/{%\s?if\s?\s?not\s?([^\(][^%{]+)\s?%}/g, "{% if (! $1) { %}"); 34322 str = str.replace(/{%\s?if\s?([^\(][^%{]+)\s?%}/g, "{% if ($1) { %}"); 34323 str = str.replace(/{%\s?for\s([a-z._]+)\sin\s([a-z._]+)\s?%}/g, replacer2); 34324 str = str.replace(/{%\s?endif\s?%}/g, "{% }; %}"); 34325 str = str.replace(/{%\s?else\s?%}/g, "{% } else { %}"); 34326 str = str.replace(/{%\s?endfor\s?%}/g, "{% }; %}"); 34327 var fn_str = "var _p=[],print=function(){_p.push.apply(_p,arguments)};with(obj){\n_p.push('" + str.replace(/[\r\t\n]/g, " ").split("{%").join(" ").replace(/((^|%})[^\t]*)'/g, "$1\r").replace(/\t=(.*?)%}/g, "',$1,'").split(" ").join("');\n").split("%}").join("\n_p.push('").split("\r").join("\\'") + "');}return _p.join('');"; 34328 frappe.template.debug[name2] = fn_str; 34329 try { 34330 frappe.template.compiled[key] = new Function("obj", fn_str); 34331 } catch (e) { 34332 console.log("Error in Template:"); 34333 console.log(fn_str); 34334 if (e.lineNumber) { 34335 console.log("Error in Line " + e.lineNumber + ", Col " + e.columnNumber + ":"); 34336 console.log(fn_str.split("\n")[e.lineNumber - 1]); 34337 } 34338 } 34339 } 34340 return frappe.template.compiled[key]; 34341 }; 34342 frappe.render = function(str, data, name2) { 34343 return frappe.template.compile(str, name2)(data); 34344 }; 34345 frappe.render_template = function(name2, data) { 34346 let template; 34347 if (name2.indexOf(" ") !== -1) { 34348 template = name2; 34349 } else { 34350 template = frappe.templates[name2]; 34351 } 34352 if (data === void 0) { 34353 data = {}; 34354 } 34355 if (!template) { 34356 frappe.throw(`Template <b>${name2}</b> not found.`); 34357 } 34358 return frappe.render(template, data, name2); 34359 }; 34360 frappe.render_grid = function(opts) { 34361 if (opts.grid) { 34362 opts.columns = opts.grid.getColumns(); 34363 opts.data = opts.grid.getData().getItems(); 34364 } 34365 if (opts.print_settings && opts.print_settings.orientation && opts.print_settings.orientation.toLowerCase() === "landscape") { 34366 opts.landscape = true; 34367 } 34368 if (opts.landscape == null) { 34369 if (opts.columns && opts.columns.length > 10) { 34370 opts.landscape = true; 34371 } else { 34372 opts.landscape = false;
34373 } 34374 } 34375 if (!opts.content) { 34376 opts.content = frappe.render_template(opts.template || "print_grid", opts); 34377 } 34378 opts.base_url = frappe.urllib.get_base_url(); 34379 opts.print_css = frappe.boot.print_css; 34380 opts.lang = opts.lang || frappe.boot.lang, opts.layout_direction = opts.layout_direction || frappe.utils.is_rtl() ? "rtl" : "ltr"; 34381 var html = frappe.render_template("print_template", opts); 34382 var w = window.open(); 34383 if (!w) { 34384 frappe.msgprint(__("Please enable pop-ups in your browser")); 34385 } 34386 w.document.write(html); 34387 w.document.close(); 34388 }, frappe.render_tree = function(opts) { 34389 opts.base_url = frappe.urllib.get_base_url(); 34390 opts.landscape = false; 34391 opts.print_css = frappe.boot.print_css; 34392 opts.print_format_css_path = frappe.assets.bundled_asset("print_format.bundle.css"); 34393 var tree = frappe.render_template("print_tree", opts); 34394 var w = window.open(); 34395 if (!w) { 34396 frappe.msgprint(__("Please enable pop-ups in your browser")); 34397 } 34398 w.document.write(tree); 34399 w.document.close(); 34400 }; 34401 frappe.render_pdf = function(html, opts = {}) { 34402 var formData = new FormData(); 34403 formData.append("html", html); 34404 if (opts.orientation) { 34405 formData.append("orientation", opts.orientation); 34406 } 34407 var blob = new Blob([], { type: "text/xml" }); 34408 formData.append("blob", blob); 34409 var xhr = new XMLHttpRequest(); 34410 xhr.open("POST", "/api/method/frappe.utils.print_format.report_to_pdf"); 34411 xhr.setRequestHeader("X-Frappe-CSRF-Token", frappe.csrf_token); 34412 xhr.responseType = "arraybuffer"; 34413 xhr.onload = function(success) { 34414 if (this.status === 200) { 34415 var blob2 = new Blob([success.currentTarget.response], { type: "application/pdf" }); 34416 var objectUrl = URL.createObjectURL(blob2); 34417 let hidden_a_tag = document.createElement("a"); 34418 document.body.appendChild(hidden_a_tag); 34419 hidden_a_tag.style = "display: none"; 34420 hidden_a_tag.href = objectUrl; 34421 hidden_a_tag.download = opts.report_name || "report.pdf"; 34422 hidden_a_tag.click(); 34423 window.URL.revokeObjectURL(objectUrl); 34424 } 34425 }; 34426 xhr.send(formData); 34427 }; 34428 34429
34429// frappe/public/js/frappe/query_string.js 34430 frappe.provide("frappe.utils"); 34431 function get_url_arg(name2) { 34432 return get_query_params()[name2] || ""; 34433 } 34434 function get_query_string(url2) { 34435 if (url2.includes("?")) { 34436 return url2.slice(url2.indexOf("?") + 1); 34437 } else { 34438 return ""; 34439 } 34440 } 34441 function get_query_params(query_string) { 34442 var query_params = {}; 34443 if (!query_string) { 34444 query_string = location.search.substring(1); 34445 } 34446 var query_list = query_string.split("&"); 34447 for (var i2 = 0, l = query_list.length; i2 < l; i2++) { 34448 var pair = query_list[i2].split(/=(.+)/); 34449 var key = pair[0]; 34450 if (!key) { 34451 continue; 34452 } 34453 var value2 = pair[1]; 34454 if (typeof value2 === "string") { 34455 value2 = value2.replace(/\+/g, "%20"); 34456 try { 34457 value2 = decodeURIComponent(value2); 34458 } catch (e) { 34459 } 34460 } 34461 if (key in query_params) { 34462 if (typeof query_params[key] === "undefined") { 34463 query_params[key] = []; 34464 } else if (typeof query_params[key] === "string") { 34465 query_params[key] = [query_params[key]]; 34466 } 34467 query_params[key].push(value2); 34468 } else { 34469 query_params[key] = value2; 34470 } 34471 } 34472 return query_params; 34473 } 34474 function make_query_string(obj, encode3 = true) { 34475 let query_params = []; 34476 for (let key in obj) { 34477 let value2 = obj[key]; 34478 if (value2 === void 0 || value2 === "" || value2 === null) { 34479 continue; 34480 } 34481 if (typeof value2 === "object") { 34482 value2 = JSON.stringify(value2); 34483 } 34484 if (encode3) { 34485 key = encodeURIComponent(key); 34486 value2 = encodeURIComponent(value2); 34487 } 34488 query_params.push(`${key}=${value2}`); 34489 } 34490 return "?" + query_params.join("&"); 34491 } 34492 Object.assign(frappe.utils, { 34493 get_url_arg, 34494 get_query_string, 34495 get_query_params, 34496 make_query_string 34497 }); 34498 34499
34499// frappe/public/js/frappe/upload.js 34500 if (frappe.require) { 34501 frappe.require("file_uploader.bundle.js"); 34502 } else { 34503 frappe.ready(function() { 34504 frappe.require("file_uploader.bundle.js"); 34505 }); 34506 } 34507 34508
34508// frappe/public/js/frappe/model/meta.js 34509 frappe.provide("frappe.meta.docfield_map"); 34510 frappe.provide("frappe.meta.docfield_copy"); 34511 frappe.provide("frappe.meta.docfield_list"); 34512 frappe.provide("frappe.meta.doctypes"); 34513 frappe.provide("frappe.meta.precision_map"); 34514 frappe.get_meta = function(doctype) { 34515 return locals["DocType"] ? locals["DocType"][doctype] : null; 34516 }; 34517 $.extend(frappe.meta, { 34518 sync: function(doc) { 34519 $.each(doc.fields, function(i2, df) { 34520 frappe.meta.add_field(df); 34521 }); 34522 frappe.meta.sync_messages(doc); 34523 if (doc.__print_formats) 34524 frappe.model.sync(doc.__print_formats); 34525 if (doc.__workflow_docs) 34526 frappe.model.sync(doc.__workflow_docs); 34527 }, 34528 add_field: function(df) { 34529 frappe.provide("frappe.meta.docfield_map." + df.parent); 34530 frappe.meta.docfield_map[df.parent][df.fieldname || df.label] = df; 34531 if (!frappe.meta.docfield_list[df.parent]) 34532 frappe.meta.docfield_list[df.parent] = []; 34533 for (var i2 in frappe.meta.docfield_list[df.parent]) { 34534 var d = frappe.meta.docfield_list[df.parent][i2]; 34535 if (df.fieldname == d.fieldname) 34536 return; 34537 } 34538 frappe.meta.docfield_list[df.parent].push(df); 34539 }, 34540 make_docfield_copy_for: function(doctype, docname, docfield_list = null) { 34541 var c = frappe.meta.docfield_copy; 34542 if (!c[doctype]) 34543 c[doctype] = {}; 34544 if (!c[doctype][docname]) 34545 c[doctype][docname] = {}; 34546 docfield_list = docfield_list || frappe.meta.docfield_list[doctype] || []; 34547 for (var i2 = 0, j = docfield_list.length; i2 < j; i2++) { 34548 var df = docfield_list[i2]; 34549 c[doctype][docname][df.fieldname || df.label] = copy_dict(df); 34550 } 34551 }, 34552 get_field: function(doctype, fieldname, name2) { 34553 var out = frappe.meta.get_docfield(doctype, fieldname, name2); 34554 if (!out) { 34555 frappe.model.std_fields.every(function(d) { 34556 if (d.fieldname === fieldname) { 34557 out = d; 34558 return false; 34559 } else { 34560 return true; 34561 } 34562 }); 34563 } 34564 return out; 34565 }, 34566 get_docfield: function(doctype, fieldname, name2) { 34567 var fields_dict = frappe.meta.get_docfield_copy(doctype, name2); 34568 return fields_dict ? fields_dict[fieldname] : null; 34569 }, 34570 set_formatter: function(doctype, fieldname, name2, formatter) { 34571 frappe.meta.get_docfield(doctype, fieldname, name2).formatter = formatter; 34572 }, 34573 set_indicator_formatter: function(doctype, fieldname, name2, get_text, get_color) { 34574 frappe.meta.get_docfield(doctype, fieldname, name2).formatter = function(value2, df, options, doc) { 34575 return repl('<span class="indicator %(color)s">%(name)s</span>', { 34576 color: get_color(), 34577 name: get_text() 34578 }); 34579 }; 34580 }, 34581 get_docfields: function(doctype, name2, filters) { 34582 var docfield_map = frappe.meta.get_docfield_copy(doctype, name2); 34583 var docfields = frappe.meta.sort_docfields(docfield_map); 34584 if (filters) { 34585 docfields = frappe.utils.filter_dict(docfields, filters); 34586 } 34587 return docfields; 34588 }, 34589 get_linked_fields: function(doctype) { 34590 return $.map(frappe.get_meta(doctype).fields, function(d) { 34591 return d.fieldtype == "Link" ? d.options : null; 34592 }); 34593 }, 34594 get_fields_to_check_permissions: function(doctype) { 34595 var fields = $.map(frappe.meta.get_docfields(doctype, name), function(df) { 34596 return df.fieldtype === "Link" && df.ignore_user_permissions !== 1 ? df : null; 34597 }); 34598 fields = fields.concat({ label: "ID", fieldname: name, options: doctype }); 34599 return fields; 34600 }, 34601 sort_docfields: function(docs) { 34602 return $.map(docs, function(d) { 34603 return d; 34604 }).sort(function(a, b) { 34605 return a.idx - b.idx; 34606 }); 34607 }, 34608 get_docfield_copy: function(doctype, name2) { 34609 if (!name2) 34610 return frappe.meta.docfield_map[doctype]; 34611 if (!(frappe.meta.docfield_copy[doctype] && frappe.meta.docfield_copy[doctype][name2])) { 34612 frappe.meta.make_docfield_copy_for(doctype, name2); 34613 } 34614 return frappe.meta.docfield_copy[doctype][name2]; 34615 }, 34616 get_fieldnames: function(doctype, name2, filters) { 34617 return $.map( 34618 frappe.utils.filter_dict(frappe.meta.docfield_map[doctype], filters), 34619 function(df) { 34620 return df.fieldname; 34621 } 34622 ); 34623 }, 34624 has_field: function(dt, fn) { 34625 let docfield_map = frappe.meta.docfield_map[dt]; 34626 return docfield_map && docfield_map[fn]; 34627 }, 34628 get_table_fields: function(dt) { 34629 return $.map(frappe.meta.docfield_list[dt], function(d) { 34630 return frappe.model.table_fields.includes(d.fieldtype) ? d : null; 34631 }); 34632 }, 34633 get_doctype_for_field: function(doctype, key) { 34634 var out = null; 34635 if (frappe.model.std_fields_list.includes(key)) { 34636 out = doctype; 34637 } else if (frappe.meta.has_field(doctype, key)) { 34638 out = doctype; 34639 } else { 34640 frappe.meta.get_table_fields(doctype).every(function(d) { 34641 if (frappe.meta.has_field(d.options, key) || frappe.model.child_table_field_list.includes(key)) { 34642 out = d.options; 34643 return false;
34644 } 34645 return true; 34646 }); 34647 if (!out) { 34648 console.log( 34649 __("Warning: Unable to find {0} in any table related to {1}", [ 34650 key, 34651 __(doctype) 34652 ]) 34653 ); 34654 } 34655 } 34656 return out; 34657 }, 34658 get_parentfield: function(parent_dt, child_dt) { 34659 var df = (frappe.get_doc("DocType", parent_dt).fields || []).filter( 34660 (df2) => frappe.model.table_fields.includes(df2.fieldtype) && df2.options === child_dt 34661 ); 34662 if (!df.length) 34663 throw "parentfield not found for " + parent_dt + ", " + child_dt; 34664 return df[0].fieldname; 34665 }, 34666 get_label: function(dt, fn, dn) { 34667 var standard = { 34668 name: __("ID"), 34669 creation: __("Created On"), 34670 docstatus: __("Document Status"), 34671 idx: __("Index"), 34672 modified: __("Last Updated On"), 34673 modified_by: __("Last Updated By"), 34674 owner: __("Created By"), 34675 _user_tags: __("Tags"), 34676 _liked_by: __("Liked By"), 34677 _comments: __("Comments"), 34678 _assign: __("Assigned To") 34679 }; 34680 if (standard[fn]) { 34681 return standard[fn]; 34682 } else { 34683 var df = this.get_docfield(dt, fn, dn); 34684 return (df ? df.label : "") || fn; 34685 } 34686 }, 34687 get_print_sizes: function() { 34688 return [ 34689 "A0", 34690 "A1", 34691 "A2", 34692 "A3", 34693 "A4", 34694 "A5", 34695 "A6", 34696 "A7", 34697 "A8", 34698 "A9", 34699 "B0", 34700 "B1", 34701 "B2", 34702 "B3", 34703 "B4", 34704 "B5", 34705 "B6", 34706 "B7", 34707 "B8", 34708 "B9", 34709 "B10", 34710 "C5E", 34711 "Comm10E", 34712 "DLE", 34713 "Executive", 34714 "Folio", 34715 "Ledger", 34716 "Legal", 34717 "Letter", 34718 "Tabloid", 34719 "Custom" 34720 ]; 34721 }, 34722 get_print_formats: function(doctype) { 34723 var print_format_list = ["Standard"]; 34724 var default_print_format = locals.DocType[doctype].default_print_format; 34725 let enable_raw_printing = frappe.model.get_doc( 34726 ":Print Settings", 34727 "Print Settings" 34728 ).enable_raw_printing; 34729 var print_formats = frappe.get_list("Print Format", { doc_type: doctype }).sort(function(a, b) { 34730 return a > b ? 1 : -1; 34731 }); 34732 $.each(print_formats, function(i2, d) { 34733 if (!print_format_list.includes(d.name) && d.print_format_type !== "JS" && (cint(enable_raw_printing) || !d.raw_printing)) { 34734 print_format_list.push(d.name); 34735 } 34736 }); 34737 if (default_print_format && default_print_format != "Standard") { 34738 var index = print_format_list.indexOf(default_print_format); 34739 print_format_list.splice(index, 1).sort(); 34740 print_format_list.unshift(default_print_format); 34741 } 34742 return print_format_list; 34743 }, 34744 sync_messages: function(doc) { 34745 if (doc.__messages) { 34746 $.extend(frappe._messages, doc.__messages); 34747 } 34748 }, 34749 get_field_currency: function(df, doc) { 34750 var currency = frappe.boot.sysdefaults.currency || "USD"; 34751 if (!doc && cur_frm) 34752 doc = cur_frm.doc; 34753 if (df && df.options) { 34754 if (df.options.indexOf(":") != -1) { 34755 var options = df.options.split(":"); 34756 if (options.length == 3) { 34757 let docname = null; 34758 if (doc) { 34759 docname = doc[options[1]]; 34760 if (!docname && cur_frm) { 34761 docname = cur_frm.doc[options[1]]; 34762 } 34763 } else { 34764 docname = frappe.defaults.get_user_default(options[1]); 34765 } 34766 currency = frappe.model.get_value(options[0], docname, options[2]) || frappe.model.get_value(":" + options[0], docname, options[2]) || currency; 34767 } 34768 } else if (doc && doc[df.options]) { 34769 currency = doc[df.options]; 34770 } else if (cur_frm && cur_frm.doc[df.options]) { 34771 currency = cur_frm.doc[df.options]; 34772 } 34773 } 34774 return currency; 34775 }, 34776 get_field_precision: function(df, doc) { 34777 var precision3 = null; 34778 if (df && df.precision) { 34779 precision3 = cint(df.precision); 34780 } else if (df && df.fieldtype === "Currency") {
34781 precision3 = cint(frappe.defaults.get_default("currency_precision")); 34782 if (!precision3) { 34783 var number_format = get_number_format(); 34784 var number_format_info = get_number_format_info(number_format); 34785 precision3 = number_format_info.precision; 34786 } 34787 } else { 34788 precision3 = cint(frappe.defaults.get_default("float_precision")) || 3; 34789 } 34790 return precision3; 34791 } 34792 }); 34793 34794
34794// frappe/public/js/frappe/model/model.js 34795 frappe.provide("frappe.model"); 34796 $.extend(frappe.model, { 34797 all_fieldtypes: [ 34798 "Autocomplete", 34799 "Attach", 34800 "Attach Image", 34801 "Barcode", 34802 "Button", 34803 "Check", 34804 "Code", 34805 "Color", 34806 "Currency", 34807 "Data", 34808 "Date", 34809 "Datetime", 34810 "Duration", 34811 "Dynamic Link", 34812 "Float", 34813 "Geolocation", 34814 "Heading", 34815 "HTML", 34816 "HTML Editor", 34817 "Icon", 34818 "Image", 34819 "Int", 34820 "JSON", 34821 "Link", 34822 "Long Text", 34823 "Markdown Editor", 34824 "Password", 34825 "Percent", 34826 "Phone", 34827 "Read Only", 34828 "Rating", 34829 "Select", 34830 "Signature", 34831 "Small Text", 34832 "Table", 34833 "Table MultiSelect", 34834 "Text", 34835 "Text Editor", 34836 "Time" 34837 ], 34838 no_value_type: [ 34839 "Section Break", 34840 "Column Break", 34841 "Tab Break", 34842 "HTML", 34843 "Table", 34844 "Table MultiSelect", 34845 "Button", 34846 "Image", 34847 "Fold", 34848 "Heading" 34849 ], 34850 layout_fields: ["Section Break", "Column Break", "Tab Break", "Fold"], 34851 std_fields_list: [ 34852 "name", 34853 "owner", 34854 "creation", 34855 "modified", 34856 "modified_by", 34857 "_user_tags", 34858 "_comments", 34859 "_assign", 34860 "_liked_by", 34861 "docstatus", 34862 "idx" 34863 ], 34864 child_table_field_list: ["parent", "parenttype", "parentfield"], 34865 core_doctypes_list: [ 34866 "DocType", 34867 "DocField", 34868 "DocPerm", 34869 "User", 34870 "Role", 34871 "Has Role", 34872 "Page", 34873 "Module Def", 34874 "Print Format", 34875 "Report", 34876 "Customize Form", 34877 "Customize Form Field", 34878 "Property Setter", 34879 "Custom Field", 34880 "Client Script" 34881 ], 34882 restricted_fields: [ 34883 "name", 34884 "parent", 34885 "creation", 34886 "modified", 34887 "modified_by", 34888 "parentfield", 34889 "parenttype", 34890 "file_list", 34891 "flags", 34892 "docstatus" 34893 ], 34894 html_fieldtypes: [ 34895 "Text Editor", 34896 "Text", 34897 "Small Text", 34898 "Long Text", 34899 "HTML Editor", 34900 "Markdown Editor", 34901 "Code" 34902 ], 34903 std_fields: [ 34904 { fieldname: "name", fieldtype: "Link", label: __("ID") }, 34905 { fieldname: "owner", fieldtype: "Link", label: __("Created By"), options: "User" }, 34906 { fieldname: "idx", fieldtype: "Int", label: __("Index") }, 34907 { fieldname: "creation", fieldtype: "Datetime", label: __("Created On") }, 34908 { fieldname: "modified", fieldtype: "Datetime", label: __("Last Updated On") }, 34909 { 34910 fieldname: "modified_by", 34911 fieldtype: "Link", 34912 label: __("Last Updated By"), 34913 options: "User" 34914 }, 34915 { fieldname: "_user_tags", fieldtype: "Data", label: __("Tags") }, 34916 { fieldname: "_liked_by", fieldtype: "Data", label: __("Liked By") }, 34917 { fieldname: "_comments", fieldtype: "Text", label: __("Comments") }, 34918 { fieldname: "_assign", fieldtype: "Text", label: __("Assigned To") }, 34919 { fieldname: "docstatus", fieldtype: "Int", label: __("Document Status") } 34920 ], 34921 numeric_fieldtypes: ["Int", "Float", "Currency", "Percent", "Duration"], 34922 std_fields_table: [{ fieldname: "parent", fieldtype: "Data", label: __("Parent") }], 34923 table_fields: ["Table", "Table MultiSelect"], 34924 new_names: {}, 34925 events: {}, 34926 user_settings: {}, 34927 init: function() { 34928 frappe.realtime.on("doc_update", function(data) { 34929 var doc = locals[data.doctype] && locals[data.doctype][data.name]; 34930 if (doc) { 34931 if (frappe.get_route()[0] === "Form" && cur_frm.doc.doctype === doc.doctype && cur_frm.doc.name === doc.name) { 34932 if (data.modified !== cur_frm.doc.modified && !frappe.ui.form.is_saving) { 34933 if (!cur_frm.is_dirty()) { 34934 cur_frm.debounced_reload_doc(); 34935 } else { 34936 doc.__needs_refresh = true; 34937 cur_frm.show_conflict_message(); 34938 } 34939 } 34940 } else { 34941 if (!doc.__unsaved) { 34942 frappe.model.remove_from_locals(doc.doctype, doc.name); 34943 } else { 34944 doc.__needs_refresh = true; 34945 } 34946 } 34947 } 34948 }); 34949 }, 34950 is_value_type: function(fieldtype) { 34951 if (typeof fieldtype == "object") { 34952 fieldtype = fieldtype.fieldtype; 34953 } 34954 return frappe.model.no_value_type.indexOf(fieldtype) === -1; 34955 }, 34956 is_non_std_field: function(fieldname) { 34957 return ![...frappe.model.std_fields_list, ...frappe.model.child_table_field_list].includes( 34958 fieldname
34959 ); 34960 }, 34961 get_std_field: function(fieldname, ignore = false) { 34962 var docfield = $.map( 34963 [].concat(frappe.model.std_fields).concat(frappe.model.std_fields_table), 34964 function(d) { 34965 if (d.fieldname == fieldname) 34966 return d; 34967 } 34968 ); 34969 if (!docfield.length) { 34970 if (ignore) { 34971 return { fieldname }; 34972 } else { 34973 frappe.msgprint(__("Unknown Column: {0}", [fieldname])); 34974 } 34975 } 34976 return docfield[0]; 34977 }, 34978 get_from_localstorage: function(doctype) { 34979 if (localStorage["_doctype:" + doctype]) { 34980 return JSON.parse(localStorage["_doctype:" + doctype]); 34981 } 34982 }, 34983 set_in_localstorage: function(doctype, docs) { 34984 try { 34985 localStorage["_doctype:" + doctype] = JSON.stringify(docs); 34986 } catch (e) { 34987 console.warn("localStorage quota exceeded, clearing doctype cache"); 34988 frappe.model.clear_local_storage(); 34989 localStorage["_doctype:" + doctype] = JSON.stringify(docs); 34990 } 34991 }, 34992 clear_local_storage: function() { 34993 for (var key in localStorage) { 34994 if (key.startsWith("_doctype:")) { 34995 localStorage.removeItem(key); 34996 } 34997 } 34998 }, 34999 with_doctype: function(doctype, callback, async) { 35000 if (locals.DocType[doctype]) { 35001 callback && callback(); 35002 return Promise.resolve(); 35003 } else { 35004 let cached_timestamp = null; 35005 let cached_doc = null; 35006 let cached_docs = frappe.model.get_from_localstorage(doctype); 35007 if (cached_docs) { 35008 cached_doc = cached_docs.filter((doc) => doc.name === doctype)[0]; 35009 if (cached_doc) { 35010 cached_timestamp = cached_doc.modified; 35011 } 35012 } 35013 return frappe.call({ 35014 method: "frappe.desk.form.load.getdoctype", 35015 type: "GET", 35016 args: { 35017 doctype, 35018 with_parent: 1, 35019 cached_timestamp 35020 }, 35021 async, 35022 callback: function(r) { 35023 if (r.exc) { 35024 frappe.msgprint(__("Unable to load: {0}", [__(doctype)])); 35025 throw "No doctype"; 35026 } 35027 if (r.message == "use_cache") { 35028 frappe.model.sync(cached_doc); 35029 } else { 35030 frappe.model.set_in_localstorage(doctype, r.docs); 35031 } 35032 frappe.model.init_doctype(doctype); 35033 if (r.user_settings) { 35034 frappe.model.user_settings[doctype] = JSON.parse(r.user_settings); 35035 frappe.model.user_settings[doctype].updated_on = moment().toString(); 35036 } 35037 callback && callback(r); 35038 } 35039 }); 35040 } 35041 }, 35042 init_doctype: function(doctype) { 35043 var meta = locals.DocType[doctype]; 35044 for (const asset_key of [ 35045 "__list_js", 35046 "__custom_list_js", 35047 "__calendar_js", 35048 "__map_js", 35049 "__tree_js" 35050 ]) { 35051 if (meta[asset_key]) { 35052 new Function(meta[asset_key])(); 35053 } 35054 } 35055 if (meta.__templates) { 35056 $.extend(frappe.templates, meta.__templates); 35057 } 35058 }, 35059 with_doc: function(doctype, name2, callback) { 35060 return new Promise((resolve) => { 35061 if (!name2) 35062 name2 = doctype; 35063 if (locals[doctype] && locals[doctype][name2] && frappe.model.get_docinfo(doctype, name2)) { 35064 callback && callback(name2); 35065 resolve(frappe.get_doc(doctype, name2)); 35066 } else { 35067 return frappe.call({ 35068 method: "frappe.desk.form.load.getdoc", 35069 type: "GET", 35070 args: { 35071 doctype, 35072 name: name2 35073 }, 35074 callback: function(r) { 35075 callback && callback(name2, r); 35076 resolve(frappe.get_doc(doctype, name2)); 35077 } 35078 }); 35079 } 35080 }); 35081 }, 35082 get_docinfo: function(doctype, name2) { 35083 return frappe.model.docinfo[doctype] && frappe.model.docinfo[doctype][name2] || null; 35084 }, 35085 set_docinfo: function(doctype, name2, key, value2) { 35086 if (frappe.model.docinfo[doctype] && frappe.model.docinfo[doctype][name2]) { 35087 frappe.model.docinfo[doctype][name2][key] = value2; 35088 } 35089 }, 35090 get_shared: function(doctype, name2) { 35091 return frappe.model.get_docinfo(doctype, name2).shared; 35092 }, 35093 get_server_module_name: function(doctype) { 35094 var dt = frappe.model.scrub(doctype); 35095 var module = frappe.model.scrub(locals.DocType[doctype].module); 35096 var app = frappe.boot.module_app[module]; 35097 return app + "." + module + ".doctype." + dt + "." + dt; 35098 }, 35099 scrub: function(txt) { 35100 return txt.replace(/ /g, "_").toLowerCase(); 35101 }, 35102 unscrub: function(txt) { 35103 return (txt || "").replace(/-|_/g, " ").replace(/\w*/g, function(keywords) { 35104 return keywords.charAt(0).toUpperCase() + keywords.substr(1).toLowerCase(); 35105 }); 35106 }, 35107 can_create: function(doctype) { 35108 return frappe.boot.user.can_create.indexOf(doctype) !== -1; 35109 }, 35110 can_select: function(doctype) { 35111 if (frappe.boot.user) { 35112 return frappe.boot.user.can_select.indexOf(doctype) !== -1; 35113 } 35114 }, 35115 can_read: function(doctype) { 35116 if (frappe.boot.user) { 35117 return frappe.boot.user.can_read.indexOf(doctype) !== -1; 35118 } 35119 }, 35120 can_write: function(doctype) { 35121 return frappe.boot.user.can_write.indexOf(doctype) !== -1; 35122 }, 35123 can_get_report: function(doctype) { 35124 return frappe.boot.user.can_get_report.indexOf(doctype) !== -1; 35125 }, 35126 can_delete: function(doctype) { 35127 if (!doctype) 35128 return false;
35129 return frappe.boot.user.can_delete.indexOf(doctype) !== -1; 35130 }, 35131 can_submit: function(doctype) { 35132 if (!doctype) 35133 return false; 35134 return frappe.boot.user.can_submit.indexOf(doctype) !== -1; 35135 }, 35136 can_cancel: function(doctype) { 35137 if (!doctype) 35138 return false; 35139 return frappe.boot.user.can_cancel.indexOf(doctype) !== -1; 35140 }, 35141 has_workflow: function(doctype) { 35142 return frappe.get_list("Workflow", { document_type: doctype, is_active: 1 }).length; 35143 }, 35144 is_submittable: function(doctype) { 35145 if (!doctype) 35146 return false; 35147 return locals.DocType[doctype] && locals.DocType[doctype].is_submittable; 35148 }, 35149 is_table: function(doctype) { 35150 if (!doctype) 35151 return false; 35152 return locals.DocType[doctype] && locals.DocType[doctype].istable; 35153 }, 35154 is_single: function(doctype) { 35155 if (!doctype) 35156 return false; 35157 return frappe.boot.single_types.indexOf(doctype) != -1; 35158 }, 35159 is_tree: function(doctype) { 35160 if (!doctype) 35161 return false; 35162 return locals.DocType[doctype] && locals.DocType[doctype].is_tree; 35163 }, 35164 is_fresh(doc) { 35165 return doc && doc.__last_sync_on && new Date() - doc.__last_sync_on < 5e3; 35166 }, 35167 can_import: function(doctype, frm, meta = null) { 35168 if (meta && !meta.allow_import) 35169 return false; 35170 if (frappe.user_roles.includes("System Manager")) 35171 return true; 35172 if (frm) 35173 return frm.perm[0].import === 1; 35174 return frappe.boot.user.can_import.indexOf(doctype) !== -1; 35175 }, 35176 can_export: function(doctype, frm) { 35177 if (frappe.user_roles.includes("System Manager")) 35178 return true; 35179 if (frm) 35180 return frm.perm[0].export === 1; 35181 return frappe.boot.user.can_export.indexOf(doctype) !== -1; 35182 }, 35183 can_print: function(doctype, frm) { 35184 if (frm) 35185 return frm.perm[0].print === 1; 35186 return frappe.boot.user.can_print.indexOf(doctype) !== -1; 35187 }, 35188 can_email: function(doctype, frm) { 35189 if (frm) 35190 return frm.perm[0].email === 1; 35191 return frappe.boot.user.can_email.indexOf(doctype) !== -1; 35192 }, 35193 can_share: function(doctype, frm) { 35194 let disable_sharing = cint(frappe.sys_defaults.disable_document_sharing); 35195 if (disable_sharing && frappe.session.user !== "Administrator") { 35196 return false; 35197 } 35198 if (frm) { 35199 return frm.perm[0].share === 1; 35200 } 35201 return frappe.boot.user.can_share.indexOf(doctype) !== -1; 35202 }, 35203 has_value: function(dt, dn, fn) { 35204 var val = locals[dt] && locals[dt][dn] && locals[dt][dn][fn]; 35205 var df = frappe.meta.get_docfield(dt, fn, dn); 35206 let ret; 35207 if (frappe.model.table_fields.includes(df.fieldtype)) { 35208 ret = false;
35209 $.each(locals[df.options] || {}, function(k, d) { 35210 if (d.parent == dn && d.parenttype == dt && d.parentfield == df.fieldname) { 35211 ret = true; 35212 return false; 35213 } 35214 }); 35215 } else { 35216 ret = !is_null(val); 35217 } 35218 return ret ? true : false; 35219 }, 35220 get_list: function(doctype, filters) { 35221 var docsdict = locals[doctype] || locals[":" + doctype] || {}; 35222 if ($.isEmptyObject(docsdict)) 35223 return []; 35224 return frappe.utils.filter_dict(docsdict, filters); 35225 }, 35226 get_value: function(doctype, filters, fieldname, callback) { 35227 if (callback) { 35228 frappe.call({ 35229 method: "frappe.client.get_value", 35230 args: { 35231 doctype, 35232 fieldname, 35233 filters 35234 }, 35235 callback: function(r) { 35236 if (!r.exc) { 35237 callback(r.message); 35238 } 35239 } 35240 }); 35241 } else { 35242 if (["number", "string"].includes(typeof filters) && locals[doctype] && locals[doctype][filters]) { 35243 return locals[doctype][filters][fieldname]; 35244 } else { 35245 var l = frappe.get_list(doctype, filters); 35246 return l.length && l[0] ? l[0][fieldname] : null; 35247 } 35248 } 35249 }, 35250 set_value: function(doctype, docname, fieldname, value2, fieldtype, skip_dirty_trigger = false) { 35251 var doc; 35252 if ($.isPlainObject(doctype)) { 35253 doc = doctype; 35254 fieldname = docname; 35255 value2 = fieldname; 35256 } else { 35257 doc = locals[doctype] && locals[doctype][docname]; 35258 } 35259 let to_update = fieldname; 35260 let tasks = []; 35261 if (!$.isPlainObject(to_update)) { 35262 to_update = {}; 35263 to_update[fieldname] = value2; 35264 } 35265 $.each(to_update, (key, value3) => { 35266 if (doc && doc[key] !== value3) { 35267 if (doc.__unedited && !(!doc[key] && !value3)) { 35268 doc.__unedited = false; 35269 } 35270 doc[key] = value3; 35271 tasks.push(() => frappe.model.trigger(key, value3, doc, skip_dirty_trigger)); 35272 } else { 35273 if (["Link", "Dynamic Link"].includes(fieldtype) && doc) { 35274 tasks.push(() => frappe.model.trigger(key, value3, doc, skip_dirty_trigger)); 35275 } 35276 } 35277 }); 35278 return frappe.run_serially(tasks); 35279 }, 35280 on: function(doctype, fieldname, fn) { 35281 frappe.provide("frappe.model.events." + doctype); 35282 if (!frappe.model.events[doctype][fieldname]) { 35283 frappe.model.events[doctype][fieldname] = []; 35284 } 35285 frappe.model.events[doctype][fieldname].push(fn); 35286 }, 35287 trigger: function(fieldname, value2, doc, skip_dirty_trigger = false) { 35288 const tasks = []; 35289 function enqueue_events(events) { 35290 if (!events) 35291 return; 35292 for (const fn of events) { 35293 if (!fn) 35294 continue; 35295 tasks.push(() => { 35296 const return_value = fn(fieldname, value2, doc, skip_dirty_trigger); 35297 if (return_value && return_value.then) { 35298 return return_value; 35299 } else { 35300 return frappe.after_server_call(); 35301 } 35302 }); 35303 } 35304 } 35305 if (frappe.model.events[doc.doctype]) { 35306 enqueue_events(frappe.model.events[doc.doctype][fieldname]); 35307 enqueue_events(frappe.model.events[doc.doctype]["*"]); 35308 } 35309 return frappe.run_serially(tasks); 35310 }, 35311 get_doc: function(doctype, name2) { 35312 if (!name2) 35313 name2 = doctype; 35314 if ($.isPlainObject(name2)) { 35315 var doc = frappe.get_list(doctype, name2); 35316 return doc && doc.length ? doc[0] : null; 35317 } 35318 return locals[doctype] ? locals[doctype][name2] : null; 35319 }, 35320 get_children: function(doctype, parent, parentfield, filters) { 35321 let doc; 35322 if ($.isPlainObject(doctype)) { 35323 doc = doctype; 35324 filters = parentfield; 35325 parentfield = parent; 35326 } else { 35327 doc = frappe.get_doc(doctype, parent); 35328 } 35329 var children = doc[parentfield] || []; 35330 if (filters) { 35331 return frappe.utils.filter_dict(children, filters); 35332 } else { 35333 return children; 35334 } 35335 }, 35336 clear_table: function(doc, parentfield) { 35337 for (const d of doc[parentfield] || []) { 35338 delete locals[d.doctype][d.name]; 35339 } 35340 doc[parentfield] = []; 35341 }, 35342 remove_from_locals: function(doctype, name2) { 35343 this.clear_doc(doctype, name2); 35344 if (frappe.views.formview[doctype]) { 35345 delete frappe.views.formview[doctype].frm.opendocs[name2]; 35346 } 35347 }, 35348 clear_doc: function(doctype, name2) { 35349 var doc = locals[doctype] && locals[doctype][name2]; 35350 if (!doc) 35351 return; 35352 var parent = null; 35353 if (doc.parenttype) { 35354 parent = doc.parent; 35355 var parenttype = doc.parenttype, parentfield = doc.parentfield; 35356 } 35357 delete locals[doctype][name2]; 35358 if (parent) { 35359 var parent_doc = locals[parenttype][parent]; 35360 var newlist = [], idx = 1; 35361 $.each(parent_doc[parentfield], function(i2, d) { 35362 if (d.name != name2) { 35363 newlist.push(d); 35364 d.idx = idx; 35365 idx++; 35366 } 35367 parent_doc[parentfield] = newlist; 35368 }); 35369 } 35370 }, 35371 get_no_copy_list: function(doctype) { 35372 var no_copy_list = ["name", "amended_from", "amendment_date", "cancel_reason"]; 35373 var docfields = frappe.get_doc("DocType", doctype).fields || []; 35374 for (var i2 = 0, j = docfields.length; i2 < j; i2++) { 35375 var df = docfields[i2]; 35376 if (cint(df.no_copy)) 35377 no_copy_list.push(df.fieldname); 35378 } 35379 return no_copy_list; 35380 }, 35381 delete_doc: function(doctype, docname, callback) { 35382 let title = docname; 35383 const title_field = frappe.get_meta(doctype).title_field; 35384 if (frappe.get_meta(doctype).autoname == "hash" && title_field) { 35385 const value2 = frappe.model.get_value(doctype, docname, title_field); 35386 if (value2) { 35387 title = `${value2} (${docname})`; 35388 } 35389 } 35390 frappe.confirm(__("Permanently delete {0}?", [title.bold()]), function() { 35391 return frappe.call({ 35392 method: "frappe.client.delete", 35393 args: { 35394 doctype, 35395 name: docname 35396 }, 35397 freeze: true, 35398 freeze_message: __("Deleting {0}...", [title]), 35399 callback: function(r, rt) { 35400 if (!r.exc) { 35401 frappe.utils.play_sound("delete"); 35402 frappe.model.clear_doc(doctype, docname); 35403 if (callback) 35404 callback(r, rt); 35405 } 35406 } 35407 }); 35408 }); 35409 }, 35410 rename_doc: function(doctype, docname, callback) { 35411 let message = __("Merge with existing"); 35412 let warning = __("This cannot be undone"); 35413 let merge_label = message + " <b>(" + warning + ")</b>"; 35414 var d = new frappe.ui.Dialog({ 35415 title: __("Rename {0}", [__(docname)]), 35416 fields: [ 35417 { 35418 label: __("New Name"),
35419 fieldname: "new_name", 35420 fieldtype: "Data", 35421 reqd: 1, 35422 default: docname 35423 }, 35424 { label: merge_label, fieldtype: "Check", fieldname: "merge" } 35425 ] 35426 }); 35427 d.set_primary_action(__("Rename"), function() { 35428 d.hide(); 35429 var args = d.get_values(); 35430 if (!args) 35431 return; 35432 return frappe.call({ 35433 method: "frappe.rename_doc", 35434 freeze: true, 35435 freeze_message: "Updating related fields...", 35436 args: { 35437 doctype, 35438 old: docname, 35439 new: args.new_name, 35440 merge: args.merge 35441 }, 35442 btn: d.get_primary_btn(), 35443 callback: function(r, rt) { 35444 if (!r.exc) { 35445 $(document).trigger("rename", [ 35446 doctype, 35447 docname, 35448 r.message || args.new_name 35449 ]); 35450 if (locals[doctype] && locals[doctype][docname]) 35451 delete locals[doctype][docname]; 35452 d.hide(); 35453 if (callback) 35454 callback(r.message); 35455 } 35456 } 35457 }); 35458 }); 35459 d.show(); 35460 }, 35461 round_floats_in: function(doc, fieldnames) { 35462 if (!doc) { 35463 return; 35464 } 35465 if (!fieldnames) { 35466 fieldnames = frappe.meta.get_fieldnames(doc.doctype, doc.parent, { 35467 fieldtype: ["in", ["Currency", "Float"]] 35468 }); 35469 } 35470 for (var i2 = 0, j = fieldnames.length; i2 < j; i2++) { 35471 var fieldname = fieldnames[i2]; 35472 doc[fieldname] = flt(doc[fieldname], precision(fieldname, doc)); 35473 } 35474 }, 35475 validate_missing: function(doc, fieldname) { 35476 if (!doc[fieldname]) { 35477 frappe.throw( 35478 __("Please specify") + ": " + __(frappe.meta.get_label(doc.doctype, fieldname, doc.parent || doc.name)) 35479 ); 35480 } 35481 }, 35482 get_all_docs: function(doc) { 35483 var all = [doc]; 35484 for (var key in doc) { 35485 if ($.isArray(doc[key]) && !key.startsWith("_")) { 35486 var children = doc[key]; 35487 for (var i2 = 0, l = children.length; i2 < l; i2++) { 35488 all.push(children[i2]); 35489 } 35490 } 35491 } 35492 return all; 35493 }, 35494 get_full_column_name: function(fieldname, doctype) { 35495 if (fieldname.includes("`tab")) 35496 return fieldname; 35497 return "`tab" + doctype + "`.`" + fieldname + "`"; 35498 }, 35499 is_numeric_field: function(fieldtype) { 35500 if (!fieldtype) 35501 return; 35502 if (typeof fieldtype === "object") { 35503 fieldtype = fieldtype.fieldtype; 35504 } 35505 return frappe.model.numeric_fieldtypes.includes(fieldtype); 35506 }, 35507 set_default_views_for_doctype(doctype, frm) { 35508 frappe.model.with_doctype(doctype, () => { 35509 var _a, _b, _c; 35510 let meta = frappe.get_meta(doctype); 35511 let default_views = ["List", "Report", "Dashboard", "Kanban"]; 35512 if (meta.is_calendar_and_gantt && frappe.views.calendar[doctype]) { 35513 let views = ["Calendar", "Gantt"]; 35514 default_views.push(...views); 35515 } 35516 if (meta.is_tree) { 35517 default_views.push("Tree"); 35518 } 35519 if (frm.doc.image_field) { 35520 default_views.push("Image"); 35521 } 35522 if (doctype === "Communication" && frappe.boot.email_accounts.length) { 35523 default_views.push("Inbox"); 35524 } 35525 if (((_a = frm.doc.fields) == null ? void 0 : _a.find((i2) => i2.fieldname === "latitude")) && ((_b = frm.doc.fields) == null ? void 0 : _b.find((i2) => i2.fieldname === "longitude")) || ((_c = frm.doc.fields) == null ? void 0 : _c.find( 35526 (i2) => i2.fieldname === "location" && i2.fieldtype == "Geolocation" 35527 ))) { 35528 default_views.push("Map"); 35529 } 35530 frm.set_df_property("default_view", "options", default_views); 35531 }); 35532 } 35533 }); 35534 frappe.get_doc = frappe.model.get_doc; 35535 frappe.get_children = frappe.model.get_children; 35536 frappe.get_list = frappe.model.get_list; 35537 35538
35538// frappe/public/js/frappe/model/perm.js 35539 frappe.provide("frappe.perm"); 35540 Object.assign(window, { 35541 READ: "read", 35542 WRITE: "write", 35543 CREATE: "create", 35544 DELETE: "delete", 35545 SUBMIT: "submit", 35546 CANCEL: "cancel", 35547 AMEND: "amend" 35548 }); 35549 $.extend(frappe.perm, { 35550 rights: [ 35551 "select", 35552 "read", 35553 "write", 35554 "create", 35555 "delete", 35556 "submit", 35557 "cancel", 35558 "amend", 35559 "report", 35560 "import", 35561 "export", 35562 "print", 35563 "email", 35564 "share" 35565 ], 35566 doctype_perm: {}, 35567 has_perm: (doctype, permlevel = 0, ptype = "read", doc) => { 35568 var _a; 35569 const perms = frappe.perm.get_perm(doctype, doc); 35570 return !!((_a = perms == null ? void 0 : perms[permlevel]) == null ? void 0 : _a[ptype]); 35571 }, 35572 get_perm: (doctype, doc) => { 35573 var _a, _b; 35574 if (doc && !doc.__islocal) { 35575 return frappe.perm._get_perm(doctype, doc); 35576 } 35577 return (_b = (_a = frappe.perm.doctype_perm)[doctype]) != null ? _b : _a[doctype] = frappe.perm._get_perm(doctype); 35578 }, 35579 _get_perm: (doctype, doc) => { 35580 let perm = [{ read: 0, permlevel: 0 }]; 35581 let meta = frappe.get_doc("DocType", doctype); 35582 const user = frappe.session.user; 35583 if (user === "Administrator" || frappe.user_roles.includes("Administrator")) { 35584 perm[0].read = 1; 35585 } 35586 if (!meta) 35587 return perm; 35588 perm = frappe.perm.get_role_permissions(meta); 35589 const base_perm = perm[0]; 35590 if (doc) { 35591 let docinfo = frappe.model.get_docinfo(doctype, doc.name); 35592 if (docinfo && docinfo.permissions) {
35593 Object.keys(docinfo.permissions).forEach((ptype) => { 35594 base_perm[ptype] = docinfo.permissions[ptype]; 35595 }); 35596 } 35597 if (doc.owner !== user) { 35598 for (const right of frappe.perm.rights) { 35599 if (base_perm[right] && !base_perm.rights_without_if_owner.has(right)) { 35600 base_perm[right] = 0; 35601 } 35602 } 35603 } 35604 if (docinfo && docinfo.shared) { 35605 for (const s of docinfo.shared) { 35606 if (s.user !== user) 35607 continue; 35608 for (const right of ["read", "write", "submit", "share"]) { 35609 if (!base_perm[right]) 35610 base_perm[right] = s[right]; 35611 } 35612 if (s.read) { 35613 base_perm.email = frappe.boot.user.can_email.indexOf(doctype) !== -1 ? 1 : 0; 35614 base_perm.print = frappe.boot.user.can_print.indexOf(doctype) !== -1 ? 1 : 0; 35615 } 35616 } 35617 } 35618 } 35619 if (!base_perm.read && frappe.model.can_read(doctype)) { 35620 base_perm.read = 1; 35621 } 35622 return perm; 35623 }, 35624 get_role_permissions: (meta) => { 35625 let perm = [{ read: 0, permlevel: 0 }]; 35626 (meta.permissions || []).forEach((p) => { 35627 var _a, _b; 35628 const permlevel = cint(p.permlevel); 35629 const current_perm = (_a = perm[permlevel]) != null ? _a : perm[permlevel] = { permlevel }; 35630 if (permlevel === 0) { 35631 (_b = current_perm.rights_without_if_owner) != null ? _b : current_perm.rights_without_if_owner = /* @__PURE__ */ new Set(); 35632 } 35633 if (frappe.user_roles.includes(p.role)) { 35634 frappe.perm.rights.forEach((right) => { 35635 if (!p[right]) 35636 return; 35637 current_perm[right] = 1; 35638 if (permlevel === 0 && !p.if_owner) { 35639 current_perm.rights_without_if_owner.add(right); 35640 } 35641 }); 35642 } 35643 }); 35644 perm = perm.map((p) => p || {}); 35645 return perm; 35646 }, 35647 get_match_rules: (doctype, ptype) => { 35648 let match_rules = []; 35649 if (!ptype) 35650 ptype = "read"; 35651 let perm = frappe.perm.get_perm(doctype); 35652 let user_permissions = frappe.defaults.get_user_permissions(); 35653 if (user_permissions && !$.isEmptyObject(user_permissions)) { 35654 let rules = {}; 35655 let fields_to_check = frappe.meta.get_fields_to_check_permissions(doctype); 35656 $.each(fields_to_check, (i2, df) => { 35657 const user_permissions_for_doctype = user_permissions[df.options] || []; 35658 const allowed_records = frappe.perm.get_allowed_docs_for_doctype( 35659 user_permissions_for_doctype, 35660 doctype 35661 ); 35662 if (allowed_records.length) { 35663 rules[df.label] = allowed_records; 35664 } 35665 }); 35666 if (!$.isEmptyObject(rules)) { 35667 match_rules.push(rules); 35668 } 35669 } 35670 const base_perm = perm[0]; 35671 if (base_perm.read && !base_perm.rights_without_if_owner.has("read")) { 35672 match_rules.push({ Owner: frappe.session.user }); 35673 } 35674 return match_rules; 35675 }, 35676 get_field_display_status: (df, doc, perm, explain) => { 35677 if (!perm && doc) { 35678 perm = frappe.perm.get_perm(doc.doctype, doc); 35679 } 35680 if (!perm) { 35681 let is_hidden = df && (cint(df.hidden) || cint(df.hidden_due_to_dependency)); 35682 let is_read_only = df && (cint(df.read_only) || cint(df.is_virtual)); 35683 return is_hidden ? "None" : is_read_only ? "Read" : "Write"; 35684 } 35685 if (!df.permlevel) 35686 df.permlevel = 0; 35687 let p = perm[df.permlevel]; 35688 let status = "None"; 35689 if (p) { 35690 if (p.write && !df.disabled && !df.is_virtual) { 35691 status = "Write"; 35692 } else if (p.read) { 35693 status = "Read"; 35694 } 35695 } 35696 if (explain) 35697 console.log("By Permission:" + status); 35698 if (cint(df.hidden)) 35699 status = "None"; 35700 if (explain) 35701 console.log("By Hidden:" + status); 35702 if (cint(df.hidden_due_to_dependency)) 35703 status = "None"; 35704 if (explain) 35705 console.log("By Hidden Due To Dependency:" + status); 35706 if (!doc) { 35707 return status; 35708 } 35709 if (status === "Write" && cint(doc.docstatus) > 0) 35710 status = "Read"; 35711 if (explain) 35712 console.log("By Submit:" + status); 35713 let allow_on_submit = cint(df.allow_on_submit); 35714 if (status === "Read" && allow_on_submit && cint(doc.docstatus) === 1 && p.write) { 35715 status = "Write"; 35716 } 35717 if (explain) 35718 console.log("By Allow on Submit:" + status); 35719 if (status === "Read" && cur_frm && cur_frm.state_fieldname) { 35720 if (cint(cur_frm.read_only) || cur_frm.states.update_fields.includes(df.fieldname) || df.fieldname == cur_frm.state_fieldname) { 35721 status = "Read"; 35722 } 35723 } 35724 if (explain) 35725 console.log("By Workflow:" + status); 35726 if (status === "Write" && (cint(df.read_only) || df.fieldtype === "Read Only")) { 35727 status = "Read"; 35728 } 35729 if (explain) 35730 console.log("By Read Only:" + status); 35731 if (status === "Write" && df.set_only_once && !doc.__islocal) { 35732 status = "Read"; 35733 } 35734 if (explain) 35735 console.log("By Set Only Once:" + status); 35736 return status; 35737 }, 35738 is_visible: (df, doc, perm) => { 35739 if (typeof df === "string") { 35740 df = frappe.meta.get_docfield(doc.doctype, df, doc.parent || doc.name); 35741 } 35742 let status = frappe.perm.get_field_display_status(df, doc, perm); 35743 return status === "None" ? false : true; 35744 }, 35745 get_allowed_docs_for_doctype: (user_permissions, doctype) => { 35746 return frappe.perm.filter_allowed_docs_for_doctype(user_permissions, doctype, false); 35747 }, 35748 filter_allowed_docs_for_doctype: (user_permissions, doctype, with_default_doc = true) => { 35749 const filtered_perms = (user_permissions || []).filter((perm) => { 35750 return perm.applicable_for === doctype || !perm.applicable_for; 35751 }); 35752 const allowed_docs = filtered_perms.map((perm) => perm.doc); 35753 if (with_default_doc) { 35754 const default_doc = filtered_perms.filter((perm) => perm.is_default).map((record) => record.doc); 35755 return { 35756 allowed_records: allowed_docs, 35757 default_doc: default_doc[0] 35758 }; 35759 } else { 35760 return allowed_docs; 35761 } 35762 } 35763 }); 35764 35765
35765// frappe/public/js/bootstrap-4-web.bundle.js 35766 $(".dropdown-menu a.dropdown-toggle").on("click", function(e) { 35767 e.preventDefault(); 35768 e.stopImmediatePropagation(); 35769 if (!$(this).next().hasClass("show")) { 35770 $(this).parents(".dropdown-menu").first().find(".show").removeClass("show"); 35771 } 35772 var $subMenu = $(this).next(".dropdown-menu"); 35773 $subMenu.toggleClass("show"); 35774 $(this).parents("li.nav-item.dropdown.show").on("hidden.bs.dropdown", function() { 35775 $(".dropdown-submenu .show").removeClass("show"); 35776 }); 35777 return false; 35778 }); 35779 frappe.get_modal = function(title, content) { 35780 return $( 35781 `<div class="modal" tabindex="-1" role="dialog"> 35782 <div class="modal-dialog modal-dialog-scrollable" role="document"> 35783 <div class="modal-content"> 35784 <div class="modal-header"> 35785 <h5 class="modal-title">${title}</h5> 35786 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 35787 ${frappe.utils.icon("close-alt", "sm", "close-alt")} 35788 </button> 35789 </div> 35790 <div class="modal-body"> 35791 ${content} 35792 </div> 35793 <div class="modal-footer hidden"> 35794 <button type="button" class="btn btn-sm btn-secondary hidden"></button> 35795 <button type="button" class="btn btn-sm btn-primary hidden"></button> 35796 </div> 35797 </div> 35798 </div> 35799 </div>` 35800 ); 35801 }; 35802 frappe.ui.Dialog = class Dialog2 extends frappe.ui.Dialog { 35803 get_primary_btn() { 35804 return this.$wrapper.find(".modal-footer .btn-primary"); 35805 } 35806 get_secondary_btn() { 35807 return this.$wrapper.find(".modal-footer .btn-secondary"); 35808 } 35809 set_primary_action(label, click) { 35810 this.$wrapper.find(".modal-footer").removeClass("hidden"); 35811 return super.set_primary_action(label, click).removeClass("hidden"); 35812 } 35813 set_secondary_action(click) { 35814 return super.set_secondary_action(click).removeClass("hidden"); 35815 } 35816 make() { 35817 super.make(); 35818 if (this.fields) { 35819 this.$wrapper.find(".section-body").addClass("w-100"); 35820 } 35821 } 35822 }; 35823 35824
35824// frappe/website/js/website.js 35825 var import_syntax_highlight = __toESM(require_syntax_highlight()); 35826 frappe.provide("website"); 35827 frappe.provide("frappe.awesome_bar_path"); 35828 window.cur_frm = null; 35829 $.extend(frappe, { 35830 _assets_loaded: [], 35831 require: async function(links, callback) { 35832 if (typeof links === "string") { 35833 links = [links]; 35834 } 35835 links = links.map((link) => frappe.bundled_asset(link)); 35836 for (let link of links) { 35837 await this.add_asset_to_head(link); 35838 } 35839 callback && callback(); 35840 }, 35841 bundled_asset(path, is_rtl = null) { 35842 if (!path.startsWith("/assets") && path.includes(".bundle.")) { 35843 if (path.endsWith(".css") && is_rtl) { 35844 path = `rtl_${path}`; 35845 } 35846 path = frappe.boot.assets_json[path] || path; 35847 return path; 35848 } 35849 return path; 35850 }, 35851 add_asset_to_head(link) { 35852 return new Promise((resolve) => { 35853 if (frappe._assets_loaded.includes(link)) 35854 return resolve(); 35855 let el; 35856 if (link.split(".").pop() === "js") { 35857 el = document.createElement("script"); 35858 el.type = "text/javascript"; 35859 el.src = link; 35860 } else { 35861 el = document.createElement("link"); 35862 el.type = "text/css"; 35863 el.rel = "stylesheet"; 35864 el.href = link; 35865 } 35866 document.getElementsByTagName("head")[0].appendChild(el); 35867 el.onload = () => { 35868 frappe._assets_loaded.push(link); 35869 resolve(); 35870 }; 35871 }); 35872 }, 35873 hide_message: function() { 35874 $(".message-overlay").remove(); 35875 }, 35876 xcall: function(method, params) { 35877 return new Promise((resolve, reject) => { 35878 frappe.call({ 35879 method, 35880 args: params, 35881 callback: (r) => { 35882 resolve(r.message); 35883 }, 35884 error: (r) => { 35885 reject(r.message); 35886 } 35887 }); 35888 }); 35889 }, 35890 call: function(opts) { 35891 if (typeof arguments[0] === "string") { 35892 opts = { 35893 method: arguments[0], 35894 args: arguments[1], 35895 callback: arguments[2] 35896 }; 35897 } 35898 frappe.prepare_call(opts); 35899 if (opts.freeze) { 35900 frappe.freeze(); 35901 } 35902 return $.ajax({ 35903 type: opts.type || "POST", 35904 url: opts.url || "/", 35905 data: opts.args, 35906 dataType: "json", 35907 headers: { 35908 "X-Frappe-CSRF-Token": frappe.csrf_token, 35909 "X-Frappe-CMD": opts.args && opts.args.cmd || "" || "" 35910 }, 35911 statusCode: opts.statusCode || { 35912 404: function() { 35913 frappe.msgprint(__("Not found")); 35914 }, 35915 403: function() { 35916 frappe.msgprint(__("Not permitted")); 35917 }, 35918 200: function(data) { 35919 if (opts.callback) 35920 opts.callback(data); 35921 if (opts.success) 35922 opts.success(data); 35923 } 35924 } 35925 }).always(function(data) { 35926 if (opts.freeze) { 35927 frappe.unfreeze(); 35928 } 35929 if (data.responseText) { 35930 try { 35931 data = JSON.parse(data.responseText); 35932 } catch (e) { 35933 data = {}; 35934 } 35935 } 35936 frappe.process_response(opts, data); 35937 }); 35938 }, 35939 prepare_call: function(opts) { 35940 if (opts.btn) { 35941 $(opts.btn).prop("disabled", true); 35942 } 35943 if (opts.msg) { 35944 $(opts.msg).toggle(false); 35945 } 35946 if (!opts.args) 35947 opts.args = {}; 35948 if (opts.method) { 35949 opts.args.cmd = opts.method; 35950 } 35951 $.each(opts.args, function(key, val) { 35952 if (typeof val != "string" && val !== null) { 35953 opts.args[key] = JSON.stringify(val); 35954 } 35955 }); 35956 if (!opts.no_spinner) { 35957 } 35958 }, 35959 process_response: function(opts, data) { 35960 if (opts.btn) { 35961 $(opts.btn).prop("disabled", false); 35962 } 35963 if (data._server_messages) { 35964 var server_messages = JSON.parse(data._server_messages || "[]"); 35965 server_messages.map((msg) => { 35966 try { 35967 return JSON.parse(msg); 35968 } catch (e) { 35969 return msg; 35970 } 35971 }).join("<br>"); 35972 if (opts.error_msg) { 35973 $(opts.error_msg).html(server_messages).toggle(true); 35974 } else { 35975 frappe.msgprint(server_messages); 35976 } 35977 } 35978 if (data.exc) { 35979 try { 35980 var err = JSON.parse(data.exc); 35981 if ($.isArray(err)) { 35982 err = err.join("\n"); 35983 } 35984 console.error ? console.error(err) : console.log(err); 35985 } catch (e) { 35986 console.log(data.exc); 35987 } 35988 } else { 35989 } 35990 if (opts.msg && data.message) { 35991 $(opts.msg).html(data.message).toggle(true); 35992 } 35993 if (opts.always) { 35994 opts.always(data); 35995 } 35996 }, 35997 show_message: function(text, icon) { 35998 if (!icon) 35999 icon = "fa fa-refresh fa-spin"; 36000 frappe.hide_message(); 36001 $('<div class="message-overlay"></div>').html( 36002 '<div class="content"><i class="' + icon + ' text-muted"></i><br>
36002' + text + "</div>" 36003 ).appendTo(document.body); 36004 }, 36005 has_permission: function(doctype, docname, perm_type, callback) { 36006 return frappe.call({ 36007 type: "GET", 36008 method: "frappe.client.has_permission", 36009 no_spinner: true, 36010 args: { doctype, docname, perm_type }, 36011 callback: function(r) { 36012 if (!r.exc && r.message.has_permission) { 36013 if (callback) { 36014 return callback(r); 36015 } 36016 } 36017 } 36018 }); 36019 }, 36020 render_user: function() { 36021 if (frappe.is_user_logged_in()) { 36022 $(".btn-login-area").toggle(false); 36023 $(".logged-in").toggle(true); 36024 $(".user-image").attr("src", frappe.get_cookie("user_image")); 36025 $(".user-image-wrapper").html( 36026 frappe.avatar(null, "avatar-medium", null, null, null, true) 36027 ); 36028 $(".user-image-sidebar").html( 36029 frappe.avatar(null, "avatar-medium", null, null, null, true) 36030 ); 36031 $(".user-image-myaccount").html( 36032 frappe.avatar(null, "avatar-large", null, null, null, true) 36033 ); 36034 } 36035 }, 36036 freeze_count: 0, 36037 freeze: function(msg) { 36038 if (!$("#freeze").length) { 36039 var freeze = $('<div id="freeze" class="modal-backdrop fade"></div>').appendTo("body"); 36040 freeze.html( 36041 repl( 36042 '<div class="freeze-message-container"><div class="freeze-message">%(msg)s</div></div>', 36043 { msg: msg || "" } 36044 ) 36045 ); 36046 setTimeout(function() { 36047 freeze.addClass("in"); 36048 }, 1); 36049 } else { 36050 $("#freeze").addClass("in"); 36051 } 36052 frappe.freeze_count++; 36053 }, 36054 unfreeze: function() { 36055 if (!frappe.freeze_count) 36056 return; 36057 frappe.freeze_count--; 36058 if (!frappe.freeze_count) { 36059 var freeze = $("#freeze").removeClass("in"); 36060 setTimeout(function() { 36061 if (!frappe.freeze_count) { 36062 freeze.remove(); 36063 } 36064 }, 150); 36065 } 36066 }, 36067 trigger_ready: function() { 36068 frappe.ready_events.forEach(function(fn) { 36069 fn(); 36070 }); 36071 }, 36072 highlight_code_blocks: function() { 36073 import_syntax_highlight.default.initHighlighting(); 36074 }, 36075 bind_filters: function() { 36076 $(".filter").each(function() { 36077 var key = $(this).attr("data-key"); 36078 var val = frappe.utils.get_url_arg(key).replace(/\+/g, " "); 36079 if (val) 36080 $(this).val(val); 36081 }); 36082 var search = function() { 36083 var args = {}; 36084 $(".filter").each(function() { 36085 var val = $(this).val(); 36086 if (val) 36087 args[$(this).attr("data-key")] = val; 36088 }); 36089 window.location.href = location.pathname + "?" + $.param(args); 36090 }; 36091 $(".filter").on("change", function() { 36092 search(); 36093 }); 36094 }, 36095 bind_navbar_search: function() { 36096 frappe.get_navbar_search().on("keypress", function(e) { 36097 var val = $(this).val(); 36098 if (e.which === 13 && val) { 36099 $(this).val("").blur(); 36100 frappe.do_search(val); 36101 return false; 36102 } 36103 }); 36104 }, 36105 do_search: function(val) { 36106 var path = frappe.awesome_bar_path && frappe.awesome_bar_path[location.pathname] || window.search_path || location.pathname; 36107 window.location.href = path + "?txt=" + encodeURIComponent(val); 36108 }, 36109 set_search_path: function(path) { 36110 frappe.awesome_bar_path[location.pathname] = path; 36111 }, 36112 make_navbar_active: function() { 36113 var pathname = window.location.pathname; 36114 $(".navbar-nav li.active").removeClass("active"); 36115 $(".navbar-nav li").each(function() { 36116 var href = $(this.getElementsByTagName("a")).attr("href"); 36117 if (href === pathname) { 36118 $(this).addClass("active"); 36119 return false; 36120 } 36121 }); 36122 }, 36123 get_navbar_search: function() { 36124 return $(".navbar .search, .sidebar .search"); 36125 }, 36126 is_user_logged_in: function() { 36127 return frappe.get_cookie("user_id") !== "Guest" && frappe.session.user !== "Guest"; 36128 }, 36129 add_switch_to_desk: function() { 36130 $(".switch-to-desk").removeClass("hidden"); 36131 }, 36132 add_apps: function(obj) { 36133 $(".logged-in .apps").attr("href", obj.route).text(obj.label); 36134 $(".logged-in .apps").removeClass("hidden"); 36135 }, 36136 add_link_to_headings: function() { 36137 $(".doc-content .from-markdown").find("h2, h3, h4, h5, h6").each((i2, $heading) => { 36138 let id = $heading.id; 36139 let $a = $('<a class="no-underline">').prop("href", "#" + id).attr("aria-hidden", "true").html(` 36140 <svg xmlns="http://www.w3.org/2000/svg" style="width: 0.8em; height: 0.8em;" viewBox="0 0 24 24" fill="none" stroke="currentColor" 36141 stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link"> 36142 <path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path> 36143 <path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path> 36144 </svg> 36145 `); 36146 $($heading).append($a); 36147 }); 36148 }, 36149 show_language_picker() { 36150 if (frappe.session.user === "Guest" && window.show_language_picker) { 36151 frappe.call("frappe.translate.get_all_languages", { 36152 with_language_name: true 36153 }).then((res) => { 36154 let language_list = res.message; 36155 let language = frappe.get_cookie("preferred_language"); 36156 let language_codes = []; 36157 let language_switcher = $("#language-switcher .form-control"); 36158 language_list.forEach((language_doc) => { 36159 language_codes.push(language_doc.language_code); 36160 language_switcher.append( 36161 $("<option></option>").attr("value", language_doc.language_code).text(language_doc.language_name) 36162 ); 36163 }); 36164 $("#language-switcher").removeClass("hide"); 36165 language = language || (language_codes.includes(navigator.language) ? navigator.language : "en"); 36166 language_switcher.val(language); 36167 document.documentElement.lang = language; 36168 language_switcher.change(() => { 36169 const lang = language_switcher.val(); 36170 document.cookie = `preferred_language=${lang}`; 36171 window.location.reload(); 36172 }); 36173 }); 36174 } 36175 }, 36176 setup_videos: () => {
36177 $(".section-video-wrapper").on("click", (e) => { 36178 let $video = $(e.currentTarget); 36179 let id = $video.data("youtubeId"); 36180 console.log(id); 36181 $video.find(".video-thumbnail").hide(); 36182 $video.append(` 36183 <iframe allowfullscreen="" class="section-video" f;rameborder="0" src="//youtube.com/embed/${id}?autoplay=1"></iframe> 36184 `); 36185 }); 36186 } 36187 }); 36188 frappe.setup_search = function(target, search_scope) { 36189 if (typeof target === "string") { 36190 target = $(target); 36191 } 36192 let $search_input = $(`<div class="dropdown" id="dropdownMenuSearch"> 36193 <input type="search" class="form-control" placeholder="Search the docs (Press / to focus)" /> 36194 <div class="overflow-hidden shadow dropdown-menu w-100" aria-labelledby="dropdownMenuSearch"> 36195 </div> 36196 <div class="search-icon"> 36197 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" 36198 fill="none" 36199 stroke="currentColor" stroke-width="2" stroke-linecap="round" 36200 stroke-linejoin="round" 36201 class="feather feather-search"> 36202 <circle cx="11" cy="11" r="8"></circle> 36203 <line x1="21" y1="21" x2="16.65" y2="16.65"></line> 36204 </svg> 36205 </div> 36206 </div>`); 36207 target.empty(); 36208 $search_input.appendTo(target); 36209 let $dropdown_menu = $search_input.find(".dropdown-menu"); 36210 let $input = $search_input.find("input"); 36211 let dropdownItems; 36212 let offsetIndex = 0; 36213 $(document).on("keypress", (e) => { 36214 if ($(e.target).is("textarea, input, select")) { 36215 return; 36216 } 36217 if (e.key === "/") { 36218 e.preventDefault(); 36219 $input.focus(); 36220 } 36221 }); 36222 $input.on( 36223 "input", 36224 frappe.utils.debounce(() => { 36225 if (!$input.val()) { 36226 clear_dropdown(); 36227 return; 36228 } 36229 frappe.call({ 36230 method: "frappe.search.web_search", 36231 args: { 36232 scope: search_scope || null, 36233 query: $input.val(), 36234 limit: 5 36235 } 36236 }).then((r) => { 36237 let results = r.message || []; 36238 let dropdown_html; 36239 if (results.length == 0) { 36240 dropdown_html = `<div class="dropdown-item">No results found</div>`; 36241 } else { 36242 dropdown_html = results.map((r2) => { 36243 return `<a class="dropdown-item" href="/${r2.path}"> 36244 <h6>${r2.title_highlights || r2.title}</h6> 36245 <div style="white-space: normal;">${r2.content_highlights}</div> 36246 </a>`; 36247 }).join(""); 36248 } 36249 $dropdown_menu.html(dropdown_html); 36250 $dropdown_menu.addClass("show"); 36251 dropdownItems = $dropdown_menu.find(".dropdown-item"); 36252 }); 36253 }, 500) 36254 ); 36255 $input.on("focus", () => { 36256 if (!$input.val()) { 36257 clear_dropdown(); 36258 } else { 36259 $input.trigger("input"); 36260 } 36261 }); 36262 $input.keydown(function(e) { 36263 if (e.which == 40) { 36264 navigate(0); 36265 } 36266 }); 36267 $dropdown_menu.keydown(function(e) { 36268 if (e.which == 38) { 36269 navigate(-1); 36270 } else if (e.which == 40) { 36271 navigate(1); 36272 } else if (e.which == 27) { 36273 setTimeout(() => { 36274 clear_dropdown(); 36275 }, 300); 36276 } 36277 }); 36278 $(window).click(function() { 36279 clear_dropdown(); 36280 }); 36281 $search_input.click(function(event) { 36282 event.stopPropagation(); 36283 }); 36284 var navigate = function(diff) { 36285 offsetIndex += diff; 36286 if (offsetIndex >= dropdownItems.length) 36287 offsetIndex = 0; 36288 if (offsetIndex < 0) 36289 offsetIndex = dropdownItems.length - 1; 36290 $input.off("blur"); 36291 dropdownItems.eq(offsetIndex).focus(); 36292 }; 36293 function clear_dropdown() { 36294 offsetIndex = 0; 36295 $dropdown_menu.html(""); 36296 $dropdown_menu.removeClass("show"); 36297 dropdownItems = void 0; 36298 } 36299 $dropdown_menu.mouseover(function() { 36300 dropdownItems.blur(); 36301 }); 36302 }; 36303 window.valid_email = function(id) { 36304 return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/.test( 36305 id.toLowerCase() 36306 ); 36307 }; 36308 window.validate_email = window.valid_email; 36309 window.cstr = function(s) { 36310 return s == null ? "" : s + ""; 36311 }; 36312 window.is_null = function is_null2(v) { 36313 if (v === null || v === void 0 || cstr(v).trim() === "") 36314 return true; 36315 }; 36316 window.is_html = function is_html(txt) { 36317 if (txt.indexOf("<br>
36317") == -1 && txt.indexOf("<p") == -1 && txt.indexOf("<img") == -1 && txt.indexOf("<div") == -1) { 36318 return false; 36319 } 36320 return true; 36321 }; 36322 window.ask_to_login = function ask_to_login() { 36323 if (!frappe.is_user_logged_in()) { 36324 if (localStorage) { 36325 localStorage.setItem( 36326 "last_visited", 36327 window.location.href.replace(window.location.origin, "") 36328 ); 36329 } 36330 window.location.href = "login"; 36331 } 36332 }; 36333 $(document).ready(function() { 36334 var _a, _b, _c, _d; 36335 window.full_name = frappe.get_cookie("full_name"); 36336 var logged_in = frappe.is_user_logged_in(); 36337 $("#website-login").toggleClass("hide", logged_in ? true : false); 36338 $("#website-post-login").toggleClass("hide", logged_in ? false : true); 36339 $(".logged-in").toggleClass("hide", logged_in ? false : true); 36340 frappe.bind_navbar_search(); 36341 let apps = (_b = (_a = frappe.boot) == null ? void 0 : _a.apps_data) == null ? void 0 : _b.apps; 36342 let obj = { 36343 label: __("Apps"), 36344 route: "/apps" 36345 }; 36346 if (apps == null ? void 0 : apps.length) { 36347 if (apps.length == 1) { 36348 obj = { 36349 label: __(apps[0].title), 36350 route: apps[0].route 36351 }; 36352 } 36353 let is_desk_apps = (_d = (_c = frappe.boot) == null ? void 0 : _c.apps_data) == null ? void 0 : _d.is_desk_apps;
36354 !is_desk_apps && frappe.add_apps(obj); 36355 } 36356 if (frappe.get_cookie("system_user") === "yes" && logged_in) { 36357 frappe.add_switch_to_desk(); 36358 } 36359 frappe.render_user(); 36360 $(document).trigger("page-change"); 36361 }); 36362 $(document).on("page-change", function() { 36363 $(document).trigger("apply_permissions"); 36364 $(".dropdown-toggle").dropdown(); 36365 $(".dropdown-menu .dropdown-submenu .dropdown-toggle").on("click", function(e) { 36366 e.stopPropagation(); 36367 $(this).parent().parent().parent().addClass("open"); 36368 }); 36369 $.extend(frappe, frappe.get_cookies()); 36370 frappe.session = { user: frappe.user_id }; 36371 frappe.datetime.refresh_when(); 36372 frappe.trigger_ready(); 36373 frappe.bind_filters(); 36374 frappe.highlight_code_blocks(); 36375 frappe.add_link_to_headings(); 36376 frappe.make_navbar_active(); 36377 if (window.location.hash) { 36378 var element = document.getElementById(window.location.hash.substring(1)); 36379 element && element.scrollIntoView(true); 36380 } 36381 }); 36382 frappe.ready(function() { 36383 frappe.show_language_picker(); 36384 frappe.setup_videos(); 36385 frappe.realtime.init(window.socketio_port, true); 36386 }); 36387 36388
vendor: 564 bytes, lines 36388-36403
36388// node_modules/engine.io-parser/build/esm/commons.js 36389 var PACKET_TYPES = /* @__PURE__ */ Object.create(null); 36390 PACKET_TYPES["open"] = "0"; 36391 PACKET_TYPES["close"] = "1"; 36392 PACKET_TYPES["ping"] = "2"; 36393 PACKET_TYPES["pong"] = "3"; 36394 PACKET_TYPES["message"] = "4"; 36395 PACKET_TYPES["upgrade"] = "5"; 36396 PACKET_TYPES["noop"] = "6"; 36397 var PACKET_TYPES_REVERSE = /* @__PURE__ */ Object.create(null); 36398 Object.keys(PACKET_TYPES).forEach((key) => { 36399 PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key; 36400 }); 36401 var ERROR_PACKET = { type: "error", data: "parser error" }; 36402 36403
vendor: 2,076 bytes, lines 36403-36457
36403// node_modules/engine.io-parser/build/esm/encodePacket.browser.js 36404 var withNativeBlob = typeof Blob === "function" || typeof Blob !== "undefined" && Object.prototype.toString.call(Blob) === "[object BlobConstructor]"; 36405 var withNativeArrayBuffer = typeof ArrayBuffer === "function"; 36406 var isView = (obj) => { 36407 return typeof ArrayBuffer.isView === "function" ? ArrayBuffer.isView(obj) : obj && obj.buffer instanceof ArrayBuffer; 36408 }; 36409 var encodePacket = ({ type: type2, data }, supportsBinary, callback) => { 36410 if (withNativeBlob && data instanceof Blob) { 36411 if (supportsBinary) { 36412 return callback(data); 36413 } else { 36414 return encodeBlobAsBase64(data, callback); 36415 } 36416 } else if (withNativeArrayBuffer && (data instanceof ArrayBuffer || isView(data))) { 36417 if (supportsBinary) { 36418 return callback(data); 36419 } else { 36420 return encodeBlobAsBase64(new Blob([data]), callback); 36421 } 36422 } 36423 return callback(PACKET_TYPES[type2] + (data || "")); 36424 }; 36425 var encodeBlobAsBase64 = (data, callback) => { 36426 const fileReader = new FileReader(); 36427 fileReader.onload = function() { 36428 const content = fileReader.result.split(",")[1]; 36429 callback("b" + (content || "")); 36430 }; 36431 return fileReader.readAsDataURL(data); 36432 }; 36433 function toArray(data) { 36434 if (data instanceof Uint8Array) { 36435 return data; 36436 } else if (data instanceof ArrayBuffer) { 36437 return new Uint8Array(data); 36438 } else { 36439 return new Uint8Array(data.buffer, data.byteOffset, data.byteLength); 36440 } 36441 } 36442 var TEXT_ENCODER; 36443 function encodePacketToBinary(packet, callback) { 36444 if (withNativeBlob && packet.data instanceof Blob) { 36445 return packet.data.arrayBuffer().then(toArray).then(callback); 36446 } else if (withNativeArrayBuffer && (packet.data instanceof ArrayBuffer || isView(packet.data))) { 36447 return callback(toArray(packet.data)); 36448 } 36449 encodePacket(packet, false, (encoded) => { 36450 if (!TEXT_ENCODER) { 36451 TEXT_ENCODER = new TextEncoder(); 36452 } 36453 callback(TEXT_ENCODER.encode(encoded)); 36454 }); 36455 } 36456 36457
vendor: 1,154 bytes, lines 36457-36484
36457// node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js 36458 var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; 36459 var lookup = typeof Uint8Array === "undefined" ? [] : new Uint8Array(256); 36460 for (let i2 = 0; i2 < chars.length; i2++) { 36461 lookup[chars.charCodeAt(i2)] = i2; 36462 } 36463 var decode = (base64) => { 36464 let bufferLength = base64.length * 0.75, len = base64.length, i2, p = 0, encoded1, encoded2, encoded3, encoded4; 36465 if (base64[base64.length - 1] === "=") { 36466 bufferLength--; 36467 if (base64[base64.length - 2] === "=") { 36468 bufferLength--; 36469 } 36470 } 36471 const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer); 36472 for (i2 = 0; i2 < len; i2 += 4) { 36473 encoded1 = lookup[base64.charCodeAt(i2)]; 36474 encoded2 = lookup[base64.charCodeAt(i2 + 1)]; 36475 encoded3 = lookup[base64.charCodeAt(i2 + 2)]; 36476 encoded4 = lookup[base64.charCodeAt(i2 + 3)]; 36477 bytes[p++] = encoded1 << 2 | encoded2 >> 4; 36478 bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2; 36479 bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63; 36480 } 36481 return arraybuffer; 36482 }; 36483 36484
vendor: 1,437 bytes, lines 36484-36537
36484// node_modules/engine.io-parser/build/esm/decodePacket.browser.js 36485 var withNativeArrayBuffer2 = typeof ArrayBuffer === "function"; 36486 var decodePacket = (encodedPacket, binaryType) => { 36487 if (typeof encodedPacket !== "string") { 36488 return { 36489 type: "message", 36490 data: mapBinary(encodedPacket, binaryType) 36491 }; 36492 } 36493 const type2 = encodedPacket.charAt(0); 36494 if (type2 === "b") { 36495 return { 36496 type: "message", 36497 data: decodeBase64Packet(encodedPacket.substring(1), binaryType) 36498 }; 36499 } 36500 const packetType = PACKET_TYPES_REVERSE[type2]; 36501 if (!packetType) { 36502 return ERROR_PACKET; 36503 } 36504 return encodedPacket.length > 1 ? { 36505 type: PACKET_TYPES_REVERSE[type2], 36506 data: encodedPacket.substring(1) 36507 } : { 36508 type: PACKET_TYPES_REVERSE[type2] 36509 }; 36510 }; 36511 var decodeBase64Packet = (data, binaryType) => { 36512 if (withNativeArrayBuffer2) { 36513 const decoded = decode(data); 36514 return mapBinary(decoded, binaryType); 36515 } else { 36516 return { base64: true, data }; 36517 } 36518 }; 36519 var mapBinary = (data, binaryType) => { 36520 switch (binaryType) { 36521 case "blob": 36522 if (data instanceof Blob) { 36523 return data; 36524 } else { 36525 return new Blob([data]); 36526 } 36527 case "arraybuffer": 36528 default: 36529 if (data instanceof ArrayBuffer) { 36530 return data; 36531 } else { 36532 return data.buffer; 36533 } 36534 } 36535 }; 36536 36537
vendor: 4,697 bytes, lines 36537-36679
36537// node_modules/engine.io-parser/build/esm/index.js 36538 var SEPARATOR = String.fromCharCode(30); 36539 var encodePayload = (packets, callback) => { 36540 const length2 = packets.length; 36541 const encodedPackets = new Array(length2); 36542 let count = 0; 36543 packets.forEach((packet, i2) => { 36544 encodePacket(packet, false, (encodedPacket) => { 36545 encodedPackets[i2] = encodedPacket; 36546 if (++count === length2) { 36547 callback(encodedPackets.join(SEPARATOR)); 36548 } 36549 }); 36550 }); 36551 }; 36552 var decodePayload = (encodedPayload, binaryType) => { 36553 const encodedPackets = encodedPayload.split(SEPARATOR); 36554 const packets = []; 36555 for (let i2 = 0; i2 < encodedPackets.length; i2++) { 36556 const decodedPacket = decodePacket(encodedPackets[i2], binaryType); 36557 packets.push(decodedPacket); 36558 if (decodedPacket.type === "error") { 36559 break; 36560 } 36561 } 36562 return packets; 36563 }; 36564 function createPacketEncoderStream() { 36565 return new TransformStream({ 36566 transform(packet, controller) { 36567 encodePacketToBinary(packet, (encodedPacket) => { 36568 const payloadLength = encodedPacket.length; 36569 let header; 36570 if (payloadLength < 126) { 36571 header = new Uint8Array(1); 36572 new DataView(header.buffer).setUint8(0, payloadLength); 36573 } else if (payloadLength < 65536) { 36574 header = new Uint8Array(3); 36575 const view = new DataView(header.buffer); 36576 view.setUint8(0, 126); 36577 view.setUint16(1, payloadLength); 36578 } else { 36579 header = new Uint8Array(9); 36580 const view = new DataView(header.buffer); 36581 view.setUint8(0, 127); 36582 view.setBigUint64(1, BigInt(payloadLength)); 36583 } 36584 if (packet.data && typeof packet.data !== "string") { 36585 header[0] |= 128; 36586 } 36587 controller.enqueue(header); 36588 controller.enqueue(encodedPacket); 36589 }); 36590 } 36591 }); 36592 } 36593 var TEXT_DECODER; 36594 function totalLength(chunks) { 36595 return chunks.reduce((acc, chunk) => acc + chunk.length, 0); 36596 } 36597 function concatChunks(chunks, size) { 36598 if (chunks[0].length === size) { 36599 return chunks.shift(); 36600 } 36601 const buffer = new Uint8Array(size); 36602 let j = 0; 36603 for (let i2 = 0; i2 < size; i2++) { 36604 buffer[i2] = chunks[0][j++]; 36605 if (j === chunks[0].length) { 36606 chunks.shift(); 36607 j = 0; 36608 } 36609 } 36610 if (chunks.length && j < chunks[0].length) { 36611 chunks[0] = chunks[0].slice(j); 36612 } 36613 return buffer; 36614 } 36615 function createPacketDecoderStream(maxPayload, binaryType) { 36616 if (!TEXT_DECODER) { 36617 TEXT_DECODER = new TextDecoder(); 36618 } 36619 const chunks = []; 36620 let state = 0; 36621 let expectedLength = -1; 36622 let isBinary2 = false; 36623 return new TransformStream({ 36624 transform(chunk, controller) { 36625 chunks.push(chunk); 36626 while (true) { 36627 if (state === 0) { 36628 if (totalLength(chunks) < 1) { 36629 break; 36630 } 36631 const header = concatChunks(chunks, 1); 36632 isBinary2 = (header[0] & 128) === 128; 36633 expectedLength = header[0] & 127; 36634 if (expectedLength < 126) { 36635 state = 3; 36636 } else if (expectedLength === 126) { 36637 state = 1; 36638 } else { 36639 state = 2; 36640 } 36641 } else if (state === 1) { 36642 if (totalLength(chunks) < 2) { 36643 break; 36644 } 36645 const headerArray = concatChunks(chunks, 2); 36646 expectedLength = new DataView(headerArray.buffer, headerArray.byteOffset, headerArray.length).getUint16(0); 36647 state = 3; 36648 } else if (state === 2) { 36649 if (totalLength(chunks) < 8) { 36650 break; 36651 } 36652 const headerArray = concatChunks(chunks, 8); 36653 const view = new DataView(headerArray.buffer, headerArray.byteOffset, headerArray.length); 36654 const n = view.getUint32(0); 36655 if (n > Math.pow(2, 53 - 32) - 1) { 36656 controller.enqueue(ERROR_PACKET); 36657 break; 36658 } 36659 expectedLength = n * Math.pow(2, 32) + view.getUint32(4); 36660 state = 3; 36661 } else { 36662 if (totalLength(chunks) < expectedLength) { 36663 break; 36664 } 36665 const data = concatChunks(chunks, expectedLength); 36666 controller.enqueue(decodePacket(isBinary2 ? data : TEXT_DECODER.decode(data), binaryType)); 36667 state = 0; 36668 } 36669 if (expectedLength === 0 || expectedLength > maxPayload) { 36670 controller.enqueue(ERROR_PACKET); 36671 break; 36672 } 36673 } 36674 } 36675 }); 36676 } 36677 var protocol = 4; 36678 36679
vendor: 2,253 bytes, lines 36679-36753
36679// node_modules/@socket.io/component-emitter/index.mjs 36680 function Emitter(obj) { 36681 if (obj) 36682 return mixin(obj); 36683 } 36684 function mixin(obj) { 36685 for (var key in Emitter.prototype) { 36686 obj[key] = Emitter.prototype[key]; 36687 } 36688 return obj; 36689 } 36690 Emitter.prototype.on = Emitter.prototype.addEventListener = function(event, fn) { 36691 this._callbacks = this._callbacks || {}; 36692 (this._callbacks["$" + event] = this._callbacks["$" + event] || []).push(fn); 36693 return this; 36694 }; 36695 Emitter.prototype.once = function(event, fn) { 36696 function on2() { 36697 this.off(event, on2); 36698 fn.apply(this, arguments); 36699 } 36700 on2.fn = fn; 36701 this.on(event, on2); 36702 return this; 36703 }; 36704 Emitter.prototype.off = Emitter.prototype.removeListener = Emitter.prototype.removeAllListeners = Emitter.prototype.removeEventListener = function(event, fn) { 36705 this._callbacks = this._callbacks || {}; 36706 if (0 == arguments.length) { 36707 this._callbacks = {}; 36708 return this; 36709 } 36710 var callbacks = this._callbacks["$" + event]; 36711 if (!callbacks) 36712 return this; 36713 if (1 == arguments.length) { 36714 delete this._callbacks["$" + event]; 36715 return this; 36716 } 36717 var cb; 36718 for (var i2 = 0; i2 < callbacks.length; i2++) { 36719 cb = callbacks[i2]; 36720 if (cb === fn || cb.fn === fn) { 36721 callbacks.splice(i2, 1); 36722 break; 36723 } 36724 } 36725 if (callbacks.length === 0) { 36726 delete this._callbacks["$" + event]; 36727 } 36728 return this; 36729 }; 36730 Emitter.prototype.emit = function(event) { 36731 this._callbacks = this._callbacks || {}; 36732 var args = new Array(arguments.length - 1), callbacks = this._callbacks["$" + event]; 36733 for (var i2 = 1; i2 < arguments.length; i2++) { 36734 args[i2 - 1] = arguments[i2]; 36735 } 36736 if (callbacks) { 36737 callbacks = callbacks.slice(0); 36738 for (var i2 = 0, len = callbacks.length; i2 < len; ++i2) { 36739 callbacks[i2].apply(this, args); 36740 } 36741 } 36742 return this; 36743 }; 36744 Emitter.prototype.emitReserved = Emitter.prototype.emit; 36745 Emitter.prototype.listeners = function(event) { 36746 this._callbacks = this._callbacks || {}; 36747 return this._callbacks["$" + event] || []; 36748 }; 36749 Emitter.prototype.hasListeners = function(event) { 36750 return !!this.listeners(event).length; 36751 }; 36752 36753
vendor: 294 bytes, lines 36753-36764
36753// node_modules/engine.io-client/build/esm/globalThis.browser.js 36754 var globalThisShim = (() => { 36755 if (typeof self !== "undefined") { 36756 return self; 36757 } else if (typeof window !== "undefined") { 36758 return window; 36759 } else { 36760 return Function("return this")(); 36761 } 36762 })(); 36763 36764
vendor: 1,317 bytes, lines 36764-36809
36764// node_modules/engine.io-client/build/esm/util.js 36765 function pick(obj, ...attr) { 36766 return attr.reduce((acc, k) => { 36767 if (obj.hasOwnProperty(k)) { 36768 acc[k] = obj[k]; 36769 } 36770 return acc; 36771 }, {}); 36772 } 36773 var NATIVE_SET_TIMEOUT = globalThisShim.setTimeout; 36774 var NATIVE_CLEAR_TIMEOUT = globalThisShim.clearTimeout; 36775 function installTimerFunctions(obj, opts) { 36776 if (opts.useNativeTimers) { 36777 obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThisShim); 36778 obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThisShim); 36779 } else { 36780 obj.setTimeoutFn = globalThisShim.setTimeout.bind(globalThisShim); 36781 obj.clearTimeoutFn = globalThisShim.clearTimeout.bind(globalThisShim); 36782 } 36783 } 36784 var BASE64_OVERHEAD = 1.33; 36785 function byteLength(obj) { 36786 if (typeof obj === "string") { 36787 return utf8Length(obj); 36788 } 36789 return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD); 36790 } 36791 function utf8Length(str) { 36792 let c = 0, length2 = 0; 36793 for (let i2 = 0, l = str.length; i2 < l; i2++) { 36794 c = str.charCodeAt(i2); 36795 if (c < 128) { 36796 length2 += 1; 36797 } else if (c < 2048) { 36798 length2 += 2; 36799 } else if (c < 55296 || c >= 57344) { 36800 length2 += 3; 36801 } else { 36802 i2++; 36803 length2 += 4; 36804 } 36805 } 36806 return length2; 36807 } 36808 36809
vendor: 589 bytes, lines 36809-36831
36809// node_modules/engine.io-client/build/esm/contrib/parseqs.js 36810 function encode(obj) { 36811 let str = ""; 36812 for (let i2 in obj) { 36813 if (obj.hasOwnProperty(i2)) { 36814 if (str.length) 36815 str += "&"; 36816 str += encodeURIComponent(i2) + "=" + encodeURIComponent(obj[i2]); 36817 } 36818 } 36819 return str; 36820 } 36821 function decode2(qs) { 36822 let qry = {}; 36823 let pairs = qs.split("&"); 36824 for (let i2 = 0, l = pairs.length; i2 < l; i2++) { 36825 let pair = pairs[i2].split("="); 36826 qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]); 36827 } 36828 return qry; 36829 } 36830 36831
vendor: 2,165 bytes, lines 36831-36909
36831// node_modules/engine.io-client/build/esm/transport.js 36832 var TransportError = class extends Error { 36833 constructor(reason, description, context) { 36834 super(reason); 36835 this.description = description; 36836 this.context = context; 36837 this.type = "TransportError"; 36838 } 36839 }; 36840 var Transport = class extends Emitter { 36841 constructor(opts) { 36842 super(); 36843 this.writable = false; 36844 installTimerFunctions(this, opts); 36845 this.opts = opts; 36846 this.query = opts.query; 36847 this.socket = opts.socket; 36848 } 36849 onError(reason, description, context) { 36850 super.emitReserved("error", new TransportError(reason, description, context)); 36851 return this; 36852 } 36853 open() { 36854 this.readyState = "opening"; 36855 this.doOpen(); 36856 return this; 36857 } 36858 close() { 36859 if (this.readyState === "opening" || this.readyState === "open") { 36860 this.doClose(); 36861 this.onClose(); 36862 } 36863 return this; 36864 } 36865 send(packets) { 36866 if (this.readyState === "open") { 36867 this.write(packets); 36868 } else { 36869 } 36870 } 36871 onOpen() { 36872 this.readyState = "open"; 36873 this.writable = true; 36874 super.emitReserved("open"); 36875 } 36876 onData(data) { 36877 const packet = decodePacket(data, this.socket.binaryType); 36878 this.onPacket(packet); 36879 } 36880 onPacket(packet) { 36881 super.emitReserved("packet", packet); 36882 } 36883 onClose(details) { 36884 this.readyState = "closed"; 36885 super.emitReserved("close", details); 36886 } 36887 pause(onPause) { 36888 } 36889 createUri(schema, query = {}) { 36890 return schema + "://" + this._hostname() + this._port() + this.opts.path + this._query(query); 36891 } 36892 _hostname() { 36893 const hostname = this.opts.hostname; 36894 return hostname.indexOf(":") === -1 ? hostname : "[" + hostname + "]"; 36895 } 36896 _port() { 36897 if (this.opts.port && (this.opts.secure && Number(this.opts.port !== 443) || !this.opts.secure && Number(this.opts.port) !== 80)) { 36898 return ":" + this.opts.port; 36899 } else { 36900 return ""; 36901 } 36902 } 36903 _query(query) { 36904 const encodedQuery = encode(query); 36905 return encodedQuery.length ? "?" + encodedQuery : ""; 36906 } 36907 }; 36908 36909
vendor: 638 bytes, lines 36909-36933
36909// node_modules/engine.io-client/build/esm/contrib/yeast.js 36910 var alphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""); 36911 var length = 64; 36912 var map = {}; 36913 var seed = 0; 36914 var i = 0; 36915 var prev; 36916 function encode2(num) { 36917 let encoded = ""; 36918 do { 36919 encoded = alphabet[num % length] + encoded; 36920 num = Math.floor(num / length); 36921 } while (num > 0); 36922 return encoded; 36923 } 36924 function yeast() { 36925 const now = encode2(+new Date()); 36926 if (now !== prev) 36927 return seed = 0, prev = now; 36928 return now + "." + encode2(seed++); 36929 } 36930 for (; i < length; i++) 36931 map[alphabet[i]] = i; 36932 36933
vendor: 236 bytes, lines 36933-36941
36933// node_modules/engine.io-client/build/esm/contrib/has-cors.js 36934 var value = false; 36935 try { 36936 value = typeof XMLHttpRequest !== "undefined" && "withCredentials" in new XMLHttpRequest(); 36937 } catch (err) { 36938 } 36939 var hasCORS = value; 36940 36941
vendor: 495 bytes, lines 36941-36960
36941// node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js 36942 function XHR(opts) { 36943 const xdomain = opts.xdomain; 36944 try { 36945 if ("undefined" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) { 36946 return new XMLHttpRequest(); 36947 } 36948 } catch (e) { 36949 } 36950 if (!xdomain) { 36951 try { 36952 return new globalThisShim[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP"); 36953 } catch (e) { 36954 } 36955 } 36956 } 36957 function createCookieJar() { 36958 } 36959 36960
vendor: 7,401 bytes, lines 36960-37218
36960// node_modules/engine.io-client/build/esm/transports/polling.js 36961 function empty() { 36962 } 36963 var hasXHR2 = function() { 36964 const xhr = new XHR({ 36965 xdomain: false 36966 }); 36967 return null != xhr.responseType; 36968 }(); 36969 var Polling = class extends Transport { 36970 constructor(opts) { 36971 super(opts); 36972 this.polling = false; 36973 if (typeof location !== "undefined") { 36974 const isSSL = "https:" === location.protocol; 36975 let port = location.port; 36976 if (!port) { 36977 port = isSSL ? "443" : "80"; 36978 } 36979 this.xd = typeof location !== "undefined" && opts.hostname !== location.hostname || port !== opts.port; 36980 } 36981 const forceBase64 = opts && opts.forceBase64; 36982 this.supportsBinary = hasXHR2 && !forceBase64; 36983 if (this.opts.withCredentials) { 36984 this.cookieJar = createCookieJar(); 36985 } 36986 } 36987 get name() { 36988 return "polling"; 36989 } 36990 doOpen() { 36991 this.poll(); 36992 } 36993 pause(onPause) { 36994 this.readyState = "pausing"; 36995 const pause = () => { 36996 this.readyState = "paused"; 36997 onPause(); 36998 }; 36999 if (this.polling || !this.writable) { 37000 let total = 0; 37001 if (this.polling) { 37002 total++; 37003 this.once("pollComplete", function() { 37004 --total || pause(); 37005 }); 37006 } 37007 if (!this.writable) { 37008 total++; 37009 this.once("drain", function() { 37010 --total || pause(); 37011 }); 37012 } 37013 } else { 37014 pause(); 37015 } 37016 } 37017 poll() { 37018 this.polling = true; 37019 this.doPoll(); 37020 this.emitReserved("poll"); 37021 } 37022 onData(data) { 37023 const callback = (packet) => { 37024 if ("opening" === this.readyState && packet.type === "open") { 37025 this.onOpen(); 37026 } 37027 if ("close" === packet.type) { 37028 this.onClose({ description: "transport closed by the server" }); 37029 return false; 37030 } 37031 this.onPacket(packet); 37032 }; 37033 decodePayload(data, this.socket.binaryType).forEach(callback); 37034 if ("closed" !== this.readyState) { 37035 this.polling = false; 37036 this.emitReserved("pollComplete"); 37037 if ("open" === this.readyState) { 37038 this.poll(); 37039 } else { 37040 } 37041 } 37042 } 37043 doClose() { 37044 const close = () => { 37045 this.write([{ type: "close" }]); 37046 }; 37047 if ("open" === this.readyState) { 37048 close(); 37049 } else { 37050 this.once("open", close); 37051 } 37052 } 37053 write(packets) { 37054 this.writable = false; 37055 encodePayload(packets, (data) => { 37056 this.doWrite(data, () => { 37057 this.writable = true; 37058 this.emitReserved("drain"); 37059 }); 37060 }); 37061 } 37062 uri() { 37063 const schema = this.opts.secure ? "https" : "http"; 37064 const query = this.query || {}; 37065 if (false !== this.opts.timestampRequests) { 37066 query[this.opts.timestampParam] = yeast(); 37067 } 37068 if (!this.supportsBinary && !query.sid) { 37069 query.b64 = 1; 37070 } 37071 return this.createUri(schema, query); 37072 } 37073 request(opts = {}) { 37074 Object.assign(opts, { xd: this.xd, cookieJar: this.cookieJar }, this.opts); 37075 return new Request(this.uri(), opts); 37076 } 37077 doWrite(data, fn) { 37078 const req = this.request({ 37079 method: "POST", 37080 data 37081 }); 37082 req.on("success", fn); 37083 req.on("error", (xhrStatus, context) => { 37084 this.onError("xhr post error", xhrStatus, context); 37085 }); 37086 } 37087 doPoll() { 37088 const req = this.request(); 37089 req.on("data", this.onData.bind(this)); 37090 req.on("error", (xhrStatus, context) => { 37091 this.onError("xhr poll error", xhrStatus, context); 37092 }); 37093 this.pollXhr = req; 37094 } 37095 }; 37096 var Request = class extends Emitter { 37097 constructor(uri, opts) { 37098 super(); 37099 installTimerFunctions(this, opts); 37100 this.opts = opts; 37101 this.method = opts.method || "GET"; 37102 this.uri = uri; 37103 this.data = void 0 !== opts.data ? opts.data : null; 37104 this.create(); 37105 } 37106 create() { 37107 var _a; 37108 const opts = pick(this.opts, "agent", "pfx", "key", "passphrase", "cert", "ca", "ciphers", "rejectUnauthorized", "autoUnref"); 37109 opts.xdomain = !!this.opts.xd; 37110 const xhr = this.xhr = new XHR(opts); 37111 try { 37112 xhr.open(this.method, this.uri, true); 37113 try { 37114 if (this.opts.extraHeaders) { 37115 xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true); 37116 for (let i2 in this.opts.extraHeaders) { 37117 if (this.opts.extraHeaders.hasOwnProperty(i2)) { 37118 xhr.setRequestHeader(i2, this.opts.extraHeaders[i2]); 37119 } 37120 } 37121 } 37122 } catch (e) { 37123 } 37124 if ("POST" === this.method) { 37125 try { 37126 xhr.setRequestHeader("Content-type", "text/plain;charset=UTF-8"); 37127 } catch (e) { 37128 } 37129 } 37130 try { 37131 xhr.setRequestHeader("Accept", "*/*"); 37132 } catch (e) { 37133 } 37134 (_a = this.opts.cookieJar) === null || _a === void 0 ? void 0 : _a.addCookies(xhr); 37135 if ("withCredentials" in xhr) { 37136 xhr.withCredentials = this.opts.withCredentials; 37137 } 37138 if (this.opts.requestTimeout) { 37139 xhr.timeout = this.opts.requestTimeout; 37140 } 37141 xhr.onreadystatechange = () => { 37142 var _a2; 37143 if (xhr.readyState === 3) { 37144 (_a2 = this.opts.cookieJar) === null || _a2 === void 0 ? void 0 : _a2.parseCookies(xhr); 37145 } 37146 if (4 !== xhr.readyState) 37147 return; 37148 if (200 === xhr.status || 1223 === xhr.status) { 37149 this.onLoad(); 37150 } else { 37151 this.setTimeoutFn(() => { 37152 this.onError(typeof xhr.status === "number" ? xhr.status : 0); 37153 }, 0); 37154 } 37155 }; 37156 xhr.send(this.data); 37157 } catch (e) { 37158 this.setTimeoutFn(() => { 37159 this.onError(e); 37160 }, 0); 37161 return; 37162 } 37163 if (typeof document !== "undefined") { 37164 this.index = Request.requestsCount++; 37165 Request.requests[this.index] = this; 37166 } 37167 } 37168 onError(err) { 37169 this.emitReserved("error", err, this.xhr); 37170 this.cleanup(true); 37171 } 37172 cleanup(fromError) { 37173 if ("undefined" === typeof this.xhr || null === this.xhr) { 37174 return; 37175 } 37176 this.xhr.onreadystatechange = empty; 37177 if (fromError) { 37178 try { 37179 this.xhr.abort(); 37180 } catch (e) { 37181 } 37182 } 37183 if (typeof document !== "undefined") { 37184 delete Request.requests[this.index]; 37185 } 37186 this.xhr = null; 37187 } 37188 onLoad() { 37189 const data = this.xhr.responseText; 37190 if (data !== null) { 37191 this.emitReserved("data", data); 37192 this.emitReserved("success"); 37193 this.cleanup(); 37194 } 37195 } 37196 abort() { 37197 this.cleanup(); 37198 } 37199 }; 37200 Request.requestsCount = 0; 37201 Request.requests = {}; 37202 if (typeof document !== "undefined") { 37203 if (typeof attachEvent === "function") { 37204 attachEvent("onunload", unloadHandler); 37205 } else if (typeof addEventListener === "function") { 37206 const terminationEvent = "onpagehide" in globalThisShim ? "pagehide" : "unload"; 37207 addEventListener(terminationEvent, unloadHandler, false); 37208 } 37209 } 37210 function unloadHandler() { 37211 for (let i2 in Request.requests) { 37212 if (Request.requests.hasOwnProperty(i2)) { 37213 Request.requests[i2].abort(); 37214 } 37215 } 37216 } 37217 37218
vendor: 533 bytes, lines 37218-37231
37218// node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js 37219 var nextTick = (() => { 37220 const isPromiseAvailable = typeof Promise === "function" && typeof Promise.resolve === "function"; 37221 if (isPromiseAvailable) { 37222 return (cb) => Promise.resolve().then(cb); 37223 } else { 37224 return (cb, setTimeoutFn) => setTimeoutFn(cb, 0); 37225 } 37226 })(); 37227 var WebSocket = globalThisShim.WebSocket || globalThisShim.MozWebSocket; 37228 var usingBrowserWebSocket = true; 37229 var defaultBinaryType = "arraybuffer"; 37230 37231
vendor: 3,284 bytes, lines 37231-37330
37231// node_modules/engine.io-client/build/esm/transports/websocket.js 37232 var isReactNative = typeof navigator !== "undefined" && typeof navigator.product === "string" && navigator.product.toLowerCase() === "reactnative"; 37233 var WS = class extends Transport { 37234 constructor(opts) { 37235 super(opts); 37236 this.supportsBinary = !opts.forceBase64; 37237 } 37238 get name() { 37239 return "websocket"; 37240 } 37241 doOpen() { 37242 if (!this.check()) { 37243 return; 37244 } 37245 const uri = this.uri(); 37246 const protocols = this.opts.protocols; 37247 const opts = isReactNative ? {} : pick(this.opts, "agent", "perMessageDeflate", "pfx", "key", "passphrase", "cert", "ca", "ciphers", "rejectUnauthorized", "localAddress", "protocolVersion", "origin", "maxPayload", "family", "checkServerIdentity"); 37248 if (this.opts.extraHeaders) { 37249 opts.headers = this.opts.extraHeaders; 37250 } 37251 try { 37252 this.ws = usingBrowserWebSocket && !isReactNative ? protocols ? new WebSocket(uri, protocols) : new WebSocket(uri) : new WebSocket(uri, protocols, opts); 37253 } catch (err) { 37254 return this.emitReserved("error", err); 37255 } 37256 this.ws.binaryType = this.socket.binaryType; 37257 this.addEventListeners(); 37258 } 37259 addEventListeners() { 37260 this.ws.onopen = () => { 37261 if (this.opts.autoUnref) { 37262 this.ws._socket.unref(); 37263 } 37264 this.onOpen(); 37265 }; 37266 this.ws.onclose = (closeEvent) => this.onClose({ 37267 description: "websocket connection closed", 37268 context: closeEvent 37269 }); 37270 this.ws.onmessage = (ev) => this.onData(ev.data); 37271 this.ws.onerror = (e) => this.onError("websocket error", e); 37272 } 37273 write(packets) { 37274 this.writable = false; 37275 for (let i2 = 0; i2 < packets.length; i2++) { 37276 const packet = packets[i2]; 37277 const lastPacket = i2 === packets.length - 1; 37278 encodePacket(packet, this.supportsBinary, (data) => { 37279 const opts = {}; 37280 if (!usingBrowserWebSocket) { 37281 if (packet.options) { 37282 opts.compress = packet.options.compress; 37283 } 37284 if (this.opts.perMessageDeflate) { 37285 const len = "string" === typeof data ? Buffer.byteLength(data) : data.length; 37286 if (len < this.opts.perMessageDeflate.threshold) { 37287 opts.compress = false; 37288 } 37289 } 37290 } 37291 try { 37292 if (usingBrowserWebSocket) { 37293 this.ws.send(data); 37294 } else { 37295 this.ws.send(data, opts); 37296 } 37297 } catch (e) { 37298 } 37299 if (lastPacket) { 37300 nextTick(() => { 37301 this.writable = true; 37302 this.emitReserved("drain"); 37303 }, this.setTimeoutFn); 37304 } 37305 }); 37306 } 37307 } 37308 doClose() { 37309 if (typeof this.ws !== "undefined") { 37310 this.ws.close(); 37311 this.ws = null; 37312 } 37313 } 37314 uri() { 37315 const schema = this.opts.secure ? "wss" : "ws"; 37316 const query = this.query || {}; 37317 if (this.opts.timestampRequests) { 37318 query[this.opts.timestampParam] = yeast(); 37319 } 37320 if (!this.supportsBinary) { 37321 query.b64 = 1; 37322 } 37323 return this.createUri(schema, query); 37324 } 37325 check() { 37326 return !!WebSocket; 37327 } 37328 }; 37329 37330
vendor: 2,079 bytes, lines 37330-37392
37330// node_modules/engine.io-client/build/esm/transports/webtransport.js 37331 var WT = class extends Transport { 37332 get name() { 37333 return "webtransport"; 37334 } 37335 doOpen() { 37336 if (typeof WebTransport !== "function") { 37337 return; 37338 } 37339 this.transport = new WebTransport(this.createUri("https"), this.opts.transportOptions[this.name]); 37340 this.transport.closed.then(() => { 37341 this.onClose(); 37342 }).catch((err) => { 37343 this.onError("webtransport error", err); 37344 }); 37345 this.transport.ready.then(() => { 37346 this.transport.createBidirectionalStream().then((stream) => { 37347 const decoderStream = createPacketDecoderStream(Number.MAX_SAFE_INTEGER, this.socket.binaryType); 37348 const reader = stream.readable.pipeThrough(decoderStream).getReader(); 37349 const encoderStream = createPacketEncoderStream(); 37350 encoderStream.readable.pipeTo(stream.writable); 37351 this.writer = encoderStream.writable.getWriter(); 37352 const read = () => { 37353 reader.read().then(({ done, value: value2 }) => { 37354 if (done) { 37355 return; 37356 } 37357 this.onPacket(value2); 37358 read(); 37359 }).catch((err) => { 37360 }); 37361 }; 37362 read(); 37363 const packet = { type: "open" }; 37364 if (this.query.sid) { 37365 packet.data = `{"sid":"${this.query.sid}"}`; 37366 } 37367 this.writer.write(packet).then(() => this.onOpen()); 37368 }); 37369 }); 37370 } 37371 write(packets) { 37372 this.writable = false; 37373 for (let i2 = 0; i2 < packets.length; i2++) { 37374 const packet = packets[i2]; 37375 const lastPacket = i2 === packets.length - 1; 37376 this.writer.write(packet).then(() => { 37377 if (lastPacket) { 37378 nextTick(() => { 37379 this.writable = true; 37380 this.emitReserved("drain"); 37381 }, this.setTimeoutFn); 37382 } 37383 }); 37384 } 37385 } 37386 doClose() { 37387 var _a; 37388 (_a = this.transport) === null || _a === void 0 ? void 0 : _a.close(); 37389 } 37390 }; 37391 37392
vendor: 154 bytes, lines 37392-37399
37392// node_modules/engine.io-client/build/esm/transports/index.js 37393 var transports = { 37394 websocket: WS, 37395 webtransport: WT, 37396 polling: Polling 37397 }; 37398 37399
vendor: 1,818 bytes, lines 37399-37459
37399// node_modules/engine.io-client/build/esm/contrib/parseuri.js 37400 var re = /^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/; 37401 var parts = [ 37402 "source", 37403 "protocol", 37404 "authority", 37405 "userInfo", 37406 "user", 37407 "password", 37408 "host", 37409 "port", 37410 "relative", 37411 "path", 37412 "directory", 37413 "file", 37414 "query", 37415 "anchor" 37416 ]; 37417 function parse(str) { 37418 if (str.length > 2e3) { 37419 throw "URI too long"; 37420 } 37421 const src = str, b = str.indexOf("["), e = str.indexOf("]"); 37422 if (b != -1 && e != -1) { 37423 str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ";") + str.substring(e, str.length); 37424 } 37425 let m = re.exec(str || ""), uri = {}, i2 = 14; 37426 while (i2--) { 37427 uri[parts[i2]] = m[i2] || ""; 37428 } 37429 if (b != -1 && e != -1) { 37430 uri.source = src; 37431 uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ":"); 37432 uri.authority = uri.authority.replace("[", "").replace("]", "").replace(/;/g, ":"); 37433 uri.ipv6uri = true; 37434 } 37435 uri.pathNames = pathNames(uri, uri["path"]); 37436 uri.queryKey = queryKey(uri, uri["query"]); 37437 return uri; 37438 } 37439 function pathNames(obj, path) { 37440 const regx = /\/{2,9}/g, names = path.replace(regx, "/").split("/"); 37441 if (path.slice(0, 1) == "/" || path.length === 0) { 37442 names.splice(0, 1); 37443 } 37444 if (path.slice(-1) == "/") { 37445 names.splice(names.length - 1, 1); 37446 } 37447 return names; 37448 } 37449 function queryKey(uri, query) { 37450 const data = {}; 37451 query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function($0, $1, $2) { 37452 if ($1) { 37453 data[$1] = $2; 37454 } 37455 }); 37456 return data; 37457 } 37458 37459
vendor: 13,184 bytes, lines 37459-37864
37459// node_modules/engine.io-client/build/esm/socket.js 37460 var Socket = class extends Emitter { 37461 constructor(uri, opts = {}) { 37462 super(); 37463 this.binaryType = defaultBinaryType; 37464 this.writeBuffer = []; 37465 if (uri && "object" === typeof uri) { 37466 opts = uri; 37467 uri = null; 37468 } 37469 if (uri) { 37470 uri = parse(uri); 37471 opts.hostname = uri.host; 37472 opts.secure = uri.protocol === "https" || uri.protocol === "wss"; 37473 opts.port = uri.port; 37474 if (uri.query) 37475 opts.query = uri.query; 37476 } else if (opts.host) { 37477 opts.hostname = parse(opts.host).host; 37478 } 37479 installTimerFunctions(this, opts); 37480 this.secure = null != opts.secure ? opts.secure : typeof location !== "undefined" && "https:" === location.protocol; 37481 if (opts.hostname && !opts.port) { 37482 opts.port = this.secure ? "443" : "80"; 37483 } 37484 this.hostname = opts.hostname || (typeof location !== "undefined" ? location.hostname : "localhost"); 37485 this.port = opts.port || (typeof location !== "undefined" && location.port ? location.port : this.secure ? "443" : "80"); 37486 this.transports = opts.transports || [ 37487 "polling", 37488 "websocket", 37489 "webtransport" 37490 ]; 37491 this.writeBuffer = []; 37492 this.prevBufferLen = 0; 37493 this.opts = Object.assign({ 37494 path: "/engine.io", 37495 agent: false, 37496 withCredentials: false, 37497 upgrade: true, 37498 timestampParam: "t", 37499 rememberUpgrade: false, 37500 addTrailingSlash: true, 37501 rejectUnauthorized: true, 37502 perMessageDeflate: { 37503 threshold: 1024 37504 }, 37505 transportOptions: {}, 37506 closeOnBeforeunload: false 37507 }, opts); 37508 this.opts.path = this.opts.path.replace(/\/$/, "") + (this.opts.addTrailingSlash ? "/" : ""); 37509 if (typeof this.opts.query === "string") { 37510 this.opts.query = decode2(this.opts.query); 37511 } 37512 this.id = null; 37513 this.upgrades = null; 37514 this.pingInterval = null; 37515 this.pingTimeout = null; 37516 this.pingTimeoutTimer = null; 37517 if (typeof addEventListener === "function") { 37518 if (this.opts.closeOnBeforeunload) { 37519 this.beforeunloadEventListener = () => { 37520 if (this.transport) { 37521 this.transport.removeAllListeners(); 37522 this.transport.close(); 37523 } 37524 }; 37525 addEventListener("beforeunload", this.beforeunloadEventListener, false); 37526 } 37527 if (this.hostname !== "localhost") { 37528 this.offlineEventListener = () => { 37529 this.onClose("transport close", { 37530 description: "network connection lost" 37531 }); 37532 }; 37533 addEventListener("offline", this.offlineEventListener, false); 37534 } 37535 } 37536 this.open(); 37537 } 37538 createTransport(name2) { 37539 const query = Object.assign({}, this.opts.query); 37540 query.EIO = protocol; 37541 query.transport = name2; 37542 if (this.id) 37543 query.sid = this.id; 37544 const opts = Object.assign({}, this.opts, { 37545 query, 37546 socket: this, 37547 hostname: this.hostname, 37548 secure: this.secure, 37549 port: this.port 37550 }, this.opts.transportOptions[name2]); 37551 return new transports[name2](opts); 37552 } 37553 open() { 37554 let transport; 37555 if (this.opts.rememberUpgrade && Socket.priorWebsocketSuccess && this.transports.indexOf("websocket") !== -1) { 37556 transport = "websocket"; 37557 } else if (0 === this.transports.length) { 37558 this.setTimeoutFn(() => { 37559 this.emitReserved("error", "No transports available"); 37560 }, 0); 37561 return; 37562 } else { 37563 transport = this.transports[0]; 37564 } 37565 this.readyState = "opening"; 37566 try { 37567 transport = this.createTransport(transport); 37568 } catch (e) { 37569 this.transports.shift(); 37570 this.open(); 37571 return; 37572 } 37573 transport.open(); 37574 this.setTransport(transport); 37575 } 37576 setTransport(transport) { 37577 if (this.transport) { 37578 this.transport.removeAllListeners(); 37579 } 37580 this.transport = transport; 37581 transport.on("drain", this.onDrain.bind(this)).on("packet", this.onPacket.bind(this)).on("error", this.onError.bind(this)).on("close", (reason) => this.onClose("transport close", reason)); 37582 } 37583 probe(name2) { 37584 let transport = this.createTransport(name2); 37585 let failed = false; 37586 Socket.priorWebsocketSuccess = false; 37587 const onTransportOpen = () => { 37588 if (failed) 37589 return; 37590 transport.send([{ type: "ping", data: "probe" }]); 37591 transport.once("packet", (msg) => { 37592 if (failed) 37593 return; 37594 if ("pong" === msg.type && "probe" === msg.data) { 37595 this.upgrading = true; 37596 this.emitReserved("upgrading", transport); 37597 if (!transport) 37598 return; 37599 Socket.priorWebsocketSuccess = "websocket" === transport.name; 37600 this.transport.pause(() => { 37601 if (failed) 37602 return; 37603 if ("closed" === this.readyState) 37604 return; 37605 cleanup(); 37606 this.setTransport(transport); 37607 transport.send([{ type: "upgrade" }]); 37608 this.emitReserved("upgrade", transport); 37609 transport = null; 37610 this.upgrading = false; 37611 this.flush(); 37612 }); 37613 } else { 37614 const err = new Error("probe error"); 37615 err.transport = transport.name; 37616 this.emitReserved("upgradeError", err); 37617 } 37618 }); 37619 }; 37620 function freezeTransport() { 37621 if (failed) 37622 return; 37623 failed = true; 37624 cleanup(); 37625 transport.close(); 37626 transport = null; 37627 } 37628 const onerror = (err) => { 37629 const error = new Error("probe error: " + err); 37630 error.transport = transport.name; 37631 freezeTransport(); 37632 this.emitReserved("upgradeError", error); 37633 }; 37634 function onTransportClose() { 37635 onerror("transport closed"); 37636 } 37637 function onclose() { 37638 onerror("socket closed"); 37639 } 37640 function onupgrade(to) { 37641 if (transport && to.name !== transport.name) { 37642 freezeTransport(); 37643 } 37644 } 37645 const cleanup = () => { 37646 transport.removeListener("open", onTransportOpen); 37647 transport.removeListener("error", onerror); 37648 transport.removeListener("close", onTransportClose); 37649 this.off("close", onclose); 37650 this.off("upgrading", onupgrade); 37651 }; 37652 transport.once("open", onTransportOpen); 37653 transport.once("error", onerror); 37654 transport.once("close", onTransportClose); 37655 this.once("close", onclose); 37656 this.once("upgrading", onupgrade); 37657 if (this.upgrades.indexOf("webtransport") !== -1 && name2 !== "webtransport") { 37658 this.setTimeoutFn(() => { 37659 if (!failed) { 37660 transport.open(); 37661 } 37662 }, 200); 37663 } else { 37664 transport.open(); 37665 } 37666 } 37667 onOpen() { 37668 this.readyState = "open"; 37669 Socket.priorWebsocketSuccess = "websocket" === this.transport.name; 37670 this.emitReserved("open"); 37671 this.flush(); 37672 if ("open" === this.readyState && this.opts.upgrade) { 37673 let i2 = 0; 37674 const l = this.upgrades.length; 37675 for (; i2 < l; i2++) { 37676 this.probe(this.upgrades[i2]); 37677 } 37678 } 37679 } 37680 onPacket(packet) { 37681 if ("opening" === this.readyState || "open" === this.readyState || "closing" === this.readyState) { 37682 this.emitReserved("packet", packet); 37683 this.emitReserved("heartbeat"); 37684 this.resetPingTimeout(); 37685 switch (packet.type) { 37686 case "open": 37687 this.onHandshake(JSON.parse(packet.data)); 37688 break; 37689 case "ping": 37690 this.sendPacket("pong"); 37691 this.emitReserved("ping"); 37692 this.emitReserved("pong"); 37693 break; 37694 case "error": 37695 const err = new Error("server error"); 37696 err.code = packet.data; 37697 this.onError(err); 37698 break; 37699 case "message": 37700 this.emitReserved("data", packet.data); 37701 this.emitReserved("message", packet.data); 37702 break; 37703 } 37704 } else { 37705 } 37706 } 37707 onHandshake(data) { 37708 this.emitReserved("handshake", data); 37709 this.id = data.sid; 37710 this.transport.query.sid = data.sid; 37711 this.upgrades = this.filterUpgrades(data.upgrades); 37712 this.pingInterval = data.pingInterval; 37713 this.pingTimeout = data.pingTimeout; 37714 this.maxPayload = data.maxPayload; 37715 this.onOpen(); 37716 if ("closed" === this.readyState) 37717 return; 37718 this.resetPingTimeout(); 37719 } 37720 resetPingTimeout() { 37721 this.clearTimeoutFn(this.pingTimeoutTimer); 37722 this.pingTimeoutTimer = this.setTimeoutFn(() => { 37723 this.onClose("ping timeout"); 37724 }, this.pingInterval + this.pingTimeout); 37725 if (this.opts.autoUnref) { 37726 this.pingTimeoutTimer.unref(); 37727 } 37728 } 37729 onDrain() { 37730 this.writeBuffer.splice(0, this.prevBufferLen); 37731 this.prevBufferLen = 0; 37732 if (0 === this.writeBuffer.length) { 37733 this.emitReserved("drain"); 37734 } else { 37735 this.flush(); 37736 } 37737 } 37738 flush() { 37739 if ("closed" !== this.readyState && this.transport.writable && !this.upgrading && this.writeBuffer.length) { 37740 const packets = this.getWritablePackets(); 37741 this.transport.send(packets); 37742 this.prevBufferLen = packets.length; 37743 this.emitReserved("flush"); 37744 } 37745 } 37746 getWritablePackets() { 37747 const shouldCheckPayloadSize = this.maxPayload && this.transport.name === "polling" && this.writeBuffer.length > 1; 37748 if (!shouldCheckPayloadSize) { 37749 return this.writeBuffer; 37750 } 37751 let payloadSize = 1; 37752 for (let i2 = 0; i2 < this.writeBuffer.length; i2++) { 37753 const data = this.writeBuffer[i2].data; 37754 if (data) { 37755 payloadSize += byteLength(data); 37756 } 37757 if (i2 > 0 && payloadSize > this.maxPayload) { 37758 return this.writeBuffer.slice(0, i2); 37759 } 37760 payloadSize += 2; 37761 } 37762 return this.writeBuffer; 37763 } 37764 write(msg, options, fn) { 37765 this.sendPacket("message", msg, options, fn); 37766 return this; 37767 } 37768 send(msg, options, fn) { 37769 this.sendPacket("message", msg, options, fn); 37770 return this; 37771 } 37772 sendPacket(type2, data, options, fn) { 37773 if ("function" === typeof data) { 37774 fn = data; 37775 data = void 0; 37776 } 37777 if ("function" === typeof options) { 37778 fn = options; 37779 options = null; 37780 } 37781 if ("closing" === this.readyState || "closed" === this.readyState) { 37782 return; 37783 } 37784 options = options || {}; 37785 options.compress = false !== options.compress; 37786 const packet = { 37787 type: type2, 37788 data, 37789 options 37790 }; 37791 this.emitReserved("packetCreate", packet); 37792 this.writeBuffer.push(packet); 37793 if (fn) 37794 this.once("flush", fn); 37795 this.flush(); 37796 } 37797 close() { 37798 const close = () => { 37799 this.onClose("forced close"); 37800 this.transport.close(); 37801 }; 37802 const cleanupAndClose = () => { 37803 this.off("upgrade", cleanupAndClose); 37804 this.off("upgradeError", cleanupAndClose); 37805 close(); 37806 }; 37807 const waitForUpgrade = () => { 37808 this.once("upgrade", cleanupAndClose); 37809 this.once("upgradeError", cleanupAndClose); 37810 }; 37811 if ("opening" === this.readyState || "open" === this.readyState) { 37812 this.readyState = "closing"; 37813 if (this.writeBuffer.length) { 37814 this.once("drain", () => { 37815 if (this.upgrading) { 37816 waitForUpgrade(); 37817 } else { 37818 close(); 37819 } 37820 }); 37821 } else if (this.upgrading) { 37822 waitForUpgrade(); 37823 } else { 37824 close(); 37825 } 37826 } 37827 return this; 37828 } 37829 onError(err) { 37830 Socket.priorWebsocketSuccess = false; 37831 this.emitReserved("error", err); 37832 this.onClose("transport error", err); 37833 } 37834 onClose(reason, description) { 37835 if ("opening" === this.readyState || "open" === this.readyState || "closing" === this.readyState) { 37836 this.clearTimeoutFn(this.pingTimeoutTimer); 37837 this.transport.removeAllListeners("close"); 37838 this.transport.close(); 37839 this.transport.removeAllListeners(); 37840 if (typeof removeEventListener === "function") { 37841 removeEventListener("beforeunload", this.beforeunloadEventListener, false); 37842 removeEventListener("offline", this.offlineEventListener, false); 37843 } 37844 this.readyState = "closed"; 37845 this.id = null; 37846 this.emitReserved("close", reason, description); 37847 this.writeBuffer = []; 37848 this.prevBufferLen = 0; 37849 } 37850 } 37851 filterUpgrades(upgrades) { 37852 const filteredUpgrades = []; 37853 let i2 = 0; 37854 const j = upgrades.length; 37855 for (; i2 < j; i2++) { 37856 if (~this.transports.indexOf(upgrades[i2])) 37857 filteredUpgrades.push(upgrades[i2]); 37858 } 37859 return filteredUpgrades; 37860 } 37861 }; 37862 Socket.protocol = protocol; 37863 37864
vendor: 90 bytes, lines 37864-37867
37864// node_modules/engine.io-client/build/esm/index.js 37865 var protocol2 = Socket.protocol; 37866 37867
vendor: 1,184 bytes, lines 37867-37905
37867// node_modules/socket.io-client/build/esm/url.js 37868 function url(uri, path = "", loc) { 37869 let obj = uri; 37870 loc = loc || typeof location !== "undefined" && location; 37871 if (null == uri) 37872 uri = loc.protocol + "//" + loc.host; 37873 if (typeof uri === "string") { 37874 if ("/" === uri.charAt(0)) { 37875 if ("/" === uri.charAt(1)) { 37876 uri = loc.protocol + uri; 37877 } else { 37878 uri = loc.host + uri; 37879 } 37880 } 37881 if (!/^(https?|wss?):\/\//.test(uri)) { 37882 if ("undefined" !== typeof loc) { 37883 uri = loc.protocol + "//" + uri; 37884 } else { 37885 uri = "https://" + uri; 37886 } 37887 } 37888 obj = parse(uri); 37889 } 37890 if (!obj.port) { 37891 if (/^(http|ws)$/.test(obj.protocol)) { 37892 obj.port = "80"; 37893 } else if (/^(http|ws)s$/.test(obj.protocol)) { 37894 obj.port = "443"; 37895 } 37896 } 37897 obj.path = obj.path || "/"; 37898 const ipv6 = obj.host.indexOf(":") !== -1; 37899 const host = ipv6 ? "[" + obj.host + "]" : obj.host; 37900 obj.id = obj.protocol + "://" + host + ":" + obj.port + path; 37901 obj.href = obj.protocol + "://" + host + (loc && loc.port === obj.port ? "" : ":" + obj.port); 37902 return obj; 37903 } 37904 37905
vendor: 231 bytes, lines 37905-37914
37905// node_modules/socket.io-parser/build/esm/index.js 37906 var esm_exports = {}; 37907 __export(esm_exports, { 37908 Decoder: () => Decoder, 37909 Encoder: () => Encoder, 37910 PacketType: () => PacketType, 37911 protocol: () => protocol3 37912 }); 37913 37914
vendor: 1,430 bytes, lines 37914-37951
37914// node_modules/socket.io-parser/build/esm/is-binary.js 37915 var withNativeArrayBuffer3 = typeof ArrayBuffer === "function"; 37916 var isView2 = (obj) => { 37917 return typeof ArrayBuffer.isView === "function" ? ArrayBuffer.isView(obj) : obj.buffer instanceof ArrayBuffer; 37918 }; 37919 var toString = Object.prototype.toString; 37920 var withNativeBlob2 = typeof Blob === "function" || typeof Blob !== "undefined" && toString.call(Blob) === "[object BlobConstructor]"; 37921 var withNativeFile = typeof File === "function" || typeof File !== "undefined" && toString.call(File) === "[object FileConstructor]"; 37922 function isBinary(obj) { 37923 return withNativeArrayBuffer3 && (obj instanceof ArrayBuffer || isView2(obj)) || withNativeBlob2 && obj instanceof Blob || withNativeFile && obj instanceof File; 37924 } 37925 function hasBinary(obj, toJSON) { 37926 if (!obj || typeof obj !== "object") { 37927 return false; 37928 } 37929 if (Array.isArray(obj)) { 37930 for (let i2 = 0, l = obj.length; i2 < l; i2++) { 37931 if (hasBinary(obj[i2])) { 37932 return true; 37933 } 37934 } 37935 return false; 37936 } 37937 if (isBinary(obj)) { 37938 return true; 37939 } 37940 if (obj.toJSON && typeof obj.toJSON === "function" && arguments.length === 1) { 37941 return hasBinary(obj.toJSON(), true); 37942 } 37943 for (const key in obj) { 37944 if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) { 37945 return true; 37946 } 37947 } 37948 return false; 37949 } 37950 37951
vendor: 2,016 bytes, lines 37951-38013
37951// node_modules/socket.io-parser/build/esm/binary.js 37952 function deconstructPacket(packet) { 37953 const buffers = []; 37954 const packetData = packet.data; 37955 const pack = packet; 37956 pack.data = _deconstructPacket(packetData, buffers); 37957 pack.attachments = buffers.length; 37958 return { packet: pack, buffers }; 37959 } 37960 function _deconstructPacket(data, buffers) { 37961 if (!data) 37962 return data; 37963 if (isBinary(data)) { 37964 const placeholder = { _placeholder: true, num: buffers.length }; 37965 buffers.push(data); 37966 return placeholder; 37967 } else if (Array.isArray(data)) { 37968 const newData = new Array(data.length); 37969 for (let i2 = 0; i2 < data.length; i2++) { 37970 newData[i2] = _deconstructPacket(data[i2], buffers); 37971 } 37972 return newData; 37973 } else if (typeof data === "object" && !(data instanceof Date)) { 37974 const newData = {}; 37975 for (const key in data) { 37976 if (Object.prototype.hasOwnProperty.call(data, key)) { 37977 newData[key] = _deconstructPacket(data[key], buffers); 37978 } 37979 } 37980 return newData; 37981 } 37982 return data; 37983 } 37984 function reconstructPacket(packet, buffers) { 37985 packet.data = _reconstructPacket(packet.data, buffers); 37986 delete packet.attachments; 37987 return packet; 37988 } 37989 function _reconstructPacket(data, buffers) { 37990 if (!data) 37991 return data; 37992 if (data && data._placeholder === true) { 37993 const isIndexValid = typeof data.num === "number" && data.num >= 0 && data.num < buffers.length; 37994 if (isIndexValid) { 37995 return buffers[data.num]; 37996 } else { 37997 throw new Error("illegal attachments"); 37998 } 37999 } else if (Array.isArray(data)) { 38000 for (let i2 = 0; i2 < data.length; i2++) { 38001 data[i2] = _reconstructPacket(data[i2], buffers); 38002 } 38003 } else if (typeof data === "object") { 38004 for (const key in data) { 38005 if (Object.prototype.hasOwnProperty.call(data, key)) { 38006 data[key] = _reconstructPacket(data[key], buffers); 38007 } 38008 } 38009 } 38010 return data; 38011 } 38012 38013
vendor: 6,391 bytes, lines 38013-38219
38013// node_modules/socket.io-parser/build/esm/index.js 38014 var RESERVED_EVENTS = [ 38015 "connect", 38016 "connect_error", 38017 "disconnect", 38018 "disconnecting", 38019 "newListener", 38020 "removeListener" 38021 ]; 38022 var protocol3 = 5; 38023 var PacketType; 38024 (function(PacketType2) { 38025 PacketType2[PacketType2["CONNECT"] = 0] = "CONNECT"; 38026 PacketType2[PacketType2["DISCONNECT"] = 1] = "DISCONNECT"; 38027 PacketType2[PacketType2["EVENT"] = 2] = "EVENT"; 38028 PacketType2[PacketType2["ACK"] = 3] = "ACK"; 38029 PacketType2[PacketType2["CONNECT_ERROR"] = 4] = "CONNECT_ERROR"; 38030 PacketType2[PacketType2["BINARY_EVENT"] = 5] = "BINARY_EVENT"; 38031 PacketType2[PacketType2["BINARY_ACK"] = 6] = "BINARY_ACK"; 38032 })(PacketType || (PacketType = {})); 38033 var Encoder = class { 38034 constructor(replacer) { 38035 this.replacer = replacer; 38036 } 38037 encode(obj) { 38038 if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) { 38039 if (hasBinary(obj)) { 38040 return this.encodeAsBinary({ 38041 type: obj.type === PacketType.EVENT ? PacketType.BINARY_EVENT : PacketType.BINARY_ACK, 38042 nsp: obj.nsp, 38043 data: obj.data, 38044 id: obj.id 38045 }); 38046 } 38047 } 38048 return [this.encodeAsString(obj)]; 38049 } 38050 encodeAsString(obj) { 38051 let str = "" + obj.type; 38052 if (obj.type === PacketType.BINARY_EVENT || obj.type === PacketType.BINARY_ACK) { 38053 str += obj.attachments + "-"; 38054 } 38055 if (obj.nsp && "/" !== obj.nsp) { 38056 str += obj.nsp + ","; 38057 } 38058 if (null != obj.id) { 38059 str += obj.id; 38060 } 38061 if (null != obj.data) { 38062 str += JSON.stringify(obj.data, this.replacer); 38063 } 38064 return str; 38065 } 38066 encodeAsBinary(obj) { 38067 const deconstruction = deconstructPacket(obj); 38068 const pack = this.encodeAsString(deconstruction.packet); 38069 const buffers = deconstruction.buffers; 38070 buffers.unshift(pack); 38071 return buffers; 38072 } 38073 }; 38074 function isObject(value2) { 38075 return Object.prototype.toString.call(value2) === "[object Object]"; 38076 } 38077 var Decoder = class extends Emitter { 38078 constructor(reviver) { 38079 super(); 38080 this.reviver = reviver; 38081 } 38082 add(obj) { 38083 let packet; 38084 if (typeof obj === "string") { 38085 if (this.reconstructor) { 38086 throw new Error("got plaintext data when reconstructing a packet"); 38087 } 38088 packet = this.decodeString(obj); 38089 const isBinaryEvent = packet.type === PacketType.BINARY_EVENT; 38090 if (isBinaryEvent || packet.type === PacketType.BINARY_ACK) { 38091 packet.type = isBinaryEvent ? PacketType.EVENT : PacketType.ACK; 38092 this.reconstructor = new BinaryReconstructor(packet); 38093 if (packet.attachments === 0) { 38094 super.emitReserved("decoded", packet); 38095 } 38096 } else { 38097 super.emitReserved("decoded", packet); 38098 } 38099 } else if (isBinary(obj) || obj.base64) { 38100 if (!this.reconstructor) { 38101 throw new Error("got binary data when not reconstructing a packet"); 38102 } else { 38103 packet = this.reconstructor.takeBinaryData(obj); 38104 if (packet) { 38105 this.reconstructor = null; 38106 super.emitReserved("decoded", packet); 38107 } 38108 } 38109 } else { 38110 throw new Error("Unknown type: " + obj); 38111 } 38112 } 38113 decodeString(str) { 38114 let i2 = 0; 38115 const p = { 38116 type: Number(str.charAt(0)) 38117 }; 38118 if (PacketType[p.type] === void 0) { 38119 throw new Error("unknown packet type " + p.type); 38120 } 38121 if (p.type === PacketType.BINARY_EVENT || p.type === PacketType.BINARY_ACK) { 38122 const start = i2 + 1; 38123 while (str.charAt(++i2) !== "-" && i2 != str.length) { 38124 } 38125 const buf = str.substring(start, i2); 38126 if (buf != Number(buf) || str.charAt(i2) !== "-") { 38127 throw new Error("Illegal attachments"); 38128 } 38129 p.attachments = Number(buf); 38130 } 38131 if ("/" === str.charAt(i2 + 1)) { 38132 const start = i2 + 1; 38133 while (++i2) { 38134 const c = str.charAt(i2); 38135 if ("," === c) 38136 break; 38137 if (i2 === str.length) 38138 break; 38139 } 38140 p.nsp = str.substring(start, i2); 38141 } else { 38142 p.nsp = "/"; 38143 } 38144 const next = str.charAt(i2 + 1); 38145 if ("" !== next && Number(next) == next) { 38146 const start = i2 + 1; 38147 while (++i2) { 38148 const c = str.charAt(i2); 38149 if (null == c || Number(c) != c) { 38150 --i2; 38151 break; 38152 } 38153 if (i2 === str.length) 38154 break; 38155 } 38156 p.id = Number(str.substring(start, i2 + 1)); 38157 } 38158 if (str.charAt(++i2)) { 38159 const payload = this.tryParse(str.substr(i2)); 38160 if (Decoder.isPayloadValid(p.type, payload)) { 38161 p.data = payload; 38162 } else { 38163 throw new Error("invalid payload"); 38164 } 38165 } 38166 return p; 38167 } 38168 tryParse(str) { 38169 try { 38170 return JSON.parse(str, this.reviver); 38171 } catch (e) { 38172 return false; 38173 } 38174 } 38175 static isPayloadValid(type2, payload) { 38176 switch (type2) { 38177 case PacketType.CONNECT: 38178 return isObject(payload); 38179 case PacketType.DISCONNECT: 38180 return payload === void 0; 38181 case PacketType.CONNECT_ERROR: 38182 return typeof payload === "string" || isObject(payload); 38183 case PacketType.EVENT: 38184 case PacketType.BINARY_EVENT: 38185 return Array.isArray(payload) && (typeof payload[0] === "number" || typeof payload[0] === "string" && RESERVED_EVENTS.indexOf(payload[0]) === -1); 38186 case PacketType.ACK: 38187 case PacketType.BINARY_ACK: 38188 return Array.isArray(payload); 38189 } 38190 } 38191 destroy() { 38192 if (this.reconstructor) { 38193 this.reconstructor.finishedReconstruction(); 38194 this.reconstructor = null; 38195 } 38196 } 38197 }; 38198 var BinaryReconstructor = class { 38199 constructor(packet) { 38200 this.packet = packet; 38201 this.buffers = []; 38202 this.reconPack = packet; 38203 } 38204 takeBinaryData(binData) { 38205 this.buffers.push(binData); 38206 if (this.buffers.length === this.reconPack.attachments) { 38207 const packet = reconstructPacket(this.reconPack, this.buffers); 38208 this.finishedReconstruction(); 38209 return packet; 38210 } 38211 return null; 38212 } 38213 finishedReconstruction() { 38214 this.reconPack = null; 38215 this.buffers = []; 38216 } 38217 }; 38218 38219
vendor: 170 bytes, lines 38219-38227
38219// node_modules/socket.io-client/build/esm/on.js 38220 function on(obj, ev, fn) { 38221 obj.on(ev, fn); 38222 return function subDestroy() { 38223 obj.off(ev, fn); 38224 }; 38225 } 38226 38227
vendor: 11,485 bytes, lines 38227-38637
38227// node_modules/socket.io-client/build/esm/socket.js 38228 var RESERVED_EVENTS2 = Object.freeze({ 38229 connect: 1, 38230 connect_error: 1, 38231 disconnect: 1, 38232 disconnecting: 1, 38233 newListener: 1, 38234 removeListener: 1 38235 }); 38236 var Socket2 = class extends Emitter { 38237 constructor(io, nsp, opts) { 38238 super(); 38239 this.connected = false; 38240 this.recovered = false; 38241 this.receiveBuffer = []; 38242 this.sendBuffer = []; 38243 this._queue = []; 38244 this._queueSeq = 0; 38245 this.ids = 0; 38246 this.acks = {}; 38247 this.flags = {}; 38248 this.io = io; 38249 this.nsp = nsp; 38250 if (opts && opts.auth) { 38251 this.auth = opts.auth; 38252 } 38253 this._opts = Object.assign({}, opts); 38254 if (this.io._autoConnect) 38255 this.open(); 38256 } 38257 get disconnected() { 38258 return !this.connected; 38259 } 38260 subEvents() { 38261 if (this.subs) 38262 return; 38263 const io = this.io; 38264 this.subs = [ 38265 on(io, "open", this.onopen.bind(this)), 38266 on(io, "packet", this.onpacket.bind(this)), 38267 on(io, "error", this.onerror.bind(this)), 38268 on(io, "close", this.onclose.bind(this)) 38269 ]; 38270 } 38271 get active() { 38272 return !!this.subs; 38273 } 38274 connect() { 38275 if (this.connected) 38276 return this; 38277 this.subEvents(); 38278 if (!this.io["_reconnecting"]) 38279 this.io.open(); 38280 if ("open" === this.io._readyState) 38281 this.onopen(); 38282 return this; 38283 } 38284 open() { 38285 return this.connect(); 38286 } 38287 send(...args) { 38288 args.unshift("message"); 38289 this.emit.apply(this, args); 38290 return this; 38291 } 38292 emit(ev, ...args) { 38293 if (RESERVED_EVENTS2.hasOwnProperty(ev)) { 38294 throw new Error('"' + ev.toString() + '" is a reserved event name'); 38295 } 38296 args.unshift(ev); 38297 if (this._opts.retries && !this.flags.fromQueue && !this.flags.volatile) { 38298 this._addToQueue(args); 38299 return this; 38300 } 38301 const packet = { 38302 type: PacketType.EVENT, 38303 data: args 38304 }; 38305 packet.options = {}; 38306 packet.options.compress = this.flags.compress !== false; 38307 if ("function" === typeof args[args.length - 1]) { 38308 const id = this.ids++; 38309 const ack = args.pop(); 38310 this._registerAckCallback(id, ack); 38311 packet.id = id; 38312 } 38313 const isTransportWritable = this.io.engine && this.io.engine.transport && this.io.engine.transport.writable; 38314 const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected); 38315 if (discardPacket) { 38316 } else if (this.connected) { 38317 this.notifyOutgoingListeners(packet); 38318 this.packet(packet); 38319 } else { 38320 this.sendBuffer.push(packet); 38321 } 38322 this.flags = {}; 38323 return this; 38324 } 38325 _registerAckCallback(id, ack) { 38326 var _a; 38327 const timeout = (_a = this.flags.timeout) !== null && _a !== void 0 ? _a : this._opts.ackTimeout; 38328 if (timeout === void 0) { 38329 this.acks[id] = ack; 38330 return; 38331 } 38332 const timer = this.io.setTimeoutFn(() => { 38333 delete this.acks[id]; 38334 for (let i2 = 0; i2 < this.sendBuffer.length; i2++) { 38335 if (this.sendBuffer[i2].id === id) { 38336 this.sendBuffer.splice(i2, 1); 38337 } 38338 } 38339 ack.call(this, new Error("operation has timed out")); 38340 }, timeout); 38341 this.acks[id] = (...args) => { 38342 this.io.clearTimeoutFn(timer); 38343 ack.apply(this, [null, ...args]); 38344 }; 38345 } 38346 emitWithAck(ev, ...args) { 38347 const withErr = this.flags.timeout !== void 0 || this._opts.ackTimeout !== void 0; 38348 return new Promise((resolve, reject) => { 38349 args.push((arg1, arg2) => { 38350 if (withErr) { 38351 return arg1 ? reject(arg1) : resolve(arg2); 38352 } else { 38353 return resolve(arg1); 38354 } 38355 }); 38356 this.emit(ev, ...args); 38357 }); 38358 } 38359 _addToQueue(args) { 38360 let ack; 38361 if (typeof args[args.length - 1] === "function") { 38362 ack = args.pop(); 38363 } 38364 const packet = { 38365 id: this._queueSeq++, 38366 tryCount: 0, 38367 pending: false, 38368 args, 38369 flags: Object.assign({ fromQueue: true }, this.flags) 38370 }; 38371 args.push((err, ...responseArgs) => { 38372 if (packet !== this._queue[0]) { 38373 return; 38374 } 38375 const hasError = err !== null; 38376 if (hasError) { 38377 if (packet.tryCount > this._opts.retries) { 38378 this._queue.shift(); 38379 if (ack) { 38380 ack(err); 38381 } 38382 } 38383 } else { 38384 this._queue.shift(); 38385 if (ack) { 38386 ack(null, ...responseArgs); 38387 } 38388 } 38389 packet.pending = false; 38390 return this._drainQueue(); 38391 }); 38392 this._queue.push(packet); 38393 this._drainQueue(); 38394 } 38395 _drainQueue(force = false) { 38396 if (!this.connected || this._queue.length === 0) { 38397 return; 38398 } 38399 const packet = this._queue[0]; 38400 if (packet.pending && !force) { 38401 return; 38402 } 38403 packet.pending = true; 38404 packet.tryCount++; 38405 this.flags = packet.flags; 38406 this.emit.apply(this, packet.args); 38407 } 38408 packet(packet) { 38409 packet.nsp = this.nsp; 38410 this.io._packet(packet); 38411 } 38412 onopen() { 38413 if (typeof this.auth == "function") { 38414 this.auth((data) => { 38415 this._sendConnectPacket(data); 38416 }); 38417 } else { 38418 this._sendConnectPacket(this.auth); 38419 } 38420 } 38421 _sendConnectPacket(data) { 38422 this.packet({ 38423 type: PacketType.CONNECT, 38424 data: this._pid ? Object.assign({ pid: this._pid, offset: this._lastOffset }, data) : data 38425 }); 38426 } 38427 onerror(err) { 38428 if (!this.connected) { 38429 this.emitReserved("connect_error", err); 38430 } 38431 } 38432 onclose(reason, description) { 38433 this.connected = false; 38434 delete this.id; 38435 this.emitReserved("disconnect", reason, description); 38436 } 38437 onpacket(packet) { 38438 const sameNamespace = packet.nsp === this.nsp; 38439 if (!sameNamespace) 38440 return; 38441 switch (packet.type) { 38442 case PacketType.CONNECT: 38443 if (packet.data && packet.data.sid) { 38444 this.onconnect(packet.data.sid, packet.data.pid); 38445 } else { 38446 this.emitReserved("connect_error", new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)")); 38447 } 38448 break; 38449 case PacketType.EVENT: 38450 case PacketType.BINARY_EVENT: 38451 this.onevent(packet); 38452 break; 38453 case PacketType.ACK: 38454 case PacketType.BINARY_ACK: 38455 this.onack(packet); 38456 break; 38457 case PacketType.DISCONNECT: 38458 this.ondisconnect(); 38459 break; 38460 case PacketType.CONNECT_ERROR: 38461 this.destroy(); 38462 const err = new Error(packet.data.message); 38463 err.data = packet.data.data; 38464 this.emitReserved("connect_error", err); 38465 break; 38466 } 38467 } 38468 onevent(packet) { 38469 const args = packet.data || []; 38470 if (null != packet.id) { 38471 args.push(this.ack(packet.id)); 38472 } 38473 if (this.connected) { 38474 this.emitEvent(args); 38475 } else { 38476 this.receiveBuffer.push(Object.freeze(args)); 38477 } 38478 } 38479 emitEvent(args) { 38480 if (this._anyListeners && this._anyListeners.length) { 38481 const listeners = this._anyListeners.slice(); 38482 for (const listener of listeners) { 38483 listener.apply(this, args); 38484 } 38485 } 38486 super.emit.apply(this, args); 38487 if (this._pid && args.length && typeof args[args.length - 1] === "string") { 38488 this._lastOffset = args[args.length - 1]; 38489 } 38490 } 38491 ack(id) { 38492 const self2 = this; 38493 let sent = false; 38494 return function(...args) { 38495 if (sent) 38496 return; 38497 sent = true; 38498 self2.packet({ 38499 type: PacketType.ACK, 38500 id, 38501 data: args 38502 }); 38503 }; 38504 } 38505 onack(packet) { 38506 const ack = this.acks[packet.id]; 38507 if ("function" === typeof ack) { 38508 ack.apply(this, packet.data); 38509 delete this.acks[packet.id]; 38510 } else { 38511 } 38512 } 38513 onconnect(id, pid) { 38514 this.id = id; 38515 this.recovered = pid && this._pid === pid; 38516 this._pid = pid; 38517 this.connected = true; 38518 this.emitBuffered(); 38519 this.emitReserved("connect"); 38520 this._drainQueue(true); 38521 } 38522 emitBuffered() { 38523 this.receiveBuffer.forEach((args) => this.emitEvent(args)); 38524 this.receiveBuffer = []; 38525 this.sendBuffer.forEach((packet) => { 38526 this.notifyOutgoingListeners(packet); 38527 this.packet(packet); 38528 }); 38529 this.sendBuffer = []; 38530 } 38531 ondisconnect() { 38532 this.destroy(); 38533 this.onclose("io server disconnect"); 38534 } 38535 destroy() { 38536 if (this.subs) { 38537 this.subs.forEach((subDestroy) => subDestroy()); 38538 this.subs = void 0; 38539 } 38540 this.io["_destroy"](this); 38541 } 38542 disconnect() { 38543 if (this.connected) { 38544 this.packet({ type: PacketType.DISCONNECT }); 38545 } 38546 this.destroy(); 38547 if (this.connected) { 38548 this.onclose("io client disconnect"); 38549 } 38550 return this; 38551 } 38552 close() { 38553 return this.disconnect(); 38554 } 38555 compress(compress) { 38556 this.flags.compress = compress; 38557 return this; 38558 } 38559 get volatile() { 38560 this.flags.volatile = true; 38561 return this; 38562 } 38563 timeout(timeout) { 38564 this.flags.timeout = timeout; 38565 return this; 38566 } 38567 onAny(listener) { 38568 this._anyListeners = this._anyListeners || []; 38569 this._anyListeners.push(listener); 38570 return this; 38571 } 38572 prependAny(listener) { 38573 this._anyListeners = this._anyListeners || []; 38574 this._anyListeners.unshift(listener); 38575 return this; 38576 } 38577 offAny(listener) { 38578 if (!this._anyListeners) { 38579 return this; 38580 } 38581 if (listener) { 38582 const listeners = this._anyListeners; 38583 for (let i2 = 0; i2 < listeners.length; i2++) { 38584 if (listener === listeners[i2]) { 38585 listeners.splice(i2, 1); 38586 return this; 38587 } 38588 } 38589 } else { 38590 this._anyListeners = []; 38591 } 38592 return this; 38593 } 38594 listenersAny() { 38595 return this._anyListeners || []; 38596 } 38597 onAnyOutgoing(listener) { 38598 this._anyOutgoingListeners = this._anyOutgoingListeners || []; 38599 this._anyOutgoingListeners.push(listener); 38600 return this; 38601 } 38602 prependAnyOutgoing(listener) { 38603 this._anyOutgoingListeners = this._anyOutgoingListeners || []; 38604 this._anyOutgoingListeners.unshift(listener); 38605 return this; 38606 } 38607 offAnyOutgoing(listener) { 38608 if (!this._anyOutgoingListeners) { 38609 return this; 38610 } 38611 if (listener) { 38612 const listeners = this._anyOutgoingListeners; 38613 for (let i2 = 0; i2 < listeners.length; i2++) { 38614 if (listener === listeners[i2]) { 38615 listeners.splice(i2, 1); 38616 return this; 38617 } 38618 } 38619 } else { 38620 this._anyOutgoingListeners = []; 38621 } 38622 return this; 38623 } 38624 listenersAnyOutgoing() { 38625 return this._anyOutgoingListeners || []; 38626 } 38627 notifyOutgoingListeners(packet) { 38628 if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) { 38629 const listeners = this._anyOutgoingListeners.slice(); 38630 for (const listener of listeners) { 38631 listener.apply(this, packet.data); 38632 } 38633 } 38634 } 38635 }; 38636 38637
vendor: 953 bytes, lines 38637-38668
38637// node_modules/socket.io-client/build/esm/contrib/backo2.js 38638 function Backoff(opts) { 38639 opts = opts || {}; 38640 this.ms = opts.min || 100; 38641 this.max = opts.max || 1e4; 38642 this.factor = opts.factor || 2; 38643 this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0; 38644 this.attempts = 0; 38645 } 38646 Backoff.prototype.duration = function() { 38647 var ms = this.ms * Math.pow(this.factor, this.attempts++); 38648 if (this.jitter) { 38649 var rand = Math.random(); 38650 var deviation = Math.floor(rand * this.jitter * ms); 38651 ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation; 38652 } 38653 return Math.min(ms, this.max) | 0; 38654 }; 38655 Backoff.prototype.reset = function() { 38656 this.attempts = 0; 38657 }; 38658 Backoff.prototype.setMin = function(min) { 38659 this.ms = min; 38660 }; 38661 Backoff.prototype.setMax = function(max) { 38662 this.max = max; 38663 }; 38664 Backoff.prototype.setJitter = function(jitter) { 38665 this.jitter = jitter; 38666 }; 38667 38668
vendor: 7,280 bytes, lines 38668-38912
38668// node_modules/socket.io-client/build/esm/manager.js 38669 var Manager = class extends Emitter { 38670 constructor(uri, opts) { 38671 var _a; 38672 super(); 38673 this.nsps = {}; 38674 this.subs = []; 38675 if (uri && "object" === typeof uri) { 38676 opts = uri; 38677 uri = void 0; 38678 } 38679 opts = opts || {}; 38680 opts.path = opts.path || "/socket.io"; 38681 this.opts = opts; 38682 installTimerFunctions(this, opts); 38683 this.reconnection(opts.reconnection !== false); 38684 this.reconnectionAttempts(opts.reconnectionAttempts || Infinity); 38685 this.reconnectionDelay(opts.reconnectionDelay || 1e3); 38686 this.reconnectionDelayMax(opts.reconnectionDelayMax || 5e3); 38687 this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5); 38688 this.backoff = new Backoff({ 38689 min: this.reconnectionDelay(), 38690 max: this.reconnectionDelayMax(), 38691 jitter: this.randomizationFactor() 38692 }); 38693 this.timeout(null == opts.timeout ? 2e4 : opts.timeout); 38694 this._readyState = "closed"; 38695 this.uri = uri; 38696 const _parser = opts.parser || esm_exports; 38697 this.encoder = new _parser.Encoder(); 38698 this.decoder = new _parser.Decoder(); 38699 this._autoConnect = opts.autoConnect !== false; 38700 if (this._autoConnect) 38701 this.open(); 38702 } 38703 reconnection(v) { 38704 if (!arguments.length) 38705 return this._reconnection; 38706 this._reconnection = !!v; 38707 return this; 38708 } 38709 reconnectionAttempts(v) { 38710 if (v === void 0) 38711 return this._reconnectionAttempts; 38712 this._reconnectionAttempts = v; 38713 return this; 38714 } 38715 reconnectionDelay(v) { 38716 var _a; 38717 if (v === void 0) 38718 return this._reconnectionDelay; 38719 this._reconnectionDelay = v; 38720 (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v); 38721 return this; 38722 } 38723 randomizationFactor(v) { 38724 var _a; 38725 if (v === void 0) 38726 return this._randomizationFactor; 38727 this._randomizationFactor = v; 38728 (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v); 38729 return this; 38730 } 38731 reconnectionDelayMax(v) { 38732 var _a; 38733 if (v === void 0) 38734 return this._reconnectionDelayMax; 38735 this._reconnectionDelayMax = v; 38736 (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v); 38737 return this; 38738 } 38739 timeout(v) { 38740 if (!arguments.length) 38741 return this._timeout; 38742 this._timeout = v; 38743 return this; 38744 } 38745 maybeReconnectOnOpen() { 38746 if (!this._reconnecting && this._reconnection && this.backoff.attempts === 0) { 38747 this.reconnect(); 38748 } 38749 } 38750 open(fn) { 38751 if (~this._readyState.indexOf("open")) 38752 return this; 38753 this.engine = new Socket(this.uri, this.opts); 38754 const socket = this.engine; 38755 const self2 = this; 38756 this._readyState = "opening"; 38757 this.skipReconnect = false; 38758 const openSubDestroy = on(socket, "open", function() { 38759 self2.onopen(); 38760 fn && fn(); 38761 }); 38762 const onError = (err) => { 38763 this.cleanup(); 38764 this._readyState = "closed"; 38765 this.emitReserved("error", err); 38766 if (fn) { 38767 fn(err); 38768 } else { 38769 this.maybeReconnectOnOpen(); 38770 } 38771 }; 38772 const errorSub = on(socket, "error", onError); 38773 if (false !== this._timeout) { 38774 const timeout = this._timeout; 38775 const timer = this.setTimeoutFn(() => { 38776 openSubDestroy(); 38777 onError(new Error("timeout")); 38778 socket.close(); 38779 }, timeout); 38780 if (this.opts.autoUnref) { 38781 timer.unref(); 38782 } 38783 this.subs.push(() => { 38784 this.clearTimeoutFn(timer); 38785 }); 38786 } 38787 this.subs.push(openSubDestroy); 38788 this.subs.push(errorSub); 38789 return this; 38790 } 38791 connect(fn) { 38792 return this.open(fn); 38793 } 38794 onopen() { 38795 this.cleanup(); 38796 this._readyState = "open"; 38797 this.emitReserved("open"); 38798 const socket = this.engine; 38799 this.subs.push(on(socket, "ping", this.onping.bind(this)), on(socket, "data", this.ondata.bind(this)), on(socket, "error", this.onerror.bind(this)), on(socket, "close", this.onclose.bind(this)), on(this.decoder, "decoded", this.ondecoded.bind(this))); 38800 } 38801 onping() { 38802 this.emitReserved("ping"); 38803 } 38804 ondata(data) { 38805 try { 38806 this.decoder.add(data); 38807 } catch (e) { 38808 this.onclose("parse error", e); 38809 } 38810 } 38811 ondecoded(packet) { 38812 nextTick(() => { 38813 this.emitReserved("packet", packet); 38814 }, this.setTimeoutFn); 38815 } 38816 onerror(err) { 38817 this.emitReserved("error", err); 38818 } 38819 socket(nsp, opts) { 38820 let socket = this.nsps[nsp]; 38821 if (!socket) { 38822 socket = new Socket2(this, nsp, opts); 38823 this.nsps[nsp] = socket; 38824 } else if (this._autoConnect && !socket.active) { 38825 socket.connect(); 38826 } 38827 return socket; 38828 } 38829 _destroy(socket) { 38830 const nsps = Object.keys(this.nsps); 38831 for (const nsp of nsps) { 38832 const socket2 = this.nsps[nsp]; 38833 if (socket2.active) { 38834 return; 38835 } 38836 } 38837 this._close(); 38838 } 38839 _packet(packet) { 38840 const encodedPackets = this.encoder.encode(packet); 38841 for (let i2 = 0; i2 < encodedPackets.length; i2++) { 38842 this.engine.write(encodedPackets[i2], packet.options); 38843 } 38844 } 38845 cleanup() { 38846 this.subs.forEach((subDestroy) => subDestroy()); 38847 this.subs.length = 0; 38848 this.decoder.destroy(); 38849 } 38850 _close() { 38851 this.skipReconnect = true; 38852 this._reconnecting = false; 38853 this.onclose("forced close"); 38854 if (this.engine) 38855 this.engine.close(); 38856 } 38857 disconnect() { 38858 return this._close(); 38859 } 38860 onclose(reason, description) { 38861 this.cleanup(); 38862 this.backoff.reset(); 38863 this._readyState = "closed"; 38864 this.emitReserved("close", reason, description); 38865 if (this._reconnection && !this.skipReconnect) { 38866 this.reconnect(); 38867 } 38868 } 38869 reconnect() { 38870 if (this._reconnecting || this.skipReconnect) 38871 return this; 38872 const self2 = this; 38873 if (this.backoff.attempts >= this._reconnectionAttempts) { 38874 this.backoff.reset(); 38875 this.emitReserved("reconnect_failed"); 38876 this._reconnecting = false; 38877 } else { 38878 const delay = this.backoff.duration(); 38879 this._reconnecting = true; 38880 const timer = this.setTimeoutFn(() => { 38881 if (self2.skipReconnect) 38882 return; 38883 this.emitReserved("reconnect_attempt", self2.backoff.attempts); 38884 if (self2.skipReconnect) 38885 return; 38886 self2.open((err) => { 38887 if (err) { 38888 self2._reconnecting = false; 38889 self2.reconnect(); 38890 this.emitReserved("reconnect_error", err); 38891 } else { 38892 self2.onreconnect(); 38893 } 38894 }); 38895 }, delay); 38896 if (this.opts.autoUnref) { 38897 timer.unref(); 38898 } 38899 this.subs.push(() => { 38900 this.clearTimeoutFn(timer); 38901 }); 38902 } 38903 } 38904 onreconnect() { 38905 const attempt = this.backoff.attempts; 38906 this._reconnecting = false; 38907 this.backoff.reset(); 38908 this.emitReserved("reconnect", attempt); 38909 } 38910 }; 38911 38912
vendor: 963 bytes, lines 38912-38947
38912// node_modules/socket.io-client/build/esm/index.js 38913 var cache = {}; 38914 function lookup2(uri, opts) { 38915 if (typeof uri === "object") { 38916 opts = uri; 38917 uri = void 0; 38918 } 38919 opts = opts || {}; 38920 const parsed = url(uri, opts.path || "/socket.io"); 38921 const source = parsed.source; 38922 const id = parsed.id; 38923 const path = parsed.path; 38924 const sameNamespace = cache[id] && path in cache[id]["nsps"]; 38925 const newConnection = opts.forceNew || opts["force new connection"] || false === opts.multiplex || sameNamespace; 38926 let io; 38927 if (newConnection) { 38928 io = new Manager(source, opts); 38929 } else { 38930 if (!cache[id]) { 38931 cache[id] = new Manager(source, opts); 38932 } 38933 io = cache[id]; 38934 } 38935 if (parsed.query && !opts.query) { 38936 opts.query = parsed.queryKey; 38937 } 38938 return io.socket(parsed.path, opts); 38939 } 38940 Object.assign(lookup2, { 38941 Manager, 38942 Socket: Socket2, 38943 io: lookup2, 38944 connect: lookup2 38945 }); 38946 38947
38947// frappe/public/js/frappe/socketio_client.js 38948 frappe.provide("frappe.realtime"); 38949 var RealTimeClient = class { 38950 constructor() { 38951 this.open_tasks = {}; 38952 this.open_docs = /* @__PURE__ */ new Set(); 38953 } 38954 on(event, callback) { 38955 if (this.socket) { 38956 this.connect(); 38957 this.socket.on(event, callback); 38958 } 38959 } 38960 off(event, callback) { 38961 if (this.socket) { 38962 this.socket.off(event, callback); 38963 } 38964 } 38965 connect() { 38966 if (this.lazy_connect) { 38967 this.socket.connect(); 38968 this.lazy_connect = false; 38969 } 38970 } 38971 emit(event, ...args) { 38972 this.connect(); 38973 this.socket.emit(event, ...args); 38974 } 38975 init(port = 9e3, lazy_connect = false) { 38976 if (frappe.boot.disable_async) { 38977 return; 38978 } 38979 if (this.socket) { 38980 return; 38981 } 38982 this.lazy_connect = lazy_connect; 38983 let me = this; 38984 if (window.location.protocol == "https:") { 38985 this.socket = lookup2(this.get_host(port), { 38986 secure: true, 38987 withCredentials: true, 38988 reconnectionAttempts: 3, 38989 autoConnect: !lazy_connect 38990 }); 38991 } else if (window.location.protocol == "http:") { 38992 this.socket = lookup2(this.get_host(port), { 38993 withCredentials: true, 38994 reconnectionAttempts: 3, 38995 autoConnect: !lazy_connect 38996 }); 38997 } 38998 if (!this.socket) { 38999 console.log("Unable to connect to " + this.get_host(port)); 39000 return; 39001 } 39002 this.socket.on("connect_error", function(err) { 39003 console.error("Error connecting to socket.io:", err.message); 39004 }); 39005 this.socket.on("msgprint", function(message) { 39006 frappe.msgprint(message); 39007 }); 39008 this.socket.on("progress", function(data) { 39009 if (data.progress) { 39010 data.percent = flt(data.progress[0]) / data.progress[1] * 100; 39011 } 39012 if (data.percent) { 39013 frappe.show_progress( 39014 data.title || __("Progress"), 39015 data.percent, 39016 100, 39017 data.description, 39018 true 39019 ); 39020 } 39021 }); 39022 this.setup_listeners(); 39023 $(document).on("form-load form-rename", function(e, frm) { 39024 if (!frm.doc || frm.is_new()) { 39025 return; 39026 } 39027 me.doc_subscribe(frm.doctype, frm.docname); 39028 }); 39029 $(document).on("form-refresh", function(e, frm) { 39030 if (!frm.doc || frm.is_new()) { 39031 return; 39032 } 39033 me.doc_open(frm.doctype, frm.docname); 39034 }); 39035 $(document).on("form-unload", function(e, frm) { 39036 if (!frm.doc || frm.is_new()) { 39037 return; 39038 } 39039 me.doc_close(frm.doctype, frm.docname); 39040 }); 39041 } 39042 get_host(port = 9e3) { 39043 let host = window.location.origin; 39044 if (window.dev_server) { 39045 let parts2 = host.split(":"); 39046 port = frappe.boot.socketio_port || port.toString() || "9000"; 39047 if (parts2.length > 2) { 39048 host = parts2[0] + ":" + parts2[1]; 39049 } 39050 host = host + ":" + port; 39051 } 39052 return host + `/${frappe.boot.sitename}`; 39053 } 39054 subscribe(task_id, opts) { 39055 this.emit("task_subscribe", task_id); 39056 this.emit("progress_subscribe", task_id); 39057 this.open_tasks[task_id] = opts; 39058 } 39059 task_subscribe(task_id) { 39060 this.emit("task_subscribe", task_id); 39061 } 39062 task_unsubscribe(task_id) { 39063 this.emit("task_unsubscribe", task_id); 39064 } 39065 doctype_subscribe(doctype) { 39066 this.emit("doctype_subscribe", doctype); 39067 } 39068 doctype_unsubscribe(doctype) { 39069 this.emit("doctype_unsubscribe", doctype); 39070 } 39071 doc_subscribe(doctype, docname) { 39072 if (frappe.flags.doc_subscribe) { 39073 console.log("throttled"); 39074 return; 39075 } 39076 if (this.open_docs.has(`${doctype}:${docname}`)) { 39077 return; 39078 } 39079 frappe.flags.doc_subscribe = true; 39080 setTimeout(function() { 39081 frappe.flags.doc_subscribe = false; 39082 }, 1e3); 39083 this.emit("doc_subscribe", doctype, docname); 39084 this.open_docs.add(`${doctype}:${docname}`); 39085 } 39086 doc_unsubscribe(doctype, docname) {
39087 this.emit("doc_unsubscribe", doctype, docname); 39088 return this.open_docs.delete(`${doctype}:${docname}`); 39089 } 39090 doc_open(doctype, docname) { 39091 this.emit("doc_open", doctype, docname); 39092 } 39093 doc_close(doctype, docname) { 39094 this.emit("doc_close", doctype, docname); 39095 } 39096 setup_listeners() { 39097 this.socket.on("task_status_change", function(data) { 39098 this.process_response(data, data.status.toLowerCase()); 39099 }); 39100 this.socket.on("task_progress", function(data) { 39101 this.process_response(data, "progress"); 39102 }); 39103 } 39104 process_response(data, method) { 39105 if (!data) { 39106 return; 39107 } 39108 let opts = this.open_tasks[data.task_id]; 39109 if (opts[method]) { 39110 opts[method](data); 39111 } 39112 if (method === "success") { 39113 if (opts.callback) 39114 opts.callback(data); 39115 } 39116 frappe.request.cleanup(opts, data); 39117 if (opts.always) { 39118 opts.always(data); 39119 } 39120 if (data.status_code && data.status_code > 400 && opts.error) { 39121 opts.error(data); 39122 } 39123 } 39124 publish(event, message) { 39125 if (this.socket) { 39126 this.emit(event, message); 39127 } 39128 } 39129 }; 39130 frappe.realtime = new RealTimeClient(); 39131 frappe.socketio = frappe.realtime; 39132})(); 39133/* @preserve 39134 * Leaflet 1.2.0, a JS library for interactive maps. http://leafletjs.com 39135 * (c) 2010-2017 Vladimir Agafonkin, (c) 2010-2011 CloudMade 39136 */ 39137/*! 39138 * Bootstrap alert.js v4.6.2 (https://getbootstrap.com/) 39139 * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 39140 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 39141 */ 39142/*! 39143 * Bootstrap button.js v4.6.2 (https://getbootstrap.com/) 39144 * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 39145 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 39146 */ 39147/*! 39148 * Bootstrap carousel.js v4.6.2 (https://getbootstrap.com/) 39149 * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 39150 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 39151 */ 39152/*! 39153 * Bootstrap collapse.js v4.6.2 (https://getbootstrap.com/) 39154 * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 39155 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 39156 */ 39157/*! 39158 * Bootstrap dropdown.js v4.6.2 (https://getbootstrap.com/) 39159 * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 39160 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 39161 */ 39162/*! 39163 * Bootstrap modal.js v4.6.2 (https://getbootstrap.com/) 39164 * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 39165 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 39166 */ 39167/*! 39168 * Bootstrap popover.js v4.6.2 (https://getbootstrap.com/) 39169 * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 39170 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 39171 */ 39172/*! 39173 * Bootstrap scrollspy.js v4.6.2 (https://getbootstrap.com/) 39174 * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 39175 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 39176 */ 39177/*! 39178 * Bootstrap tab.js v4.6.2 (https://getbootstrap.com/) 39179 * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 39180 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 39181 */ 39182/*! 39183 * Bootstrap toast.js v4.6.2 (https://getbootstrap.com/) 39184 * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 39185 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 39186 */ 39187/*! 39188 * Bootstrap tooltip.js v4.6.2 (https://getbootstrap.com/) 39189 * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 39190 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 39191 */ 39192/*! 39193 * Bootstrap util.js v4.6.2 (https://getbootstrap.com/) 39194 * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 39195 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 39196 */ 39197/*! 39198 * Determine if an object is a Buffer 39199 * 39200 * @author Feross Aboukhadijeh <https://feross.org> 39201 * @license MIT 39202 */ 39203/*! 39204 * jQuery JavaScript Library v3.7.0 39205 * https://jquery.com/ 39206 * 39207 * Copyright OpenJS Foundation and other contributors 39208 * Released under the MIT license 39209 * https://jquery.org/license 39210 * 39211 * Date: 2023-05-11T18:29Z 39212 */ 39213/*! 39214Copyright (c) 2016 Dominik Moritz 39215 39216This file is part of the leaflet locate control. It is licensed under the MIT license. 39217You can find the project at: https://github.com/domoritz/leaflet-locatecontrol 39218*/ 39219/*! Sortable 1.15.0 - MIT | git://github.com/SortableJS/Sortable.git */ 39220/**! 39221 * @fileOverview Kickass library to create and place poppers near their reference elements. 39222 * @version 1.16.1 39223 * @license 39224 * Copyright (c) 2016 Federico Zivolo and contributors 39225 * 39226 * Permission is hereby granted, free of charge, to any person obtaining a copy 39227 * of this software and associated documentation files (the "Software"), to deal 39228 * in the Software without restriction, including without limitation the rights 39229 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 39230 * copies of the Software, and to permit persons to whom the Software is 39231 * furnished to do so, subject to the following conditions: 39232 * 39233 * The above copyright notice and this permission notice shall be included in all 39234 * copies or substantial portions of the Software. 39235 * 39236 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 39237 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 39238 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 39239 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 39240 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 39241 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 39242 * SOFTWARE. 39243 */ 39244//! authors : Tim Wood, Iskren Chernev, Moment.js contributors 39245//! license : MIT 39246//! moment.js 39247//! momentjs.com 39248//! version : 2.29.4 39249//# sourceMappingURL=frappe-web.bundle.M4ZMZZX7.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.