PageSourceSearch

https://www.billit.eu/vue/client/billit-client-production.js

js billit.eu collected 2026-09-28 07:29:41 UTC 359,456 bytes, 11,671 lines download raw bytes

1(function(global2, factory) {
2  typeof exports === "object" && typeof module !== "undefined" ? factory(exports) : typeof define === "function" && define.amd ? define(["exports"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, factory(global2.components = {}));
3})(this, function(exports2) {
4  "use strict";
5  /**
6  * @vue/shared v3.5.12
7  * (c) 2018-present Yuxi (Evan) You and Vue contributors
8  * @license MIT
9  **/
10  /*! #__NO_SIDE_EFFECTS__ */
11  // @__NO_SIDE_EFFECTS__
12  function makeMap(str) {
13    const map = /* @__PURE__ */ Object.create(null);
14    for (const key of str.split(","))
15      map[key] = 1;
16    return (val) => val in map;
17  }
18  const EMPTY_OBJ = {};
19  const EMPTY_ARR = [];
20  const NOOP = () => {
21  };
22  const NO = () => false;
23  const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter
24  (key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);
25  const isModelListener = (key) => key.startsWith("onUpdate:");
26  const extend = Object.assign;
27  const remove = (arr, el) => {
28    const i = arr.indexOf(el);
29    if (i > -1) {
30      arr.splice(i, 1);
31    }
32  };
33  const hasOwnProperty$1 = Object.prototype.hasOwnProperty;
34  const hasOwn = (val, key) => hasOwnProperty$1.call(val, key);
35  const isArray = Array.isArray;
36  const isMap = (val) => toTypeString(val) === "[object Map]";
37  const isSet = (val) => toTypeString(val) === "[object Set]";
38  const isDate = (val) => toTypeString(val) === "[object Date]";
39  const isRegExp = (val) => toTypeString(val) === "[object RegExp]";
40  const isFunction = (val) => typeof val === "function";
41  const isString = (val) => typeof val === "string";
42  const isSymbol = (val) => typeof val === "symbol";
43  const isObject = (val) => val !== null && typeof val === "object";
44  const isPromise = (val) => {
45    return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);
46  };
47  const objectToString = Object.prototype.toString;
48  const toTypeString = (value) => objectToString.call(value);
49  const toRawType = (value) => {
50    return toTypeString(value).slice(8, -1);
51  };
52  const isPlainObject = (val) => toTypeString(val) === "[object Object]";
53  const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key;
54  const isReservedProp = /* @__PURE__ */ makeMap(
55    // the leading comma is intentional so empty string "" is also included
56    ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"
57  );
58  const cacheStringFunction = (fn) => {
59    const cache = /* @__PURE__ */ Object.create(null);
60    return (str) => {
61      const hit = cache[str];
62      return hit || (cache[str] = fn(str));
63    };
64  };
65  const camelizeRE = /-(\w)/g;
66  const camelize = cacheStringFunction(
67    (str) => {
68      return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : "");
69    }
70  );
71  const hyphenateRE = /\B([A-Z])/g;
72  const hyphenate = cacheStringFunction(
73    (str) => str.replace(hyphenateRE, "-$1").toLowerCase()
74  );
75  const capitalize = cacheStringFunction((str) => {
76    return str.charAt(0).toUpperCase() + str.slice(1);
77  });
78  const toHandlerKey = cacheStringFunction(
79    (str) => {
80      const s = str ? `on${capitalize(str)}` : ``;
81      return s;
82    }
83  );
84  const hasChanged = (value, oldValue) => !Object.is(value, oldValue);
85  const invokeArrayFns = (fns, ...arg) => {
86    for (let i = 0; i < fns.length; i++) {
87      fns[i](...arg);
88    }
89  };
90  const def = (obj, key, value, writable = false) => {
91    Object.defineProperty(obj, key, {
92      configurable: true,
93      enumerable: false,
94      writable,
95      value
96    });
97  };
98  const looseToNumber = (val) => {
99    const n = parseFloat(val);
100    return isNaN(n) ? val : n;
101  };
102  const toNumber = (val) => {
103    const n = isString(val) ? Number(val) : NaN;
104    return isNaN(n) ? val : n;
105  };
106  let _globalThis;
107  const getGlobalThis = () => {
108    return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {});
109  };
110  const GLOBALS_ALLOWED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decode
110URI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol";
111  const isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);
112  function normalizeStyle(value) {
113    if (isArray(value)) {
114      const res = {};
115      for (let i = 0; i < value.length; i++) {
116        const item = value[i];
117        const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);
118        if (normalized) {
119          for (const key in normalized) {
120            res[key] = normalized[key];
121          }
122        }
123      }
124      return res;
125    } else if (isString(value) || isObject(value)) {
126      return value;
127    }
128  }
129  const listDelimiterRE = /;(?![^(]*\))/g;
130  const propertyDelimiterRE = /:([^]+)/;
131  const styleCommentRE = /\/\*[^]*?\*\//g;
132  function parseStringStyle(cssText) {
133    const ret = {};
134    cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => {
135      if (item) {
136        const tmp = item.split(propertyDelimiterRE);
137        tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
138      }
139    });
140    return ret;
141  }
142  function stringifyStyle(styles) {
143    let ret = "";
144    if (!styles || isString(styles)) {
145      return ret;
146    }
147    for (const key in styles) {
148      const value = styles[key];
149      if (isString(value) || typeof value === "number") {
150        const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);
151        ret += `${normalizedKey}:${value};`;
152      }
153    }
154    return ret;
155  }
156  function normalizeClass(value) {
157    let res = "";
158    if (isString(value)) {
159      res = value;
160    } else if (isArray(value)) {
161      for (let i = 0; i < value.length; i++) {
162        const normalized = normalizeClass(value[i]);
163        if (normalized) {
164          res += normalized + " ";
165        }
166      }
167    } else if (isObject(value)) {
168      for (const name in value) {
169        if (value[name]) {
170          res += name + " ";
171        }
172      }
173    }
174    return res.trim();
175  }
176  function normalizeProps(props) {
177    if (!props)
178      return null;
179    let { class: klass, style } = props;
180    if (klass && !isString(klass)) {
181      props.class = normalizeClass(klass);
182    }
183    if (style) {
184      props.style = normalizeStyle(style);
185    }
186    return props;
187  }
188  const SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view";
189  const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr";
190  const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);
191  const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);
192  const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
193  const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);
194  const isBooleanAttr = /* @__PURE__ */ makeMap(
195    specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`
196  );
197  function includeBooleanAttr(value) {
198    return !!value || value === "";
199  }
200  const unsafeAttrCharRE = /[>/="'\u0009\u000a\u000c\u0020]/;
201  const attrValidationCache = {};
202  function isSSRSafeAttrName(name) {
203    if (attrValidationCache.hasOwnProperty(name)) {
204      return attrValidationCache[name];
205    }
206    const isUnsafe = unsafeAttrCharRE.test(name);
207    if (isUnsafe) {
208      console.error(`unsafe attribute name: ${name}`);
209    }
210    return attrValidationCache[name] = !isUnsafe;
211  }
212  const propsToAttrMap = {
213    acceptCharset: "accept-charset",
214    className: "class",
215    htmlFor: "for",
216    httpEquiv: "http-equiv"
217  };
218  function isRenderableAttrValue(value) {
219    if (value == null) {
220      return false;
vendor: 4,355 bytes, lines 221-369
221    }
222    const type = typeof value;
223    return type === "string" || type === "number" || type === "boolean";
224  }
225  const escapeRE = /["'&<>]/;
226  function escapeHtml(string) {
227    const str = "" + string;
228    const match = escapeRE.exec(str);
229    if (!match) {
230      return str;
231    }
232    let html = "";
233    let escaped;
234    let index2;
235    let lastIndex = 0;
236    for (index2 = match.index; index2 < str.length; index2++) {
237      switch (str.charCodeAt(index2)) {
238        case 34:
239          escaped = "&quot;";
240          break;
241        case 38:
242          escaped = "&amp;";
243          break;
244        case 39:
245          escaped = "&#39;";
246          break;
247        case 60:
248          escaped = "&lt;";
249          break;
250        case 62:
251          escaped = "&gt;";
252          break;
253        default:
254          continue;
255      }
256      if (lastIndex !== index2) {
257        html += str.slice(lastIndex, index2);
258      }
259      lastIndex = index2 + 1;
260      html += escaped;
261    }
262    return lastIndex !== index2 ? html + str.slice(lastIndex, index2) : html;
263  }
264  const commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;
265  function escapeHtmlComment(src) {
266    return src.replace(commentStripRE, "");
267  }
268  function looseCompareArrays(a, b) {
269    if (a.length !== b.length)
270      return false;
271    let equal = true;
272    for (let i = 0; equal && i < a.length; i++) {
273      equal = looseEqual(a[i], b[i]);
274    }
275    return equal;
276  }
277  function looseEqual(a, b) {
278    if (a === b)
279      return true;
280    let aValidType = isDate(a);
281    let bValidType = isDate(b);
282    if (aValidType || bValidType) {
283      return aValidType && bValidType ? a.getTime() === b.getTime() : false;
284    }
285    aValidType = isSymbol(a);
286    bValidType = isSymbol(b);
287    if (aValidType || bValidType) {
288      return a === b;
289    }
290    aValidType = isArray(a);
291    bValidType = isArray(b);
292    if (aValidType || bValidType) {
293      return aValidType && bValidType ? looseCompareArrays(a, b) : false;
294    }
295    aValidType = isObject(a);
296    bValidType = isObject(b);
297    if (aValidType || bValidType) {
298      if (!aValidType || !bValidType) {
299        return false;
300      }
301      const aKeysCount = Object.keys(a).length;
302      const bKeysCount = Object.keys(b).length;
303      if (aKeysCount !== bKeysCount) {
304        return false;
305      }
306      for (const key in a) {
307        const aHasKey = a.hasOwnProperty(key);
308        const bHasKey = b.hasOwnProperty(key);
309        if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {
310          return false;
311        }
312      }
313    }
314    return String(a) === String(b);
315  }
316  function looseIndexOf(arr, val) {
317    return arr.findIndex((item) => looseEqual(item, val));
318  }
319  const isRef$1 = (val) => {
320    return !!(val && val["__v_isRef"] === true);
321  };
322  const toDisplayString = (val) => {
323    return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef$1(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);
324  };
325  const replacer = (_key, val) => {
326    if (isRef$1(val)) {
327      return replacer(_key, val.value);
328    } else if (isMap(val)) {
329      return {
330        [`Map(${val.size})`]: [...val.entries()].reduce(
331          (entries, [key, val2], i) => {
332            entries[stringifySymbol(key, i) + " =>"] = val2;
333            return entries;
334          },
335          {}
336        )
337      };
338    } else if (isSet(val)) {
339      return {
340        [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))
341      };
342    } else if (isSymbol(val)) {
343      return stringifySymbol(val);
344    } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {
345      return String(val);
346    }
347    return val;
348  };
349  const stringifySymbol = (v, i = "") => {
350    var _a;
351    return (
352      // Symbol.description in es2019+ so we need to cast here to pass
353      // the lib: es2016 check
354      isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v
355    );
356  };
357  /**
358  * @vue/reactivity v3.5.12
359  * (c) 2018-present Yuxi (Evan) You and Vue contributors
360  * @license MIT
361  **/
362  let activeEffectScope;
363  class EffectScope {
364    constructor(detached = false) {
365      this.detached = detached;
366      this._active = true;
367      this.effects = [];
368      this.cleanups = [];
369      this._isPaused = false;
370      this.parent = activeEffectScope;
371      if (!detached && activeEffectScope) {
372        this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(
373          this
374        ) - 1;
375      }
376    }
377    get active() {
378      return this._active;
379    }
380    pause() {
381      if (this._active) {
382        this._isPaused = true;
383        let i, l;
384        if (this.scopes) {
385          for (i = 0, l = this.scopes.length; i < l; i++) {
386            this.scopes[i].pause();
387          }
388        }
389        for (i = 0, l = this.effects.length; i < l; i++) {
390          this.effects[i].pause();
391        }
392      }
393    }
394    /**
395     * Resumes the effect scope, including all child scopes and effects.
396     */
397    resume() {
398      if (this._active) {
399        if (this._isPaused) {
400          this._isPaused = false;
401          let i, l;
402          if (this.scopes) {
403            for (i = 0, l = this.scopes.length; i < l; i++) {
404              this.scopes[i].resume();
405            }
406          }
407          for (i = 0, l = this.effects.length; i < l; i++) {
408            this.effects[i].resume();
409          }
410        }
411      }
412    }
413    run(fn) {
414      if (this._active) {
415        const currentEffectScope = activeEffectScope;
416        try {
417          activeEffectScope = this;
418          return fn();
419        } finally {
420          activeEffectScope = currentEffectScope;
421        }
422      }
423    }
424    /**
425     * This should only be called on non-detached scopes
426     * @internal
427     */
428    on() {
429      activeEffectScope = this;
430    }
431    /**
432     * This should only be called on non-detached scopes
433     * @internal
434     */
435    off() {
436      activeEffectScope = this.parent;
437    }
438    stop(fromParent) {
439      if (this._active) {
440        let i, l;
441        for (i = 0, l = this.effects.length; i < l; i++) {
442          this.effects[i].stop();
443        }
444        for (i = 0, l = this.cleanups.length; i < l; i++) {
445          this.cleanups[i]();
446        }
447        if (this.scopes) {
448          for (i = 0, l = this.scopes.length; i < l; i++) {
449            this.scopes[i].stop(true);
450          }
451        }
452        if (!this.detached && this.parent && !fromParent) {
453          const last = this.parent.scopes.pop();
454          if (last && last !== this) {
455            this.parent.scopes[this.index] = last;
456            last.index = this.index;
457          }
458        }
459        this.parent = void 0;
460        this._active = false;
461      }
462    }
463  }
464  function effectScope(detached) {
465    return new EffectScope(detached);
466  }
467  function getCurrentScope() {
468    return activeEffectScope;
469  }
470  function onScopeDispose(fn, failSilently = false) {
471    if (activeEffectScope) {
472      activeEffectScope.cleanups.push(fn);
473    }
474  }
475  let activeSub;
476  const pausedQueueEffects = /* @__PURE__ */ new WeakSet();
477  class ReactiveEffect {
478    constructor(fn) {
479      this.fn = fn;
480      this.deps = void 0;
481      this.depsTail = void 0;
482      this.flags = 1 | 4;
483      this.next = void 0;
484      this.cleanup = void 0;
485      this.scheduler = void 0;
486      if (activeEffectScope && activeEffectScope.active) {
487        activeEffectScope.effects.push(this);
488      }
489    }
490    pause() {
491      this.flags |= 64;
492    }
493    resume() {
494      if (this.flags & 64) {
495        this.flags &= ~64;
496        if (pausedQueueEffects.has(this)) {
497          pausedQueueEffects.delete(this);
498          this.trigger();
499        }
500      }
501    }
502    /**
503     * @internal
504     */
505    notify() {
506      if (this.flags & 2 && !(this.flags & 32)) {
507        return;
508      }
509      if (!(this.flags & 8)) {
510        batch(this);
511      }
512    }
513    run() {
514      if (!(this.flags & 1)) {
515        return this.fn();
516      }
517      this.flags |= 2;
518      cleanupEffect(this);
519      prepareDeps(this);
520      const prevEffect = activeSub;
521      const prevShouldTrack = shouldTrack;
522      activeSub = this;
523      shouldTrack = true;
524      try {
525        return this.fn();
526      } finally {
527        cleanupDeps(this);
528        activeSub = prevEffect;
529        shouldTrack = prevShouldTrack;
530        this.flags &= ~2;
531      }
532    }
533    stop() {
534      if (this.flags & 1) {
535        for (let link = this.deps; link; link = link.nextDep) {
536          removeSub(link);
537        }
538        this.deps = this.depsTail = void 0;
539        cleanupEffect(this);
540        this.onStop && this.onStop();
541        this.flags &= ~1;
542      }
543    }
544    trigger() {
545      if (this.flags & 64) {
546        pausedQueueEffects.add(this);
547      } else if (this.scheduler) {
548        this.scheduler();
549      } else {
550        this.runIfDirty();
551      }
552    }
553    /**
554     * @internal
555     */
556    runIfDirty() {
557      if (isDirty(this)) {
558        this.run();
559      }
560    }
561    get dirty() {
562      return isDirty(this);
563    }
564  }
565  let batchDepth = 0;
566  let batchedSub;
567  let batchedComputed;
568  function batch(sub, isComputed = false) {
569    sub.flags |= 8;
570    if (isComputed) {
571      sub.next = batchedComputed;
572      batchedComputed = sub;
573      return;
574    }
575    sub.next = batchedSub;
576    batchedSub = sub;
577  }
578  function startBatch() {
579    batchDepth++;
580  }
581  function endBatch() {
582    if (--batchDepth > 0) {
583      return;
584    }
585    if (batchedComputed) {
586      let e = batchedComputed;
587      batchedComputed = void 0;
588      while (e) {
589        const next = e.next;
590        e.next = void 0;
591        e.flags &= ~8;
592        e = next;
593      }
594    }
595    let error;
596    while (batchedSub) {
597      let e = batchedSub;
598      batchedSub = void 0;
599      while (e) {
600        const next = e.next;
601        e.next = void 0;
602        e.flags &= ~8;
603        if (e.flags & 1) {
604          try {
605            ;
606            e.trigger();
607          } catch (err) {
608            if (!error)
609              error = err;
610          }
611        }
612        e = next;
613      }
614    }
615    if (error)
616      throw error;
617  }
618  function prepareDeps(sub) {
619    for (let link = sub.deps; link; link = link.nextDep) {
620      link.version = -1;
621      link.prevActiveLink = link.dep.activeLink;
622      link.dep.activeLink = link;
623    }
624  }
625  function cleanupDeps(sub) {
626    let head;
627    let tail = sub.depsTail;
628    let link = tail;
629    while (link) {
630      const prev = link.prevDep;
631      if (link.version === -1) {
632        if (link === tail)
633          tail = prev;
634        removeSub(link);
635        removeDep(link);
636      } else {
637        head = link;
638      }
639      link.dep.activeLink = link.prevActiveLink;
640      link.prevActiveLink = void 0;
641      link = prev;
642    }
643    sub.deps = head;
644    sub.depsTail = tail;
645  }
646  function isDirty(sub) {
647    for (let link = sub.deps; link; link = link.nextDep) {
648      if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) {
649        return true;
650      }
651    }
652    if (sub._dirty) {
653      return true;
654    }
655    return false;
656  }
657  function refreshComputed(computed2) {
658    if (computed2.flags & 4 && !(computed2.flags & 16)) {
659      return;
660    }
661    computed2.flags &= ~16;
662    if (computed2.globalVersion === globalVersion) {
663      return;
664    }
665    computed2.globalVersion = globalVersion;
666    const dep = computed2.dep;
667    computed2.flags |= 2;
668    if (dep.version > 0 && !computed2.isSSR && computed2.deps && !isDirty(computed2)) {
669      computed2.flags &= ~2;
670      return;
671    }
672    const prevSub = activeSub;
673    const prevShouldTrack = shouldTrack;
674    activeSub = computed2;
675    shouldTrack = true;
676    try {
677      prepareDeps(computed2);
678      const value = computed2.fn(computed2._value);
679      if (dep.version === 0 || hasChanged(value, computed2._value)) {
680        computed2._value = value;
681        dep.version++;
682      }
683    } catch (err) {
684      dep.version++;
685      throw err;
686    } finally {
687      activeSub = prevSub;
688      shouldTrack = prevShouldTrack;
689      cleanupDeps(computed2);
690      computed2.flags &= ~2;
691    }
692  }
693  function removeSub(link, soft = false) {
694    const { dep, prevSub, nextSub } = link;
695    if (prevSub) {
696      prevSub.nextSub = nextSub;
697      link.prevSub = void 0;
698    }
699    if (nextSub) {
700      nextSub.prevSub = prevSub;
701      link.nextSub = void 0;
702    }
703    if (dep.subs === link) {
704      dep.subs = prevSub;
705      if (!prevSub && dep.computed) {
706        dep.computed.flags &= ~4;
707        for (let l = dep.computed.deps; l; l = l.nextDep) {
708          removeSub(l, true);
709        }
710      }
711    }
712    if (!soft && !--dep.sc && dep.map) {
713      dep.map.delete(dep.key);
714    }
715  }
716  function removeDep(link) {
717    const { prevDep, nextDep } = link;
718    if (prevDep) {
719      prevDep.nextDep = nextDep;
720      link.prevDep = void 0;
721    }
722    if (nextDep) {
723      nextDep.prevDep = prevDep;
724      link.nextDep = void 0;
725    }
726  }
727  function effect(fn, options) {
728    if (fn.effect instanceof ReactiveEffect) {
729      fn = fn.effect.fn;
730    }
731    const e = new ReactiveEffect(fn);
732    if (options) {
733      extend(e, options);
734    }
735    try {
736      e.run();
737    } catch (err) {
738      e.stop();
739      throw err;
740    }
741    const runner = e.run.bind(e);
742    runner.effect = e;
743    return runner;
744  }
745  function stop(runner) {
746    runner.effect.stop();
747  }
748  let shouldTrack = true;
749  const trackStack = [];
750  function pauseTracking() {
751    trackStack.push(shouldTrack);
752    shouldTrack = false;
vendor: 4,087 bytes, lines 753-912
753  }
754  function resetTracking() {
755    const last = trackStack.pop();
756    shouldTrack = last === void 0 ? true : last;
757  }
758  function cleanupEffect(e) {
759    const { cleanup } = e;
760    e.cleanup = void 0;
761    if (cleanup) {
762      const prevSub = activeSub;
763      activeSub = void 0;
764      try {
765        cleanup();
766      } finally {
767        activeSub = prevSub;
768      }
769    }
770  }
771  let globalVersion = 0;
772  class Link {
773    constructor(sub, dep) {
774      this.sub = sub;
775      this.dep = dep;
776      this.version = dep.version;
777      this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;
778    }
779  }
780  class Dep {
781    constructor(computed2) {
782      this.computed = computed2;
783      this.version = 0;
784      this.activeLink = void 0;
785      this.subs = void 0;
786      this.map = void 0;
787      this.key = void 0;
788      this.sc = 0;
789    }
790    track(debugInfo) {
791      if (!activeSub || !shouldTrack || activeSub === this.computed) {
792        return;
793      }
794      let link = this.activeLink;
795      if (link === void 0 || link.sub !== activeSub) {
796        link = this.activeLink = new Link(activeSub, this);
797        if (!activeSub.deps) {
798          activeSub.deps = activeSub.depsTail = link;
799        } else {
800          link.prevDep = activeSub.depsTail;
801          activeSub.depsTail.nextDep = link;
802          activeSub.depsTail = link;
803        }
804        addSub(link);
805      } else if (link.version === -1) {
806        link.version = this.version;
807        if (link.nextDep) {
808          const next = link.nextDep;
809          next.prevDep = link.prevDep;
810          if (link.prevDep) {
811            link.prevDep.nextDep = next;
812          }
813          link.prevDep = activeSub.depsTail;
814          link.nextDep = void 0;
815          activeSub.depsTail.nextDep = link;
816          activeSub.depsTail = link;
817          if (activeSub.deps === link) {
818            activeSub.deps = next;
819          }
820        }
821      }
822      return link;
823    }
824    trigger(debugInfo) {
825      this.version++;
826      globalVersion++;
827      this.notify(debugInfo);
828    }
829    notify(debugInfo) {
830      startBatch();
831      try {
832        if (false)
833          ;
834        for (let link = this.subs; link; link = link.prevSub) {
835          if (link.sub.notify()) {
836            ;
837            link.sub.dep.notify();
838          }
839        }
840      } finally {
841        endBatch();
842      }
843    }
844  }
845  function addSub(link) {
846    link.dep.sc++;
847    if (link.sub.flags & 4) {
848      const computed2 = link.dep.computed;
849      if (computed2 && !link.dep.subs) {
850        computed2.flags |= 4 | 16;
851        for (let l = computed2.deps; l; l = l.nextDep) {
852          addSub(l);
853        }
854      }
855      const currentTail = link.dep.subs;
856      if (currentTail !== link) {
857        link.prevSub = currentTail;
858        if (currentTail)
859          currentTail.nextSub = link;
860      }
861      link.dep.subs = link;
862    }
863  }
864  const targetMap = /* @__PURE__ */ new WeakMap();
865  const ITERATE_KEY = Symbol(
866    ""
867  );
868  const MAP_KEY_ITERATE_KEY = Symbol(
869    ""
870  );
871  const ARRAY_ITERATE_KEY = Symbol(
872    ""
873  );
874  function track(target, type, key) {
875    if (shouldTrack && activeSub) {
876      let depsMap = targetMap.get(target);
877      if (!depsMap) {
878        targetMap.set(target, depsMap = /* @__PURE__ */ new Map());
879      }
880      let dep = depsMap.get(key);
881      if (!dep) {
882        depsMap.set(key, dep = new Dep());
883        dep.map = depsMap;
884        dep.key = key;
885      }
886      {
887        dep.track();
888      }
889    }
890  }
891  function trigger(target, type, key, newValue, oldValue, oldTarget) {
892    const depsMap = targetMap.get(target);
893    if (!depsMap) {
894      globalVersion++;
895      return;
896    }
897    const run = (dep) => {
898      if (dep) {
899        {
900          dep.trigger();
901        }
902      }
903    };
904    startBatch();
905    if (type === "clear") {
906      depsMap.forEach(run);
907    } else {
908      const targetIsArray = isArray(target);
909      const isArrayIndex = targetIsArray && isIntegerKey(key);
910      if (targetIsArray && key === "length") {
911        const newLength = Number(newValue);
912        depsMap.forEach((dep, key2) => {
913          if (key2 === "length" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) {
914            run(dep);
915          }
916        });
917      } else {
918        if (key !== void 0 || depsMap.has(void 0)) {
919          run(depsMap.get(key));
920        }
921        if (isArrayIndex) {
922          run(depsMap.get(ARRAY_ITERATE_KEY));
923        }
924        switch (type) {
925          case "add":
926            if (!targetIsArray) {
927              run(depsMap.get(ITERATE_KEY));
928              if (isMap(target)) {
929                run(depsMap.get(MAP_KEY_ITERATE_KEY));
930              }
931            } else if (isArrayIndex) {
932              run(depsMap.get("length"));
933            }
934            break;
935          case "delete":
936            if (!targetIsArray) {
937              run(depsMap.get(ITERATE_KEY));
938              if (isMap(target)) {
939                run(depsMap.get(MAP_KEY_ITERATE_KEY));
940              }
941            }
942            break;
943          case "set":
944            if (isMap(target)) {
945              run(depsMap.get(ITERATE_KEY));
946            }
947            break;
948        }
949      }
950    }
951    endBatch();
952  }
953  function getDepFromReactive(object, key) {
954    const depMap = targetMap.get(object);
955    return depMap && depMap.get(key);
956  }
957  function reactiveReadArray(array) {
958    const raw = toRaw(array);
959    if (raw === array)
960      return raw;
961    track(raw, "iterate", ARRAY_ITERATE_KEY);
962    return isShallow(array) ? raw : raw.map(toReactive);
963  }
964  function shallowReadArray(arr) {
965    track(arr = toRaw(arr), "iterate", ARRAY_ITERATE_KEY);
966    return arr;
967  }
968  const arrayInstrumentations = {
969    __proto__: null,
970    [Symbol.iterator]() {
971      return iterator(this, Symbol.iterator, toReactive);
972    },
973    concat(...args) {
974      return reactiveReadArray(this).concat(
975        ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x)
976      );
977    },
978    entries() {
979      return iterator(this, "entries", (value) => {
980        value[1] = toReactive(value[1]);
981        return value;
982      });
983    },
984    every(fn, thisArg) {
985      return apply(this, "every", fn, thisArg, void 0, arguments);
986    },
987    filter(fn, thisArg) {
988      return apply(this, "filter", fn, thisArg, (v) => v.map(toReactive), arguments);
989    },
990    find(fn, thisArg) {
991      return apply(this, "find", fn, thisArg, toReactive, arguments);
992    },
993    findIndex(fn, thisArg) {
994      return apply(this, "findIndex", fn, thisArg, void 0, arguments);
995    },
996    findLast(fn, thisArg) {
997      return apply(this, "findLast", fn, thisArg, toReactive, arguments);
998    },
999    findLastIndex(fn, thisArg) {
1000      return apply(this, "findLastIndex", fn, thisArg, void 0, arguments);
1001    },
1002    // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement
1003    forEach(fn, thisArg) {
1004      return apply(this, "forEach", fn, thisArg, void 0, arguments);
1005    },
1006    includes(...args) {
1007      return searchProxy(this, "includes", args);
1008    },
1009    indexOf(...args) {
1010      return searchProxy(this, "indexOf", args);
1011    },
1012    join(separator) {
1013      return reactiveReadArray(this).join(separator);
1014    },
1015    // keys() iterator only reads `length`, no optimisation required
1016    lastIndexOf(...args) {
1017      return searchProxy(this, "lastIndexOf", args);
1018    },
1019    map(fn, thisArg) {
1020      return apply(this, "map", fn, thisArg, void 0, arguments);
1021    },
1022    pop() {
1023      return noTracking(this, "pop");
1024    },
1025    push(...args) {
1026      return noTracking(this, "push", args);
1027    },
1028    reduce(fn, ...args) {
1029      return reduce(this, "reduce", fn, args);
1030    },
1031    reduceRight(fn, ...args) {
1032      return reduce(this, "reduceRight", fn, args);
1033    },
1034    shift() {
1035      return noTracking(this, "shift");
1036    },
1037    // slice could use ARRAY_ITERATE but also seems to beg for range tracking
1038    some(fn, thisArg) {
1039      return apply(this, "some", fn, thisArg, void 0, arguments);
1040    },
1041    splice(...args) {
1042      return noTracking(this, "splice", args);
1043    },
1044    toReversed() {
1045      return reactiveReadArray(this).toReversed();
1046    },
1047    toSorted(comparer) {
1048      return reactiveReadArray(this).toSorted(comparer);
1049    },
1050    toSpliced(...args) {
1051      return reactiveReadArray(this).toSpliced(...args);
1052    },
1053    unshift(...args) {
1054      return noTracking(this, "unshift", args);
1055    },
1056    values() {
1057      return iterator(this, "values", toReactive);
1058    }
1059  };
1060  function iterator(self2, method, wrapValue) {
1061    const arr = shallowReadArray(self2);
1062    const iter = arr[method]();
1063    if (arr !== self2 && !isShallow(self2)) {
1064      iter._next = iter.next;
1065      iter.next = () => {
1066        const result = iter._next();
1067        if (result.value) {
1068          result.value = wrapValue(result.value);
1069        }
1070        return result;
1071      };
1072    }
1073    return iter;
1074  }
1075  const arrayProto = Array.prototype;
1076  function apply(self2, method, fn, thisArg, wrappedRetFn, args) {
1077    const arr = shallowReadArray(self2);
1078    const needsWrap = arr !== self2 && !isShallow(self2);
1079    const methodFn = arr[method];
1080    if (methodFn !== arrayProto[method]) {
1081      const result2 = methodFn.apply(self2, args);
1082      return needsWrap ? toReactive(result2) : result2;
1083    }
1084    let wrappedFn = fn;
1085    if (arr !== self2) {
1086      if (needsWrap) {
1087        wrappedFn = function(item, index2) {
1088          return fn.call(this, toReactive(item), index2, self2);
1089        };
1090      } else if (fn.length > 2) {
1091        wrappedFn = function(item, index2) {
1092          return fn.call(this, item, index2, self2);
1093        };
1094      }
1095    }
1096    const result = methodFn.call(arr, wrappedFn, thisArg);
1097    return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;
1098  }
1099  function reduce(self2, method, fn, args) {
1100    const arr = shallowReadArray(self2);
1101    let wrappedFn = fn;
1102    if (arr !== self2) {
1103      if (!isShallow(self2)) {
1104        wrappedFn = function(acc, item, index2) {
1105          return fn.call(this, acc, toReactive(item), index2, self2);
1106        };
1107      } else if (fn.length > 3) {
1108        wrappedFn = function(acc, item, index2) {
1109          return fn.call(this, acc, item, index2, self2);
1110        };
1111      }
1112    }
1113    return arr[method](wrappedFn, ...args);
1114  }
1115  function searchProxy(self2, method, args) {
1116    const arr = toRaw(self2);
1117    track(arr, "iterate", ARRAY_ITERATE_KEY);
1118    const res = arr[method](...args);
1119    if ((res === -1 || res === false) && isProxy(args[0])) {
1120      args[0] = toRaw(args[0]);
1121      return arr[method](...args);
1122    }
1123    return res;
1124  }
1125  function noTracking(self2, method, args = []) {
1126    pauseTracking();
1127    startBatch();
1128    const res = toRaw(self2)[method].apply(self2, args);
1129    endBatch();
1130    resetTracking();
1131    return res;
1132  }
1133  const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);
1134  const builtInSymbols = new Set(
1135    /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol)
1136  );
1137  function hasOwnProperty(key) {
1138    if (!isSymbol(key))
1139      key = String(key);
1140    const obj = toRaw(this);
1141    track(obj, "has", key);
1142    return obj.hasOwnProperty(key);
1143  }
1144  class BaseReactiveHandler {
1145    constructor(_isReadonly = false, _isShallow = false) {
1146      this._isReadonly = _isReadonly;
1147      this._isShallow = _isShallow;
1148    }
1149    get(target, key, receiver) {
1150      const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;
1151      if (key === "__v_isReactive") {
1152        return !isReadonly2;
1153      } else if (key === "__v_isReadonly") {
1154        return isReadonly2;
1155      } else if (key === "__v_isShallow") {
1156        return isShallow2;
1157      } else if (key === "__v_raw") {
1158        if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype
1159        // this means the receiver is a user proxy of the reactive proxy
1160        Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {
1161          return target;
1162        }
1163        return;
1164      }
1165      const targetIsArray = isArray(target);
1166      if (!isReadonly2) {
1167        let fn;
1168        if (targetIsArray && (fn = arrayInstrumentations[key])) {
1169          return fn;
1170        }
1171        if (key === "hasOwnProperty") {
1172          return hasOwnProperty;
1173        }
1174      }
1175      const res = Reflect.get(
1176        target,
1177        key,
1178        // if this is a proxy wrapping a ref, return methods using the raw ref
1179        // as receiver so that we don't have to call `toRaw` on the ref in all
1180        // its class methods
1181        isRef(target) ? target : receiver
1182      );
1183      if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {
1184        return res;
1185      }
1186      if (!isReadonly2) {
1187        track(target, "get", key);
1188      }
1189      if (isShallow2) {
1190        return res;
1191      }
1192      if (isRef(res)) {
1193        return targetIsArray && isIntegerKey(key) ? res : res.value;
1194      }
1195      if (isObject(res)) {
1196        return isReadonly2 ? readonly(res) : reactive(res);
1197      }
1198      return res;
1199    }
1200  }
1201  class MutableReactiveHandler extends BaseReactiveHandler {
1202    constructor(isShallow2 = false) {
1203      super(false, isShallow2);
1204    }
1205    set(target, key, value, receiver) {
1206      let oldValue = target[key];
1207      if (!this._isShallow) {
1208        const isOldValueReadonly = isReadonly(oldValue);
1209        if (!isShallow(value) && !isReadonly(value)) {
1210          oldValue = toRaw(oldValue);
1211          value = toRaw(value);
1212        }
1213        if (!isArray(target) && isRef(oldValue) && !isRef(value)) {
1214          if (isOldValueReadonly) {
1215            return false;
1216          } else {
1217            oldValue.value = value;
1218            return true;
1219          }
1220        }
1221      }
1222      const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);
1223      const result = Reflect.set(
1224        target,
1225        key,
1226        value,
1227        isRef(target) ? target : receiver
1228      );
1229      if (target === toRaw(receiver)) {
1230        if (!hadKey) {
1231          trigger(target, "add", key, value);
1232        } else if (hasChanged(value, oldValue)) {
1233          trigger(target, "set", key, value);
1234        }
1235      }
1236      return result;
1237    }
1238    deleteProperty(target, key) {
1239      const hadKey = hasOwn(target, key);
1240      target[key];
1241      const result = Reflect.deleteProperty(target, key);
1242      if (result && hadKey) {
1243        trigger(target, "delete", key, void 0);
1244      }
1245      return result;
1246    }
1247    has(target, key) {
1248      const result = Reflect.has(target, key);
1249      if (!isSymbol(key) || !builtInSymbols.has(key)) {
1250        track(target, "has", key);
1251      }
1252      return result;
1253    }
1254    ownKeys(target) {
1255      track(
1256        target,
1257        "iterate",
1258        isArray(target) ? "length" : ITERATE_KEY
1259      );
1260      return Reflect.ownKeys(target);
1261    }
1262  }
1263  class ReadonlyReactiveHandler extends BaseReactiveHandler {
1264    constructor(isShallow2 = false) {
1265      super(true, isShallow2);
1266    }
1267    set(target, key) {
1268      return true;
1269    }
1270    deleteProperty(target, key) {
1271      return true;
1272    }
1273  }
1274  const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();
1275  const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();
1276  const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);
1277  const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);
1278  const toShallow = (value) => value;
1279  const getProto = (v) => Reflect.getPrototypeOf(v);
1280  function createIterableMethod(method, isReadonly2, isShallow2) {
1281    return function(...args) {
1282      const target = this["__v_raw"];
1283      const rawTarget = toRaw(target);
1284      const targetIsMap = isMap(rawTarget);
1285      const isPair = method === "entries" || method === Symbol.iterator && targetIsMap;
1286      const isKeyOnly = method === "keys" && targetIsMap;
1287      const innerIterator = target[method](...args);
1288      const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;
1289      !isReadonly2 && track(
1290        rawTarget,
1291        "iterate",
1292        isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY
1293      );
1294      return {
1295        // iterator protocol
1296        next() {
1297          const { value, done } = innerIterator.next();
1298          return done ? { value, done } : {
1299            value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),
1300            done
1301          };
1302        },
1303        // iterable protocol
1304        [Symbol.iterator]() {
1305          return this;
1306        }
1307      };
1308    };
1309  }
1310  function createReadonlyMethod(type) {
1311    return function(...args) {
1312      return type === "delete" ? false : type === "clear" ? void 0 : this;
1313    };
1314  }
1315  function createInstrumentations(readonly2, shallow) {
1316    const instrumentations = {
1317      get(key) {
1318        const target = this["__v_raw"];
1319        const rawTarget = toRaw(target);
1320        const rawKey = toRaw(key);
1321        if (!readonly2) {
1322          if (hasChanged(key, rawKey)) {
1323            track(rawTarget, "get", key);
1324          }
1325          track(rawTarget, "get", rawKey);
1326        }
1327        const { has } = getProto(rawTarget);
1328        const wrap = shallow ? toShallow : readonly2 ? toReadonly : toReactive;
1329        if (has.call(rawTarget, key)) {
1330          return wrap(target.get(key));
1331        } else if (has.call(rawTarget, rawKey)) {
1332          return wrap(target.get(rawKey));
1333        } else if (target !== rawTarget) {
1334          target.get(key);
1335        }
1336      },
1337      get size() {
1338        const target = this["__v_raw"];
1339        !readonly2 && track(toRaw(target), "iterate", ITERATE_KEY);
1340        return Reflect.get(target, "size", target);
1341      },
1342      has(key) {
1343        const target = this["__v_raw"];
1344        const rawTarget = toRaw(target);
1345        const rawKey = toRaw(key);
1346        if (!readonly2) {
1347          if (hasChanged(key, rawKey)) {
1348            track(rawTarget, "has", key);
1349          }
1350          track(rawTarget, "has", rawKey);
1351        }
1352        return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);
1353      },
vendor: 17,237 bytes, lines 1354-1954
1354      forEach(callback, thisArg) {
1355        const observed = this;
1356        const target = observed["__v_raw"];
1357        const rawTarget = toRaw(target);
1358        const wrap = shallow ? toShallow : readonly2 ? toReadonly : toReactive;
1359        !readonly2 && track(rawTarget, "iterate", ITERATE_KEY);
1360        return target.forEach((value, key) => {
1361          return callback.call(thisArg, wrap(value), wrap(key), observed);
1362        });
1363      }
1364    };
1365    extend(
1366      instrumentations,
1367      readonly2 ? {
1368        add: createReadonlyMethod("add"),
1369        set: createReadonlyMethod("set"),
1370        delete: createReadonlyMethod("delete"),
1371        clear: createReadonlyMethod("clear")
1372      } : {
1373        add(value) {
1374          if (!shallow && !isShallow(value) && !isReadonly(value)) {
1375            value = toRaw(value);
1376          }
1377          const target = toRaw(this);
1378          const proto = getProto(target);
1379          const hadKey = proto.has.call(target, value);
1380          if (!hadKey) {
1381            target.add(value);
1382            trigger(target, "add", value, value);
1383          }
1384          return this;
1385        },
1386        set(key, value) {
1387          if (!shallow && !isShallow(value) && !isReadonly(value)) {
1388            value = toRaw(value);
1389          }
1390          const target = toRaw(this);
1391          const { has, get } = getProto(target);
1392          let hadKey = has.call(target, key);
1393          if (!hadKey) {
1394            key = toRaw(key);
1395            hadKey = has.call(target, key);
1396          }
1397          const oldValue = get.call(target, key);
1398          target.set(key, value);
1399          if (!hadKey) {
1400            trigger(target, "add", key, value);
1401          } else if (hasChanged(value, oldValue)) {
1402            trigger(target, "set", key, value);
1403          }
1404          return this;
1405        },
1406        delete(key) {
1407          const target = toRaw(this);
1408          const { has, get } = getProto(target);
1409          let hadKey = has.call(target, key);
1410          if (!hadKey) {
1411            key = toRaw(key);
1412            hadKey = has.call(target, key);
1413          }
1414          get ? get.call(target, key) : void 0;
1415          const result = target.delete(key);
1416          if (hadKey) {
1417            trigger(target, "delete", key, void 0);
1418          }
1419          return result;
1420        },
1421        clear() {
1422          const target = toRaw(this);
1423          const hadItems = target.size !== 0;
1424          const result = target.clear();
1425          if (hadItems) {
1426            trigger(
1427              target,
1428              "clear",
1429              void 0,
1430              void 0
1431            );
1432          }
1433          return result;
1434        }
1435      }
1436    );
1437    const iteratorMethods = [
1438      "keys",
1439      "values",
1440      "entries",
1441      Symbol.iterator
1442    ];
1443    iteratorMethods.forEach((method) => {
1444      instrumentations[method] = createIterableMethod(method, readonly2, shallow);
1445    });
1446    return instrumentations;
1447  }
1448  function createInstrumentationGetter(isReadonly2, shallow) {
1449    const instrumentations = createInstrumentations(isReadonly2, shallow);
1450    return (target, key, receiver) => {
1451      if (key === "__v_isReactive") {
1452        return !isReadonly2;
1453      } else if (key === "__v_isReadonly") {
1454        return isReadonly2;
1455      } else if (key === "__v_raw") {
1456        return target;
1457      }
1458      return Reflect.get(
1459        hasOwn(instrumentations, key) && key in target ? instrumentations : target,
1460        key,
1461        receiver
1462      );
1463    };
1464  }
1465  const mutableCollectionHandlers = {
1466    get: /* @__PURE__ */ createInstrumentationGetter(false, false)
1467  };
1468  const shallowCollectionHandlers = {
1469    get: /* @__PURE__ */ createInstrumentationGetter(false, true)
1470  };
1471  const readonlyCollectionHandlers = {
1472    get: /* @__PURE__ */ createInstrumentationGetter(true, false)
1473  };
1474  const shallowReadonlyCollectionHandlers = {
1475    get: /* @__PURE__ */ createInstrumentationGetter(true, true)
1476  };
1477  const reactiveMap = /* @__PURE__ */ new WeakMap();
1478  const shallowReactiveMap = /* @__PURE__ */ new WeakMap();
1479  const readonlyMap = /* @__PURE__ */ new WeakMap();
1480  const shallowReadonlyMap = /* @__PURE__ */ new WeakMap();
1481  function targetTypeMap(rawType) {
1482    switch (rawType) {
1483      case "Object":
1484      case "Array":
1485        return 1;
1486      case "Map":
1487      case "Set":
1488      case "WeakMap":
1489      case "WeakSet":
1490        return 2;
1491      default:
1492        return 0;
1493    }
1494  }
1495  function getTargetType(value) {
1496    return value["__v_skip"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value));
1497  }
1498  function reactive(target) {
1499    if (isReadonly(target)) {
1500      return target;
1501    }
1502    return createReactiveObject(
1503      target,
1504      false,
1505      mutableHandlers,
1506      mutableCollectionHandlers,
1507      reactiveMap
1508    );
1509  }
1510  function shallowReactive(target) {
1511    return createReactiveObject(
1512      target,
1513      false,
1514      shallowReactiveHandlers,
1515      shallowCollectionHandlers,
1516      shallowReactiveMap
1517    );
1518  }
1519  function readonly(target) {
1520    return createReactiveObject(
1521      target,
1522      true,
1523      readonlyHandlers,
1524      readonlyCollectionHandlers,
1525      readonlyMap
1526    );
1527  }
1528  function shallowReadonly(target) {
1529    return createReactiveObject(
1530      target,
1531      true,
1532      shallowReadonlyHandlers,
1533      shallowReadonlyCollectionHandlers,
1534      shallowReadonlyMap
1535    );
1536  }
1537  function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {
1538    if (!isObject(target)) {
1539      return target;
1540    }
1541    if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) {
1542      return target;
1543    }
1544    const existingProxy = proxyMap.get(target);
1545    if (existingProxy) {
1546      return existingProxy;
1547    }
1548    const targetType = getTargetType(target);
1549    if (targetType === 0) {
1550      return target;
1551    }
1552    const proxy = new Proxy(
1553      target,
1554      targetType === 2 ? collectionHandlers : baseHandlers
1555    );
1556    proxyMap.set(target, proxy);
1557    return proxy;
1558  }
1559  function isReactive(value) {
1560    if (isReadonly(value)) {
1561      return isReactive(value["__v_raw"]);
1562    }
1563    return !!(value && value["__v_isReactive"]);
1564  }
1565  function isReadonly(value) {
1566    return !!(value && value["__v_isReadonly"]);
1567  }
1568  function isShallow(value) {
1569    return !!(value && value["__v_isShallow"]);
1570  }
1571  function isProxy(value) {
1572    return value ? !!value["__v_raw"] : false;
1573  }
1574  function toRaw(observed) {
1575    const raw = observed && observed["__v_raw"];
1576    return raw ? toRaw(raw) : observed;
1577  }
1578  function markRaw(value) {
1579    if (!hasOwn(value, "__v_skip") && Object.isExtensible(value)) {
1580      def(value, "__v_skip", true);
1581    }
1582    return value;
1583  }
1584  const toReactive = (value) => isObject(value) ? reactive(value) : value;
1585  const toReadonly = (value) => isObject(value) ? readonly(value) : value;
1586  function isRef(r) {
1587    return r ? r["__v_isRef"] === true : false;
1588  }
1589  function ref(value) {
1590    return createRef(value, false);
1591  }
1592  function shallowRef(value) {
1593    return createRef(value, true);
1594  }
1595  function createRef(rawValue, shallow) {
1596    if (isRef(rawValue)) {
1597      return rawValue;
1598    }
1599    return new RefImpl(rawValue, shallow);
1600  }
1601  class RefImpl {
1602    constructor(value, isShallow2) {
1603      this.dep = new Dep();
1604      this["__v_isRef"] = true;
1605      this["__v_isShallow"] = false;
1606      this._rawValue = isShallow2 ? value : toRaw(value);
1607      this._value = isShallow2 ? value : toReactive(value);
1608      this["__v_isShallow"] = isShallow2;
1609    }
1610    get value() {
1611      {
1612        this.dep.track();
1613      }
1614      return this._value;
1615    }
1616    set value(newValue) {
1617      const oldValue = this._rawValue;
1618      const useDirectValue = this["__v_isShallow"] || isShallow(newValue) || isReadonly(newValue);
1619      newValue = useDirectValue ? newValue : toRaw(newValue);
1620      if (hasChanged(newValue, oldValue)) {
1621        this._rawValue = newValue;
1622        this._value = useDirectValue ? newValue : toReactive(newValue);
1623        {
1624          this.dep.trigger();
1625        }
1626      }
1627    }
1628  }
1629  function triggerRef(ref2) {
1630    if (ref2.dep) {
1631      {
1632        ref2.dep.trigger();
1633      }
1634    }
1635  }
1636  function unref(ref2) {
1637    return isRef(ref2) ? ref2.value : ref2;
1638  }
1639  function toValue(source) {
1640    return isFunction(source) ? source() : unref(source);
1641  }
1642  const shallowUnwrapHandlers = {
1643    get: (target, key, receiver) => key === "__v_raw" ? target : unref(Reflect.get(target, key, receiver)),
1644    set: (target, key, value, receiver) => {
1645      const oldValue = target[key];
1646      if (isRef(oldValue) && !isRef(value)) {
1647        oldValue.value = value;
1648        return true;
1649      } else {
1650        return Reflect.set(target, key, value, receiver);
1651      }
1652    }
1653  };
1654  function proxyRefs(objectWithRefs) {
1655    return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);
1656  }
1657  class CustomRefImpl {
1658    constructor(factory) {
1659      this["__v_isRef"] = true;
1660      this._value = void 0;
1661      const dep = this.dep = new Dep();
1662      const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep));
1663      this._get = get;
1664      this._set = set;
1665    }
1666    get value() {
1667      return this._value = this._get();
1668    }
1669    set value(newVal) {
1670      this._set(newVal);
1671    }
1672  }
1673  function customRef(factory) {
1674    return new CustomRefImpl(factory);
1675  }
1676  function toRefs(object) {
1677    const ret = isArray(object) ? new Array(object.length) : {};
1678    for (const key in object) {
1679      ret[key] = propertyToRef(object, key);
1680    }
1681    return ret;
1682  }
1683  class ObjectRefImpl {
1684    constructor(_object, _key, _defaultValue) {
1685      this._object = _object;
1686      this._key = _key;
1687      this._defaultValue = _defaultValue;
1688      this["__v_isRef"] = true;
1689      this._value = void 0;
1690    }
1691    get value() {
1692      const val = this._object[this._key];
1693      return this._value = val === void 0 ? this._defaultValue : val;
1694    }
1695    set value(newVal) {
1696      this._object[this._key] = newVal;
1697    }
1698    get dep() {
1699      return getDepFromReactive(toRaw(this._object), this._key);
1700    }
1701  }
1702  class GetterRefImpl {
1703    constructor(_getter) {
1704      this._getter = _getter;
1705      this["__v_isRef"] = true;
1706      this["__v_isReadonly"] = true;
1707      this._value = void 0;
1708    }
1709    get value() {
1710      return this._value = this._getter();
1711    }
1712  }
1713  function toRef(source, key, defaultValue) {
1714    if (isRef(source)) {
1715      return source;
1716    } else if (isFunction(source)) {
1717      return new GetterRefImpl(source);
1718    } else if (isObject(source) && arguments.length > 1) {
1719      return propertyToRef(source, key, defaultValue);
1720    } else {
1721      return ref(source);
1722    }
1723  }
1724  function propertyToRef(source, key, defaultValue) {
1725    const val = source[key];
1726    return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);
1727  }
1728  class ComputedRefImpl {
1729    constructor(fn, setter, isSSR) {
1730      this.fn = fn;
1731      this.setter = setter;
1732      this._value = void 0;
1733      this.dep = new Dep(this);
1734      this.__v_isRef = true;
1735      this.deps = void 0;
1736      this.depsTail = void 0;
1737      this.flags = 16;
1738      this.globalVersion = globalVersion - 1;
1739      this.next = void 0;
1740      this.effect = this;
1741      this["__v_isReadonly"] = !setter;
1742      this.isSSR = isSSR;
1743    }
1744    /**
1745     * @internal
1746     */
1747    notify() {
1748      this.flags |= 16;
1749      if (!(this.flags & 8) && // avoid infinite self recursion
1750      activeSub !== this) {
1751        batch(this, true);
1752        return true;
1753      }
1754    }
1755    get value() {
1756      const link = this.dep.track();
1757      refreshComputed(this);
1758      if (link) {
1759        link.version = this.dep.version;
1760      }
1761      return this._value;
1762    }
1763    set value(newValue) {
1764      if (this.setter) {
1765        this.setter(newValue);
1766      }
1767    }
1768  }
1769  function computed$1(getterOrOptions, debugOptions, isSSR = false) {
1770    let getter;
1771    let setter;
1772    if (isFunction(getterOrOptions)) {
1773      getter = getterOrOptions;
1774    } else {
1775      getter = getterOrOptions.get;
1776      setter = getterOrOptions.set;
1777    }
1778    const cRef = new ComputedRefImpl(getter, setter, isSSR);
1779    return cRef;
1780  }
1781  const TrackOpTypes = {
1782    "GET": "get",
1783    "HAS": "has",
1784    "ITERATE": "iterate"
1785  };
1786  const TriggerOpTypes = {
1787    "SET": "set",
1788    "ADD": "add",
1789    "DELETE": "delete",
1790    "CLEAR": "clear"
1791  };
1792  const INITIAL_WATCHER_VALUE = {};
1793  const cleanupMap = /* @__PURE__ */ new WeakMap();
1794  let activeWatcher = void 0;
1795  function getCurrentWatcher() {
1796    return activeWatcher;
1797  }
1798  function onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) {
1799    if (owner) {
1800      let cleanups = cleanupMap.get(owner);
1801      if (!cleanups)
1802        cleanupMap.set(owner, cleanups = []);
1803      cleanups.push(cleanupFn);
1804    }
1805  }
1806  function watch$1(source, cb, options = EMPTY_OBJ) {
1807    const { immediate, deep, once, scheduler, augmentJob, call } = options;
1808    const reactiveGetter = (source2) => {
1809      if (deep)
1810        return source2;
1811      if (isShallow(source2) || deep === false || deep === 0)
1812        return traverse(source2, 1);
1813      return traverse(source2);
1814    };
1815    let effect2;
1816    let getter;
1817    let cleanup;
1818    let boundCleanup;
1819    let forceTrigger = false;
1820    let isMultiSource = false;
1821    if (isRef(source)) {
1822      getter = () => source.value;
1823      forceTrigger = isShallow(source);
1824    } else if (isReactive(source)) {
1825      getter = () => reactiveGetter(source);
1826      forceTrigger = true;
1827    } else if (isArray(source)) {
1828      isMultiSource = true;
1829      forceTrigger = source.some((s) => isReactive(s) || isShallow(s));
1830      getter = () => source.map((s) => {
1831        if (isRef(s)) {
1832          return s.value;
1833        } else if (isReactive(s)) {
1834          return reactiveGetter(s);
1835        } else if (isFunction(s)) {
1836          return call ? call(s, 2) : s();
1837        } else
1838          ;
1839      });
1840    } else if (isFunction(source)) {
1841      if (cb) {
1842        getter = call ? () => call(source, 2) : source;
1843      } else {
1844        getter = () => {
1845          if (cleanup) {
1846            pauseTracking();
1847            try {
1848              cleanup();
1849            } finally {
1850              resetTracking();
1851            }
1852          }
1853          const currentEffect = activeWatcher;
1854          activeWatcher = effect2;
1855          try {
1856            return call ? call(source, 3, [boundCleanup]) : source(boundCleanup);
1857          } finally {
1858            activeWatcher = currentEffect;
1859          }
1860        };
1861      }
1862    } else {
1863      getter = NOOP;
1864    }
1865    if (cb && deep) {
1866      const baseGetter = getter;
1867      const depth = deep === true ? Infinity : deep;
1868      getter = () => traverse(baseGetter(), depth);
1869    }
1870    const scope = getCurrentScope();
1871    const watchHandle = () => {
1872      effect2.stop();
1873      if (scope) {
1874        remove(scope.effects, effect2);
1875      }
1876    };
1877    if (once && cb) {
1878      const _cb = cb;
1879      cb = (...args) => {
1880        _cb(...args);
1881        watchHandle();
1882      };
1883    }
1884    let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;
1885    const job = (immediateFirstRun) => {
1886      if (!(effect2.flags & 1) || !effect2.dirty && !immediateFirstRun) {
1887        return;
1888      }
1889      if (cb) {
1890        const newValue = effect2.run();
1891        if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {
1892          if (cleanup) {
1893            cleanup();
1894          }
1895          const currentWatcher = activeWatcher;
1896          activeWatcher = effect2;
1897          try {
1898            const args = [
1899              newValue,
1900              // pass undefined as the old value when it's changed for the first time
1901              oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,
1902              boundCleanup
1903            ];
1904            call ? call(cb, 3, args) : (
1905              // @ts-expect-error
1906              cb(...args)
1907            );
1908            oldValue = newValue;
1909          } finally {
1910            activeWatcher = currentWatcher;
1911          }
1912        }
1913      } else {
1914        effect2.run();
1915      }
1916    };
1917    if (augmentJob) {
1918      augmentJob(job);
1919    }
1920    effect2 = new ReactiveEffect(getter);
1921    effect2.scheduler = scheduler ? () => scheduler(job, false) : job;
1922    boundCleanup = (fn) => onWatcherCleanup(fn, false, effect2);
1923    cleanup = effect2.onStop = () => {
1924      const cleanups = cleanupMap.get(effect2);
1925      if (cleanups) {
1926        if (call) {
1927          call(cleanups, 4);
1928        } else {
1929          for (const cleanup2 of cleanups)
1930            cleanup2();
1931        }
1932        cleanupMap.delete(effect2);
1933      }
1934    };
1935    if (cb) {
1936      if (immediate) {
1937        job(true);
1938      } else {
1939        oldValue = effect2.run();
1940      }
1941    } else if (scheduler) {
1942      scheduler(job.bind(null, true), true);
1943    } else {
1944      effect2.run();
1945    }
1946    watchHandle.pause = effect2.pause.bind(effect2);
1947    watchHandle.resume = effect2.resume.bind(effect2);
1948    watchHandle.stop = watchHandle;
1949    return watchHandle;
1950  }
1951  function traverse(value, depth = Infinity, seen) {
1952    if (depth <= 0 || !isObject(value) || value["__v_skip"]) {
1953      return value;
1954    }
vendor: 7,395 bytes, lines 1955-2199
1955    seen = seen || /* @__PURE__ */ new Set();
1956    if (seen.has(value)) {
1957      return value;
1958    }
1959    seen.add(value);
1960    depth--;
1961    if (isRef(value)) {
1962      traverse(value.value, depth, seen);
1963    } else if (isArray(value)) {
1964      for (let i = 0; i < value.length; i++) {
1965        traverse(value[i], depth, seen);
1966      }
1967    } else if (isSet(value) || isMap(value)) {
1968      value.forEach((v) => {
1969        traverse(v, depth, seen);
1970      });
1971    } else if (isPlainObject(value)) {
1972      for (const key in value) {
1973        traverse(value[key], depth, seen);
1974      }
1975      for (const key of Object.getOwnPropertySymbols(value)) {
1976        if (Object.prototype.propertyIsEnumerable.call(value, key)) {
1977          traverse(value[key], depth, seen);
1978        }
1979      }
1980    }
1981    return value;
1982  }
1983  /**
1984  * @vue/runtime-core v3.5.12
1985  * (c) 2018-present Yuxi (Evan) You and Vue contributors
1986  * @license MIT
1987  **/
1988  const stack = [];
1989  function pushWarningContext$1(vnode) {
1990    stack.push(vnode);
1991  }
1992  function popWarningContext$1() {
1993    stack.pop();
1994  }
1995  let isWarning = false;
1996  function warn$1(msg, ...args) {
1997    if (isWarning)
1998      return;
1999    isWarning = true;
2000    pauseTracking();
2001    const instance = stack.length ? stack[stack.length - 1].component : null;
2002    const appWarnHandler = instance && instance.appContext.config.warnHandler;
2003    const trace = getComponentTrace();
2004    if (appWarnHandler) {
2005      callWithErrorHandling(
2006        appWarnHandler,
2007        instance,
2008        11,
2009        [
2010          // eslint-disable-next-line no-restricted-syntax
2011          msg + args.map((a) => {
2012            var _a, _b;
2013            return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);
2014          }).join(""),
2015          instance && instance.proxy,
2016          trace.map(
2017            ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`
2018          ).join("\n"),
2019          trace
2020        ]
2021      );
2022    } else {
2023      const warnArgs = [`[Vue warn]: ${msg}`, ...args];
2024      if (trace.length && // avoid spamming console during tests
2025      true) {
2026        warnArgs.push(`
2027`, ...formatTrace(trace));
2028      }
2029      console.warn(...warnArgs);
2030    }
2031    resetTracking();
2032    isWarning = false;
2033  }
2034  function getComponentTrace() {
2035    let currentVNode = stack[stack.length - 1];
2036    if (!currentVNode) {
2037      return [];
2038    }
2039    const normalizedStack = [];
2040    while (currentVNode) {
2041      const last = normalizedStack[0];
2042      if (last && last.vnode === currentVNode) {
2043        last.recurseCount++;
2044      } else {
2045        normalizedStack.push({
2046          vnode: currentVNode,
2047          recurseCount: 0
2048        });
2049      }
2050      const parentInstance = currentVNode.component && currentVNode.component.parent;
2051      currentVNode = parentInstance && parentInstance.vnode;
2052    }
2053    return normalizedStack;
2054  }
2055  function formatTrace(trace) {
2056    const logs = [];
2057    trace.forEach((entry, i) => {
2058      logs.push(...i === 0 ? [] : [`
2059`], ...formatTraceEntry(entry));
2060    });
2061    return logs;
2062  }
2063  function formatTraceEntry({ vnode, recurseCount }) {
2064    const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;
2065    const isRoot = vnode.component ? vnode.component.parent == null : false;
2066    const open = ` at <${formatComponentName(
2067      vnode.component,
2068      vnode.type,
2069      isRoot
2070    )}`;
2071    const close = `>` + postfix;
2072    return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];
2073  }
2074  function formatProps(props) {
2075    const res = [];
2076    const keys = Object.keys(props);
2077    keys.slice(0, 3).forEach((key) => {
2078      res.push(...formatProp(key, props[key]));
2079    });
2080    if (keys.length > 3) {
2081      res.push(` ...`);
2082    }
2083    return res;
2084  }
2085  function formatProp(key, value, raw) {
2086    if (isString(value)) {
2087      value = JSON.stringify(value);
2088      return raw ? value : [`${key}=${value}`];
2089    } else if (typeof value === "number" || typeof value === "boolean" || value == null) {
2090      return raw ? value : [`${key}=${value}`];
2091    } else if (isRef(value)) {
2092      value = formatProp(key, toRaw(value.value), true);
2093      return raw ? value : [`${key}=Ref<`, value, `>`];
2094    } else if (isFunction(value)) {
2095      return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];
2096    } else {
2097      value = toRaw(value);
2098      return raw ? value : [`${key}=`, value];
2099    }
2100  }
2101  function assertNumber(val, type) {
2102    return;
2103  }
2104  const ErrorCodes = {
2105    "SETUP_FUNCTION": 0,
2106    "0": "SETUP_FUNCTION",
2107    "RENDER_FUNCTION": 1,
2108    "1": "RENDER_FUNCTION",
2109    "NATIVE_EVENT_HANDLER": 5,
2110    "5": "NATIVE_EVENT_HANDLER",
2111    "COMPONENT_EVENT_HANDLER": 6,
2112    "6": "COMPONENT_EVENT_HANDLER",
2113    "VNODE_HOOK": 7,
2114    "7": "VNODE_HOOK",
2115    "DIRECTIVE_HOOK": 8,
2116    "8": "DIRECTIVE_HOOK",
2117    "TRANSITION_HOOK": 9,
2118    "9": "TRANSITION_HOOK",
2119    "APP_ERROR_HANDLER": 10,
2120    "10": "APP_ERROR_HANDLER",
2121    "APP_WARN_HANDLER": 11,
2122    "11": "APP_WARN_HANDLER",
2123    "FUNCTION_REF": 12,
2124    "12": "FUNCTION_REF",
2125    "ASYNC_COMPONENT_LOADER": 13,
2126    "13": "ASYNC_COMPONENT_LOADER",
2127    "SCHEDULER": 14,
2128    "14": "SCHEDULER",
2129    "COMPONENT_UPDATE": 15,
2130    "15": "COMPONENT_UPDATE",
2131    "APP_UNMOUNT_CLEANUP": 16,
2132    "16": "APP_UNMOUNT_CLEANUP"
2133  };
2134  const ErrorTypeStrings$1 = {
2135    ["sp"]: "serverPrefetch hook",
2136    ["bc"]: "beforeCreate hook",
2137    ["c"]: "created hook",
2138    ["bm"]: "beforeMount hook",
2139    ["m"]: "mounted hook",
2140    ["bu"]: "beforeUpdate hook",
2141    ["u"]: "updated",
2142    ["bum"]: "beforeUnmount hook",
2143    ["um"]: "unmounted hook",
2144    ["a"]: "activated hook",
2145    ["da"]: "deactivated hook",
2146    ["ec"]: "errorCaptured hook",
2147    ["rtc"]: "renderTracked hook",
2148    ["rtg"]: "renderTriggered hook",
2149    [0]: "setup function",
2150    [1]: "render function",
2151    [2]: "watcher getter",
2152    [3]: "watcher callback",
2153    [4]: "watcher cleanup function",
2154    [5]: "native event handler",
2155    [6]: "component event handler",
2156    [7]: "vnode hook",
2157    [8]: "directive hook",
2158    [9]: "transition hook",
2159    [10]: "app errorHandler",
2160    [11]: "app warnHandler",
2161    [12]: "ref function",
2162    [13]: "async component loader",
2163    [14]: "scheduler flush",
2164    [15]: "component update",
2165    [16]: "app unmount cleanup function"
2166  };
2167  function callWithErrorHandling(fn, instance, type, args) {
2168    try {
2169      return args ? fn(...args) : fn();
2170    } catch (err) {
2171      handleError(err, instance, type);
2172    }
2173  }
2174  function callWithAsyncErrorHandling(fn, instance, type, args) {
2175    if (isFunction(fn)) {
2176      const res = callWithErrorHandling(fn, instance, type, args);
2177      if (res && isPromise(res)) {
2178        res.catch((err) => {
2179          handleError(err, instance, type);
2180        });
2181      }
2182      return res;
2183    }
2184    if (isArray(fn)) {
2185      const values = [];
2186      for (let i = 0; i < fn.length; i++) {
2187        values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));
2188      }
2189      return values;
2190    }
2191  }
2192  function handleError(err, instance, type, throwInDev = true) {
2193    const contextVNode = instance ? instance.vnode : null;
2194    const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;
2195    if (instance) {
2196      let cur = instance.parent;
2197      const exposedInstance = instance.proxy;
2198      const errorInfo = `https://vuejs.org/error-reference/#runtime-${type}`;
2199      while (cur) {
2200        const errorCapturedHooks = cur.ec;
2201        if (errorCapturedHooks) {
2202          for (let i = 0; i < errorCapturedHooks.length; i++) {
2203            if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {
2204              return;
2205            }
2206          }
2207        }
2208        cur = cur.parent;
2209      }
2210      if (errorHandler) {
2211        pauseTracking();
2212        callWithErrorHandling(errorHandler, null, 10, [
2213          err,
2214          exposedInstance,
2215          errorInfo
2216        ]);
2217        resetTracking();
2218        return;
2219      }
2220    }
2221    logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);
2222  }
2223  function logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {
2224    if (throwInProd) {
2225      throw err;
2226    } else {
2227      console.error(err);
2228    }
2229  }
2230  const queue = [];
2231  let flushIndex = -1;
2232  const pendingPostFlushCbs = [];
2233  let activePostFlushCbs = null;
2234  let postFlushIndex = 0;
2235  const resolvedPromise = /* @__PURE__ */ Promise.resolve();
2236  let currentFlushPromise = null;
2237  function nextTick(fn) {
2238    const p2 = currentFlushPromise || resolvedPromise;
2239    return fn ? p2.then(this ? fn.bind(this) : fn) : p2;
2240  }
2241  function findInsertionIndex(id) {
2242    let start = flushIndex + 1;
2243    let end = queue.length;
2244    while (start < end) {
2245      const middle = start + end >>> 1;
2246      const middleJob = queue[middle];
2247      const middleJobId = getId(middleJob);
2248      if (middleJobId < id || middleJobId === id && middleJob.flags & 2) {
2249        start = middle + 1;
2250      } else {
2251        end = middle;
2252      }
2253    }
2254    return start;
2255  }
2256  function queueJob(job) {
2257    if (!(job.flags & 1)) {
2258      const jobId = getId(job);
2259      const lastJob = queue[queue.length - 1];
2260      if (!lastJob || // fast path when the job id is larger than the tail
2261      !(job.flags & 2) && jobId >= getId(lastJob)) {
2262        queue.push(job);
2263      } else {
2264        queue.splice(findInsertionIndex(jobId), 0, job);
2265      }
2266      job.flags |= 1;
2267      queueFlush();
2268    }
2269  }
2270  function queueFlush() {
2271    if (!currentFlushPromise) {
2272      currentFlushPromise = resolvedPromise.then(flushJobs);
2273    }
2274  }
2275  function queuePostFlushCb(cb) {
2276    if (!isArray(cb)) {
2277      if (activePostFlushCbs && cb.id === -1) {
2278        activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);
2279      } else if (!(cb.flags & 1)) {
2280        pendingPostFlushCbs.push(cb);
2281        cb.flags |= 1;
2282      }
2283    } else {
2284      pendingPostFlushCbs.push(...cb);
2285    }
2286    queueFlush();
2287  }
2288  function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
2289    for (; i < queue.length; i++) {
2290      const cb = queue[i];
2291      if (cb && cb.flags & 2) {
2292        if (instance && cb.id !== instance.uid) {
2293          continue;
2294        }
2295        queue.splice(i, 1);
2296        i--;
2297        if (cb.flags & 4) {
2298          cb.flags &= ~1;
2299        }
2300        cb();
2301        if (!(cb.flags & 4)) {
2302          cb.flags &= ~1;
2303        }
2304      }
2305    }
2306  }
2307  function flushPostFlushCbs(seen) {
2308    if (pendingPostFlushCbs.length) {
2309      const deduped = [...new Set(pendingPostFlushCbs)].sort(
2310        (a, b) => getId(a) - getId(b)
2311      );
2312      pendingPostFlushCbs.length = 0;
2313      if (activePostFlushCbs) {
2314        activePostFlushCbs.push(...deduped);
2315        return;
2316      }
2317      activePostFlushCbs = deduped;
2318      for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {
2319        const cb = activePostFlushCbs[postFlushIndex];
2320        if (cb.flags & 4) {
2321          cb.flags &= ~1;
2322        }
2323        if (!(cb.flags & 8))
2324          cb();
2325        cb.flags &= ~1;
2326      }
2327      activePostFlushCbs = null;
2328      postFlushIndex = 0;
2329    }
2330  }
2331  const getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;
2332  function flushJobs(seen) {
2333    const check = NOOP;
2334    try {
2335      for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {
2336        const job = queue[flushIndex];
2337        if (job && !(job.flags & 8)) {
2338          if (false)
2339            ;
2340          if (job.flags & 4) {
2341            job.flags &= ~1;
2342          }
2343          callWithErrorHandling(
2344            job,
2345            job.i,
2346            job.i ? 15 : 14
2347          );
2348          if (!(job.flags & 4)) {
2349            job.flags &= ~1;
2350          }
2351        }
2352      }
2353    } finally {
2354      for (; flushIndex < queue.length; flushIndex++) {
2355        const job = queue[flushIndex];
2356        if (job) {
2357          job.flags &= ~1;
2358        }
2359      }
2360      flushIndex = -1;
2361      queue.length = 0;
2362      flushPostFlushCbs();
2363      currentFlushPromise = null;
2364      if (queue.length || pendingPostFlushCbs.length) {
2365        flushJobs();
2366      }
2367    }
2368  }
2369  let devtools$1;
2370  let buffer = [];
2371  function setDevtoolsHook$1(hook, target) {
2372    var _a, _b;
2373    devtools$1 = hook;
2374    if (devtools$1) {
2375      devtools$1.enabled = true;
2376      buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));
2377      buffer = [];
2378    } else if (
2379      // handle late devtools injection - only do this if we are in an actual
2380      // browser environment to avoid the timer handle stalling test runner exit
2381      // (#4815)
2382      typeof window !== "undefined" && // some envs mock window but not fully
2383      window.HTMLElement && // also exclude jsdom
2384      // eslint-disable-next-line no-restricted-syntax
2385      !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes("jsdom"))
2386    ) {
2387      const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];
2388      replay.push((newHook) => {
2389        setDevtoolsHook$1(newHook, target);
2390      });
2391      setTimeout(() => {
2392        if (!devtools$1) {
2393          target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;
2394          buffer = [];
2395        }
2396      }, 3e3);
2397    } else {
2398      buffer = [];
2399    }
2400  }
2401  let currentRenderingInstance = null;
2402  let currentScopeId = null;
2403  function setCurrentRenderingInstance$1(instance) {
2404    const prev = currentRenderingInstance;
2405    currentRenderingInstance = instance;
2406    currentScopeId = instance && instance.type.__scopeId || null;
2407    return prev;
2408  }
2409  function pushScopeId(id) {
2410    currentScopeId = id;
2411  }
2412  function popScopeId() {
2413    currentScopeId = null;
2414  }
2415  const withScopeId = (_id) => withCtx;
2416  function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {
2417    if (!ctx)
2418      return fn;
2419    if (fn._n) {
2420      return fn;
2421    }
2422    const renderFnWithContext = (...args) => {
2423      if (renderFnWithContext._d) {
2424        setBlockTracking(-1);
2425      }
2426      const prevInstance = setCurrentRenderingInstance$1(ctx);
2427      let res;
2428      try {
2429        res = fn(...args);
2430      } finally {
2431        setCurrentRenderingInstance$1(prevInstance);
2432        if (renderFnWithContext._d) {
2433          setBlockTracking(1);
2434        }
2435      }
2436      return res;
2437    };
2438    renderFnWithContext._n = true;
2439    renderFnWithContext._c = true;
2440    renderFnWithContext._d = true;
2441    return renderFnWithContext;
2442  }
2443  function withDirectives(vnode, directives) {
2444    if (currentRenderingInstance === null) {
2445      return vnode;
2446    }
2447    const instance = getComponentPublicInstance(currentRenderingInstance);
2448    const bindings = vnode.dirs || (vnode.dirs = []);
2449    for (let i = 0; i < directives.length; i++) {
2450      let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];
2451      if (dir) {
2452        if (isFunction(dir)) {
2453          dir = {
2454            mounted: dir,
2455            updated: dir
2456          };
2457        }
2458        if (dir.deep) {
2459          traverse(value);
2460        }
2461        bindings.push({
2462          dir,
2463          instance,
2464          value,
2465          oldValue: void 0,
2466          arg,
2467          modifiers
2468        });
2469      }
2470    }
2471    return vnode;
2472  }
2473  function invokeDirectiveHook(vnode, prevVNode, instance, name) {
2474    const bindings = vnode.dirs;
2475    const oldBindings = prevVNode && prevVNode.dirs;
2476    for (let i = 0; i < bindings.length; i++) {
2477      const binding = bindings[i];
2478      if (oldBindings) {
2479        binding.oldValue = oldBindings[i].value;
2480      }
2481      let hook = binding.dir[name];
2482      if (hook) {
2483        pauseTracking();
2484        callWithAsyncErrorHandling(hook, instance, 8, [
2485          vnode.el,
2486          binding,
2487          vnode,
2488          prevVNode
2489        ]);
2490        resetTracking();
2491      }
2492    }
2493  }
2494  const TeleportEndKey = Symbol("_vte");
2495  const isTeleport = (type) => type.__isTeleport;
2496  const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === "");
2497  const isTeleportDeferred = (props) => props && (props.defer || props.defer === "");
2498  const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target instanceof SVGElement;
2499  const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement;
2500  const resolveTarget = (props, select) => {
2501    const targetSelector = props && props.to;
2502    if (isString(targetSelector)) {
2503      if (!select) {
2504        return null;
2505      } else {
2506        const target = select(targetSelector);
2507        return target;
2508      }
2509    } else {
2510      return targetSelector;
2511    }
2512  };
2513  const TeleportImpl = {
2514    name: "Teleport",
2515    __isTeleport: true,
2516    process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {
2517      const {
2518        mc: mountChildren,
2519        pc: patchChildren,
2520        pbc: patchBlockChildren,
2521        o: { insert, querySelector, createText, createComment }
2522      } = internals;
2523      const disabled = isTeleportDisabled(n2.props);
2524      let { shapeFlag, children, dynamicChildren } = n2;
2525      if (n1 == null) {
2526        const placeholder = n2.el = createText("");
2527        const mainAnchor = n2.anchor = createText("");
2528        insert(placeholder, container, anchor);
2529        insert(mainAnchor, container, anchor);
2530        const mount = (container2, anchor2) => {
2531          if (shapeFlag & 16) {
2532            if (parentComponent && parentComponent.isCE) {
2533              parentComponent.ce._teleportTarget = container2;
2534            }
2535            mountChildren(
2536              children,
2537              container2,
2538              anchor2,
2539              parentComponent,
2540              parentSuspense,
2541              namespace,
2542              slotScopeIds,
2543              optimized
2544            );
2545          }
2546        };
2547        const mountToTarget = () => {
2548          const target = n2.target = resolveTarget(n2.props, querySelector);
2549          const targetAnchor = prepareAnchor(target, n2, createText, insert);
2550          if (target) {
2551            if (namespace !== "svg" && isTargetSVG(target)) {
2552              namespace = "svg";
2553            } else if (namespace !== "mathml" && isTargetMathML(target)) {
2554              namespace = "mathml";
2555            }
2556            if (!disabled) {
2557              mount(target, targetAnchor);
2558              updateCssVars(n2, false);
2559            }
2560          }
2561        };
2562        if (disabled) {
2563          mount(container, mainAnchor);
2564          updateCssVars(n2, true);
2565        }
2566        if (isTeleportDeferred(n2.props)) {
2567          queuePostRenderEffect(mountToTarget, parentSuspense);
2568        } else {
2569          mountToTarget();
2570        }
2571      } else {
2572        n2.el = n1.el;
2573        n2.targetStart = n1.targetStart;
2574        const mainAnchor = n2.anchor = n1.anchor;
2575        const target = n2.target = n1.target;
2576        const targetAnchor = n2.targetAnchor = n1.targetAnchor;
2577        const wasDisabled = isTeleportDisabled(n1.props);
2578        const currentContainer = wasDisabled ? container : target;
2579        const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;
2580        if (namespace === "svg" || isTargetSVG(target)) {
2581          namespace = "svg";
2582        } else if (namespace === "mathml" || isTargetMathML(target)) {
2583          namespace = "mathml";
2584        }
2585        if (dynamicChildren) {
2586          patchBlockChildren(
2587            n1.dynamicChildren,
2588            dynamicChildren,
2589            currentContainer,
2590            parentComponent,
2591            parentSuspense,
2592            namespace,
2593            slotScopeIds
2594          );
2595          traverseStaticChildren(n1, n2, true);
2596        } else if (!optimized) {
2597          patchChildren(
2598            n1,
2599            n2,
2600            currentContainer,
2601            currentAnchor,
2602            parentComponent,
2603            parentSuspense,
2604            namespace,
2605            slotScopeIds,
2606            false
2607          );
2608        }
2609        if (disabled) {
2610          if (!wasDisabled) {
2611            moveTeleport(
2612              n2,
2613              container,
2614              mainAnchor,
2615              internals,
2616              1
2617            );
2618          } else {
2619            if (n2.props && n1.props && n2.props.to !== n1.props.to) {
2620              n2.props.to = n1.props.to;
2621            }
2622          }
2623        } else {
2624          if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {
2625            const nextTarget = n2.target = resolveTarget(
2626              n2.props,
2627              querySelector
2628            );
2629            if (nextTarget) {
2630              moveTeleport(
2631                n2,
2632                nextTarget,
2633                null,
2634                internals,
2635                0
2636              );
2637            }
2638          } else if (wasDisabled) {
2639            moveTeleport(
2640              n2,
2641              target,
2642              targetAnchor,
2643              internals,
2644              1
2645            );
2646          }
2647        }
2648        updateCssVars(n2, disabled);
2649      }
2650    },
2651    remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {
2652      const {
2653        shapeFlag,
2654        children,
2655        anchor,
2656        targetStart,
2657        targetAnchor,
2658        target,
2659        props
2660      } = vnode;
2661      if (target) {
2662        hostRemove(targetStart);
2663        hostRemove(targetAnchor);
2664      }
2665      doRemove && hostRemove(anchor);
2666      if (shapeFlag & 16) {
2667        const shouldRemove = doRemove || !isTeleportDisabled(props);
2668        for (let i = 0; i < children.length; i++) {
2669          const child = children[i];
2670          unmount(
2671            child,
2672            parentComponent,
2673            parentSuspense,
2674            shouldRemove,
2675            !!child.dynamicChildren
2676          );
2677        }
2678      }
2679    },
2680    move: moveTeleport,
2681    hydrate: hydrateTeleport
2682  };
2683  function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {
2684    if (moveType === 0) {
2685      insert(vnode.targetAnchor, container, parentAnchor);
2686    }
2687    const { el, anchor, shapeFlag, children, props } = vnode;
2688    const isReorder = moveType === 2;
2689    if (isReorder) {
2690      insert(el, container, parentAnchor);
2691    }
2692    if (!isReorder || isTeleportDisabled(props)) {
2693      if (shapeFlag & 16) {
2694        for (let i = 0; i < children.length; i++) {
2695          move(
2696            children[i],
2697            container,
2698            parentAnchor,
2699            2
2700          );
2701        }
2702      }
2703    }
2704    if (isReorder) {
2705      insert(anchor, container, parentAnchor);
2706    }
2707  }
2708  function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {
2709    o: { nextSibling, parentNode, querySelector, insert, createText }
2710  }, hydrateChildren) {
2711    const target = vnode.target = resolveTarget(
2712      vnode.props,
2713      querySelector
2714    );
2715    if (target) {
2716      const disabled = isTeleportDisabled(vnode.props);
2717      const targetNode = target._lpa || target.firstChild;
2718      if (vnode.shapeFlag & 16) {
2719        if (disabled) {
2720          vnode.anchor = hydrateChildren(
2721            nextSibling(node),
2722            vnode,
2723            parentNode(node),
2724            parentComponent,
2725            parentSuspense,
2726            slotScopeIds,
2727            optimized
2728          );
2729          vnode.targetStart = targetNode;
2730          vnode.targetAnchor = targetNode && nextSibling(targetNode);
2731        } else {
2732          vnode.anchor = nextSibling(node);
2733          let targetAnchor = targetNode;
2734          while (targetAnchor) {
2735            if (targetAnchor && targetAnchor.nodeType === 8) {
2736              if (targetAnchor.data === "teleport start anchor") {
2737                vnode.targetStart = targetAnchor;
2738              } else if (targetAnchor.data === "teleport anchor") {
2739                vnode.targetAnchor = targetAnchor;
2740                target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);
2741                break;
2742              }
2743            }
2744            targetAnchor = nextSibling(targetAnchor);
2745          }
2746          if (!vnode.targetAnchor) {
2747            prepareAnchor(target, vnode, createText, insert);
2748          }
2749          hydrateChildren(
2750            targetNode && nextSibling(targetNode),
2751            vnode,
2752            target,
2753            parentComponent,
2754            parentSuspense,
2755            slotScopeIds,
2756            optimized
2757          );
2758        }
2759      }
2760      updateCssVars(vnode, disabled);
2761    }
2762    return vnode.anchor && nextSibling(vnode.anchor);
2763  }
2764  const Teleport = TeleportImpl;
2765  function updateCssVars(vnode, isDisabled) {
2766    const ctx = vnode.ctx;
2767    if (ctx && ctx.ut) {
2768      let node, anchor;
2769      if (isDisabled) {
2770        node = vnode.el;
2771        anchor = vnode.anchor;
2772      } else {
2773        node = vnode.targetStart;
2774        anchor = vnode.targetAnchor;
2775      }
2776      while (node && node !== anchor) {
2777        if (node.nodeType === 1)
2778          node.setAttribute("data-v-owner", ctx.uid);
2779        node = node.nextSibling;
2780      }
2781      ctx.ut();
2782    }
2783  }
2784  function prepareAnchor(target, vnode, createText, insert) {
2785    const targetStart = vnode.targetStart = createText("");
2786    const targetAnchor = vnode.targetAnchor = createText("");
2787    targetStart[TeleportEndKey] = targetAnchor;
2788    if (target) {
2789      insert(targetStart, target);
2790      insert(targetAnchor, target);
2791    }
2792    return targetAnchor;
2793  }
2794  const leaveCbKey = Symbol("_leaveCb");
2795  const enterCbKey$1 = Symbol("_enterCb");
2796  function useTransitionState() {
2797    const state = {
2798      isMounted: false,
2799      isLeaving: false,
2800      isUnmounting: false,
2801      leavingVNodes: /* @__PURE__ */ new Map()
2802    };
2803    onMounted(() => {
2804      state.isMounted = true;
2805    });
2806    onBeforeUnmount(() => {
2807      state.isUnmounting = true;
2808    });
2809    return state;
2810  }
2811  const TransitionHookValidator = [Function, Array];
2812  const BaseTransitionPropsValidators = {
2813    mode: String,
2814    appear: Boolean,
2815    persisted: Boolean,
2816    // enter
2817    onBeforeEnter: TransitionHookValidator,
2818    onEnter: TransitionHookValidator,
2819    onAfterEnter: TransitionHookValidator,
2820    onEnterCancelled: TransitionHookValidator,
2821    // leave
2822    onBeforeLeave: TransitionHookValidator,
2823    onLeave: TransitionHookValidator,
2824    onAfterLeave: TransitionHookValidator,
2825    onLeaveCancelled: TransitionHookValidator,
2826    // appear
2827    onBeforeAppear: TransitionHookValidator,
2828    onAppear: TransitionHookValidator,
2829    onAfterAppear: TransitionHookValidator,
2830    onAppearCancelled: TransitionHookValidator
2831  };
2832  const recursiveGetSubtree = (instance) => {
2833    const subTree = instance.subTree;
2834    return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;
2835  };
2836  const BaseTransitionImpl = {
2837    name: `BaseTransition`,
2838    props: BaseTransitionPropsValidators,
2839    setup(props, { slots }) {
2840      const instance = getCurrentInstance();
2841      const state = useTransitionState();
2842      return () => {
2843        const children = slots.default && getTransitionRawChildren(slots.default(), true);
2844        if (!children || !children.length) {
2845          return;
2846        }
2847        const child = findNonCommentChild(children);
2848        const rawProps = toRaw(props);
2849        const { mode } = rawProps;
2850        if (state.isLeaving) {
2851          return emptyPlaceholder(child);
2852        }
2853        const innerChild = getInnerChild$1(child);
2854        if (!innerChild) {
2855          return emptyPlaceholder(child);
2856        }
2857        let enterHooks = resolveTransitionHooks(
2858          innerChild,
2859          rawProps,
2860          state,
2861          instance,
2862          // #11061, ensure enterHooks is fresh after clone
2863          (hooks) => enterHooks = hooks
2864        );
2865        if (innerChild.type !== Comment) {
2866          setTransitionHooks(innerChild, enterHooks);
2867        }
2868        const oldChild = instance.subTree;
2869        const oldInnerChild = oldChild && getInnerChild$1(oldChild);
2870        if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild) && recursiveGetSubtree(instance).type !== Comment) {
2871          const leavingHooks = resolveTransitionHooks(
2872            oldInnerChild,
2873            rawProps,
2874            state,
2875            instance
2876          );
2877          setTransitionHooks(oldInnerChild, leavingHooks);
2878          if (mode === "out-in" && innerChild.type !== Comment) {
2879            state.isLeaving = true;
2880            leavingHooks.afterLeave = () => {
2881              state.isLeaving = false;
2882              if (!(instance.job.flags & 8)) {
2883                instance.update();
2884              }
2885              delete leavingHooks.afterLeave;
2886            };
2887            return emptyPlaceholder(child);
2888          } else if (mode === "in-out" && innerChild.type !== Comment) {
2889            leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
2890              const leavingVNodesCache = getLeavingNodesForType(
2891                state,
2892                oldInnerChild
2893              );
2894              leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;
2895              el[leaveCbKey] = () => {
2896                earlyRemove();
2897                el[leaveCbKey] = void 0;
2898                delete enterHooks.delayedLeave;
2899              };
2900              enterHooks.delayedLeave = delayedLeave;
2901            };
2902          }
2903        }
2904        return child;
2905      };
2906    }
2907  };
2908  function findNonCommentChild(children) {
vendor: 5,565 bytes, lines 2909-3115
2909    let child = children[0];
2910    if (children.length > 1) {
2911      for (const c of children) {
2912        if (c.type !== Comment) {
2913          child = c;
2914          break;
2915        }
2916      }
2917    }
2918    return child;
2919  }
2920  const BaseTransition = BaseTransitionImpl;
2921  function getLeavingNodesForType(state, vnode) {
2922    const { leavingVNodes } = state;
2923    let leavingVNodesCache = leavingVNodes.get(vnode.type);
2924    if (!leavingVNodesCache) {
2925      leavingVNodesCache = /* @__PURE__ */ Object.create(null);
2926      leavingVNodes.set(vnode.type, leavingVNodesCache);
2927    }
2928    return leavingVNodesCache;
2929  }
2930  function resolveTransitionHooks(vnode, props, state, instance, postClone) {
2931    const {
2932      appear,
2933      mode,
2934      persisted = false,
2935      onBeforeEnter,
2936      onEnter,
2937      onAfterEnter,
2938      onEnterCancelled,
2939      onBeforeLeave,
2940      onLeave,
2941      onAfterLeave,
2942      onLeaveCancelled,
2943      onBeforeAppear,
2944      onAppear,
2945      onAfterAppear,
2946      onAppearCancelled
2947    } = props;
2948    const key = String(vnode.key);
2949    const leavingVNodesCache = getLeavingNodesForType(state, vnode);
2950    const callHook2 = (hook, args) => {
2951      hook && callWithAsyncErrorHandling(
2952        hook,
2953        instance,
2954        9,
2955        args
2956      );
2957    };
2958    const callAsyncHook = (hook, args) => {
2959      const done = args[1];
2960      callHook2(hook, args);
2961      if (isArray(hook)) {
2962        if (hook.every((hook2) => hook2.length <= 1))
2963          done();
2964      } else if (hook.length <= 1) {
2965        done();
2966      }
2967    };
2968    const hooks = {
2969      mode,
2970      persisted,
2971      beforeEnter(el) {
2972        let hook = onBeforeEnter;
2973        if (!state.isMounted) {
2974          if (appear) {
2975            hook = onBeforeAppear || onBeforeEnter;
2976          } else {
2977            return;
2978          }
2979        }
2980        if (el[leaveCbKey]) {
2981          el[leaveCbKey](
2982            true
2983            /* cancelled */
2984          );
2985        }
2986        const leavingVNode = leavingVNodesCache[key];
2987        if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {
2988          leavingVNode.el[leaveCbKey]();
2989        }
2990        callHook2(hook, [el]);
2991      },
2992      enter(el) {
2993        let hook = onEnter;
2994        let afterHook = onAfterEnter;
2995        let cancelHook = onEnterCancelled;
2996        if (!state.isMounted) {
2997          if (appear) {
2998            hook = onAppear || onEnter;
2999            afterHook = onAfterAppear || onAfterEnter;
3000            cancelHook = onAppearCancelled || onEnterCancelled;
3001          } else {
3002            return;
3003          }
3004        }
3005        let called = false;
3006        const done = el[enterCbKey$1] = (cancelled) => {
3007          if (called)
3008            return;
3009          called = true;
3010          if (cancelled) {
3011            callHook2(cancelHook, [el]);
3012          } else {
3013            callHook2(afterHook, [el]);
3014          }
3015          if (hooks.delayedLeave) {
3016            hooks.delayedLeave();
3017          }
3018          el[enterCbKey$1] = void 0;
3019        };
3020        if (hook) {
3021          callAsyncHook(hook, [el, done]);
3022        } else {
3023          done();
3024        }
3025      },
3026      leave(el, remove2) {
3027        const key2 = String(vnode.key);
3028        if (el[enterCbKey$1]) {
3029          el[enterCbKey$1](
3030            true
3031            /* cancelled */
3032          );
3033        }
3034        if (state.isUnmounting) {
3035          return remove2();
3036        }
3037        callHook2(onBeforeLeave, [el]);
3038        let called = false;
3039        const done = el[leaveCbKey] = (cancelled) => {
3040          if (called)
3041            return;
3042          called = true;
3043          remove2();
3044          if (cancelled) {
3045            callHook2(onLeaveCancelled, [el]);
3046          } else {
3047            callHook2(onAfterLeave, [el]);
3048          }
3049          el[leaveCbKey] = void 0;
3050          if (leavingVNodesCache[key2] === vnode) {
3051            delete leavingVNodesCache[key2];
3052          }
3053        };
3054        leavingVNodesCache[key2] = vnode;
3055        if (onLeave) {
3056          callAsyncHook(onLeave, [el, done]);
3057        } else {
3058          done();
3059        }
3060      },
3061      clone(vnode2) {
3062        const hooks2 = resolveTransitionHooks(
3063          vnode2,
3064          props,
3065          state,
3066          instance,
3067          postClone
3068        );
3069        if (postClone)
3070          postClone(hooks2);
3071        return hooks2;
3072      }
3073    };
3074    return hooks;
3075  }
3076  function emptyPlaceholder(vnode) {
3077    if (isKeepAlive(vnode)) {
3078      vnode = cloneVNode(vnode);
3079      vnode.children = null;
3080      return vnode;
3081    }
3082  }
3083  function getInnerChild$1(vnode) {
3084    if (!isKeepAlive(vnode)) {
3085      if (isTeleport(vnode.type) && vnode.children) {
3086        return findNonCommentChild(vnode.children);
3087      }
3088      return vnode;
3089    }
3090    const { shapeFlag, children } = vnode;
3091    if (children) {
3092      if (shapeFlag & 16) {
3093        return children[0];
3094      }
3095      if (shapeFlag & 32 && isFunction(children.default)) {
3096        return children.default();
3097      }
3098    }
3099  }
3100  function setTransitionHooks(vnode, hooks) {
3101    if (vnode.shapeFlag & 6 && vnode.component) {
3102      vnode.transition = hooks;
3103      setTransitionHooks(vnode.component.subTree, hooks);
3104    } else if (vnode.shapeFlag & 128) {
3105      vnode.ssContent.transition = hooks.clone(vnode.ssContent);
3106      vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
3107    } else {
3108      vnode.transition = hooks;
3109    }
3110  }
3111  function getTransitionRawChildren(children, keepComment = false, parentKey) {
3112    let ret = [];
3113    let keyedFragmentCount = 0;
3114    for (let i = 0; i < children.length; i++) {
3115      let child = children[i];
3116      const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);
3117      if (child.type === Fragment) {
3118        if (child.patchFlag & 128)
3119          keyedFragmentCount++;
3120        ret = ret.concat(
3121          getTransitionRawChildren(child.children, keepComment, key)
3122        );
3123      } else if (keepComment || child.type !== Comment) {
3124        ret.push(key != null ? cloneVNode(child, { key }) : child);
3125      }
3126    }
3127    if (keyedFragmentCount > 1) {
3128      for (let i = 0; i < ret.length; i++) {
3129        ret[i].patchFlag = -2;
3130      }
3131    }
3132    return ret;
3133  }
3134  /*! #__NO_SIDE_EFFECTS__ */
3135  // @__NO_SIDE_EFFECTS__
3136  function defineComponent(options, extraOptions) {
3137    return isFunction(options) ? (
3138      // #8236: extend call and options.name access are considered side-effects
3139      // by Rollup, so we have to wrap it in a pure-annotated IIFE.
3140      /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()
3141    ) : options;
3142  }
3143  function useId() {
3144    const i = getCurrentInstance();
3145    if (i) {
3146      return (i.appContext.config.idPrefix || "v") + "-" + i.ids[0] + i.ids[1]++;
3147    }
3148    return "";
3149  }
3150  function markAsyncBoundary(instance) {
3151    instance.ids = [instance.ids[0] + instance.ids[2]++ + "-", 0, 0];
3152  }
3153  function useTemplateRef(key) {
3154    const i = getCurrentInstance();
3155    const r = shallowRef(null);
3156    if (i) {
3157      const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;
3158      {
3159        Object.defineProperty(refs, key, {
3160          enumerable: true,
3161          get: () => r.value,
3162          set: (val) => r.value = val
3163        });
3164      }
3165    }
3166    const ret = r;
3167    return ret;
3168  }
3169  function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
3170    if (isArray(rawRef)) {
3171      rawRef.forEach(
3172        (r, i) => setRef(
3173          r,
3174          oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef),
3175          parentSuspense,
3176          vnode,
3177          isUnmount
3178        )
3179      );
3180      return;
3181    }
3182    if (isAsyncWrapper(vnode) && !isUnmount) {
3183      return;
3184    }
3185    const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;
3186    const value = isUnmount ? null : refValue;
3187    const { i: owner, r: ref2 } = rawRef;
3188    const oldRef = oldRawRef && oldRawRef.r;
3189    const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;
3190    const setupState = owner.setupState;
3191    const rawSetupState = toRaw(setupState);
3192    const canSetSetupRef = setupState === EMPTY_OBJ ? () => false : (key) => {
3193      return hasOwn(rawSetupState, key);
3194    };
3195    if (oldRef != null && oldRef !== ref2) {
3196      if (isString(oldRef)) {
3197        refs[oldRef] = null;
3198        if (canSetSetupRef(oldRef)) {
3199          setupState[oldRef] = null;
3200        }
3201      } else if (isRef(oldRef)) {
3202        oldRef.value = null;
3203      }
3204    }
3205    if (isFunction(ref2)) {
3206      callWithErrorHandling(ref2, owner, 12, [value, refs]);
3207    } else {
3208      const _isString = isString(ref2);
3209      const _isRef = isRef(ref2);
3210      if (_isString || _isRef) {
3211        const doSet = () => {
3212          if (rawRef.f) {
3213            const existing = _isString ? canSetSetupRef(ref2) ? setupState[ref2] : refs[ref2] : ref2.value;
3214            if (isUnmount) {
3215              isArray(existing) && remove(existing, refValue);
3216            } else {
3217              if (!isArray(existing)) {
3218                if (_isString) {
3219                  refs[ref2] = [refValue];
3220                  if (canSetSetupRef(ref2)) {
3221                    setupState[ref2] = refs[ref2];
3222                  }
3223                } else {
3224                  ref2.value = [refValue];
3225                  if (rawRef.k)
3226                    refs[rawRef.k] = ref2.value;
3227                }
3228              } else if (!existing.includes(refValue)) {
3229                existing.push(refValue);
3230              }
3231            }
3232          } else if (_isString) {
3233            refs[ref2] = value;
3234            if (canSetSetupRef(ref2)) {
3235              setupState[ref2] = value;
3236            }
3237          } else if (_isRef) {
3238            ref2.value = value;
3239            if (rawRef.k)
3240              refs[rawRef.k] = value;
3241          } else
3242            ;
3243        };
3244        if (value) {
3245          doSet.id = -1;
3246          queuePostRenderEffect(doSet, parentSuspense);
3247        } else {
3248          doSet();
3249        }
3250      }
3251    }
3252  }
3253  let hasLoggedMismatchError = false;
vendor: 7,169 bytes, lines 3254-3470
3254  const logMismatchError = () => {
3255    if (hasLoggedMismatchError) {
3256      return;
3257    }
3258    console.error("Hydration completed but contains mismatches.");
3259    hasLoggedMismatchError = true;
3260  };
3261  const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject";
3262  const isMathMLContainer = (container) => container.namespaceURI.includes("MathML");
3263  const getContainerType = (container) => {
3264    if (container.nodeType !== 1)
3265      return void 0;
3266    if (isSVGContainer(container))
3267      return "svg";
3268    if (isMathMLContainer(container))
3269      return "mathml";
3270    return void 0;
3271  };
3272  const isComment = (node) => node.nodeType === 8;
3273  function createHydrationFunctions(rendererInternals) {
3274    const {
3275      mt: mountComponent,
3276      p: patch,
3277      o: {
3278        patchProp: patchProp2,
3279        createText,
3280        nextSibling,
3281        parentNode,
3282        remove: remove2,
3283        insert,
3284        createComment
3285      }
3286    } = rendererInternals;
3287    const hydrate2 = (vnode, container) => {
3288      if (!container.hasChildNodes()) {
3289        patch(null, vnode, container);
3290        flushPostFlushCbs();
3291        container._vnode = vnode;
3292        return;
3293      }
3294      hydrateNode(container.firstChild, vnode, null, null, null);
3295      flushPostFlushCbs();
3296      container._vnode = vnode;
3297    };
3298    const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {
3299      optimized = optimized || !!vnode.dynamicChildren;
3300      const isFragmentStart = isComment(node) && node.data === "[";
3301      const onMismatch = () => handleMismatch(
3302        node,
3303        vnode,
3304        parentComponent,
3305        parentSuspense,
3306        slotScopeIds,
3307        isFragmentStart
3308      );
3309      const { type, ref: ref2, shapeFlag, patchFlag } = vnode;
3310      let domType = node.nodeType;
3311      vnode.el = node;
3312      if (patchFlag === -2) {
3313        optimized = false;
3314        vnode.dynamicChildren = null;
3315      }
3316      let nextNode = null;
3317      switch (type) {
3318        case Text:
3319          if (domType !== 3) {
3320            if (vnode.children === "") {
3321              insert(vnode.el = createText(""), parentNode(node), node);
3322              nextNode = node;
3323            } else {
3324              nextNode = onMismatch();
3325            }
3326          } else {
3327            if (node.data !== vnode.children) {
3328              logMismatchError();
3329              node.data = vnode.children;
3330            }
3331            nextNode = nextSibling(node);
3332          }
3333          break;
3334        case Comment:
3335          if (isTemplateNode(node)) {
3336            nextNode = nextSibling(node);
3337            replaceNode(
3338              vnode.el = node.content.firstChild,
3339              node,
3340              parentComponent
3341            );
3342          } else if (domType !== 8 || isFragmentStart) {
3343            nextNode = onMismatch();
3344          } else {
3345            nextNode = nextSibling(node);
3346          }
3347          break;
3348        case Static:
3349          if (isFragmentStart) {
3350            node = nextSibling(node);
3351            domType = node.nodeType;
3352          }
3353          if (domType === 1 || domType === 3) {
3354            nextNode = node;
3355            const needToAdoptContent = !vnode.children.length;
3356            for (let i = 0; i < vnode.staticCount; i++) {
3357              if (needToAdoptContent)
3358                vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data;
3359              if (i === vnode.staticCount - 1) {
3360                vnode.anchor = nextNode;
3361              }
3362              nextNode = nextSibling(nextNode);
3363            }
3364            return isFragmentStart ? nextSibling(nextNode) : nextNode;
3365          } else {
3366            onMismatch();
3367          }
3368          break;
3369        case Fragment:
3370          if (!isFragmentStart) {
3371            nextNode = onMismatch();
3372          } else {
3373            nextNode = hydrateFragment(
3374              node,
3375              vnode,
3376              parentComponent,
3377              parentSuspense,
3378              slotScopeIds,
3379              optimized
3380            );
3381          }
3382          break;
3383        default:
3384          if (shapeFlag & 1) {
3385            if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) {
3386              nextNode = onMismatch();
3387            } else {
3388              nextNode = hydrateElement(
3389                node,
3390                vnode,
3391                parentComponent,
3392                parentSuspense,
3393                slotScopeIds,
3394                optimized
3395              );
3396            }
3397          } else if (shapeFlag & 6) {
3398            vnode.slotScopeIds = slotScopeIds;
3399            const container = parentNode(node);
3400            if (isFragmentStart) {
3401              nextNode = locateClosingAnchor(node);
3402            } else if (isComment(node) && node.data === "teleport start") {
3403              nextNode = locateClosingAnchor(node, node.data, "teleport end");
3404            } else {
3405              nextNode = nextSibling(node);
3406            }
3407            mountComponent(
3408              vnode,
3409              container,
3410              null,
3411              parentComponent,
3412              parentSuspense,
3413              getContainerType(container),
3414              optimized
3415            );
3416            if (isAsyncWrapper(vnode)) {
3417              let subTree;
3418              if (isFragmentStart) {
3419                subTree = createVNode(Fragment);
3420                subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
3421              } else {
3422                subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
3423              }
3424              subTree.el = node;
3425              vnode.component.subTree = subTree;
3426            }
3427          } else if (shapeFlag & 64) {
3428            if (domType !== 8) {
3429              nextNode = onMismatch();
3430            } else {
3431              nextNode = vnode.type.hydrate(
3432                node,
3433                vnode,
3434                parentComponent,
3435                parentSuspense,
3436                slotScopeIds,
3437                optimized,
3438                rendererInternals,
3439                hydrateChildren
3440              );
3441            }
3442          } else if (shapeFlag & 128) {
3443            nextNode = vnode.type.hydrate(
3444              node,
3445              vnode,
3446              parentComponent,
3447              parentSuspense,
3448              getContainerType(parentNode(node)),
3449              slotScopeIds,
3450              optimized,
3451              rendererInternals,
3452              hydrateNode
3453            );
3454          } else
3455            ;
3456      }
3457      if (ref2 != null) {
3458        setRef(ref2, null, parentSuspense, vnode);
3459      }
3460      return nextNode;
3461    };
3462    const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {
3463      optimized = optimized || !!vnode.dynamicChildren;
3464      const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode;
3465      const forcePatch = type === "input" || type === "option";
3466      if (forcePatch || patchFlag !== -1) {
3467        if (dirs) {
3468          invokeDirectiveHook(vnode, null, parentComponent, "created");
3469        }
3470        let needCallTransitionHooks = false;
3471        if (isTemplateNode(el)) {
3472          needCallTransitionHooks = needTransition(
3473            null,
3474            // no need check parentSuspense in hydration
3475            transition
3476          ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;
3477          const content = el.content.firstChild;
3478          if (needCallTransitionHooks) {
3479            transition.beforeEnter(content);
3480          }
3481          replaceNode(content, el, parentComponent);
3482          vnode.el = el = content;
3483        }
3484        if (shapeFlag & 16 && // skip if element has innerHTML / textContent
3485        !(props && (props.innerHTML || props.textContent))) {
3486          let next = hydrateChildren(
3487            el.firstChild,
3488            vnode,
3489            el,
3490            parentComponent,
3491            parentSuspense,
3492            slotScopeIds,
3493            optimized
3494          );
3495          while (next) {
3496            if (!isMismatchAllowed(
3497              el,
3498              1
3499              /* CHILDREN */
3500            )) {
3501              logMismatchError();
3502            }
3503            const cur = next;
3504            next = next.nextSibling;
3505            remove2(cur);
3506          }
3507        } else if (shapeFlag & 8) {
3508          let clientText = vnode.children;
3509          if (clientText[0] === "\n" && (el.tagName === "PRE" || el.tagName === "TEXTAREA")) {
3510            clientText = clientText.slice(1);
3511          }
3512          if (el.textContent !== clientText) {
3513            if (!isMismatchAllowed(
3514              el,
3515              0
3516              /* TEXT */
3517            )) {
3518              logMismatchError();
3519            }
3520            el.textContent = vnode.children;
3521          }
3522        }
3523        if (props) {
3524          if (forcePatch || !optimized || patchFlag & (16 | 32)) {
3525            const isCustomElement = el.tagName.includes("-");
3526            for (const key in props) {
3527              if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers
3528              key[0] === "." || isCustomElement) {
3529                patchProp2(el, key, null, props[key], void 0, parentComponent);
3530              }
3531            }
3532          } else if (props.onClick) {
3533            patchProp2(
3534              el,
3535              "onClick",
3536              null,
3537              props.onClick,
3538              void 0,
3539              parentComponent
3540            );
3541          } else if (patchFlag & 4 && isReactive(props.style)) {
3542            for (const key in props.style)
3543              props.style[key];
3544          }
3545        }
3546        let vnodeHooks;
3547        if (vnodeHooks = props && props.onVnodeBeforeMount) {
3548          invokeVNodeHook(vnodeHooks, parentComponent, vnode);
3549        }
3550        if (dirs) {
3551          invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
3552        }
3553        if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {
3554          queueEffectWithSuspense(() => {
3555            vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);
3556            needCallTransitionHooks && transition.enter(el);
3557            dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted");
3558          }, parentSuspense);
3559        }
3560      }
3561      return el.nextSibling;
3562    };
3563    const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {
3564      optimized = optimized || !!parentVNode.dynamicChildren;
3565      const children = parentVNode.children;
3566      const l = children.length;
3567      for (let i = 0; i < l; i++) {
3568        const vnode = optimized ? children[i] : children[i] = normalizeVNode$1(children[i]);
3569        const isText = vnode.type === Text;
3570        if (node) {
3571          if (isText && !optimized) {
3572            if (i + 1 < l && normalizeVNode$1(children[i + 1]).type === Text) {
3573              insert(
3574                createText(
3575                  node.data.slice(vnode.children.length)
3576                ),
3577                container,
3578                nextSibling(node)
3579              );
3580              node.data = vnode.children;
3581            }
3582          }
3583          node = hydrateNode(
3584            node,
3585            vnode,
3586            parentComponent,
3587            parentSuspense,
3588            slotScopeIds,
3589            optimized
3590          );
3591        } else if (isText && !vnode.children) {
3592          insert(vnode.el = createText(""), container);
3593        } else {
3594          if (!isMismatchAllowed(
3595            container,
3596            1
3597            /* CHILDREN */
3598          )) {
3599            logMismatchError();
3600          }
3601          patch(
3602            null,
3603            vnode,
3604            container,
3605            null,
3606            parentComponent,
3607            parentSuspense,
3608            getContainerType(container),
3609            slotScopeIds
3610          );
3611        }
3612      }
3613      return node;
3614    };
3615    const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {
3616      const { slotScopeIds: fragmentSlotScopeIds } = vnode;
3617      if (fragmentSlotScopeIds) {
3618        slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;
3619      }
3620      const container = parentNode(node);
3621      const next = hydrateChildren(
3622        nextSibling(node),
3623        vnode,
3624        container,
3625        parentComponent,
3626        parentSuspense,
3627        slotScopeIds,
3628        optimized
3629      );
3630      if (next && isComment(next) && next.data === "]") {
3631        return nextSibling(vnode.anchor = next);
3632      } else {
3633        logMismatchError();
3634        insert(vnode.anchor = createComment(`]`), container, next);
3635        return next;
3636      }
3637    };
3638    const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {
3639      if (!isMismatchAllowed(
3640        node.parentElement,
3641        1
3642        /* CHILDREN */
3643      )) {
3644        logMismatchError();
3645      }
3646      vnode.el = null;
3647      if (isFragment) {
3648        const end = locateClosingAnchor(node);
3649        while (true) {
3650          const next2 = nextSibling(node);
3651          if (next2 && next2 !== end) {
3652            remove2(next2);
3653          } else {
3654            break;
3655          }
3656        }
3657      }
3658      const next = nextSibling(node);
3659      const container = parentNode(node);
3660      remove2(node);
3661      patch(
3662        null,
3663        vnode,
3664        container,
3665        next,
3666        parentComponent,
3667        parentSuspense,
3668        getContainerType(container),
3669        slotScopeIds
3670      );
3671      return next;
3672    };
3673    const locateClosingAnchor = (node, open = "[", close = "]") => {
3674      let match = 0;
3675      while (node) {
3676        node = nextSibling(node);
3677        if (node && isComment(node)) {
3678          if (node.data === open)
3679            match++;
3680          if (node.data === close) {
3681            if (match === 0) {
3682              return nextSibling(node);
3683            } else {
3684              match--;
3685            }
3686          }
3687        }
3688      }
3689      return node;
3690    };
3691    const replaceNode = (newNode, oldNode, parentComponent) => {
3692      const parentNode2 = oldNode.parentNode;
3693      if (parentNode2) {
3694        parentNode2.replaceChild(newNode, oldNode);
3695      }
3696      let parent = parentComponent;
3697      while (parent) {
3698        if (parent.vnode.el === oldNode) {
3699          parent.vnode.el = parent.subTree.el = newNode;
3700        }
3701        parent = parent.parent;
3702      }
3703    };
3704    const isTemplateNode = (node) => {
3705      return node.nodeType === 1 && node.tagName === "TEMPLATE";
3706    };
3707    return [hydrate2, hydrateNode];
3708  }
3709  const allowMismatchAttr = "data-allow-mismatch";
3710  const MismatchTypeString = {
3711    [
3712      0
3713      /* TEXT */
3714    ]: "text",
3715    [
3716      1
3717      /* CHILDREN */
3718    ]: "children",
3719    [
3720      2
3721      /* CLASS */
3722    ]: "class",
3723    [
3724      3
3725      /* STYLE */
3726    ]: "style",
3727    [
3728      4
3729      /* ATTRIBUTE */
3730    ]: "attribute"
3731  };
3732  function isMismatchAllowed(el, allowedType) {
3733    if (allowedType === 0 || allowedType === 1) {
3734      while (el && !el.hasAttribute(allowMismatchAttr)) {
3735        el = el.parentElement;
3736      }
3737    }
3738    const allowedAttr = el && el.getAttribute(allowMismatchAttr);
3739    if (allowedAttr == null) {
3740      return false;
vendor: 20,558 bytes, lines 3741-4393
3741    } else if (allowedAttr === "") {
3742      return true;
3743    } else {
3744      const list = allowedAttr.split(",");
3745      if (allowedType === 0 && list.includes("children")) {
3746        return true;
3747      }
3748      return allowedAttr.split(",").includes(MismatchTypeString[allowedType]);
3749    }
3750  }
3751  const requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1));
3752  const cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id));
3753  const hydrateOnIdle = (timeout = 1e4) => (hydrate2) => {
3754    const id = requestIdleCallback(hydrate2, { timeout });
3755    return () => cancelIdleCallback(id);
3756  };
3757  function elementIsVisibleInViewport(el) {
3758    const { top, left, bottom, right } = el.getBoundingClientRect();
3759    const { innerHeight, innerWidth } = window;
3760    return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth);
3761  }
3762  const hydrateOnVisible = (opts) => (hydrate2, forEach) => {
3763    const ob = new IntersectionObserver((entries) => {
3764      for (const e of entries) {
3765        if (!e.isIntersecting)
3766          continue;
3767        ob.disconnect();
3768        hydrate2();
3769        break;
3770      }
3771    }, opts);
3772    forEach((el) => {
3773      if (!(el instanceof Element))
3774        return;
3775      if (elementIsVisibleInViewport(el)) {
3776        hydrate2();
3777        ob.disconnect();
3778        return false;
3779      }
3780      ob.observe(el);
3781    });
3782    return () => ob.disconnect();
3783  };
3784  const hydrateOnMediaQuery = (query) => (hydrate2) => {
3785    if (query) {
3786      const mql = matchMedia(query);
3787      if (mql.matches) {
3788        hydrate2();
3789      } else {
3790        mql.addEventListener("change", hydrate2, { once: true });
3791        return () => mql.removeEventListener("change", hydrate2);
3792      }
3793    }
3794  };
3795  const hydrateOnInteraction = (interactions = []) => (hydrate2, forEach) => {
3796    if (isString(interactions))
3797      interactions = [interactions];
3798    let hasHydrated = false;
3799    const doHydrate = (e) => {
3800      if (!hasHydrated) {
3801        hasHydrated = true;
3802        teardown();
3803        hydrate2();
3804        e.target.dispatchEvent(new e.constructor(e.type, e));
3805      }
3806    };
3807    const teardown = () => {
3808      forEach((el) => {
3809        for (const i of interactions) {
3810          el.removeEventListener(i, doHydrate);
3811        }
3812      });
3813    };
3814    forEach((el) => {
3815      for (const i of interactions) {
3816        el.addEventListener(i, doHydrate, { once: true });
3817      }
3818    });
3819    return teardown;
3820  };
3821  function forEachElement(node, cb) {
3822    if (isComment(node) && node.data === "[") {
3823      let depth = 1;
3824      let next = node.nextSibling;
3825      while (next) {
3826        if (next.nodeType === 1) {
3827          const result = cb(next);
3828          if (result === false) {
3829            break;
3830          }
3831        } else if (isComment(next)) {
3832          if (next.data === "]") {
3833            if (--depth === 0)
3834              break;
3835          } else if (next.data === "[") {
3836            depth++;
3837          }
3838        }
3839        next = next.nextSibling;
3840      }
3841    } else {
3842      cb(node);
3843    }
3844  }
3845  const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
3846  /*! #__NO_SIDE_EFFECTS__ */
3847  // @__NO_SIDE_EFFECTS__
3848  function defineAsyncComponent(source) {
3849    if (isFunction(source)) {
3850      source = { loader: source };
3851    }
3852    const {
3853      loader,
3854      loadingComponent,
3855      errorComponent,
3856      delay = 200,
3857      hydrate: hydrateStrategy,
3858      timeout,
3859      // undefined = never times out
3860      suspensible = true,
3861      onError: userOnError
3862    } = source;
3863    let pendingRequest = null;
3864    let resolvedComp;
3865    let retries = 0;
3866    const retry = () => {
3867      retries++;
3868      pendingRequest = null;
3869      return load();
3870    };
3871    const load = () => {
3872      let thisRequest;
3873      return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {
3874        err = err instanceof Error ? err : new Error(String(err));
3875        if (userOnError) {
3876          return new Promise((resolve2, reject) => {
3877            const userRetry = () => resolve2(retry());
3878            const userFail = () => reject(err);
3879            userOnError(err, userRetry, userFail, retries + 1);
3880          });
3881        } else {
3882          throw err;
3883        }
3884      }).then((comp) => {
3885        if (thisRequest !== pendingRequest && pendingRequest) {
3886          return pendingRequest;
3887        }
3888        if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) {
3889          comp = comp.default;
3890        }
3891        resolvedComp = comp;
3892        return comp;
3893      }));
3894    };
3895    return /* @__PURE__ */ defineComponent({
3896      name: "AsyncComponentWrapper",
3897      __asyncLoader: load,
3898      __asyncHydrate(el, instance, hydrate2) {
3899        const doHydrate = hydrateStrategy ? () => {
3900          const teardown = hydrateStrategy(
3901            hydrate2,
3902            (cb) => forEachElement(el, cb)
3903          );
3904          if (teardown) {
3905            (instance.bum || (instance.bum = [])).push(teardown);
3906          }
3907        } : hydrate2;
3908        if (resolvedComp) {
3909          doHydrate();
3910        } else {
3911          load().then(() => !instance.isUnmounted && doHydrate());
3912        }
3913      },
3914      get __asyncResolved() {
3915        return resolvedComp;
3916      },
3917      setup() {
3918        const instance = currentInstance;
3919        markAsyncBoundary(instance);
3920        if (resolvedComp) {
3921          return () => createInnerComp(resolvedComp, instance);
3922        }
3923        const onError = (err) => {
3924          pendingRequest = null;
3925          handleError(
3926            err,
3927            instance,
3928            13,
3929            !errorComponent
3930          );
3931        };
3932        if (suspensible && instance.suspense || isInSSRComponentSetup) {
3933          return load().then((comp) => {
3934            return () => createInnerComp(comp, instance);
3935          }).catch((err) => {
3936            onError(err);
3937            return () => errorComponent ? createVNode(errorComponent, {
3938              error: err
3939            }) : null;
3940          });
3941        }
3942        const loaded = ref(false);
3943        const error = ref();
3944        const delayed = ref(!!delay);
3945        if (delay) {
3946          setTimeout(() => {
3947            delayed.value = false;
3948          }, delay);
3949        }
3950        if (timeout != null) {
3951          setTimeout(() => {
3952            if (!loaded.value && !error.value) {
3953              const err = new Error(
3954                `Async component timed out after ${timeout}ms.`
3955              );
3956              onError(err);
3957              error.value = err;
3958            }
3959          }, timeout);
3960        }
3961        load().then(() => {
3962          loaded.value = true;
3963          if (instance.parent && isKeepAlive(instance.parent.vnode)) {
3964            instance.parent.update();
3965          }
3966        }).catch((err) => {
3967          onError(err);
3968          error.value = err;
3969        });
3970        return () => {
3971          if (loaded.value && resolvedComp) {
3972            return createInnerComp(resolvedComp, instance);
3973          } else if (error.value && errorComponent) {
3974            return createVNode(errorComponent, {
3975              error: error.value
3976            });
3977          } else if (loadingComponent && !delayed.value) {
3978            return createVNode(loadingComponent);
3979          }
3980        };
3981      }
3982    });
3983  }
3984  function createInnerComp(comp, parent) {
3985    const { ref: ref2, props, children, ce } = parent.vnode;
3986    const vnode = createVNode(comp, props, children);
3987    vnode.ref = ref2;
3988    vnode.ce = ce;
3989    delete parent.vnode.ce;
3990    return vnode;
3991  }
3992  const isKeepAlive = (vnode) => vnode.type.__isKeepAlive;
3993  const KeepAliveImpl = {
3994    name: `KeepAlive`,
3995    // Marker for special handling inside the renderer. We are not using a ===
3996    // check directly on KeepAlive in the renderer, because importing it directly
3997    // would prevent it from being tree-shaken.
3998    __isKeepAlive: true,
3999    props: {
4000      include: [String, RegExp, Array],
4001      exclude: [String, RegExp, Array],
4002      max: [String, Number]
4003    },
4004    setup(props, { slots }) {
4005      const instance = getCurrentInstance();
4006      const sharedContext = instance.ctx;
4007      if (!sharedContext.renderer) {
4008        return () => {
4009          const children = slots.default && slots.default();
4010          return children && children.length === 1 ? children[0] : children;
4011        };
4012      }
4013      const cache = /* @__PURE__ */ new Map();
4014      const keys = /* @__PURE__ */ new Set();
4015      let current = null;
4016      const parentSuspense = instance.suspense;
4017      const {
4018        renderer: {
4019          p: patch,
4020          m: move,
4021          um: _unmount,
4022          o: { createElement }
4023        }
4024      } = sharedContext;
4025      const storageContainer = createElement("div");
4026      sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {
4027        const instance2 = vnode.component;
4028        move(vnode, container, anchor, 0, parentSuspense);
4029        patch(
4030          instance2.vnode,
4031          vnode,
4032          container,
4033          anchor,
4034          instance2,
4035          parentSuspense,
4036          namespace,
4037          vnode.slotScopeIds,
4038          optimized
4039        );
4040        queuePostRenderEffect(() => {
4041          instance2.isDeactivated = false;
4042          if (instance2.a) {
4043            invokeArrayFns(instance2.a);
4044          }
4045          const vnodeHook = vnode.props && vnode.props.onVnodeMounted;
4046          if (vnodeHook) {
4047            invokeVNodeHook(vnodeHook, instance2.parent, vnode);
4048          }
4049        }, parentSuspense);
4050      };
4051      sharedContext.deactivate = (vnode) => {
4052        const instance2 = vnode.component;
4053        invalidateMount(instance2.m);
4054        invalidateMount(instance2.a);
4055        move(vnode, storageContainer, null, 1, parentSuspense);
4056        queuePostRenderEffect(() => {
4057          if (instance2.da) {
4058            invokeArrayFns(instance2.da);
4059          }
4060          const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;
4061          if (vnodeHook) {
4062            invokeVNodeHook(vnodeHook, instance2.parent, vnode);
4063          }
4064          instance2.isDeactivated = true;
4065        }, parentSuspense);
4066      };
4067      function unmount(vnode) {
4068        resetShapeFlag(vnode);
4069        _unmount(vnode, instance, parentSuspense, true);
4070      }
4071      function pruneCache(filter) {
4072        cache.forEach((vnode, key) => {
4073          const name = getComponentName(vnode.type);
4074          if (name && !filter(name)) {
4075            pruneCacheEntry(key);
4076          }
4077        });
4078      }
4079      function pruneCacheEntry(key) {
4080        const cached = cache.get(key);
4081        if (cached && (!current || !isSameVNodeType(cached, current))) {
4082          unmount(cached);
4083        } else if (current) {
4084          resetShapeFlag(current);
4085        }
4086        cache.delete(key);
4087        keys.delete(key);
4088      }
4089      watch(
4090        () => [props.include, props.exclude],
4091        ([include, exclude]) => {
4092          include && pruneCache((name) => matches(include, name));
4093          exclude && pruneCache((name) => !matches(exclude, name));
4094        },
4095        // prune post-render after `current` has been updated
4096        { flush: "post", deep: true }
4097      );
4098      let pendingCacheKey = null;
4099      const cacheSubtree = () => {
4100        if (pendingCacheKey != null) {
4101          if (isSuspense(instance.subTree.type)) {
4102            queuePostRenderEffect(() => {
4103              cache.set(pendingCacheKey, getInnerChild(instance.subTree));
4104            }, instance.subTree.suspense);
4105          } else {
4106            cache.set(pendingCacheKey, getInnerChild(instance.subTree));
4107          }
4108        }
4109      };
4110      onMounted(cacheSubtree);
4111      onUpdated(cacheSubtree);
4112      onBeforeUnmount(() => {
4113        cache.forEach((cached) => {
4114          const { subTree, suspense } = instance;
4115          const vnode = getInnerChild(subTree);
4116          if (cached.type === vnode.type && cached.key === vnode.key) {
4117            resetShapeFlag(vnode);
4118            const da = vnode.component.da;
4119            da && queuePostRenderEffect(da, suspense);
4120            return;
4121          }
4122          unmount(cached);
4123        });
4124      });
4125      return () => {
4126        pendingCacheKey = null;
4127        if (!slots.default) {
4128          return current = null;
4129        }
4130        const children = slots.default();
4131        const rawVNode = children[0];
4132        if (children.length > 1) {
4133          current = null;
4134          return children;
4135        } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {
4136          current = null;
4137          return rawVNode;
4138        }
4139        let vnode = getInnerChild(rawVNode);
4140        if (vnode.type === Comment) {
4141          current = null;
4142          return vnode;
4143        }
4144        const comp = vnode.type;
4145        const name = getComponentName(
4146          isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp
4147        );
4148        const { include, exclude, max } = props;
4149        if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {
4150          vnode.shapeFlag &= ~256;
4151          current = vnode;
4152          return rawVNode;
4153        }
4154        const key = vnode.key == null ? comp : vnode.key;
4155        const cachedVNode = cache.get(key);
4156        if (vnode.el) {
4157          vnode = cloneVNode(vnode);
4158          if (rawVNode.shapeFlag & 128) {
4159            rawVNode.ssContent = vnode;
4160          }
4161        }
4162        pendingCacheKey = key;
4163        if (cachedVNode) {
4164          vnode.el = cachedVNode.el;
4165          vnode.component = cachedVNode.component;
4166          if (vnode.transition) {
4167            setTransitionHooks(vnode, vnode.transition);
4168          }
4169          vnode.shapeFlag |= 512;
4170          keys.delete(key);
4171          keys.add(key);
4172        } else {
4173          keys.add(key);
4174          if (max && keys.size > parseInt(max, 10)) {
4175            pruneCacheEntry(keys.values().next().value);
4176          }
4177        }
4178        vnode.shapeFlag |= 256;
4179        current = vnode;
4180        return isSuspense(rawVNode.type) ? rawVNode : vnode;
4181      };
4182    }
4183  };
4184  const KeepAlive = KeepAliveImpl;
4185  function matches(pattern, name) {
4186    if (isArray(pattern)) {
4187      return pattern.some((p2) => matches(p2, name));
4188    } else if (isString(pattern)) {
4189      return pattern.split(",").includes(name);
4190    } else if (isRegExp(pattern)) {
4191      pattern.lastIndex = 0;
4192      return pattern.test(name);
4193    }
4194    return false;
4195  }
4196  function onActivated(hook, target) {
4197    registerKeepAliveHook(hook, "a", target);
4198  }
4199  function onDeactivated(hook, target) {
4200    registerKeepAliveHook(hook, "da", target);
4201  }
4202  function registerKeepAliveHook(hook, type, target = currentInstance) {
4203    const wrappedHook = hook.__wdc || (hook.__wdc = () => {
4204      let current = target;
4205      while (current) {
4206        if (current.isDeactivated) {
4207          return;
4208        }
4209        current = current.parent;
4210      }
4211      return hook();
4212    });
4213    injectHook(type, wrappedHook, target);
4214    if (target) {
4215      let current = target.parent;
4216      while (current && current.parent) {
4217        if (isKeepAlive(current.parent.vnode)) {
4218          injectToKeepAliveRoot(wrappedHook, type, target, current);
4219        }
4220        current = current.parent;
4221      }
4222    }
4223  }
4224  function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {
4225    const injected = injectHook(
4226      type,
4227      hook,
4228      keepAliveRoot,
4229      true
4230      /* prepend */
4231    );
4232    onUnmounted(() => {
4233      remove(keepAliveRoot[type], injected);
4234    }, target);
4235  }
4236  function resetShapeFlag(vnode) {
4237    vnode.shapeFlag &= ~256;
4238    vnode.shapeFlag &= ~512;
4239  }
4240  function getInnerChild(vnode) {
4241    return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;
4242  }
4243  function injectHook(type, hook, target = currentInstance, prepend = false) {
4244    if (target) {
4245      const hooks = target[type] || (target[type] = []);
4246      const wrappedHook = hook.__weh || (hook.__weh = (...args) => {
4247        pauseTracking();
4248        const reset = setCurrentInstance(target);
4249        const res = callWithAsyncErrorHandling(hook, target, type, args);
4250        reset();
4251        resetTracking();
4252        return res;
4253      });
4254      if (prepend) {
4255        hooks.unshift(wrappedHook);
4256      } else {
4257        hooks.push(wrappedHook);
4258      }
4259      return wrappedHook;
4260    }
4261  }
4262  const createHook = (lifecycle) => (hook, target = currentInstance) => {
4263    if (!isInSSRComponentSetup || lifecycle === "sp") {
4264      injectHook(lifecycle, (...args) => hook(...args), target);
4265    }
4266  };
4267  const onBeforeMount = createHook("bm");
4268  const onMounted = createHook("m");
4269  const onBeforeUpdate = createHook(
4270    "bu"
4271  );
4272  const onUpdated = createHook("u");
4273  const onBeforeUnmount = createHook(
4274    "bum"
4275  );
4276  const onUnmounted = createHook("um");
4277  const onServerPrefetch = createHook(
4278    "sp"
4279  );
4280  const onRenderTriggered = createHook("rtg");
4281  const onRenderTracked = createHook("rtc");
4282  function onErrorCaptured(hook, target = currentInstance) {
4283    injectHook("ec", hook, target);
4284  }
4285  const COMPONENTS = "components";
4286  const DIRECTIVES = "directives";
4287  function resolveComponent(name, maybeSelfReference) {
4288    return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;
4289  }
4290  const NULL_DYNAMIC_COMPONENT = Symbol.for("v-ndc");
4291  function resolveDynamicComponent(component) {
4292    if (isString(component)) {
4293      return resolveAsset(COMPONENTS, component, false) || component;
4294    } else {
4295      return component || NULL_DYNAMIC_COMPONENT;
4296    }
4297  }
4298  function resolveDirective(name) {
4299    return resolveAsset(DIRECTIVES, name);
4300  }
4301  function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {
4302    const instance = currentRenderingInstance || currentInstance;
4303    if (instance) {
4304      const Component = instance.type;
4305      if (type === COMPONENTS) {
4306        const selfName = getComponentName(
4307          Component,
4308          false
4309        );
4310        if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {
4311          return Component;
4312        }
4313      }
4314      const res = (
4315        // local registration
4316        // check instance[type] first which is resolved for options API
4317        resolve(instance[type] || Component[type], name) || // global registration
4318        resolve(instance.appContext[type], name)
4319      );
4320      if (!res && maybeSelfReference) {
4321        return Component;
4322      }
4323      return res;
4324    }
4325  }
4326  function resolve(registry, name) {
4327    return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);
4328  }
4329  function renderList(source, renderItem, cache, index2) {
4330    let ret;
4331    const cached = cache && cache[index2];
4332    const sourceIsArray = isArray(source);
4333    if (sourceIsArray || isString(source)) {
4334      const sourceIsReactiveArray = sourceIsArray && isReactive(source);
4335      let needsWrap = false;
4336      if (sourceIsReactiveArray) {
4337        needsWrap = !isShallow(source);
4338        source = shallowReadArray(source);
4339      }
4340      ret = new Array(source.length);
4341      for (let i = 0, l = source.length; i < l; i++) {
4342        ret[i] = renderItem(
4343          needsWrap ? toReactive(source[i]) : source[i],
4344          i,
4345          void 0,
4346          cached && cached[i]
4347        );
4348      }
4349    } else if (typeof source === "number") {
4350      ret = new Array(source);
4351      for (let i = 0; i < source; i++) {
4352        ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
4353      }
4354    } else if (isObject(source)) {
4355      if (source[Symbol.iterator]) {
4356        ret = Array.from(
4357          source,
4358          (item, i) => renderItem(item, i, void 0, cached && cached[i])
4359        );
4360      } else {
4361        const keys = Object.keys(source);
4362        ret = new Array(keys.length);
4363        for (let i = 0, l = keys.length; i < l; i++) {
4364          const key = keys[i];
4365          ret[i] = renderItem(source[key], key, i, cached && cached[i]);
4366        }
4367      }
4368    } else {
4369      ret = [];
4370    }
4371    if (cache) {
4372      cache[index2] = ret;
4373    }
4374    return ret;
4375  }
4376  function createSlots(slots, dynamicSlots) {
4377    for (let i = 0; i < dynamicSlots.length; i++) {
4378      const slot = dynamicSlots[i];
4379      if (isArray(slot)) {
4380        for (let j = 0; j < slot.length; j++) {
4381          slots[slot[j].name] = slot[j].fn;
4382        }
4383      } else if (slot) {
4384        slots[slot.name] = slot.key ? (...args) => {
4385          const res = slot.fn(...args);
4386          if (res)
4387            res.key = slot.key;
4388          return res;
4389        } : slot.fn;
4390      }
4391    }
4392    return slots;
4393  }
4394  function renderSlot(slots, name, props = {}, fallback, noSlotted) {
4395    if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {
4396      if (name !== "default")
4397        props.name = name;
4398      return openBlock(), createBlock(
4399        Fragment,
4400        null,
4401        [createVNode("slot", props, fallback && fallback())],
4402        64
4403      );
4404    }
4405    let slot = slots[name];
4406    if (slot && slot._c) {
4407      slot._d = false;
4408    }
4409    openBlock();
4410    const validSlotContent = slot && ensureValidVNode(slot(props));
4411    const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch
4412    // key attached in the `createSlots` helper, respect that
4413    validSlotContent && validSlotContent.key;
4414    const rendered = createBlock(
4415      Fragment,
4416      {
4417        key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content
4418        (!validSlotContent && fallback ? "_fb" : "")
4419      },
4420      validSlotContent || (fallback ? fallback() : []),
4421      validSlotContent && slots._ === 1 ? 64 : -2
4422    );
4423    if (!noSlotted && rendered.scopeId) {
4424      rendered.slotScopeIds = [rendered.scopeId + "-s"];
4425    }
4426    if (slot && slot._c) {
4427      slot._d = true;
4428    }
4429    return rendered;
4430  }
4431  function ensureValidVNode(vnodes) {
4432    return vnodes.some((child) => {
4433      if (!isVNode(child))
4434        return true;
4435      if (child.type === Comment)
4436        return false;
4437      if (child.type === Fragment && !ensureValidVNode(child.children))
4438        return false;
4439      return true;
4440    }) ? vnodes : null;
4441  }
4442  function toHandlers(obj, preserveCaseIfNecessary) {
4443    const ret = {};
4444    for (const key in obj) {
4445      ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];
4446    }
4447    return ret;
4448  }
4449  const getPublicInstance = (i) => {
4450    if (!i)
4451      return null;
4452    if (isStatefulComponent(i))
4453      return getComponentPublicInstance(i);
4454    return getPublicInstance(i.parent);
4455  };
4456  const publicPropertiesMap = (
4457    // Move PURE marker to new line to workaround compiler discarding it
4458    // due to type annotation
4459    /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {
4460      $: (i) => i,
4461      $el: (i) => i.vnode.el,
4462      $data: (i) => i.data,
4463      $props: (i) => i.props,
4464      $attrs: (i) => i.attrs,
4465      $slots: (i) => i.slots,
4466      $refs: (i) => i.refs,
4467      $parent: (i) => getPublicInstance(i.parent),
4468      $root: (i) => getPublicInstance(i.root),
4469      $host: (i) => i.ce,
4470      $emit: (i) => i.emit,
4471      $options: (i) => resolveMergedOptions(i),
4472      $forceUpdate: (i) => i.f || (i.f = () => {
4473        queueJob(i.update);
4474      }),
4475      $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),
4476      $watch: (i) => instanceWatch.bind(i)
4477    })
4478  );
4479  const hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);
4480  const PublicInstanceProxyHandlers = {
4481    get({ _: instance }, key) {
4482      if (key === "__v_skip") {
4483        return true;
4484      }
4485      const { ctx, setupState, data, props, accessCache, type, appContext } = instance;
4486      let normalizedProps;
4487      if (key[0] !== "$") {
4488        const n = accessCache[key];
4489        if (n !== void 0) {
4490          switch (n) {
4491            case 1:
4492              return setupState[key];
4493            case 2:
4494              return data[key];
4495            case 4:
4496              return ctx[key];
4497            case 3:
4498              return props[key];
4499          }
4500        } else if (hasSetupBinding(setupState, key)) {
4501          accessCache[key] = 1;
4502          return setupState[key];
4503        } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {
4504          accessCache[key] = 2;
4505          return data[key];
4506        } else if (
4507          // only cache other properties when instance has declared (thus stable)
4508          // props
4509          (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)
4510        ) {
4511          accessCache[key] = 3;
4512          return props[key];
4513        } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {
4514          accessCache[key] = 4;
4515          return ctx[key];
4516        } else if (shouldCacheAccess) {
4517          accessCache[key] = 0;
4518        }
4519      }
4520      const publicGetter = publicPropertiesMap[key];
4521      let cssModule, globalProperties;
4522      if (publicGetter) {
4523        if (key === "$attrs") {
4524          track(instance.attrs, "get", "");
4525        }
4526        return publicGetter(instance);
4527      } else if (
4528        // css module (injected by vue-loader)
4529        (cssModule = type.__cssModules) && (cssModule = cssModule[key])
4530      ) {
4531        return cssModule;
4532      } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {
4533        accessCache[key] = 4;
4534        return ctx[key];
4535      } else if (
4536        // global properties
4537        globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)
4538      ) {
4539        {
4540          return globalProperties[key];
4541        }
4542      } else
4543        ;
4544    },
4545    set({ _: instance }, key, value) {
4546      const { data, setupState, ctx } = instance;
4547      if (hasSetupBinding(setupState, key)) {
4548        setupState[key] = value;
4549        return true;
4550      } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {
4551        data[key] = value;
4552        return true;
4553      } else if (hasOwn(instance.props, key)) {
4554        return false;
vendor: 5,961 bytes, lines 4555-4767
4555      }
4556      if (key[0] === "$" && key.slice(1) in instance) {
4557        return false;
4558      } else {
4559        {
4560          ctx[key] = value;
4561        }
4562      }
4563      return true;
4564    },
4565    has({
4566      _: { data, setupState, accessCache, ctx, appContext, propsOptions }
4567    }, key) {
4568      let normalizedProps;
4569      return !!accessCache[key] || data !== EMPTY_OBJ && hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key);
4570    },
4571    defineProperty(target, key, descriptor) {
4572      if (descriptor.get != null) {
4573        target._.accessCache[key] = 0;
4574      } else if (hasOwn(descriptor, "value")) {
4575        this.set(target, key, descriptor.value, null);
4576      }
4577      return Reflect.defineProperty(target, key, descriptor);
4578    }
4579  };
4580  const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend({}, PublicInstanceProxyHandlers, {
4581    get(target, key) {
4582      if (key === Symbol.unscopables) {
4583        return;
4584      }
4585      return PublicInstanceProxyHandlers.get(target, key, target);
4586    },
4587    has(_, key) {
4588      const has = key[0] !== "_" && !isGloballyAllowed(key);
4589      return has;
4590    }
4591  });
4592  function defineProps() {
4593    return null;
4594  }
4595  function defineEmits() {
4596    return null;
4597  }
4598  function defineExpose(exposed) {
4599  }
4600  function defineOptions(options) {
4601  }
4602  function defineSlots() {
4603    return null;
4604  }
4605  function defineModel() {
4606  }
4607  function withDefaults(props, defaults) {
4608    return null;
4609  }
4610  function useSlots() {
4611    return getContext().slots;
4612  }
4613  function useAttrs() {
4614    return getContext().attrs;
4615  }
4616  function getContext() {
4617    const i = getCurrentInstance();
4618    return i.setupContext || (i.setupContext = createSetupContext(i));
4619  }
4620  function normalizePropsOrEmits(props) {
4621    return isArray(props) ? props.reduce(
4622      (normalized, p2) => (normalized[p2] = null, normalized),
4623      {}
4624    ) : props;
4625  }
4626  function mergeDefaults(raw, defaults) {
4627    const props = normalizePropsOrEmits(raw);
4628    for (const key in defaults) {
4629      if (key.startsWith("__skip"))
4630        continue;
4631      let opt = props[key];
4632      if (opt) {
4633        if (isArray(opt) || isFunction(opt)) {
4634          opt = props[key] = { type: opt, default: defaults[key] };
4635        } else {
4636          opt.default = defaults[key];
4637        }
4638      } else if (opt === null) {
4639        opt = props[key] = { default: defaults[key] };
4640      } else
4641        ;
4642      if (opt && defaults[`__skip_${key}`]) {
4643        opt.skipFactory = true;
4644      }
4645    }
4646    return props;
4647  }
4648  function mergeModels(a, b) {
4649    if (!a || !b)
4650      return a || b;
4651    if (isArray(a) && isArray(b))
4652      return a.concat(b);
4653    return extend({}, normalizePropsOrEmits(a), normalizePropsOrEmits(b));
4654  }
4655  function createPropsRestProxy(props, excludedKeys) {
4656    const ret = {};
4657    for (const key in props) {
4658      if (!excludedKeys.includes(key)) {
4659        Object.defineProperty(ret, key, {
4660          enumerable: true,
4661          get: () => props[key]
4662        });
4663      }
4664    }
4665    return ret;
4666  }
4667  function withAsyncContext(getAwaitable) {
4668    const ctx = getCurrentInstance();
4669    let awaitable = getAwaitable();
4670    unsetCurrentInstance();
4671    if (isPromise(awaitable)) {
4672      awaitable = awaitable.catch((e) => {
4673        setCurrentInstance(ctx);
4674        throw e;
4675      });
4676    }
4677    return [awaitable, () => setCurrentInstance(ctx)];
4678  }
4679  let shouldCacheAccess = true;
4680  function applyOptions(instance) {
4681    const options = resolveMergedOptions(instance);
4682    const publicThis = instance.proxy;
4683    const ctx = instance.ctx;
4684    shouldCacheAccess = false;
4685    if (options.beforeCreate) {
4686      callHook$1(options.beforeCreate, instance, "bc");
4687    }
4688    const {
4689      // state
4690      data: dataOptions,
4691      computed: computedOptions,
4692      methods,
4693      watch: watchOptions,
4694      provide: provideOptions,
4695      inject: injectOptions,
4696      // lifecycle
4697      created,
4698      beforeMount,
4699      mounted,
4700      beforeUpdate,
4701      updated,
4702      activated,
4703      deactivated,
4704      beforeDestroy,
4705      beforeUnmount,
4706      destroyed,
4707      unmounted,
4708      render: render2,
4709      renderTracked,
4710      renderTriggered,
4711      errorCaptured,
4712      serverPrefetch,
4713      // public API
4714      expose,
4715      inheritAttrs,
4716      // assets
4717      components,
4718      directives,
4719      filters
4720    } = options;
4721    const checkDuplicateProperties = null;
4722    if (injectOptions) {
4723      resolveInjections(injectOptions, ctx, checkDuplicateProperties);
4724    }
4725    if (methods) {
4726      for (const key in methods) {
4727        const methodHandler = methods[key];
4728        if (isFunction(methodHandler)) {
4729          {
4730            ctx[key] = methodHandler.bind(publicThis);
4731          }
4732        }
4733      }
4734    }
4735    if (dataOptions) {
4736      const data = dataOptions.call(publicThis, publicThis);
4737      if (!isObject(data))
4738        ;
4739      else {
4740        instance.data = reactive(data);
4741      }
4742    }
4743    shouldCacheAccess = true;
4744    if (computedOptions) {
4745      for (const key in computedOptions) {
4746        const opt = computedOptions[key];
4747        const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
4748        const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : NOOP;
4749        const c = computed({
4750          get,
4751          set
4752        });
4753        Object.defineProperty(ctx, key, {
4754          enumerable: true,
4755          configurable: true,
4756          get: () => c.value,
4757          set: (v) => c.value = v
4758        });
4759      }
4760    }
4761    if (watchOptions) {
4762      for (const key in watchOptions) {
4763        createWatcher(watchOptions[key], ctx, publicThis, key);
4764      }
4765    }
4766    if (provideOptions) {
4767      const provides = isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions;
vendor: 6,938 bytes, lines 4768-5004
4768      Reflect.ownKeys(provides).forEach((key) => {
4769        provide(key, provides[key]);
4770      });
4771    }
4772    if (created) {
4773      callHook$1(created, instance, "c");
4774    }
4775    function registerLifecycleHook(register, hook) {
4776      if (isArray(hook)) {
4777        hook.forEach((_hook) => register(_hook.bind(publicThis)));
4778      } else if (hook) {
4779        register(hook.bind(publicThis));
4780      }
4781    }
4782    registerLifecycleHook(onBeforeMount, beforeMount);
4783    registerLifecycleHook(onMounted, mounted);
4784    registerLifecycleHook(onBeforeUpdate, beforeUpdate);
4785    registerLifecycleHook(onUpdated, updated);
4786    registerLifecycleHook(onActivated, activated);
4787    registerLifecycleHook(onDeactivated, deactivated);
4788    registerLifecycleHook(onErrorCaptured, errorCaptured);
4789    registerLifecycleHook(onRenderTracked, renderTracked);
4790    registerLifecycleHook(onRenderTriggered, renderTriggered);
4791    registerLifecycleHook(onBeforeUnmount, beforeUnmount);
4792    registerLifecycleHook(onUnmounted, unmounted);
4793    registerLifecycleHook(onServerPrefetch, serverPrefetch);
4794    if (isArray(expose)) {
4795      if (expose.length) {
4796        const exposed = instance.exposed || (instance.exposed = {});
4797        expose.forEach((key) => {
4798          Object.defineProperty(exposed, key, {
4799            get: () => publicThis[key],
4800            set: (val) => publicThis[key] = val
4801          });
4802        });
4803      } else if (!instance.exposed) {
4804        instance.exposed = {};
4805      }
4806    }
4807    if (render2 && instance.render === NOOP) {
4808      instance.render = render2;
4809    }
4810    if (inheritAttrs != null) {
4811      instance.inheritAttrs = inheritAttrs;
4812    }
4813    if (components)
4814      instance.components = components;
4815    if (directives)
4816      instance.directives = directives;
4817    if (serverPrefetch) {
4818      markAsyncBoundary(instance);
4819    }
4820  }
4821  function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) {
4822    if (isArray(injectOptions)) {
4823      injectOptions = normalizeInject(injectOptions);
4824    }
4825    for (const key in injectOptions) {
4826      const opt = injectOptions[key];
4827      let injected;
4828      if (isObject(opt)) {
4829        if ("default" in opt) {
4830          injected = inject(
4831            opt.from || key,
4832            opt.default,
4833            true
4834          );
4835        } else {
4836          injected = inject(opt.from || key);
4837        }
4838      } else {
4839        injected = inject(opt);
4840      }
4841      if (isRef(injected)) {
4842        Object.defineProperty(ctx, key, {
4843          enumerable: true,
4844          configurable: true,
4845          get: () => injected.value,
4846          set: (v) => injected.value = v
4847        });
4848      } else {
4849        ctx[key] = injected;
4850      }
4851    }
4852  }
4853  function callHook$1(hook, instance, type) {
4854    callWithAsyncErrorHandling(
4855      isArray(hook) ? hook.map((h2) => h2.bind(instance.proxy)) : hook.bind(instance.proxy),
4856      instance,
4857      type
4858    );
4859  }
4860  function createWatcher(raw, ctx, publicThis, key) {
4861    let getter = key.includes(".") ? createPathGetter(publicThis, key) : () => publicThis[key];
4862    if (isString(raw)) {
4863      const handler = ctx[raw];
4864      if (isFunction(handler)) {
4865        {
4866          watch(getter, handler);
4867        }
4868      }
4869    } else if (isFunction(raw)) {
4870      {
4871        watch(getter, raw.bind(publicThis));
4872      }
4873    } else if (isObject(raw)) {
4874      if (isArray(raw)) {
4875        raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
4876      } else {
4877        const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
4878        if (isFunction(handler)) {
4879          watch(getter, handler, raw);
4880        }
4881      }
4882    } else
4883      ;
4884  }
4885  function resolveMergedOptions(instance) {
4886    const base = instance.type;
4887    const { mixins, extends: extendsOptions } = base;
4888    const {
4889      mixins: globalMixins,
4890      optionsCache: cache,
4891      config: { optionMergeStrategies }
4892    } = instance.appContext;
4893    const cached = cache.get(base);
4894    let resolved;
4895    if (cached) {
4896      resolved = cached;
4897    } else if (!globalMixins.length && !mixins && !extendsOptions) {
4898      {
4899        resolved = base;
4900      }
4901    } else {
4902      resolved = {};
4903      if (globalMixins.length) {
4904        globalMixins.forEach(
4905          (m) => mergeOptions(resolved, m, optionMergeStrategies, true)
4906        );
4907      }
4908      mergeOptions(resolved, base, optionMergeStrategies);
4909    }
4910    if (isObject(base)) {
4911      cache.set(base, resolved);
4912    }
4913    return resolved;
4914  }
4915  function mergeOptions(to, from, strats, asMixin = false) {
4916    const { mixins, extends: extendsOptions } = from;
4917    if (extendsOptions) {
4918      mergeOptions(to, extendsOptions, strats, true);
4919    }
4920    if (mixins) {
4921      mixins.forEach(
4922        (m) => mergeOptions(to, m, strats, true)
4923      );
4924    }
4925    for (const key in from) {
4926      if (asMixin && key === "expose")
4927        ;
4928      else {
4929        const strat = internalOptionMergeStrats[key] || strats && strats[key];
4930        to[key] = strat ? strat(to[key], from[key]) : from[key];
4931      }
4932    }
4933    return to;
4934  }
4935  const internalOptionMergeStrats = {
4936    data: mergeDataFn,
4937    props: mergeEmitsOrPropsOptions,
4938    emits: mergeEmitsOrPropsOptions,
4939    // objects
4940    methods: mergeObjectOptions,
4941    computed: mergeObjectOptions,
4942    // lifecycle
4943    beforeCreate: mergeAsArray,
4944    created: mergeAsArray,
4945    beforeMount: mergeAsArray,
4946    mounted: mergeAsArray,
4947    beforeUpdate: mergeAsArray,
4948    updated: mergeAsArray,
4949    beforeDestroy: mergeAsArray,
4950    beforeUnmount: mergeAsArray,
4951    destroyed: mergeAsArray,
4952    unmounted: mergeAsArray,
4953    activated: mergeAsArray,
4954    deactivated: mergeAsArray,
4955    errorCaptured: mergeAsArray,
4956    serverPrefetch: mergeAsArray,
4957    // assets
4958    components: mergeObjectOptions,
4959    directives: mergeObjectOptions,
4960    // watch
4961    watch: mergeWatchOptions,
4962    // provide / inject
4963    provide: mergeDataFn,
4964    inject: mergeInject
4965  };
4966  function mergeDataFn(to, from) {
4967    if (!from) {
4968      return to;
4969    }
4970    if (!to) {
4971      return from;
4972    }
4973    return function mergedDataFn() {
4974      return extend(
4975        isFunction(to) ? to.call(this, this) : to,
4976        isFunction(from) ? from.call(this, this) : from
4977      );
4978    };
4979  }
4980  function mergeInject(to, from) {
4981    return mergeObjectOptions(normalizeInject(to), normalizeInject(from));
4982  }
4983  function normalizeInject(raw) {
4984    if (isArray(raw)) {
4985      const res = {};
4986      for (let i = 0; i < raw.length; i++) {
4987        res[raw[i]] = raw[i];
4988      }
4989      return res;
4990    }
4991    return raw;
4992  }
4993  function mergeAsArray(to, from) {
4994    return to ? [...new Set([].concat(to, from))] : from;
4995  }
4996  function mergeObjectOptions(to, from) {
4997    return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from;
4998  }
4999  function mergeEmitsOrPropsOptions(to, from) {
5000    if (to) {
5001      if (isArray(to) && isArray(from)) {
5002        return [.../* @__PURE__ */ new Set([...to, ...from])];
5003      }
5004      return extend(
vendor: 6,606 bytes, lines 5005-5217
5005        /* @__PURE__ */ Object.create(null),
5006        normalizePropsOrEmits(to),
5007        normalizePropsOrEmits(from != null ? from : {})
5008      );
5009    } else {
5010      return from;
5011    }
5012  }
5013  function mergeWatchOptions(to, from) {
5014    if (!to)
5015      return from;
5016    if (!from)
5017      return to;
5018    const merged = extend(/* @__PURE__ */ Object.create(null), to);
5019    for (const key in from) {
5020      merged[key] = mergeAsArray(to[key], from[key]);
5021    }
5022    return merged;
5023  }
5024  function createAppContext() {
5025    return {
5026      app: null,
5027      config: {
5028        isNativeTag: NO,
5029        performance: false,
5030        globalProperties: {},
5031        optionMergeStrategies: {},
5032        errorHandler: void 0,
5033        warnHandler: void 0,
5034        compilerOptions: {}
5035      },
5036      mixins: [],
5037      components: {},
5038      directives: {},
5039      provides: /* @__PURE__ */ Object.create(null),
5040      optionsCache: /* @__PURE__ */ new WeakMap(),
5041      propsCache: /* @__PURE__ */ new WeakMap(),
5042      emitsCache: /* @__PURE__ */ new WeakMap()
5043    };
5044  }
5045  let uid$1 = 0;
5046  function createAppAPI(render2, hydrate2) {
5047    return function createApp2(rootComponent, rootProps = null) {
5048      if (!isFunction(rootComponent)) {
5049        rootComponent = extend({}, rootComponent);
5050      }
5051      if (rootProps != null && !isObject(rootProps)) {
5052        rootProps = null;
5053      }
5054      const context = createAppContext();
5055      const installedPlugins = /* @__PURE__ */ new WeakSet();
5056      const pluginCleanupFns = [];
5057      let isMounted = false;
5058      const app = context.app = {
5059        _uid: uid$1++,
5060        _component: rootComponent,
5061        _props: rootProps,
5062        _container: null,
5063        _context: context,
5064        _instance: null,
5065        version,
5066        get config() {
5067          return context.config;
5068        },
5069        set config(v) {
5070        },
5071        use(plugin, ...options) {
5072          if (installedPlugins.has(plugin))
5073            ;
5074          else if (plugin && isFunction(plugin.install)) {
5075            installedPlugins.add(plugin);
5076            plugin.install(app, ...options);
5077          } else if (isFunction(plugin)) {
5078            installedPlugins.add(plugin);
5079            plugin(app, ...options);
5080          } else
5081            ;
5082          return app;
5083        },
5084        mixin(mixin) {
5085          {
5086            if (!context.mixins.includes(mixin)) {
5087              context.mixins.push(mixin);
5088            }
5089          }
5090          return app;
5091        },
5092        component(name, component) {
5093          if (!component) {
5094            return context.components[name];
5095          }
5096          context.components[name] = component;
5097          return app;
5098        },
5099        directive(name, directive) {
5100          if (!directive) {
5101            return context.directives[name];
5102          }
5103          context.directives[name] = directive;
5104          return app;
5105        },
5106        mount(rootContainer, isHydrate, namespace) {
5107          if (!isMounted) {
5108            const vnode = app._ceVNode || createVNode(rootComponent, rootProps);
5109            vnode.appContext = context;
5110            if (namespace === true) {
5111              namespace = "svg";
5112            } else if (namespace === false) {
5113              namespace = void 0;
5114            }
5115            if (isHydrate && hydrate2) {
5116              hydrate2(vnode, rootContainer);
5117            } else {
5118              render2(vnode, rootContainer, namespace);
5119            }
5120            isMounted = true;
5121            app._container = rootContainer;
5122            rootContainer.__vue_app__ = app;
5123            return getComponentPublicInstance(vnode.component);
5124          }
5125        },
5126        onUnmount(cleanupFn) {
5127          pluginCleanupFns.push(cleanupFn);
5128        },
5129        unmount() {
5130          if (isMounted) {
5131            callWithAsyncErrorHandling(
5132              pluginCleanupFns,
5133              app._instance,
5134              16
5135            );
5136            render2(null, app._container);
5137            delete app._container.__vue_app__;
5138          }
5139        },
5140        provide(key, value) {
5141          context.provides[key] = value;
5142          return app;
5143        },
5144        runWithContext(fn) {
5145          const lastApp = currentApp;
5146          currentApp = app;
5147          try {
5148            return fn();
5149          } finally {
5150            currentApp = lastApp;
5151          }
5152        }
5153      };
5154      return app;
5155    };
5156  }
5157  let currentApp = null;
5158  function provide(key, value) {
5159    if (!currentInstance)
5160      ;
5161    else {
5162      let provides = currentInstance.provides;
5163      const parentProvides = currentInstance.parent && currentInstance.parent.provides;
5164      if (parentProvides === provides) {
5165        provides = currentInstance.provides = Object.create(parentProvides);
5166      }
5167      provides[key] = value;
5168    }
5169  }
5170  function inject(key, defaultValue, treatDefaultAsFactory = false) {
5171    const instance = currentInstance || currentRenderingInstance;
5172    if (instance || currentApp) {
5173      const provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;
5174      if (provides && key in provides) {
5175        return provides[key];
5176      } else if (arguments.length > 1) {
5177        return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;
5178      } else
5179        ;
5180    }
5181  }
5182  function hasInjectionContext() {
5183    return !!(currentInstance || currentRenderingInstance || currentApp);
5184  }
5185  const internalObjectProto = {};
5186  const createInternalObject = () => Object.create(internalObjectProto);
5187  const isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto;
5188  function initProps(instance, rawProps, isStateful, isSSR = false) {
5189    const props = {};
5190    const attrs = createInternalObject();
5191    instance.propsDefaults = /* @__PURE__ */ Object.create(null);
5192    setFullProps(instance, rawProps, props, attrs);
5193    for (const key in instance.propsOptions[0]) {
5194      if (!(key in props)) {
5195        props[key] = void 0;
5196      }
5197    }
5198    if (isStateful) {
5199      instance.props = isSSR ? props : shallowReactive(props);
5200    } else {
5201      if (!instance.type.props) {
5202        instance.props = attrs;
5203      } else {
5204        instance.props = props;
5205      }
5206    }
5207    instance.attrs = attrs;
5208  }
5209  function updateProps(instance, rawProps, rawPrevProps, optimized) {
5210    const {
5211      props,
5212      attrs,
5213      vnode: { patchFlag }
5214    } = instance;
5215    const rawCurrentProps = toRaw(props);
5216    const [options] = instance.propsOptions;
5217    let hasAttrsChanged = false;
vendor: 4,754 bytes, lines 5218-5370
5218    if (
5219      // always force full diff in dev
5220      // - #1942 if hmr is enabled with sfc component
5221      // - vite#872 non-sfc component used by sfc component
5222      (optimized || patchFlag > 0) && !(patchFlag & 16)
5223    ) {
5224      if (patchFlag & 8) {
5225        const propsToUpdate = instance.vnode.dynamicProps;
5226        for (let i = 0; i < propsToUpdate.length; i++) {
5227          let key = propsToUpdate[i];
5228          if (isEmitListener(instance.emitsOptions, key)) {
5229            continue;
5230          }
5231          const value = rawProps[key];
5232          if (options) {
5233            if (hasOwn(attrs, key)) {
5234              if (value !== attrs[key]) {
5235                attrs[key] = value;
5236                hasAttrsChanged = true;
5237              }
5238            } else {
5239              const camelizedKey = camelize(key);
5240              props[camelizedKey] = resolvePropValue(
5241                options,
5242                rawCurrentProps,
5243                camelizedKey,
5244                value,
5245                instance,
5246                false
5247              );
5248            }
5249          } else {
5250            if (value !== attrs[key]) {
5251              attrs[key] = value;
5252              hasAttrsChanged = true;
5253            }
5254          }
5255        }
5256      }
5257    } else {
5258      if (setFullProps(instance, rawProps, props, attrs)) {
5259        hasAttrsChanged = true;
5260      }
5261      let kebabKey;
5262      for (const key in rawCurrentProps) {
5263        if (!rawProps || // for camelCase
5264        !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case
5265        // and converted to camelCase (#955)
5266        ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {
5267          if (options) {
5268            if (rawPrevProps && // for camelCase
5269            (rawPrevProps[key] !== void 0 || // for kebab-case
5270            rawPrevProps[kebabKey] !== void 0)) {
5271              props[key] = resolvePropValue(
5272                options,
5273                rawCurrentProps,
5274                key,
5275                void 0,
5276                instance,
5277                true
5278              );
5279            }
5280          } else {
5281            delete props[key];
5282          }
5283        }
5284      }
5285      if (attrs !== rawCurrentProps) {
5286        for (const key in attrs) {
5287          if (!rawProps || !hasOwn(rawProps, key) && true) {
5288            delete attrs[key];
5289            hasAttrsChanged = true;
5290          }
5291        }
5292      }
5293    }
5294    if (hasAttrsChanged) {
5295      trigger(instance.attrs, "set", "");
5296    }
5297  }
5298  function setFullProps(instance, rawProps, props, attrs) {
5299    const [options, needCastKeys] = instance.propsOptions;
5300    let hasAttrsChanged = false;
5301    let rawCastValues;
5302    if (rawProps) {
5303      for (let key in rawProps) {
5304        if (isReservedProp(key)) {
5305          continue;
5306        }
5307        const value = rawProps[key];
5308        let camelKey;
5309        if (options && hasOwn(options, camelKey = camelize(key))) {
5310          if (!needCastKeys || !needCastKeys.includes(camelKey)) {
5311            props[camelKey] = value;
5312          } else {
5313            (rawCastValues || (rawCastValues = {}))[camelKey] = value;
5314          }
5315        } else if (!isEmitListener(instance.emitsOptions, key)) {
5316          if (!(key in attrs) || value !== attrs[key]) {
5317            attrs[key] = value;
5318            hasAttrsChanged = true;
5319          }
5320        }
5321      }
5322    }
5323    if (needCastKeys) {
5324      const rawCurrentProps = toRaw(props);
5325      const castValues = rawCastValues || EMPTY_OBJ;
5326      for (let i = 0; i < needCastKeys.length; i++) {
5327        const key = needCastKeys[i];
5328        props[key] = resolvePropValue(
5329          options,
5330          rawCurrentProps,
5331          key,
5332          castValues[key],
5333          instance,
5334          !hasOwn(castValues, key)
5335        );
5336      }
5337    }
5338    return hasAttrsChanged;
5339  }
5340  function resolvePropValue(options, props, key, value, instance, isAbsent) {
5341    const opt = options[key];
5342    if (opt != null) {
5343      const hasDefault = hasOwn(opt, "default");
5344      if (hasDefault && value === void 0) {
5345        const defaultValue = opt.default;
5346        if (opt.type !== Function && !opt.skipFactory && isFunction(defaultValue)) {
5347          const { propsDefaults } = instance;
5348          if (key in propsDefaults) {
5349            value = propsDefaults[key];
5350          } else {
5351            const reset = setCurrentInstance(instance);
5352            value = propsDefaults[key] = defaultValue.call(
5353              null,
5354              props
5355            );
5356            reset();
5357          }
5358        } else {
5359          value = defaultValue;
5360        }
5361        if (instance.ce) {
5362          instance.ce._setProp(key, value);
5363        }
5364      }
5365      if (opt[
5366        0
5367        /* shouldCast */
5368      ]) {
5369        if (isAbsent && !hasDefault) {
5370          value = false;
vendor: 16,481 bytes, lines 5371-5910
5371        } else if (opt[
5372          1
5373          /* shouldCastTrue */
5374        ] && (value === "" || value === hyphenate(key))) {
5375          value = true;
5376        }
5377      }
5378    }
5379    return value;
5380  }
5381  const mixinPropsCache = /* @__PURE__ */ new WeakMap();
5382  function normalizePropsOptions(comp, appContext, asMixin = false) {
5383    const cache = asMixin ? mixinPropsCache : appContext.propsCache;
5384    const cached = cache.get(comp);
5385    if (cached) {
5386      return cached;
5387    }
5388    const raw = comp.props;
5389    const normalized = {};
5390    const needCastKeys = [];
5391    let hasExtends = false;
5392    if (!isFunction(comp)) {
5393      const extendProps = (raw2) => {
5394        hasExtends = true;
5395        const [props, keys] = normalizePropsOptions(raw2, appContext, true);
5396        extend(normalized, props);
5397        if (keys)
5398          needCastKeys.push(...keys);
5399      };
5400      if (!asMixin && appContext.mixins.length) {
5401        appContext.mixins.forEach(extendProps);
5402      }
5403      if (comp.extends) {
5404        extendProps(comp.extends);
5405      }
5406      if (comp.mixins) {
5407        comp.mixins.forEach(extendProps);
5408      }
5409    }
5410    if (!raw && !hasExtends) {
5411      if (isObject(comp)) {
5412        cache.set(comp, EMPTY_ARR);
5413      }
5414      return EMPTY_ARR;
5415    }
5416    if (isArray(raw)) {
5417      for (let i = 0; i < raw.length; i++) {
5418        const normalizedKey = camelize(raw[i]);
5419        if (validatePropName(normalizedKey)) {
5420          normalized[normalizedKey] = EMPTY_OBJ;
5421        }
5422      }
5423    } else if (raw) {
5424      for (const key in raw) {
5425        const normalizedKey = camelize(key);
5426        if (validatePropName(normalizedKey)) {
5427          const opt = raw[key];
5428          const prop = normalized[normalizedKey] = isArray(opt) || isFunction(opt) ? { type: opt } : extend({}, opt);
5429          const propType = prop.type;
5430          let shouldCast = false;
5431          let shouldCastTrue = true;
5432          if (isArray(propType)) {
5433            for (let index2 = 0; index2 < propType.length; ++index2) {
5434              const type = propType[index2];
5435              const typeName = isFunction(type) && type.name;
5436              if (typeName === "Boolean") {
5437                shouldCast = true;
5438                break;
5439              } else if (typeName === "String") {
5440                shouldCastTrue = false;
5441              }
5442            }
5443          } else {
5444            shouldCast = isFunction(propType) && propType.name === "Boolean";
5445          }
5446          prop[
5447            0
5448            /* shouldCast */
5449          ] = shouldCast;
5450          prop[
5451            1
5452            /* shouldCastTrue */
5453          ] = shouldCastTrue;
5454          if (shouldCast || hasOwn(prop, "default")) {
5455            needCastKeys.push(normalizedKey);
5456          }
5457        }
5458      }
5459    }
5460    const res = [normalized, needCastKeys];
5461    if (isObject(comp)) {
5462      cache.set(comp, res);
5463    }
5464    return res;
5465  }
5466  function validatePropName(key) {
5467    if (key[0] !== "$" && !isReservedProp(key)) {
5468      return true;
5469    }
5470    return false;
5471  }
5472  const isInternalKey = (key) => key[0] === "_" || key === "$stable";
5473  const normalizeSlotValue = (value) => isArray(value) ? value.map(normalizeVNode$1) : [normalizeVNode$1(value)];
5474  const normalizeSlot = (key, rawSlot, ctx) => {
5475    if (rawSlot._n) {
5476      return rawSlot;
5477    }
5478    const normalized = withCtx((...args) => {
5479      if (false)
5480        ;
5481      return normalizeSlotValue(rawSlot(...args));
5482    }, ctx);
5483    normalized._c = false;
5484    return normalized;
5485  };
5486  const normalizeObjectSlots = (rawSlots, slots, instance) => {
5487    const ctx = rawSlots._ctx;
5488    for (const key in rawSlots) {
5489      if (isInternalKey(key))
5490        continue;
5491      const value = rawSlots[key];
5492      if (isFunction(value)) {
5493        slots[key] = normalizeSlot(key, value, ctx);
5494      } else if (value != null) {
5495        const normalized = normalizeSlotValue(value);
5496        slots[key] = () => normalized;
5497      }
5498    }
5499  };
5500  const normalizeVNodeSlots = (instance, children) => {
5501    const normalized = normalizeSlotValue(children);
5502    instance.slots.default = () => normalized;
5503  };
5504  const assignSlots = (slots, children, optimized) => {
5505    for (const key in children) {
5506      if (optimized || key !== "_") {
5507        slots[key] = children[key];
5508      }
5509    }
5510  };
5511  const initSlots = (instance, children, optimized) => {
5512    const slots = instance.slots = createInternalObject();
5513    if (instance.vnode.shapeFlag & 32) {
5514      const type = children._;
5515      if (type) {
5516        assignSlots(slots, children, optimized);
5517        if (optimized) {
5518          def(slots, "_", type, true);
5519        }
5520      } else {
5521        normalizeObjectSlots(children, slots);
5522      }
5523    } else if (children) {
5524      normalizeVNodeSlots(instance, children);
5525    }
5526  };
5527  const updateSlots = (instance, children, optimized) => {
5528    const { vnode, slots } = instance;
5529    let needDeletionCheck = true;
5530    let deletionComparisonTarget = EMPTY_OBJ;
5531    if (vnode.shapeFlag & 32) {
5532      const type = children._;
5533      if (type) {
5534        if (optimized && type === 1) {
5535          needDeletionCheck = false;
5536        } else {
5537          assignSlots(slots, children, optimized);
5538        }
5539      } else {
5540        needDeletionCheck = !children.$stable;
5541        normalizeObjectSlots(children, slots);
5542      }
5543      deletionComparisonTarget = children;
5544    } else if (children) {
5545      normalizeVNodeSlots(instance, children);
5546      deletionComparisonTarget = { default: 1 };
5547    }
5548    if (needDeletionCheck) {
5549      for (const key in slots) {
5550        if (!isInternalKey(key) && deletionComparisonTarget[key] == null) {
5551          delete slots[key];
5552        }
5553      }
5554    }
5555  };
5556  const queuePostRenderEffect = queueEffectWithSuspense;
5557  function createRenderer(options) {
5558    return baseCreateRenderer(options);
5559  }
5560  function createHydrationRenderer(options) {
5561    return baseCreateRenderer(options, createHydrationFunctions);
5562  }
5563  function baseCreateRenderer(options, createHydrationFns) {
5564    const target = getGlobalThis();
5565    target.__VUE__ = true;
5566    const {
5567      insert: hostInsert,
5568      remove: hostRemove,
5569      patchProp: hostPatchProp,
5570      createElement: hostCreateElement,
5571      createText: hostCreateText,
5572      createComment: hostCreateComment,
5573      setText: hostSetText,
5574      setElementText: hostSetElementText,
5575      parentNode: hostParentNode,
5576      nextSibling: hostNextSibling,
5577      setScopeId: hostSetScopeId = NOOP,
5578      insertStaticContent: hostInsertStaticContent
5579    } = options;
5580    const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = !!n2.dynamicChildren) => {
5581      if (n1 === n2) {
5582        return;
5583      }
5584      if (n1 && !isSameVNodeType(n1, n2)) {
5585        anchor = getNextHostNode(n1);
5586        unmount(n1, parentComponent, parentSuspense, true);
5587        n1 = null;
5588      }
5589      if (n2.patchFlag === -2) {
5590        optimized = false;
5591        n2.dynamicChildren = null;
5592      }
5593      const { type, ref: ref2, shapeFlag } = n2;
5594      switch (type) {
5595        case Text:
5596          processText(n1, n2, container, anchor);
5597          break;
5598        case Comment:
5599          processCommentNode(n1, n2, container, anchor);
5600          break;
5601        case Static:
5602          if (n1 == null) {
5603            mountStaticNode(n2, container, anchor, namespace);
5604          }
5605          break;
5606        case Fragment:
5607          processFragment(
5608            n1,
5609            n2,
5610            container,
5611            anchor,
5612            parentComponent,
5613            parentSuspense,
5614            namespace,
5615            slotScopeIds,
5616            optimized
5617          );
5618          break;
5619        default:
5620          if (shapeFlag & 1) {
5621            processElement(
5622              n1,
5623              n2,
5624              container,
5625              anchor,
5626              parentComponent,
5627              parentSuspense,
5628              namespace,
5629              slotScopeIds,
5630              optimized
5631            );
5632          } else if (shapeFlag & 6) {
5633            processComponent(
5634              n1,
5635              n2,
5636              container,
5637              anchor,
5638              parentComponent,
5639              parentSuspense,
5640              namespace,
5641              slotScopeIds,
5642              optimized
5643            );
5644          } else if (shapeFlag & 64) {
5645            type.process(
5646              n1,
5647              n2,
5648              container,
5649              anchor,
5650              parentComponent,
5651              parentSuspense,
5652              namespace,
5653              slotScopeIds,
5654              optimized,
5655              internals
5656            );
5657          } else if (shapeFlag & 128) {
5658            type.process(
5659              n1,
5660              n2,
5661              container,
5662              anchor,
5663              parentComponent,
5664              parentSuspense,
5665              namespace,
5666              slotScopeIds,
5667              optimized,
5668              internals
5669            );
5670          } else
5671            ;
5672      }
5673      if (ref2 != null && parentComponent) {
5674        setRef(ref2, n1 && n1.ref, parentSuspense, n2 || n1, !n2);
5675      }
5676    };
5677    const processText = (n1, n2, container, anchor) => {
5678      if (n1 == null) {
5679        hostInsert(
5680          n2.el = hostCreateText(n2.children),
5681          container,
5682          anchor
5683        );
5684      } else {
5685        const el = n2.el = n1.el;
5686        if (n2.children !== n1.children) {
5687          hostSetText(el, n2.children);
5688        }
5689      }
5690    };
5691    const processCommentNode = (n1, n2, container, anchor) => {
5692      if (n1 == null) {
5693        hostInsert(
5694          n2.el = hostCreateComment(n2.children || ""),
5695          container,
5696          anchor
5697        );
5698      } else {
5699        n2.el = n1.el;
5700      }
5701    };
5702    const mountStaticNode = (n2, container, anchor, namespace) => {
5703      [n2.el, n2.anchor] = hostInsertStaticContent(
5704        n2.children,
5705        container,
5706        anchor,
5707        namespace,
5708        n2.el,
5709        n2.anchor
5710      );
5711    };
5712    const moveStaticNode = ({ el, anchor }, container, nextSibling) => {
5713      let next;
5714      while (el && el !== anchor) {
5715        next = hostNextSibling(el);
5716        hostInsert(el, container, nextSibling);
5717        el = next;
5718      }
5719      hostInsert(anchor, container, nextSibling);
5720    };
5721    const removeStaticNode = ({ el, anchor }) => {
5722      let next;
5723      while (el && el !== anchor) {
5724        next = hostNextSibling(el);
5725        hostRemove(el);
5726        el = next;
5727      }
5728      hostRemove(anchor);
5729    };
5730    const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
5731      if (n2.type === "svg") {
5732        namespace = "svg";
5733      } else if (n2.type === "math") {
5734        namespace = "mathml";
5735      }
5736      if (n1 == null) {
5737        mountElement(
5738          n2,
5739          container,
5740          anchor,
5741          parentComponent,
5742          parentSuspense,
5743          namespace,
5744          slotScopeIds,
5745          optimized
5746        );
5747      } else {
5748        patchElement(
5749          n1,
5750          n2,
5751          parentComponent,
5752          parentSuspense,
5753          namespace,
5754          slotScopeIds,
5755          optimized
5756        );
5757      }
5758    };
5759    const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
5760      let el;
5761      let vnodeHook;
5762      const { props, shapeFlag, transition, dirs } = vnode;
5763      el = vnode.el = hostCreateElement(
5764        vnode.type,
5765        namespace,
5766        props && props.is,
5767        props
5768      );
5769      if (shapeFlag & 8) {
5770        hostSetElementText(el, vnode.children);
5771      } else if (shapeFlag & 16) {
5772        mountChildren(
5773          vnode.children,
5774          el,
5775          null,
5776          parentComponent,
5777          parentSuspense,
5778          resolveChildrenNamespace(vnode, namespace),
5779          slotScopeIds,
5780          optimized
5781        );
5782      }
5783      if (dirs) {
5784        invokeDirectiveHook(vnode, null, parentComponent, "created");
5785      }
5786      setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent);
5787      if (props) {
5788        for (const key in props) {
5789          if (key !== "value" && !isReservedProp(key)) {
5790            hostPatchProp(el, key, null, props[key], namespace, parentComponent);
5791          }
5792        }
5793        if ("value" in props) {
5794          hostPatchProp(el, "value", null, props.value, namespace);
5795        }
5796        if (vnodeHook = props.onVnodeBeforeMount) {
5797          invokeVNodeHook(vnodeHook, parentComponent, vnode);
5798        }
5799      }
5800      if (dirs) {
5801        invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
5802      }
5803      const needCallTransitionHooks = needTransition(parentSuspense, transition);
5804      if (needCallTransitionHooks) {
5805        transition.beforeEnter(el);
5806      }
5807      hostInsert(el, container, anchor);
5808      if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) {
5809        queuePostRenderEffect(() => {
5810          vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
5811          needCallTransitionHooks && transition.enter(el);
5812          dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted");
5813        }, parentSuspense);
5814      }
5815    };
5816    const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {
5817      if (scopeId) {
5818        hostSetScopeId(el, scopeId);
5819      }
5820      if (slotScopeIds) {
5821        for (let i = 0; i < slotScopeIds.length; i++) {
5822          hostSetScopeId(el, slotScopeIds[i]);
5823        }
5824      }
5825      if (parentComponent) {
5826        let subTree = parentComponent.subTree;
5827        if (vnode === subTree || isSuspense(subTree.type) && (subTree.ssContent === vnode || subTree.ssFallback === vnode)) {
5828          const parentVNode = parentComponent.vnode;
5829          setScopeId(
5830            el,
5831            parentVNode,
5832            parentVNode.scopeId,
5833            parentVNode.slotScopeIds,
5834            parentComponent.parent
5835          );
5836        }
5837      }
5838    };
5839    const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {
5840      for (let i = start; i < children.length; i++) {
5841        const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode$1(children[i]);
5842        patch(
5843          null,
5844          child,
5845          container,
5846          anchor,
5847          parentComponent,
5848          parentSuspense,
5849          namespace,
5850          slotScopeIds,
5851          optimized
5852        );
5853      }
5854    };
5855    const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
5856      const el = n2.el = n1.el;
5857      let { patchFlag, dynamicChildren, dirs } = n2;
5858      patchFlag |= n1.patchFlag & 16;
5859      const oldProps = n1.props || EMPTY_OBJ;
5860      const newProps = n2.props || EMPTY_OBJ;
5861      let vnodeHook;
5862      parentComponent && toggleRecurse(parentComponent, false);
5863      if (vnodeHook = newProps.onVnodeBeforeUpdate) {
5864        invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
5865      }
5866      if (dirs) {
5867        invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
5868      }
5869      parentComponent && toggleRecurse(parentComponent, true);
5870      if (oldProps.innerHTML && newProps.innerHTML == null || oldProps.textContent && newProps.textContent == null) {
5871        hostSetElementText(el, "");
5872      }
5873      if (dynamicChildren) {
5874        patchBlockChildren(
5875          n1.dynamicChildren,
5876          dynamicChildren,
5877          el,
5878          parentComponent,
5879          parentSuspense,
5880          resolveChildrenNamespace(n2, namespace),
5881          slotScopeIds
5882        );
5883      } else if (!optimized) {
5884        patchChildren(
5885          n1,
5886          n2,
5887          el,
5888          null,
5889          parentComponent,
5890          parentSuspense,
5891          resolveChildrenNamespace(n2, namespace),
5892          slotScopeIds,
5893          false
5894        );
5895      }
5896      if (patchFlag > 0) {
5897        if (patchFlag & 16) {
5898          patchProps(el, oldProps, newProps, parentComponent, namespace);
5899        } else {
5900          if (patchFlag & 2) {
5901            if (oldProps.class !== newProps.class) {
5902              hostPatchProp(el, "class", null, newProps.class, namespace);
5903            }
5904          }
5905          if (patchFlag & 4) {
5906            hostPatchProp(el, "style", oldProps.style, newProps.style, namespace);
5907          }
5908          if (patchFlag & 8) {
5909            const propsToUpdate = n2.dynamicProps;
5910            for (let i = 0; i < propsToUpdate.length; i++) {
vendor: 4,957 bytes, lines 5911-6035
5911              const key = propsToUpdate[i];
5912              const prev = oldProps[key];
5913              const next = newProps[key];
5914              if (next !== prev || key === "value") {
5915                hostPatchProp(el, key, prev, next, namespace, parentComponent);
5916              }
5917            }
5918          }
5919        }
5920        if (patchFlag & 1) {
5921          if (n1.children !== n2.children) {
5922            hostSetElementText(el, n2.children);
5923          }
5924        }
5925      } else if (!optimized && dynamicChildren == null) {
5926        patchProps(el, oldProps, newProps, parentComponent, namespace);
5927      }
5928      if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {
5929        queuePostRenderEffect(() => {
5930          vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
5931          dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
5932        }, parentSuspense);
5933      }
5934    };
5935    const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => {
5936      for (let i = 0; i < newChildren.length; i++) {
5937        const oldVNode = oldChildren[i];
5938        const newVNode = newChildren[i];
5939        const container = (
5940          // oldVNode may be an errored async setup() component inside Suspense
5941          // which will not have a mounted element
5942          oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent
5943          // of the Fragment itself so it can move its children.
5944          (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement
5945          // which also requires the correct parent container
5946          !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.
5947          oldVNode.shapeFlag & (6 | 64)) ? hostParentNode(oldVNode.el) : (
5948            // In other cases, the parent container is not actually used so we
5949            // just pass the block element here to avoid a DOM parentNode call.
5950            fallbackContainer
5951          )
5952        );
5953        patch(
5954          oldVNode,
5955          newVNode,
5956          container,
5957          null,
5958          parentComponent,
5959          parentSuspense,
5960          namespace,
5961          slotScopeIds,
5962          true
5963        );
5964      }
5965    };
5966    const patchProps = (el, oldProps, newProps, parentComponent, namespace) => {
5967      if (oldProps !== newProps) {
5968        if (oldProps !== EMPTY_OBJ) {
5969          for (const key in oldProps) {
5970            if (!isReservedProp(key) && !(key in newProps)) {
5971              hostPatchProp(
5972                el,
5973                key,
5974                oldProps[key],
5975                null,
5976                namespace,
5977                parentComponent
5978              );
5979            }
5980          }
5981        }
5982        for (const key in newProps) {
5983          if (isReservedProp(key))
5984            continue;
5985          const next = newProps[key];
5986          const prev = oldProps[key];
5987          if (next !== prev && key !== "value") {
5988            hostPatchProp(el, key, prev, next, namespace, parentComponent);
5989          }
5990        }
5991        if ("value" in newProps) {
5992          hostPatchProp(el, "value", oldProps.value, newProps.value, namespace);
5993        }
5994      }
5995    };
5996    const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
5997      const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText("");
5998      const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText("");
5999      let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;
6000      if (fragmentSlotScopeIds) {
6001        slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;
6002      }
6003      if (n1 == null) {
6004        hostInsert(fragmentStartAnchor, container, anchor);
6005        hostInsert(fragmentEndAnchor, container, anchor);
6006        mountChildren(
6007          // #10007
6008          // such fragment like `<></>` will be compiled into
6009          // a fragment which doesn't have a children.
6010          // In this case fallback to an empty array
6011          n2.children || [],
6012          container,
6013          fragmentEndAnchor,
6014          parentComponent,
6015          parentSuspense,
6016          namespace,
6017          slotScopeIds,
6018          optimized
6019        );
6020      } else {
6021        if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result
6022        // of renderSlot() with no valid children
6023        n1.dynamicChildren) {
6024          patchBlockChildren(
6025            n1.dynamicChildren,
6026            dynamicChildren,
6027            container,
6028            parentComponent,
6029            parentSuspense,
6030            namespace,
6031            slotScopeIds
6032          );
6033          if (
6034            // #2080 if the stable fragment has a key, it's a <template v-for> that may
6035            //  get moved around. Make sure all root level vnodes inherit el.
vendor: 13,268 bytes, lines 6036-6476
6036            // #2134 or if it's a component root, it may also get moved around
6037            // as the component is being moved.
6038            n2.key != null || parentComponent && n2 === parentComponent.subTree
6039          ) {
6040            traverseStaticChildren(
6041              n1,
6042              n2,
6043              true
6044              /* shallow */
6045            );
6046          }
6047        } else {
6048          patchChildren(
6049            n1,
6050            n2,
6051            container,
6052            fragmentEndAnchor,
6053            parentComponent,
6054            parentSuspense,
6055            namespace,
6056            slotScopeIds,
6057            optimized
6058          );
6059        }
6060      }
6061    };
6062    const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
6063      n2.slotScopeIds = slotScopeIds;
6064      if (n1 == null) {
6065        if (n2.shapeFlag & 512) {
6066          parentComponent.ctx.activate(
6067            n2,
6068            container,
6069            anchor,
6070            namespace,
6071            optimized
6072          );
6073        } else {
6074          mountComponent(
6075            n2,
6076            container,
6077            anchor,
6078            parentComponent,
6079            parentSuspense,
6080            namespace,
6081            optimized
6082          );
6083        }
6084      } else {
6085        updateComponent(n1, n2, optimized);
6086      }
6087    };
6088    const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {
6089      const instance = initialVNode.component = createComponentInstance$1(
6090        initialVNode,
6091        parentComponent,
6092        parentSuspense
6093      );
6094      if (isKeepAlive(initialVNode)) {
6095        instance.ctx.renderer = internals;
6096      }
6097      {
6098        setupComponent$1(instance, false, optimized);
6099      }
6100      if (instance.asyncDep) {
6101        parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
6102        if (!initialVNode.el) {
6103          const placeholder = instance.subTree = createVNode(Comment);
6104          processCommentNode(null, placeholder, container, anchor);
6105        }
6106      } else {
6107        setupRenderEffect(
6108          instance,
6109          initialVNode,
6110          container,
6111          anchor,
6112          parentSuspense,
6113          namespace,
6114          optimized
6115        );
6116      }
6117    };
6118    const updateComponent = (n1, n2, optimized) => {
6119      const instance = n2.component = n1.component;
6120      if (shouldUpdateComponent(n1, n2, optimized)) {
6121        if (instance.asyncDep && !instance.asyncResolved) {
6122          updateComponentPreRender(instance, n2, optimized);
6123          return;
6124        } else {
6125          instance.next = n2;
6126          instance.update();
6127        }
6128      } else {
6129        n2.el = n1.el;
6130        instance.vnode = n2;
6131      }
6132    };
6133    const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => {
6134      const componentUpdateFn = () => {
6135        if (!instance.isMounted) {
6136          let vnodeHook;
6137          const { el, props } = initialVNode;
6138          const { bm, m, parent, root, type } = instance;
6139          const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);
6140          toggleRecurse(instance, false);
6141          if (bm) {
6142            invokeArrayFns(bm);
6143          }
6144          if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) {
6145            invokeVNodeHook(vnodeHook, parent, initialVNode);
6146          }
6147          toggleRecurse(instance, true);
6148          if (el && hydrateNode) {
6149            const hydrateSubTree = () => {
6150              instance.subTree = renderComponentRoot$1(instance);
6151              hydrateNode(
6152                el,
6153                instance.subTree,
6154                instance,
6155                parentSuspense,
6156                null
6157              );
6158            };
6159            if (isAsyncWrapperVNode && type.__asyncHydrate) {
6160              type.__asyncHydrate(
6161                el,
6162                instance,
6163                hydrateSubTree
6164              );
6165            } else {
6166              hydrateSubTree();
6167            }
6168          } else {
6169            if (root.ce) {
6170              root.ce._injectChildStyle(type);
6171            }
6172            const subTree = instance.subTree = renderComponentRoot$1(instance);
6173            patch(
6174              null,
6175              subTree,
6176              container,
6177              anchor,
6178              instance,
6179              parentSuspense,
6180              namespace
6181            );
6182            initialVNode.el = subTree.el;
6183          }
6184          if (m) {
6185            queuePostRenderEffect(m, parentSuspense);
6186          }
6187          if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) {
6188            const scopedInitialVNode = initialVNode;
6189            queuePostRenderEffect(
6190              () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode),
6191              parentSuspense
6192            );
6193          }
6194          if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) {
6195            instance.a && queuePostRenderEffect(instance.a, parentSuspense);
6196          }
6197          instance.isMounted = true;
6198          initialVNode = container = anchor = null;
6199        } else {
6200          let { next, bu, u, parent, vnode } = instance;
6201          {
6202            const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance);
6203            if (nonHydratedAsyncRoot) {
6204              if (next) {
6205                next.el = vnode.el;
6206                updateComponentPreRender(instance, next, optimized);
6207              }
6208              nonHydratedAsyncRoot.asyncDep.then(() => {
6209                if (!instance.isUnmounted) {
6210                  componentUpdateFn();
6211                }
6212              });
6213              return;
6214            }
6215          }
6216          let originNext = next;
6217          let vnodeHook;
6218          toggleRecurse(instance, false);
6219          if (next) {
6220            next.el = vnode.el;
6221            updateComponentPreRender(instance, next, optimized);
6222          } else {
6223            next = vnode;
6224          }
6225          if (bu) {
6226            invokeArrayFns(bu);
6227          }
6228          if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) {
6229            invokeVNodeHook(vnodeHook, parent, next, vnode);
6230          }
6231          toggleRecurse(instance, true);
6232          const nextTree = renderComponentRoot$1(instance);
6233          const prevTree = instance.subTree;
6234          instance.subTree = nextTree;
6235          patch(
6236            prevTree,
6237            nextTree,
6238            // parent may have changed if it's in a teleport
6239            hostParentNode(prevTree.el),
6240            // anchor may have changed if it's in a fragment
6241            getNextHostNode(prevTree),
6242            instance,
6243            parentSuspense,
6244            namespace
6245          );
6246          next.el = nextTree.el;
6247          if (originNext === null) {
6248            updateHOCHostEl(instance, nextTree.el);
6249          }
6250          if (u) {
6251            queuePostRenderEffect(u, parentSuspense);
6252          }
6253          if (vnodeHook = next.props && next.props.onVnodeUpdated) {
6254            queuePostRenderEffect(
6255              () => invokeVNodeHook(vnodeHook, parent, next, vnode),
6256              parentSuspense
6257            );
6258          }
6259        }
6260      };
6261      instance.scope.on();
6262      const effect2 = instance.effect = new ReactiveEffect(componentUpdateFn);
6263      instance.scope.off();
6264      const update = instance.update = effect2.run.bind(effect2);
6265      const job = instance.job = effect2.runIfDirty.bind(effect2);
6266      job.i = instance;
6267      job.id = instance.uid;
6268      effect2.scheduler = () => queueJob(job);
6269      toggleRecurse(instance, true);
6270      update();
6271    };
6272    const updateComponentPreRender = (instance, nextVNode, optimized) => {
6273      nextVNode.component = instance;
6274      const prevProps = instance.vnode.props;
6275      instance.vnode = nextVNode;
6276      instance.next = null;
6277      updateProps(instance, nextVNode.props, prevProps, optimized);
6278      updateSlots(instance, nextVNode.children, optimized);
6279      pauseTracking();
6280      flushPreFlushCbs(instance);
6281      resetTracking();
6282    };
6283    const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => {
6284      const c1 = n1 && n1.children;
6285      const prevShapeFlag = n1 ? n1.shapeFlag : 0;
6286      const c2 = n2.children;
6287      const { patchFlag, shapeFlag } = n2;
6288      if (patchFlag > 0) {
6289        if (patchFlag & 128) {
6290          patchKeyedChildren(
6291            c1,
6292            c2,
6293            container,
6294            anchor,
6295            parentComponent,
6296            parentSuspense,
6297            namespace,
6298            slotScopeIds,
6299            optimized
6300          );
6301          return;
6302        } else if (patchFlag & 256) {
6303          patchUnkeyedChildren(
6304            c1,
6305            c2,
6306            container,
6307            anchor,
6308            parentComponent,
6309            parentSuspense,
6310            namespace,
6311            slotScopeIds,
6312            optimized
6313          );
6314          return;
6315        }
6316      }
6317      if (shapeFlag & 8) {
6318        if (prevShapeFlag & 16) {
6319          unmountChildren(c1, parentComponent, parentSuspense);
6320        }
6321        if (c2 !== c1) {
6322          hostSetElementText(container, c2);
6323        }
6324      } else {
6325        if (prevShapeFlag & 16) {
6326          if (shapeFlag & 16) {
6327            patchKeyedChildren(
6328              c1,
6329              c2,
6330              container,
6331              anchor,
6332              parentComponent,
6333              parentSuspense,
6334              namespace,
6335              slotScopeIds,
6336              optimized
6337            );
6338          } else {
6339            unmountChildren(c1, parentComponent, parentSuspense, true);
6340          }
6341        } else {
6342          if (prevShapeFlag & 8) {
6343            hostSetElementText(container, "");
6344          }
6345          if (shapeFlag & 16) {
6346            mountChildren(
6347              c2,
6348              container,
6349              anchor,
6350              parentComponent,
6351              parentSuspense,
6352              namespace,
6353              slotScopeIds,
6354              optimized
6355            );
6356          }
6357        }
6358      }
6359    };
6360    const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
6361      c1 = c1 || EMPTY_ARR;
6362      c2 = c2 || EMPTY_ARR;
6363      const oldLength = c1.length;
6364      const newLength = c2.length;
6365      const commonLength = Math.min(oldLength, newLength);
6366      let i;
6367      for (i = 0; i < commonLength; i++) {
6368        const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode$1(c2[i]);
6369        patch(
6370          c1[i],
6371          nextChild,
6372          container,
6373          null,
6374          parentComponent,
6375          parentSuspense,
6376          namespace,
6377          slotScopeIds,
6378          optimized
6379        );
6380      }
6381      if (oldLength > newLength) {
6382        unmountChildren(
6383          c1,
6384          parentComponent,
6385          parentSuspense,
6386          true,
6387          false,
6388          commonLength
6389        );
6390      } else {
6391        mountChildren(
6392          c2,
6393          container,
6394          anchor,
6395          parentComponent,
6396          parentSuspense,
6397          namespace,
6398          slotScopeIds,
6399          optimized,
6400          commonLength
6401        );
6402      }
6403    };
6404    const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
6405      let i = 0;
6406      const l2 = c2.length;
6407      let e1 = c1.length - 1;
6408      let e2 = l2 - 1;
6409      while (i <= e1 && i <= e2) {
6410        const n1 = c1[i];
6411        const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode$1(c2[i]);
6412        if (isSameVNodeType(n1, n2)) {
6413          patch(
6414            n1,
6415            n2,
6416            container,
6417            null,
6418            parentComponent,
6419            parentSuspense,
6420            namespace,
6421            slotScopeIds,
6422            optimized
6423          );
6424        } else {
6425          break;
6426        }
6427        i++;
6428      }
6429      while (i <= e1 && i <= e2) {
6430        const n1 = c1[e1];
6431        const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode$1(c2[e2]);
6432        if (isSameVNodeType(n1, n2)) {
6433          patch(
6434            n1,
6435            n2,
6436            container,
6437            null,
6438            parentComponent,
6439            parentSuspense,
6440            namespace,
6441            slotScopeIds,
6442            optimized
6443          );
6444        } else {
6445          break;
6446        }
6447        e1--;
6448        e2--;
6449      }
6450      if (i > e1) {
6451        if (i <= e2) {
6452          const nextPos = e2 + 1;
6453          const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor;
6454          while (i <= e2) {
6455            patch(
6456              null,
6457              c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode$1(c2[i]),
6458              container,
6459              anchor,
6460              parentComponent,
6461              parentSuspense,
6462              namespace,
6463              slotScopeIds,
6464              optimized
6465            );
6466            i++;
6467          }
6468        }
6469      } else if (i > e2) {
6470        while (i <= e1) {
6471          unmount(c1[i], parentComponent, parentSuspense, true);
6472          i++;
6473        }
6474      } else {
6475        const s1 = i;
6476        const s2 = i;
vendor: 4,794 bytes, lines 6477-6624
6477        const keyToNewIndexMap = /* @__PURE__ */ new Map();
6478        for (i = s2; i <= e2; i++) {
6479          const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode$1(c2[i]);
6480          if (nextChild.key != null) {
6481            keyToNewIndexMap.set(nextChild.key, i);
6482          }
6483        }
6484        let j;
6485        let patched = 0;
6486        const toBePatched = e2 - s2 + 1;
6487        let moved = false;
6488        let maxNewIndexSoFar = 0;
6489        const newIndexToOldIndexMap = new Array(toBePatched);
6490        for (i = 0; i < toBePatched; i++)
6491          newIndexToOldIndexMap[i] = 0;
6492        for (i = s1; i <= e1; i++) {
6493          const prevChild = c1[i];
6494          if (patched >= toBePatched) {
6495            unmount(prevChild, parentComponent, parentSuspense, true);
6496            continue;
6497          }
6498          let newIndex;
6499          if (prevChild.key != null) {
6500            newIndex = keyToNewIndexMap.get(prevChild.key);
6501          } else {
6502            for (j = s2; j <= e2; j++) {
6503              if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) {
6504                newIndex = j;
6505                break;
6506              }
6507            }
6508          }
6509          if (newIndex === void 0) {
6510            unmount(prevChild, parentComponent, parentSuspense, true);
6511          } else {
6512            newIndexToOldIndexMap[newIndex - s2] = i + 1;
6513            if (newIndex >= maxNewIndexSoFar) {
6514              maxNewIndexSoFar = newIndex;
6515            } else {
6516              moved = true;
6517            }
6518            patch(
6519              prevChild,
6520              c2[newIndex],
6521              container,
6522              null,
6523              parentComponent,
6524              parentSuspense,
6525              namespace,
6526              slotScopeIds,
6527              optimized
6528            );
6529            patched++;
6530          }
6531        }
6532        const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR;
6533        j = increasingNewIndexSequence.length - 1;
6534        for (i = toBePatched - 1; i >= 0; i--) {
6535          const nextIndex = s2 + i;
6536          const nextChild = c2[nextIndex];
6537          const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor;
6538          if (newIndexToOldIndexMap[i] === 0) {
6539            patch(
6540              null,
6541              nextChild,
6542              container,
6543              anchor,
6544              parentComponent,
6545              parentSuspense,
6546              namespace,
6547              slotScopeIds,
6548              optimized
6549            );
6550          } else if (moved) {
6551            if (j < 0 || i !== increasingNewIndexSequence[j]) {
6552              move(nextChild, container, anchor, 2);
6553            } else {
6554              j--;
6555            }
6556          }
6557        }
6558      }
6559    };
6560    const move = (vnode, container, anchor, moveType, parentSuspense = null) => {
6561      const { el, type, transition, children, shapeFlag } = vnode;
6562      if (shapeFlag & 6) {
6563        move(vnode.component.subTree, container, anchor, moveType);
6564        return;
6565      }
6566      if (shapeFlag & 128) {
6567        vnode.suspense.move(container, anchor, moveType);
6568        return;
6569      }
6570      if (shapeFlag & 64) {
6571        type.move(vnode, container, anchor, internals);
6572        return;
6573      }
6574      if (type === Fragment) {
6575        hostInsert(el, container, anchor);
6576        for (let i = 0; i < children.length; i++) {
6577          move(children[i], container, anchor, moveType);
6578        }
6579        hostInsert(vnode.anchor, container, anchor);
6580        return;
6581      }
6582      if (type === Static) {
6583        moveStaticNode(vnode, container, anchor);
6584        return;
6585      }
6586      const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition;
6587      if (needTransition2) {
6588        if (moveType === 0) {
6589          transition.beforeEnter(el);
6590          hostInsert(el, container, anchor);
6591          queuePostRenderEffect(() => transition.enter(el), parentSuspense);
6592        } else {
6593          const { leave, delayLeave, afterLeave } = transition;
6594          const remove22 = () => hostInsert(el, container, anchor);
6595          const performLeave = () => {
6596            leave(el, () => {
6597              remove22();
6598              afterLeave && afterLeave();
6599            });
6600          };
6601          if (delayLeave) {
6602            delayLeave(el, remove22, performLeave);
6603          } else {
6604            performLeave();
6605          }
6606        }
6607      } else {
6608        hostInsert(el, container, anchor);
6609      }
6610    };
6611    const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {
6612      const {
6613        type,
6614        props,
6615        ref: ref2,
6616        children,
6617        dynamicChildren,
6618        shapeFlag,
6619        patchFlag,
6620        dirs,
6621        cacheIndex
6622      } = vnode;
6623      if (patchFlag === -2) {
6624        optimized = false;
vendor: 5,009 bytes, lines 6625-6768
6625      }
6626      if (ref2 != null) {
6627        setRef(ref2, null, parentSuspense, vnode, true);
6628      }
6629      if (cacheIndex != null) {
6630        parentComponent.renderCache[cacheIndex] = void 0;
6631      }
6632      if (shapeFlag & 256) {
6633        parentComponent.ctx.deactivate(vnode);
6634        return;
6635      }
6636      const shouldInvokeDirs = shapeFlag & 1 && dirs;
6637      const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);
6638      let vnodeHook;
6639      if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) {
6640        invokeVNodeHook(vnodeHook, parentComponent, vnode);
6641      }
6642      if (shapeFlag & 6) {
6643        unmountComponent(vnode.component, parentSuspense, doRemove);
6644      } else {
6645        if (shapeFlag & 128) {
6646          vnode.suspense.unmount(parentSuspense, doRemove);
6647          return;
6648        }
6649        if (shouldInvokeDirs) {
6650          invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount");
6651        }
6652        if (shapeFlag & 64) {
6653          vnode.type.remove(
6654            vnode,
6655            parentComponent,
6656            parentSuspense,
6657            internals,
6658            doRemove
6659          );
6660        } else if (dynamicChildren && // #5154
6661        // when v-once is used inside a block, setBlockTracking(-1) marks the
6662        // parent block with hasOnce: true
6663        // so that it doesn't take the fast path during unmount - otherwise
6664        // components nested in v-once are never unmounted.
6665        !dynamicChildren.hasOnce && // #1153: fast path should not be taken for non-stable (v-for) fragments
6666        (type !== Fragment || patchFlag > 0 && patchFlag & 64)) {
6667          unmountChildren(
6668            dynamicChildren,
6669            parentComponent,
6670            parentSuspense,
6671            false,
6672            true
6673          );
6674        } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) {
6675          unmountChildren(children, parentComponent, parentSuspense);
6676        }
6677        if (doRemove) {
6678          remove2(vnode);
6679        }
6680      }
6681      if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) {
6682        queuePostRenderEffect(() => {
6683          vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
6684          shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted");
6685        }, parentSuspense);
6686      }
6687    };
6688    const remove2 = (vnode) => {
6689      const { type, el, anchor, transition } = vnode;
6690      if (type === Fragment) {
6691        {
6692          removeFragment(el, anchor);
6693        }
6694        return;
6695      }
6696      if (type === Static) {
6697        removeStaticNode(vnode);
6698        return;
6699      }
6700      const performRemove = () => {
6701        hostRemove(el);
6702        if (transition && !transition.persisted && transition.afterLeave) {
6703          transition.afterLeave();
6704        }
6705      };
6706      if (vnode.shapeFlag & 1 && transition && !transition.persisted) {
6707        const { leave, delayLeave } = transition;
6708        const performLeave = () => leave(el, performRemove);
6709        if (delayLeave) {
6710          delayLeave(vnode.el, performRemove, performLeave);
6711        } else {
6712          performLeave();
6713        }
6714      } else {
6715        performRemove();
6716      }
6717    };
6718    const removeFragment = (cur, end) => {
6719      let next;
6720      while (cur !== end) {
6721        next = hostNextSibling(cur);
6722        hostRemove(cur);
6723        cur = next;
6724      }
6725      hostRemove(end);
6726    };
6727    const unmountComponent = (instance, parentSuspense, doRemove) => {
6728      const { bum, scope, job, subTree, um, m, a } = instance;
6729      invalidateMount(m);
6730      invalidateMount(a);
6731      if (bum) {
6732        invokeArrayFns(bum);
6733      }
6734      scope.stop();
6735      if (job) {
6736        job.flags |= 8;
6737        unmount(subTree, instance, parentSuspense, doRemove);
6738      }
6739      if (um) {
6740        queuePostRenderEffect(um, parentSuspense);
6741      }
6742      queuePostRenderEffect(() => {
6743        instance.isUnmounted = true;
6744      }, parentSuspense);
6745      if (parentSuspense && parentSuspense.pendingBranch && !parentSuspense.isUnmounted && instance.asyncDep && !instance.asyncResolved && instance.suspenseId === parentSuspense.pendingId) {
6746        parentSuspense.deps--;
6747        if (parentSuspense.deps === 0) {
6748          parentSuspense.resolve();
6749        }
6750      }
6751    };
6752    const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {
6753      for (let i = start; i < children.length; i++) {
6754        unmount(children[i], parentComponent, parentSuspense, doRemove, optimized);
6755      }
6756    };
6757    const getNextHostNode = (vnode) => {
6758      if (vnode.shapeFlag & 6) {
6759        return getNextHostNode(vnode.component.subTree);
6760      }
6761      if (vnode.shapeFlag & 128) {
6762        return vnode.suspense.next();
6763      }
6764      const el = hostNextSibling(vnode.anchor || vnode.el);
6765      const teleportEnd = el && el[TeleportEndKey];
6766      return teleportEnd ? hostNextSibling(teleportEnd) : el;
6767    };
6768    let isFlushing = false;
vendor: 20,242 bytes, lines 6769-7476
6769    const render2 = (vnode, container, namespace) => {
6770      if (vnode == null) {
6771        if (container._vnode) {
6772          unmount(container._vnode, null, null, true);
6773        }
6774      } else {
6775        patch(
6776          container._vnode || null,
6777          vnode,
6778          container,
6779          null,
6780          null,
6781          null,
6782          namespace
6783        );
6784      }
6785      container._vnode = vnode;
6786      if (!isFlushing) {
6787        isFlushing = true;
6788        flushPreFlushCbs();
6789        flushPostFlushCbs();
6790        isFlushing = false;
6791      }
6792    };
6793    const internals = {
6794      p: patch,
6795      um: unmount,
6796      m: move,
6797      r: remove2,
6798      mt: mountComponent,
6799      mc: mountChildren,
6800      pc: patchChildren,
6801      pbc: patchBlockChildren,
6802      n: getNextHostNode,
6803      o: options
6804    };
6805    let hydrate2;
6806    let hydrateNode;
6807    if (createHydrationFns) {
6808      [hydrate2, hydrateNode] = createHydrationFns(
6809        internals
6810      );
6811    }
6812    return {
6813      render: render2,
6814      hydrate: hydrate2,
6815      createApp: createAppAPI(render2, hydrate2)
6816    };
6817  }
6818  function resolveChildrenNamespace({ type, props }, currentNamespace) {
6819    return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace;
6820  }
6821  function toggleRecurse({ effect: effect2, job }, allowed) {
6822    if (allowed) {
6823      effect2.flags |= 32;
6824      job.flags |= 4;
6825    } else {
6826      effect2.flags &= ~32;
6827      job.flags &= ~4;
6828    }
6829  }
6830  function needTransition(parentSuspense, transition) {
6831    return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted;
6832  }
6833  function traverseStaticChildren(n1, n2, shallow = false) {
6834    const ch1 = n1.children;
6835    const ch2 = n2.children;
6836    if (isArray(ch1) && isArray(ch2)) {
6837      for (let i = 0; i < ch1.length; i++) {
6838        const c1 = ch1[i];
6839        let c2 = ch2[i];
6840        if (c2.shapeFlag & 1 && !c2.dynamicChildren) {
6841          if (c2.patchFlag <= 0 || c2.patchFlag === 32) {
6842            c2 = ch2[i] = cloneIfMounted(ch2[i]);
6843            c2.el = c1.el;
6844          }
6845          if (!shallow && c2.patchFlag !== -2)
6846            traverseStaticChildren(c1, c2);
6847        }
6848        if (c2.type === Text) {
6849          c2.el = c1.el;
6850        }
6851      }
6852    }
6853  }
6854  function getSequence(arr) {
6855    const p2 = arr.slice();
6856    const result = [0];
6857    let i, j, u, v, c;
6858    const len = arr.length;
6859    for (i = 0; i < len; i++) {
6860      const arrI = arr[i];
6861      if (arrI !== 0) {
6862        j = result[result.length - 1];
6863        if (arr[j] < arrI) {
6864          p2[i] = j;
6865          result.push(i);
6866          continue;
6867        }
6868        u = 0;
6869        v = result.length - 1;
6870        while (u < v) {
6871          c = u + v >> 1;
6872          if (arr[result[c]] < arrI) {
6873            u = c + 1;
6874          } else {
6875            v = c;
6876          }
6877        }
6878        if (arrI < arr[result[u]]) {
6879          if (u > 0) {
6880            p2[i] = result[u - 1];
6881          }
6882          result[u] = i;
6883        }
6884      }
6885    }
6886    u = result.length;
6887    v = result[u - 1];
6888    while (u-- > 0) {
6889      result[u] = v;
6890      v = p2[v];
6891    }
6892    return result;
6893  }
6894  function locateNonHydratedAsyncRoot(instance) {
6895    const subComponent = instance.subTree.component;
6896    if (subComponent) {
6897      if (subComponent.asyncDep && !subComponent.asyncResolved) {
6898        return subComponent;
6899      } else {
6900        return locateNonHydratedAsyncRoot(subComponent);
6901      }
6902    }
6903  }
6904  function invalidateMount(hooks) {
6905    if (hooks) {
6906      for (let i = 0; i < hooks.length; i++)
6907        hooks[i].flags |= 8;
6908    }
6909  }
6910  const ssrContextKey = Symbol.for("v-scx");
6911  const useSSRContext = () => {
6912    {
6913      const ctx = inject(ssrContextKey);
6914      return ctx;
6915    }
6916  };
6917  function watchEffect(effect2, options) {
6918    return doWatch(effect2, null, options);
6919  }
6920  function watchPostEffect(effect2, options) {
6921    return doWatch(
6922      effect2,
6923      null,
6924      { flush: "post" }
6925    );
6926  }
6927  function watchSyncEffect(effect2, options) {
6928    return doWatch(
6929      effect2,
6930      null,
6931      { flush: "sync" }
6932    );
6933  }
6934  function watch(source, cb, options) {
6935    return doWatch(source, cb, options);
6936  }
6937  function doWatch(source, cb, options = EMPTY_OBJ) {
6938    const { immediate, deep, flush, once } = options;
6939    const baseWatchOptions = extend({}, options);
6940    const runsImmediately = cb && immediate || !cb && flush !== "post";
6941    let ssrCleanup;
6942    if (isInSSRComponentSetup) {
6943      if (flush === "sync") {
6944        const ctx = useSSRContext();
6945        ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);
6946      } else if (!runsImmediately) {
6947        const watchStopHandle = () => {
6948        };
6949        watchStopHandle.stop = NOOP;
6950        watchStopHandle.resume = NOOP;
6951        watchStopHandle.pause = NOOP;
6952        return watchStopHandle;
6953      }
6954    }
6955    const instance = currentInstance;
6956    baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args);
6957    let isPre = false;
6958    if (flush === "post") {
6959      baseWatchOptions.scheduler = (job) => {
6960        queuePostRenderEffect(job, instance && instance.suspense);
6961      };
6962    } else if (flush !== "sync") {
6963      isPre = true;
6964      baseWatchOptions.scheduler = (job, isFirstRun) => {
6965        if (isFirstRun) {
6966          job();
6967        } else {
6968          queueJob(job);
6969        }
6970      };
6971    }
6972    baseWatchOptions.augmentJob = (job) => {
6973      if (cb) {
6974        job.flags |= 4;
6975      }
6976      if (isPre) {
6977        job.flags |= 2;
6978        if (instance) {
6979          job.id = instance.uid;
6980          job.i = instance;
6981        }
6982      }
6983    };
6984    const watchHandle = watch$1(source, cb, baseWatchOptions);
6985    if (isInSSRComponentSetup) {
6986      if (ssrCleanup) {
6987        ssrCleanup.push(watchHandle);
6988      } else if (runsImmediately) {
6989        watchHandle();
6990      }
6991    }
6992    return watchHandle;
6993  }
6994  function instanceWatch(source, value, options) {
6995    const publicThis = this.proxy;
6996    const getter = isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);
6997    let cb;
6998    if (isFunction(value)) {
6999      cb = value;
7000    } else {
7001      cb = value.handler;
7002      options = value;
7003    }
7004    const reset = setCurrentInstance(this);
7005    const res = doWatch(getter, cb.bind(publicThis), options);
7006    reset();
7007    return res;
7008  }
7009  function createPathGetter(ctx, path) {
7010    const segments = path.split(".");
7011    return () => {
7012      let cur = ctx;
7013      for (let i = 0; i < segments.length && cur; i++) {
7014        cur = cur[segments[i]];
7015      }
7016      return cur;
7017    };
7018  }
7019  function useModel(props, name, options = EMPTY_OBJ) {
7020    const i = getCurrentInstance();
7021    const camelizedName = camelize(name);
7022    const hyphenatedName = hyphenate(name);
7023    const modifiers = getModelModifiers(props, camelizedName);
7024    const res = customRef((track2, trigger2) => {
7025      let localValue;
7026      let prevSetValue = EMPTY_OBJ;
7027      let prevEmittedValue;
7028      watchSyncEffect(() => {
7029        const propValue = props[camelizedName];
7030        if (hasChanged(localValue, propValue)) {
7031          localValue = propValue;
7032          trigger2();
7033        }
7034      });
7035      return {
7036        get() {
7037          track2();
7038          return options.get ? options.get(localValue) : localValue;
7039        },
7040        set(value) {
7041          const emittedValue = options.set ? options.set(value) : value;
7042          if (!hasChanged(emittedValue, localValue) && !(prevSetValue !== EMPTY_OBJ && hasChanged(value, prevSetValue))) {
7043            return;
7044          }
7045          const rawProps = i.vnode.props;
7046          if (!(rawProps && // check if parent has passed v-model
7047          (name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps))) {
7048            localValue = value;
7049            trigger2();
7050          }
7051          i.emit(`update:${name}`, emittedValue);
7052          if (hasChanged(value, emittedValue) && hasChanged(value, prevSetValue) && !hasChanged(emittedValue, prevEmittedValue)) {
7053            trigger2();
7054          }
7055          prevSetValue = value;
7056          prevEmittedValue = emittedValue;
7057        }
7058      };
7059    });
7060    res[Symbol.iterator] = () => {
7061      let i2 = 0;
7062      return {
7063        next() {
7064          if (i2 < 2) {
7065            return { value: i2++ ? modifiers || EMPTY_OBJ : res, done: false };
7066          } else {
7067            return { done: true };
7068          }
7069        }
7070      };
7071    };
7072    return res;
7073  }
7074  const getModelModifiers = (props, modelName) => {
7075    return modelName === "modelValue" || modelName === "model-value" ? props.modelModifiers : props[`${modelName}Modifiers`] || props[`${camelize(modelName)}Modifiers`] || props[`${hyphenate(modelName)}Modifiers`];
7076  };
7077  function emit(instance, event, ...rawArgs) {
7078    if (instance.isUnmounted)
7079      return;
7080    const props = instance.vnode.props || EMPTY_OBJ;
7081    let args = rawArgs;
7082    const isModelListener2 = event.startsWith("update:");
7083    const modifiers = isModelListener2 && getModelModifiers(props, event.slice(7));
7084    if (modifiers) {
7085      if (modifiers.trim) {
7086        args = rawArgs.map((a) => isString(a) ? a.trim() : a);
7087      }
7088      if (modifiers.number) {
7089        args = rawArgs.map(looseToNumber);
7090      }
7091    }
7092    let handlerName;
7093    let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)
7094    props[handlerName = toHandlerKey(camelize(event))];
7095    if (!handler && isModelListener2) {
7096      handler = props[handlerName = toHandlerKey(hyphenate(event))];
7097    }
7098    if (handler) {
7099      callWithAsyncErrorHandling(
7100        handler,
7101        instance,
7102        6,
7103        args
7104      );
7105    }
7106    const onceHandler = props[handlerName + `Once`];
7107    if (onceHandler) {
7108      if (!instance.emitted) {
7109        instance.emitted = {};
7110      } else if (instance.emitted[handlerName]) {
7111        return;
7112      }
7113      instance.emitted[handlerName] = true;
7114      callWithAsyncErrorHandling(
7115        onceHandler,
7116        instance,
7117        6,
7118        args
7119      );
7120    }
7121  }
7122  function normalizeEmitsOptions(comp, appContext, asMixin = false) {
7123    const cache = appContext.emitsCache;
7124    const cached = cache.get(comp);
7125    if (cached !== void 0) {
7126      return cached;
7127    }
7128    const raw = comp.emits;
7129    let normalized = {};
7130    let hasExtends = false;
7131    if (!isFunction(comp)) {
7132      const extendEmits = (raw2) => {
7133        const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);
7134        if (normalizedFromExtend) {
7135          hasExtends = true;
7136          extend(normalized, normalizedFromExtend);
7137        }
7138      };
7139      if (!asMixin && appContext.mixins.length) {
7140        appContext.mixins.forEach(extendEmits);
7141      }
7142      if (comp.extends) {
7143        extendEmits(comp.extends);
7144      }
7145      if (comp.mixins) {
7146        comp.mixins.forEach(extendEmits);
7147      }
7148    }
7149    if (!raw && !hasExtends) {
7150      if (isObject(comp)) {
7151        cache.set(comp, null);
7152      }
7153      return null;
7154    }
7155    if (isArray(raw)) {
7156      raw.forEach((key) => normalized[key] = null);
7157    } else {
7158      extend(normalized, raw);
7159    }
7160    if (isObject(comp)) {
7161      cache.set(comp, normalized);
7162    }
7163    return normalized;
7164  }
7165  function isEmitListener(options, key) {
7166    if (!options || !isOn(key)) {
7167      return false;
7168    }
7169    key = key.slice(2).replace(/Once$/, "");
7170    return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);
7171  }
7172  function markAttrsAccessed() {
7173  }
7174  function renderComponentRoot$1(instance) {
7175    const {
7176      type: Component,
7177      vnode,
7178      proxy,
7179      withProxy,
7180      propsOptions: [propsOptions],
7181      slots,
7182      attrs,
7183      emit: emit2,
7184      render: render2,
7185      renderCache,
7186      props,
7187      data,
7188      setupState,
7189      ctx,
7190      inheritAttrs
7191    } = instance;
7192    const prev = setCurrentRenderingInstance$1(instance);
7193    let result;
7194    let fallthroughAttrs;
7195    try {
7196      if (vnode.shapeFlag & 4) {
7197        const proxyToUse = withProxy || proxy;
7198        const thisProxy = false ? new Proxy(proxyToUse, {
7199          get(target, key, receiver) {
7200            warn$1(
7201              `Property '${String(
7202                key
7203              )}' was accessed via 'this'. Avoid using 'this' in templates.`
7204            );
7205            return Reflect.get(target, key, receiver);
7206          }
7207        }) : proxyToUse;
7208        result = normalizeVNode$1(
7209          render2.call(
7210            thisProxy,
7211            proxyToUse,
7212            renderCache,
7213            false ? shallowReadonly(props) : props,
7214            setupState,
7215            data,
7216            ctx
7217          )
7218        );
7219        fallthroughAttrs = attrs;
7220      } else {
7221        const render22 = Component;
7222        if (false)
7223          ;
7224        result = normalizeVNode$1(
7225          render22.length > 1 ? render22(
7226            false ? shallowReadonly(props) : props,
7227            false ? {
7228              get attrs() {
7229                markAttrsAccessed();
7230                return shallowReadonly(attrs);
7231              },
7232              slots,
7233              emit: emit2
7234            } : { attrs, slots, emit: emit2 }
7235          ) : render22(
7236            false ? shallowReadonly(props) : props,
7237            null
7238          )
7239        );
7240        fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);
7241      }
7242    } catch (err) {
7243      blockStack.length = 0;
7244      handleError(err, instance, 1);
7245      result = createVNode(Comment);
7246    }
7247    let root = result;
7248    if (fallthroughAttrs && inheritAttrs !== false) {
7249      const keys = Object.keys(fallthroughAttrs);
7250      const { shapeFlag } = root;
7251      if (keys.length) {
7252        if (shapeFlag & (1 | 6)) {
7253          if (propsOptions && keys.some(isModelListener)) {
7254            fallthroughAttrs = filterModelListeners(
7255              fallthroughAttrs,
7256              propsOptions
7257            );
7258          }
7259          root = cloneVNode(root, fallthroughAttrs, false, true);
7260        }
7261      }
7262    }
7263    if (vnode.dirs) {
7264      root = cloneVNode(root, null, false, true);
7265      root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
7266    }
7267    if (vnode.transition) {
7268      setTransitionHooks(root, vnode.transition);
7269    }
7270    {
7271      result = root;
7272    }
7273    setCurrentRenderingInstance$1(prev);
7274    return result;
7275  }
7276  function filterSingleRoot(children, recurse = true) {
7277    let singleRoot;
7278    for (let i = 0; i < children.length; i++) {
7279      const child = children[i];
7280      if (isVNode(child)) {
7281        if (child.type !== Comment || child.children === "v-if") {
7282          if (singleRoot) {
7283            return;
7284          } else {
7285            singleRoot = child;
7286          }
7287        }
7288      } else {
7289        return;
7290      }
7291    }
7292    return singleRoot;
7293  }
7294  const getFunctionalFallthrough = (attrs) => {
7295    let res;
7296    for (const key in attrs) {
7297      if (key === "class" || key === "style" || isOn(key)) {
7298        (res || (res = {}))[key] = attrs[key];
7299      }
7300    }
7301    return res;
7302  };
7303  const filterModelListeners = (attrs, props) => {
7304    const res = {};
7305    for (const key in attrs) {
7306      if (!isModelListener(key) || !(key.slice(9) in props)) {
7307        res[key] = attrs[key];
7308      }
7309    }
7310    return res;
7311  };
7312  function shouldUpdateComponent(prevVNode, nextVNode, optimized) {
7313    const { props: prevProps, children: prevChildren, component } = prevVNode;
7314    const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;
7315    const emits = component.emitsOptions;
7316    if (nextVNode.dirs || nextVNode.transition) {
7317      return true;
7318    }
7319    if (optimized && patchFlag >= 0) {
7320      if (patchFlag & 1024) {
7321        return true;
7322      }
7323      if (patchFlag & 16) {
7324        if (!prevProps) {
7325          return !!nextProps;
7326        }
7327        return hasPropsChanged(prevProps, nextProps, emits);
7328      } else if (patchFlag & 8) {
7329        const dynamicProps = nextVNode.dynamicProps;
7330        for (let i = 0; i < dynamicProps.length; i++) {
7331          const key = dynamicProps[i];
7332          if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {
7333            return true;
7334          }
7335        }
7336      }
7337    } else {
7338      if (prevChildren || nextChildren) {
7339        if (!nextChildren || !nextChildren.$stable) {
7340          return true;
7341        }
7342      }
7343      if (prevProps === nextProps) {
7344        return false;
7345      }
7346      if (!prevProps) {
7347        return !!nextProps;
7348      }
7349      if (!nextProps) {
7350        return true;
7351      }
7352      return hasPropsChanged(prevProps, nextProps, emits);
7353    }
7354    return false;
7355  }
7356  function hasPropsChanged(prevProps, nextProps, emitsOptions) {
7357    const nextKeys = Object.keys(nextProps);
7358    if (nextKeys.length !== Object.keys(prevProps).length) {
7359      return true;
7360    }
7361    for (let i = 0; i < nextKeys.length; i++) {
7362      const key = nextKeys[i];
7363      if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {
7364        return true;
7365      }
7366    }
7367    return false;
7368  }
7369  function updateHOCHostEl({ vnode, parent }, el) {
7370    while (parent) {
7371      const root = parent.subTree;
7372      if (root.suspense && root.suspense.activeBranch === vnode) {
7373        root.el = vnode.el;
7374      }
7375      if (root === vnode) {
7376        (vnode = parent.vnode).el = el;
7377        parent = parent.parent;
7378      } else {
7379        break;
7380      }
7381    }
7382  }
7383  const isSuspense = (type) => type.__isSuspense;
7384  let suspenseId = 0;
7385  const SuspenseImpl = {
7386    name: "Suspense",
7387    // In order to make Suspense tree-shakable, we need to avoid importing it
7388    // directly in the renderer. The renderer checks for the __isSuspense flag
7389    // on a vnode's type and calls the `process` method, passing in renderer
7390    // internals.
7391    __isSuspense: true,
7392    process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
7393      if (n1 == null) {
7394        mountSuspense(
7395          n2,
7396          container,
7397          anchor,
7398          parentComponent,
7399          parentSuspense,
7400          namespace,
7401          slotScopeIds,
7402          optimized,
7403          rendererInternals
7404        );
7405      } else {
7406        if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {
7407          n2.suspense = n1.suspense;
7408          n2.suspense.vnode = n2;
7409          n2.el = n1.el;
7410          return;
7411        }
7412        patchSuspense(
7413          n1,
7414          n2,
7415          container,
7416          anchor,
7417          parentComponent,
7418          namespace,
7419          slotScopeIds,
7420          optimized,
7421          rendererInternals
7422        );
7423      }
7424    },
7425    hydrate: hydrateSuspense,
7426    normalize: normalizeSuspenseChildren
7427  };
7428  const Suspense = SuspenseImpl;
7429  function triggerEvent(vnode, name) {
7430    const eventListener = vnode.props && vnode.props[name];
7431    if (isFunction(eventListener)) {
7432      eventListener();
7433    }
7434  }
7435  function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
7436    const {
7437      p: patch,
7438      o: { createElement }
7439    } = rendererInternals;
7440    const hiddenContainer = createElement("div");
7441    const suspense = vnode.suspense = createSuspenseBoundary(
7442      vnode,
7443      parentSuspense,
7444      parentComponent,
7445      container,
7446      hiddenContainer,
7447      anchor,
7448      namespace,
7449      slotScopeIds,
7450      optimized,
7451      rendererInternals
7452    );
7453    patch(
7454      null,
7455      suspense.pendingBranch = vnode.ssContent,
7456      hiddenContainer,
7457      null,
7458      parentComponent,
7459      suspense,
7460      namespace,
7461      slotScopeIds
7462    );
7463    if (suspense.deps > 0) {
7464      triggerEvent(vnode, "onPending");
7465      triggerEvent(vnode, "onFallback");
7466      patch(
7467        null,
7468        vnode.ssFallback,
7469        container,
7470        anchor,
7471        parentComponent,
7472        null,
7473        // fallback tree will not have suspense context
7474        namespace,
7475        slotScopeIds
7476      );
7477      setActiveBranch(suspense, vnode.ssFallback);
7478    } else {
7479      suspense.resolve(false, true);
7480    }
7481  }
7482  function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {
7483    const suspense = n2.suspense = n1.suspense;
7484    suspense.vnode = n2;
7485    n2.el = n1.el;
7486    const newBranch = n2.ssContent;
7487    const newFallback = n2.ssFallback;
7488    const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;
7489    if (pendingBranch) {
7490      suspense.pendingBranch = newBranch;
7491      if (isSameVNodeType(newBranch, pendingBranch)) {
7492        patch(
7493          pendingBranch,
7494          newBranch,
7495          suspense.hiddenContainer,
7496          null,
7497          parentComponent,
7498          suspense,
7499          namespace,
7500          slotScopeIds,
7501          optimized
7502        );
7503        if (suspense.deps <= 0) {
7504          suspense.resolve();
7505        } else if (isInFallback) {
7506          if (!isHydrating) {
7507            patch(
7508              activeBranch,
7509              newFallback,
7510              container,
7511              anchor,
7512              parentComponent,
7513              null,
7514              // fallback tree will not have suspense context
7515              namespace,
7516              slotScopeIds,
7517              optimized
7518            );
vendor: 1,147 bytes, lines 7519-7559
7519            setActiveBranch(suspense, newFallback);
7520          }
7521        }
7522      } else {
7523        suspense.pendingId = suspenseId++;
7524        if (isHydrating) {
7525          suspense.isHydrating = false;
7526          suspense.activeBranch = pendingBranch;
7527        } else {
7528          unmount(pendingBranch, parentComponent, suspense);
7529        }
7530        suspense.deps = 0;
7531        suspense.effects.length = 0;
7532        suspense.hiddenContainer = createElement("div");
7533        if (isInFallback) {
7534          patch(
7535            null,
7536            newBranch,
7537            suspense.hiddenContainer,
7538            null,
7539            parentComponent,
7540            suspense,
7541            namespace,
7542            slotScopeIds,
7543            optimized
7544          );
7545          if (suspense.deps <= 0) {
7546            suspense.resolve();
7547          } else {
7548            patch(
7549              activeBranch,
7550              newFallback,
7551              container,
7552              anchor,
7553              parentComponent,
7554              null,
7555              // fallback tree will not have suspense context
7556              namespace,
7557              slotScopeIds,
7558              optimized
7559            );
7560            setActiveBranch(suspense, newFallback);
7561          }
7562        } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {
7563          patch(
7564            activeBranch,
7565            newBranch,
7566            container,
7567            anchor,
7568            parentComponent,
7569            suspense,
7570            namespace,
7571            slotScopeIds,
7572            optimized
7573          );
7574          suspense.resolve(true);
7575        } else {
7576          patch(
7577            null,
7578            newBranch,
7579            suspense.hiddenContainer,
7580            null,
7581            parentComponent,
7582            suspense,
7583            namespace,
7584            slotScopeIds,
7585            optimized
7586          );
7587          if (suspense.deps <= 0) {
7588            suspense.resolve();
7589          }
7590        }
7591      }
7592    } else {
7593      if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {
7594        patch(
7595          activeBranch,
7596          newBranch,
7597          container,
7598          anchor,
7599          parentComponent,
7600          suspense,
7601          namespace,
7602          slotScopeIds,
7603          optimized
7604        );
7605        setActiveBranch(suspense, newBranch);
7606      } else {
7607        triggerEvent(n2, "onPending");
7608        suspense.pendingBranch = newBranch;
7609        if (newBranch.shapeFlag & 512) {
7610          suspense.pendingId = newBranch.component.suspenseId;
7611        } else {
7612          suspense.pendingId = suspenseId++;
7613        }
7614        patch(
7615          null,
7616          newBranch,
7617          suspense.hiddenContainer,
7618          null,
7619          parentComponent,
7620          suspense,
7621          namespace,
7622          slotScopeIds,
7623          optimized
7624        );
7625        if (suspense.deps <= 0) {
7626          suspense.resolve();
7627        } else {
7628          const { timeout, pendingId } = suspense;
7629          if (timeout > 0) {
7630            setTimeout(() => {
7631              if (suspense.pendingId === pendingId) {
7632                suspense.fallback(newFallback);
7633              }
7634            }, timeout);
7635          } else if (timeout === 0) {
7636            suspense.fallback(newFallback);
7637          }
7638        }
7639      }
7640    }
7641  }
7642  function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) {
7643    const {
7644      p: patch,
7645      m: move,
7646      um: unmount,
7647      n: next,
7648      o: { parentNode, remove: remove2 }
7649    } = rendererInternals;
7650    let parentSuspenseId;
7651    const isSuspensible = isVNodeSuspensible(vnode);
7652    if (isSuspensible) {
7653      if (parentSuspense && parentSuspense.pendingBranch) {
7654        parentSuspenseId = parentSuspense.pendingId;
7655        parentSuspense.deps++;
7656      }
7657    }
7658    const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0;
7659    const initialAnchor = anchor;
7660    const suspense = {
7661      vnode,
7662      parent: parentSuspense,
7663      parentComponent,
7664      namespace,
7665      container,
7666      hiddenContainer,
7667      deps: 0,
7668      pendingId: suspenseId++,
7669      timeout: typeof timeout === "number" ? timeout : -1,
7670      activeBranch: null,
7671      pendingBranch: null,
7672      isInFallback: !isHydrating,
7673      isHydrating,
7674      isUnmounted: false,
7675      effects: [],
7676      resolve(resume = false, sync = false) {
7677        const {
7678          vnode: vnode2,
7679          activeBranch,
7680          pendingBranch,
7681          pendingId,
7682          effects,
7683          parentComponent: parentComponent2,
7684          container: container2
7685        } = suspense;
7686        let delayEnter = false;
7687        if (suspense.isHydrating) {
7688          suspense.isHydrating = false;
7689        } else if (!resume) {
7690          delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in";
7691          if (delayEnter) {
7692            activeBranch.transition.afterLeave = () => {
7693              if (pendingId === suspense.pendingId) {
7694                move(
7695                  pendingBranch,
7696                  container2,
7697                  anchor === initialAnchor ? next(activeBranch) : anchor,
7698                  0
7699                );
7700                queuePostFlushCb(effects);
7701              }
7702            };
7703          }
7704          if (activeBranch) {
7705            if (parentNode(activeBranch.el) === container2) {
7706              anchor = next(activeBranch);
7707            }
7708            unmount(activeBranch, parentComponent2, suspense, true);
7709          }
7710          if (!delayEnter) {
7711            move(pendingBranch, container2, anchor, 0);
7712          }
7713        }
7714        setActiveBranch(suspense, pendingBranch);
7715        suspense.pendingBranch = null;
7716        suspense.isInFallback = false;
7717        let parent = suspense.parent;
7718        let hasUnresolvedAncestor = false;
7719        while (parent) {
7720          if (parent.pendingBranch) {
7721            parent.effects.push(...effects);
7722            hasUnresolvedAncestor = true;
7723            break;
7724          }
7725          parent = parent.parent;
7726        }
7727        if (!hasUnresolvedAncestor && !delayEnter) {
7728          queuePostFlushCb(effects);
7729        }
7730        suspense.effects = [];
7731        if (isSuspensible) {
7732          if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {
7733            parentSuspense.deps--;
7734            if (parentSuspense.deps === 0 && !sync) {
7735              parentSuspense.resolve();
7736            }
7737          }
7738        }
7739        triggerEvent(vnode2, "onResolve");
7740      },
7741      fallback(fallbackVNode) {
7742        if (!suspense.pendingBranch) {
7743          return;
7744        }
7745        const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense;
7746        triggerEvent(vnode2, "onFallback");
7747        const anchor2 = next(activeBranch);
7748        const mountFallback = () => {
7749          if (!suspense.isInFallback) {
7750            return;
7751          }
7752          patch(
7753            null,
7754            fallbackVNode,
7755            container2,
7756            anchor2,
7757            parentComponent2,
7758            null,
7759            // fallback tree will not have suspense context
7760            namespace2,
7761            slotScopeIds,
7762            optimized
7763          );
vendor: 20,335 bytes, lines 7764-8418
7764          setActiveBranch(suspense, fallbackVNode);
7765        };
7766        const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in";
7767        if (delayEnter) {
7768          activeBranch.transition.afterLeave = mountFallback;
7769        }
7770        suspense.isInFallback = true;
7771        unmount(
7772          activeBranch,
7773          parentComponent2,
7774          null,
7775          // no suspense so unmount hooks fire now
7776          true
7777          // shouldRemove
7778        );
7779        if (!delayEnter) {
7780          mountFallback();
7781        }
7782      },
7783      move(container2, anchor2, type) {
7784        suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type);
7785        suspense.container = container2;
7786      },
7787      next() {
7788        return suspense.activeBranch && next(suspense.activeBranch);
7789      },
7790      registerDep(instance, setupRenderEffect, optimized2) {
7791        const isInPendingSuspense = !!suspense.pendingBranch;
7792        if (isInPendingSuspense) {
7793          suspense.deps++;
7794        }
7795        const hydratedEl = instance.vnode.el;
7796        instance.asyncDep.catch((err) => {
7797          handleError(err, instance, 0);
7798        }).then((asyncSetupResult) => {
7799          if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {
7800            return;
7801          }
7802          instance.asyncResolved = true;
7803          const { vnode: vnode2 } = instance;
7804          handleSetupResult(instance, asyncSetupResult, false);
7805          if (hydratedEl) {
7806            vnode2.el = hydratedEl;
7807          }
7808          const placeholder = !hydratedEl && instance.subTree.el;
7809          setupRenderEffect(
7810            instance,
7811            vnode2,
7812            // component may have been moved before resolve.
7813            // if this is not a hydration, instance.subTree will be the comment
7814            // placeholder.
7815            parentNode(hydratedEl || instance.subTree.el),
7816            // anchor will not be used if this is hydration, so only need to
7817            // consider the comment placeholder case.
7818            hydratedEl ? null : next(instance.subTree),
7819            suspense,
7820            namespace,
7821            optimized2
7822          );
7823          if (placeholder) {
7824            remove2(placeholder);
7825          }
7826          updateHOCHostEl(instance, vnode2.el);
7827          if (isInPendingSuspense && --suspense.deps === 0) {
7828            suspense.resolve();
7829          }
7830        });
7831      },
7832      unmount(parentSuspense2, doRemove) {
7833        suspense.isUnmounted = true;
7834        if (suspense.activeBranch) {
7835          unmount(
7836            suspense.activeBranch,
7837            parentComponent,
7838            parentSuspense2,
7839            doRemove
7840          );
7841        }
7842        if (suspense.pendingBranch) {
7843          unmount(
7844            suspense.pendingBranch,
7845            parentComponent,
7846            parentSuspense2,
7847            doRemove
7848          );
7849        }
7850      }
7851    };
7852    return suspense;
7853  }
7854  function hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) {
7855    const suspense = vnode.suspense = createSuspenseBoundary(
7856      vnode,
7857      parentSuspense,
7858      parentComponent,
7859      node.parentNode,
7860      // eslint-disable-next-line no-restricted-globals
7861      document.createElement("div"),
7862      null,
7863      namespace,
7864      slotScopeIds,
7865      optimized,
7866      rendererInternals,
7867      true
7868    );
7869    const result = hydrateNode(
7870      node,
7871      suspense.pendingBranch = vnode.ssContent,
7872      parentComponent,
7873      suspense,
7874      slotScopeIds,
7875      optimized
7876    );
7877    if (suspense.deps === 0) {
7878      suspense.resolve(false, true);
7879    }
7880    return result;
7881  }
7882  function normalizeSuspenseChildren(vnode) {
7883    const { shapeFlag, children } = vnode;
7884    const isSlotChildren = shapeFlag & 32;
7885    vnode.ssContent = normalizeSuspenseSlot(
7886      isSlotChildren ? children.default : children
7887    );
7888    vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment);
7889  }
7890  function normalizeSuspenseSlot(s) {
7891    let block;
7892    if (isFunction(s)) {
7893      const trackBlock = isBlockTreeEnabled && s._c;
7894      if (trackBlock) {
7895        s._d = false;
7896        openBlock();
7897      }
7898      s = s();
7899      if (trackBlock) {
7900        s._d = true;
7901        block = currentBlock;
7902        closeBlock();
7903      }
7904    }
7905    if (isArray(s)) {
7906      const singleChild = filterSingleRoot(s);
7907      s = singleChild;
7908    }
7909    s = normalizeVNode$1(s);
7910    if (block && !s.dynamicChildren) {
7911      s.dynamicChildren = block.filter((c) => c !== s);
7912    }
7913    return s;
7914  }
7915  function queueEffectWithSuspense(fn, suspense) {
7916    if (suspense && suspense.pendingBranch) {
7917      if (isArray(fn)) {
7918        suspense.effects.push(...fn);
7919      } else {
7920        suspense.effects.push(fn);
7921      }
7922    } else {
7923      queuePostFlushCb(fn);
7924    }
7925  }
7926  function setActiveBranch(suspense, branch) {
7927    suspense.activeBranch = branch;
7928    const { vnode, parentComponent } = suspense;
7929    let el = branch.el;
7930    while (!el && branch.component) {
7931      branch = branch.component.subTree;
7932      el = branch.el;
7933    }
7934    vnode.el = el;
7935    if (parentComponent && parentComponent.subTree === vnode) {
7936      parentComponent.vnode.el = el;
7937      updateHOCHostEl(parentComponent, el);
7938    }
7939  }
7940  function isVNodeSuspensible(vnode) {
7941    const suspensible = vnode.props && vnode.props.suspensible;
7942    return suspensible != null && suspensible !== false;
7943  }
7944  const Fragment = Symbol.for("v-fgt");
7945  const Text = Symbol.for("v-txt");
7946  const Comment = Symbol.for("v-cmt");
7947  const Static = Symbol.for("v-stc");
7948  const blockStack = [];
7949  let currentBlock = null;
7950  function openBlock(disableTracking = false) {
7951    blockStack.push(currentBlock = disableTracking ? null : []);
7952  }
7953  function closeBlock() {
7954    blockStack.pop();
7955    currentBlock = blockStack[blockStack.length - 1] || null;
7956  }
7957  let isBlockTreeEnabled = 1;
7958  function setBlockTracking(value) {
7959    isBlockTreeEnabled += value;
7960    if (value < 0 && currentBlock) {
7961      currentBlock.hasOnce = true;
7962    }
7963  }
7964  function setupBlock(vnode) {
7965    vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null;
7966    closeBlock();
7967    if (isBlockTreeEnabled > 0 && currentBlock) {
7968      currentBlock.push(vnode);
7969    }
7970    return vnode;
7971  }
7972  function createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) {
7973    return setupBlock(
7974      createBaseVNode(
7975        type,
7976        props,
7977        children,
7978        patchFlag,
7979        dynamicProps,
7980        shapeFlag,
7981        true
7982      )
7983    );
7984  }
7985  function createBlock(type, props, children, patchFlag, dynamicProps) {
7986    return setupBlock(
7987      createVNode(
7988        type,
7989        props,
7990        children,
7991        patchFlag,
7992        dynamicProps,
7993        true
7994      )
7995    );
7996  }
7997  function isVNode(value) {
7998    return value ? value.__v_isVNode === true : false;
7999  }
8000  function isSameVNodeType(n1, n2) {
8001    return n1.type === n2.type && n1.key === n2.key;
8002  }
8003  function transformVNodeArgs(transformer) {
8004  }
8005  const normalizeKey = ({ key }) => key != null ? key : null;
8006  const normalizeRef = ({
8007    ref: ref2,
8008    ref_key,
8009    ref_for
8010  }) => {
8011    if (typeof ref2 === "number") {
8012      ref2 = "" + ref2;
8013    }
8014    return ref2 != null ? isString(ref2) || isRef(ref2) || isFunction(ref2) ? { i: currentRenderingInstance, r: ref2, k: ref_key, f: !!ref_for } : ref2 : null;
8015  };
8016  function createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) {
8017    const vnode = {
8018      __v_isVNode: true,
8019      __v_skip: true,
8020      type,
8021      props,
8022      key: props && normalizeKey(props),
8023      ref: props && normalizeRef(props),
8024      scopeId: currentScopeId,
8025      slotScopeIds: null,
8026      children,
8027      component: null,
8028      suspense: null,
8029      ssContent: null,
8030      ssFallback: null,
8031      dirs: null,
8032      transition: null,
8033      el: null,
8034      anchor: null,
8035      target: null,
8036      targetStart: null,
8037      targetAnchor: null,
8038      staticCount: 0,
8039      shapeFlag,
8040      patchFlag,
8041      dynamicProps,
8042      dynamicChildren: null,
8043      appContext: null,
8044      ctx: currentRenderingInstance
8045    };
8046    if (needFullChildrenNormalization) {
8047      normalizeChildren(vnode, children);
8048      if (shapeFlag & 128) {
8049        type.normalize(vnode);
8050      }
8051    } else if (children) {
8052      vnode.shapeFlag |= isString(children) ? 8 : 16;
8053    }
8054    if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself
8055    !isBlockNode && // has current parent block
8056    currentBlock && // presence of a patch flag indicates this node needs patching on updates.
8057    // component nodes also should always be patched, because even if the
8058    // component doesn't need to update, it needs to persist the instance on to
8059    // the next vnode so that it can be properly unmounted later.
8060    (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the
8061    // vnode should not be considered dynamic due to handler caching.
8062    vnode.patchFlag !== 32) {
8063      currentBlock.push(vnode);
8064    }
8065    return vnode;
8066  }
8067  const createVNode = _createVNode;
8068  function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {
8069    if (!type || type === NULL_DYNAMIC_COMPONENT) {
8070      type = Comment;
8071    }
8072    if (isVNode(type)) {
8073      const cloned = cloneVNode(
8074        type,
8075        props,
8076        true
8077        /* mergeRef: true */
8078      );
8079      if (children) {
8080        normalizeChildren(cloned, children);
8081      }
8082      if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {
8083        if (cloned.shapeFlag & 6) {
8084          currentBlock[currentBlock.indexOf(type)] = cloned;
8085        } else {
8086          currentBlock.push(cloned);
8087        }
8088      }
8089      cloned.patchFlag = -2;
8090      return cloned;
8091    }
8092    if (isClassComponent(type)) {
8093      type = type.__vccOpts;
8094    }
8095    if (props) {
8096      props = guardReactiveProps(props);
8097      let { class: klass, style } = props;
8098      if (klass && !isString(klass)) {
8099        props.class = normalizeClass(klass);
8100      }
8101      if (isObject(style)) {
8102        if (isProxy(style) && !isArray(style)) {
8103          style = extend({}, style);
8104        }
8105        props.style = normalizeStyle(style);
8106      }
8107    }
8108    const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0;
8109    return createBaseVNode(
8110      type,
8111      props,
8112      children,
8113      patchFlag,
8114      dynamicProps,
8115      shapeFlag,
8116      isBlockNode,
8117      true
8118    );
8119  }
8120  function guardReactiveProps(props) {
8121    if (!props)
8122      return null;
8123    return isProxy(props) || isInternalObject(props) ? extend({}, props) : props;
8124  }
8125  function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) {
8126    const { props, ref: ref2, patchFlag, children, transition } = vnode;
8127    const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;
8128    const cloned = {
8129      __v_isVNode: true,
8130      __v_skip: true,
8131      type: vnode.type,
8132      props: mergedProps,
8133      key: mergedProps && normalizeKey(mergedProps),
8134      ref: extraProps && extraProps.ref ? (
8135        // #2078 in the case of <component :is="vnode" ref="extra"/>
8136        // if the vnode itself already has a ref, cloneVNode will need to merge
8137        // the refs so the single vnode can be set on multiple refs
8138        mergeRef && ref2 ? isArray(ref2) ? ref2.concat(normalizeRef(extraProps)) : [ref2, normalizeRef(extraProps)] : normalizeRef(extraProps)
8139      ) : ref2,
8140      scopeId: vnode.scopeId,
8141      slotScopeIds: vnode.slotScopeIds,
8142      children,
8143      target: vnode.target,
8144      targetStart: vnode.targetStart,
8145      targetAnchor: vnode.targetAnchor,
8146      staticCount: vnode.staticCount,
8147      shapeFlag: vnode.shapeFlag,
8148      // if the vnode is cloned with extra props, we can no longer assume its
8149      // existing patch flag to be reliable and need to add the FULL_PROPS flag.
8150      // note: preserve flag for fragments since they use the flag for children
8151      // fast paths only.
8152      patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag,
8153      dynamicProps: vnode.dynamicProps,
8154      dynamicChildren: vnode.dynamicChildren,
8155      appContext: vnode.appContext,
8156      dirs: vnode.dirs,
8157      transition,
8158      // These should technically only be non-null on mounted VNodes. However,
8159      // they *should* be copied for kept-alive vnodes. So we just always copy
8160      // them since them being non-null during a mount doesn't affect the logic as
8161      // they will simply be overwritten.
8162      component: vnode.component,
8163      suspense: vnode.suspense,
8164      ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),
8165      ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),
8166      el: vnode.el,
8167      anchor: vnode.anchor,
8168      ctx: vnode.ctx,
8169      ce: vnode.ce
8170    };
8171    if (transition && cloneTransition) {
8172      setTransitionHooks(
8173        cloned,
8174        transition.clone(cloned)
8175      );
8176    }
8177    return cloned;
8178  }
8179  function createTextVNode(text = " ", flag = 0) {
8180    return createVNode(Text, null, text, flag);
8181  }
8182  function createStaticVNode(content, numberOfNodes) {
8183    const vnode = createVNode(Static, null, content);
8184    vnode.staticCount = numberOfNodes;
8185    return vnode;
8186  }
8187  function createCommentVNode(text = "", asBlock = false) {
8188    return asBlock ? (openBlock(), createBlock(Comment, null, text)) : createVNode(Comment, null, text);
8189  }
8190  function normalizeVNode$1(child) {
8191    if (child == null || typeof child === "boolean") {
8192      return createVNode(Comment);
8193    } else if (isArray(child)) {
8194      return createVNode(
8195        Fragment,
8196        null,
8197        // #3666, avoid reference pollution when reusing vnode
8198        child.slice()
8199      );
8200    } else if (isVNode(child)) {
8201      return cloneIfMounted(child);
8202    } else {
8203      return createVNode(Text, null, String(child));
8204    }
8205  }
8206  function cloneIfMounted(child) {
8207    return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child);
8208  }
8209  function normalizeChildren(vnode, children) {
8210    let type = 0;
8211    const { shapeFlag } = vnode;
8212    if (children == null) {
8213      children = null;
8214    } else if (isArray(children)) {
8215      type = 16;
8216    } else if (typeof children === "object") {
8217      if (shapeFlag & (1 | 64)) {
8218        const slot = children.default;
8219        if (slot) {
8220          slot._c && (slot._d = false);
8221          normalizeChildren(vnode, slot());
8222          slot._c && (slot._d = true);
8223        }
8224        return;
8225      } else {
8226        type = 32;
8227        const slotFlag = children._;
8228        if (!slotFlag && !isInternalObject(children)) {
8229          children._ctx = currentRenderingInstance;
8230        } else if (slotFlag === 3 && currentRenderingInstance) {
8231          if (currentRenderingInstance.slots._ === 1) {
8232            children._ = 1;
8233          } else {
8234            children._ = 2;
8235            vnode.patchFlag |= 1024;
8236          }
8237        }
8238      }
8239    } else if (isFunction(children)) {
8240      children = { default: children, _ctx: currentRenderingInstance };
8241      type = 32;
8242    } else {
8243      children = String(children);
8244      if (shapeFlag & 64) {
8245        type = 16;
8246        children = [createTextVNode(children)];
8247      } else {
8248        type = 8;
8249      }
8250    }
8251    vnode.children = children;
8252    vnode.shapeFlag |= type;
8253  }
8254  function mergeProps(...args) {
8255    const ret = {};
8256    for (let i = 0; i < args.length; i++) {
8257      const toMerge = args[i];
8258      for (const key in toMerge) {
8259        if (key === "class") {
8260          if (ret.class !== toMerge.class) {
8261            ret.class = normalizeClass([ret.class, toMerge.class]);
8262          }
8263        } else if (key === "style") {
8264          ret.style = normalizeStyle([ret.style, toMerge.style]);
8265        } else if (isOn(key)) {
8266          const existing = ret[key];
8267          const incoming = toMerge[key];
8268          if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) {
8269            ret[key] = existing ? [].concat(existing, incoming) : incoming;
8270          }
8271        } else if (key !== "") {
8272          ret[key] = toMerge[key];
8273        }
8274      }
8275    }
8276    return ret;
8277  }
8278  function invokeVNodeHook(hook, instance, vnode, prevVNode = null) {
8279    callWithAsyncErrorHandling(hook, instance, 7, [
8280      vnode,
8281      prevVNode
8282    ]);
8283  }
8284  const emptyAppContext = createAppContext();
8285  let uid = 0;
8286  function createComponentInstance$1(vnode, parent, suspense) {
8287    const type = vnode.type;
8288    const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;
8289    const instance = {
8290      uid: uid++,
8291      vnode,
8292      type,
8293      parent,
8294      appContext,
8295      root: null,
8296      // to be immediately set
8297      next: null,
8298      subTree: null,
8299      // will be set synchronously right after creation
8300      effect: null,
8301      update: null,
8302      // will be set synchronously right after creation
8303      job: null,
8304      scope: new EffectScope(
8305        true
8306        /* detached */
8307      ),
8308      render: null,
8309      proxy: null,
8310      exposed: null,
8311      exposeProxy: null,
8312      withProxy: null,
8313      provides: parent ? parent.provides : Object.create(appContext.provides),
8314      ids: parent ? parent.ids : ["", 0, 0],
8315      accessCache: null,
8316      renderCache: [],
8317      // local resolved assets
8318      components: null,
8319      directives: null,
8320      // resolved props and emits options
8321      propsOptions: normalizePropsOptions(type, appContext),
8322      emitsOptions: normalizeEmitsOptions(type, appContext),
8323      // emit
8324      emit: null,
8325      // to be set immediately
8326      emitted: null,
8327      // props default value
8328      propsDefaults: EMPTY_OBJ,
8329      // inheritAttrs
8330      inheritAttrs: type.inheritAttrs,
8331      // state
8332      ctx: EMPTY_OBJ,
8333      data: EMPTY_OBJ,
8334      props: EMPTY_OBJ,
8335      attrs: EMPTY_OBJ,
8336      slots: EMPTY_OBJ,
8337      refs: EMPTY_OBJ,
8338      setupState: EMPTY_OBJ,
8339      setupContext: null,
8340      // suspense related
8341      suspense,
8342      suspenseId: suspense ? suspense.pendingId : 0,
8343      asyncDep: null,
8344      asyncResolved: false,
8345      // lifecycle hooks
8346      // not using enums here because it results in computed properties
8347      isMounted: false,
8348      isUnmounted: false,
8349      isDeactivated: false,
8350      bc: null,
8351      c: null,
8352      bm: null,
8353      m: null,
8354      bu: null,
8355      u: null,
8356      um: null,
8357      bum: null,
8358      da: null,
8359      a: null,
8360      rtg: null,
8361      rtc: null,
8362      ec: null,
8363      sp: null
8364    };
8365    {
8366      instance.ctx = { _: instance };
8367    }
8368    instance.root = parent ? parent.root : instance;
8369    instance.emit = emit.bind(null, instance);
8370    if (vnode.ce) {
8371      vnode.ce(instance);
8372    }
8373    return instance;
8374  }
8375  let currentInstance = null;
8376  const getCurrentInstance = () => currentInstance || currentRenderingInstance;
8377  let internalSetCurrentInstance;
8378  let setInSSRSetupState;
8379  {
8380    const g = getGlobalThis();
8381    const registerGlobalSetter = (key, setter) => {
8382      let setters;
8383      if (!(setters = g[key]))
8384        setters = g[key] = [];
8385      setters.push(setter);
8386      return (v) => {
8387        if (setters.length > 1)
8388          setters.forEach((set) => set(v));
8389        else
8390          setters[0](v);
8391      };
8392    };
8393    internalSetCurrentInstance = registerGlobalSetter(
8394      `__VUE_INSTANCE_SETTERS__`,
8395      (v) => currentInstance = v
8396    );
8397    setInSSRSetupState = registerGlobalSetter(
8398      `__VUE_SSR_SETTERS__`,
8399      (v) => isInSSRComponentSetup = v
8400    );
8401  }
8402  const setCurrentInstance = (instance) => {
8403    const prev = currentInstance;
8404    internalSetCurrentInstance(instance);
8405    instance.scope.on();
8406    return () => {
8407      instance.scope.off();
8408      internalSetCurrentInstance(prev);
8409    };
8410  };
8411  const unsetCurrentInstance = () => {
8412    currentInstance && currentInstance.scope.off();
8413    internalSetCurrentInstance(null);
8414  };
8415  function isStatefulComponent(instance) {
8416    return instance.vnode.shapeFlag & 4;
8417  }
8418  let isInSSRComponentSetup = false;
8419  function setupComponent$1(instance, isSSR = false, optimized = false) {
8420    isSSR && setInSSRSetupState(isSSR);
8421    const { props, children } = instance.vnode;
8422    const isStateful = isStatefulComponent(instance);
8423    initProps(instance, props, isStateful, isSSR);
8424    initSlots(instance, children, optimized);
8425    const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;
8426    isSSR && setInSSRSetupState(false);
8427    return setupResult;
8428  }
8429  function setupStatefulComponent(instance, isSSR) {
8430    const Component = instance.type;
8431    instance.accessCache = /* @__PURE__ */ Object.create(null);
8432    instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers);
8433    const { setup } = Component;
8434    if (setup) {
8435      pauseTracking();
8436      const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;
8437      const reset = setCurrentInstance(instance);
8438      const setupResult = callWithErrorHandling(
8439        setup,
8440        instance,
8441        0,
8442        [
8443          instance.props,
8444          setupContext
8445        ]
8446      );
8447      const isAsyncSetup = isPromise(setupResult);
8448      resetTracking();
8449      reset();
8450      if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) {
8451        markAsyncBoundary(instance);
8452      }
8453      if (isAsyncSetup) {
8454        setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
8455        if (isSSR) {
8456          return setupResult.then((resolvedResult) => {
8457            handleSetupResult(instance, resolvedResult, isSSR);
8458          }).catch((e) => {
8459            handleError(e, instance, 0);
8460          });
8461        } else {
8462          instance.asyncDep = setupResult;
8463        }
8464      } else {
8465        handleSetupResult(instance, setupResult, isSSR);
8466      }
8467    } else {
8468      finishComponentSetup(instance, isSSR);
8469    }
8470  }
8471  function handleSetupResult(instance, setupResult, isSSR) {
8472    if (isFunction(setupResult)) {
8473      if (instance.type.__ssrInlineRender) {
8474        instance.ssrRender = setupResult;
8475      } else {
8476        instance.render = setupResult;
8477      }
8478    } else if (isObject(setupResult)) {
8479      instance.setupState = proxyRefs(setupResult);
8480    } else
8481      ;
8482    finishComponentSetup(instance, isSSR);
8483  }
8484  let compile$1;
8485  let installWithProxy;
8486  function registerRuntimeCompiler(_compile) {
8487    compile$1 = _compile;
8488    installWithProxy = (i) => {
8489      if (i.render._rc) {
8490        i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers);
8491      }
8492    };
8493  }
8494  const isRuntimeOnly = () => !compile$1;
8495  function finishComponentSetup(instance, isSSR, skipOptions) {
8496    const Component = instance.type;
8497    if (!instance.render) {
8498      if (!isSSR && compile$1 && !Component.render) {
8499        const template = Component.template || resolveMergedOptions(instance).template;
8500        if (template) {
8501          const { isCustomElement, compilerOptions } = instance.appContext.config;
8502          const { delimiters, compilerOptions: componentCompilerOptions } = Component;
8503          const finalCompilerOptions = extend(
8504            extend(
8505              {
8506                isCustomElement,
8507                delimiters
8508              },
8509              compilerOptions
8510            ),
8511            componentCompilerOptions
8512          );
8513          Component.render = compile$1(template, finalCompilerOptions);
8514        }
8515      }
8516      instance.render = Component.render || NOOP;
8517      if (installWithProxy) {
8518        installWithProxy(instance);
8519      }
8520    }
8521    {
8522      const reset = setCurrentInstance(instance);
8523      pauseTracking();
8524      try {
8525        applyOptions(instance);
8526      } finally {
8527        resetTracking();
8528        reset();
8529      }
8530    }
8531  }
8532  const attrsProxyHandlers = {
8533    get(target, key) {
8534      track(target, "get", "");
8535      return target[key];
8536    }
8537  };
8538  function createSetupContext(instance) {
8539    const expose = (exposed) => {
8540      instance.exposed = exposed || {};
8541    };
8542    {
8543      return {
8544        attrs: new Proxy(instance.attrs, attrsProxyHandlers),
8545        slots: instance.slots,
8546        emit: instance.emit,
8547        expose
8548      };
8549    }
8550  }
8551  function getComponentPublicInstance(instance) {
8552    if (instance.exposed) {
8553      return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {
8554        get(target, key) {
8555          if (key in target) {
8556            return target[key];
8557          } else if (key in publicPropertiesMap) {
8558            return publicPropertiesMap[key](instance);
8559          }
8560        },
8561        has(target, key) {
8562          return key in target || key in publicPropertiesMap;
8563        }
8564      }));
8565    } else {
8566      return instance.proxy;
8567    }
8568  }
8569  const classifyRE = /(?:^|[-_])(\w)/g;
8570  const classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, "");
8571  function getComponentName(Component, includeInferred = true) {
8572    return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;
8573  }
8574  function formatComponentName(instance, Component, isRoot = false) {
8575    let name = getComponentName(Component);
8576    if (!name && Component.__file) {
8577      const match = Component.__file.match(/([^/\\]+)\.\w+$/);
8578      if (match) {
8579        name = match[1];
8580      }
8581    }
8582    if (!name && instance && instance.parent) {
8583      const inferFromRegistry = (registry) => {
8584        for (const key in registry) {
8585          if (registry[key] === Component) {
8586            return key;
8587          }
8588        }
8589      };
8590      name = inferFromRegistry(
8591        instance.components || instance.parent.type.components
8592      ) || inferFromRegistry(instance.appContext.components);
8593    }
8594    return name ? classify(name) : isRoot ? `App` : `Anonymous`;
8595  }
8596  function isClassComponent(value) {
8597    return isFunction(value) && "__vccOpts" in value;
8598  }
8599  const computed = (getterOrOptions, debugOptions) => {
8600    const c = computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);
8601    return c;
8602  };
8603  function h(type, propsOrChildren, children) {
8604    const l = arguments.length;
8605    if (l === 2) {
8606      if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
8607        if (isVNode(propsOrChildren)) {
8608          return createVNode(type, null, [propsOrChildren]);
8609        }
8610        return createVNode(type, propsOrChildren);
8611      } else {
8612        return createVNode(type, null, propsOrChildren);
8613      }
8614    } else {
8615      if (l > 3) {
8616        children = Array.prototype.slice.call(arguments, 2);
8617      } else if (l === 3 && isVNode(children)) {
8618        children = [children];
8619      }
8620      return createVNode(type, propsOrChildren, children);
8621    }
8622  }
8623  function initCustomFormatter() {
8624    {
8625      return;
8626    }
8627  }
8628  function withMemo(memo, render2, cache, index2) {
8629    const cached = cache[index2];
8630    if (cached && isMemoSame(cached, memo)) {
8631      return cached;
8632    }
8633    const ret = render2();
8634    ret.memo = memo.slice();
8635    ret.cacheIndex = index2;
8636    return cache[index2] = ret;
8637  }
8638  function isMemoSame(cached, memo) {
8639    const prev = cached.memo;
8640    if (prev.length != memo.length) {
8641      return false;
8642    }
8643    for (let i = 0; i < prev.length; i++) {
8644      if (hasChanged(prev[i], memo[i])) {
8645        return false;
8646      }
8647    }
8648    if (isBlockTreeEnabled > 0 && currentBlock) {
8649      currentBlock.push(cached);
8650    }
8651    return true;
8652  }
8653  const version = "3.5.12";
8654  const warn = NOOP;
8655  const ErrorTypeStrings = ErrorTypeStrings$1;
8656  const devtools = devtools$1;
8657  const setDevtoolsHook = setDevtoolsHook$1;
8658  const _ssrUtils = {
8659    createComponentInstance: createComponentInstance$1,
8660    setupComponent: setupComponent$1,
8661    renderComponentRoot: renderComponentRoot$1,
8662    setCurrentRenderingInstance: setCurrentRenderingInstance$1,
8663    isVNode,
8664    normalizeVNode: normalizeVNode$1,
8665    getComponentPublicInstance,
8666    ensureValidVNode,
8667    pushWarningContext: pushWarningContext$1,
8668    popWarningContext: popWarningContext$1
8669  };
8670  const ssrUtils = _ssrUtils;
8671  const resolveFilter = null;
8672  const compatUtils = null;
8673  const DeprecationTypes = null;
8674  /**
8675  * @vue/runtime-dom v3.5.12
8676  * (c) 2018-present Yuxi (Evan) You and Vue contributors
8677  * @license MIT
8678  **/
8679  let policy = void 0;
8680  const tt = typeof window !== "undefined" && window.trustedTypes;
8681  if (tt) {
8682    try {
8683      policy = /* @__PURE__ */ tt.createPolicy("vue", {
8684        createHTML: (val) => val
8685      });
8686    } catch (e) {
8687    }
8688  }
8689  const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val;
8690  const svgNS = "http://www.w3.org/2000/svg";
8691  const mathmlNS = "http://www.w3.org/1998/Math/MathML";
8692  const doc = typeof document !== "undefined" ? document : null;
vendor: 14,175 bytes, lines 8693-9135
8693  const templateContainer = doc && /* @__PURE__ */ doc.createElement("template");
8694  const nodeOps = {
8695    insert: (child, parent, anchor) => {
8696      parent.insertBefore(child, anchor || null);
8697    },
8698    remove: (child) => {
8699      const parent = child.parentNode;
8700      if (parent) {
8701        parent.removeChild(child);
8702      }
8703    },
8704    createElement: (tag, namespace, is, props) => {
8705      const el = namespace === "svg" ? doc.createElementNS(svgNS, tag) : namespace === "mathml" ? doc.createElementNS(mathmlNS, tag) : is ? doc.createElement(tag, { is }) : doc.createElement(tag);
8706      if (tag === "select" && props && props.multiple != null) {
8707        el.setAttribute("multiple", props.multiple);
8708      }
8709      return el;
8710    },
8711    createText: (text) => doc.createTextNode(text),
8712    createComment: (text) => doc.createComment(text),
8713    setText: (node, text) => {
8714      node.nodeValue = text;
8715    },
8716    setElementText: (el, text) => {
8717      el.textContent = text;
8718    },
8719    parentNode: (node) => node.parentNode,
8720    nextSibling: (node) => node.nextSibling,
8721    querySelector: (selector) => doc.querySelector(selector),
8722    setScopeId(el, id) {
8723      el.setAttribute(id, "");
8724    },
8725    // __UNSAFE__
8726    // Reason: innerHTML.
8727    // Static content here can only come from compiled templates.
8728    // As long as the user only uses trusted templates, this is safe.
8729    insertStaticContent(content, parent, anchor, namespace, start, end) {
8730      const before = anchor ? anchor.previousSibling : parent.lastChild;
8731      if (start && (start === end || start.nextSibling)) {
8732        while (true) {
8733          parent.insertBefore(start.cloneNode(true), anchor);
8734          if (start === end || !(start = start.nextSibling))
8735            break;
8736        }
8737      } else {
8738        templateContainer.innerHTML = unsafeToTrustedHTML(
8739          namespace === "svg" ? `<svg>${content}</svg>` : namespace === "mathml" ? `<math>${content}</math>` : content
8740        );
8741        const template = templateContainer.content;
8742        if (namespace === "svg" || namespace === "mathml") {
8743          const wrapper = template.firstChild;
8744          while (wrapper.firstChild) {
8745            template.appendChild(wrapper.firstChild);
8746          }
8747          template.removeChild(wrapper);
8748        }
8749        parent.insertBefore(template, anchor);
8750      }
8751      return [
8752        // first
8753        before ? before.nextSibling : parent.firstChild,
8754        // last
8755        anchor ? anchor.previousSibling : parent.lastChild
8756      ];
8757    }
8758  };
8759  const TRANSITION = "transition";
8760  const ANIMATION = "animation";
8761  const vtcKey = Symbol("_vtc");
8762  const DOMTransitionPropsValidators = {
8763    name: String,
8764    type: String,
8765    css: {
8766      type: Boolean,
8767      default: true
8768    },
8769    duration: [String, Number, Object],
8770    enterFromClass: String,
8771    enterActiveClass: String,
8772    enterToClass: String,
8773    appearFromClass: String,
8774    appearActiveClass: String,
8775    appearToClass: String,
8776    leaveFromClass: String,
8777    leaveActiveClass: String,
8778    leaveToClass: String
8779  };
8780  const TransitionPropsValidators = /* @__PURE__ */ extend(
8781    {},
8782    BaseTransitionPropsValidators,
8783    DOMTransitionPropsValidators
8784  );
8785  const decorate$1 = (t) => {
8786    t.displayName = "Transition";
8787    t.props = TransitionPropsValidators;
8788    return t;
8789  };
8790  const Transition = /* @__PURE__ */ decorate$1(
8791    (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots)
8792  );
8793  const callHook = (hook, args = []) => {
8794    if (isArray(hook)) {
8795      hook.forEach((h2) => h2(...args));
8796    } else if (hook) {
8797      hook(...args);
8798    }
8799  };
8800  const hasExplicitCallback = (hook) => {
8801    return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;
8802  };
8803  function resolveTransitionProps(rawProps) {
8804    const baseProps = {};
8805    for (const key in rawProps) {
8806      if (!(key in DOMTransitionPropsValidators)) {
8807        baseProps[key] = rawProps[key];
8808      }
8809    }
8810    if (rawProps.css === false) {
8811      return baseProps;
8812    }
8813    const {
8814      name = "v",
8815      type,
8816      duration,
8817      enterFromClass = `${name}-enter-from`,
8818      enterActiveClass = `${name}-enter-active`,
8819      enterToClass = `${name}-enter-to`,
8820      appearFromClass = enterFromClass,
8821      appearActiveClass = enterActiveClass,
8822      appearToClass = enterToClass,
8823      leaveFromClass = `${name}-leave-from`,
8824      leaveActiveClass = `${name}-leave-active`,
8825      leaveToClass = `${name}-leave-to`
8826    } = rawProps;
8827    const durations = normalizeDuration(duration);
8828    const enterDuration = durations && durations[0];
8829    const leaveDuration = durations && durations[1];
8830    const {
8831      onBeforeEnter,
8832      onEnter,
8833      onEnterCancelled,
8834      onLeave,
8835      onLeaveCancelled,
8836      onBeforeAppear = onBeforeEnter,
8837      onAppear = onEnter,
8838      onAppearCancelled = onEnterCancelled
8839    } = baseProps;
8840    const finishEnter = (el, isAppear, done) => {
8841      removeTransitionClass(el, isAppear ? appearToClass : enterToClass);
8842      removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);
8843      done && done();
8844    };
8845    const finishLeave = (el, done) => {
8846      el._isLeaving = false;
8847      removeTransitionClass(el, leaveFromClass);
8848      removeTransitionClass(el, leaveToClass);
8849      removeTransitionClass(el, leaveActiveClass);
8850      done && done();
8851    };
8852    const makeEnterHook = (isAppear) => {
8853      return (el, done) => {
8854        const hook = isAppear ? onAppear : onEnter;
8855        const resolve2 = () => finishEnter(el, isAppear, done);
8856        callHook(hook, [el, resolve2]);
8857        nextFrame(() => {
8858          removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);
8859          addTransitionClass(el, isAppear ? appearToClass : enterToClass);
8860          if (!hasExplicitCallback(hook)) {
8861            whenTransitionEnds(el, type, enterDuration, resolve2);
8862          }
8863        });
8864      };
8865    };
8866    return extend(baseProps, {
8867      onBeforeEnter(el) {
8868        callHook(onBeforeEnter, [el]);
8869        addTransitionClass(el, enterFromClass);
8870        addTransitionClass(el, enterActiveClass);
8871      },
8872      onBeforeAppear(el) {
8873        callHook(onBeforeAppear, [el]);
8874        addTransitionClass(el, appearFromClass);
8875        addTransitionClass(el, appearActiveClass);
8876      },
8877      onEnter: makeEnterHook(false),
8878      onAppear: makeEnterHook(true),
8879      onLeave(el, done) {
8880        el._isLeaving = true;
8881        const resolve2 = () => finishLeave(el, done);
8882        addTransitionClass(el, leaveFromClass);
8883        addTransitionClass(el, leaveActiveClass);
8884        forceReflow();
8885        nextFrame(() => {
8886          if (!el._isLeaving) {
8887            return;
8888          }
8889          removeTransitionClass(el, leaveFromClass);
8890          addTransitionClass(el, leaveToClass);
8891          if (!hasExplicitCallback(onLeave)) {
8892            whenTransitionEnds(el, type, leaveDuration, resolve2);
8893          }
8894        });
8895        callHook(onLeave, [el, resolve2]);
8896      },
8897      onEnterCancelled(el) {
8898        finishEnter(el, false);
8899        callHook(onEnterCancelled, [el]);
8900      },
8901      onAppearCancelled(el) {
8902        finishEnter(el, true);
8903        callHook(onAppearCancelled, [el]);
8904      },
8905      onLeaveCancelled(el) {
8906        finishLeave(el);
8907        callHook(onLeaveCancelled, [el]);
8908      }
8909    });
8910  }
8911  function normalizeDuration(duration) {
8912    if (duration == null) {
8913      return null;
8914    } else if (isObject(duration)) {
8915      return [NumberOf(duration.enter), NumberOf(duration.leave)];
8916    } else {
8917      const n = NumberOf(duration);
8918      return [n, n];
8919    }
8920  }
8921  function NumberOf(val) {
8922    const res = toNumber(val);
8923    return res;
8924  }
8925  function addTransitionClass(el, cls) {
8926    cls.split(/\s+/).forEach((c) => c && el.classList.add(c));
8927    (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls);
8928  }
8929  function removeTransitionClass(el, cls) {
8930    cls.split(/\s+/).forEach((c) => c && el.classList.remove(c));
8931    const _vtc = el[vtcKey];
8932    if (_vtc) {
8933      _vtc.delete(cls);
8934      if (!_vtc.size) {
8935        el[vtcKey] = void 0;
8936      }
8937    }
8938  }
8939  function nextFrame(cb) {
8940    requestAnimationFrame(() => {
8941      requestAnimationFrame(cb);
8942    });
8943  }
8944  let endId = 0;
8945  function whenTransitionEnds(el, expectedType, explicitTimeout, resolve2) {
8946    const id = el._endId = ++endId;
8947    const resolveIfNotStale = () => {
8948      if (id === el._endId) {
8949        resolve2();
8950      }
8951    };
8952    if (explicitTimeout != null) {
8953      return setTimeout(resolveIfNotStale, explicitTimeout);
8954    }
8955    const { type, timeout, propCount } = getTransitionInfo(el, expectedType);
8956    if (!type) {
8957      return resolve2();
8958    }
8959    const endEvent = type + "end";
8960    let ended = 0;
8961    const end = () => {
8962      el.removeEventListener(endEvent, onEnd);
8963      resolveIfNotStale();
8964    };
8965    const onEnd = (e) => {
8966      if (e.target === el && ++ended >= propCount) {
8967        end();
8968      }
8969    };
8970    setTimeout(() => {
8971      if (ended < propCount) {
8972        end();
8973      }
8974    }, timeout + 1);
8975    el.addEventListener(endEvent, onEnd);
8976  }
8977  function getTransitionInfo(el, expectedType) {
8978    const styles = window.getComputedStyle(el);
8979    const getStyleProperties = (key) => (styles[key] || "").split(", ");
8980    const transitionDelays = getStyleProperties(`${TRANSITION}Delay`);
8981    const transitionDurations = getStyleProperties(`${TRANSITION}Duration`);
8982    const transitionTimeout = getTimeout(transitionDelays, transitionDurations);
8983    const animationDelays = getStyleProperties(`${ANIMATION}Delay`);
8984    const animationDurations = getStyleProperties(`${ANIMATION}Duration`);
8985    const animationTimeout = getTimeout(animationDelays, animationDurations);
8986    let type = null;
8987    let timeout = 0;
8988    let propCount = 0;
8989    if (expectedType === TRANSITION) {
8990      if (transitionTimeout > 0) {
8991        type = TRANSITION;
8992        timeout = transitionTimeout;
8993        propCount = transitionDurations.length;
8994      }
8995    } else if (expectedType === ANIMATION) {
8996      if (animationTimeout > 0) {
8997        type = ANIMATION;
8998        timeout = animationTimeout;
8999        propCount = animationDurations.length;
9000      }
9001    } else {
9002      timeout = Math.max(transitionTimeout, animationTimeout);
9003      type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;
9004      propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;
9005    }
9006    const hasTransform = type === TRANSITION && /\b(transform|all)(,|$)/.test(
9007      getStyleProperties(`${TRANSITION}Property`).toString()
9008    );
9009    return {
9010      type,
9011      timeout,
9012      propCount,
9013      hasTransform
9014    };
9015  }
9016  function getTimeout(delays, durations) {
9017    while (delays.length < durations.length) {
9018      delays = delays.concat(delays);
9019    }
9020    return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));
9021  }
9022  function toMs(s) {
9023    if (s === "auto")
9024      return 0;
9025    return Number(s.slice(0, -1).replace(",", ".")) * 1e3;
9026  }
9027  function forceReflow() {
9028    return document.body.offsetHeight;
9029  }
9030  function patchClass(el, value, isSVG) {
9031    const transitionClasses = el[vtcKey];
9032    if (transitionClasses) {
9033      value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" ");
9034    }
9035    if (value == null) {
9036      el.removeAttribute("class");
9037    } else if (isSVG) {
9038      el.setAttribute("class", value);
9039    } else {
9040      el.className = value;
9041    }
9042  }
9043  const vShowOriginalDisplay = Symbol("_vod");
9044  const vShowHidden = Symbol("_vsh");
9045  const vShow = {
9046    beforeMount(el, { value }, { transition }) {
9047      el[vShowOriginalDisplay] = el.style.display === "none" ? "" : el.style.display;
9048      if (transition && value) {
9049        transition.beforeEnter(el);
9050      } else {
9051        setDisplay(el, value);
9052      }
9053    },
9054    mounted(el, { value }, { transition }) {
9055      if (transition && value) {
9056        transition.enter(el);
9057      }
9058    },
9059    updated(el, { value, oldValue }, { transition }) {
9060      if (!value === !oldValue)
9061        return;
9062      if (transition) {
9063        if (value) {
9064          transition.beforeEnter(el);
9065          setDisplay(el, true);
9066          transition.enter(el);
9067        } else {
9068          transition.leave(el, () => {
9069            setDisplay(el, false);
9070          });
9071        }
9072      } else {
9073        setDisplay(el, value);
9074      }
9075    },
9076    beforeUnmount(el, { value }) {
9077      setDisplay(el, value);
9078    }
9079  };
9080  function setDisplay(el, value) {
9081    el.style.display = value ? el[vShowOriginalDisplay] : "none";
9082    el[vShowHidden] = !value;
9083  }
9084  function initVShowForSSR() {
9085    vShow.getSSRProps = ({ value }) => {
9086      if (!value) {
9087        return { style: { display: "none" } };
9088      }
9089    };
9090  }
9091  const CSS_VAR_TEXT = Symbol("");
9092  function useCssVars(getter) {
9093    const instance = getCurrentInstance();
9094    if (!instance) {
9095      return;
9096    }
9097    const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => {
9098      Array.from(
9099        document.querySelectorAll(`[data-v-owner="${instance.uid}"]`)
9100      ).forEach((node) => setVarsOnNode(node, vars));
9101    };
9102    const setVars = () => {
9103      const vars = getter(instance.proxy);
9104      if (instance.ce) {
9105        setVarsOnNode(instance.ce, vars);
9106      } else {
9107        setVarsOnVNode(instance.subTree, vars);
9108      }
9109      updateTeleports(vars);
9110    };
9111    onBeforeMount(() => {
9112      watchPostEffect(setVars);
9113    });
9114    onMounted(() => {
9115      const ob = new MutationObserver(setVars);
9116      ob.observe(instance.subTree.el.parentNode, { childList: true });
9117      onUnmounted(() => ob.disconnect());
9118    });
9119  }
9120  function setVarsOnVNode(vnode, vars) {
9121    if (vnode.shapeFlag & 128) {
9122      const suspense = vnode.suspense;
9123      vnode = suspense.activeBranch;
9124      if (suspense.pendingBranch && !suspense.isHydrating) {
9125        suspense.effects.push(() => {
9126          setVarsOnVNode(suspense.activeBranch, vars);
9127        });
9128      }
9129    }
9130    while (vnode.component) {
9131      vnode = vnode.component.subTree;
9132    }
9133    if (vnode.shapeFlag & 1 && vnode.el) {
9134      setVarsOnNode(vnode.el, vars);
9135    } else if (vnode.type === Fragment) {
9136      vnode.children.forEach((c) => setVarsOnVNode(c, vars));
9137    } else if (vnode.type === Static) {
9138      let { el, anchor } = vnode;
9139      while (el) {
9140        setVarsOnNode(el, vars);
9141        if (el === anchor)
9142          break;
9143        el = el.nextSibling;
9144      }
9145    }
9146  }
9147  function setVarsOnNode(el, vars) {
9148    if (el.nodeType === 1) {
9149      const style = el.style;
9150      let cssText = "";
9151      for (const key in vars) {
9152        style.setProperty(`--${key}`, vars[key]);
9153        cssText += `--${key}: ${vars[key]};`;
9154      }
9155      style[CSS_VAR_TEXT] = cssText;
9156    }
9157  }
9158  const displayRE = /(^|;)\s*display\s*:/;
9159  function patchStyle(el, prev, next) {
9160    const style = el.style;
9161    const isCssString = isString(next);
9162    let hasControlledDisplay = false;
9163    if (next && !isCssString) {
9164      if (prev) {
9165        if (!isString(prev)) {
9166          for (const key in prev) {
9167            if (next[key] == null) {
9168              setStyle(style, key, "");
9169            }
9170          }
9171        } else {
9172          for (const prevStyle of prev.split(";")) {
9173            const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
9174            if (next[key] == null) {
9175              setStyle(style, key, "");
9176            }
9177          }
9178        }
9179      }
9180      for (const key in next) {
9181        if (key === "display") {
9182          hasControlledDisplay = true;
9183        }
9184        setStyle(style, key, next[key]);
9185      }
9186    } else {
9187      if (isCssString) {
9188        if (prev !== next) {
9189          const cssVarText = style[CSS_VAR_TEXT];
9190          if (cssVarText) {
9191            next += ";" + cssVarText;
9192          }
9193          style.cssText = next;
9194          hasControlledDisplay = displayRE.test(next);
9195        }
9196      } else if (prev) {
9197        el.removeAttribute("style");
9198      }
9199    }
9200    if (vShowOriginalDisplay in el) {
9201      el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
9202      if (el[vShowHidden]) {
9203        style.display = "none";
9204      }
9205    }
9206  }
9207  const importantRE = /\s*!important$/;
9208  function setStyle(style, name, val) {
9209    if (isArray(val)) {
9210      val.forEach((v) => setStyle(style, name, v));
9211    } else {
9212      if (val == null)
9213        val = "";
9214      if (name.startsWith("--")) {
9215        style.setProperty(name, val);
9216      } else {
9217        const prefixed = autoPrefix(style, name);
9218        if (importantRE.test(val)) {
9219          style.setProperty(
9220            hyphenate(prefixed),
9221            val.replace(importantRE, ""),
9222            "important"
9223          );
9224        } else {
9225          style[prefixed] = val;
9226        }
9227      }
9228    }
9229  }
9230  const prefixes = ["Webkit", "Moz", "ms"];
9231  const prefixCache = {};
9232  function autoPrefix(style, rawName) {
9233    const cached = prefixCache[rawName];
9234    if (cached) {
9235      return cached;
9236    }
9237    let name = camelize(rawName);
9238    if (name !== "filter" && name in style) {
9239      return prefixCache[rawName] = name;
9240    }
9241    name = capitalize(name);
9242    for (let i = 0; i < prefixes.length; i++) {
9243      const prefixed = prefixes[i] + name;
9244      if (prefixed in style) {
9245        return prefixCache[rawName] = prefixed;
9246      }
9247    }
9248    return rawName;
9249  }
9250  const xlinkNS = "http://www.w3.org/1999/xlink";
9251  function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) {
9252    if (isSVG && key.startsWith("xlink:")) {
9253      if (value == null) {
9254        el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
9255      } else {
9256        el.setAttributeNS(xlinkNS, key, value);
9257      }
9258    } else {
9259      if (value == null || isBoolean && !includeBooleanAttr(value)) {
9260        el.removeAttribute(key);
9261      } else {
9262        el.setAttribute(
9263          key,
9264          isBoolean ? "" : isSymbol(value) ? String(value) : value
9265        );
9266      }
9267    }
9268  }
9269  function patchDOMProp(el, key, value, parentComponent, attrName) {
9270    if (key === "innerHTML" || key === "textContent") {
9271      if (value != null) {
9272        el[key] = key === "innerHTML" ? unsafeToTrustedHTML(value) : value;
9273      }
9274      return;
9275    }
9276    const tag = el.tagName;
9277    if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally
9278    !tag.includes("-")) {
9279      const oldValue = tag === "OPTION" ? el.getAttribute("value") || "" : el.value;
9280      const newValue = value == null ? (
9281        // #11647: value should be set as empty string for null and undefined,
9282        // but <input type="checkbox"> should be set as 'on'.
9283        el.type === "checkbox" ? "on" : ""
9284      ) : String(value);
9285      if (oldValue !== newValue || !("_value" in el)) {
9286        el.value = newValue;
9287      }
9288      if (value == null) {
9289        el.removeAttribute(key);
9290      }
9291      el._value = value;
9292      return;
9293    }
9294    let needRemove = false;
vendor: 1,053 bytes, lines 9295-9326
9295    if (value === "" || value == null) {
9296      const type = typeof el[key];
9297      if (type === "boolean") {
9298        value = includeBooleanAttr(value);
9299      } else if (value == null && type === "string") {
9300        value = "";
9301        needRemove = true;
9302      } else if (type === "number") {
9303        value = 0;
9304        needRemove = true;
9305      }
9306    }
9307    try {
9308      el[key] = value;
9309    } catch (e) {
9310    }
9311    needRemove && el.removeAttribute(attrName || key);
9312  }
9313  function addEventListener(el, event, handler, options) {
9314    el.addEventListener(event, handler, options);
9315  }
9316  function removeEventListener(el, event, handler, options) {
9317    el.removeEventListener(event, handler, options);
9318  }
9319  const veiKey = Symbol("_vei");
9320  function patchEvent(el, rawName, prevValue, nextValue, instance = null) {
9321    const invokers = el[veiKey] || (el[veiKey] = {});
9322    const existingInvoker = invokers[rawName];
9323    if (nextValue && existingInvoker) {
9324      existingInvoker.value = nextValue;
9325    } else {
9326      const [name, options] = parseName(rawName);
vendor: 1,794 bytes, lines 9327-9388
9327      if (nextValue) {
9328        const invoker = invokers[rawName] = createInvoker(
9329          nextValue,
9330          instance
9331        );
9332        addEventListener(el, name, invoker, options);
9333      } else if (existingInvoker) {
9334        removeEventListener(el, name, existingInvoker, options);
9335        invokers[rawName] = void 0;
9336      }
9337    }
9338  }
9339  const optionsModifierRE = /(?:Once|Passive|Capture)$/;
9340  function parseName(name) {
9341    let options;
9342    if (optionsModifierRE.test(name)) {
9343      options = {};
9344      let m;
9345      while (m = name.match(optionsModifierRE)) {
9346        name = name.slice(0, name.length - m[0].length);
9347        options[m[0].toLowerCase()] = true;
9348      }
9349    }
9350    const event = name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2));
9351    return [event, options];
9352  }
9353  let cachedNow = 0;
9354  const p = /* @__PURE__ */ Promise.resolve();
9355  const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
9356  function createInvoker(initialValue, instance) {
9357    const invoker = (e) => {
9358      if (!e._vts) {
9359        e._vts = Date.now();
9360      } else if (e._vts <= invoker.attached) {
9361        return;
9362      }
9363      callWithAsyncErrorHandling(
9364        patchStopImmediatePropagation(e, invoker.value),
9365        instance,
9366        5,
9367        [e]
9368      );
9369    };
9370    invoker.value = initialValue;
9371    invoker.attached = getNow();
9372    return invoker;
9373  }
9374  function patchStopImmediatePropagation(e, value) {
9375    if (isArray(value)) {
9376      const originalStop = e.stopImmediatePropagation;
9377      e.stopImmediatePropagation = () => {
9378        originalStop.call(e);
9379        e._stopped = true;
9380      };
9381      return value.map(
9382        (fn) => (e2) => !e2._stopped && fn && fn(e2)
9383      );
9384    } else {
9385      return value;
9386    }
9387  }
9388  const isNativeOn = (key) =>
9388 key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // lowercase letter
9389  key.charCodeAt(2) > 96 && key.charCodeAt(2) < 123;
9390  const patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => {
9391    const isSVG = namespace === "svg";
9392    if (key === "class") {
9393      patchClass(el, nextValue, isSVG);
9394    } else if (key === "style") {
9395      patchStyle(el, prevValue, nextValue);
9396    } else if (isOn(key)) {
9397      if (!isModelListener(key)) {
9398        patchEvent(el, key, prevValue, nextValue, parentComponent);
9399      }
9400    } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {
9401      patchDOMProp(el, key, nextValue);
9402      if (!el.tagName.includes("-") && (key === "value" || key === "checked" || key === "selected")) {
9403        patchAttr(el, key, nextValue, isSVG, parentComponent, key !== "value");
9404      }
9405    } else if (
9406      // #11081 force set props for possible async custom element
9407      el._isVueCE && (/[A-Z]/.test(key) || !isString(nextValue))
9408    ) {
9409      patchDOMProp(el, camelize(key), nextValue, parentComponent, key);
9410    } else {
9411      if (key === "true-value") {
9412        el._trueValue = nextValue;
9413      } else if (key === "false-value") {
9414        el._falseValue = nextValue;
9415      }
9416      patchAttr(el, key, nextValue, isSVG);
9417    }
9418  };
9419  function shouldSetAsProp(el, key, value, isSVG) {
9420    if (isSVG) {
9421      if (key === "innerHTML" || key === "textContent") {
9422        return true;
9423      }
9424      if (key in el && isNativeOn(key) && isFunction(value)) {
9425        return true;
9426      }
9427      return false;
9428    }
9429    if (key === "spellcheck" || key === "draggable" || key === "translate") {
9430      return false;
9431    }
9432    if (key === "form") {
9433      return false;
9434    }
9435    if (key === "list" && el.tagName === "INPUT") {
9436      return false;
9437    }
9438    if (key === "type" && el.tagName === "TEXTAREA") {
9439      return false;
9440    }
9441    if (key === "width" || key === "height") {
9442      const tag = el.tagName;
9443      if (tag === "IMG" || tag === "VIDEO" || tag === "CANVAS" || tag === "SOURCE") {
9444        return false;
9445      }
9446    }
9447    if (isNativeOn(key) && isString(value)) {
9448      return false;
9449    }
9450    return key in el;
9451  }
9452  const REMOVAL = {};
9453  /*! #__NO_SIDE_EFFECTS__ */
9454  // @__NO_SIDE_EFFECTS__
9455  function defineCustomElement(options, extraOptions, _createApp) {
9456    const Comp = /* @__PURE__ */ defineComponent(options, extraOptions);
9457    if (isPlainObject(Comp))
9458      extend(Comp, extraOptions);
9459    class VueCustomElement extends VueElement {
9460      constructor(initialProps) {
9461        super(Comp, initialProps, _createApp);
9462      }
9463    }
9464    VueCustomElement.def = Comp;
9465    return VueCustomElement;
9466  }
9467  /*! #__NO_SIDE_EFFECTS__ */
9468  const defineSSRCustomElement = /* @__NO_SIDE_EFFECTS__ */ (options, extraOptions) => {
9469    return /* @__PURE__ */ defineCustomElement(options, extraOptions, createSSRApp);
9470  };
9471  const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class {
9472  };
9473  class VueElement extends BaseClass {
9474    constructor(_def, _props = {}, _createApp = createApp) {
9475      super();
9476      this._def = _def;
9477      this._props = _props;
9478      this._createApp = _createApp;
9479      this._isVueCE = true;
9480      this._instance = null;
9481      this._app = null;
9482      this._nonce = this._def.nonce;
9483      this._connected = false;
9484      this._resolved = false;
9485      this._numberProps = null;
9486      this._styleChildren = /* @__PURE__ */ new WeakSet();
9487      this._ob = null;
9488      if (this.shadowRoot && _createApp !== createApp) {
9489        this._root = this.shadowRoot;
9490      } else {
9491        if (_def.shadowRoot !== false) {
9492          this.attachShadow({ mode: "open" });
9493          this._root = this.shadowRoot;
9494        } else {
9495          this._root = this;
9496        }
9497      }
9498      if (!this._def.__asyncLoader) {
9499        this._resolveProps(this._def);
9500      }
9501    }
9502    connectedCallback() {
9503      if (!this.isConnected)
9504        return;
9505      if (!this.shadowRoot) {
9506        this._parseSlots();
9507      }
9508      this._connected = true;
9509      let parent = this;
9510      while (parent = parent && (parent.parentNode || parent.host)) {
9511        if (parent instanceof VueElement) {
9512          this._parent = parent;
9513          break;
9514        }
9515      }
9516      if (!this._instance) {
9517        if (this._resolved) {
9518          this._setParent();
9519          this._update();
9520        } else {
9521          if (parent && parent._pendingResolve) {
9522            this._pendingResolve = parent._pendingResolve.then(() => {
9523              this._pendingResolve = void 0;
9524              this._resolveDef();
9525            });
9526          } else {
9527            this._resolveDef();
9528          }
9529        }
9530      }
9531    }
9532    _setParent(parent = this._parent) {
9533      if (parent) {
9534        this._instance.parent = parent._instance;
9535        this._instance.provides = parent._instance.provides;
9536      }
9537    }
9538    disconnectedCallback() {
9539      this._connected = false;
9540      nextTick(() => {
9541        if (!this._connected) {
9542          if (this._ob) {
9543            this._ob.disconnect();
9544            this._ob = null;
9545          }
9546          this._app && this._app.unmount();
9547          if (this._instance)
9548            this._instance.ce = void 0;
9549          this._app = this._instance = null;
9550        }
9551      });
9552    }
9553    /**
9554     * resolve inner component definition (handle possible async component)
9555     */
9556    _resolveDef() {
9557      if (this._pendingResolve) {
9558        return;
9559      }
9560      for (let i = 0; i < this.attributes.length; i++) {
9561        this._setAttr(this.attributes[i].name);
9562      }
9563      this._ob = new MutationObserver((mutations) => {
9564        for (const m of mutations) {
9565          this._setAttr(m.attributeName);
9566        }
9567      });
9568      this._ob.observe(this, { attributes: true });
9569      const resolve2 = (def2, isAsync = false) => {
9570        this._resolved = true;
9571        this._pendingResolve = void 0;
9572        const { props, styles } = def2;
9573        let numberProps;
9574        if (props && !isArray(props)) {
9575          for (const key in props) {
9576            const opt = props[key];
9577            if (opt === Number || opt && opt.type === Number) {
9578              if (key in this._props) {
9579                this._props[key] = toNumber(this._props[key]);
9580              }
9581              (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize(key)] = true;
9582            }
9583          }
9584        }
9585        this._numberProps = numberProps;
9586        if (isAsync) {
9587          this._resolveProps(def2);
9588        }
9589        if (this.shadowRoot) {
9590          this._applyStyles(styles);
9591        }
9592        this._mount(def2);
9593      };
9594      const asyncDef = this._def.__asyncLoader;
9595      if (asyncDef) {
9596        this._pendingResolve = asyncDef().then(
9597          (def2) => resolve2(this._def = def2, true)
9598        );
9599      } else {
9600        resolve2(this._def);
9601      }
9602    }
9603    _mount(def2) {
9604      this._app = this._createApp(def2);
9605      if (def2.configureApp) {
9606        def2.configureApp(this._app);
9607      }
9608      this._app._ceVNode = this._createVNode();
9609      this._app.mount(this._root);
9610      const exposed = this._instance && this._instance.exposed;
9611      if (!exposed)
9612        return;
9613      for (const key in exposed) {
9614        if (!hasOwn(this, key)) {
9615          Object.defineProperty(this, key, {
9616            // unwrap ref to be consistent with public instance behavior
9617            get: () => unref(exposed[key])
9618          });
9619        }
9620      }
9621    }
9622    _resolveProps(def2) {
9623      const { props } = def2;
9624      const declaredPropKeys = isArray(props) ? props : Object.keys(props || {});
9625      for (const key of Object.keys(this)) {
9626        if (key[0] !== "_" && declaredPropKeys.includes(key)) {
9627          this._setProp(key, this[key]);
9628        }
9629      }
9630      for (const key of declaredPropKeys.map(camelize)) {
9631        Object.defineProperty(this, key, {
9632          get() {
9633            return this._getProp(key);
9634          },
9635          set(val) {
9636            this._setProp(key, val, true, true);
9637          }
9638        });
9639      }
9640    }
9641    _setAttr(key) {
9642      if (key.startsWith("data-v-"))
9643        return;
9644      const has = this.hasAttribute(key);
9645      let value = has ? this.getAttribute(key) : REMOVAL;
9646      const camelKey = camelize(key);
9647      if (has && this._numberProps && this._numberProps[camelKey]) {
9648        value = toNumber(value);
9649      }
9650      this._setProp(camelKey, value, false, true);
9651    }
9652    /**
9653     * @internal
9654     */
9655    _getProp(key) {
9656      return this._props[key];
9657    }
9658    /**
9659     * @internal
9660     */
9661    _setProp(key, val, shouldReflect = true, shouldUpdate = false) {
9662      if (val !== this._props[key]) {
9663        if (val === REMOVAL) {
9664          delete this._props[key];
9665        } else {
9666          this._props[key] = val;
9667          if (key === "key" && this._app) {
9668            this._app._ceVNode.key = val;
9669          }
9670        }
9671        if (shouldUpdate && this._instance) {
9672          this._update();
9673        }
9674        if (shouldReflect) {
9675          if (val === true) {
9676            this.setAttribute(hyphenate(key), "");
9677          } else if (typeof val === "string" || typeof val === "number") {
9678            this.setAttribute(hyphenate(key), val + "");
9679          } else if (!val) {
9680            this.removeAttribute(hyphenate(key));
9681          }
9682        }
9683      }
9684    }
9685    _update() {
9686      render(this._createVNode(), this._root);
9687    }
9688    _createVNode() {
9689      const baseProps = {};
9690      if (!this.shadowRoot) {
9691        baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this);
9692      }
9693      const vnode = createVNode(this._def, extend(baseProps, this._props));
9694      if (!this._instance) {
9695        vnode.ce = (instance) => {
9696          this._instance = instance;
9697          instance.ce = this;
9698          instance.isCE = true;
9699          const dispatch = (event, args) => {
9700            this.dispatchEvent(
9701              new CustomEvent(
9702                event,
9703                isPlainObject(args[0]) ? extend({ detail: args }, args[0]) : { detail: args }
9704              )
9705            );
9706          };
9707          instance.emit = (event, ...args) => {
9708            dispatch(event, args);
9709            if (hyphenate(event) !== event) {
9710              dispatch(hyphenate(event), args);
9711            }
9712          };
9713          this._setParent();
9714        };
9715      }
9716      return vnode;
9717    }
9718    _applyStyles(styles, owner) {
9719      if (!styles)
9720        return;
9721      if (owner) {
9722        if (owner === this._def || this._styleChildren.has(owner)) {
9723          return;
9724        }
9725        this._styleChildren.add(owner);
9726      }
9727      const nonce = this._nonce;
9728      for (let i = styles.length - 1; i >= 0; i--) {
9729        const s = document.createElement("style");
9730        if (nonce)
9731          s.setAttribute("nonce", nonce);
9732        s.textContent = styles[i];
9733        this.shadowRoot.prepend(s);
9734      }
9735    }
9736    /**
9737     * Only called when shadowRoot is false
9738     */
9739    _parseSlots() {
9740      const slots = this._slots = {};
9741      let n;
9742      while (n = this.firstChild) {
9743        const slotName = n.nodeType === 1 && n.getAttribute("slot") || "default";
9744        (slots[slotName] || (slots[slotName] = [])).push(n);
9745        this.removeChild(n);
9746      }
9747    }
9748    /**
9749     * Only called when shadowRoot is false
9750     */
9751    _renderSlots() {
9752      const outlets = (this._teleportTarget || this).querySelectorAll("slot");
9753      const scopeId = this._instance.type.__scopeId;
9754      for (let i = 0; i < outlets.length; i++) {
9755        const o = outlets[i];
9756        const slotName = o.getAttribute("name") || "default";
9757        const content = this._slots[slotName];
9758        const parent = o.parentNode;
9759        if (content) {
9760          for (const n of content) {
9761            if (scopeId && n.nodeType === 1) {
9762              const id = scopeId + "-s";
9763              const walker = document.createTreeWalker(n, 1);
9764              n.setAttribute(id, "");
9765              let child;
9766              while (child = walker.nextNode()) {
9767                child.setAttribute(id, "");
9768              }
9769            }
9770            parent.insertBefore(n, o);
9771          }
9772        } else {
9773          while (o.firstChild)
9774            parent.insertBefore(o.firstChild, o);
9775        }
9776        parent.removeChild(o);
9777      }
9778    }
9779    /**
9780     * @internal
9781     */
9782    _injectChildStyle(comp) {
9783      this._applyStyles(comp.styles, comp);
9784    }
9785    /**
9786     * @internal
9787     */
9788    _removeChildStyle(comp) {
9789    }
9790  }
9791  function useHost(caller) {
9792    const instance = getCurrentInstance();
9793    const el = instance && instance.ce;
9794    if (el) {
9795      return el;
9796    }
9797    return null;
9798  }
9799  function useShadowRoot() {
9800    const el = useHost();
9801    return el && el.shadowRoot;
9802  }
9803  function useCssModule(name = "$style") {
9804    {
9805      const instance = getCurrentInstance();
9806      if (!instance) {
9807        return EMPTY_OBJ;
9808      }
9809      const modules = instance.type.__cssModules;
9810      if (!modules) {
9811        return EMPTY_OBJ;
9812      }
9813      const mod = modules[name];
9814      if (!mod) {
9815        return EMPTY_OBJ;
9816      }
9817      return mod;
9818    }
9819  }
9820  const positionMap = /* @__PURE__ */ new WeakMap();
9821  const newPositionMap = /* @__PURE__ */ new WeakMap();
9822  const moveCbKey = Symbol("_moveCb");
9823  const enterCbKey = Symbol("_enterCb");
9824  const decorate = (t) => {
9825    delete t.props.mode;
9826    return t;
9827  };
9828  const TransitionGroupImpl = /* @__PURE__ */ decorate({
9829    name: "TransitionGroup",
9830    props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {
9831      tag: String,
9832      moveClass: String
9833    }),
9834    setup(props, { slots }) {
9835      const instance = getCurrentInstance();
9836      const state = useTransitionState();
9837      let prevChildren;
9838      let children;
9839      onUpdated(() => {
9840        if (!prevChildren.length) {
9841          return;
9842        }
9843        const moveClass = props.moveClass || `${props.name || "v"}-move`;
9844        if (!hasCSSTransform(
9845          prevChildren[0].el,
9846          instance.vnode.el,
9847          moveClass
9848        )) {
9849          return;
9850        }
9851        prevChildren.forEach(callPendingCbs);
9852        prevChildren.forEach(recordPosition);
9853        const movedChildren = prevChildren.filter(applyTranslation);
9854        forceReflow();
9855        movedChildren.forEach((c) => {
9856          const el = c.el;
9857          const style = el.style;
9858          addTransitionClass(el, moveClass);
9859          style.transform = style.webkitTransform = style.transitionDuration = "";
9860          const cb = el[moveCbKey] = (e) => {
9861            if (e && e.target !== el) {
9862              return;
9863            }
9864            if (!e || /transform$/.test(e.propertyName)) {
9865              el.removeEventListener("transitionend", cb);
9866              el[moveCbKey] = null;
9867              removeTransitionClass(el, moveClass);
9868            }
9869          };
9870          el.addEventListener("transitionend", cb);
9871        });
9872      });
9873      return () => {
9874        const rawProps = toRaw(props);
9875        const cssTransitionProps = resolveTransitionProps(rawProps);
9876        let tag = rawProps.tag || Fragment;
9877        prevChildren = [];
9878        if (children) {
9879          for (let i = 0; i < children.length; i++) {
9880            const child = children[i];
9881            if (child.el && child.el instanceof Element) {
9882              prevChildren.push(child);
9883              setTransitionHooks(
9884                child,
9885                resolveTransitionHooks(
9886                  child,
9887                  cssTransitionProps,
9888                  state,
9889                  instance
9890                )
9891              );
9892              positionMap.set(
9893                child,
9894                child.el.getBoundingClientRect()
9895              );
9896            }
9897          }
9898        }
9899        children = slots.default ? getTransitionRawChildren(slots.default()) : [];
9900        for (let i = 0; i < children.length; i++) {
9901          const child = children[i];
9902          if (child.key != null) {
9903            setTransitionHooks(
9904              child,
9905              resolveTransitionHooks(child, cssTransitionProps, state, instance)
9906            );
9907          }
9908        }
9909        return createVNode(tag, null, children);
9910      };
9911    }
9912  });
9913  const TransitionGroup = TransitionGroupImpl;
9914  function callPendingCbs(c) {
9915    const el = c.el;
9916    if (el[moveCbKey]) {
9917      el[moveCbKey]();
9918    }
9919    if (el[enterCbKey]) {
9920      el[enterCbKey]();
9921    }
9922  }
9923  function recordPosition(c) {
9924    newPositionMap.set(c, c.el.getBoundingClientRect());
9925  }
9926  function applyTranslation(c) {
9927    const oldPos = positionMap.get(c);
9928    const newPos = newPositionMap.get(c);
9929    const dx = oldPos.left - newPos.left;
9930    const dy = oldPos.top - newPos.top;
9931    if (dx || dy) {
9932      const s = c.el.style;
9933      s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`;
9934      s.transitionDuration = "0s";
9935      return c;
9936    }
9937  }
9938  function hasCSSTransform(el, root, moveClass) {
9939    const clone = el.cloneNode();
9940    const _vtc = el[vtcKey];
9941    if (_vtc) {
9942      _vtc.forEach((cls) => {
9943        cls.split(/\s+/).forEach((c) => c && clone.classList.remove(c));
9944      });
9945    }
9946    moveClass.split(/\s+/).forEach((c) => c && clone.classList.add(c));
9947    clone.style.display = "none";
9948    const container = root.nodeType === 1 ? root : root.parentNode;
9949    container.appendChild(clone);
9950    const { hasTransform } = getTransitionInfo(clone);
9951    container.removeChild(clone);
9952    return hasTransform;
9953  }
9954  const getModelAssigner = (vnode) => {
9955    const fn = vnode.props["onUpdate:modelValue"] || false;
9956    return isArray(fn) ? (value) => invokeArrayFns(fn, value) : fn;
9957  };
9958  function onCompositionStart(e) {
9959    e.target.composing = true;
9960  }
9961  function onCompositionEnd(e) {
9962    const target = e.target;
9963    if (target.composing) {
9964      target.composing = false;
9965      target.dispatchEvent(new Event("input"));
9966    }
9967  }
9968  const assignKey = Symbol("_assign");
9969  const vModelText = {
9970    created(el, { modifiers: { lazy, trim, number } }, vnode) {
9971      el[assignKey] = getModelAssigner(vnode);
9972      const castToNumber = number || vnode.props && vnode.props.type === "number";
9973      addEventListener(el, lazy ? "change" : "input", (e) => {
9974        if (e.target.composing)
9975          return;
9976        let domValue = el.value;
9977        if (trim) {
9978          domValue = domValue.trim();
9979        }
9980        if (castToNumber) {
9981          domValue = looseToNumber(domValue);
9982        }
9983        el[assignKey](domValue);
9984      });
9985      if (trim) {
9986        addEventListener(el, "change", () => {
9987          el.value = el.value.trim();
9988        });
9989      }
9990      if (!lazy) {
9991        addEventListener(el, "compositionstart", onCompositionStart);
9992        addEventListener(el, "compositionend", onCompositionEnd);
9993        addEventListener(el, "change", onCompositionEnd);
9994      }
9995    },
9996    // set value on mounted so it's after min/max for type="range"
9997    mounted(el, { value }) {
9998      el.value = value == null ? "" : value;
9999    },
10000    beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {
10001      el[assignKey] = getModelAssigner(vnode);
10002      if (el.composing)
10003        return;
10004      const elValue = (number || el.type === "number") && !/^0\d/.test(el.value) ? looseToNumber(el.value) : el.value;
10005      const newValue = value == null ? "" : value;
10006      if (elValue === newValue) {
10007        return;
10008      }
10009      if (document.activeElement === el && el.type !== "range") {
10010        if (lazy && value === oldValue) {
10011          return;
10012        }
10013        if (trim && el.value.trim() === newValue) {
10014          return;
10015        }
10016      }
10017      el.value = newValue;
10018    }
10019  };
10020  const vModelCheckbox = {
10021    // #4096 array checkboxes need to be deep traversed
10022    deep: true,
10023    created(el, _, vnode) {
10024      el[assignKey] = getModelAssigner(vnode);
10025      addEventListener(el, "change", () => {
10026        const modelValue = el._modelValue;
10027        const elementValue = getValue(el);
10028        const checked = el.checked;
10029        const assign = el[assignKey];
10030        if (isArray(modelValue)) {
10031          const index2 = looseIndexOf(modelValue, elementValue);
10032          const found = index2 !== -1;
10033          if (checked && !found) {
10034            assign(modelValue.concat(elementValue));
10035          } else if (!checked && found) {
10036            const filtered = [...modelValue];
10037            filtered.splice(index2, 1);
10038            assign(filtered);
10039          }
10040        } else if (isSet(modelValue)) {
10041          const cloned = new Set(modelValue);
10042          if (checked) {
10043            cloned.add(elementValue);
10044          } else {
10045            cloned.delete(elementValue);
10046          }
10047          assign(cloned);
10048        } else {
10049          assign(getCheckboxValue(el, checked));
10050        }
10051      });
10052    },
10053    // set initial checked on mount to wait for true-value/false-value
10054    mounted: setChecked,
10055    beforeUpdate(el, binding, vnode) {
10056      el[assignKey] = getModelAssigner(vnode);
10057      setChecked(el, binding, vnode);
10058    }
10059  };
10060  function setChecked(el, { value, oldValue }, vnode) {
10061    el._modelValue = value;
10062    let checked;
10063    if (isArray(value)) {
10064      checked = looseIndexOf(value, vnode.props.value) > -1;
10065    } else if (isSet(value)) {
10066      checked = value.has(vnode.props.value);
10067    } else {
10068      if (value === oldValue)
10069        return;
10070      checked = looseEqual(value, getCheckboxValue(el, true));
10071    }
10072    if (el.checked !== checked) {
10073      el.checked = checked;
10074    }
10075  }
10076  const vModelRadio = {
10077    created(el, { value }, vnode) {
10078      el.checked = looseEqual(value, vnode.props.value);
10079      el[assignKey] = getModelAssigner(vnode);
10080      addEventListener(el, "change", () => {
10081        el[assignKey](getValue(el));
10082      });
10083    },
10084    beforeUpdate(el, { value, oldValue }, vnode) {
10085      el[assignKey] = getModelAssigner(vnode);
10086      if (value !== oldValue) {
10087        el.checked = looseEqual(value, vnode.props.value);
10088      }
10089    }
10090  };
10091  const vModelSelect = {
10092    // <select multiple> value need to be deep traversed
10093    deep: true,
10094    created(el, { value, modifiers: { number } }, vnode) {
10095      const isSetModel = isSet(value);
10096      addEventListener(el, "change", () => {
10097        const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map(
10098          (o) => number ? looseToNumber(getValue(o)) : getValue(o)
10099        );
10100        el[assignKey](
10101          el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]
10102        );
10103        el._assigning = true;
10104        nextTick(() => {
10105          el._assigning = false;
vendor: 5,446 bytes, lines 10106-10278
10106        });
10107      });
10108      el[assignKey] = getModelAssigner(vnode);
10109    },
10110    // set value in mounted & updated because <select> relies on its children
10111    // <option>s.
10112    mounted(el, { value }) {
10113      setSelected(el, value);
10114    },
10115    beforeUpdate(el, _binding, vnode) {
10116      el[assignKey] = getModelAssigner(vnode);
10117    },
10118    updated(el, { value }) {
10119      if (!el._assigning) {
10120        setSelected(el, value);
10121      }
10122    }
10123  };
10124  function setSelected(el, value) {
10125    const isMultiple = el.multiple;
10126    const isArrayValue = isArray(value);
10127    if (isMultiple && !isArrayValue && !isSet(value)) {
10128      return;
10129    }
10130    for (let i = 0, l = el.options.length; i < l; i++) {
10131      const option = el.options[i];
10132      const optionValue = getValue(option);
10133      if (isMultiple) {
10134        if (isArrayValue) {
10135          const optionType = typeof optionValue;
10136          if (optionType === "string" || optionType === "number") {
10137            option.selected = value.some((v) => String(v) === String(optionValue));
10138          } else {
10139            option.selected = looseIndexOf(value, optionValue) > -1;
10140          }
10141        } else {
10142          option.selected = value.has(optionValue);
10143        }
10144      } else if (looseEqual(getValue(option), value)) {
10145        if (el.selectedIndex !== i)
10146          el.selectedIndex = i;
10147        return;
10148      }
10149    }
10150    if (!isMultiple && el.selectedIndex !== -1) {
10151      el.selectedIndex = -1;
10152    }
10153  }
10154  function getValue(el) {
10155    return "_value" in el ? el._value : el.value;
10156  }
10157  function getCheckboxValue(el, checked) {
10158    const key = checked ? "_trueValue" : "_falseValue";
10159    return key in el ? el[key] : checked;
10160  }
10161  const vModelDynamic = {
10162    created(el, binding, vnode) {
10163      callModelHook(el, binding, vnode, null, "created");
10164    },
10165    mounted(el, binding, vnode) {
10166      callModelHook(el, binding, vnode, null, "mounted");
10167    },
10168    beforeUpdate(el, binding, vnode, prevVNode) {
10169      callModelHook(el, binding, vnode, prevVNode, "beforeUpdate");
10170    },
10171    updated(el, binding, vnode, prevVNode) {
10172      callModelHook(el, binding, vnode, prevVNode, "updated");
10173    }
10174  };
10175  function resolveDynamicModel(tagName, type) {
10176    switch (tagName) {
10177      case "SELECT":
10178        return vModelSelect;
10179      case "TEXTAREA":
10180        return vModelText;
10181      default:
10182        switch (type) {
10183          case "checkbox":
10184            return vModelCheckbox;
10185          case "radio":
10186            return vModelRadio;
10187          default:
10188            return vModelText;
10189        }
10190    }
10191  }
10192  function callModelHook(el, binding, vnode, prevVNode, hook) {
10193    const modelToUse = resolveDynamicModel(
10194      el.tagName,
10195      vnode.props && vnode.props.type
10196    );
10197    const fn = modelToUse[hook];
10198    fn && fn(el, binding, vnode, prevVNode);
10199  }
10200  function initVModelForSSR() {
10201    vModelText.getSSRProps = ({ value }) => ({ value });
10202    vModelRadio.getSSRProps = ({ value }, vnode) => {
10203      if (vnode.props && looseEqual(vnode.props.value, value)) {
10204        return { checked: true };
10205      }
10206    };
10207    vModelCheckbox.getSSRProps = ({ value }, vnode) => {
10208      if (isArray(value)) {
10209        if (vnode.props && looseIndexOf(value, vnode.props.value) > -1) {
10210          return { checked: true };
10211        }
10212      } else if (isSet(value)) {
10213        if (vnode.props && value.has(vnode.props.value)) {
10214          return { checked: true };
10215        }
10216      } else if (value) {
10217        return { checked: true };
10218      }
10219    };
10220    vModelDynamic.getSSRProps = (binding, vnode) => {
10221      if (typeof vnode.type !== "string") {
10222        return;
10223      }
10224      const modelToUse = resolveDynamicModel(
10225        // resolveDynamicModel expects an uppercase tag name, but vnode.type is lowercase
10226        vnode.type.toUpperCase(),
10227        vnode.props && vnode.props.type
10228      );
10229      if (modelToUse.getSSRProps) {
10230        return modelToUse.getSSRProps(binding, vnode);
10231      }
10232    };
10233  }
10234  const systemModifiers = ["ctrl", "shift", "alt", "meta"];
10235  const modifierGuards = {
10236    stop: (e) => e.stopPropagation(),
10237    prevent: (e) => e.preventDefault(),
10238    self: (e) => e.target !== e.currentTarget,
10239    ctrl: (e) => !e.ctrlKey,
10240    shift: (e) => !e.shiftKey,
10241    alt: (e) => !e.altKey,
10242    meta: (e) => !e.metaKey,
10243    left: (e) => "button" in e && e.button !== 0,
10244    middle: (e) => "button" in e && e.button !== 1,
10245    right: (e) => "button" in e && e.button !== 2,
10246    exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))
10247  };
10248  const withModifiers = (fn, modifiers) => {
10249    const cache = fn._withMods || (fn._withMods = {});
10250    const cacheKey = modifiers.join(".");
10251    return cache[cacheKey] || (cache[cacheKey] = (event, ...args) => {
10252      for (let i = 0; i < modifiers.length; i++) {
10253        const guard = modifierGuards[modifiers[i]];
10254        if (guard && guard(event, modifiers))
10255          return;
10256      }
10257      return fn(event, ...args);
10258    });
10259  };
10260  const keyNames = {
10261    esc: "escape",
10262    space: " ",
10263    up: "arrow-up",
10264    left: "arrow-left",
10265    right: "arrow-right",
10266    down: "arrow-down",
10267    delete: "backspace"
10268  };
10269  const withKeys = (fn, modifiers) => {
10270    const cache = fn._withKeys || (fn._withKeys = {});
10271    const cacheKey = modifiers.join(".");
10272    return cache[cacheKey] || (cache[cacheKey] = (event) => {
10273      if (!("key" in event)) {
10274        return;
10275      }
10276      const eventKey = hyphenate(event.key);
10277      if (modifiers.some(
10278        (k) =>
10278 k === eventKey || keyNames[k] === eventKey
10279      )) {
10280        return fn(event);
10281      }
10282    });
10283  };
10284  const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);
10285  let renderer;
10286  let enabledHydration = false;
10287  function ensureRenderer() {
10288    return renderer || (renderer = createRenderer(rendererOptions));
10289  }
10290  function ensureHydrationRenderer() {
10291    renderer = enabledHydration ? renderer : createHydrationRenderer(rendererOptions);
10292    enabledHydration = true;
10293    return renderer;
10294  }
10295  const render = (...args) => {
10296    ensureRenderer().render(...args);
10297  };
10298  const hydrate = (...args) => {
10299    ensureHydrationRenderer().hydrate(...args);
10300  };
10301  const createApp = (...args) => {
10302    const app = ensureRenderer().createApp(...args);
10303    const { mount } = app;
10304    app.mount = (containerOrSelector) => {
10305      const container = normalizeContainer(containerOrSelector);
10306      if (!container)
10307        return;
10308      const component = app._component;
10309      if (!isFunction(component) && !component.render && !component.template) {
10310        component.template = container.innerHTML;
10311      }
10312      if (container.nodeType === 1) {
10313        container.textContent = "";
10314      }
10315      const proxy = mount(container, false, resolveRootNamespace(container));
10316      if (container instanceof Element) {
10317        container.removeAttribute("v-cloak");
10318        container.setAttribute("data-v-app", "");
10319      }
10320      return proxy;
10321    };
10322    return app;
10323  };
10324  const createSSRApp = (...args) => {
10325    const app = ensureHydrationRenderer().createApp(...args);
10326    const { mount } = app;
10327    app.mount = (containerOrSelector) => {
10328      const container = normalizeContainer(containerOrSelector);
10329      if (container) {
10330        return mount(container, true, resolveRootNamespace(container));
10331      }
10332    };
10333    return app;
10334  };
10335  function resolveRootNamespace(container) {
10336    if (container instanceof SVGElement) {
10337      return "svg";
10338    }
10339    if (typeof MathMLElement === "function" && container instanceof MathMLElement) {
10340      return "mathml";
10341    }
10342  }
10343  function normalizeContainer(container) {
10344    if (isString(container)) {
10345      const res = document.querySelector(container);
10346      return res;
10347    }
10348    return container;
10349  }
10350  let ssrDirectiveInitialized = false;
10351  const initDirectivesForSSR = () => {
10352    if (!ssrDirectiveInitialized) {
10353      ssrDirectiveInitialized = true;
10354      initVModelForSSR();
10355      initVShowForSSR();
10356    }
10357  };
10358  /**
10359  * vue v3.5.12
10360  * (c) 2018-present Yuxi (Evan) You and Vue contributors
10361  * @license MIT
10362  **/
10363  const compile = () => {
10364  };
10365  const vue_runtime_esmBundler = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10366    __proto__: null,
10367    BaseTransition,
10368    BaseTransitionPropsValidators,
10369    Comment,
10370    DeprecationTypes,
10371    EffectScope,
10372    ErrorCodes,
10373    ErrorTypeStrings,
10374    Fragment,
10375    KeepAlive,
10376    ReactiveEffect,
10377    Static,
10378    Suspense,
10379    Teleport,
10380    Text,
10381    TrackOpTypes,
10382    Transition,
10383    TransitionGroup,
10384    TriggerOpTypes,
10385    VueElement,
10386    assertNumber,
10387    callWithAsyncErrorHandling,
10388    callWithErrorHandling,
10389    camelize,
10390    capitalize,
10391    cloneVNode,
10392    compatUtils,
10393    compile,
10394    computed,
10395    createApp,
10396    createBlock,
10397    createCommentVNode,
10398    createElementBlock,
10399    createElementVNode: createBaseVNode,
10400    createHydrationRenderer,
10401    createPropsRestProxy,
10402    createRenderer,
10403    createSSRApp,
10404    createSlots,
10405    createStaticVNode,
10406    createTextVNode,
10407    createVNode,
10408    customRef,
10409    defineAsyncComponent,
10410    defineComponent,
10411    defineCustomElement,
10412    defineEmits,
10413    defineExpose,
10414    defineModel,
10415    defineOptions,
10416    defineProps,
10417    defineSSRCustomElement,
10418    defineSlots,
10419    devtools,
10420    effect,
10421    effectScope,
10422    getCurrentInstance,
10423    getCurrentScope,
10424    getCurrentWatcher,
10425    getTransitionRawChildren,
10426    guardReactiveProps,
10427    h,
10428    handleError,
10429    hasInjectionContext,
10430    hydrate,
10431    hydrateOnIdle,
10432    hydrateOnInteraction,
10433    hydrateOnMediaQuery,
10434    hydrateOnVisible,
10435    initCustomFormatter,
10436    initDirectivesForSSR,
10437    inject,
10438    isMemoSame,
10439    isProxy,
10440    isReactive,
10441    isReadonly,
10442    isRef,
10443    isRuntimeOnly,
10444    isShallow,
10445    isVNode,
10446    markRaw,
10447    mergeDefaults,
10448    mergeModels,
10449    mergeProps,
10450    nextTick,
10451    normalizeClass,
10452    normalizeProps,
10453    normalizeStyle,
10454    onActivated,
10455    onBeforeMount,
10456    onBeforeUnmount,
10457    onBeforeUpdate,
10458    onDeactivated,
10459    onErrorCaptured,
10460    onMounted,
10461    onRenderTracked,
10462    onRenderTriggered,
10463    onScopeDispose,
10464    onServerPrefetch,
10465    onUnmounted,
10466    onUpdated,
10467    onWatcherCleanup,
10468    openBlock,
10469    popScopeId,
10470    provide,
10471    proxyRefs,
10472    pushScopeId,
10473    queuePostFlushCb,
10474    reactive,
10475    readonly,
10476    ref,
10477    registerRuntimeCompiler,
10478    render,
10479    renderList,
10480    renderSlot,
10481    resolveComponent,
10482    resolveDirective,
10483    resolveDynamicComponent,
10484    resolveFilter,
10485    resolveTransitionHooks,
10486    setBlockTracking,
10487    setDevtoolsHook,
10488    setTransitionHooks,
10489    shallowReactive,
10490    shallowReadonly,
10491    shallowRef,
10492    ssrContextKey,
10493    ssrUtils,
10494    stop,
10495    toDisplayString,
10496    toHandlerKey,
10497    toHandlers,
10498    toRaw,
10499    toRef,
10500    toRefs,
10501    toValue,
10502    transformVNodeArgs,
10503    triggerRef,
10504    unref,
10505    useAttrs,
10506    useCssModule,
10507    useCssVars,
10508    useHost,
10509    useId,
10510    useModel,
10511    useSSRContext,
10512    useShadowRoot,
10513    useSlots,
10514    useTemplateRef,
10515    useTransitionState,
10516    vModelCheckbox,
10517    vModelDynamic,
10518    vModelRadio,
10519    vModelSelect,
10520    vModelText,
10521    vShow,
10522    version,
10523    warn,
10524    watch,
10525    watchEffect,
10526    watchPostEffect,
10527    watchSyncEffect,
10528    withAsyncContext,
10529    withCtx,
10530    withDefaults,
10531    withDirectives,
10532    withKeys,
10533    withMemo,
10534    withModifiers,
10535    withScopeId
10536  }, Symbol.toStringTag, { value: "Module" }));
10537  const _sfc_main$8 = /* @__PURE__ */ defineComponent({
10538    __name: "TestFeature",
10539    setup(__props) {
10540      const hello = ref();
10541      setInterval(() => {
10542        if (!hello.value)
10543          return;
10544        hello.value.style.color = hello.value.style.color === "red" ? "black" : "red";
10545      }, 500);
10546      return (_ctx, _cache) => {
10547        return openBlock(), createElementBlock("div", {
10548          ref_key: "hello",
10549          ref: hello
10550        }, " Hello World ", 512);
10551      };
10552    }
10553  });
10554  const _hoisted_1$7 = {
10555    key: 0,
10556    class: "c-section-header__title"
10557  };
10558  const _hoisted_2$5 = { key: 0 };
10559  const _hoisted_3$5 = { key: 1 };
10560  const _hoisted_4$3 = {
10561    key: 2,
10562    class: "s-wysiwyg"
10563  };
10564  const _hoisted_5$3 = ["innerHTML"];
10565  const _sfc_main$7 = /* @__PURE__ */ defineComponent({
10566    __name: "SectionHeader",
10567    props: {
10568      size: {
10569        type: String,
10570        default: ""
10571        // Provide a default value if necessary
10572      },
10573      center: {
10574        type: Boolean,
10575        default: false
10576      },
10577      title: {
10578        type: String,
10579        default: ""
10580      },
10581      text: {
10582        type: String,
10583        default: ""
10584      }
10585    },
10586    setup(__props) {
10587      const props = __props;
10588      const centerClass = computed(() => props.center ? "c-section-header--center container-col6" : "");
10589      const hasContent = computed(() => props.title || props.text);
10590      return (_ctx, _cache) => {
10591        return openBlock(), createElementBlock("div", {
10592          class: normalizeClass(["c-section-header", [centerClass.value]])
10593        }, [
10594          hasContent.value ? (openBlock(), createElementBlock("div", _hoisted_1$7, [
10595            __props.title && __props.size === "Small" ? (openBlock(), createElementBlock("h2", _hoisted_2$5, toDisplayString(__props.title), 1)) : __props.title ? (openBlock(), createElementBlock("h1", _hoisted_3$5, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
10596            __props.text ? (openBlock(), createElementBlock("div", _hoisted_4$3, [
10597              createBaseVNode("span", { innerHTML: __props.text }, null, 8, _hoisted_5$3)
10598            ])) : createCommentVNode("", true)
10599          ])) : createCommentVNode("", true)
10600        ], 2);
10601      };
10602    }
10603  });
10604  const _hoisted_1$6 = { class: "c-tab-horizontal__container" };
10605  const _sfc_main$6 = /* @__PURE__ */ defineComponent({
10606    __name: "TabHorizontal",
10607    props: {
10608      active: {
10609        type: Boolean,
10610        default: false
10611      },
10612      text: {
10613        type: String,
10614        default: ""
10615      },
10616      classes: {
10617        type: String,
10618        default: ""
10619      }
10620    },
10621    emits: ["click"],
10622    setup(__props) {
10623      return (_ctx, _cache) => {
10624        return openBlock(), createElementBlock("button", {
10625          class: normalizeClass(["c-tab-horizontal", [__props.classes, { "is-active": __props.active }]]),
10626          onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("click"))
10627        }, [
10628          createBaseVNode("span", _hoisted_1$6, toDisplayString(__props.text), 1)
10629        ], 2);
10630      };
10631    }
10632  });
10633  const _imports_0$1 = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGQ9Ik0xMC43ODkyIDE3LjUwMDRDMTEuNDU4OSAxOC4xNzAxIDEyLjU0NjQgMTguMTcwMSAxMy4yMTYgMTcuNTAwNEwyMS43ODc0IDguOTI
106335MDJDMjIuNDU3MSA4LjI1OTM4IDIyLjQ1NzEgNy4xNzE4OCAyMS43ODc0IDYuNTAyMjNDMjEuMTE3OCA1LjgzMjU5IDIwLjAzMDMgNS44MzI1OSAxOS4zNjA3IDYuNTAyMjNMMTEuOTk5OSAxMy44NjI5TDQuNjM5MjIgNi41MDc1OUMzLjk2OTU4IDUuODM3OTUgMi44ODIwOCA1LjgzNzk1IDIuMjEyNDQgNi41MDc1OUMxLjU0Mjc5IDcuMTc3MjMgMS41NDI3OSA4LjI2NDczIDIuMjEyNDQgOC45MzQzN0wxMC43ODM5IDE3LjUwNThMMTAuNzg5MiAxNy41MDA0WiIgZmlsbD0iIzAwNEM3MSIvPg0KPC9zdmc+DQo=";
10634  const _hoisted_1$5 = ["for"];
10635  const _hoisted_2$4 = ["id", "name", "value"];
10636  const _hoisted_3$4 = ["value", "data-url", "selected"];
10637  const _sfc_main$5 = /* @__PURE__ */ defineComponent({
10638    __name: "TabHorizontalMobile",
10639    props: {
10640      classes: {
10641        type: String,
10642        default: ""
10643      },
10644      label: {
10645        type: String,
10646        default: ""
10647      },
10648      name: {
10649        type: String,
10650        default: ""
10651      },
10652      tabs: {
10653        type: Array,
10654        default: () => []
10655      },
10656      selected: {
10657        type: Object,
10658        default: null
10659      }
10660    },
10661    emits: ["change"],
10662    setup(__props) {
10663      return (_ctx, _cache) => {
10664        return __props.tabs ? (openBlock(), createElementBlock("div", {
10665          key: 0,
10666          class: normalizeClass(["c-tabs-horizontal-mobile", __props.classes])
10667        }, [
10668          createBaseVNode("label", {
10669            class: "c-tabs-horizontal-mobile__label",
10670            for: __props.name
10671          }, toDisplayString(__props.label), 9, _hoisted_1$5),
10672          createBaseVNode("select", {
10673            id: __props.name,
10674            name: __props.name,
10675            class: "c-tabs-horizontal-mobile__select",
10676            onChange: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("change", $event)),
10677            value: __props.selected.text
10678          }, [
10679            (openBlock(true), createElementBlock(Fragment, null, renderList(__props.tabs, (tab, index2) => {
10680              return openBlock(), createElementBlock("option", {
10681                key: index2,
10682                value: tab.text,
10683                "data-url": tab.url,
10684                selected: tab.active
10685              }, toDisplayString(tab.text), 9, _hoisted_3$4);
10686            }), 128))
10687          ], 40, _hoisted_2$4),
10688          _cache[1] || (_cache[1] = createBaseVNode("img", {
10689            class: "c-tabs-horizontal-mobile__icon",
10690            src: _imports_0$1,
10691            alt: "down"
10692          }, null, -1))
10693        ], 2)) : createCommentVNode("", true);
10694      };
10695    }
10696  });
10697  const _hoisted_1$4 = { key: 0 };
10698  const _sfc_main$4 = /* @__PURE__ */ defineComponent({
10699    __name: "TabsHorizontal",
10700    props: /* @__PURE__ */ mergeModels({
10701      tabs: {
10702        type: Array,
10703        required: true
10704      },
10705      classes: {
10706        type: String,
10707        default: ""
10708      },
10709      name: {
10710        type: String,
10711        default: ""
10712      },
10713      label: {
10714        type: String,
10715        default: ""
10716      }
10717    }, {
10718      "modelValue": {
10719        type: Number,
10720        required: true
10721      },
10722      "modelModifiers": {}
10723    }),
10724    emits: ["update:modelValue"],
10725    setup(__props) {
10726      const selectedIndex = useModel(__props, "modelValue");
10727      const props = __props;
10728      const onMobileTabChange = (event) => {
10729        const target = event.target;
10730        const value = target.value;
10731        selectedIndex.value = props.tabs.findIndex((tab) => tab.text === value);
10732      };
10733      return (_ctx, _cache) => {
10734        return __props.tabs ? (openBlock(), createElementBlock("div", _hoisted_1$4, [
10735          createBaseVNode("ul", {
10736            class: normalizeClass(["c-tabs-horizontal", __props.classes])
10737          }, [
10738            (openBlock(true), createElementBlock(Fragment, null, renderList(__props.tabs, (item, index2) => {
10739              return openBlock(), createElementBlock("li", {
10740                key: index2,
10741                class: "c-tabs-horizontal__item"
10742              }, [
10743                createVNode(_sfc_main$6, {
10744                  url: item.url,
10745                  target: item.target,
10746                  active: selectedIndex.value === index2,
10747                  text: item.text,
10748                  classes: item.classes,
10749                  onClick: ($event) => selectedIndex.value = index2
10750                }, null, 8, ["url", "target", "active", "text", "classes", "onClick"])
10751              ]);
10752            }), 128))
10753          ], 2),
10754          createVNode(_sfc_main$5, {
10755            tabs: __props.tabs,
10756            onChange: onMobileTabChange,
10757            selected: __props.tabs[selectedIndex.value],
10758            name: __props.name,
10759            label: __props.label
10760          }, null, 8, ["tabs", "selected", "name", "label"])
10761        ])) : createCommentVNode("", true);
10762      };
10763    }
10764  });
10765  const _hoisted_1$3 = {
10766    key: 0,
10767    class: "c-picture c-card-resource__picture"
10768  };
10769  const _hoisted_2$3 = ["src", "alt"];
10770  const _hoisted_3$3 = { class: "c-card-resource__content" };
10771  const _hoisted_4$2 = { class: "c-card-resource__header" };
10772  const _hoisted_5$2 = { class: "c-tagline" };
10773  const _hoisted_6$1 = { class: "c-card-resource__title" };
10774  const _hoisted_7 = { class: "c-card-resource__text" };
10775  const _hoisted_8 = ["target", "href"];
10776  const _hoisted_9 = {
10777    key: 0,
10778    class: "border-neutral-10 my-6 vp7:my-10 last:mt-6 last:mb-0 vp7:last:mt-10 vp7:last:mb-0"
10779  };
10780  const _sfc_main$3 = /* @__PURE__ */ defineComponent({
10781    __name: "Card",
10782    props: {
10783      imageSrc: {
10784        type: String,
10785        default: ""
10786      },
10787      imageAlt: {
10788        type: String
10789      },
10790      title: {
10791        type: String
10792      },
10793      text: {
10794        type: String
10795      },
10796      tagline: {
10797        type: String,
10798        required: false
10799      },
10800      link: {
10801        type: Object
10802      },
10803      showDivider: {
10804        type: Boolean,
10805        default: true
10806      },
10807      useHorizontalLayout: {
10808        type: Boolean,
10809        default: false
10810      }
10811    },
10812    setup(__props) {
10813      return (_ctx, _cache) => {
10814        return openBlock(), createElementBlock(Fragment, null, [
10815          createBaseVNode("div", {
10816            class: normalizeClass(["c-card-resource", { "c-card-resource--vertical": !__props.useHorizontalLayout }])
10817          }, [
10818            __props.imageSrc ? (openBlock(), createElementBlock("picture", _hoisted_1$3, [
10819              createBaseVNode("img", {
10820                src: __props.imageSrc,
10821                alt: __props.imageAlt,
10822                loading: "lazy",
10823                class: "c-picture c-card-resource__picture"
10824              }, null, 8, _hoisted_2$3)
10825            ])) : createCommentVNode("", true),
10826            createBaseVNode("div", _hoisted_3$3, [
10827              createBaseVNode("div", _hoisted_4$2, [
10828                createBaseVNode("div", _hoisted_5$2, toDisplayString(__props.tagline), 1),
10829                createBaseVNode("h3", _hoisted_6$1, toDisplayString(__props.title), 1)
10830              ]),
10831              createBaseVNode("p", _hoisted_7, toDisplayString(__props.text), 1),
10832              __props.link ? (openBlock(), createElementBlock("a", {
10833                key: 0,
10834                class: "c-link",
10835                target: __props.link.target,
10836                href: __props.link.url
10837              }, toDisplayString(__props.link.text), 9, _hoisted_8)) : createCommentVNode("", true)
10838            ])
10839          ], 2),
10840          __props.showDivider ? (openBlock(), createElementBlock("hr", _hoisted_9)) : createCommentVNode("", true)
10841        ], 64);
10842      };
10843    }
10844  });
10845  const _imports_0 = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGQ9Ik03LjIxMDk4IDEwLjc5MDdDNi41NDEzNCAxMS40NjAzIDYuNTQxMzQgMTIuNTQ3OCA3LjIxMDk4IDEzLjIxNzVMMTUuNzgyNCAyMS43ODg5QzE2LjQ1MiAyMi40NTg1IDE3LjUzOTUgMjIuNDU4NSAxOC4yMDkyIDIxLjc4ODlDMTguODc4OCAyMS4xMTkzIDE4Ljg3ODggMjAuMDMxOCAxOC4yMDkyIDE5LjM2MjFMMTAuODQ4NSAxMi4wMDE0TDE4LjIwMzggNC42NDA2OUMxOC44NzM1IDMuOTcxMDQgMTguODczNSAyLjg4MzU0IDE4LjIwMzggMi4yMTM5QzE3LjUzNDIgMS41NDQyNiAxNi40NDY3IDEuNTQ0MjYgMTUuNzc3MSAyLjIxMzlMNy4yMDU2MiAxMC43ODUzTDcuMjEwOTggMTAuNzkwN1oiIGZpbGw9IiMwMDRDNzEiLz4NCjwvc3ZnPg0K";
10846  const _imports_1 = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGQ9Ik0xOC4yMDk0IDEzLjIxMjFDMTguODc5MSAxMi41NDI1IDE4Ljg3OTEgMTEuNDU1IDE4LjIwOTQgMTAuNzg1M0w5LjYzOCAyLjIxMzlDOC45NjgzNiAxLjU0NDI2IDcuODgwODYgMS41NDQyNiA3LjIxMTIyIDIuMjEzOUM2LjU0MTU3IDIuODgzNTUgNi41NDE1NyAzLjk3MTA1IDcuMjExMjIgNC42NDA2OUwxNC41NzE5IDEyLjAwMTRMNy4yMTY1NyAxOS4zNjIxQzYuNTQ2OTMgMjAuMDMxOCA2LjU0NjkzIDIxLjExOTMgNy4yMTY1NyAyMS43ODg5QzcuODg2MjIgMjIuNDU4NSA4Ljk3MzcyIDIyLjQ1ODUgOS42NDMzNiAyMS43ODg5TDE4LjIxNDggMTMuMjE3NUwxOC4yMDk0IDEzLjIxMjFaIiBmaWxsPSIjMDA0QzcxIi8+DQo8L3N2Zz4NCg==";
10847  const _hoisted_1$2 = {
10848    key: 0,
10849    class: "c-pagination"
10850  };
10851  const _hoisted_2$2 = { class: "c-pagination__items" };
10852  const _hoisted_3$2 = ["onClick"];
10853  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
10854    __name: "Pagination",
10855    props: /* @__PURE__ */ mergeModels({
10856      itemsPerPage: {
10857        type: Number,
10858        default: 0
10859      },
10860      amountOfPages: {
10861        type: Number,
10862        default: 0
10863      }
10864    }, {
10865      "modelValue": {
10866        type: Number,
10867        required: true
10868      },
10869      "modelModifiers": {}
10870    }),
10871    emits: ["update:modelValue"],
10872    setup(__props) {
10873      const currentPage = useModel(__props, "modelValue");
10874      const props = __props;
10875      const pageCount = computed(() => Math.ceil(props.amountOfPages / props.itemsPerPage));
10876      return (_ctx, _cache) => {
10877        return pageCount.value > 1 ? (openBlock(), createElementBlock("div", _hoisted_1$2, [
10878          currentPage.value > 1 ? (openBlock(), createElementBlock("button", {
10879            key: 0,
10880            class: "c-pagination__icon",
10881            onClick: _cache[0] || (_cache[0] = () => {
10882              currentPage.value = currentPage.value -= 1;
10883            })
10884          }, _cache[2] || (_cache[2] = [
10885            createBaseVNode("img", {
10886              src: _imports_0,
10887              alt: "previous",
10888              class: "c-icon--small"
10889            }, null, -1)
10890          ]))) : createCommentVNode("", true),
10891          createBaseVNode("div", _hoisted_2$2, [
10892            (openBlock(true), createElementBlock(Fragment, null, renderList(pageCount.value, (p2) => {
10893              return openBlock(), createElementBlock("button", {
10894                key: p2,
10895                class: normalizeClass(["c-pagination__item", { active: p2 === currentPage.value }]),
10896                onClick: () => {
10897                  currentPage.value = p2;
10898                }
10899              }, toDisplayString(p2), 11, _hoisted_3$2);
10900            }), 128))
10901          ]),
10902          currentPage.value < pageCount.value ? (openBlock(), createElementBlock("a", {
10903            key: 1,
10904            class: "c-pagination__icon",
10905            onClick: _cache[1] || (_cache[1] = ($event) => currentPage.value += 1)
10906          }, _cache[3] || (_cache[3] = [
10907            createBaseVNode("img", {
10908              src: _imports_1,
10909              alt: "next",
10910              class: "c-icon--small"
10911            }, null, -1)
10912          ]))) : createCommentVNode("", true)
10913        ])) : createCommentVNode("", true);
10914      };
10915    }
10916  });
10917  const _hoisted_1$1 = { class: "container container-space-x flex flex-col gap-10" };
10918  const _hoisted_2$1 = {
10919    key: 0,
10920    "data-aos": "fade-up"
10921  };
10922  const _hoisted_3$1 = {
10923    key: 1,
10924    "data-aos": "fade-up"
10925  };
10926  const _hoisted_4$1 = {
10927    class: "mt-6 vp7:my-10",
10928    ref: "cardsContainer"
10929  };
10930  const _hoisted_5$1 = {
10931    class: "card-container container-col8",
10932    "data-aos": "fade-up"
10933  };
10934  const _hoisted_6 = { class: "flex flex-col items-center mt-6" };
10935  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
10936    __name: "TabCardResources",
10937    props: {
10938      classes: {
10939        type: String,
10940        default: ""
10941      },
10942      header: {
10943        type: Object,
10944        default: null
10945      },
10946      label: {
10947        type: String,
10948        default: ""
10949      },
10950      name: {
10951        type: String,
10952        default: ""
10953      },
10954      tabs: {
10955        type: Array,
10956        default: () => []
10957      },
10958      itemsPerPage: {
10959        type: Number,
10960        default: 5
10961      },
10962      content: {
10963        type: Array,
10964        default: () => []
10965      }
10966    },
10967    setup(__props) {
10968      const props = __props;
10969      const selectedIndex = ref(0);
10970      const selectedPage = ref(1);
10971      const top = ref(null);
10972      const amountOfPages = computed(() => {
10973        if (props.content.length === 0) {
10974          return 0;
10975        }
10976        return props.content[selectedIndex.value].length;
10977      });
10978      const cards = computed(() => {
10979        return props.content[selectedIndex.value];
10980      });
10981      const pagedCards = computed(() => {
10982        if (!cards.value || cards.value.length === 0) {
10983          return [];
10984        }
10985        if (props.itemsPerPage === 0) {
10986          return cards.value;
10987        }
10988        const start = (selectedPage.value - 1) * props.itemsPerPage;
10989        const end = start + props.itemsPerPage;
10990        return cards.value.slice(start, end);
10991      });
10992      watch(selectedIndex, () => {
10993        selectedPage.value = 1;
10994      });
10995      watch(selectedPage, () => {
10996        nextTick(() => {
10997          if (top.value) {
10998            const topPos = top.value.offsetTop;
10999            window.scrollTo({ top: topPos, behavior: "smooth" });
11000          }
11001        });
11002      });
11003      return (_ctx, _cache) => {
11004        var _a;
11005        return __props.tabs ? (openBlock(), createElementBlock("div", {
11006          key: 0,
11007          class: "section-lg",
11008          ref_key: "top",
11009          ref: top
11010        }, [
11011          createBaseVNode("div", _hoisted_1$1, [
11012            __props.header ? (openBlock(), createElementBlock("div", _hoisted_2$1, [
11013              createVNode(_sfc_main$7, {
11014                title: __props.header.title,
11015                text: __props.header.text,
11016                size: __props.header.size.toString(),
11017                center: __props.header.center
11018              }, null, 8, ["title", "text", "size", "center"])
11019            ])) : createCommentVNode("", true),
11020            ((_a = __props.tabs) == null ? void 0 : _a.length) > 0 ? (openBlock(), createElementBlock("div", _hoisted_3$1, [
11021              createVNode(_sfc_main$4, {
11022                tabs: __props.tabs,
11023                name: __props.name,
11024                label: __props.label,
11025                modelValue: selectedIndex.value,
11026                "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => selectedIndex.value = $event)
11027              }, null, 8, ["tabs", "name", "label", "modelValue"]),
11028              createBaseVNode("div", _hoisted_4$1, [
11029                createBaseVNode("div", _hoisted_5$1, [
11030                  (openBlock(true), createElementBlock(Fragment, null, renderList(pagedCards.value, (card) => {
11031                    return openBlock(), createBlock(_sfc_main$3, {
11032                      key: card.key,
11033                      imageAlt: card.alt,
11034                      imageSrc: card.src,
11035                      title: card.title,
11036                      text: card.text,
11037                      link: card.link.link
11038                    }, null, 8, ["imageAlt", "imageSrc", "title", "text", "link"]);
11039                  }), 128))
11040                ]),
11041                createBaseVNode("div", _hoisted_6, [
11042                  __props.itemsPerPage && __props.itemsPerPage != 0 ? (openBlock(), createBlock(_sfc_main$2, {
11043                    key: 0,
11044                    modelValue: selectedPage.value,
11045                    "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => selectedPage.value = $event),
11046                    "items-per-page": __props.itemsPerPage,
11047                    "amount-of-pages": amountOfPages.value
11048                  }, null, 8, ["modelValue", "items-per-page", "amount-of-pages"])) : createCommentVNode("", true)
11049                ])
11050              ], 512)
11051            ])) : createCommentVNode("", true)
11052          ])
11053        ], 512)) : createCommentVNode("", true);
11054      };
11055    }
11056  });
11057  const _hoisted_1 = { class: "container container-space-x flex flex-col gap-10" };
11058  const _hoisted_2 = {
11059    key: 0,
11060    "data-aos": "fade-up"
11061  };
11062  const _hoisted_3 = { key: 1 };
11063  const _hoisted_4 = {
11064    key: 0,
11065    class: "container-col8",
11066    "data-aos": "fade-up"
11067  };
11068  const _hoisted_5 = { class: "flex flex-col items-center mt-6" };
11069  const _sfc_main = /* @__PURE__ */ defineComponent({
11070    __name: "CardResources",
11071    props: {
11072      classes: {
11073        type: String,
11074        default: ""
11075      },
11076      header: {
11077        type: Object,
11078        default: null
11079      },
11080      itemsPerPage: {
11081        type: Number,
11082        default: 0
11083      },
11084      content: {
11085        type: Array,
11086        default: () => []
11087      },
11088      cardsPerRow: {
11089        type: Number,
11090        default: 3
11091      },
11092      isVertical: {
11093        type: Boolean,
11094        default: false
11095      }
11096    },
11097    setup(__props) {
11098      const props = __props;
11099      const selectedPage = ref(1);
11100      const top = ref(null);
11101      const totalItems = computed(() => {
11102        var _a;
11103        return ((_a = props.content) == null ? void 0 : _a.length) ?? 0;
11104      });
11105      const gridColsClass = computed(() => {
11106        const value = Math.min(Math.max(props.cardsPerRow, 1), 4);
11107        switch (value) {
11108          case 1:
11109            return "vp7:grid-cols-1";
11110          case 2:
11111            return "vp7:grid-cols-2";
11112          case 4:
11113            return "vp7:grid-cols-4";
11114          default:
11115            return "vp7:grid-cols-3";
11116        }
11117      });
11118      const pagedCards = computed(() => {
11119        if (!props.content || props.content.length === 0) {
11120          return [];
11121        }
11122        if (props.itemsPerPage === 0) {
11123          return props.content;
11124        }
11125        const start = (selectedPage.value - 1) * props.itemsPerPage;
11126        const end = start + props.itemsPerPage;
11127        return props.content.slice(start, end);
11128      });
11129      watch(() => props.itemsPerPage, () => {
11130        selectedPage.value = 1;
11131      });
11132      watch(() => {
11133        var _a;
11134        return (_a = props.content) == null ? void 0 : _a.length;
11135      }, () => {
11136        selectedPage.value = 1;
11137      });
11138      watch(selectedPage, () => {
11139        nextTick(() => {
11140          if (top.value) {
11141            const topPos = top.value.offsetTop;
11142            window.scrollTo({ top: topPos, behavior: "smooth" });
11143          }
11144        });
11145      });
11146      return (_ctx, _cache) => {
11147        return openBlock(), createElementBlock("div", {
11148          class: normalizeClass(__props.classes || "section-lg"),
11149          ref_key: "top",
11150          ref: top
11151        }, [
11152          createBaseVNode("div", _hoisted_1, [
11153            __props.header ? (openBlock(), createElementBlock("div", _hoisted_2, [
11154              createVNode(_sfc_main$7, {
11155                title: __props.header.title,
11156                text: __props.header.text,
11157                size: __props.header.size.toString(),
11158                center: __props.header.center
11159              }, null, 8, ["title", "text", "size", "center"])
11160            ])) : createCommentVNode("", true),
11161            __props.content && __props.content.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_3, [
11162              __props.isVertical ? (openBlock(), createElementBlock("div", _hoisted_4, [
11163                (openBlock(true), createElementBlock(Fragment, null, renderList(pagedCards.value, (card) => {
11164                  var _a;
11165                  return openBlock(), createBlock(_sfc_main$3, {
11166                    key: card.key,
11167                    imageAlt: card.alt,
11168                    imageSrc: card.src,
11169                    title: card.title,
11170                    text: card.text,
11171                    tagline: (_a = card.category) == null ? void 0 : _a.text,
11172                    link: card.link.link,
11173                    useHorizontalLayout: true
11174                  }, null, 8, ["imageAlt", "imageSrc", "title", "text", "tagline", "link"]);
11175                }), 128))
11176              ])) : (openBlock(), createElementBlock("div", {
11177                key: 1,
11178                class: normalizeClass(["grid grid-cols-1 vp5:grid-cols-2 gap-10", gridColsClass.value]),
11179                "data-aos": "fade-up"
11180              }, [
11181                (openBlock(true), createElementBlock(Fragment, null, renderList(pagedCards.value, (card) => {
11182                  var _a;
11183                  return openBlock(), createBlock(_sfc_main$3, {
11184                    key: card.key,
11185                    imageAlt: card.alt,
11186                    imageSrc: card.src,
11187                    title: card.title,
11188                    text: card.text,
11189                    tagline: (_a = card.category) == null ? void 0 : _a.text,
11190                    link: card.link.link,
11191                    showDivider: false
11192                  }, null, 8, ["imageAlt", "imageSrc", "title", "text", "tagline", "link"]);
11193                }), 128))
11194              ], 2)),
11195              createBaseVNode("div", _hoisted_5, [
11196                __props.itemsPerPage && __props.itemsPerPage !== 0 ? (openBlock(), createBlock(_sfc_main$2, {
11197                  key: 0,
11198                  modelValue: selectedPage.value,
11199                  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => selectedPage.value = $event),
11200                  "items-per-page": __props.itemsPerPage,
11201                  "amount-of-pages": totalItems.value
11202                }, null, 8, ["modelValue", "items-per-page", "amount-of-pages"])) : createCommentVNode("", true)
11203              ])
11204            ])) : createCommentVNode("", true)
11205          ])
11206        ], 2);
11207      };
11208    }
11209  });
11210  const index = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11211    __proto__: null,
11212    CardResources: _sfc_main,
11213    TabCardResources: _sfc_main$1,
11214    TestFeature: _sfc_main$8
11215  }, Symbol.toStringTag, { value: "Module" }));
11216  /**
11217  * @vue/server-renderer v3.5.12
11218  * (c) 2018-present Yuxi (Evan) You and Vue contributors
11219  * @license MIT
11220  **/
11221  const shouldIgnoreProp = /* @__PURE__ */ makeMap(
11222    `,key,ref,innerHTML,textContent,ref_key,ref_for`
11223  );
11224  function ssrRenderAttrs(props, tag) {
11225    let ret = "";
11226    for (const key in props) {
11227      if (shouldIgnoreProp(key) || isOn(key) || tag === "textarea" && key === "value") {
11228        continue;
11229      }
11230      const value = props[key];
11231      if (key === "class") {
11232        ret += ` class="${ssrRenderClass(value)}"`;
11233      } else if (key === "style") {
11234        ret += ` style="${ssrRenderStyle(value)}"`;
11235      } else if (key === "className") {
11236        ret += ` class="${String(value)}"`;
11237      } else {
11238        ret += ssrRenderDynamicAttr(key, value, tag);
11239      }
11240    }
11241    return ret;
11242  }
11243  function ssrRenderDynamicAttr(key, value, tag) {
11244    if (!isRenderableAttrValue(value)) {
11245      return ``;
11246    }
11247    const attrKey = tag && (tag.indexOf("-") > 0 || isSVGTag(tag)) ? key : propsToAttrMap[key] || key.toLowerCase();
11248    if (isBooleanAttr(attrKey)) {
11249      return includeBooleanAttr(value) ? ` ${attrKey}` : ``;
11250    } else if (isSSRSafeAttrName(attrKey)) {
11251      return value === "" ? ` ${attrKey}` : ` ${attrKey}="${escapeHtml(value)}"`;
11252    } else {
11253      console.warn(
11254        `[@vue/server-renderer] Skipped rendering unsafe attribute name: ${attrKey}`
11255      );
11256      return ``;
11257    }
11258  }
11259  function ssrRenderClass(raw) {
11260    return escapeHtml(normalizeClass(raw));
11261  }
11262  function ssrRenderStyle(raw) {
11263    if (!raw) {
11264      return "";
11265    }
11266    if (isString(raw)) {
11267      return escapeHtml(raw);
11268    }
11269    const styles = normalizeStyle(raw);
11270    return escapeHtml(stringifyStyle(styles));
11271  }
11272  function ssrRenderTeleport(parentPush, contentRenderFn, target, disabled, parentComponent) {
11273    parentPush("<!--teleport start-->");
11274    const context = parentComponent.appContext.provides[ssrContextKey];
11275    const teleportBuffers = context.__teleportBuffers || (context.__teleportBuffers = {});
11276    const targetBuffer = teleportBuffers[target] || (teleportBuffers[target] = []);
11277    const bufferIndex = targetBuffer.length;
11278    let teleportContent;
11279    if (disabled) {
11280      contentRenderFn(parentPush);
11281      teleportContent = `<!--teleport start anchor--><!--teleport anchor-->`;
11282    } else {
11283      const { getBuffer, push } = createBuffer();
11284      push(`<!--teleport start anchor-->`);
11285      contentRenderFn(push);
11286      push(`<!--teleport anchor-->`);
11287      teleportContent = getBuffer();
11288    }
11289    targetBuffer.splice(bufferIndex, 0, teleportContent);
11290    parentPush("<!--teleport end-->");
11291  }
11292  {
11293    const g = getGlobalThis();
11294    const registerGlobalSetter = (key, setter) => {
11295      let setters;
11296      if (!(setters = g[key]))
11297        setters = g[key] = [];
11298      setters.push(setter);
11299      return (v) => {
11300        if (setters.length > 1)
11301          setters.forEach((set) => set(v));
11302        else
11303          setters[0](v);
11304      };
11305    };
11306    registerGlobalSetter(
11307      `__VUE_INSTANCE_SETTERS__`,
11308      (v) => v
11309    );
11310    registerGlobalSetter(
11311      `__VUE_SSR_SETTERS__`,
11312      (v) => v
11313    );
11314  }
11315  function ssrCompile(template, instance) {
11316    {
11317      throw new Error(
11318        `On-the-fly template compilation is not supported in the ESM build of @vue/server-renderer. All templates must be pre-compiled into render functions.`
11319      );
11320    }
11321  }
11322  const {
11323    createComponentInstance,
11324    setCurrentRenderingInstance,
11325    setupComponent,
11326    renderComponentRoot,
11327    normalizeVNode,
11328    pushWarningContext,
11329    popWarningContext
11330  } = ssrUtils;
11331  function createBuffer() {
11332    let appendable = false;
11333    const buffer2 = [];
11334    return {
11335      getBuffer() {
11336        return buffer2;
11337      },
11338      push(item) {
11339        const isStringItem = isString(item);
11340        if (appendable && isStringItem) {
11341          buffer2[buffer2.length - 1] += item;
11342          return;
11343        }
11344        buffer2.push(item);
11345        appendable = isStringItem;
11346        if (isPromise(item) || isArray(item) && item.hasAsync) {
11347          buffer2.hasAsync = true;
11348        }
11349      }
11350    };
11351  }
11352  function renderComponentVNode(vnode, parentComponent = null, slotScopeId) {
11353    const instance = vnode.component = createComponentInstance(
11354      vnode,
11355      parentComponent,
11356      null
11357    );
11358    const res = setupComponent(
11359      instance,
11360      true
11361      /* isSSR */
11362    );
11363    const hasAsyncSetup = isPromise(res);
11364    let prefetches = instance.sp;
11365    if (hasAsyncSetup || prefetches) {
11366      const p2 = Promise.resolve(res).then(() => {
11367        if (hasAsyncSetup)
11368          prefetches = instance.sp;
11369        if (prefetches) {
11370          return Promise.all(
11371            prefetches.map((prefetch) => prefetch.call(instance.proxy))
11372          );
11373        }
11374      }).catch(NOOP);
11375      return p2.then(() => renderComponentSubTree(instance, slotScopeId));
11376    } else {
11377      return renderComponentSubTree(instance, slotScopeId);
11378    }
11379  }
11380  function renderComponentSubTree(instance, slotScopeId) {
11381    const comp = instance.type;
11382    const { getBuffer, push } = createBuffer();
11383    if (isFunction(comp)) {
11384      let root = renderComponentRoot(instance);
11385      if (!comp.props) {
11386        for (const key in instance.attrs) {
11387          if (key.startsWith(`data-v-`)) {
11388            (root.props || (root.props = {}))[key] = ``;
11389          }
11390        }
11391      }
11392      renderVNode(push, instance.subTree = root, instance, slotScopeId);
11393    } else {
11394      if ((!instance.render || instance.render === NOOP) && !instance.ssrRender && !comp.ssrRender && isString(comp.template)) {
11395        comp.ssrRender = ssrCompile(comp.template);
11396      }
11397      const ssrRender = instance.ssrRender || comp.ssrRender;
11398      if (ssrRender) {
11399        let attrs = instance.inheritAttrs !== false ? instance.attrs : void 0;
11400        let hasCloned = false;
11401        let cur = instance;
11402        while (true) {
11403          const scopeId = cur.vnode.scopeId;
11404          if (scopeId) {
11405            if (!hasCloned) {
11406              attrs = { ...attrs };
11407              hasCloned = true;
11408            }
11409            attrs[scopeId] = "";
11410          }
11411          const parent = cur.parent;
11412          if (parent && parent.subTree && parent.subTree === cur.vnode) {
11413            cur = parent;
11414          } else {
11415            break;
11416          }
11417        }
11418        if (slotScopeId) {
11419          if (!hasCloned)
11420            attrs = { ...attrs };
11421          const slotScopeIdList = slotScopeId.trim().split(" ");
11422          for (let i = 0; i < slotScopeIdList.length; i++) {
11423            attrs[slotScopeIdList[i]] = "";
11424          }
11425        }
11426        const prev = setCurrentRenderingInstance(instance);
11427        try {
11428          ssrRender(
11429            instance.proxy,
11430            push,
11431            instance,
11432            attrs,
11433            // compiler-optimized bindings
11434            instance.props,
11435            instance.setupState,
11436            instance.data,
11437            instance.ctx
11438          );
11439        } finally {
11440          setCurrentRenderingInstance(prev);
11441        }
11442      } else if (instance.render && instance.render !== NOOP) {
11443        renderVNode(
11444          push,
11445          instance.subTree = renderComponentRoot(instance),
11446          instance,
11447          slotScopeId
11448        );
11449      } else {
11450        comp.name || comp.__file || `<Anonymous>`;
11451        push(`<!---->`);
11452      }
11453    }
11454    return getBuffer();
11455  }
11456  function renderVNode(push, vnode, parentComponent, slotScopeId) {
11457    const { type, shapeFlag, children, dirs, props } = vnode;
11458    if (dirs) {
11459      vnode.props = applySSRDirectives(vnode, props, dirs);
11460    }
11461    switch (type) {
11462      case Text:
11463        push(escapeHtml(children));
11464        break;
11465      case Comment:
11466        push(
11467          children ? `<!--${escapeHtmlComment(children)}-->` : `<!---->`
11468        );
11469        break;
11470      case Static:
11471        push(children);
11472        break;
11473      case Fragment:
11474        if (vnode.slotScopeIds) {
11475          slotScopeId = (slotScopeId ? slotScopeId + " " : "") + vnode.slotScopeIds.join(" ");
11476        }
11477        push(`<!--[-->`);
11478        renderVNodeChildren(
11479          push,
11480          children,
11481          parentComponent,
11482          slotScopeId
11483        );
11484        push(`<!--]-->`);
11485        break;
11486      default:
11487        if (shapeFlag & 1) {
11488          renderElementVNode(push, vnode, parentComponent, slotScopeId);
11489        } else if (shapeFlag & 6) {
11490          push(renderComponentVNode(vnode, parentComponent, slotScopeId));
11491        } else if (shapeFlag & 64) {
11492          renderTeleportVNode(push, vnode, parentComponent, slotScopeId);
11493        } else if (shapeFlag & 128) {
11494          renderVNode(push, vnode.ssContent, parentComponent, slotScopeId);
11495        } else
11496          ;
11497    }
11498  }
11499  function renderVNodeChildren(push, children, parentComponent, slotScopeId) {
11500    for (let i = 0; i < children.length; i++) {
11501      renderVNode(push, normalizeVNode(children[i]), parentComponent, slotScopeId);
11502    }
11503  }
11504  function renderElementVNode(push, vnode, parentComponent, slotScopeId) {
11505    const tag = vnode.type;
11506    let { props, children, shapeFlag, scopeId } = vnode;
11507    let openTag = `<${tag}`;
11508    if (props) {
11509      openTag += ssrRenderAttrs(props, tag);
11510    }
11511    if (scopeId) {
11512      openTag += ` ${scopeId}`;
11513    }
11514    let curParent = parentComponent;
11515    let curVnode = vnode;
11516    while (curParent && curVnode === curParent.subTree) {
11517      curVnode = curParent.vnode;
11518      if (curVnode.scopeId) {
11519        openTag += ` ${curVnode.scopeId}`;
11520      }
11521      curParent = curParent.parent;
11522    }
11523    if (slotScopeId) {
11524      openTag += ` ${slotScopeId}`;
11525    }
11526    push(openTag + `>`);
11527    if (!isVoidTag(tag)) {
11528      let hasChildrenOverride = false;
11529      if (props) {
11530        if (props.innerHTML) {
11531          hasChildrenOverride = true;
11532          push(props.innerHTML);
11533        } else if (props.textContent) {
11534          hasChildrenOverride = true;
11535          push(escapeHtml(props.textContent));
11536        } else if (tag === "textarea" && props.value) {
11537          hasChildrenOverride = true;
11538          push(escapeHtml(props.value));
11539        }
11540      }
11541      if (!hasChildrenOverride) {
11542        if (shapeFlag & 8) {
11543          push(escapeHtml(children));
11544        } else if (shapeFlag & 16) {
11545          renderVNodeChildren(
11546            push,
11547            children,
11548            parentComponent,
11549            slotScopeId
11550          );
11551        }
11552      }
11553      push(`</${tag}>`);
11554    }
11555  }
11556  function applySSRDirectives(vnode, rawProps, dirs) {
11557    const toMerge = [];
11558    for (let i = 0; i < dirs.length; i++) {
11559      const binding = dirs[i];
11560      const {
11561        dir: { getSSRProps }
11562      } = binding;
11563      if (getSSRProps) {
11564        const props = getSSRProps(binding, vnode);
11565        if (props)
11566          toMerge.push(props);
11567      }
11568    }
11569    return mergeProps(rawProps || {}, ...toMerge);
11570  }
11571  function renderTeleportVNode(push, vnode, parentComponent, slotScopeId) {
11572    const target = vnode.props && vnode.props.to;
11573    const disabled = vnode.props && vnode.props.disabled;
11574    if (!target) {
11575      return [];
11576    }
11577    if (!isString(target)) {
11578      return [];
11579    }
11580    ssrRenderTeleport(
11581      push,
11582      (push2) => {
11583        renderVNodeChildren(
11584          push2,
11585          vnode.children,
11586          parentComponent,
11587          slotScopeId
11588        );
11589      },
11590      target,
11591      disabled || disabled === "",
11592      parentComponent
11593    );
11594  }
11595  const { isVNode: isVNode$1 } = ssrUtils;
11596  function nestedUnrollBuffer(buffer2, parentRet, startIndex) {
11597    if (!buffer2.hasAsync) {
11598      return parentRet + unrollBufferSync$1(buffer2);
11599    }
11600    let ret = parentRet;
11601    for (let i = startIndex; i < buffer2.length; i += 1) {
11602      const item = buffer2[i];
11603      if (isString(item)) {
11604        ret += item;
11605        continue;
11606      }
11607      if (isPromise(item)) {
11608        return item.then((nestedItem) => {
11609          buffer2[i] = nestedItem;
11610          return nestedUnrollBuffer(buffer2, ret, i);
11611        });
11612      }
11613      const result = nestedUnrollBuffer(item, ret, 0);
11614      if (isPromise(result)) {
11615        return result.then((nestedItem) => {
11616          buffer2[i] = nestedItem;
11617          return nestedUnrollBuffer(buffer2, "", i);
11618        });
11619      }
11620      ret = result;
11621    }
11622    return ret;
11623  }
11624  function unrollBuffer$1(buffer2) {
11625    return nestedUnrollBuffer(buffer2, "", 0);
11626  }
11627  function unrollBufferSync$1(buffer2) {
11628    let ret = "";
11629    for (let i = 0; i < buffer2.length; i++) {
11630      let item = buffer2[i];
11631      if (isString(item)) {
11632        ret += item;
11633      } else {
11634        ret += unrollBufferSync$1(item);
11635      }
11636    }
11637    return ret;
11638  }
11639  async function renderToString(input, context = {}) {
11640    if (isVNode$1(input)) {
11641      return renderToString(createApp({ render: () => input }), context);
11642    }
11643    const vnode = createVNode(input._component, input._props);
11644    vnode.appContext = input._context;
11645    input.provide(ssrContextKey, context);
11646    const buffer2 = await renderComponentVNode(vnode);
11647    const result = await unrollBuffer$1(buffer2);
11648    await resolveTeleports(context);
11649    if (context.__watcherHandles) {
11650      for (const unwatch of context.__watcherHandles) {
11651        unwatch();
11652      }
11653    }
11654    return result;
11655  }
11656  async function resolveTeleports(context) {
11657    if (context.__teleportBuffers) {
11658      context.teleports = context.teleports || {};
11659      for (const key in context.__teleportBuffers) {
11660        context.teleports[key] = await unrollBuffer$1(
11661          await Promise.all([context.__teleportBuffers[key]])
11662        );
11663      }
11664    }
11665  }
11666  initDirectivesForSSR();
11667  exports2.Components = index;
11668  exports2.Vue = vue_runtime_esmBundler;
11669  exports2.renderToString = renderToString;
11670  Object.defineProperty(exports2, Symbol.toStringTag, { value: "Module" });
11671});

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.