/** * @vue/shared v3.5.32 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/ // @__NO_SIDE_EFFECTS__ function makeMap(str) { const map2 = /* @__PURE__ */ Object.create(null); for (const key of str.split(",")) map2[key] = 1; return (val) => val in map2; } const EMPTY_OBJ = {}; const EMPTY_ARR = []; const NOOP = () => { }; const NO = () => false; const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter (key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97); const isModelListener = (key) => key.startsWith("onUpdate:"); const extend$4 = Object.assign; const remove$2 = (arr, el) => { const i2 = arr.indexOf(el); if (i2 > -1) { arr.splice(i2, 1); } }; const hasOwnProperty$h = Object.prototype.hasOwnProperty; const hasOwn$2 = (val, key) => hasOwnProperty$h.call(val, key); const isArray$5 = Array.isArray; const isMap$1 = (val) => toTypeString$1(val) === "[object Map]"; const isSet$1 = (val) => toTypeString$1(val) === "[object Set]"; const isDate$2 = (val) => toTypeString$1(val) === "[object Date]"; const isRegExp$4 = (val) => toTypeString$1(val) === "[object RegExp]"; const isFunction$6 = (val) => typeof val === "function"; const isString$5 = (val) => typeof val === "string"; const isSymbol$1 = (val) => typeof val === "symbol"; const isObject$8 = (val) => val !== null && typeof val === "object"; const isPromise$1 = (val) => { return (isObject$8(val) || isFunction$6(val)) && isFunction$6(val.then) && isFunction$6(val.catch); }; const objectToString$2 = Object.prototype.toString; const toTypeString$1 = (value) => objectToString$2.call(value); const toRawType = (value) => { return toTypeString$1(value).slice(8, -1); }; const isPlainObject$4 = (val) => toTypeString$1(val) === "[object Object]"; const isIntegerKey = (key) => isString$5(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; const isReservedProp = /* @__PURE__ */ makeMap( // the leading comma is intentional so empty string "" is also included ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" ); const isBuiltInDirective = /* @__PURE__ */ makeMap( "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" ); const cacheStringFunction = (fn2) => { const cache2 = /* @__PURE__ */ Object.create(null); return ((str) => { const hit = cache2[str]; return hit || (cache2[str] = fn2(str)); }); }; const camelizeRE = /-\w/g; const camelize = cacheStringFunction( (str) => { return str.replace(camelizeRE, (c2) => c2.slice(1).toUpperCase()); } ); const hyphenateRE = /\B([A-Z])/g; const hyphenate = cacheStringFunction( (str) => str.replace(hyphenateRE, "-$1").toLowerCase() ); const capitalize$1 = cacheStringFunction((str) => { return str.charAt(0).toUpperCase() + str.slice(1); }); const toHandlerKey$1 = cacheStringFunction( (str) => { const s2 = str ? `on${capitalize$1(str)}` : ``; return s2; } ); const hasChanged = (value, oldValue) => !Object.is(value, oldValue); const invokeArrayFns = (fns, ...arg) => { for (let i2 = 0; i2 < fns.length; i2++) { fns[i2](...arg); } }; const def = (obj, key, value, writable = false) => { Object.defineProperty(obj, key, { configurable: true, enumerable: false, writable, value }); }; const looseToNumber = (val) => { const n2 = parseFloat(val); return isNaN(n2) ? val : n2; }; const toNumber$1 = (val) => { const n2 = isString$5(val) ? Number(val) : NaN; return isNaN(n2) ? val : n2; }; let _globalThis$1; const getGlobalThis$1 = () => { return _globalThis$1 || (_globalThis$1 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); }; const identRE = /^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/; function genPropsAccessExp(name) { return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`; } function genCacheKey(source, options) { return source + JSON.stringify( options, (_2, val) => typeof val === "function" ? val.toString() : val ); } const PatchFlags = { "TEXT": 1, "1": "TEXT", "CLASS": 2, "2": "CLASS", "STYLE": 4, "4": "STYLE", "PROPS": 8, "8": "PROPS", "FULL_PROPS": 16, "16": "FULL_PROPS", "NEED_HYDRATION": 32, "32": "NEED_HYDRATION", "STABLE_FRAGMENT": 64, "64": "STABLE_FRAGMENT", "KEYED_FRAGMENT": 128, "128": "KEYED_FRAGMENT", "UNKEYED_FRAGMENT": 256, "256": "UNKEYED_FRAGMENT", "NEED_PATCH": 512, "512": "NEED_PATCH", "DYNAMIC_SLOTS": 1024, "1024": "DYNAMIC_SLOTS", "DEV_ROOT_FRAGMENT": 2048, "2048": "DEV_ROOT_FRAGMENT", "CACHED": -1, "-1": "CACHED", "BAIL": -2, "-2": "BAIL" }; const PatchFlagNames = { [1]: `TEXT`, [2]: `CLASS`, [4]: `STYLE`, [8]: `PROPS`, [16]: `FULL_PROPS`, [32]: `NEED_HYDRATION`, [64]: `STABLE_FRAGMENT`, [128]: `KEYED_FRAGMENT`, [256]: `UNKEYED_FRAGMENT`, [512]: `NEED_PATCH`, [1024]: `DYNAMIC_SLOTS`, [2048]: `DEV_ROOT_FRAGMENT`, [-1]: `CACHED`, [-2]: `BAIL` }; const ShapeFlags = { "ELEMENT": 1, "1": "ELEMENT", "FUNCTIONAL_COMPONENT": 2, "2": "FUNCTIONAL_COMPONENT", "STATEFUL_COMPONENT": 4, "4": "STATEFUL_COMPONENT", "TEXT_CHILDREN": 8, "8": "TEXT_CHILDREN", "ARRAY_CHILDREN": 16, "16": "ARRAY_CHILDREN", "SLOTS_CHILDREN": 32, "32": "SLOTS_CHILDREN", "TELEPORT": 64, "64": "TELEPORT", "SUSPENSE": 128, "128": "SUSPENSE", "COMPONENT_SHOULD_KEEP_ALIVE": 256, "256": "COMPONENT_SHOULD_KEEP_ALIVE", "COMPONENT_KEPT_ALIVE": 512, "512": "COMPONENT_KEPT_ALIVE", "COMPONENT": 6, "6": "COMPONENT" }; const SlotFlags = { "STABLE": 1, "1": "STABLE", "DYNAMIC": 2, "2": "DYNAMIC", "FORWARDED": 3, "3": "FORWARDED" }; const slotFlagsText = { [1]: "STABLE", [2]: "DYNAMIC", [3]: "FORWARDED" }; const GLOBALS_ALLOWED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol"; const isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED); const isGloballyWhitelisted = isGloballyAllowed; const range$2 = 2; function generateCodeFrame(source, start2 = 0, end2 = source.length) { start2 = Math.max(0, Math.min(start2, source.length)); end2 = Math.max(0, Math.min(end2, source.length)); if (start2 > end2) return ""; let lines = source.split(/(\r?\n)/); const newlineSequences = lines.filter((_2, idx) => idx % 2 === 1); lines = lines.filter((_2, idx) => idx % 2 === 0); let count = 0; const res = []; for (let i2 = 0; i2 < lines.length; i2++) { count += lines[i2].length + (newlineSequences[i2] && newlineSequences[i2].length || 0); if (count >= start2) { for (let j2 = i2 - range$2; j2 <= i2 + range$2 || end2 > count; j2++) { if (j2 < 0 || j2 >= lines.length) continue; const line = j2 + 1; res.push( `${line}${" ".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j2]}` ); const lineLength = lines[j2].length; const newLineSeqLength = newlineSequences[j2] && newlineSequences[j2].length || 0; if (j2 === i2) { const pad = start2 - (count - (lineLength + newLineSeqLength)); const length = Math.max( 1, end2 > count ? lineLength - pad : end2 - start2 ); res.push(` | ` + " ".repeat(pad) + "^".repeat(length)); } else if (j2 > i2) { if (end2 > count) { const length = Math.max(Math.min(end2 - count, lineLength), 1); res.push(` | ` + "^".repeat(length)); } count += lineLength + newLineSeqLength; } } break; } } return res.join("\n"); } function normalizeStyle$1(value) { if (isArray$5(value)) { const res = {}; for (let i2 = 0; i2 < value.length; i2++) { const item = value[i2]; const normalized = isString$5(item) ? parseStringStyle(item) : normalizeStyle$1(item); if (normalized) { for (const key in normalized) { res[key] = normalized[key]; } } } return res; } else if (isString$5(value) || isObject$8(value)) { return value; } } const listDelimiterRE = /;(?![^(]*\))/g; const propertyDelimiterRE = /:([^]+)/; const styleCommentRE = /\/\*[^]*?\*\//g; function parseStringStyle(cssText) { const ret = {}; cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { if (item) { const tmp = item.split(propertyDelimiterRE); tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); } }); return ret; } function stringifyStyle(styles) { if (!styles) return ""; if (isString$5(styles)) return styles; let ret = ""; for (const key in styles) { const value = styles[key]; if (isString$5(value) || typeof value === "number") { const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key); ret += `${normalizedKey}:${value};`; } } return ret; } function normalizeClass(value) { let res = ""; if (isString$5(value)) { res = value; } else if (isArray$5(value)) { for (let i2 = 0; i2 < value.length; i2++) { const normalized = normalizeClass(value[i2]); if (normalized) { res += normalized + " "; } } } else if (isObject$8(value)) { for (const name in value) { if (value[name]) { res += name + " "; } } } return res.trim(); } function normalizeProps(props) { if (!props) return null; let { class: klass, style } = props; if (klass && !isString$5(klass)) { props.class = normalizeClass(klass); } if (style) { props.style = normalizeStyle$1(style); } return props; } const HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; 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"; const MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"; const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS); const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS); const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS); const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS); const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs); const isBooleanAttr = /* @__PURE__ */ makeMap( specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected` ); function includeBooleanAttr(value) { return !!value || value === ""; } const unsafeAttrCharRE = /[>/="'\u0009\u000a\u000c\u0020]/; const attrValidationCache = {}; function isSSRSafeAttrName(name) { if (attrValidationCache.hasOwnProperty(name)) { return attrValidationCache[name]; } const isUnsafe = unsafeAttrCharRE.test(name); if (isUnsafe) { console.error(`unsafe attribute name: ${name}`); } return attrValidationCache[name] = !isUnsafe; } const propsToAttrMap = { acceptCharset: "accept-charset", className: "class", htmlFor: "for", httpEquiv: "http-equiv" }; const isKnownHtmlAttr = /* @__PURE__ */ makeMap( `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap` ); const isKnownSvgAttr = /* @__PURE__ */ makeMap( `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` ); const isKnownMathMLAttr = /* @__PURE__ */ makeMap( `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns` ); function isRenderableAttrValue(value) { if (value == null) { return false; } const type5 = typeof value; return type5 === "string" || type5 === "number" || type5 === "boolean"; } const escapeRE$2 = /["'&<>]/; function escapeHtml$2(string3) { const str = "" + string3; const match2 = escapeRE$2.exec(str); if (!match2) { return str; } let html = ""; let escaped; let index; let lastIndex = 0; for (index = match2.index; index < str.length; index++) { switch (str.charCodeAt(index)) { case 34: escaped = """; break; case 38: escaped = "&"; break; case 39: escaped = "'"; break; case 60: escaped = "<"; break; case 62: escaped = ">"; break; default: continue; } if (lastIndex !== index) { html += str.slice(lastIndex, index); } lastIndex = index + 1; html += escaped; } return lastIndex !== index ? html + str.slice(lastIndex, index) : html; } const commentStripRE = /^-?>||--!>|?@[\\\]^`{|}~]/g; function getEscapedCssVarName(key, doubleEscape) { return key.replace( cssVarNameEscapeSymbolsRE, (s2) => doubleEscape ? s2 === '"' ? '\\\\\\"' : `\\\\${s2}` : `\\${s2}` ); } function looseCompareArrays(a2, b2) { if (a2.length !== b2.length) return false; let equal = true; for (let i2 = 0; equal && i2 < a2.length; i2++) { equal = looseEqual(a2[i2], b2[i2]); } return equal; } function looseEqual(a2, b2) { if (a2 === b2) return true; let aValidType = isDate$2(a2); let bValidType = isDate$2(b2); if (aValidType || bValidType) { return aValidType && bValidType ? a2.getTime() === b2.getTime() : false; } aValidType = isSymbol$1(a2); bValidType = isSymbol$1(b2); if (aValidType || bValidType) { return a2 === b2; } aValidType = isArray$5(a2); bValidType = isArray$5(b2); if (aValidType || bValidType) { return aValidType && bValidType ? looseCompareArrays(a2, b2) : false; } aValidType = isObject$8(a2); bValidType = isObject$8(b2); if (aValidType || bValidType) { if (!aValidType || !bValidType) { return false; } const aKeysCount = Object.keys(a2).length; const bKeysCount = Object.keys(b2).length; if (aKeysCount !== bKeysCount) { return false; } for (const key in a2) { const aHasKey = a2.hasOwnProperty(key); const bHasKey = b2.hasOwnProperty(key); if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a2[key], b2[key])) { return false; } } } return String(a2) === String(b2); } function looseIndexOf(arr, val) { return arr.findIndex((item) => looseEqual(item, val)); } const isRef$1 = (val) => { return !!(val && val["__v_isRef"] === true); }; const toDisplayString$1 = (val) => { return isString$5(val) ? val : val == null ? "" : isArray$5(val) || isObject$8(val) && (val.toString === objectToString$2 || !isFunction$6(val.toString)) ? isRef$1(val) ? toDisplayString$1(val.value) : JSON.stringify(val, replacer, 2) : String(val); }; const replacer = (_key, val) => { if (isRef$1(val)) { return replacer(_key, val.value); } else if (isMap$1(val)) { return { [`Map(${val.size})`]: [...val.entries()].reduce( (entries, [key, val2], i2) => { entries[stringifySymbol(key, i2) + " =>"] = val2; return entries; }, {} ) }; } else if (isSet$1(val)) { return { [`Set(${val.size})`]: [...val.values()].map((v2) => stringifySymbol(v2)) }; } else if (isSymbol$1(val)) { return stringifySymbol(val); } else if (isObject$8(val) && !isArray$5(val) && !isPlainObject$4(val)) { return String(val); } return val; }; const stringifySymbol = (v2, i2 = "") => { var _a2; return ( // Symbol.description in es2019+ so we need to cast here to pass // the lib: es2016 check isSymbol$1(v2) ? `Symbol(${(_a2 = v2.description) != null ? _a2 : i2})` : v2 ); }; function normalizeCssVarValue(value) { if (value == null) { return "initial"; } if (typeof value === "string") { return value === "" ? " " : value; } return String(value); } const shared_esmBundler = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize: capitalize$1, cssVarNameEscapeSymbolsRE, def, escapeHtml: escapeHtml$2, escapeHtmlComment, extend: extend$4, genCacheKey, genPropsAccessExp, generateCodeFrame, getEscapedCssVarName, getGlobalThis: getGlobalThis$1, hasChanged, hasOwn: hasOwn$2, hyphenate, includeBooleanAttr, invokeArrayFns, isArray: isArray$5, isBooleanAttr, isBuiltInDirective, isDate: isDate$2, isFunction: isFunction$6, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownMathMLAttr, isKnownSvgAttr, isMap: isMap$1, isMathMLTag, isModelListener, isObject: isObject$8, isOn, isPlainObject: isPlainObject$4, isPromise: isPromise$1, isRegExp: isRegExp$4, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet: isSet$1, isSpecialBooleanAttr, isString: isString$5, isSymbol: isSymbol$1, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeCssVarValue, normalizeProps, normalizeStyle: normalizeStyle$1, objectToString: objectToString$2, parseStringStyle, propsToAttrMap, remove: remove$2, slotFlagsText, stringifyStyle, toDisplayString: toDisplayString$1, toHandlerKey: toHandlerKey$1, toNumber: toNumber$1, toRawType, toTypeString: toTypeString$1 }, Symbol.toStringTag, { value: "Module" })); /** * @vue/reactivity v3.5.32 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/ let activeEffectScope; class EffectScope { // TODO isolatedDeclarations "__v_skip" constructor(detached = false) { this.detached = detached; this._active = true; this._on = 0; this.effects = []; this.cleanups = []; this._isPaused = false; this.__v_skip = true; this.parent = activeEffectScope; if (!detached && activeEffectScope) { this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( this ) - 1; } } get active() { return this._active; } pause() { if (this._active) { this._isPaused = true; let i2, l2; if (this.scopes) { for (i2 = 0, l2 = this.scopes.length; i2 < l2; i2++) { this.scopes[i2].pause(); } } for (i2 = 0, l2 = this.effects.length; i2 < l2; i2++) { this.effects[i2].pause(); } } } /** * Resumes the effect scope, including all child scopes and effects. */ resume() { if (this._active) { if (this._isPaused) { this._isPaused = false; let i2, l2; if (this.scopes) { for (i2 = 0, l2 = this.scopes.length; i2 < l2; i2++) { this.scopes[i2].resume(); } } for (i2 = 0, l2 = this.effects.length; i2 < l2; i2++) { this.effects[i2].resume(); } } } } run(fn2) { if (this._active) { const currentEffectScope = activeEffectScope; try { activeEffectScope = this; return fn2(); } finally { activeEffectScope = currentEffectScope; } } } /** * This should only be called on non-detached scopes * @internal */ on() { if (++this._on === 1) { this.prevScope = activeEffectScope; activeEffectScope = this; } } /** * This should only be called on non-detached scopes * @internal */ off() { if (this._on > 0 && --this._on === 0) { activeEffectScope = this.prevScope; this.prevScope = void 0; } } stop(fromParent) { if (this._active) { this._active = false; let i2, l2; for (i2 = 0, l2 = this.effects.length; i2 < l2; i2++) { this.effects[i2].stop(); } this.effects.length = 0; for (i2 = 0, l2 = this.cleanups.length; i2 < l2; i2++) { this.cleanups[i2](); } this.cleanups.length = 0; if (this.scopes) { for (i2 = 0, l2 = this.scopes.length; i2 < l2; i2++) { this.scopes[i2].stop(true); } this.scopes.length = 0; } if (!this.detached && this.parent && !fromParent) { const last2 = this.parent.scopes.pop(); if (last2 && last2 !== this) { this.parent.scopes[this.index] = last2; last2.index = this.index; } } this.parent = void 0; } } } function effectScope(detached) { return new EffectScope(detached); } function getCurrentScope() { return activeEffectScope; } function onScopeDispose(fn2, failSilently = false) { if (activeEffectScope) { activeEffectScope.cleanups.push(fn2); } } let activeSub; const pausedQueueEffects = /* @__PURE__ */ new WeakSet(); class ReactiveEffect { constructor(fn2) { this.fn = fn2; this.deps = void 0; this.depsTail = void 0; this.flags = 1 | 4; this.next = void 0; this.cleanup = void 0; this.scheduler = void 0; if (activeEffectScope && activeEffectScope.active) { activeEffectScope.effects.push(this); } } pause() { this.flags |= 64; } resume() { if (this.flags & 64) { this.flags &= -65; if (pausedQueueEffects.has(this)) { pausedQueueEffects.delete(this); this.trigger(); } } } /** * @internal */ notify() { if (this.flags & 2 && !(this.flags & 32)) { return; } if (!(this.flags & 8)) { batch(this); } } run() { if (!(this.flags & 1)) { return this.fn(); } this.flags |= 2; cleanupEffect(this); prepareDeps(this); const prevEffect = activeSub; const prevShouldTrack = shouldTrack; activeSub = this; shouldTrack = true; try { return this.fn(); } finally { cleanupDeps(this); activeSub = prevEffect; shouldTrack = prevShouldTrack; this.flags &= -3; } } stop() { if (this.flags & 1) { for (let link2 = this.deps; link2; link2 = link2.nextDep) { removeSub(link2); } this.deps = this.depsTail = void 0; cleanupEffect(this); this.onStop && this.onStop(); this.flags &= -2; } } trigger() { if (this.flags & 64) { pausedQueueEffects.add(this); } else if (this.scheduler) { this.scheduler(); } else { this.runIfDirty(); } } /** * @internal */ runIfDirty() { if (isDirty(this)) { this.run(); } } get dirty() { return isDirty(this); } } let batchDepth = 0; let batchedSub; let batchedComputed; function batch(sub2, isComputed2 = false) { sub2.flags |= 8; if (isComputed2) { sub2.next = batchedComputed; batchedComputed = sub2; return; } sub2.next = batchedSub; batchedSub = sub2; } function startBatch() { batchDepth++; } function endBatch() { if (--batchDepth > 0) { return; } if (batchedComputed) { let e2 = batchedComputed; batchedComputed = void 0; while (e2) { const next = e2.next; e2.next = void 0; e2.flags &= -9; e2 = next; } } let error2; while (batchedSub) { let e2 = batchedSub; batchedSub = void 0; while (e2) { const next = e2.next; e2.next = void 0; e2.flags &= -9; if (e2.flags & 1) { try { ; e2.trigger(); } catch (err) { if (!error2) error2 = err; } } e2 = next; } } if (error2) throw error2; } function prepareDeps(sub2) { for (let link2 = sub2.deps; link2; link2 = link2.nextDep) { link2.version = -1; link2.prevActiveLink = link2.dep.activeLink; link2.dep.activeLink = link2; } } function cleanupDeps(sub2) { let head; let tail = sub2.depsTail; let link2 = tail; while (link2) { const prev = link2.prevDep; if (link2.version === -1) { if (link2 === tail) tail = prev; removeSub(link2); removeDep(link2); } else { head = link2; } link2.dep.activeLink = link2.prevActiveLink; link2.prevActiveLink = void 0; link2 = prev; } sub2.deps = head; sub2.depsTail = tail; } function isDirty(sub2) { for (let link2 = sub2.deps; link2; link2 = link2.nextDep) { if (link2.dep.version !== link2.version || link2.dep.computed && (refreshComputed(link2.dep.computed) || link2.dep.version !== link2.version)) { return true; } } if (sub2._dirty) { return true; } return false; } function refreshComputed(computed2) { if (computed2.flags & 4 && !(computed2.flags & 16)) { return; } computed2.flags &= -17; if (computed2.globalVersion === globalVersion) { return; } computed2.globalVersion = globalVersion; if (!computed2.isSSR && computed2.flags & 128 && (!computed2.deps && !computed2._dirty || !isDirty(computed2))) { return; } computed2.flags |= 2; const dep = computed2.dep; const prevSub = activeSub; const prevShouldTrack = shouldTrack; activeSub = computed2; shouldTrack = true; try { prepareDeps(computed2); const value = computed2.fn(computed2._value); if (dep.version === 0 || hasChanged(value, computed2._value)) { computed2.flags |= 128; computed2._value = value; dep.version++; } } catch (err) { dep.version++; throw err; } finally { activeSub = prevSub; shouldTrack = prevShouldTrack; cleanupDeps(computed2); computed2.flags &= -3; } } function removeSub(link2, soft = false) { const { dep, prevSub, nextSub } = link2; if (prevSub) { prevSub.nextSub = nextSub; link2.prevSub = void 0; } if (nextSub) { nextSub.prevSub = prevSub; link2.nextSub = void 0; } if (dep.subs === link2) { dep.subs = prevSub; if (!prevSub && dep.computed) { dep.computed.flags &= -5; for (let l2 = dep.computed.deps; l2; l2 = l2.nextDep) { removeSub(l2, true); } } } if (!soft && !--dep.sc && dep.map) { dep.map.delete(dep.key); } } function removeDep(link2) { const { prevDep, nextDep } = link2; if (prevDep) { prevDep.nextDep = nextDep; link2.prevDep = void 0; } if (nextDep) { nextDep.prevDep = prevDep; link2.nextDep = void 0; } } function effect(fn2, options) { if (fn2.effect instanceof ReactiveEffect) { fn2 = fn2.effect.fn; } const e2 = new ReactiveEffect(fn2); if (options) { extend$4(e2, options); } try { e2.run(); } catch (err) { e2.stop(); throw err; } const runner = e2.run.bind(e2); runner.effect = e2; return runner; } function stop$1(runner) { runner.effect.stop(); } let shouldTrack = true; const trackStack = []; function pauseTracking() { trackStack.push(shouldTrack); shouldTrack = false; } function resetTracking() { const last2 = trackStack.pop(); shouldTrack = last2 === void 0 ? true : last2; } function cleanupEffect(e2) { const { cleanup } = e2; e2.cleanup = void 0; if (cleanup) { const prevSub = activeSub; activeSub = void 0; try { cleanup(); } finally { activeSub = prevSub; } } } let globalVersion = 0; class Link { constructor(sub2, dep) { this.sub = sub2; this.dep = dep; this.version = dep.version; this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0; } } class Dep { // TODO isolatedDeclarations "__v_skip" constructor(computed2) { this.computed = computed2; this.version = 0; this.activeLink = void 0; this.subs = void 0; this.map = void 0; this.key = void 0; this.sc = 0; this.__v_skip = true; } track(debugInfo) { if (!activeSub || !shouldTrack || activeSub === this.computed) { return; } let link2 = this.activeLink; if (link2 === void 0 || link2.sub !== activeSub) { link2 = this.activeLink = new Link(activeSub, this); if (!activeSub.deps) { activeSub.deps = activeSub.depsTail = link2; } else { link2.prevDep = activeSub.depsTail; activeSub.depsTail.nextDep = link2; activeSub.depsTail = link2; } addSub(link2); } else if (link2.version === -1) { link2.version = this.version; if (link2.nextDep) { const next = link2.nextDep; next.prevDep = link2.prevDep; if (link2.prevDep) { link2.prevDep.nextDep = next; } link2.prevDep = activeSub.depsTail; link2.nextDep = void 0; activeSub.depsTail.nextDep = link2; activeSub.depsTail = link2; if (activeSub.deps === link2) { activeSub.deps = next; } } } return link2; } trigger(debugInfo) { this.version++; globalVersion++; this.notify(debugInfo); } notify(debugInfo) { startBatch(); try { if (false) ; for (let link2 = this.subs; link2; link2 = link2.prevSub) { if (link2.sub.notify()) { ; link2.sub.dep.notify(); } } } finally { endBatch(); } } } function addSub(link2) { link2.dep.sc++; if (link2.sub.flags & 4) { const computed2 = link2.dep.computed; if (computed2 && !link2.dep.subs) { computed2.flags |= 4 | 16; for (let l2 = computed2.deps; l2; l2 = l2.nextDep) { addSub(l2); } } const currentTail = link2.dep.subs; if (currentTail !== link2) { link2.prevSub = currentTail; if (currentTail) currentTail.nextSub = link2; } link2.dep.subs = link2; } } const targetMap = /* @__PURE__ */ new WeakMap(); const ITERATE_KEY = /* @__PURE__ */ Symbol( "" ); const MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol( "" ); const ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol( "" ); function track(target, type5, key) { if (shouldTrack && activeSub) { let depsMap = targetMap.get(target); if (!depsMap) { targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); } let dep = depsMap.get(key); if (!dep) { depsMap.set(key, dep = new Dep()); dep.map = depsMap; dep.key = key; } { dep.track(); } } } function trigger(target, type5, key, newValue, oldValue, oldTarget) { const depsMap = targetMap.get(target); if (!depsMap) { globalVersion++; return; } const run = (dep) => { if (dep) { { dep.trigger(); } } }; startBatch(); if (type5 === "clear") { depsMap.forEach(run); } else { const targetIsArray = isArray$5(target); const isArrayIndex = targetIsArray && isIntegerKey(key); if (targetIsArray && key === "length") { const newLength = Number(newValue); depsMap.forEach((dep, key2) => { if (key2 === "length" || key2 === ARRAY_ITERATE_KEY || !isSymbol$1(key2) && key2 >= newLength) { run(dep); } }); } else { if (key !== void 0 || depsMap.has(void 0)) { run(depsMap.get(key)); } if (isArrayIndex) { run(depsMap.get(ARRAY_ITERATE_KEY)); } switch (type5) { case "add": if (!targetIsArray) { run(depsMap.get(ITERATE_KEY)); if (isMap$1(target)) { run(depsMap.get(MAP_KEY_ITERATE_KEY)); } } else if (isArrayIndex) { run(depsMap.get("length")); } break; case "delete": if (!targetIsArray) { run(depsMap.get(ITERATE_KEY)); if (isMap$1(target)) { run(depsMap.get(MAP_KEY_ITERATE_KEY)); } } break; case "set": if (isMap$1(target)) { run(depsMap.get(ITERATE_KEY)); } break; } } } endBatch(); } function getDepFromReactive(object5, key) { const depMap = targetMap.get(object5); return depMap && depMap.get(key); } function reactiveReadArray(array5) { const raw = /* @__PURE__ */ toRaw(array5); if (raw === array5) return raw; track(raw, "iterate", ARRAY_ITERATE_KEY); return /* @__PURE__ */ isShallow(array5) ? raw : raw.map(toReactive$1); } function shallowReadArray(arr) { track(arr = /* @__PURE__ */ toRaw(arr), "iterate", ARRAY_ITERATE_KEY); return arr; } function toWrapped(target, item) { if (/* @__PURE__ */ isReadonly(target)) { return /* @__PURE__ */ isReactive(target) ? toReadonly(toReactive$1(item)) : toReadonly(item); } return toReactive$1(item); } const arrayInstrumentations = { __proto__: null, [Symbol.iterator]() { return iterator$1(this, Symbol.iterator, (item) => toWrapped(this, item)); }, concat(...args) { return reactiveReadArray(this).concat( ...args.map((x2) => isArray$5(x2) ? reactiveReadArray(x2) : x2) ); }, entries() { return iterator$1(this, "entries", (value) => { value[1] = toWrapped(this, value[1]); return value; }); }, every(fn2, thisArg) { return apply$2(this, "every", fn2, thisArg, void 0, arguments); }, filter(fn2, thisArg) { return apply$2( this, "filter", fn2, thisArg, (v2) => v2.map((item) => toWrapped(this, item)), arguments ); }, find(fn2, thisArg) { return apply$2( this, "find", fn2, thisArg, (item) => toWrapped(this, item), arguments ); }, findIndex(fn2, thisArg) { return apply$2(this, "findIndex", fn2, thisArg, void 0, arguments); }, findLast(fn2, thisArg) { return apply$2( this, "findLast", fn2, thisArg, (item) => toWrapped(this, item), arguments ); }, findLastIndex(fn2, thisArg) { return apply$2(this, "findLastIndex", fn2, thisArg, void 0, arguments); }, // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement forEach(fn2, thisArg) { return apply$2(this, "forEach", fn2, thisArg, void 0, arguments); }, includes(...args) { return searchProxy(this, "includes", args); }, indexOf(...args) { return searchProxy(this, "indexOf", args); }, join(separator) { return reactiveReadArray(this).join(separator); }, // keys() iterator only reads `length`, no optimization required lastIndexOf(...args) { return searchProxy(this, "lastIndexOf", args); }, map(fn2, thisArg) { return apply$2(this, "map", fn2, thisArg, void 0, arguments); }, pop() { return noTracking(this, "pop"); }, push(...args) { return noTracking(this, "push", args); }, reduce(fn2, ...args) { return reduce$1(this, "reduce", fn2, args); }, reduceRight(fn2, ...args) { return reduce$1(this, "reduceRight", fn2, args); }, shift() { return noTracking(this, "shift"); }, // slice could use ARRAY_ITERATE but also seems to beg for range tracking some(fn2, thisArg) { return apply$2(this, "some", fn2, thisArg, void 0, arguments); }, splice(...args) { return noTracking(this, "splice", args); }, toReversed() { return reactiveReadArray(this).toReversed(); }, toSorted(comparer) { return reactiveReadArray(this).toSorted(comparer); }, toSpliced(...args) { return reactiveReadArray(this).toSpliced(...args); }, unshift(...args) { return noTracking(this, "unshift", args); }, values() { return iterator$1(this, "values", (item) => toWrapped(this, item)); } }; function iterator$1(self2, method4, wrapValue) { const arr = shallowReadArray(self2); const iter = arr[method4](); if (arr !== self2 && !/* @__PURE__ */ isShallow(self2)) { iter._next = iter.next; iter.next = () => { const result = iter._next(); if (!result.done) { result.value = wrapValue(result.value); } return result; }; } return iter; } const arrayProto$2 = Array.prototype; function apply$2(self2, method4, fn2, thisArg, wrappedRetFn, args) { const arr = shallowReadArray(self2); const needsWrap = arr !== self2 && !/* @__PURE__ */ isShallow(self2); const methodFn = arr[method4]; if (methodFn !== arrayProto$2[method4]) { const result2 = methodFn.apply(self2, args); return needsWrap ? toReactive$1(result2) : result2; } let wrappedFn = fn2; if (arr !== self2) { if (needsWrap) { wrappedFn = function(item, index) { return fn2.call(this, toWrapped(self2, item), index, self2); }; } else if (fn2.length > 2) { wrappedFn = function(item, index) { return fn2.call(this, item, index, self2); }; } } const result = methodFn.call(arr, wrappedFn, thisArg); return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result; } function reduce$1(self2, method4, fn2, args) { const arr = shallowReadArray(self2); const needsWrap = arr !== self2 && !/* @__PURE__ */ isShallow(self2); let wrappedFn = fn2; let wrapInitialAccumulator = false; if (arr !== self2) { if (needsWrap) { wrapInitialAccumulator = args.length === 0; wrappedFn = function(acc, item, index) { if (wrapInitialAccumulator) { wrapInitialAccumulator = false; acc = toWrapped(self2, acc); } return fn2.call(this, acc, toWrapped(self2, item), index, self2); }; } else if (fn2.length > 3) { wrappedFn = function(acc, item, index) { return fn2.call(this, acc, item, index, self2); }; } } const result = arr[method4](wrappedFn, ...args); return wrapInitialAccumulator ? toWrapped(self2, result) : result; } function searchProxy(self2, method4, args) { const arr = /* @__PURE__ */ toRaw(self2); track(arr, "iterate", ARRAY_ITERATE_KEY); const res = arr[method4](...args); if ((res === -1 || res === false) && /* @__PURE__ */ isProxy(args[0])) { args[0] = /* @__PURE__ */ toRaw(args[0]); return arr[method4](...args); } return res; } function noTracking(self2, method4, args = []) { pauseTracking(); startBatch(); const res = (/* @__PURE__ */ toRaw(self2))[method4].apply(self2, args); endBatch(); resetTracking(); return res; } const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`); const builtInSymbols = new Set( /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol$1) ); function hasOwnProperty$g(key) { if (!isSymbol$1(key)) key = String(key); const obj = /* @__PURE__ */ toRaw(this); track(obj, "has", key); return obj.hasOwnProperty(key); } class BaseReactiveHandler { constructor(_isReadonly = false, _isShallow = false) { this._isReadonly = _isReadonly; this._isShallow = _isShallow; } get(target, key, receiver) { if (key === "__v_skip") return target["__v_skip"]; const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow; if (key === "__v_isReactive") { return !isReadonly2; } else if (key === "__v_isReadonly") { return isReadonly2; } else if (key === "__v_isShallow") { return isShallow2; } else if (key === "__v_raw") { if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype // this means the receiver is a user proxy of the reactive proxy Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) { return target; } return; } const targetIsArray = isArray$5(target); if (!isReadonly2) { let fn2; if (targetIsArray && (fn2 = arrayInstrumentations[key])) { return fn2; } if (key === "hasOwnProperty") { return hasOwnProperty$g; } } const res = Reflect.get( target, key, // if this is a proxy wrapping a ref, return methods using the raw ref // as receiver so that we don't have to call `toRaw` on the ref in all // its class methods /* @__PURE__ */ isRef(target) ? target : receiver ); if (isSymbol$1(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { return res; } if (!isReadonly2) { track(target, "get", key); } if (isShallow2) { return res; } if (/* @__PURE__ */ isRef(res)) { const value = targetIsArray && isIntegerKey(key) ? res : res.value; return isReadonly2 && isObject$8(value) ? /* @__PURE__ */ readonly(value) : value; } if (isObject$8(res)) { return isReadonly2 ? /* @__PURE__ */ readonly(res) : /* @__PURE__ */ reactive(res); } return res; } } class MutableReactiveHandler extends BaseReactiveHandler { constructor(isShallow2 = false) { super(false, isShallow2); } set(target, key, value, receiver) { let oldValue = target[key]; const isArrayWithIntegerKey = isArray$5(target) && isIntegerKey(key); if (!this._isShallow) { const isOldValueReadonly = /* @__PURE__ */ isReadonly(oldValue); if (!/* @__PURE__ */ isShallow(value) && !/* @__PURE__ */ isReadonly(value)) { oldValue = /* @__PURE__ */ toRaw(oldValue); value = /* @__PURE__ */ toRaw(value); } if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) { if (isOldValueReadonly) { return true; } else { oldValue.value = value; return true; } } } const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn$2(target, key); const result = Reflect.set( target, key, value, /* @__PURE__ */ isRef(target) ? target : receiver ); if (target === /* @__PURE__ */ toRaw(receiver)) { if (!hadKey) { trigger(target, "add", key, value); } else if (hasChanged(value, oldValue)) { trigger(target, "set", key, value); } } return result; } deleteProperty(target, key) { const hadKey = hasOwn$2(target, key); target[key]; const result = Reflect.deleteProperty(target, key); if (result && hadKey) { trigger(target, "delete", key, void 0); } return result; } has(target, key) { const result = Reflect.has(target, key); if (!isSymbol$1(key) || !builtInSymbols.has(key)) { track(target, "has", key); } return result; } ownKeys(target) { track( target, "iterate", isArray$5(target) ? "length" : ITERATE_KEY ); return Reflect.ownKeys(target); } } class ReadonlyReactiveHandler extends BaseReactiveHandler { constructor(isShallow2 = false) { super(true, isShallow2); } set(target, key) { return true; } deleteProperty(target, key) { return true; } } const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler(); const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(); const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true); const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true); const toShallow = (value) => value; const getProto$1 = (v2) => Reflect.getPrototypeOf(v2); function createIterableMethod(method4, isReadonly2, isShallow2) { return function(...args) { const target = this["__v_raw"]; const rawTarget = /* @__PURE__ */ toRaw(target); const targetIsMap = isMap$1(rawTarget); const isPair = method4 === "entries" || method4 === Symbol.iterator && targetIsMap; const isKeyOnly = method4 === "keys" && targetIsMap; const innerIterator = target[method4](...args); const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive$1; !isReadonly2 && track( rawTarget, "iterate", isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY ); return extend$4( // inheriting all iterator properties Object.create(innerIterator), { // iterator protocol next() { const { value, done } = innerIterator.next(); return done ? { value, done } : { value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), done }; } } ); }; } function createReadonlyMethod(type5) { return function(...args) { return type5 === "delete" ? false : type5 === "clear" ? void 0 : this; }; } function createInstrumentations(readonly2, shallow) { const instrumentations = { get(key) { const target = this["__v_raw"]; const rawTarget = /* @__PURE__ */ toRaw(target); const rawKey = /* @__PURE__ */ toRaw(key); if (!readonly2) { if (hasChanged(key, rawKey)) { track(rawTarget, "get", key); } track(rawTarget, "get", rawKey); } const { has: has2 } = getProto$1(rawTarget); const wrap = shallow ? toShallow : readonly2 ? toReadonly : toReactive$1; if (has2.call(rawTarget, key)) { return wrap(target.get(key)); } else if (has2.call(rawTarget, rawKey)) { return wrap(target.get(rawKey)); } else if (target !== rawTarget) { target.get(key); } }, get size() { const target = this["__v_raw"]; !readonly2 && track(/* @__PURE__ */ toRaw(target), "iterate", ITERATE_KEY); return target.size; }, has(key) { const target = this["__v_raw"]; const rawTarget = /* @__PURE__ */ toRaw(target); const rawKey = /* @__PURE__ */ toRaw(key); if (!readonly2) { if (hasChanged(key, rawKey)) { track(rawTarget, "has", key); } track(rawTarget, "has", rawKey); } return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); }, forEach(callback, thisArg) { const observed = this; const target = observed["__v_raw"]; const rawTarget = /* @__PURE__ */ toRaw(target); const wrap = shallow ? toShallow : readonly2 ? toReadonly : toReactive$1; !readonly2 && track(rawTarget, "iterate", ITERATE_KEY); return target.forEach((value, key) => { return callback.call(thisArg, wrap(value), wrap(key), observed); }); } }; extend$4( instrumentations, readonly2 ? { add: createReadonlyMethod("add"), set: createReadonlyMethod("set"), delete: createReadonlyMethod("delete"), clear: createReadonlyMethod("clear") } : { add(value) { const target = /* @__PURE__ */ toRaw(this); const proto = getProto$1(target); const rawValue = /* @__PURE__ */ toRaw(value); const valueToAdd = !shallow && !/* @__PURE__ */ isShallow(value) && !/* @__PURE__ */ isReadonly(value) ? rawValue : value; const hadKey = proto.has.call(target, valueToAdd) || hasChanged(value, valueToAdd) && proto.has.call(target, value) || hasChanged(rawValue, valueToAdd) && proto.has.call(target, rawValue); if (!hadKey) { target.add(valueToAdd); trigger(target, "add", valueToAdd, valueToAdd); } return this; }, set(key, value) { if (!shallow && !/* @__PURE__ */ isShallow(value) && !/* @__PURE__ */ isReadonly(value)) { value = /* @__PURE__ */ toRaw(value); } const target = /* @__PURE__ */ toRaw(this); const { has: has2, get: get2 } = getProto$1(target); let hadKey = has2.call(target, key); if (!hadKey) { key = /* @__PURE__ */ toRaw(key); hadKey = has2.call(target, key); } const oldValue = get2.call(target, key); target.set(key, value); if (!hadKey) { trigger(target, "add", key, value); } else if (hasChanged(value, oldValue)) { trigger(target, "set", key, value); } return this; }, delete(key) { const target = /* @__PURE__ */ toRaw(this); const { has: has2, get: get2 } = getProto$1(target); let hadKey = has2.call(target, key); if (!hadKey) { key = /* @__PURE__ */ toRaw(key); hadKey = has2.call(target, key); } get2 ? get2.call(target, key) : void 0; const result = target.delete(key); if (hadKey) { trigger(target, "delete", key, void 0); } return result; }, clear() { const target = /* @__PURE__ */ toRaw(this); const hadItems = target.size !== 0; const result = target.clear(); if (hadItems) { trigger( target, "clear", void 0, void 0 ); } return result; } } ); const iteratorMethods = [ "keys", "values", "entries", Symbol.iterator ]; iteratorMethods.forEach((method4) => { instrumentations[method4] = createIterableMethod(method4, readonly2, shallow); }); return instrumentations; } function createInstrumentationGetter(isReadonly2, shallow) { const instrumentations = createInstrumentations(isReadonly2, shallow); return (target, key, receiver) => { if (key === "__v_isReactive") { return !isReadonly2; } else if (key === "__v_isReadonly") { return isReadonly2; } else if (key === "__v_raw") { return target; } return Reflect.get( hasOwn$2(instrumentations, key) && key in target ? instrumentations : target, key, receiver ); }; } const mutableCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(false, false) }; const shallowCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(false, true) }; const readonlyCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(true, false) }; const shallowReadonlyCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(true, true) }; const reactiveMap = /* @__PURE__ */ new WeakMap(); const shallowReactiveMap = /* @__PURE__ */ new WeakMap(); const readonlyMap = /* @__PURE__ */ new WeakMap(); const shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); function targetTypeMap(rawType) { switch (rawType) { case "Object": case "Array": return 1; case "Map": case "Set": case "WeakMap": case "WeakSet": return 2; default: return 0; } } function getTargetType(value) { return value["__v_skip"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value)); } // @__NO_SIDE_EFFECTS__ function reactive(target) { if (/* @__PURE__ */ isReadonly(target)) { return target; } return createReactiveObject( target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap ); } // @__NO_SIDE_EFFECTS__ function shallowReactive(target) { return createReactiveObject( target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap ); } // @__NO_SIDE_EFFECTS__ function readonly(target) { return createReactiveObject( target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap ); } // @__NO_SIDE_EFFECTS__ function shallowReadonly(target) { return createReactiveObject( target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap ); } function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { if (!isObject$8(target)) { return target; } if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { return target; } const targetType = getTargetType(target); if (targetType === 0) { return target; } const existingProxy = proxyMap.get(target); if (existingProxy) { return existingProxy; } const proxy = new Proxy( target, targetType === 2 ? collectionHandlers : baseHandlers ); proxyMap.set(target, proxy); return proxy; } // @__NO_SIDE_EFFECTS__ function isReactive(value) { if (/* @__PURE__ */ isReadonly(value)) { return /* @__PURE__ */ isReactive(value["__v_raw"]); } return !!(value && value["__v_isReactive"]); } // @__NO_SIDE_EFFECTS__ function isReadonly(value) { return !!(value && value["__v_isReadonly"]); } // @__NO_SIDE_EFFECTS__ function isShallow(value) { return !!(value && value["__v_isShallow"]); } // @__NO_SIDE_EFFECTS__ function isProxy(value) { return value ? !!value["__v_raw"] : false; } // @__NO_SIDE_EFFECTS__ function toRaw(observed) { const raw = observed && observed["__v_raw"]; return raw ? /* @__PURE__ */ toRaw(raw) : observed; } function markRaw(value) { if (!hasOwn$2(value, "__v_skip") && Object.isExtensible(value)) { def(value, "__v_skip", true); } return value; } const toReactive$1 = (value) => isObject$8(value) ? /* @__PURE__ */ reactive(value) : value; const toReadonly = (value) => isObject$8(value) ? /* @__PURE__ */ readonly(value) : value; // @__NO_SIDE_EFFECTS__ function isRef(r2) { return r2 ? r2["__v_isRef"] === true : false; } // @__NO_SIDE_EFFECTS__ function ref$1(value) { return createRef(value, false); } // @__NO_SIDE_EFFECTS__ function shallowRef(value) { return createRef(value, true); } function createRef(rawValue, shallow) { if (/* @__PURE__ */ isRef(rawValue)) { return rawValue; } return new RefImpl(rawValue, shallow); } class RefImpl { constructor(value, isShallow2) { this.dep = new Dep(); this["__v_isRef"] = true; this["__v_isShallow"] = false; this._rawValue = isShallow2 ? value : /* @__PURE__ */ toRaw(value); this._value = isShallow2 ? value : toReactive$1(value); this["__v_isShallow"] = isShallow2; } get value() { { this.dep.track(); } return this._value; } set value(newValue) { const oldValue = this._rawValue; const useDirectValue = this["__v_isShallow"] || /* @__PURE__ */ isShallow(newValue) || /* @__PURE__ */ isReadonly(newValue); newValue = useDirectValue ? newValue : /* @__PURE__ */ toRaw(newValue); if (hasChanged(newValue, oldValue)) { this._rawValue = newValue; this._value = useDirectValue ? newValue : toReactive$1(newValue); { this.dep.trigger(); } } } } function triggerRef(ref2) { if (ref2.dep) { { ref2.dep.trigger(); } } } function unref(ref2) { return /* @__PURE__ */ isRef(ref2) ? ref2.value : ref2; } function toValue$2(source) { return isFunction$6(source) ? source() : unref(source); } const shallowUnwrapHandlers = { get: (target, key, receiver) => key === "__v_raw" ? target : unref(Reflect.get(target, key, receiver)), set: (target, key, value, receiver) => { const oldValue = target[key]; if (/* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) { oldValue.value = value; return true; } else { return Reflect.set(target, key, value, receiver); } } }; function proxyRefs(objectWithRefs) { return /* @__PURE__ */ isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); } class CustomRefImpl { constructor(factory2) { this["__v_isRef"] = true; this._value = void 0; const dep = this.dep = new Dep(); const { get: get2, set: set3 } = factory2(dep.track.bind(dep), dep.trigger.bind(dep)); this._get = get2; this._set = set3; } get value() { return this._value = this._get(); } set value(newVal) { this._set(newVal); } } function customRef(factory2) { return new CustomRefImpl(factory2); } // @__NO_SIDE_EFFECTS__ function toRefs$1(object5) { const ret = isArray$5(object5) ? new Array(object5.length) : {}; for (const key in object5) { ret[key] = propertyToRef(object5, key); } return ret; } class ObjectRefImpl { constructor(_object, key, _defaultValue) { this._object = _object; this._defaultValue = _defaultValue; this["__v_isRef"] = true; this._value = void 0; this._key = isSymbol$1(key) ? key : String(key); this._raw = /* @__PURE__ */ toRaw(_object); let shallow = true; let obj = _object; if (!isArray$5(_object) || isSymbol$1(this._key) || !isIntegerKey(this._key)) { do { shallow = !/* @__PURE__ */ isProxy(obj) || /* @__PURE__ */ isShallow(obj); } while (shallow && (obj = obj["__v_raw"])); } this._shallow = shallow; } get value() { let val = this._object[this._key]; if (this._shallow) { val = unref(val); } return this._value = val === void 0 ? this._defaultValue : val; } set value(newVal) { if (this._shallow && /* @__PURE__ */ isRef(this._raw[this._key])) { const nestedRef = this._object[this._key]; if (/* @__PURE__ */ isRef(nestedRef)) { nestedRef.value = newVal; return; } } this._object[this._key] = newVal; } get dep() { return getDepFromReactive(this._raw, this._key); } } class GetterRefImpl { constructor(_getter) { this._getter = _getter; this["__v_isRef"] = true; this["__v_isReadonly"] = true; this._value = void 0; } get value() { return this._value = this._getter(); } } // @__NO_SIDE_EFFECTS__ function toRef$1(source, key, defaultValue) { if (/* @__PURE__ */ isRef(source)) { return source; } else if (isFunction$6(source)) { return new GetterRefImpl(source); } else if (isObject$8(source) && arguments.length > 1) { return propertyToRef(source, key, defaultValue); } else { return /* @__PURE__ */ ref$1(source); } } function propertyToRef(source, key, defaultValue) { return new ObjectRefImpl(source, key, defaultValue); } class ComputedRefImpl { constructor(fn2, setter, isSSR) { this.fn = fn2; this.setter = setter; this._value = void 0; this.dep = new Dep(this); this.__v_isRef = true; this.deps = void 0; this.depsTail = void 0; this.flags = 16; this.globalVersion = globalVersion - 1; this.next = void 0; this.effect = this; this["__v_isReadonly"] = !setter; this.isSSR = isSSR; } /** * @internal */ notify() { this.flags |= 16; if (!(this.flags & 8) && // avoid infinite self recursion activeSub !== this) { batch(this, true); return true; } } get value() { const link2 = this.dep.track(); refreshComputed(this); if (link2) { link2.version = this.dep.version; } return this._value; } set value(newValue) { if (this.setter) { this.setter(newValue); } } } // @__NO_SIDE_EFFECTS__ function computed$1(getterOrOptions, debugOptions, isSSR = false) { let getter; let setter; if (isFunction$6(getterOrOptions)) { getter = getterOrOptions; } else { getter = getterOrOptions.get; setter = getterOrOptions.set; } const cRef = new ComputedRefImpl(getter, setter, isSSR); return cRef; } const TrackOpTypes = { "GET": "get", "HAS": "has", "ITERATE": "iterate" }; const TriggerOpTypes = { "SET": "set", "ADD": "add", "DELETE": "delete", "CLEAR": "clear" }; const INITIAL_WATCHER_VALUE = {}; const cleanupMap = /* @__PURE__ */ new WeakMap(); let activeWatcher = void 0; function getCurrentWatcher() { return activeWatcher; } function onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) { if (owner) { let cleanups = cleanupMap.get(owner); if (!cleanups) cleanupMap.set(owner, cleanups = []); cleanups.push(cleanupFn); } } function watch$1(source, cb, options = EMPTY_OBJ) { const { immediate, deep, once, scheduler, augmentJob, call } = options; const reactiveGetter = (source2) => { if (deep) return source2; if (/* @__PURE__ */ isShallow(source2) || deep === false || deep === 0) return traverse(source2, 1); return traverse(source2); }; let effect2; let getter; let cleanup; let boundCleanup; let forceTrigger = false; let isMultiSource = false; if (/* @__PURE__ */ isRef(source)) { getter = () => source.value; forceTrigger = /* @__PURE__ */ isShallow(source); } else if (/* @__PURE__ */ isReactive(source)) { getter = () => reactiveGetter(source); forceTrigger = true; } else if (isArray$5(source)) { isMultiSource = true; forceTrigger = source.some((s2) => /* @__PURE__ */ isReactive(s2) || /* @__PURE__ */ isShallow(s2)); getter = () => source.map((s2) => { if (/* @__PURE__ */ isRef(s2)) { return s2.value; } else if (/* @__PURE__ */ isReactive(s2)) { return reactiveGetter(s2); } else if (isFunction$6(s2)) { return call ? call(s2, 2) : s2(); } else ; }); } else if (isFunction$6(source)) { if (cb) { getter = call ? () => call(source, 2) : source; } else { getter = () => { if (cleanup) { pauseTracking(); try { cleanup(); } finally { resetTracking(); } } const currentEffect = activeWatcher; activeWatcher = effect2; try { return call ? call(source, 3, [boundCleanup]) : source(boundCleanup); } finally { activeWatcher = currentEffect; } }; } } else { getter = NOOP; } if (cb && deep) { const baseGetter = getter; const depth = deep === true ? Infinity : deep; getter = () => traverse(baseGetter(), depth); } const scope = getCurrentScope(); const watchHandle = () => { effect2.stop(); if (scope && scope.active) { remove$2(scope.effects, effect2); } }; if (once && cb) { const _cb = cb; cb = (...args) => { _cb(...args); watchHandle(); }; } let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE; const job = (immediateFirstRun) => { if (!(effect2.flags & 1) || !effect2.dirty && !immediateFirstRun) { return; } if (cb) { const newValue = effect2.run(); if (deep || forceTrigger || (isMultiSource ? newValue.some((v2, i2) => hasChanged(v2, oldValue[i2])) : hasChanged(newValue, oldValue))) { if (cleanup) { cleanup(); } const currentWatcher = activeWatcher; activeWatcher = effect2; try { const args = [ newValue, // pass undefined as the old value when it's changed for the first time oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue, boundCleanup ]; oldValue = newValue; call ? call(cb, 3, args) : ( // @ts-expect-error cb(...args) ); } finally { activeWatcher = currentWatcher; } } } else { effect2.run(); } }; if (augmentJob) { augmentJob(job); } effect2 = new ReactiveEffect(getter); effect2.scheduler = scheduler ? () => scheduler(job, false) : job; boundCleanup = (fn2) => onWatcherCleanup(fn2, false, effect2); cleanup = effect2.onStop = () => { const cleanups = cleanupMap.get(effect2); if (cleanups) { if (call) { call(cleanups, 4); } else { for (const cleanup2 of cleanups) cleanup2(); } cleanupMap.delete(effect2); } }; if (cb) { if (immediate) { job(true); } else { oldValue = effect2.run(); } } else if (scheduler) { scheduler(job.bind(null, true), true); } else { effect2.run(); } watchHandle.pause = effect2.pause.bind(effect2); watchHandle.resume = effect2.resume.bind(effect2); watchHandle.stop = watchHandle; return watchHandle; } function traverse(value, depth = Infinity, seen2) { if (depth <= 0 || !isObject$8(value) || value["__v_skip"]) { return value; } seen2 = seen2 || /* @__PURE__ */ new Map(); if ((seen2.get(value) || 0) >= depth) { return value; } seen2.set(value, depth); depth--; if (/* @__PURE__ */ isRef(value)) { traverse(value.value, depth, seen2); } else if (isArray$5(value)) { for (let i2 = 0; i2 < value.length; i2++) { traverse(value[i2], depth, seen2); } } else if (isSet$1(value) || isMap$1(value)) { value.forEach((v2) => { traverse(v2, depth, seen2); }); } else if (isPlainObject$4(value)) { for (const key in value) { traverse(value[key], depth, seen2); } for (const key of Object.getOwnPropertySymbols(value)) { if (Object.prototype.propertyIsEnumerable.call(value, key)) { traverse(value[key], depth, seen2); } } } return value; } /** * @vue/runtime-core v3.5.32 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/ const stack$1 = []; function pushWarningContext(vnode) { stack$1.push(vnode); } function popWarningContext() { stack$1.pop(); } let isWarning = false; function warn$1$1(msg, ...args) { if (isWarning) return; isWarning = true; pauseTracking(); const instance = stack$1.length ? stack$1[stack$1.length - 1].component : null; const appWarnHandler = instance && instance.appContext.config.warnHandler; const trace = getComponentTrace(); if (appWarnHandler) { callWithErrorHandling( appWarnHandler, instance, 11, [ // eslint-disable-next-line no-restricted-syntax msg + args.map((a2) => { var _a2, _b; return (_b = (_a2 = a2.toString) == null ? void 0 : _a2.call(a2)) != null ? _b : JSON.stringify(a2); }).join(""), instance && instance.proxy, trace.map( ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>` ).join("\n"), trace ] ); } else { const warnArgs = [`[Vue warn]: ${msg}`, ...args]; if (trace.length && // avoid spamming console during tests true) { warnArgs.push(` `, ...formatTrace(trace)); } console.warn(...warnArgs); } resetTracking(); isWarning = false; } function getComponentTrace() { let currentVNode = stack$1[stack$1.length - 1]; if (!currentVNode) { return []; } const normalizedStack = []; while (currentVNode) { const last2 = normalizedStack[0]; if (last2 && last2.vnode === currentVNode) { last2.recurseCount++; } else { normalizedStack.push({ vnode: currentVNode, recurseCount: 0 }); } const parentInstance = currentVNode.component && currentVNode.component.parent; currentVNode = parentInstance && parentInstance.vnode; } return normalizedStack; } function formatTrace(trace) { const logs = []; trace.forEach((entry, i2) => { logs.push(...i2 === 0 ? [] : [` `], ...formatTraceEntry(entry)); }); return logs; } function formatTraceEntry({ vnode, recurseCount }) { const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; const isRoot = vnode.component ? vnode.component.parent == null : false; const open = ` at <${formatComponentName( vnode.component, vnode.type, isRoot )}`; const close = `>` + postfix; return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close]; } function formatProps(props) { const res = []; const keys2 = Object.keys(props); keys2.slice(0, 3).forEach((key) => { res.push(...formatProp(key, props[key])); }); if (keys2.length > 3) { res.push(` ...`); } return res; } function formatProp(key, value, raw) { if (isString$5(value)) { value = JSON.stringify(value); return raw ? value : [`${key}=${value}`]; } else if (typeof value === "number" || typeof value === "boolean" || value == null) { return raw ? value : [`${key}=${value}`]; } else if (/* @__PURE__ */ isRef(value)) { value = formatProp(key, /* @__PURE__ */ toRaw(value.value), true); return raw ? value : [`${key}=Ref<`, value, `>`]; } else if (isFunction$6(value)) { return [`${key}=fn${value.name ? `<${value.name}>` : ``}`]; } else { value = /* @__PURE__ */ toRaw(value); return raw ? value : [`${key}=`, value]; } } function assertNumber(val, type5) { return; } const ErrorCodes$1 = { "SETUP_FUNCTION": 0, "0": "SETUP_FUNCTION", "RENDER_FUNCTION": 1, "1": "RENDER_FUNCTION", "NATIVE_EVENT_HANDLER": 5, "5": "NATIVE_EVENT_HANDLER", "COMPONENT_EVENT_HANDLER": 6, "6": "COMPONENT_EVENT_HANDLER", "VNODE_HOOK": 7, "7": "VNODE_HOOK", "DIRECTIVE_HOOK": 8, "8": "DIRECTIVE_HOOK", "TRANSITION_HOOK": 9, "9": "TRANSITION_HOOK", "APP_ERROR_HANDLER": 10, "10": "APP_ERROR_HANDLER", "APP_WARN_HANDLER": 11, "11": "APP_WARN_HANDLER", "FUNCTION_REF": 12, "12": "FUNCTION_REF", "ASYNC_COMPONENT_LOADER": 13, "13": "ASYNC_COMPONENT_LOADER", "SCHEDULER": 14, "14": "SCHEDULER", "COMPONENT_UPDATE": 15, "15": "COMPONENT_UPDATE", "APP_UNMOUNT_CLEANUP": 16, "16": "APP_UNMOUNT_CLEANUP" }; const ErrorTypeStrings$1 = { ["sp"]: "serverPrefetch hook", ["bc"]: "beforeCreate hook", ["c"]: "created hook", ["bm"]: "beforeMount hook", ["m"]: "mounted hook", ["bu"]: "beforeUpdate hook", ["u"]: "updated", ["bum"]: "beforeUnmount hook", ["um"]: "unmounted hook", ["a"]: "activated hook", ["da"]: "deactivated hook", ["ec"]: "errorCaptured hook", ["rtc"]: "renderTracked hook", ["rtg"]: "renderTriggered hook", [0]: "setup function", [1]: "render function", [2]: "watcher getter", [3]: "watcher callback", [4]: "watcher cleanup function", [5]: "native event handler", [6]: "component event handler", [7]: "vnode hook", [8]: "directive hook", [9]: "transition hook", [10]: "app errorHandler", [11]: "app warnHandler", [12]: "ref function", [13]: "async component loader", [14]: "scheduler flush", [15]: "component update", [16]: "app unmount cleanup function" }; function callWithErrorHandling(fn2, instance, type5, args) { try { return args ? fn2(...args) : fn2(); } catch (err) { handleError(err, instance, type5); } } function callWithAsyncErrorHandling(fn2, instance, type5, args) { if (isFunction$6(fn2)) { const res = callWithErrorHandling(fn2, instance, type5, args); if (res && isPromise$1(res)) { res.catch((err) => { handleError(err, instance, type5); }); } return res; } if (isArray$5(fn2)) { const values = []; for (let i2 = 0; i2 < fn2.length; i2++) { values.push(callWithAsyncErrorHandling(fn2[i2], instance, type5, args)); } return values; } } function handleError(err, instance, type5, throwInDev = true) { const contextVNode = instance ? instance.vnode : null; const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ; if (instance) { let cur = instance.parent; const exposedInstance = instance.proxy; const errorInfo = `https://vuejs.org/error-reference/#runtime-${type5}`; while (cur) { const errorCapturedHooks = cur.ec; if (errorCapturedHooks) { for (let i2 = 0; i2 < errorCapturedHooks.length; i2++) { if (errorCapturedHooks[i2](err, exposedInstance, errorInfo) === false) { return; } } } cur = cur.parent; } if (errorHandler) { pauseTracking(); callWithErrorHandling(errorHandler, null, 10, [ err, exposedInstance, errorInfo ]); resetTracking(); return; } } logError$1(err, type5, contextVNode, throwInDev, throwUnhandledErrorInProduction); } function logError$1(err, type5, contextVNode, throwInDev = true, throwInProd = false) { if (throwInProd) { throw err; } else { console.error(err); } } const queue = []; let flushIndex = -1; const pendingPostFlushCbs = []; let activePostFlushCbs = null; let postFlushIndex = 0; const resolvedPromise = /* @__PURE__ */ Promise.resolve(); let currentFlushPromise = null; function nextTick(fn2) { const p2 = currentFlushPromise || resolvedPromise; return fn2 ? p2.then(this ? fn2.bind(this) : fn2) : p2; } function findInsertionIndex$1(id2) { let start2 = flushIndex + 1; let end2 = queue.length; while (start2 < end2) { const middle = start2 + end2 >>> 1; const middleJob = queue[middle]; const middleJobId = getId(middleJob); if (middleJobId < id2 || middleJobId === id2 && middleJob.flags & 2) { start2 = middle + 1; } else { end2 = middle; } } return start2; } function queueJob(job) { if (!(job.flags & 1)) { const jobId = getId(job); const lastJob = queue[queue.length - 1]; if (!lastJob || // fast path when the job id is larger than the tail !(job.flags & 2) && jobId >= getId(lastJob)) { queue.push(job); } else { queue.splice(findInsertionIndex$1(jobId), 0, job); } job.flags |= 1; queueFlush(); } } function queueFlush() { if (!currentFlushPromise) { currentFlushPromise = resolvedPromise.then(flushJobs); } } function queuePostFlushCb(cb) { if (!isArray$5(cb)) { if (activePostFlushCbs && cb.id === -1) { activePostFlushCbs.splice(postFlushIndex + 1, 0, cb); } else if (!(cb.flags & 1)) { pendingPostFlushCbs.push(cb); cb.flags |= 1; } } else { pendingPostFlushCbs.push(...cb); } queueFlush(); } function flushPreFlushCbs(instance, seen2, i2 = flushIndex + 1) { for (; i2 < queue.length; i2++) { const cb = queue[i2]; if (cb && cb.flags & 2) { if (instance && cb.id !== instance.uid) { continue; } queue.splice(i2, 1); i2--; if (cb.flags & 4) { cb.flags &= -2; } cb(); if (!(cb.flags & 4)) { cb.flags &= -2; } } } } function flushPostFlushCbs(seen2) { if (pendingPostFlushCbs.length) { const deduped = [...new Set(pendingPostFlushCbs)].sort( (a2, b2) => getId(a2) - getId(b2) ); pendingPostFlushCbs.length = 0; if (activePostFlushCbs) { activePostFlushCbs.push(...deduped); return; } activePostFlushCbs = deduped; for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { const cb = activePostFlushCbs[postFlushIndex]; if (cb.flags & 4) { cb.flags &= -2; } if (!(cb.flags & 8)) cb(); cb.flags &= -2; } activePostFlushCbs = null; postFlushIndex = 0; } } const getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id; function flushJobs(seen2) { try { for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { const job = queue[flushIndex]; if (job && !(job.flags & 8)) { if (false) ; if (job.flags & 4) { job.flags &= ~1; } callWithErrorHandling( job, job.i, job.i ? 15 : 14 ); if (!(job.flags & 4)) { job.flags &= ~1; } } } } finally { for (; flushIndex < queue.length; flushIndex++) { const job = queue[flushIndex]; if (job) { job.flags &= -2; } } flushIndex = -1; queue.length = 0; flushPostFlushCbs(); currentFlushPromise = null; if (queue.length || pendingPostFlushCbs.length) { flushJobs(); } } } let devtools$1; let buffer = []; function setDevtoolsHook$1(hook, target) { var _a2, _b; devtools$1 = hook; if (devtools$1) { devtools$1.enabled = true; buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args)); buffer = []; } else if ( // handle late devtools injection - only do this if we are in an actual // browser environment to avoid the timer handle stalling test runner exit // (#4815) typeof window !== "undefined" && // some envs mock window but not fully window.HTMLElement && // also exclude jsdom // eslint-disable-next-line no-restricted-syntax !((_b = (_a2 = window.navigator) == null ? void 0 : _a2.userAgent) == null ? void 0 : _b.includes("jsdom")) ) { const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []; replay.push((newHook) => { setDevtoolsHook$1(newHook, target); }); setTimeout(() => { if (!devtools$1) { target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null; buffer = []; } }, 3e3); } else { buffer = []; } } let currentRenderingInstance = null; let currentScopeId = null; function setCurrentRenderingInstance(instance) { const prev = currentRenderingInstance; currentRenderingInstance = instance; currentScopeId = instance && instance.type.__scopeId || null; return prev; } function pushScopeId(id2) { currentScopeId = id2; } function popScopeId() { currentScopeId = null; } const withScopeId = (_id) => withCtx; function withCtx(fn2, ctx = currentRenderingInstance, isNonScopedSlot) { if (!ctx) return fn2; if (fn2._n) { return fn2; } const renderFnWithContext = (...args) => { if (renderFnWithContext._d) { setBlockTracking(-1); } const prevInstance = setCurrentRenderingInstance(ctx); let res; try { res = fn2(...args); } finally { setCurrentRenderingInstance(prevInstance); if (renderFnWithContext._d) { setBlockTracking(1); } } return res; }; renderFnWithContext._n = true; renderFnWithContext._c = true; renderFnWithContext._d = true; return renderFnWithContext; } function withDirectives(vnode, directives) { if (currentRenderingInstance === null) { return vnode; } const instance = getComponentPublicInstance(currentRenderingInstance); const bindings = vnode.dirs || (vnode.dirs = []); for (let i2 = 0; i2 < directives.length; i2++) { let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i2]; if (dir) { if (isFunction$6(dir)) { dir = { mounted: dir, updated: dir }; } if (dir.deep) { traverse(value); } bindings.push({ dir, instance, value, oldValue: void 0, arg, modifiers }); } } return vnode; } function invokeDirectiveHook(vnode, prevVNode, instance, name) { const bindings = vnode.dirs; const oldBindings = prevVNode && prevVNode.dirs; for (let i2 = 0; i2 < bindings.length; i2++) { const binding = bindings[i2]; if (oldBindings) { binding.oldValue = oldBindings[i2].value; } let hook = binding.dir[name]; if (hook) { pauseTracking(); callWithAsyncErrorHandling(hook, instance, 8, [ vnode.el, binding, vnode, prevVNode ]); resetTracking(); } } } function provide(key, value) { if (currentInstance) { let provides = currentInstance.provides; const parentProvides = currentInstance.parent && currentInstance.parent.provides; if (parentProvides === provides) { provides = currentInstance.provides = Object.create(parentProvides); } provides[key] = value; } } function inject(key, defaultValue, treatDefaultAsFactory = false) { const instance = getCurrentInstance$1(); if (instance || currentApp) { let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0; if (provides && key in provides) { return provides[key]; } else if (arguments.length > 1) { return treatDefaultAsFactory && isFunction$6(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue; } else ; } } function hasInjectionContext() { return !!(getCurrentInstance$1() || currentApp); } const ssrContextKey = /* @__PURE__ */ Symbol.for("v-scx"); const useSSRContext = () => { { const ctx = inject(ssrContextKey); return ctx; } }; function watchEffect(effect2, options) { return doWatch(effect2, null, options); } function watchPostEffect(effect2, options) { return doWatch( effect2, null, { flush: "post" } ); } function watchSyncEffect(effect2, options) { return doWatch( effect2, null, { flush: "sync" } ); } function watch(source, cb, options) { return doWatch(source, cb, options); } function doWatch(source, cb, options = EMPTY_OBJ) { const { immediate, deep, flush, once } = options; const baseWatchOptions = extend$4({}, options); const runsImmediately = cb && immediate || !cb && flush !== "post"; let ssrCleanup; if (isInSSRComponentSetup) { if (flush === "sync") { const ctx = useSSRContext(); ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []); } else if (!runsImmediately) { const watchStopHandle = () => { }; watchStopHandle.stop = NOOP; watchStopHandle.resume = NOOP; watchStopHandle.pause = NOOP; return watchStopHandle; } } const instance = currentInstance; baseWatchOptions.call = (fn2, type5, args) => callWithAsyncErrorHandling(fn2, instance, type5, args); let isPre = false; if (flush === "post") { baseWatchOptions.scheduler = (job) => { queuePostRenderEffect(job, instance && instance.suspense); }; } else if (flush !== "sync") { isPre = true; baseWatchOptions.scheduler = (job, isFirstRun) => { if (isFirstRun) { job(); } else { queueJob(job); } }; } baseWatchOptions.augmentJob = (job) => { if (cb) { job.flags |= 4; } if (isPre) { job.flags |= 2; if (instance) { job.id = instance.uid; job.i = instance; } } }; const watchHandle = watch$1(source, cb, baseWatchOptions); if (isInSSRComponentSetup) { if (ssrCleanup) { ssrCleanup.push(watchHandle); } else if (runsImmediately) { watchHandle(); } } return watchHandle; } function instanceWatch(source, value, options) { const publicThis = this.proxy; const getter = isString$5(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis); let cb; if (isFunction$6(value)) { cb = value; } else { cb = value.handler; options = value; } const reset2 = setCurrentInstance(this); const res = doWatch(getter, cb.bind(publicThis), options); reset2(); return res; } function createPathGetter(ctx, path2) { const segments = path2.split("."); return () => { let cur = ctx; for (let i2 = 0; i2 < segments.length && cur; i2++) { cur = cur[segments[i2]]; } return cur; }; } const pendingMounts = /* @__PURE__ */ new WeakMap(); const TeleportEndKey = /* @__PURE__ */ Symbol("_vte"); const isTeleport = (type5) => type5.__isTeleport; const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === ""); const isTeleportDeferred = (props) => props && (props.defer || props.defer === ""); const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target instanceof SVGElement; const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement; const resolveTarget = (props, select2) => { const targetSelector = props && props.to; if (isString$5(targetSelector)) { if (!select2) { return null; } else { const target = select2(targetSelector); return target; } } else { return targetSelector; } }; const TeleportImpl = { name: "Teleport", __isTeleport: true, process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace2, slotScopeIds, optimized, internals) { const { mc: mountChildren, pc: patchChildren, pbc: patchBlockChildren, o: { insert, querySelector, createText, createComment } } = internals; const disabled = isTeleportDisabled(n2.props); let { dynamicChildren } = n2; const mount = (vnode, container2, anchor2) => { if (vnode.shapeFlag & 16) { mountChildren( vnode.children, container2, anchor2, parentComponent, parentSuspense, namespace2, slotScopeIds, optimized ); } }; const mountToTarget = (vnode = n2) => { const disabled2 = isTeleportDisabled(vnode.props); const target = vnode.target = resolveTarget(vnode.props, querySelector); const targetAnchor = prepareAnchor(target, vnode, createText, insert); if (target) { if (namespace2 !== "svg" && isTargetSVG(target)) { namespace2 = "svg"; } else if (namespace2 !== "mathml" && isTargetMathML(target)) { namespace2 = "mathml"; } if (parentComponent && parentComponent.isCE) { (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target); } if (!disabled2) { mount(vnode, target, targetAnchor); updateCssVars(vnode, false); } } }; const queuePendingMount = (vnode) => { const mountJob = () => { if (pendingMounts.get(vnode) !== mountJob) return; pendingMounts.delete(vnode); if (isTeleportDisabled(vnode.props)) { mount(vnode, container, vnode.anchor); updateCssVars(vnode, true); } mountToTarget(vnode); }; pendingMounts.set(vnode, mountJob); queuePostRenderEffect(mountJob, parentSuspense); }; if (n1 == null) { const placeholder = n2.el = createText(""); const mainAnchor = n2.anchor = createText(""); insert(placeholder, container, anchor); insert(mainAnchor, container, anchor); if (isTeleportDeferred(n2.props) || parentSuspense && parentSuspense.pendingBranch) { queuePendingMount(n2); return; } if (disabled) { mount(n2, container, mainAnchor); updateCssVars(n2, true); } mountToTarget(); } else { n2.el = n1.el; const mainAnchor = n2.anchor = n1.anchor; const pendingMount = pendingMounts.get(n1); if (pendingMount) { pendingMount.flags |= 8; pendingMounts.delete(n1); queuePendingMount(n2); return; } n2.targetStart = n1.targetStart; const target = n2.target = n1.target; const targetAnchor = n2.targetAnchor = n1.targetAnchor; const wasDisabled = isTeleportDisabled(n1.props); const currentContainer = wasDisabled ? container : target; const currentAnchor = wasDisabled ? mainAnchor : targetAnchor; if (namespace2 === "svg" || isTargetSVG(target)) { namespace2 = "svg"; } else if (namespace2 === "mathml" || isTargetMathML(target)) { namespace2 = "mathml"; } if (dynamicChildren) { patchBlockChildren( n1.dynamicChildren, dynamicChildren, currentContainer, parentComponent, parentSuspense, namespace2, slotScopeIds ); traverseStaticChildren(n1, n2, true); } else if (!optimized) { patchChildren( n1, n2, currentContainer, currentAnchor, parentComponent, parentSuspense, namespace2, slotScopeIds, false ); } if (disabled) { if (!wasDisabled) { moveTeleport( n2, container, mainAnchor, internals, 1 ); } else { if (n2.props && n1.props && n2.props.to !== n1.props.to) { n2.props.to = n1.props.to; } } } else { if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) { const nextTarget = n2.target = resolveTarget( n2.props, querySelector ); if (nextTarget) { moveTeleport( n2, nextTarget, null, internals, 0 ); } } else if (wasDisabled) { moveTeleport( n2, target, targetAnchor, internals, 1 ); } } updateCssVars(n2, disabled); } }, remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) { const { shapeFlag, children: children2, anchor, targetStart, targetAnchor, target, props } = vnode; let shouldRemove = doRemove || !isTeleportDisabled(props); const pendingMount = pendingMounts.get(vnode); if (pendingMount) { pendingMount.flags |= 8; pendingMounts.delete(vnode); shouldRemove = false; } if (target) { hostRemove(targetStart); hostRemove(targetAnchor); } doRemove && hostRemove(anchor); if (shapeFlag & 16) { for (let i2 = 0; i2 < children2.length; i2++) { const child = children2[i2]; unmount( child, parentComponent, parentSuspense, shouldRemove, !!child.dynamicChildren ); } } }, move: moveTeleport, hydrate: hydrateTeleport }; function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) { if (moveType === 0) { insert(vnode.targetAnchor, container, parentAnchor); } const { el, anchor, shapeFlag, children: children2, props } = vnode; const isReorder = moveType === 2; if (isReorder) { insert(el, container, parentAnchor); } if (!isReorder || isTeleportDisabled(props)) { if (shapeFlag & 16) { for (let i2 = 0; i2 < children2.length; i2++) { move( children2[i2], container, parentAnchor, 2 ); } } } if (isReorder) { insert(anchor, container, parentAnchor); } } function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, { o: { nextSibling: nextSibling2, parentNode: parentNode2, querySelector, insert, createText } }, hydrateChildren) { function hydrateAnchor(target2, targetNode) { let targetAnchor = targetNode; while (targetAnchor) { if (targetAnchor && targetAnchor.nodeType === 8) { if (targetAnchor.data === "teleport start anchor") { vnode.targetStart = targetAnchor; } else if (targetAnchor.data === "teleport anchor") { vnode.targetAnchor = targetAnchor; target2._lpa = vnode.targetAnchor && nextSibling2(vnode.targetAnchor); break; } } targetAnchor = nextSibling2(targetAnchor); } } function hydrateDisabledTeleport(node2, vnode2) { vnode2.anchor = hydrateChildren( nextSibling2(node2), vnode2, parentNode2(node2), parentComponent, parentSuspense, slotScopeIds, optimized ); } const target = vnode.target = resolveTarget( vnode.props, querySelector ); const disabled = isTeleportDisabled(vnode.props); if (target) { const targetNode = target._lpa || target.firstChild; if (vnode.shapeFlag & 16) { if (disabled) { hydrateDisabledTeleport(node, vnode); hydrateAnchor(target, targetNode); if (!vnode.targetAnchor) { prepareAnchor( target, vnode, createText, insert, // if target is the same as the main view, insert anchors before current node // to avoid hydrating mismatch parentNode2(node) === target ? node : null ); } } else { vnode.anchor = nextSibling2(node); hydrateAnchor(target, targetNode); if (!vnode.targetAnchor) { prepareAnchor(target, vnode, createText, insert); } hydrateChildren( targetNode && nextSibling2(targetNode), vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized ); } } updateCssVars(vnode, disabled); } else if (disabled) { if (vnode.shapeFlag & 16) { hydrateDisabledTeleport(node, vnode); vnode.targetStart = node; vnode.targetAnchor = nextSibling2(node); } } return vnode.anchor && nextSibling2(vnode.anchor); } const Teleport = TeleportImpl; function updateCssVars(vnode, isDisabled) { const ctx = vnode.ctx; if (ctx && ctx.ut) { let node, anchor; if (isDisabled) { node = vnode.el; anchor = vnode.anchor; } else { node = vnode.targetStart; anchor = vnode.targetAnchor; } while (node && node !== anchor) { if (node.nodeType === 1) node.setAttribute("data-v-owner", ctx.uid); node = node.nextSibling; } ctx.ut(); } } function prepareAnchor(target, vnode, createText, insert, anchor = null) { const targetStart = vnode.targetStart = createText(""); const targetAnchor = vnode.targetAnchor = createText(""); targetStart[TeleportEndKey] = targetAnchor; if (target) { insert(targetStart, target, anchor); insert(targetAnchor, target, anchor); } return targetAnchor; } const leaveCbKey = /* @__PURE__ */ Symbol("_leaveCb"); const enterCbKey$1 = /* @__PURE__ */ Symbol("_enterCb"); function useTransitionState() { const state = { isMounted: false, isLeaving: false, isUnmounting: false, leavingVNodes: /* @__PURE__ */ new Map() }; onMounted(() => { state.isMounted = true; }); onBeforeUnmount(() => { state.isUnmounting = true; }); return state; } const TransitionHookValidator = [Function, Array]; const BaseTransitionPropsValidators = { mode: String, appear: Boolean, persisted: Boolean, // enter onBeforeEnter: TransitionHookValidator, onEnter: TransitionHookValidator, onAfterEnter: TransitionHookValidator, onEnterCancelled: TransitionHookValidator, // leave onBeforeLeave: TransitionHookValidator, onLeave: TransitionHookValidator, onAfterLeave: TransitionHookValidator, onLeaveCancelled: TransitionHookValidator, // appear onBeforeAppear: TransitionHookValidator, onAppear: TransitionHookValidator, onAfterAppear: TransitionHookValidator, onAppearCancelled: TransitionHookValidator }; const recursiveGetSubtree = (instance) => { const subTree = instance.subTree; return subTree.component ? recursiveGetSubtree(subTree.component) : subTree; }; const BaseTransitionImpl = { name: `BaseTransition`, props: BaseTransitionPropsValidators, setup(props, { slots }) { const instance = getCurrentInstance$1(); const state = useTransitionState(); return () => { const children2 = slots.default && getTransitionRawChildren(slots.default(), true); if (!children2 || !children2.length) { return; } const child = findNonCommentChild(children2); const rawProps = /* @__PURE__ */ toRaw(props); const { mode } = rawProps; if (state.isLeaving) { return emptyPlaceholder(child); } const innerChild = getInnerChild$1(child); if (!innerChild) { return emptyPlaceholder(child); } let enterHooks = resolveTransitionHooks( innerChild, rawProps, state, instance, // #11061, ensure enterHooks is fresh after clone (hooks) => enterHooks = hooks ); if (innerChild.type !== Comment) { setTransitionHooks(innerChild, enterHooks); } let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree); if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) { let leavingHooks = resolveTransitionHooks( oldInnerChild, rawProps, state, instance ); setTransitionHooks(oldInnerChild, leavingHooks); if (mode === "out-in" && innerChild.type !== Comment) { state.isLeaving = true; leavingHooks.afterLeave = () => { state.isLeaving = false; if (!(instance.job.flags & 8)) { instance.update(); } delete leavingHooks.afterLeave; oldInnerChild = void 0; }; return emptyPlaceholder(child); } else if (mode === "in-out" && innerChild.type !== Comment) { leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => { const leavingVNodesCache = getLeavingNodesForType( state, oldInnerChild ); leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild; el[leaveCbKey] = () => { earlyRemove(); el[leaveCbKey] = void 0; delete enterHooks.delayedLeave; oldInnerChild = void 0; }; enterHooks.delayedLeave = () => { delayedLeave(); delete enterHooks.delayedLeave; oldInnerChild = void 0; }; }; } else { oldInnerChild = void 0; } } else if (oldInnerChild) { oldInnerChild = void 0; } return child; }; } }; function findNonCommentChild(children2) { let child = children2[0]; if (children2.length > 1) { for (const c2 of children2) { if (c2.type !== Comment) { child = c2; break; } } } return child; } const BaseTransition = BaseTransitionImpl; function getLeavingNodesForType(state, vnode) { const { leavingVNodes } = state; let leavingVNodesCache = leavingVNodes.get(vnode.type); if (!leavingVNodesCache) { leavingVNodesCache = /* @__PURE__ */ Object.create(null); leavingVNodes.set(vnode.type, leavingVNodesCache); } return leavingVNodesCache; } function resolveTransitionHooks(vnode, props, state, instance, postClone) { const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props; const key = String(vnode.key); const leavingVNodesCache = getLeavingNodesForType(state, vnode); const callHook2 = (hook, args) => { hook && callWithAsyncErrorHandling( hook, instance, 9, args ); }; const callAsyncHook = (hook, args) => { const done = args[1]; callHook2(hook, args); if (isArray$5(hook)) { if (hook.every((hook2) => hook2.length <= 1)) done(); } else if (hook.length <= 1) { done(); } }; const hooks = { mode, persisted, beforeEnter(el) { let hook = onBeforeEnter; if (!state.isMounted) { if (appear) { hook = onBeforeAppear || onBeforeEnter; } else { return; } } if (el[leaveCbKey]) { el[leaveCbKey]( true /* cancelled */ ); } const leavingVNode = leavingVNodesCache[key]; if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) { leavingVNode.el[leaveCbKey](); } callHook2(hook, [el]); }, enter(el) { if (leavingVNodesCache[key] === vnode) return; let hook = onEnter; let afterHook = onAfterEnter; let cancelHook = onEnterCancelled; if (!state.isMounted) { if (appear) { hook = onAppear || onEnter; afterHook = onAfterAppear || onAfterEnter; cancelHook = onAppearCancelled || onEnterCancelled; } else { return; } } let called = false; el[enterCbKey$1] = (cancelled) => { if (called) return; called = true; if (cancelled) { callHook2(cancelHook, [el]); } else { callHook2(afterHook, [el]); } if (hooks.delayedLeave) { hooks.delayedLeave(); } el[enterCbKey$1] = void 0; }; const done = el[enterCbKey$1].bind(null, false); if (hook) { callAsyncHook(hook, [el, done]); } else { done(); } }, leave(el, remove2) { const key2 = String(vnode.key); if (el[enterCbKey$1]) { el[enterCbKey$1]( true /* cancelled */ ); } if (state.isUnmounting) { return remove2(); } callHook2(onBeforeLeave, [el]); let called = false; el[leaveCbKey] = (cancelled) => { if (called) return; called = true; remove2(); if (cancelled) { callHook2(onLeaveCancelled, [el]); } else { callHook2(onAfterLeave, [el]); } el[leaveCbKey] = void 0; if (leavingVNodesCache[key2] === vnode) { delete leavingVNodesCache[key2]; } }; const done = el[leaveCbKey].bind(null, false); leavingVNodesCache[key2] = vnode; if (onLeave) { callAsyncHook(onLeave, [el, done]); } else { done(); } }, clone(vnode2) { const hooks2 = resolveTransitionHooks( vnode2, props, state, instance, postClone ); if (postClone) postClone(hooks2); return hooks2; } }; return hooks; } function emptyPlaceholder(vnode) { if (isKeepAlive(vnode)) { vnode = cloneVNode(vnode); vnode.children = null; return vnode; } } function getInnerChild$1(vnode) { if (!isKeepAlive(vnode)) { if (isTeleport(vnode.type) && vnode.children) { return findNonCommentChild(vnode.children); } return vnode; } if (vnode.component) { return vnode.component.subTree; } const { shapeFlag, children: children2 } = vnode; if (children2) { if (shapeFlag & 16) { return children2[0]; } if (shapeFlag & 32 && isFunction$6(children2.default)) { return children2.default(); } } } function setTransitionHooks(vnode, hooks) { if (vnode.shapeFlag & 6 && vnode.component) { vnode.transition = hooks; setTransitionHooks(vnode.component.subTree, hooks); } else if (vnode.shapeFlag & 128) { vnode.ssContent.transition = hooks.clone(vnode.ssContent); vnode.ssFallback.transition = hooks.clone(vnode.ssFallback); } else { vnode.transition = hooks; } } function getTransitionRawChildren(children2, keepComment = false, parentKey) { let ret = []; let keyedFragmentCount = 0; for (let i2 = 0; i2 < children2.length; i2++) { let child = children2[i2]; const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i2); if (child.type === Fragment) { if (child.patchFlag & 128) keyedFragmentCount++; ret = ret.concat( getTransitionRawChildren(child.children, keepComment, key) ); } else if (keepComment || child.type !== Comment) { ret.push(key != null ? cloneVNode(child, { key }) : child); } } if (keyedFragmentCount > 1) { for (let i2 = 0; i2 < ret.length; i2++) { ret[i2].patchFlag = -2; } } return ret; } // @__NO_SIDE_EFFECTS__ function defineComponent(options, extraOptions) { return isFunction$6(options) ? ( // #8236: extend call and options.name access are considered side-effects // by Rollup, so we have to wrap it in a pure-annotated IIFE. /* @__PURE__ */ (() => extend$4({ name: options.name }, extraOptions, { setup: options }))() ) : options; } function useId() { const i2 = getCurrentInstance$1(); if (i2) { return (i2.appContext.config.idPrefix || "v") + "-" + i2.ids[0] + i2.ids[1]++; } return ""; } function markAsyncBoundary(instance) { instance.ids = [instance.ids[0] + instance.ids[2]++ + "-", 0, 0]; } function useTemplateRef(key) { const i2 = getCurrentInstance$1(); const r2 = /* @__PURE__ */ shallowRef(null); if (i2) { const refs = i2.refs === EMPTY_OBJ ? i2.refs = {} : i2.refs; { Object.defineProperty(refs, key, { enumerable: true, get: () => r2.value, set: (val) => r2.value = val }); } } const ret = r2; return ret; } function isTemplateRefKey(refs, key) { let desc; return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable); } const pendingSetRefMap = /* @__PURE__ */ new WeakMap(); function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) { if (isArray$5(rawRef)) { rawRef.forEach( (r2, i2) => setRef( r2, oldRawRef && (isArray$5(oldRawRef) ? oldRawRef[i2] : oldRawRef), parentSuspense, vnode, isUnmount ) ); return; } if (isAsyncWrapper(vnode) && !isUnmount) { if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) { setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree); } return; } const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el; const value = isUnmount ? null : refValue; const { i: owner, r: ref3 } = rawRef; const oldRef = oldRawRef && oldRawRef.r; const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs; const setupState = owner.setupState; const rawSetupState = /* @__PURE__ */ toRaw(setupState); const canSetSetupRef = setupState === EMPTY_OBJ ? NO : (key) => { if (isTemplateRefKey(refs, key)) { return false; } return hasOwn$2(rawSetupState, key); }; const canSetRef = (ref22, key) => { if (key && isTemplateRefKey(refs, key)) { return false; } return true; }; if (oldRef != null && oldRef !== ref3) { invalidatePendingSetRef(oldRawRef); if (isString$5(oldRef)) { refs[oldRef] = null; if (canSetSetupRef(oldRef)) { setupState[oldRef] = null; } } else if (/* @__PURE__ */ isRef(oldRef)) { const oldRawRefAtom = oldRawRef; if (canSetRef(oldRef, oldRawRefAtom.k)) { oldRef.value = null; } if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null; } } if (isFunction$6(ref3)) { callWithErrorHandling(ref3, owner, 12, [value, refs]); } else { const _isString = isString$5(ref3); const _isRef = /* @__PURE__ */ isRef(ref3); if (_isString || _isRef) { const doSet = () => { if (rawRef.f) { const existing = _isString ? canSetSetupRef(ref3) ? setupState[ref3] : refs[ref3] : canSetRef() || !rawRef.k ? ref3.value : refs[rawRef.k]; if (isUnmount) { isArray$5(existing) && remove$2(existing, refValue); } else { if (!isArray$5(existing)) { if (_isString) { refs[ref3] = [refValue]; if (canSetSetupRef(ref3)) { setupState[ref3] = refs[ref3]; } } else { const newVal = [refValue]; if (canSetRef(ref3, rawRef.k)) { ref3.value = newVal; } if (rawRef.k) refs[rawRef.k] = newVal; } } else if (!existing.includes(refValue)) { existing.push(refValue); } } } else if (_isString) { refs[ref3] = value; if (canSetSetupRef(ref3)) { setupState[ref3] = value; } } else if (_isRef) { if (canSetRef(ref3, rawRef.k)) { ref3.value = value; } if (rawRef.k) refs[rawRef.k] = value; } else ; }; if (value) { const job = () => { doSet(); pendingSetRefMap.delete(rawRef); }; job.id = -1; pendingSetRefMap.set(rawRef, job); queuePostRenderEffect(job, parentSuspense); } else { invalidatePendingSetRef(rawRef); doSet(); } } } } function invalidatePendingSetRef(rawRef) { const pendingSetRef = pendingSetRefMap.get(rawRef); if (pendingSetRef) { pendingSetRef.flags |= 8; pendingSetRefMap.delete(rawRef); } } let hasLoggedMismatchError = false; const logMismatchError = () => { if (hasLoggedMismatchError) { return; } console.error("Hydration completed but contains mismatches."); hasLoggedMismatchError = true; }; const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject"; const isMathMLContainer = (container) => container.namespaceURI.includes("MathML"); const getContainerType = (container) => { if (container.nodeType !== 1) return void 0; if (isSVGContainer(container)) return "svg"; if (isMathMLContainer(container)) return "mathml"; return void 0; }; const isComment = (node) => node.nodeType === 8; function createHydrationFunctions(rendererInternals) { const { mt: mountComponent, p: patch2, o: { patchProp: patchProp2, createText, nextSibling: nextSibling2, parentNode: parentNode2, remove: remove2, insert, createComment } } = rendererInternals; const hydrate2 = (vnode, container) => { if (!container.hasChildNodes()) { patch2(null, vnode, container); flushPostFlushCbs(); container._vnode = vnode; return; } hydrateNode(container.firstChild, vnode, null, null, null); flushPostFlushCbs(); container._vnode = vnode; }; const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => { optimized = optimized || !!vnode.dynamicChildren; const isFragmentStart = isComment(node) && node.data === "["; const onMismatch = () => handleMismatch( node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart ); const { type: type5, ref: ref3, shapeFlag, patchFlag } = vnode; let domType = node.nodeType; vnode.el = node; if (patchFlag === -2) { optimized = false; vnode.dynamicChildren = null; } let nextNode = null; switch (type5) { case Text: if (domType !== 3) { if (vnode.children === "") { insert(vnode.el = createText(""), parentNode2(node), node); nextNode = node; } else { nextNode = onMismatch(); } } else { if (node.data !== vnode.children) { logMismatchError(); node.data = vnode.children; } nextNode = nextSibling2(node); } break; case Comment: if (isTemplateNode2(node)) { nextNode = nextSibling2(node); replaceNode( vnode.el = node.content.firstChild, node, parentComponent ); } else if (domType !== 8 || isFragmentStart) { nextNode = onMismatch(); } else { nextNode = nextSibling2(node); } break; case Static: if (isFragmentStart) { node = nextSibling2(node); domType = node.nodeType; } if (domType === 1 || domType === 3) { nextNode = node; const needToAdoptContent = !vnode.children.length; for (let i2 = 0; i2 < vnode.staticCount; i2++) { if (needToAdoptContent) vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data; if (i2 === vnode.staticCount - 1) { vnode.anchor = nextNode; } nextNode = nextSibling2(nextNode); } return isFragmentStart ? nextSibling2(nextNode) : nextNode; } else { onMismatch(); } break; case Fragment: if (!isFragmentStart) { nextNode = onMismatch(); } else { nextNode = hydrateFragment( node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized ); } break; default: if (shapeFlag & 1) { if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode2(node)) { nextNode = onMismatch(); } else { nextNode = hydrateElement( node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized ); } } else if (shapeFlag & 6) { vnode.slotScopeIds = slotScopeIds; const container = parentNode2(node); if (isFragmentStart) { nextNode = locateClosingAnchor(node); } else if (isComment(node) && node.data === "teleport start") { nextNode = locateClosingAnchor(node, node.data, "teleport end"); } else { nextNode = nextSibling2(node); } mountComponent( vnode, container, null, parentComponent, parentSuspense, getContainerType(container), optimized ); if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) { let subTree; if (isFragmentStart) { subTree = createVNode$1(Fragment); subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild; } else { subTree = node.nodeType === 3 ? createTextVNode("") : createVNode$1("div"); } subTree.el = node; vnode.component.subTree = subTree; } } else if (shapeFlag & 64) { if (domType !== 8) { nextNode = onMismatch(); } else { nextNode = vnode.type.hydrate( node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren ); } } else if (shapeFlag & 128) { nextNode = vnode.type.hydrate( node, vnode, parentComponent, parentSuspense, getContainerType(parentNode2(node)), slotScopeIds, optimized, rendererInternals, hydrateNode ); } else ; } if (ref3 != null) { setRef(ref3, null, parentSuspense, vnode); } return nextNode; }; const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { optimized = optimized || !!vnode.dynamicChildren; const { type: type5, props, patchFlag, shapeFlag, dirs, transition } = vnode; const forcePatch = type5 === "input" || type5 === "option"; if (forcePatch || patchFlag !== -1) { if (dirs) { invokeDirectiveHook(vnode, null, parentComponent, "created"); } let needCallTransitionHooks = false; if (isTemplateNode2(el)) { needCallTransitionHooks = needTransition( null, // no need check parentSuspense in hydration transition ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear; const content = el.content.firstChild; if (needCallTransitionHooks) { const cls = content.getAttribute("class"); if (cls) content.$cls = cls; transition.beforeEnter(content); } replaceNode(content, el, parentComponent); vnode.el = el = content; } if (shapeFlag & 16 && // skip if element has innerHTML / textContent !(props && (props.innerHTML || props.textContent))) { let next = hydrateChildren( el.firstChild, vnode, el, parentComponent, parentSuspense, slotScopeIds, optimized ); while (next) { if (!isMismatchAllowed( el, 1 /* CHILDREN */ )) { logMismatchError(); } const cur = next; next = next.nextSibling; remove2(cur); } } else if (shapeFlag & 8) { let clientText = vnode.children; if (clientText[0] === "\n" && (el.tagName === "PRE" || el.tagName === "TEXTAREA")) { clientText = clientText.slice(1); } const { textContent } = el; if (textContent !== clientText && // innerHTML normalize \r\n or \r into a single \n in the DOM textContent !== clientText.replace(/\r\n|\r/g, "\n")) { if (!isMismatchAllowed( el, 0 /* TEXT */ )) { logMismatchError(); } el.textContent = vnode.children; } } if (props) { if (forcePatch || !optimized || patchFlag & (16 | 32)) { const isCustomElement = el.tagName.includes("-"); for (const key in props) { if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers key[0] === "." || isCustomElement && !isReservedProp(key)) { patchProp2(el, key, null, props[key], void 0, parentComponent); } } } else if (props.onClick) { patchProp2( el, "onClick", null, props.onClick, void 0, parentComponent ); } else if (patchFlag & 4 && /* @__PURE__ */ isReactive(props.style)) { for (const key in props.style) props.style[key]; } } let vnodeHooks; if (vnodeHooks = props && props.onVnodeBeforeMount) { invokeVNodeHook(vnodeHooks, parentComponent, vnode); } if (dirs) { invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); } if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) { queueEffectWithSuspense(() => { vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode); needCallTransitionHooks && transition.enter(el); dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); }, parentSuspense); } } return el.nextSibling; }; const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => { optimized = optimized || !!parentVNode.dynamicChildren; const children2 = parentVNode.children; const l2 = children2.length; for (let i2 = 0; i2 < l2; i2++) { const vnode = optimized ? children2[i2] : children2[i2] = normalizeVNode(children2[i2]); const isText = vnode.type === Text; if (node) { if (isText && !optimized) { if (i2 + 1 < l2 && normalizeVNode(children2[i2 + 1]).type === Text) { insert( createText( node.data.slice(vnode.children.length) ), container, nextSibling2(node) ); node.data = vnode.children; } } node = hydrateNode( node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized ); } else if (isText && !vnode.children) { insert(vnode.el = createText(""), container); } else { if (!isMismatchAllowed( container, 1 /* CHILDREN */ )) { logMismatchError(); } patch2( null, vnode, container, null, parentComponent, parentSuspense, getContainerType(container), slotScopeIds ); } } return node; }; const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { const { slotScopeIds: fragmentSlotScopeIds } = vnode; if (fragmentSlotScopeIds) { slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; } const container = parentNode2(node); const next = hydrateChildren( nextSibling2(node), vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized ); if (next && isComment(next) && next.data === "]") { return nextSibling2(vnode.anchor = next); } else { logMismatchError(); insert(vnode.anchor = createComment(`]`), container, next); return next; } }; const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => { if (!isMismatchAllowed( node.parentElement, 1 /* CHILDREN */ )) { logMismatchError(); } vnode.el = null; if (isFragment) { const end2 = locateClosingAnchor(node); while (true) { const next2 = nextSibling2(node); if (next2 && next2 !== end2) { remove2(next2); } else { break; } } } const next = nextSibling2(node); const container = parentNode2(node); remove2(node); patch2( null, vnode, container, next, parentComponent, parentSuspense, getContainerType(container), slotScopeIds ); if (parentComponent) { parentComponent.vnode.el = vnode.el; updateHOCHostEl(parentComponent, vnode.el); } return next; }; const locateClosingAnchor = (node, open = "[", close = "]") => { let match2 = 0; while (node) { node = nextSibling2(node); if (node && isComment(node)) { if (node.data === open) match2++; if (node.data === close) { if (match2 === 0) { return nextSibling2(node); } else { match2--; } } } } return node; }; const replaceNode = (newNode, oldNode, parentComponent) => { const parentNode22 = oldNode.parentNode; if (parentNode22) { parentNode22.replaceChild(newNode, oldNode); } let parent2 = parentComponent; while (parent2) { if (parent2.vnode.el === oldNode) { parent2.vnode.el = parent2.subTree.el = newNode; } parent2 = parent2.parent; } }; const isTemplateNode2 = (node) => { return node.nodeType === 1 && node.tagName === "TEMPLATE"; }; return [hydrate2, hydrateNode]; } const allowMismatchAttr = "data-allow-mismatch"; const MismatchTypeString = { [ 0 /* TEXT */ ]: "text", [ 1 /* CHILDREN */ ]: "children", [ 2 /* CLASS */ ]: "class", [ 3 /* STYLE */ ]: "style", [ 4 /* ATTRIBUTE */ ]: "attribute" }; function isMismatchAllowed(el, allowedType) { if (allowedType === 0 || allowedType === 1) { while (el && !el.hasAttribute(allowMismatchAttr)) { el = el.parentElement; } } const allowedAttr = el && el.getAttribute(allowMismatchAttr); if (allowedAttr == null) { return false; } else if (allowedAttr === "") { return true; } else { const list2 = allowedAttr.split(","); if (allowedType === 0 && list2.includes("children")) { return true; } return list2.includes(MismatchTypeString[allowedType]); } } const requestIdleCallback = getGlobalThis$1().requestIdleCallback || ((cb) => setTimeout(cb, 1)); const cancelIdleCallback = getGlobalThis$1().cancelIdleCallback || ((id2) => clearTimeout(id2)); const hydrateOnIdle = (timeout2 = 1e4) => (hydrate2) => { const id2 = requestIdleCallback(hydrate2, { timeout: timeout2 }); return () => cancelIdleCallback(id2); }; function elementIsVisibleInViewport(el) { const { top, left, bottom, right } = el.getBoundingClientRect(); const { innerHeight, innerWidth } = window; return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth); } const hydrateOnVisible = (opts) => (hydrate2, forEach2) => { const ob = new IntersectionObserver((entries) => { for (const e2 of entries) { if (!e2.isIntersecting) continue; ob.disconnect(); hydrate2(); break; } }, opts); forEach2((el) => { if (!(el instanceof Element)) return; if (elementIsVisibleInViewport(el)) { hydrate2(); ob.disconnect(); return false; } ob.observe(el); }); return () => ob.disconnect(); }; const hydrateOnMediaQuery = (query) => (hydrate2) => { if (query) { const mql = matchMedia(query); if (mql.matches) { hydrate2(); } else { mql.addEventListener("change", hydrate2, { once: true }); return () => mql.removeEventListener("change", hydrate2); } } }; const hydrateOnInteraction = (interactions = []) => (hydrate2, forEach2) => { if (isString$5(interactions)) interactions = [interactions]; let hasHydrated = false; const doHydrate = (e2) => { if (!hasHydrated) { hasHydrated = true; teardown(); hydrate2(); e2.target.dispatchEvent(new e2.constructor(e2.type, e2)); } }; const teardown = () => { forEach2((el) => { for (const i2 of interactions) { el.removeEventListener(i2, doHydrate); } }); }; forEach2((el) => { for (const i2 of interactions) { el.addEventListener(i2, doHydrate, { once: true }); } }); return teardown; }; function forEachElement(node, cb) { if (isComment(node) && node.data === "[") { let depth = 1; let next = node.nextSibling; while (next) { if (next.nodeType === 1) { const result = cb(next); if (result === false) { break; } } else if (isComment(next)) { if (next.data === "]") { if (--depth === 0) break; } else if (next.data === "[") { depth++; } } next = next.nextSibling; } } else { cb(node); } } const isAsyncWrapper = (i2) => !!i2.type.__asyncLoader; // @__NO_SIDE_EFFECTS__ function defineAsyncComponent(source) { if (isFunction$6(source)) { source = { loader: source }; } const { loader, loadingComponent, errorComponent, delay = 200, hydrate: hydrateStrategy, timeout: timeout2, // undefined = never times out suspensible = true, onError: userOnError } = source; let pendingRequest = null; let resolvedComp; let retries = 0; const retry = () => { retries++; pendingRequest = null; return load(); }; const load = () => { let thisRequest; return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => { err = err instanceof Error ? err : new Error(String(err)); if (userOnError) { return new Promise((resolve2, reject) => { const userRetry = () => resolve2(retry()); const userFail = () => reject(err); userOnError(err, userRetry, userFail, retries + 1); }); } else { throw err; } }).then((comp) => { if (thisRequest !== pendingRequest && pendingRequest) { return pendingRequest; } if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) { comp = comp.default; } resolvedComp = comp; return comp; })); }; return /* @__PURE__ */ defineComponent({ name: "AsyncComponentWrapper", __asyncLoader: load, __asyncHydrate(el, instance, hydrate2) { let patched = false; (instance.bu || (instance.bu = [])).push(() => patched = true); const performHydrate = () => { if (patched) { return; } hydrate2(); }; const doHydrate = hydrateStrategy ? () => { const teardown = hydrateStrategy( performHydrate, (cb) => forEachElement(el, cb) ); if (teardown) { (instance.bum || (instance.bum = [])).push(teardown); } } : performHydrate; if (resolvedComp) { doHydrate(); } else { load().then(() => !instance.isUnmounted && doHydrate()); } }, get __asyncResolved() { return resolvedComp; }, setup() { const instance = currentInstance; markAsyncBoundary(instance); if (resolvedComp) { return () => createInnerComp(resolvedComp, instance); } const onError = (err) => { pendingRequest = null; handleError( err, instance, 13, !errorComponent ); }; if (suspensible && instance.suspense || isInSSRComponentSetup) { return load().then((comp) => { return () => createInnerComp(comp, instance); }).catch((err) => { onError(err); return () => errorComponent ? createVNode$1(errorComponent, { error: err }) : null; }); } const loaded = /* @__PURE__ */ ref$1(false); const error2 = /* @__PURE__ */ ref$1(); const delayed = /* @__PURE__ */ ref$1(!!delay); if (delay) { setTimeout(() => { delayed.value = false; }, delay); } if (timeout2 != null) { setTimeout(() => { if (!loaded.value && !error2.value) { const err = new Error( `Async component timed out after ${timeout2}ms.` ); onError(err); error2.value = err; } }, timeout2); } load().then(() => { loaded.value = true; if (instance.parent && isKeepAlive(instance.parent.vnode)) { instance.parent.update(); } }).catch((err) => { onError(err); error2.value = err; }); return () => { if (loaded.value && resolvedComp) { return createInnerComp(resolvedComp, instance); } else if (error2.value && errorComponent) { return createVNode$1(errorComponent, { error: error2.value }); } else if (loadingComponent && !delayed.value) { return createInnerComp( loadingComponent, instance ); } }; } }); } function createInnerComp(comp, parent2) { const { ref: ref22, props, children: children2, ce: ce2 } = parent2.vnode; const vnode = createVNode$1(comp, props, children2); vnode.ref = ref22; vnode.ce = ce2; delete parent2.vnode.ce; return vnode; } const isKeepAlive = (vnode) => vnode.type.__isKeepAlive; const KeepAliveImpl = { name: `KeepAlive`, // Marker for special handling inside the renderer. We are not using a === // check directly on KeepAlive in the renderer, because importing it directly // would prevent it from being tree-shaken. __isKeepAlive: true, props: { include: [String, RegExp, Array], exclude: [String, RegExp, Array], max: [String, Number] }, setup(props, { slots }) { const instance = getCurrentInstance$1(); const sharedContext = instance.ctx; if (!sharedContext.renderer) { return () => { const children2 = slots.default && slots.default(); return children2 && children2.length === 1 ? children2[0] : children2; }; } const cache2 = /* @__PURE__ */ new Map(); const keys2 = /* @__PURE__ */ new Set(); let current = null; const parentSuspense = instance.suspense; const { renderer: { p: patch2, m: move, um: _unmount, o: { createElement: createElement2 } } } = sharedContext; const storageContainer = createElement2("div"); sharedContext.activate = (vnode, container, anchor, namespace2, optimized) => { const instance2 = vnode.component; move(vnode, container, anchor, 0, parentSuspense); patch2( instance2.vnode, vnode, container, anchor, instance2, parentSuspense, namespace2, vnode.slotScopeIds, optimized ); queuePostRenderEffect(() => { instance2.isDeactivated = false; if (instance2.a) { invokeArrayFns(instance2.a); } const vnodeHook = vnode.props && vnode.props.onVnodeMounted; if (vnodeHook) { invokeVNodeHook(vnodeHook, instance2.parent, vnode); } }, parentSuspense); }; sharedContext.deactivate = (vnode) => { const instance2 = vnode.component; invalidateMount(instance2.m); invalidateMount(instance2.a); move(vnode, storageContainer, null, 1, parentSuspense); queuePostRenderEffect(() => { if (instance2.da) { invokeArrayFns(instance2.da); } const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted; if (vnodeHook) { invokeVNodeHook(vnodeHook, instance2.parent, vnode); } instance2.isDeactivated = true; }, parentSuspense); }; function unmount(vnode) { resetShapeFlag(vnode); _unmount(vnode, instance, parentSuspense, true); } function pruneCache(filter3) { cache2.forEach((vnode, key) => { const name = getComponentName( isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : vnode.type ); if (name && !filter3(name)) { pruneCacheEntry(key); } }); } function pruneCacheEntry(key) { const cached = cache2.get(key); if (cached && (!current || !isSameVNodeType(cached, current))) { unmount(cached); } else if (current) { resetShapeFlag(current); } cache2.delete(key); keys2.delete(key); } watch( () => [props.include, props.exclude], ([include, exclude]) => { include && pruneCache((name) => matches(include, name)); exclude && pruneCache((name) => !matches(exclude, name)); }, // prune post-render after `current` has been updated { flush: "post", deep: true } ); let pendingCacheKey = null; const cacheSubtree = () => { if (pendingCacheKey != null) { if (isSuspense(instance.subTree.type)) { queuePostRenderEffect(() => { cache2.set(pendingCacheKey, getInnerChild(instance.subTree)); }, instance.subTree.suspense); } else { cache2.set(pendingCacheKey, getInnerChild(instance.subTree)); } } }; onMounted(cacheSubtree); onUpdated(cacheSubtree); onBeforeUnmount(() => { cache2.forEach((cached) => { const { subTree, suspense } = instance; const vnode = getInnerChild(subTree); if (cached.type === vnode.type && cached.key === vnode.key) { resetShapeFlag(vnode); const da = vnode.component.da; da && queuePostRenderEffect(da, suspense); return; } unmount(cached); }); }); return () => { pendingCacheKey = null; if (!slots.default) { return current = null; } const children2 = slots.default(); const rawVNode = children2[0]; if (children2.length > 1) { current = null; return children2; } else if (!isVNode$1(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) { current = null; return rawVNode; } let vnode = getInnerChild(rawVNode); if (vnode.type === Comment) { current = null; return vnode; } const comp = vnode.type; const name = getComponentName( isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp ); const { include, exclude, max: max3 } = props; if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) { vnode.shapeFlag &= -257; current = vnode; return rawVNode; } const key = vnode.key == null ? comp : vnode.key; const cachedVNode = cache2.get(key); if (vnode.el) { vnode = cloneVNode(vnode); if (rawVNode.shapeFlag & 128) { rawVNode.ssContent = vnode; } } pendingCacheKey = key; if (cachedVNode) { vnode.el = cachedVNode.el; vnode.component = cachedVNode.component; if (vnode.transition) { setTransitionHooks(vnode, vnode.transition); } vnode.shapeFlag |= 512; keys2.delete(key); keys2.add(key); } else { keys2.add(key); if (max3 && keys2.size > parseInt(max3, 10)) { pruneCacheEntry(keys2.values().next().value); } } vnode.shapeFlag |= 256; current = vnode; return isSuspense(rawVNode.type) ? rawVNode : vnode; }; } }; const KeepAlive = KeepAliveImpl; function matches(pattern4, name) { if (isArray$5(pattern4)) { return pattern4.some((p2) => matches(p2, name)); } else if (isString$5(pattern4)) { return pattern4.split(",").includes(name); } else if (isRegExp$4(pattern4)) { pattern4.lastIndex = 0; return pattern4.test(name); } return false; } function onActivated(hook, target) { registerKeepAliveHook(hook, "a", target); } function onDeactivated(hook, target) { registerKeepAliveHook(hook, "da", target); } function registerKeepAliveHook(hook, type5, target = currentInstance) { const wrappedHook = hook.__wdc || (hook.__wdc = () => { let current = target; while (current) { if (current.isDeactivated) { return; } current = current.parent; } return hook(); }); injectHook(type5, wrappedHook, target); if (target) { let current = target.parent; while (current && current.parent) { if (isKeepAlive(current.parent.vnode)) { injectToKeepAliveRoot(wrappedHook, type5, target, current); } current = current.parent; } } } function injectToKeepAliveRoot(hook, type5, target, keepAliveRoot) { const injected = injectHook( type5, hook, keepAliveRoot, true /* prepend */ ); onUnmounted(() => { remove$2(keepAliveRoot[type5], injected); }, target); } function resetShapeFlag(vnode) { vnode.shapeFlag &= -257; vnode.shapeFlag &= -513; } function getInnerChild(vnode) { return vnode.shapeFlag & 128 ? vnode.ssContent : vnode; } function injectHook(type5, hook, target = currentInstance, prepend = false) { if (target) { const hooks = target[type5] || (target[type5] = []); const wrappedHook = hook.__weh || (hook.__weh = (...args) => { pauseTracking(); const reset2 = setCurrentInstance(target); const res = callWithAsyncErrorHandling(hook, target, type5, args); reset2(); resetTracking(); return res; }); if (prepend) { hooks.unshift(wrappedHook); } else { hooks.push(wrappedHook); } return wrappedHook; } } const createHook = (lifecycle) => (hook, target = currentInstance) => { if (!isInSSRComponentSetup || lifecycle === "sp") { injectHook(lifecycle, (...args) => hook(...args), target); } }; const onBeforeMount = createHook("bm"); const onMounted = createHook("m"); const onBeforeUpdate = createHook( "bu" ); const onUpdated = createHook("u"); const onBeforeUnmount = createHook( "bum" ); const onUnmounted = createHook("um"); const onServerPrefetch = createHook( "sp" ); const onRenderTriggered = createHook("rtg"); const onRenderTracked = createHook("rtc"); function onErrorCaptured(hook, target = currentInstance) { injectHook("ec", hook, target); } const COMPONENTS = "components"; const DIRECTIVES = "directives"; function resolveComponent(name, maybeSelfReference) { return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name; } const NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for("v-ndc"); function resolveDynamicComponent(component) { if (isString$5(component)) { return resolveAsset(COMPONENTS, component, false) || component; } else { return component || NULL_DYNAMIC_COMPONENT; } } function resolveDirective(name) { return resolveAsset(DIRECTIVES, name); } function resolveAsset(type5, name, warnMissing = true, maybeSelfReference = false) { const instance = currentRenderingInstance || currentInstance; if (instance) { const Component = instance.type; if (type5 === COMPONENTS) { const selfName = getComponentName( Component, false ); if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize$1(camelize(name)))) { return Component; } } const res = ( // local registration // check instance[type] first which is resolved for options API resolve(instance[type5] || Component[type5], name) || // global registration resolve(instance.appContext[type5], name) ); if (!res && maybeSelfReference) { return Component; } return res; } } function resolve(registry, name) { return registry && (registry[name] || registry[camelize(name)] || registry[capitalize$1(camelize(name))]); } function renderList(source, renderItem, cache2, index) { let ret; const cached = cache2 && cache2[index]; const sourceIsArray = isArray$5(source); if (sourceIsArray || isString$5(source)) { const sourceIsReactiveArray = sourceIsArray && /* @__PURE__ */ isReactive(source); let needsWrap = false; let isReadonlySource = false; if (sourceIsReactiveArray) { needsWrap = !/* @__PURE__ */ isShallow(source); isReadonlySource = /* @__PURE__ */ isReadonly(source); source = shallowReadArray(source); } ret = new Array(source.length); for (let i2 = 0, l2 = source.length; i2 < l2; i2++) { ret[i2] = renderItem( needsWrap ? isReadonlySource ? toReadonly(toReactive$1(source[i2])) : toReactive$1(source[i2]) : source[i2], i2, void 0, cached && cached[i2] ); } } else if (typeof source === "number") { { ret = new Array(source); for (let i2 = 0; i2 < source; i2++) { ret[i2] = renderItem(i2 + 1, i2, void 0, cached && cached[i2]); } } } else if (isObject$8(source)) { if (source[Symbol.iterator]) { ret = Array.from( source, (item, i2) => renderItem(item, i2, void 0, cached && cached[i2]) ); } else { const keys2 = Object.keys(source); ret = new Array(keys2.length); for (let i2 = 0, l2 = keys2.length; i2 < l2; i2++) { const key = keys2[i2]; ret[i2] = renderItem(source[key], key, i2, cached && cached[i2]); } } } else { ret = []; } if (cache2) { cache2[index] = ret; } return ret; } function createSlots(slots, dynamicSlots) { for (let i2 = 0; i2 < dynamicSlots.length; i2++) { const slot = dynamicSlots[i2]; if (isArray$5(slot)) { for (let j2 = 0; j2 < slot.length; j2++) { slots[slot[j2].name] = slot[j2].fn; } } else if (slot) { slots[slot.name] = slot.key ? (...args) => { const res = slot.fn(...args); if (res) res.key = slot.key; return res; } : slot.fn; } } return slots; } function renderSlot(slots, name, props = {}, fallback, noSlotted) { if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) { const hasProps = Object.keys(props).length > 0; if (name !== "default") props.name = name; return openBlock(), createBlock( Fragment, null, [createVNode$1("slot", props, fallback && fallback())], hasProps ? -2 : 64 ); } let slot = slots[name]; if (slot && slot._c) { slot._d = false; } openBlock(); const validSlotContent = slot && ensureValidVNode(slot(props)); const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch // key attached in the `createSlots` helper, respect that validSlotContent && validSlotContent.key; const rendered = createBlock( Fragment, { key: (slotKey && !isSymbol$1(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content (!validSlotContent && fallback ? "_fb" : "") }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 ? 64 : -2 ); if (!noSlotted && rendered.scopeId) { rendered.slotScopeIds = [rendered.scopeId + "-s"]; } if (slot && slot._c) { slot._d = true; } return rendered; } function ensureValidVNode(vnodes) { return vnodes.some((child) => { if (!isVNode$1(child)) return true; if (child.type === Comment) return false; if (child.type === Fragment && !ensureValidVNode(child.children)) return false; return true; }) ? vnodes : null; } function toHandlers(obj, preserveCaseIfNecessary) { const ret = {}; for (const key in obj) { ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey$1(key)] = obj[key]; } return ret; } const getPublicInstance = (i2) => { if (!i2) return null; if (isStatefulComponent(i2)) return getComponentPublicInstance(i2); return getPublicInstance(i2.parent); }; const publicPropertiesMap = ( // Move PURE marker to new line to workaround compiler discarding it // due to type annotation /* @__PURE__ */ extend$4(/* @__PURE__ */ Object.create(null), { $: (i2) => i2, $el: (i2) => i2.vnode.el, $data: (i2) => i2.data, $props: (i2) => i2.props, $attrs: (i2) => i2.attrs, $slots: (i2) => i2.slots, $refs: (i2) => i2.refs, $parent: (i2) => getPublicInstance(i2.parent), $root: (i2) => getPublicInstance(i2.root), $host: (i2) => i2.ce, $emit: (i2) => i2.emit, $options: (i2) => resolveMergedOptions(i2), $forceUpdate: (i2) => i2.f || (i2.f = () => { queueJob(i2.update); }), $nextTick: (i2) => i2.n || (i2.n = nextTick.bind(i2.proxy)), $watch: (i2) => instanceWatch.bind(i2) }) ); const hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn$2(state, key); const PublicInstanceProxyHandlers = { get({ _: instance }, key) { if (key === "__v_skip") { return true; } const { ctx, setupState, data, props, accessCache, type: type5, appContext } = instance; if (key[0] !== "$") { const n2 = accessCache[key]; if (n2 !== void 0) { switch (n2) { case 1: return setupState[key]; case 2: return data[key]; case 4: return ctx[key]; case 3: return props[key]; } } else if (hasSetupBinding(setupState, key)) { accessCache[key] = 1; return setupState[key]; } else if (data !== EMPTY_OBJ && hasOwn$2(data, key)) { accessCache[key] = 2; return data[key]; } else if (hasOwn$2(props, key)) { accessCache[key] = 3; return props[key]; } else if (ctx !== EMPTY_OBJ && hasOwn$2(ctx, key)) { accessCache[key] = 4; return ctx[key]; } else if (shouldCacheAccess) { accessCache[key] = 0; } } const publicGetter = publicPropertiesMap[key]; let cssModule, globalProperties; if (publicGetter) { if (key === "$attrs") { track(instance.attrs, "get", ""); } return publicGetter(instance); } else if ( // css module (injected by vue-loader) (cssModule = type5.__cssModules) && (cssModule = cssModule[key]) ) { return cssModule; } else if (ctx !== EMPTY_OBJ && hasOwn$2(ctx, key)) { accessCache[key] = 4; return ctx[key]; } else if ( // global properties globalProperties = appContext.config.globalProperties, hasOwn$2(globalProperties, key) ) { { return globalProperties[key]; } } else ; }, set({ _: instance }, key, value) { const { data, setupState, ctx } = instance; if (hasSetupBinding(setupState, key)) { setupState[key] = value; return true; } else if (data !== EMPTY_OBJ && hasOwn$2(data, key)) { data[key] = value; return true; } else if (hasOwn$2(instance.props, key)) { return false; } if (key[0] === "$" && key.slice(1) in instance) { return false; } else { { ctx[key] = value; } } return true; }, has({ _: { data, setupState, accessCache, ctx, appContext, props, type: type5 } }, key) { let cssModules; return !!(accessCache[key] || data !== EMPTY_OBJ && key[0] !== "$" && hasOwn$2(data, key) || hasSetupBinding(setupState, key) || hasOwn$2(props, key) || hasOwn$2(ctx, key) || hasOwn$2(publicPropertiesMap, key) || hasOwn$2(appContext.config.globalProperties, key) || (cssModules = type5.__cssModules) && cssModules[key]); }, defineProperty(target, key, descriptor) { if (descriptor.get != null) { target._.accessCache[key] = 0; } else if (hasOwn$2(descriptor, "value")) { this.set(target, key, descriptor.value, null); } return Reflect.defineProperty(target, key, descriptor); } }; const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend$4({}, PublicInstanceProxyHandlers, { get(target, key) { if (key === Symbol.unscopables) { return; } return PublicInstanceProxyHandlers.get(target, key, target); }, has(_2, key) { const has2 = key[0] !== "_" && !isGloballyAllowed(key); return has2; } }); function defineProps() { return null; } function defineEmits() { return null; } function defineExpose(exposed) { } function defineOptions(options) { } function defineSlots() { return null; } function defineModel() { } function withDefaults(props, defaults2) { return null; } function useSlots() { return getContext().slots; } function useAttrs() { return getContext().attrs; } function getContext(calledFunctionName) { const i2 = getCurrentInstance$1(); return i2.setupContext || (i2.setupContext = createSetupContext(i2)); } function normalizePropsOrEmits(props) { return isArray$5(props) ? props.reduce( (normalized, p2) => (normalized[p2] = null, normalized), {} ) : props; } function mergeDefaults(raw, defaults2) { const props = normalizePropsOrEmits(raw); for (const key in defaults2) { if (key.startsWith("__skip")) continue; let opt = props[key]; if (opt) { if (isArray$5(opt) || isFunction$6(opt)) { opt = props[key] = { type: opt, default: defaults2[key] }; } else { opt.default = defaults2[key]; } } else if (opt === null) { opt = props[key] = { default: defaults2[key] }; } else ; if (opt && defaults2[`__skip_${key}`]) { opt.skipFactory = true; } } return props; } function mergeModels(a2, b2) { if (!a2 || !b2) return a2 || b2; if (isArray$5(a2) && isArray$5(b2)) return a2.concat(b2); return extend$4({}, normalizePropsOrEmits(a2), normalizePropsOrEmits(b2)); } function createPropsRestProxy(props, excludedKeys) { const ret = {}; for (const key in props) { if (!excludedKeys.includes(key)) { Object.defineProperty(ret, key, { enumerable: true, get: () => props[key] }); } } return ret; } function withAsyncContext(getAwaitable) { const ctx = getCurrentInstance$1(); const inSSRSetup = isInSSRComponentSetup; let awaitable = getAwaitable(); unsetCurrentInstance(); if (inSSRSetup) { setInSSRSetupState(false); } const restore = () => { setCurrentInstance(ctx); if (inSSRSetup) { setInSSRSetupState(true); } }; const cleanup = () => { if (getCurrentInstance$1() !== ctx) ctx.scope.off(); unsetCurrentInstance(); if (inSSRSetup) { setInSSRSetupState(false); } }; if (isPromise$1(awaitable)) { awaitable = awaitable.catch((e2) => { restore(); Promise.resolve().then(() => Promise.resolve().then(cleanup)); throw e2; }); } return [ awaitable, () => { restore(); Promise.resolve().then(cleanup); } ]; } let shouldCacheAccess = true; function applyOptions(instance) { const options = resolveMergedOptions(instance); const publicThis = instance.proxy; const ctx = instance.ctx; shouldCacheAccess = false; if (options.beforeCreate) { callHook$1(options.beforeCreate, instance, "bc"); } const { // state data: dataOptions, computed: computedOptions, methods, watch: watchOptions, provide: provideOptions, inject: injectOptions, // lifecycle created, beforeMount, mounted, beforeUpdate, updated, activated, deactivated, beforeDestroy, beforeUnmount, destroyed, unmounted, render: render2, renderTracked, renderTriggered, errorCaptured, serverPrefetch, // public API expose, inheritAttrs, // assets components, directives, filters } = options; const checkDuplicateProperties = null; if (injectOptions) { resolveInjections(injectOptions, ctx, checkDuplicateProperties); } if (methods) { for (const key in methods) { const methodHandler = methods[key]; if (isFunction$6(methodHandler)) { { ctx[key] = methodHandler.bind(publicThis); } } } } if (dataOptions) { const data = dataOptions.call(publicThis, publicThis); if (!isObject$8(data)) ; else { instance.data = /* @__PURE__ */ reactive(data); } } shouldCacheAccess = true; if (computedOptions) { for (const key in computedOptions) { const opt = computedOptions[key]; const get2 = isFunction$6(opt) ? opt.bind(publicThis, publicThis) : isFunction$6(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP; const set3 = !isFunction$6(opt) && isFunction$6(opt.set) ? opt.set.bind(publicThis) : NOOP; const c2 = computed({ get: get2, set: set3 }); Object.defineProperty(ctx, key, { enumerable: true, configurable: true, get: () => c2.value, set: (v2) => c2.value = v2 }); } } if (watchOptions) { for (const key in watchOptions) { createWatcher(watchOptions[key], ctx, publicThis, key); } } if (provideOptions) { const provides = isFunction$6(provideOptions) ? provideOptions.call(publicThis) : provideOptions; Reflect.ownKeys(provides).forEach((key) => { provide(key, provides[key]); }); } if (created) { callHook$1(created, instance, "c"); } function registerLifecycleHook(register2, hook) { if (isArray$5(hook)) { hook.forEach((_hook) => register2(_hook.bind(publicThis))); } else if (hook) { register2(hook.bind(publicThis)); } } registerLifecycleHook(onBeforeMount, beforeMount); registerLifecycleHook(onMounted, mounted); registerLifecycleHook(onBeforeUpdate, beforeUpdate); registerLifecycleHook(onUpdated, updated); registerLifecycleHook(onActivated, activated); registerLifecycleHook(onDeactivated, deactivated); registerLifecycleHook(onErrorCaptured, errorCaptured); registerLifecycleHook(onRenderTracked, renderTracked); registerLifecycleHook(onRenderTriggered, renderTriggered); registerLifecycleHook(onBeforeUnmount, beforeUnmount); registerLifecycleHook(onUnmounted, unmounted); registerLifecycleHook(onServerPrefetch, serverPrefetch); if (isArray$5(expose)) { if (expose.length) { const exposed = instance.exposed || (instance.exposed = {}); expose.forEach((key) => { Object.defineProperty(exposed, key, { get: () => publicThis[key], set: (val) => publicThis[key] = val, enumerable: true }); }); } else if (!instance.exposed) { instance.exposed = {}; } } if (render2 && instance.render === NOOP) { instance.render = render2; } if (inheritAttrs != null) { instance.inheritAttrs = inheritAttrs; } if (components) instance.components = components; if (directives) instance.directives = directives; if (serverPrefetch) { markAsyncBoundary(instance); } } function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) { if (isArray$5(injectOptions)) { injectOptions = normalizeInject(injectOptions); } for (const key in injectOptions) { const opt = injectOptions[key]; let injected; if (isObject$8(opt)) { if ("default" in opt) { injected = inject( opt.from || key, opt.default, true ); } else { injected = inject(opt.from || key); } } else { injected = inject(opt); } if (/* @__PURE__ */ isRef(injected)) { Object.defineProperty(ctx, key, { enumerable: true, configurable: true, get: () => injected.value, set: (v2) => injected.value = v2 }); } else { ctx[key] = injected; } } } function callHook$1(hook, instance, type5) { callWithAsyncErrorHandling( isArray$5(hook) ? hook.map((h2) => h2.bind(instance.proxy)) : hook.bind(instance.proxy), instance, type5 ); } function createWatcher(raw, ctx, publicThis, key) { let getter = key.includes(".") ? createPathGetter(publicThis, key) : () => publicThis[key]; if (isString$5(raw)) { const handler = ctx[raw]; if (isFunction$6(handler)) { { watch(getter, handler); } } } else if (isFunction$6(raw)) { { watch(getter, raw.bind(publicThis)); } } else if (isObject$8(raw)) { if (isArray$5(raw)) { raw.forEach((r2) => createWatcher(r2, ctx, publicThis, key)); } else { const handler = isFunction$6(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler]; if (isFunction$6(handler)) { watch(getter, handler, raw); } } } else ; } function resolveMergedOptions(instance) { const base2 = instance.type; const { mixins, extends: extendsOptions } = base2; const { mixins: globalMixins, optionsCache: cache2, config: { optionMergeStrategies } } = instance.appContext; const cached = cache2.get(base2); let resolved; if (cached) { resolved = cached; } else if (!globalMixins.length && !mixins && !extendsOptions) { { resolved = base2; } } else { resolved = {}; if (globalMixins.length) { globalMixins.forEach( (m2) => mergeOptions$1(resolved, m2, optionMergeStrategies, true) ); } mergeOptions$1(resolved, base2, optionMergeStrategies); } if (isObject$8(base2)) { cache2.set(base2, resolved); } return resolved; } function mergeOptions$1(to2, from, strats, asMixin = false) { const { mixins, extends: extendsOptions } = from; if (extendsOptions) { mergeOptions$1(to2, extendsOptions, strats, true); } if (mixins) { mixins.forEach( (m2) => mergeOptions$1(to2, m2, strats, true) ); } for (const key in from) { if (asMixin && key === "expose") ; else { const strat = internalOptionMergeStrats[key] || strats && strats[key]; to2[key] = strat ? strat(to2[key], from[key]) : from[key]; } } return to2; } const internalOptionMergeStrats = { data: mergeDataFn, props: mergeEmitsOrPropsOptions, emits: mergeEmitsOrPropsOptions, // objects methods: mergeObjectOptions, computed: mergeObjectOptions, // lifecycle beforeCreate: mergeAsArray$1, created: mergeAsArray$1, beforeMount: mergeAsArray$1, mounted: mergeAsArray$1, beforeUpdate: mergeAsArray$1, updated: mergeAsArray$1, beforeDestroy: mergeAsArray$1, beforeUnmount: mergeAsArray$1, destroyed: mergeAsArray$1, unmounted: mergeAsArray$1, activated: mergeAsArray$1, deactivated: mergeAsArray$1, errorCaptured: mergeAsArray$1, serverPrefetch: mergeAsArray$1, // assets components: mergeObjectOptions, directives: mergeObjectOptions, // watch watch: mergeWatchOptions, // provide / inject provide: mergeDataFn, inject: mergeInject }; function mergeDataFn(to2, from) { if (!from) { return to2; } if (!to2) { return from; } return function mergedDataFn() { return extend$4( isFunction$6(to2) ? to2.call(this, this) : to2, isFunction$6(from) ? from.call(this, this) : from ); }; } function mergeInject(to2, from) { return mergeObjectOptions(normalizeInject(to2), normalizeInject(from)); } function normalizeInject(raw) { if (isArray$5(raw)) { const res = {}; for (let i2 = 0; i2 < raw.length; i2++) { res[raw[i2]] = raw[i2]; } return res; } return raw; } function mergeAsArray$1(to2, from) { return to2 ? [...new Set([].concat(to2, from))] : from; } function mergeObjectOptions(to2, from) { return to2 ? extend$4(/* @__PURE__ */ Object.create(null), to2, from) : from; } function mergeEmitsOrPropsOptions(to2, from) { if (to2) { if (isArray$5(to2) && isArray$5(from)) { return [.../* @__PURE__ */ new Set([...to2, ...from])]; } return extend$4( /* @__PURE__ */ Object.create(null), normalizePropsOrEmits(to2), normalizePropsOrEmits(from != null ? from : {}) ); } else { return from; } } function mergeWatchOptions(to2, from) { if (!to2) return from; if (!from) return to2; const merged = extend$4(/* @__PURE__ */ Object.create(null), to2); for (const key in from) { merged[key] = mergeAsArray$1(to2[key], from[key]); } return merged; } function createAppContext() { return { app: null, config: { isNativeTag: NO, performance: false, globalProperties: {}, optionMergeStrategies: {}, errorHandler: void 0, warnHandler: void 0, compilerOptions: {} }, mixins: [], components: {}, directives: {}, provides: /* @__PURE__ */ Object.create(null), optionsCache: /* @__PURE__ */ new WeakMap(), propsCache: /* @__PURE__ */ new WeakMap(), emitsCache: /* @__PURE__ */ new WeakMap() }; } let uid$1 = 0; function createAppAPI(render2, hydrate2) { return function createApp2(rootComponent, rootProps = null) { if (!isFunction$6(rootComponent)) { rootComponent = extend$4({}, rootComponent); } if (rootProps != null && !isObject$8(rootProps)) { rootProps = null; } const context = createAppContext(); const installedPlugins = /* @__PURE__ */ new WeakSet(); const pluginCleanupFns = []; let isMounted = false; const app = context.app = { _uid: uid$1++, _component: rootComponent, _props: rootProps, _container: null, _context: context, _instance: null, version, get config() { return context.config; }, set config(v2) { }, use(plugin, ...options) { if (installedPlugins.has(plugin)) ; else if (plugin && isFunction$6(plugin.install)) { installedPlugins.add(plugin); plugin.install(app, ...options); } else if (isFunction$6(plugin)) { installedPlugins.add(plugin); plugin(app, ...options); } else ; return app; }, mixin(mixin2) { { if (!context.mixins.includes(mixin2)) { context.mixins.push(mixin2); } } return app; }, component(name, component) { if (!component) { return context.components[name]; } context.components[name] = component; return app; }, directive(name, directive) { if (!directive) { return context.directives[name]; } context.directives[name] = directive; return app; }, mount(rootContainer, isHydrate, namespace2) { if (!isMounted) { const vnode = app._ceVNode || createVNode$1(rootComponent, rootProps); vnode.appContext = context; if (namespace2 === true) { namespace2 = "svg"; } else if (namespace2 === false) { namespace2 = void 0; } if (isHydrate && hydrate2) { hydrate2(vnode, rootContainer); } else { render2(vnode, rootContainer, namespace2); } isMounted = true; app._container = rootContainer; rootContainer.__vue_app__ = app; return getComponentPublicInstance(vnode.component); } }, onUnmount(cleanupFn) { pluginCleanupFns.push(cleanupFn); }, unmount() { if (isMounted) { callWithAsyncErrorHandling( pluginCleanupFns, app._instance, 16 ); render2(null, app._container); delete app._container.__vue_app__; } }, provide(key, value) { context.provides[key] = value; return app; }, runWithContext(fn2) { const lastApp = currentApp; currentApp = app; try { return fn2(); } finally { currentApp = lastApp; } } }; return app; }; } let currentApp = null; function useModel(props, name, options = EMPTY_OBJ) { const i2 = getCurrentInstance$1(); const camelizedName = camelize(name); const hyphenatedName = hyphenate(name); const modifiers = getModelModifiers(props, camelizedName); const res = customRef((track2, trigger2) => { let localValue; let prevSetValue = EMPTY_OBJ; let prevEmittedValue; watchSyncEffect(() => { const propValue = props[camelizedName]; if (hasChanged(localValue, propValue)) { localValue = propValue; trigger2(); } }); return { get() { track2(); return options.get ? options.get(localValue) : localValue; }, set(value) { const emittedValue = options.set ? options.set(value) : value; if (!hasChanged(emittedValue, localValue) && !(prevSetValue !== EMPTY_OBJ && hasChanged(value, prevSetValue))) { return; } const rawProps = i2.vnode.props; if (!(rawProps && // check if parent has passed v-model (name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps))) { localValue = value; trigger2(); } i2.emit(`update:${name}`, emittedValue); if (hasChanged(value, emittedValue) && hasChanged(value, prevSetValue) && !hasChanged(emittedValue, prevEmittedValue)) { trigger2(); } prevSetValue = value; prevEmittedValue = emittedValue; } }; }); res[Symbol.iterator] = () => { let i22 = 0; return { next() { if (i22 < 2) { return { value: i22++ ? modifiers || EMPTY_OBJ : res, done: false }; } else { return { done: true }; } } }; }; return res; } const getModelModifiers = (props, modelName) => { return modelName === "modelValue" || modelName === "model-value" ? props.modelModifiers : props[`${modelName}Modifiers`] || props[`${camelize(modelName)}Modifiers`] || props[`${hyphenate(modelName)}Modifiers`]; }; function emit(instance, event, ...rawArgs) { if (instance.isUnmounted) return; const props = instance.vnode.props || EMPTY_OBJ; let args = rawArgs; const isModelListener2 = event.startsWith("update:"); const modifiers = isModelListener2 && getModelModifiers(props, event.slice(7)); if (modifiers) { if (modifiers.trim) { args = rawArgs.map((a2) => isString$5(a2) ? a2.trim() : a2); } if (modifiers.number) { args = rawArgs.map(looseToNumber); } } let handlerName; let handler = props[handlerName = toHandlerKey$1(event)] || // also try camelCase event handler (#2249) props[handlerName = toHandlerKey$1(camelize(event))]; if (!handler && isModelListener2) { handler = props[handlerName = toHandlerKey$1(hyphenate(event))]; } if (handler) { callWithAsyncErrorHandling( handler, instance, 6, args ); } const onceHandler = props[handlerName + `Once`]; if (onceHandler) { if (!instance.emitted) { instance.emitted = {}; } else if (instance.emitted[handlerName]) { return; } instance.emitted[handlerName] = true; callWithAsyncErrorHandling( onceHandler, instance, 6, args ); } } const mixinEmitsCache = /* @__PURE__ */ new WeakMap(); function normalizeEmitsOptions(comp, appContext, asMixin = false) { const cache2 = asMixin ? mixinEmitsCache : appContext.emitsCache; const cached = cache2.get(comp); if (cached !== void 0) { return cached; } const raw = comp.emits; let normalized = {}; let hasExtends = false; if (!isFunction$6(comp)) { const extendEmits = (raw2) => { const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true); if (normalizedFromExtend) { hasExtends = true; extend$4(normalized, normalizedFromExtend); } }; if (!asMixin && appContext.mixins.length) { appContext.mixins.forEach(extendEmits); } if (comp.extends) { extendEmits(comp.extends); } if (comp.mixins) { comp.mixins.forEach(extendEmits); } } if (!raw && !hasExtends) { if (isObject$8(comp)) { cache2.set(comp, null); } return null; } if (isArray$5(raw)) { raw.forEach((key) => normalized[key] = null); } else { extend$4(normalized, raw); } if (isObject$8(comp)) { cache2.set(comp, normalized); } return normalized; } function isEmitListener(options, key) { if (!options || !isOn(key)) { return false; } key = key.slice(2).replace(/Once$/, ""); return hasOwn$2(options, key[0].toLowerCase() + key.slice(1)) || hasOwn$2(options, hyphenate(key)) || hasOwn$2(options, key); } function markAttrsAccessed() { } function renderComponentRoot(instance) { const { type: Component, vnode, proxy, withProxy, propsOptions: [propsOptions], slots, attrs, emit: emit2, render: render2, renderCache, props, data, setupState, ctx, inheritAttrs } = instance; const prev = setCurrentRenderingInstance(instance); let result; let fallthroughAttrs; try { if (vnode.shapeFlag & 4) { const proxyToUse = withProxy || proxy; const thisProxy = false ? new Proxy(proxyToUse, { get(target, key, receiver) { warn$1$1( `Property '${String( key )}' was accessed via 'this'. Avoid using 'this' in templates.` ); return Reflect.get(target, key, receiver); } }) : proxyToUse; result = normalizeVNode( render2.call( thisProxy, proxyToUse, renderCache, false ? /* @__PURE__ */ shallowReadonly(props) : props, setupState, data, ctx ) ); fallthroughAttrs = attrs; } else { const render22 = Component; if (false) ; result = normalizeVNode( render22.length > 1 ? render22( false ? /* @__PURE__ */ shallowReadonly(props) : props, false ? { get attrs() { markAttrsAccessed(); return /* @__PURE__ */ shallowReadonly(attrs); }, slots, emit: emit2 } : { attrs, slots, emit: emit2 } ) : render22( false ? /* @__PURE__ */ shallowReadonly(props) : props, null ) ); fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs); } } catch (err) { blockStack.length = 0; handleError(err, instance, 1); result = createVNode$1(Comment); } let root2 = result; if (fallthroughAttrs && inheritAttrs !== false) { const keys2 = Object.keys(fallthroughAttrs); const { shapeFlag } = root2; if (keys2.length) { if (shapeFlag & (1 | 6)) { if (propsOptions && keys2.some(isModelListener)) { fallthroughAttrs = filterModelListeners( fallthroughAttrs, propsOptions ); } root2 = cloneVNode(root2, fallthroughAttrs, false, true); } } } if (vnode.dirs) { root2 = cloneVNode(root2, null, false, true); root2.dirs = root2.dirs ? root2.dirs.concat(vnode.dirs) : vnode.dirs; } if (vnode.transition) { setTransitionHooks(root2, vnode.transition); } { result = root2; } setCurrentRenderingInstance(prev); return result; } function filterSingleRoot(children2, recurse = true) { let singleRoot; for (let i2 = 0; i2 < children2.length; i2++) { const child = children2[i2]; if (isVNode$1(child)) { if (child.type !== Comment || child.children === "v-if") { if (singleRoot) { return; } else { singleRoot = child; } } } else { return; } } return singleRoot; } const getFunctionalFallthrough = (attrs) => { let res; for (const key in attrs) { if (key === "class" || key === "style" || isOn(key)) { (res || (res = {}))[key] = attrs[key]; } } return res; }; const filterModelListeners = (attrs, props) => { const res = {}; for (const key in attrs) { if (!isModelListener(key) || !(key.slice(9) in props)) { res[key] = attrs[key]; } } return res; }; function shouldUpdateComponent(prevVNode, nextVNode, optimized) { const { props: prevProps, children: prevChildren, component } = prevVNode; const { props: nextProps, children: nextChildren, patchFlag } = nextVNode; const emits = component.emitsOptions; if (nextVNode.dirs || nextVNode.transition) { return true; } if (optimized && patchFlag >= 0) { if (patchFlag & 1024) { return true; } if (patchFlag & 16) { if (!prevProps) { return !!nextProps; } return hasPropsChanged(prevProps, nextProps, emits); } else if (patchFlag & 8) { const dynamicProps = nextVNode.dynamicProps; for (let i2 = 0; i2 < dynamicProps.length; i2++) { const key = dynamicProps[i2]; if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emits, key)) { return true; } } } } else { if (prevChildren || nextChildren) { if (!nextChildren || !nextChildren.$stable) { return true; } } if (prevProps === nextProps) { return false; } if (!prevProps) { return !!nextProps; } if (!nextProps) { return true; } return hasPropsChanged(prevProps, nextProps, emits); } return false; } function hasPropsChanged(prevProps, nextProps, emitsOptions) { const nextKeys = Object.keys(nextProps); if (nextKeys.length !== Object.keys(prevProps).length) { return true; } for (let i2 = 0; i2 < nextKeys.length; i2++) { const key = nextKeys[i2]; if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) { return true; } } return false; } function hasPropValueChanged(nextProps, prevProps, key) { const nextProp = nextProps[key]; const prevProp = prevProps[key]; if (key === "style" && isObject$8(nextProp) && isObject$8(prevProp)) { return !looseEqual(nextProp, prevProp); } return nextProp !== prevProp; } function updateHOCHostEl({ vnode, parent: parent2, suspense }, el) { while (parent2) { const root2 = parent2.subTree; if (root2.suspense && root2.suspense.activeBranch === vnode) { root2.suspense.vnode.el = root2.el = el; vnode = root2; } if (root2 === vnode) { (vnode = parent2.vnode).el = el; parent2 = parent2.parent; } else { break; } } if (suspense && suspense.activeBranch === vnode) { suspense.vnode.el = el; } } const internalObjectProto = {}; const createInternalObject = () => Object.create(internalObjectProto); const isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto; function initProps(instance, rawProps, isStateful, isSSR = false) { const props = {}; const attrs = createInternalObject(); instance.propsDefaults = /* @__PURE__ */ Object.create(null); setFullProps(instance, rawProps, props, attrs); for (const key in instance.propsOptions[0]) { if (!(key in props)) { props[key] = void 0; } } if (isStateful) { instance.props = isSSR ? props : /* @__PURE__ */ shallowReactive(props); } else { if (!instance.type.props) { instance.props = attrs; } else { instance.props = props; } } instance.attrs = attrs; } function updateProps(instance, rawProps, rawPrevProps, optimized) { const { props, attrs, vnode: { patchFlag } } = instance; const rawCurrentProps = /* @__PURE__ */ toRaw(props); const [options] = instance.propsOptions; let hasAttrsChanged = false; if ( // always force full diff in dev // - #1942 if hmr is enabled with sfc component // - vite#872 non-sfc component used by sfc component (optimized || patchFlag > 0) && !(patchFlag & 16) ) { if (patchFlag & 8) { const propsToUpdate = instance.vnode.dynamicProps; for (let i2 = 0; i2 < propsToUpdate.length; i2++) { let key = propsToUpdate[i2]; if (isEmitListener(instance.emitsOptions, key)) { continue; } const value = rawProps[key]; if (options) { if (hasOwn$2(attrs, key)) { if (value !== attrs[key]) { attrs[key] = value; hasAttrsChanged = true; } } else { const camelizedKey = camelize(key); props[camelizedKey] = resolvePropValue( options, rawCurrentProps, camelizedKey, value, instance, false ); } } else { if (value !== attrs[key]) { attrs[key] = value; hasAttrsChanged = true; } } } } } else { if (setFullProps(instance, rawProps, props, attrs)) { hasAttrsChanged = true; } let kebabKey; for (const key in rawCurrentProps) { if (!rawProps || // for camelCase !hasOwn$2(rawProps, key) && // it's possible the original props was passed in as kebab-case // and converted to camelCase (#955) ((kebabKey = hyphenate(key)) === key || !hasOwn$2(rawProps, kebabKey))) { if (options) { if (rawPrevProps && // for camelCase (rawPrevProps[key] !== void 0 || // for kebab-case rawPrevProps[kebabKey] !== void 0)) { props[key] = resolvePropValue( options, rawCurrentProps, key, void 0, instance, true ); } } else { delete props[key]; } } } if (attrs !== rawCurrentProps) { for (const key in attrs) { if (!rawProps || !hasOwn$2(rawProps, key) && true) { delete attrs[key]; hasAttrsChanged = true; } } } } if (hasAttrsChanged) { trigger(instance.attrs, "set", ""); } } function setFullProps(instance, rawProps, props, attrs) { const [options, needCastKeys] = instance.propsOptions; let hasAttrsChanged = false; let rawCastValues; if (rawProps) { for (let key in rawProps) { if (isReservedProp(key)) { continue; } const value = rawProps[key]; let camelKey; if (options && hasOwn$2(options, camelKey = camelize(key))) { if (!needCastKeys || !needCastKeys.includes(camelKey)) { props[camelKey] = value; } else { (rawCastValues || (rawCastValues = {}))[camelKey] = value; } } else if (!isEmitListener(instance.emitsOptions, key)) { if (!(key in attrs) || value !== attrs[key]) { attrs[key] = value; hasAttrsChanged = true; } } } } if (needCastKeys) { const rawCurrentProps = /* @__PURE__ */ toRaw(props); const castValues = rawCastValues || EMPTY_OBJ; for (let i2 = 0; i2 < needCastKeys.length; i2++) { const key = needCastKeys[i2]; props[key] = resolvePropValue( options, rawCurrentProps, key, castValues[key], instance, !hasOwn$2(castValues, key) ); } } return hasAttrsChanged; } function resolvePropValue(options, props, key, value, instance, isAbsent) { const opt = options[key]; if (opt != null) { const hasDefault = hasOwn$2(opt, "default"); if (hasDefault && value === void 0) { const defaultValue = opt.default; if (opt.type !== Function && !opt.skipFactory && isFunction$6(defaultValue)) { const { propsDefaults } = instance; if (key in propsDefaults) { value = propsDefaults[key]; } else { const reset2 = setCurrentInstance(instance); value = propsDefaults[key] = defaultValue.call( null, props ); reset2(); } } else { value = defaultValue; } if (instance.ce) { instance.ce._setProp(key, value); } } if (opt[ 0 /* shouldCast */ ]) { if (isAbsent && !hasDefault) { value = false; } else if (opt[ 1 /* shouldCastTrue */ ] && (value === "" || value === hyphenate(key))) { value = true; } } } return value; } const mixinPropsCache = /* @__PURE__ */ new WeakMap(); function normalizePropsOptions(comp, appContext, asMixin = false) { const cache2 = asMixin ? mixinPropsCache : appContext.propsCache; const cached = cache2.get(comp); if (cached) { return cached; } const raw = comp.props; const normalized = {}; const needCastKeys = []; let hasExtends = false; if (!isFunction$6(comp)) { const extendProps = (raw2) => { hasExtends = true; const [props, keys2] = normalizePropsOptions(raw2, appContext, true); extend$4(normalized, props); if (keys2) needCastKeys.push(...keys2); }; if (!asMixin && appContext.mixins.length) { appContext.mixins.forEach(extendProps); } if (comp.extends) { extendProps(comp.extends); } if (comp.mixins) { comp.mixins.forEach(extendProps); } } if (!raw && !hasExtends) { if (isObject$8(comp)) { cache2.set(comp, EMPTY_ARR); } return EMPTY_ARR; } if (isArray$5(raw)) { for (let i2 = 0; i2 < raw.length; i2++) { const normalizedKey = camelize(raw[i2]); if (validatePropName(normalizedKey)) { normalized[normalizedKey] = EMPTY_OBJ; } } } else if (raw) { for (const key in raw) { const normalizedKey = camelize(key); if (validatePropName(normalizedKey)) { const opt = raw[key]; const prop = normalized[normalizedKey] = isArray$5(opt) || isFunction$6(opt) ? { type: opt } : extend$4({}, opt); const propType = prop.type; let shouldCast = false; let shouldCastTrue = true; if (isArray$5(propType)) { for (let index = 0; index < propType.length; ++index) { const type5 = propType[index]; const typeName = isFunction$6(type5) && type5.name; if (typeName === "Boolean") { shouldCast = true; break; } else if (typeName === "String") { shouldCastTrue = false; } } } else { shouldCast = isFunction$6(propType) && propType.name === "Boolean"; } prop[ 0 /* shouldCast */ ] = shouldCast; prop[ 1 /* shouldCastTrue */ ] = shouldCastTrue; if (shouldCast || hasOwn$2(prop, "default")) { needCastKeys.push(normalizedKey); } } } } const res = [normalized, needCastKeys]; if (isObject$8(comp)) { cache2.set(comp, res); } return res; } function validatePropName(key) { if (key[0] !== "$" && !isReservedProp(key)) { return true; } return false; } const isInternalKey = (key) => key === "_" || key === "_ctx" || key === "$stable"; const normalizeSlotValue = (value) => isArray$5(value) ? value.map(normalizeVNode) : [normalizeVNode(value)]; const normalizeSlot$1 = (key, rawSlot, ctx) => { if (rawSlot._n) { return rawSlot; } const normalized = withCtx((...args) => { if (false) ; return normalizeSlotValue(rawSlot(...args)); }, ctx); normalized._c = false; return normalized; }; const normalizeObjectSlots = (rawSlots, slots, instance) => { const ctx = rawSlots._ctx; for (const key in rawSlots) { if (isInternalKey(key)) continue; const value = rawSlots[key]; if (isFunction$6(value)) { slots[key] = normalizeSlot$1(key, value, ctx); } else if (value != null) { const normalized = normalizeSlotValue(value); slots[key] = () => normalized; } } }; const normalizeVNodeSlots = (instance, children2) => { const normalized = normalizeSlotValue(children2); instance.slots.default = () => normalized; }; const assignSlots = (slots, children2, optimized) => { for (const key in children2) { if (optimized || !isInternalKey(key)) { slots[key] = children2[key]; } } }; const initSlots = (instance, children2, optimized) => { const slots = instance.slots = createInternalObject(); if (instance.vnode.shapeFlag & 32) { const type5 = children2._; if (type5) { assignSlots(slots, children2, optimized); if (optimized) { def(slots, "_", type5, true); } } else { normalizeObjectSlots(children2, slots); } } else if (children2) { normalizeVNodeSlots(instance, children2); } }; const updateSlots = (instance, children2, optimized) => { const { vnode, slots } = instance; let needDeletionCheck = true; let deletionComparisonTarget = EMPTY_OBJ; if (vnode.shapeFlag & 32) { const type5 = children2._; if (type5) { if (optimized && type5 === 1) { needDeletionCheck = false; } else { assignSlots(slots, children2, optimized); } } else { needDeletionCheck = !children2.$stable; normalizeObjectSlots(children2, slots); } deletionComparisonTarget = children2; } else if (children2) { normalizeVNodeSlots(instance, children2); deletionComparisonTarget = { default: 1 }; } if (needDeletionCheck) { for (const key in slots) { if (!isInternalKey(key) && deletionComparisonTarget[key] == null) { delete slots[key]; } } } }; const queuePostRenderEffect = queueEffectWithSuspense; function createRenderer(options) { return baseCreateRenderer(options); } function createHydrationRenderer(options) { return baseCreateRenderer(options, createHydrationFunctions); } function baseCreateRenderer(options, createHydrationFns) { const target = getGlobalThis$1(); target.__VUE__ = true; const { insert: hostInsert, remove: hostRemove, patchProp: hostPatchProp, createElement: hostCreateElement, createText: hostCreateText, createComment: hostCreateComment, setText: hostSetText, setElementText: hostSetElementText, parentNode: hostParentNode, nextSibling: hostNextSibling, setScopeId: hostSetScopeId = NOOP, insertStaticContent: hostInsertStaticContent } = options; const patch2 = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace2 = void 0, slotScopeIds = null, optimized = !!n2.dynamicChildren) => { if (n1 === n2) { return; } if (n1 && !isSameVNodeType(n1, n2)) { anchor = getNextHostNode(n1); unmount(n1, parentComponent, parentSuspense, true); n1 = null; } if (n2.patchFlag === -2) { optimized = false; n2.dynamicChildren = null; } const { type: type5, ref: ref3, shapeFlag } = n2; switch (type5) { case Text: processText(n1, n2, container, anchor); break; case Comment: processCommentNode(n1, n2, container, anchor); break; case Static: if (n1 == null) { mountStaticNode(n2, container, anchor, namespace2); } break; case Fragment: processFragment( n1, n2, container, anchor, parentComponent, parentSuspense, namespace2, slotScopeIds, optimized ); break; default: if (shapeFlag & 1) { processElement( n1, n2, container, anchor, parentComponent, parentSuspense, namespace2, slotScopeIds, optimized ); } else if (shapeFlag & 6) { processComponent( n1, n2, container, anchor, parentComponent, parentSuspense, namespace2, slotScopeIds, optimized ); } else if (shapeFlag & 64) { type5.process( n1, n2, container, anchor, parentComponent, parentSuspense, namespace2, slotScopeIds, optimized, internals ); } else if (shapeFlag & 128) { type5.process( n1, n2, container, anchor, parentComponent, parentSuspense, namespace2, slotScopeIds, optimized, internals ); } else ; } if (ref3 != null && parentComponent) { setRef(ref3, n1 && n1.ref, parentSuspense, n2 || n1, !n2); } else if (ref3 == null && n1 && n1.ref != null) { setRef(n1.ref, null, parentSuspense, n1, true); } }; const processText = (n1, n2, container, anchor) => { if (n1 == null) { hostInsert( n2.el = hostCreateText(n2.children), container, anchor ); } else { const el = n2.el = n1.el; if (n2.children !== n1.children) { hostSetText(el, n2.children); } } }; const processCommentNode = (n1, n2, container, anchor) => { if (n1 == null) { hostInsert( n2.el = hostCreateComment(n2.children || ""), container, anchor ); } else { n2.el = n1.el; } }; const mountStaticNode = (n2, container, anchor, namespace2) => { [n2.el, n2.anchor] = hostInsertStaticContent( n2.children, container, anchor, namespace2, n2.el, n2.anchor ); }; const moveStaticNode = ({ el, anchor }, container, nextSibling2) => { let next; while (el && el !== anchor) { next = hostNextSibling(el); hostInsert(el, container, nextSibling2); el = next; } hostInsert(anchor, container, nextSibling2); }; const removeStaticNode = ({ el, anchor }) => { let next; while (el && el !== anchor) { next = hostNextSibling(el); hostRemove(el); el = next; } hostRemove(anchor); }; const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace2, slotScopeIds, optimized) => { if (n2.type === "svg") { namespace2 = "svg"; } else if (n2.type === "math") { namespace2 = "mathml"; } if (n1 == null) { mountElement( n2, container, anchor, parentComponent, parentSuspense, namespace2, slotScopeIds, optimized ); } else { const customElement = n1.el && n1.el._isVueCE ? n1.el : null; try { if (customElement) { customElement._beginPatch(); } patchElement( n1, n2, parentComponent, parentSuspense, namespace2, slotScopeIds, optimized ); } finally { if (customElement) { customElement._endPatch(); } } } }; const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace2, slotScopeIds, optimized) => { let el; let vnodeHook; const { props, shapeFlag, transition, dirs } = vnode; el = vnode.el = hostCreateElement( vnode.type, namespace2, props && props.is, props ); if (shapeFlag & 8) { hostSetElementText(el, vnode.children); } else if (shapeFlag & 16) { mountChildren( vnode.children, el, null, parentComponent, parentSuspense, resolveChildrenNamespace(vnode, namespace2), slotScopeIds, optimized ); } if (dirs) { invokeDirectiveHook(vnode, null, parentComponent, "created"); } setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent); if (props) { for (const key in props) { if (key !== "value" && !isReservedProp(key)) { hostPatchProp(el, key, null, props[key], namespace2, parentComponent); } } if ("value" in props) { hostPatchProp(el, "value", null, props.value, namespace2); } if (vnodeHook = props.onVnodeBeforeMount) { invokeVNodeHook(vnodeHook, parentComponent, vnode); } } if (dirs) { invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); } const needCallTransitionHooks = needTransition(parentSuspense, transition); if (needCallTransitionHooks) { transition.beforeEnter(el); } hostInsert(el, container, anchor); if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) { queuePostRenderEffect(() => { try { vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode); needCallTransitionHooks && transition.enter(el); dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); } finally { } }, parentSuspense); } }; const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => { if (scopeId) { hostSetScopeId(el, scopeId); } if (slotScopeIds) { for (let i2 = 0; i2 < slotScopeIds.length; i2++) { hostSetScopeId(el, slotScopeIds[i2]); } } if (parentComponent) { let subTree = parentComponent.subTree; if (vnode === subTree || isSuspense(subTree.type) && (subTree.ssContent === vnode || subTree.ssFallback === vnode)) { const parentVNode = parentComponent.vnode; setScopeId( el, parentVNode, parentVNode.scopeId, parentVNode.slotScopeIds, parentComponent.parent ); } } }; const mountChildren = (children2, container, anchor, parentComponent, parentSuspense, namespace2, slotScopeIds, optimized, start2 = 0) => { for (let i2 = start2; i2 < children2.length; i2++) { const child = children2[i2] = optimized ? cloneIfMounted(children2[i2]) : normalizeVNode(children2[i2]); patch2( null, child, container, anchor, parentComponent, parentSuspense, namespace2, slotScopeIds, optimized ); } }; const patchElement = (n1, n2, parentComponent, parentSuspense, namespace2, slotScopeIds, optimized) => { const el = n2.el = n1.el; let { patchFlag, dynamicChildren, dirs } = n2; patchFlag |= n1.patchFlag & 16; const oldProps = n1.props || EMPTY_OBJ; const newProps = n2.props || EMPTY_OBJ; let vnodeHook; parentComponent && toggleRecurse(parentComponent, false); if (vnodeHook = newProps.onVnodeBeforeUpdate) { invokeVNodeHook(vnodeHook, parentComponent, n2, n1); } if (dirs) { invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate"); } parentComponent && toggleRecurse(parentComponent, true); if (oldProps.innerHTML && newProps.innerHTML == null || oldProps.textContent && newProps.textContent == null) { hostSetElementText(el, ""); } if (dynamicChildren) { patchBlockChildren( n1.dynamicChildren, dynamicChildren, el, parentComponent, parentSuspense, resolveChildrenNamespace(n2, namespace2), slotScopeIds ); } else if (!optimized) { patchChildren( n1, n2, el, null, parentComponent, parentSuspense, resolveChildrenNamespace(n2, namespace2), slotScopeIds, false ); } if (patchFlag > 0) { if (patchFlag & 16) { patchProps(el, oldProps, newProps, parentComponent, namespace2); } else { if (patchFlag & 2) { if (oldProps.class !== newProps.class) { hostPatchProp(el, "class", null, newProps.class, namespace2); } } if (patchFlag & 4) { hostPatchProp(el, "style", oldProps.style, newProps.style, namespace2); } if (patchFlag & 8) { const propsToUpdate = n2.dynamicProps; for (let i2 = 0; i2 < propsToUpdate.length; i2++) { const key = propsToUpdate[i2]; const prev = oldProps[key]; const next = newProps[key]; if (next !== prev || key === "value") { hostPatchProp(el, key, prev, next, namespace2, parentComponent); } } } } if (patchFlag & 1) { if (n1.children !== n2.children) { hostSetElementText(el, n2.children); } } } else if (!optimized && dynamicChildren == null) { patchProps(el, oldProps, newProps, parentComponent, namespace2); } if ((vnodeHook = newProps.onVnodeUpdated) || dirs) { queuePostRenderEffect(() => { vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1); dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated"); }, parentSuspense); } }; const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace2, slotScopeIds) => { for (let i2 = 0; i2 < newChildren.length; i2++) { const oldVNode = oldChildren[i2]; const newVNode = newChildren[i2]; const container = ( // oldVNode may be an errored async setup() component inside Suspense // which will not have a mounted element oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent // of the Fragment itself so it can move its children. (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement // which also requires the correct parent container !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything. oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : ( // In other cases, the parent container is not actually used so we // just pass the block element here to avoid a DOM parentNode call. fallbackContainer ) ); patch2( oldVNode, newVNode, container, null, parentComponent, parentSuspense, namespace2, slotScopeIds, true ); } }; const patchProps = (el, oldProps, newProps, parentComponent, namespace2) => { if (oldProps !== newProps) { if (oldProps !== EMPTY_OBJ) { for (const key in oldProps) { if (!isReservedProp(key) && !(key in newProps)) { hostPatchProp( el, key, oldProps[key], null, namespace2, parentComponent ); } } } for (const key in newProps) { if (isReservedProp(key)) continue; const next = newProps[key]; const prev = oldProps[key]; if (next !== prev && key !== "value") { hostPatchProp(el, key, prev, next, namespace2, parentComponent); } } if ("value" in newProps) { hostPatchProp(el, "value", oldProps.value, newProps.value, namespace2); } } }; const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace2, slotScopeIds, optimized) => { const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(""); const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(""); let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2; if (fragmentSlotScopeIds) { slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; } if (n1 == null) { hostInsert(fragmentStartAnchor, container, anchor); hostInsert(fragmentEndAnchor, container, anchor); mountChildren( // #10007 // such fragment like `<>` will be compiled into // a fragment which doesn't have a children. // In this case fallback to an empty array n2.children || [], container, fragmentEndAnchor, parentComponent, parentSuspense, namespace2, slotScopeIds, optimized ); } else { if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result // of renderSlot() with no valid children n1.dynamicChildren && n1.dynamicChildren.length === dynamicChildren.length) { patchBlockChildren( n1.dynamicChildren, dynamicChildren, container, parentComponent, parentSuspense, namespace2, slotScopeIds ); if ( // #2080 if the stable fragment has a key, it's a