From 7ff40d80ffa1ac4826010f8bbcaa28df81d4b36f Mon Sep 17 00:00:00 2001 From: ppst Date: Wed, 7 Jun 2023 10:13:54 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=87=AA=E5=AE=9A=E4=B9=89vitepress?= =?UTF-8?q?=E4=B8=BB=E9=A2=98demo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 6 + .vitepress/cache/deps/_metadata.json | 23 + .vitepress/cache/deps/chunk-WICYTZ2N.js | 10796 ++++++++++++++++ .vitepress/cache/deps/chunk-WICYTZ2N.js.map | 7 + .vitepress/cache/deps/package.json | 3 + .vitepress/cache/deps/ppst-vitepress-theme.js | 49 + .../cache/deps/ppst-vitepress-theme.js.map | 7 + .vitepress/cache/deps/vue.js | 313 + .vitepress/cache/deps/vue.js.map | 7 + .../cache/deps_temp_a035e839/_metadata.json | 13 + .../cache/deps_temp_a035e839/package.json | 1 + .vitepress/cache/deps_temp_a035e839/vue.js | 9516 ++++++++++++++ .../cache/deps_temp_a035e839/vue.js.map | 7 + .../cache/deps_temp_cd770f13/_metadata.json | 13 + .../cache/deps_temp_cd770f13/package.json | 1 + .vitepress/cache/deps_temp_cd770f13/vue.js | 9516 ++++++++++++++ .../cache/deps_temp_cd770f13/vue.js.map | 7 + .vitepress/config.ts | 38 + .vitepress/theme/index.ts | 12 + .vitepress/theme/override.css | 97 + index.md | 62 + package.json | 19 + pages/archives.md | 13 + pages/category.md | 13 + pages/default.md | 13 + pages/search.md | 11 + posts/default/default.md | 63 + posts/demo/demo.md | 63 + public/favicon.ico | Bin 0 -> 4115 bytes public/img/banner.png | Bin 0 -> 61524 bytes public/img/page.png | Bin 0 -> 84668 bytes 31 files changed, 30689 insertions(+) create mode 100644 .gitignore create mode 100644 .vitepress/cache/deps/_metadata.json create mode 100644 .vitepress/cache/deps/chunk-WICYTZ2N.js create mode 100644 .vitepress/cache/deps/chunk-WICYTZ2N.js.map create mode 100644 .vitepress/cache/deps/package.json create mode 100644 .vitepress/cache/deps/ppst-vitepress-theme.js create mode 100644 .vitepress/cache/deps/ppst-vitepress-theme.js.map create mode 100644 .vitepress/cache/deps/vue.js create mode 100644 .vitepress/cache/deps/vue.js.map create mode 100644 .vitepress/cache/deps_temp_a035e839/_metadata.json create mode 100644 .vitepress/cache/deps_temp_a035e839/package.json create mode 100644 .vitepress/cache/deps_temp_a035e839/vue.js create mode 100644 .vitepress/cache/deps_temp_a035e839/vue.js.map create mode 100644 .vitepress/cache/deps_temp_cd770f13/_metadata.json create mode 100644 .vitepress/cache/deps_temp_cd770f13/package.json create mode 100644 .vitepress/cache/deps_temp_cd770f13/vue.js create mode 100644 .vitepress/cache/deps_temp_cd770f13/vue.js.map create mode 100644 .vitepress/config.ts create mode 100644 .vitepress/theme/index.ts create mode 100644 .vitepress/theme/override.css create mode 100644 index.md create mode 100644 package.json create mode 100644 pages/archives.md create mode 100644 pages/category.md create mode 100644 pages/default.md create mode 100644 pages/search.md create mode 100644 posts/default/default.md create mode 100644 posts/demo/demo.md create mode 100644 public/favicon.ico create mode 100644 public/img/banner.png create mode 100644 public/img/page.png diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8a39e24 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +/coverage +/node_modules +dist +TODOs.md +.DS_Store +demo/.vitepress/cache diff --git a/.vitepress/cache/deps/_metadata.json b/.vitepress/cache/deps/_metadata.json new file mode 100644 index 0000000..af765a1 --- /dev/null +++ b/.vitepress/cache/deps/_metadata.json @@ -0,0 +1,23 @@ +{ + "hash": "ae1feb48", + "browserHash": "e0d66d6a", + "optimized": { + "vue": { + "src": "../../../node_modules/.pnpm/vue@3.3.4/node_modules/vue/dist/vue.runtime.esm-bundler.js", + "file": "vue.js", + "fileHash": "8fc6d2ae", + "needsInterop": false + }, + "ppst-vitepress-theme": { + "src": "../../../node_modules/.pnpm/ppst-vitepress-theme@0.0.2_vitepress@1.0.0-alpha.64/node_modules/ppst-vitepress-theme/src/index.ts", + "file": "ppst-vitepress-theme.js", + "fileHash": "2f2eb96a", + "needsInterop": false + } + }, + "chunks": { + "chunk-WICYTZ2N": { + "file": "chunk-WICYTZ2N.js" + } + } +} \ No newline at end of file diff --git a/.vitepress/cache/deps/chunk-WICYTZ2N.js b/.vitepress/cache/deps/chunk-WICYTZ2N.js new file mode 100644 index 0000000..3bfd2c7 --- /dev/null +++ b/.vitepress/cache/deps/chunk-WICYTZ2N.js @@ -0,0 +1,10796 @@ +// node_modules/.pnpm/@vue+shared@3.3.4/node_modules/@vue/shared/dist/shared.esm-bundler.js +function makeMap(str, expectsLowerCase) { + const map2 = /* @__PURE__ */ Object.create(null); + const list = str.split(","); + for (let i = 0; i < list.length; i++) { + map2[list[i]] = true; + } + return expectsLowerCase ? (val) => !!map2[val.toLowerCase()] : (val) => !!map2[val]; +} +var EMPTY_OBJ = true ? Object.freeze({}) : {}; +var EMPTY_ARR = true ? Object.freeze([]) : []; +var NOOP = () => { +}; +var NO = () => false; +var onRE = /^on[^a-z]/; +var isOn = (key) => onRE.test(key); +var isModelListener = (key) => key.startsWith("onUpdate:"); +var extend = Object.assign; +var remove = (arr, el) => { + const i = arr.indexOf(el); + if (i > -1) { + arr.splice(i, 1); + } +}; +var hasOwnProperty = Object.prototype.hasOwnProperty; +var hasOwn = (val, key) => hasOwnProperty.call(val, key); +var isArray = Array.isArray; +var isMap = (val) => toTypeString(val) === "[object Map]"; +var isSet = (val) => toTypeString(val) === "[object Set]"; +var isDate = (val) => toTypeString(val) === "[object Date]"; +var isRegExp = (val) => toTypeString(val) === "[object RegExp]"; +var isFunction = (val) => typeof val === "function"; +var isString = (val) => typeof val === "string"; +var isSymbol = (val) => typeof val === "symbol"; +var isObject = (val) => val !== null && typeof val === "object"; +var isPromise = (val) => { + return isObject(val) && isFunction(val.then) && isFunction(val.catch); +}; +var objectToString = Object.prototype.toString; +var toTypeString = (value) => objectToString.call(value); +var toRawType = (value) => { + return toTypeString(value).slice(8, -1); +}; +var isPlainObject = (val) => toTypeString(val) === "[object Object]"; +var isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; +var isReservedProp = makeMap( + // the leading comma is intentional so empty string "" is also included + ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" +); +var isBuiltInDirective = makeMap( + "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" +); +var cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return (str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }; +}; +var camelizeRE = /-(\w)/g; +var camelize = cacheStringFunction((str) => { + return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : ""); +}); +var hyphenateRE = /\B([A-Z])/g; +var hyphenate = cacheStringFunction( + (str) => str.replace(hyphenateRE, "-$1").toLowerCase() +); +var capitalize = cacheStringFunction( + (str) => str.charAt(0).toUpperCase() + str.slice(1) +); +var toHandlerKey = cacheStringFunction( + (str) => str ? `on${capitalize(str)}` : `` +); +var hasChanged = (value, oldValue) => !Object.is(value, oldValue); +var invokeArrayFns = (fns, arg) => { + for (let i = 0; i < fns.length; i++) { + fns[i](arg); + } +}; +var def = (obj, key, value) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + value + }); +}; +var looseToNumber = (val) => { + const n = parseFloat(val); + return isNaN(n) ? val : n; +}; +var toNumber = (val) => { + const n = isString(val) ? Number(val) : NaN; + return isNaN(n) ? val : n; +}; +var _globalThis; +var getGlobalThis = () => { + return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); +}; +var GLOBALS_WHITE_LISTED = "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"; +var isGloballyWhitelisted = makeMap(GLOBALS_WHITE_LISTED); +function normalizeStyle(value) { + if (isArray(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } else if (isString(value)) { + return value; + } else if (isObject(value)) { + return value; + } +} +var listDelimiterRE = /;(?![^(]*\))/g; +var propertyDelimiterRE = /:([^]+)/; +var 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 normalizeClass(value) { + let res = ""; + if (isString(value)) { + res = value; + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + const normalized = normalizeClass(value[i]); + if (normalized) { + res += normalized + " "; + } + } + } else if (isObject(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(klass)) { + props.class = normalizeClass(klass); + } + if (style) { + props.style = normalizeStyle(style); + } + return props; +} +var 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"; +var 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"; +var VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; +var isHTMLTag = makeMap(HTML_TAGS); +var isSVGTag = makeMap(SVG_TAGS); +var isVoidTag = makeMap(VOID_TAGS); +var specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; +var isSpecialBooleanAttr = makeMap(specialBooleanAttrs); +var isBooleanAttr = 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 === ""; +} +var isKnownHtmlAttr = 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` +); +var isKnownSvgAttr = 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,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` +); +function looseCompareArrays(a, b) { + if (a.length !== b.length) + return false; + let equal = true; + for (let i = 0; equal && i < a.length; i++) { + equal = looseEqual(a[i], b[i]); + } + return equal; +} +function looseEqual(a, b) { + if (a === b) + return true; + let aValidType = isDate(a); + let bValidType = isDate(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? a.getTime() === b.getTime() : false; + } + aValidType = isSymbol(a); + bValidType = isSymbol(b); + if (aValidType || bValidType) { + return a === b; + } + aValidType = isArray(a); + bValidType = isArray(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? looseCompareArrays(a, b) : false; + } + aValidType = isObject(a); + bValidType = isObject(b); + if (aValidType || bValidType) { + if (!aValidType || !bValidType) { + return false; + } + const aKeysCount = Object.keys(a).length; + const bKeysCount = Object.keys(b).length; + if (aKeysCount !== bKeysCount) { + return false; + } + for (const key in a) { + const aHasKey = a.hasOwnProperty(key); + const bHasKey = b.hasOwnProperty(key); + if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) { + return false; + } + } + } + return String(a) === String(b); +} +function looseIndexOf(arr, val) { + return arr.findIndex((item) => looseEqual(item, val)); +} +var toDisplayString = (val) => { + return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val); +}; +var replacer = (_key, val) => { + if (val && val.__v_isRef) { + return replacer(_key, val.value); + } else if (isMap(val)) { + return { + [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val2]) => { + entries[`${key} =>`] = val2; + return entries; + }, {}) + }; + } else if (isSet(val)) { + return { + [`Set(${val.size})`]: [...val.values()] + }; + } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { + return String(val); + } + return val; +}; + +// node_modules/.pnpm/@vue+reactivity@3.3.4/node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js +function warn(msg, ...args) { + console.warn(`[Vue warn] ${msg}`, ...args); +} +var activeEffectScope; +var EffectScope = class { + constructor(detached = false) { + this.detached = detached; + this._active = true; + this.effects = []; + this.cleanups = []; + this.parent = activeEffectScope; + if (!detached && activeEffectScope) { + this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( + this + ) - 1; + } + } + get active() { + return this._active; + } + run(fn) { + if (this._active) { + const currentEffectScope = activeEffectScope; + try { + activeEffectScope = this; + return fn(); + } finally { + activeEffectScope = currentEffectScope; + } + } else if (true) { + warn(`cannot run an inactive effect scope.`); + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + on() { + activeEffectScope = this; + } + /** + * This should only be called on non-detached scopes + * @internal + */ + off() { + activeEffectScope = this.parent; + } + stop(fromParent) { + if (this._active) { + let i, l; + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].stop(); + } + for (i = 0, l = this.cleanups.length; i < l; i++) { + this.cleanups[i](); + } + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].stop(true); + } + } + if (!this.detached && this.parent && !fromParent) { + const last = this.parent.scopes.pop(); + if (last && last !== this) { + this.parent.scopes[this.index] = last; + last.index = this.index; + } + } + this.parent = void 0; + this._active = false; + } + } +}; +function effectScope(detached) { + return new EffectScope(detached); +} +function recordEffectScope(effect2, scope = activeEffectScope) { + if (scope && scope.active) { + scope.effects.push(effect2); + } +} +function getCurrentScope() { + return activeEffectScope; +} +function onScopeDispose(fn) { + if (activeEffectScope) { + activeEffectScope.cleanups.push(fn); + } else if (true) { + warn( + `onScopeDispose() is called when there is no active effect scope to be associated with.` + ); + } +} +var createDep = (effects) => { + const dep = new Set(effects); + dep.w = 0; + dep.n = 0; + return dep; +}; +var wasTracked = (dep) => (dep.w & trackOpBit) > 0; +var newTracked = (dep) => (dep.n & trackOpBit) > 0; +var initDepMarkers = ({ deps }) => { + if (deps.length) { + for (let i = 0; i < deps.length; i++) { + deps[i].w |= trackOpBit; + } + } +}; +var finalizeDepMarkers = (effect2) => { + const { deps } = effect2; + if (deps.length) { + let ptr = 0; + for (let i = 0; i < deps.length; i++) { + const dep = deps[i]; + if (wasTracked(dep) && !newTracked(dep)) { + dep.delete(effect2); + } else { + deps[ptr++] = dep; + } + dep.w &= ~trackOpBit; + dep.n &= ~trackOpBit; + } + deps.length = ptr; + } +}; +var targetMap = /* @__PURE__ */ new WeakMap(); +var effectTrackDepth = 0; +var trackOpBit = 1; +var maxMarkerBits = 30; +var activeEffect; +var ITERATE_KEY = Symbol(true ? "iterate" : ""); +var MAP_KEY_ITERATE_KEY = Symbol(true ? "Map key iterate" : ""); +var ReactiveEffect = class { + constructor(fn, scheduler = null, scope) { + this.fn = fn; + this.scheduler = scheduler; + this.active = true; + this.deps = []; + this.parent = void 0; + recordEffectScope(this, scope); + } + run() { + if (!this.active) { + return this.fn(); + } + let parent = activeEffect; + let lastShouldTrack = shouldTrack; + while (parent) { + if (parent === this) { + return; + } + parent = parent.parent; + } + try { + this.parent = activeEffect; + activeEffect = this; + shouldTrack = true; + trackOpBit = 1 << ++effectTrackDepth; + if (effectTrackDepth <= maxMarkerBits) { + initDepMarkers(this); + } else { + cleanupEffect(this); + } + return this.fn(); + } finally { + if (effectTrackDepth <= maxMarkerBits) { + finalizeDepMarkers(this); + } + trackOpBit = 1 << --effectTrackDepth; + activeEffect = this.parent; + shouldTrack = lastShouldTrack; + this.parent = void 0; + if (this.deferStop) { + this.stop(); + } + } + } + stop() { + if (activeEffect === this) { + this.deferStop = true; + } else if (this.active) { + cleanupEffect(this); + if (this.onStop) { + this.onStop(); + } + this.active = false; + } + } +}; +function cleanupEffect(effect2) { + const { deps } = effect2; + if (deps.length) { + for (let i = 0; i < deps.length; i++) { + deps[i].delete(effect2); + } + deps.length = 0; + } +} +function effect(fn, options) { + if (fn.effect) { + fn = fn.effect.fn; + } + const _effect = new ReactiveEffect(fn); + if (options) { + extend(_effect, options); + if (options.scope) + recordEffectScope(_effect, options.scope); + } + if (!options || !options.lazy) { + _effect.run(); + } + const runner = _effect.run.bind(_effect); + runner.effect = _effect; + return runner; +} +function stop(runner) { + runner.effect.stop(); +} +var shouldTrack = true; +var trackStack = []; +function pauseTracking() { + trackStack.push(shouldTrack); + shouldTrack = false; +} +function resetTracking() { + const last = trackStack.pop(); + shouldTrack = last === void 0 ? true : last; +} +function track(target, type, key) { + if (shouldTrack && activeEffect) { + 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 = createDep()); + } + const eventInfo = true ? { effect: activeEffect, target, type, key } : void 0; + trackEffects(dep, eventInfo); + } +} +function trackEffects(dep, debuggerEventExtraInfo) { + let shouldTrack2 = false; + if (effectTrackDepth <= maxMarkerBits) { + if (!newTracked(dep)) { + dep.n |= trackOpBit; + shouldTrack2 = !wasTracked(dep); + } + } else { + shouldTrack2 = !dep.has(activeEffect); + } + if (shouldTrack2) { + dep.add(activeEffect); + activeEffect.deps.push(dep); + if (activeEffect.onTrack) { + activeEffect.onTrack( + extend( + { + effect: activeEffect + }, + debuggerEventExtraInfo + ) + ); + } + } +} +function trigger(target, type, key, newValue, oldValue, oldTarget) { + const depsMap = targetMap.get(target); + if (!depsMap) { + return; + } + let deps = []; + if (type === "clear") { + deps = [...depsMap.values()]; + } else if (key === "length" && isArray(target)) { + const newLength = Number(newValue); + depsMap.forEach((dep, key2) => { + if (key2 === "length" || key2 >= newLength) { + deps.push(dep); + } + }); + } else { + if (key !== void 0) { + deps.push(depsMap.get(key)); + } + switch (type) { + case "add": + if (!isArray(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + deps.push(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } else if (isIntegerKey(key)) { + deps.push(depsMap.get("length")); + } + break; + case "delete": + if (!isArray(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + deps.push(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + break; + case "set": + if (isMap(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + } + break; + } + } + const eventInfo = true ? { target, type, key, newValue, oldValue, oldTarget } : void 0; + if (deps.length === 1) { + if (deps[0]) { + if (true) { + triggerEffects(deps[0], eventInfo); + } else { + triggerEffects(deps[0]); + } + } + } else { + const effects = []; + for (const dep of deps) { + if (dep) { + effects.push(...dep); + } + } + if (true) { + triggerEffects(createDep(effects), eventInfo); + } else { + triggerEffects(createDep(effects)); + } + } +} +function triggerEffects(dep, debuggerEventExtraInfo) { + const effects = isArray(dep) ? dep : [...dep]; + for (const effect2 of effects) { + if (effect2.computed) { + triggerEffect(effect2, debuggerEventExtraInfo); + } + } + for (const effect2 of effects) { + if (!effect2.computed) { + triggerEffect(effect2, debuggerEventExtraInfo); + } + } +} +function triggerEffect(effect2, debuggerEventExtraInfo) { + if (effect2 !== activeEffect || effect2.allowRecurse) { + if (effect2.onTrigger) { + effect2.onTrigger(extend({ effect: effect2 }, debuggerEventExtraInfo)); + } + if (effect2.scheduler) { + effect2.scheduler(); + } else { + effect2.run(); + } + } +} +function getDepFromReactive(object, key) { + var _a; + return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key); +} +var isNonTrackableKeys = makeMap(`__proto__,__v_isRef,__isVue`); +var builtInSymbols = new Set( + Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol) +); +var get$1 = createGetter(); +var shallowGet = createGetter(false, true); +var readonlyGet = createGetter(true); +var shallowReadonlyGet = createGetter(true, true); +var arrayInstrumentations = createArrayInstrumentations(); +function createArrayInstrumentations() { + const instrumentations = {}; + ["includes", "indexOf", "lastIndexOf"].forEach((key) => { + instrumentations[key] = function(...args) { + const arr = toRaw(this); + for (let i = 0, l = this.length; i < l; i++) { + track(arr, "get", i + ""); + } + const res = arr[key](...args); + if (res === -1 || res === false) { + return arr[key](...args.map(toRaw)); + } else { + return res; + } + }; + }); + ["push", "pop", "shift", "unshift", "splice"].forEach((key) => { + instrumentations[key] = function(...args) { + pauseTracking(); + const res = toRaw(this)[key].apply(this, args); + resetTracking(); + return res; + }; + }); + return instrumentations; +} +function hasOwnProperty2(key) { + const obj = toRaw(this); + track(obj, "has", key); + return obj.hasOwnProperty(key); +} +function createGetter(isReadonly2 = false, shallow = false) { + return function get2(target, key, receiver) { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_isShallow") { + return shallow; + } else if (key === "__v_raw" && receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target)) { + return target; + } + const targetIsArray = isArray(target); + if (!isReadonly2) { + if (targetIsArray && hasOwn(arrayInstrumentations, key)) { + return Reflect.get(arrayInstrumentations, key, receiver); + } + if (key === "hasOwnProperty") { + return hasOwnProperty2; + } + } + const res = Reflect.get(target, key, receiver); + if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { + return res; + } + if (!isReadonly2) { + track(target, "get", key); + } + if (shallow) { + return res; + } + if (isRef(res)) { + return targetIsArray && isIntegerKey(key) ? res : res.value; + } + if (isObject(res)) { + return isReadonly2 ? readonly(res) : reactive(res); + } + return res; + }; +} +var set$1 = createSetter(); +var shallowSet = createSetter(true); +function createSetter(shallow = false) { + return function set2(target, key, value, receiver) { + let oldValue = target[key]; + if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) { + return false; + } + if (!shallow) { + if (!isShallow(value) && !isReadonly(value)) { + oldValue = toRaw(oldValue); + value = toRaw(value); + } + if (!isArray(target) && isRef(oldValue) && !isRef(value)) { + oldValue.value = value; + return true; + } + } + const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key); + const result = Reflect.set(target, key, value, receiver); + if (target === toRaw(receiver)) { + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + } + return result; + }; +} +function deleteProperty(target, key) { + const hadKey = hasOwn(target, key); + const oldValue = target[key]; + const result = Reflect.deleteProperty(target, key); + if (result && hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; +} +function has$1(target, key) { + const result = Reflect.has(target, key); + if (!isSymbol(key) || !builtInSymbols.has(key)) { + track(target, "has", key); + } + return result; +} +function ownKeys(target) { + track(target, "iterate", isArray(target) ? "length" : ITERATE_KEY); + return Reflect.ownKeys(target); +} +var mutableHandlers = { + get: get$1, + set: set$1, + deleteProperty, + has: has$1, + ownKeys +}; +var readonlyHandlers = { + get: readonlyGet, + set(target, key) { + if (true) { + warn( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + }, + deleteProperty(target, key) { + if (true) { + warn( + `Delete operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } +}; +var shallowReactiveHandlers = extend( + {}, + mutableHandlers, + { + get: shallowGet, + set: shallowSet + } +); +var shallowReadonlyHandlers = extend( + {}, + readonlyHandlers, + { + get: shallowReadonlyGet + } +); +var toShallow = (value) => value; +var getProto = (v) => Reflect.getPrototypeOf(v); +function get(target, key, isReadonly2 = false, isShallow3 = false) { + target = target["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!isReadonly2) { + if (key !== rawKey) { + track(rawTarget, "get", key); + } + track(rawTarget, "get", rawKey); + } + const { has: has2 } = getProto(rawTarget); + const wrap = isShallow3 ? toShallow : isReadonly2 ? toReadonly : toReactive; + 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); + } +} +function has(key, isReadonly2 = false) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!isReadonly2) { + if (key !== rawKey) { + track(rawTarget, "has", key); + } + track(rawTarget, "has", rawKey); + } + return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); +} +function size(target, isReadonly2 = false) { + target = target["__v_raw"]; + !isReadonly2 && track(toRaw(target), "iterate", ITERATE_KEY); + return Reflect.get(target, "size", target); +} +function add(value) { + value = toRaw(value); + const target = toRaw(this); + const proto = getProto(target); + const hadKey = proto.has.call(target, value); + if (!hadKey) { + target.add(value); + trigger(target, "add", value, value); + } + return this; +} +function set(key, value) { + value = toRaw(value); + const target = toRaw(this); + const { has: has2, get: get2 } = getProto(target); + let hadKey = has2.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has2.call(target, key); + } else if (true) { + checkIdentityKeys(target, has2, 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, oldValue); + } + return this; +} +function deleteEntry(key) { + const target = toRaw(this); + const { has: has2, get: get2 } = getProto(target); + let hadKey = has2.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has2.call(target, key); + } else if (true) { + checkIdentityKeys(target, has2, key); + } + const oldValue = get2 ? get2.call(target, key) : void 0; + const result = target.delete(key); + if (hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; +} +function clear() { + const target = toRaw(this); + const hadItems = target.size !== 0; + const oldTarget = true ? isMap(target) ? new Map(target) : new Set(target) : void 0; + const result = target.clear(); + if (hadItems) { + trigger(target, "clear", void 0, void 0, oldTarget); + } + return result; +} +function createForEach(isReadonly2, isShallow3) { + return function forEach(callback, thisArg) { + const observed = this; + const target = observed["__v_raw"]; + const rawTarget = toRaw(target); + const wrap = isShallow3 ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track(rawTarget, "iterate", ITERATE_KEY); + return target.forEach((value, key) => { + return callback.call(thisArg, wrap(value), wrap(key), observed); + }); + }; +} +function createIterableMethod(method, isReadonly2, isShallow3) { + return function(...args) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const targetIsMap = isMap(rawTarget); + const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; + const isKeyOnly = method === "keys" && targetIsMap; + const innerIterator = target[method](...args); + const wrap = isShallow3 ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track( + rawTarget, + "iterate", + isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY + ); + return { + // iterator protocol + next() { + const { value, done } = innerIterator.next(); + return done ? { value, done } : { + value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), + done + }; + }, + // iterable protocol + [Symbol.iterator]() { + return this; + } + }; + }; +} +function createReadonlyMethod(type) { + return function(...args) { + if (true) { + const key = args[0] ? `on key "${args[0]}" ` : ``; + console.warn( + `${capitalize(type)} operation ${key}failed: target is readonly.`, + toRaw(this) + ); + } + return type === "delete" ? false : this; + }; +} +function createInstrumentations() { + const mutableInstrumentations2 = { + get(key) { + return get(this, key); + }, + get size() { + return size(this); + }, + has, + add, + set, + delete: deleteEntry, + clear, + forEach: createForEach(false, false) + }; + const shallowInstrumentations2 = { + get(key) { + return get(this, key, false, true); + }, + get size() { + return size(this); + }, + has, + add, + set, + delete: deleteEntry, + clear, + forEach: createForEach(false, true) + }; + const readonlyInstrumentations2 = { + get(key) { + return get(this, key, true); + }, + get size() { + return size(this, true); + }, + has(key) { + return has.call(this, key, true); + }, + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear"), + forEach: createForEach(true, false) + }; + const shallowReadonlyInstrumentations2 = { + get(key) { + return get(this, key, true, true); + }, + get size() { + return size(this, true); + }, + has(key) { + return has.call(this, key, true); + }, + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear"), + forEach: createForEach(true, true) + }; + const iteratorMethods = ["keys", "values", "entries", Symbol.iterator]; + iteratorMethods.forEach((method) => { + mutableInstrumentations2[method] = createIterableMethod( + method, + false, + false + ); + readonlyInstrumentations2[method] = createIterableMethod( + method, + true, + false + ); + shallowInstrumentations2[method] = createIterableMethod( + method, + false, + true + ); + shallowReadonlyInstrumentations2[method] = createIterableMethod( + method, + true, + true + ); + }); + return [ + mutableInstrumentations2, + readonlyInstrumentations2, + shallowInstrumentations2, + shallowReadonlyInstrumentations2 + ]; +} +var [ + mutableInstrumentations, + readonlyInstrumentations, + shallowInstrumentations, + shallowReadonlyInstrumentations +] = createInstrumentations(); +function createInstrumentationGetter(isReadonly2, shallow) { + const instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations; + 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(instrumentations, key) && key in target ? instrumentations : target, + key, + receiver + ); + }; +} +var mutableCollectionHandlers = { + get: createInstrumentationGetter(false, false) +}; +var shallowCollectionHandlers = { + get: createInstrumentationGetter(false, true) +}; +var readonlyCollectionHandlers = { + get: createInstrumentationGetter(true, false) +}; +var shallowReadonlyCollectionHandlers = { + get: createInstrumentationGetter(true, true) +}; +function checkIdentityKeys(target, has2, key) { + const rawKey = toRaw(key); + if (rawKey !== key && has2.call(target, rawKey)) { + const type = toRawType(target); + console.warn( + `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.` + ); + } +} +var reactiveMap = /* @__PURE__ */ new WeakMap(); +var shallowReactiveMap = /* @__PURE__ */ new WeakMap(); +var readonlyMap = /* @__PURE__ */ new WeakMap(); +var 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)); +} +function reactive(target) { + if (isReadonly(target)) { + return target; + } + return createReactiveObject( + target, + false, + mutableHandlers, + mutableCollectionHandlers, + reactiveMap + ); +} +function shallowReactive(target) { + return createReactiveObject( + target, + false, + shallowReactiveHandlers, + shallowCollectionHandlers, + shallowReactiveMap + ); +} +function readonly(target) { + return createReactiveObject( + target, + true, + readonlyHandlers, + readonlyCollectionHandlers, + readonlyMap + ); +} +function shallowReadonly(target) { + return createReactiveObject( + target, + true, + shallowReadonlyHandlers, + shallowReadonlyCollectionHandlers, + shallowReadonlyMap + ); +} +function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { + if (!isObject(target)) { + if (true) { + console.warn(`value cannot be made reactive: ${String(target)}`); + } + return target; + } + if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { + return target; + } + const existingProxy = proxyMap.get(target); + if (existingProxy) { + return existingProxy; + } + const targetType = getTargetType(target); + if (targetType === 0) { + return target; + } + const proxy = new Proxy( + target, + targetType === 2 ? collectionHandlers : baseHandlers + ); + proxyMap.set(target, proxy); + return proxy; +} +function isReactive(value) { + if (isReadonly(value)) { + return isReactive(value["__v_raw"]); + } + return !!(value && value["__v_isReactive"]); +} +function isReadonly(value) { + return !!(value && value["__v_isReadonly"]); +} +function isShallow(value) { + return !!(value && value["__v_isShallow"]); +} +function isProxy(value) { + return isReactive(value) || isReadonly(value); +} +function toRaw(observed) { + const raw = observed && observed["__v_raw"]; + return raw ? toRaw(raw) : observed; +} +function markRaw(value) { + def(value, "__v_skip", true); + return value; +} +var toReactive = (value) => isObject(value) ? reactive(value) : value; +var toReadonly = (value) => isObject(value) ? readonly(value) : value; +function trackRefValue(ref2) { + if (shouldTrack && activeEffect) { + ref2 = toRaw(ref2); + if (true) { + trackEffects(ref2.dep || (ref2.dep = createDep()), { + target: ref2, + type: "get", + key: "value" + }); + } else { + trackEffects(ref2.dep || (ref2.dep = createDep())); + } + } +} +function triggerRefValue(ref2, newVal) { + ref2 = toRaw(ref2); + const dep = ref2.dep; + if (dep) { + if (true) { + triggerEffects(dep, { + target: ref2, + type: "set", + key: "value", + newValue: newVal + }); + } else { + triggerEffects(dep); + } + } +} +function isRef(r) { + return !!(r && r.__v_isRef === true); +} +function ref(value) { + return createRef(value, false); +} +function shallowRef(value) { + return createRef(value, true); +} +function createRef(rawValue, shallow) { + if (isRef(rawValue)) { + return rawValue; + } + return new RefImpl(rawValue, shallow); +} +var RefImpl = class { + constructor(value, __v_isShallow) { + this.__v_isShallow = __v_isShallow; + this.dep = void 0; + this.__v_isRef = true; + this._rawValue = __v_isShallow ? value : toRaw(value); + this._value = __v_isShallow ? value : toReactive(value); + } + get value() { + trackRefValue(this); + return this._value; + } + set value(newVal) { + const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal); + newVal = useDirectValue ? newVal : toRaw(newVal); + if (hasChanged(newVal, this._rawValue)) { + this._rawValue = newVal; + this._value = useDirectValue ? newVal : toReactive(newVal); + triggerRefValue(this, newVal); + } + } +}; +function triggerRef(ref2) { + triggerRefValue(ref2, true ? ref2.value : void 0); +} +function unref(ref2) { + return isRef(ref2) ? ref2.value : ref2; +} +function toValue(source) { + return isFunction(source) ? source() : unref(source); +} +var shallowUnwrapHandlers = { + get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)), + set: (target, key, value, receiver) => { + const oldValue = target[key]; + if (isRef(oldValue) && !isRef(value)) { + oldValue.value = value; + return true; + } else { + return Reflect.set(target, key, value, receiver); + } + } +}; +function proxyRefs(objectWithRefs) { + return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); +} +var CustomRefImpl = class { + constructor(factory) { + this.dep = void 0; + this.__v_isRef = true; + const { get: get2, set: set2 } = factory( + () => trackRefValue(this), + () => triggerRefValue(this) + ); + this._get = get2; + this._set = set2; + } + get value() { + return this._get(); + } + set value(newVal) { + this._set(newVal); + } +}; +function customRef(factory) { + return new CustomRefImpl(factory); +} +function toRefs(object) { + if (!isProxy(object)) { + console.warn(`toRefs() expects a reactive object but received a plain one.`); + } + const ret = isArray(object) ? new Array(object.length) : {}; + for (const key in object) { + ret[key] = propertyToRef(object, key); + } + return ret; +} +var ObjectRefImpl = class { + constructor(_object, _key, _defaultValue) { + this._object = _object; + this._key = _key; + this._defaultValue = _defaultValue; + this.__v_isRef = true; + } + get value() { + const val = this._object[this._key]; + return val === void 0 ? this._defaultValue : val; + } + set value(newVal) { + this._object[this._key] = newVal; + } + get dep() { + return getDepFromReactive(toRaw(this._object), this._key); + } +}; +var GetterRefImpl = class { + constructor(_getter) { + this._getter = _getter; + this.__v_isRef = true; + this.__v_isReadonly = true; + } + get value() { + return this._getter(); + } +}; +function toRef(source, key, defaultValue) { + if (isRef(source)) { + return source; + } else if (isFunction(source)) { + return new GetterRefImpl(source); + } else if (isObject(source) && arguments.length > 1) { + return propertyToRef(source, key, defaultValue); + } else { + return ref(source); + } +} +function propertyToRef(source, key, defaultValue) { + const val = source[key]; + return isRef(val) ? val : new ObjectRefImpl( + source, + key, + defaultValue + ); +} +var ComputedRefImpl = class { + constructor(getter, _setter, isReadonly2, isSSR) { + this._setter = _setter; + this.dep = void 0; + this.__v_isRef = true; + this["__v_isReadonly"] = false; + this._dirty = true; + this.effect = new ReactiveEffect(getter, () => { + if (!this._dirty) { + this._dirty = true; + triggerRefValue(this); + } + }); + this.effect.computed = this; + this.effect.active = this._cacheable = !isSSR; + this["__v_isReadonly"] = isReadonly2; + } + get value() { + const self2 = toRaw(this); + trackRefValue(self2); + if (self2._dirty || !self2._cacheable) { + self2._dirty = false; + self2._value = self2.effect.run(); + } + return self2._value; + } + set value(newValue) { + this._setter(newValue); + } +}; +function computed(getterOrOptions, debugOptions, isSSR = false) { + let getter; + let setter; + const onlyGetter = isFunction(getterOrOptions); + if (onlyGetter) { + getter = getterOrOptions; + setter = true ? () => { + console.warn("Write operation failed: computed value is readonly"); + } : NOOP; + } else { + getter = getterOrOptions.get; + setter = getterOrOptions.set; + } + const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR); + if (debugOptions && !isSSR) { + cRef.effect.onTrack = debugOptions.onTrack; + cRef.effect.onTrigger = debugOptions.onTrigger; + } + return cRef; +} +var tick = Promise.resolve(); + +// node_modules/.pnpm/@vue+runtime-core@3.3.4/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js +var stack = []; +function pushWarningContext(vnode) { + stack.push(vnode); +} +function popWarningContext() { + stack.pop(); +} +function warn2(msg, ...args) { + if (false) + return; + pauseTracking(); + const instance = stack.length ? stack[stack.length - 1].component : null; + const appWarnHandler = instance && instance.appContext.config.warnHandler; + const trace = getComponentTrace(); + if (appWarnHandler) { + callWithErrorHandling( + appWarnHandler, + instance, + 11, + [ + msg + args.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(); +} +function getComponentTrace() { + let currentVNode = stack[stack.length - 1]; + if (!currentVNode) { + return []; + } + const normalizedStack = []; + while (currentVNode) { + const last = normalizedStack[0]; + if (last && last.vnode === currentVNode) { + last.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, i) => { + logs.push(...i === 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 keys = Object.keys(props); + keys.slice(0, 3).forEach((key) => { + res.push(...formatProp(key, props[key])); + }); + if (keys.length > 3) { + res.push(` ...`); + } + return res; +} +function formatProp(key, value, raw) { + if (isString(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 (isRef(value)) { + value = formatProp(key, toRaw(value.value), true); + return raw ? value : [`${key}=Ref<`, value, `>`]; + } else if (isFunction(value)) { + return [`${key}=fn${value.name ? `<${value.name}>` : ``}`]; + } else { + value = toRaw(value); + return raw ? value : [`${key}=`, value]; + } +} +function assertNumber(val, type) { + if (false) + return; + if (val === void 0) { + return; + } else if (typeof val !== "number") { + warn2(`${type} is not a valid number - got ${JSON.stringify(val)}.`); + } else if (isNaN(val)) { + warn2(`${type} is NaN - the duration expression might be incorrect.`); + } +} +var ErrorTypeStrings = { + ["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. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core" +}; +function callWithErrorHandling(fn, instance, type, args) { + let res; + try { + res = args ? fn(...args) : fn(); + } catch (err) { + handleError(err, instance, type); + } + return res; +} +function callWithAsyncErrorHandling(fn, instance, type, args) { + if (isFunction(fn)) { + const res = callWithErrorHandling(fn, instance, type, args); + if (res && isPromise(res)) { + res.catch((err) => { + handleError(err, instance, type); + }); + } + return res; + } + const values = []; + for (let i = 0; i < fn.length; i++) { + values.push(callWithAsyncErrorHandling(fn[i], instance, type, args)); + } + return values; +} +function handleError(err, instance, type, throwInDev = true) { + const contextVNode = instance ? instance.vnode : null; + if (instance) { + let cur = instance.parent; + const exposedInstance = instance.proxy; + const errorInfo = true ? ErrorTypeStrings[type] : type; + while (cur) { + const errorCapturedHooks = cur.ec; + if (errorCapturedHooks) { + for (let i = 0; i < errorCapturedHooks.length; i++) { + if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { + return; + } + } + } + cur = cur.parent; + } + const appErrorHandler = instance.appContext.config.errorHandler; + if (appErrorHandler) { + callWithErrorHandling( + appErrorHandler, + null, + 10, + [err, exposedInstance, errorInfo] + ); + return; + } + } + logError(err, type, contextVNode, throwInDev); +} +function logError(err, type, contextVNode, throwInDev = true) { + if (true) { + const info = ErrorTypeStrings[type]; + if (contextVNode) { + pushWarningContext(contextVNode); + } + warn2(`Unhandled error${info ? ` during execution of ${info}` : ``}`); + if (contextVNode) { + popWarningContext(); + } + if (throwInDev) { + throw err; + } else { + console.error(err); + } + } else { + console.error(err); + } +} +var isFlushing = false; +var isFlushPending = false; +var queue = []; +var flushIndex = 0; +var pendingPostFlushCbs = []; +var activePostFlushCbs = null; +var postFlushIndex = 0; +var resolvedPromise = Promise.resolve(); +var currentFlushPromise = null; +var RECURSION_LIMIT = 100; +function nextTick(fn) { + const p2 = currentFlushPromise || resolvedPromise; + return fn ? p2.then(this ? fn.bind(this) : fn) : p2; +} +function findInsertionIndex(id) { + let start = flushIndex + 1; + let end = queue.length; + while (start < end) { + const middle = start + end >>> 1; + const middleJobId = getId(queue[middle]); + middleJobId < id ? start = middle + 1 : end = middle; + } + return start; +} +function queueJob(job) { + if (!queue.length || !queue.includes( + job, + isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex + )) { + if (job.id == null) { + queue.push(job); + } else { + queue.splice(findInsertionIndex(job.id), 0, job); + } + queueFlush(); + } +} +function queueFlush() { + if (!isFlushing && !isFlushPending) { + isFlushPending = true; + currentFlushPromise = resolvedPromise.then(flushJobs); + } +} +function invalidateJob(job) { + const i = queue.indexOf(job); + if (i > flushIndex) { + queue.splice(i, 1); + } +} +function queuePostFlushCb(cb) { + if (!isArray(cb)) { + if (!activePostFlushCbs || !activePostFlushCbs.includes( + cb, + cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex + )) { + pendingPostFlushCbs.push(cb); + } + } else { + pendingPostFlushCbs.push(...cb); + } + queueFlush(); +} +function flushPreFlushCbs(seen, i = isFlushing ? flushIndex + 1 : 0) { + if (true) { + seen = seen || /* @__PURE__ */ new Map(); + } + for (; i < queue.length; i++) { + const cb = queue[i]; + if (cb && cb.pre) { + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + queue.splice(i, 1); + i--; + cb(); + } + } +} +function flushPostFlushCbs(seen) { + if (pendingPostFlushCbs.length) { + const deduped = [...new Set(pendingPostFlushCbs)]; + pendingPostFlushCbs.length = 0; + if (activePostFlushCbs) { + activePostFlushCbs.push(...deduped); + return; + } + activePostFlushCbs = deduped; + if (true) { + seen = seen || /* @__PURE__ */ new Map(); + } + activePostFlushCbs.sort((a, b) => getId(a) - getId(b)); + for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { + if (checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) { + continue; + } + activePostFlushCbs[postFlushIndex](); + } + activePostFlushCbs = null; + postFlushIndex = 0; + } +} +var getId = (job) => job.id == null ? Infinity : job.id; +var comparator = (a, b) => { + const diff = getId(a) - getId(b); + if (diff === 0) { + if (a.pre && !b.pre) + return -1; + if (b.pre && !a.pre) + return 1; + } + return diff; +}; +function flushJobs(seen) { + isFlushPending = false; + isFlushing = true; + if (true) { + seen = seen || /* @__PURE__ */ new Map(); + } + queue.sort(comparator); + const check = true ? (job) => checkRecursiveUpdates(seen, job) : NOOP; + try { + for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job && job.active !== false) { + if (check(job)) { + continue; + } + callWithErrorHandling(job, null, 14); + } + } + } finally { + flushIndex = 0; + queue.length = 0; + flushPostFlushCbs(seen); + isFlushing = false; + currentFlushPromise = null; + if (queue.length || pendingPostFlushCbs.length) { + flushJobs(seen); + } + } +} +function checkRecursiveUpdates(seen, fn) { + if (!seen.has(fn)) { + seen.set(fn, 1); + } else { + const count = seen.get(fn); + if (count > RECURSION_LIMIT) { + const instance = fn.ownerInstance; + const componentName = instance && getComponentName(instance.type); + warn2( + `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.` + ); + return true; + } else { + seen.set(fn, count + 1); + } + } +} +var isHmrUpdating = false; +var hmrDirtyComponents = /* @__PURE__ */ new Set(); +if (true) { + getGlobalThis().__VUE_HMR_RUNTIME__ = { + createRecord: tryWrap(createRecord), + rerender: tryWrap(rerender), + reload: tryWrap(reload) + }; +} +var map = /* @__PURE__ */ new Map(); +function registerHMR(instance) { + const id = instance.type.__hmrId; + let record = map.get(id); + if (!record) { + createRecord(id, instance.type); + record = map.get(id); + } + record.instances.add(instance); +} +function unregisterHMR(instance) { + map.get(instance.type.__hmrId).instances.delete(instance); +} +function createRecord(id, initialDef) { + if (map.has(id)) { + return false; + } + map.set(id, { + initialDef: normalizeClassComponent(initialDef), + instances: /* @__PURE__ */ new Set() + }); + return true; +} +function normalizeClassComponent(component) { + return isClassComponent(component) ? component.__vccOpts : component; +} +function rerender(id, newRender) { + const record = map.get(id); + if (!record) { + return; + } + record.initialDef.render = newRender; + [...record.instances].forEach((instance) => { + if (newRender) { + instance.render = newRender; + normalizeClassComponent(instance.type).render = newRender; + } + instance.renderCache = []; + isHmrUpdating = true; + instance.update(); + isHmrUpdating = false; + }); +} +function reload(id, newComp) { + const record = map.get(id); + if (!record) + return; + newComp = normalizeClassComponent(newComp); + updateComponentDef(record.initialDef, newComp); + const instances = [...record.instances]; + for (const instance of instances) { + const oldComp = normalizeClassComponent(instance.type); + if (!hmrDirtyComponents.has(oldComp)) { + if (oldComp !== record.initialDef) { + updateComponentDef(oldComp, newComp); + } + hmrDirtyComponents.add(oldComp); + } + instance.appContext.propsCache.delete(instance.type); + instance.appContext.emitsCache.delete(instance.type); + instance.appContext.optionsCache.delete(instance.type); + if (instance.ceReload) { + hmrDirtyComponents.add(oldComp); + instance.ceReload(newComp.styles); + hmrDirtyComponents.delete(oldComp); + } else if (instance.parent) { + queueJob(instance.parent.update); + } else if (instance.appContext.reload) { + instance.appContext.reload(); + } else if (typeof window !== "undefined") { + window.location.reload(); + } else { + console.warn( + "[HMR] Root or manually mounted instance modified. Full reload required." + ); + } + } + queuePostFlushCb(() => { + for (const instance of instances) { + hmrDirtyComponents.delete( + normalizeClassComponent(instance.type) + ); + } + }); +} +function updateComponentDef(oldComp, newComp) { + extend(oldComp, newComp); + for (const key in oldComp) { + if (key !== "__file" && !(key in newComp)) { + delete oldComp[key]; + } + } +} +function tryWrap(fn) { + return (id, arg) => { + try { + return fn(id, arg); + } catch (e) { + console.error(e); + console.warn( + `[HMR] Something went wrong during Vue component hot-reload. Full reload required.` + ); + } + }; +} +var devtools; +var buffer = []; +var devtoolsNotInstalled = false; +function emit$1(event, ...args) { + if (devtools) { + devtools.emit(event, ...args); + } else if (!devtoolsNotInstalled) { + buffer.push({ event, args }); + } +} +function setDevtoolsHook(hook, target) { + var _a, _b; + devtools = hook; + if (devtools) { + devtools.enabled = true; + buffer.forEach(({ event, args }) => devtools.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 + !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes("jsdom")) + ) { + const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []; + replay.push((newHook) => { + setDevtoolsHook(newHook, target); + }); + setTimeout(() => { + if (!devtools) { + target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null; + devtoolsNotInstalled = true; + buffer = []; + } + }, 3e3); + } else { + devtoolsNotInstalled = true; + buffer = []; + } +} +function devtoolsInitApp(app, version2) { + emit$1("app:init", app, version2, { + Fragment, + Text, + Comment, + Static + }); +} +function devtoolsUnmountApp(app) { + emit$1("app:unmount", app); +} +var devtoolsComponentAdded = createDevtoolsComponentHook( + "component:added" + /* COMPONENT_ADDED */ +); +var devtoolsComponentUpdated = createDevtoolsComponentHook( + "component:updated" + /* COMPONENT_UPDATED */ +); +var _devtoolsComponentRemoved = createDevtoolsComponentHook( + "component:removed" + /* COMPONENT_REMOVED */ +); +var devtoolsComponentRemoved = (component) => { + if (devtools && typeof devtools.cleanupBuffer === "function" && // remove the component if it wasn't buffered + !devtools.cleanupBuffer(component)) { + _devtoolsComponentRemoved(component); + } +}; +function createDevtoolsComponentHook(hook) { + return (component) => { + emit$1( + hook, + component.appContext.app, + component.uid, + component.parent ? component.parent.uid : void 0, + component + ); + }; +} +var devtoolsPerfStart = createDevtoolsPerformanceHook( + "perf:start" + /* PERFORMANCE_START */ +); +var devtoolsPerfEnd = createDevtoolsPerformanceHook( + "perf:end" + /* PERFORMANCE_END */ +); +function createDevtoolsPerformanceHook(hook) { + return (component, type, time) => { + emit$1(hook, component.appContext.app, component.uid, component, type, time); + }; +} +function devtoolsComponentEmit(component, event, params) { + emit$1( + "component:emit", + component.appContext.app, + component, + event, + params + ); +} +function emit(instance, event, ...rawArgs) { + if (instance.isUnmounted) + return; + const props = instance.vnode.props || EMPTY_OBJ; + if (true) { + const { + emitsOptions, + propsOptions: [propsOptions] + } = instance; + if (emitsOptions) { + if (!(event in emitsOptions) && true) { + if (!propsOptions || !(toHandlerKey(event) in propsOptions)) { + warn2( + `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(event)}" prop.` + ); + } + } else { + const validator = emitsOptions[event]; + if (isFunction(validator)) { + const isValid = validator(...rawArgs); + if (!isValid) { + warn2( + `Invalid event arguments: event validation failed for event "${event}".` + ); + } + } + } + } + } + let args = rawArgs; + const isModelListener2 = event.startsWith("update:"); + const modelArg = isModelListener2 && event.slice(7); + if (modelArg && modelArg in props) { + const modifiersKey = `${modelArg === "modelValue" ? "model" : modelArg}Modifiers`; + const { number, trim } = props[modifiersKey] || EMPTY_OBJ; + if (trim) { + args = rawArgs.map((a) => isString(a) ? a.trim() : a); + } + if (number) { + args = rawArgs.map(looseToNumber); + } + } + if (true) { + devtoolsComponentEmit(instance, event, args); + } + if (true) { + const lowerCaseEvent = event.toLowerCase(); + if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) { + warn2( + `Event "${lowerCaseEvent}" is emitted in component ${formatComponentName( + instance, + instance.type + )} but the handler is registered for "${event}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${hyphenate(event)}" instead of "${event}".` + ); + } + } + let handlerName; + let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249) + props[handlerName = toHandlerKey(camelize(event))]; + if (!handler && isModelListener2) { + handler = props[handlerName = toHandlerKey(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 + ); + } +} +function normalizeEmitsOptions(comp, appContext, asMixin = false) { + const cache = appContext.emitsCache; + const cached = cache.get(comp); + if (cached !== void 0) { + return cached; + } + const raw = comp.emits; + let normalized = {}; + let hasExtends = false; + if (__VUE_OPTIONS_API__ && !isFunction(comp)) { + const extendEmits = (raw2) => { + const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true); + if (normalizedFromExtend) { + hasExtends = true; + extend(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(comp)) { + cache.set(comp, null); + } + return null; + } + if (isArray(raw)) { + raw.forEach((key) => normalized[key] = null); + } else { + extend(normalized, raw); + } + if (isObject(comp)) { + cache.set(comp, normalized); + } + return normalized; +} +function isEmitListener(options, key) { + if (!options || !isOn(key)) { + return false; + } + key = key.slice(2).replace(/Once$/, ""); + return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key); +} +var currentRenderingInstance = null; +var currentScopeId = null; +function setCurrentRenderingInstance(instance) { + const prev = currentRenderingInstance; + currentRenderingInstance = instance; + currentScopeId = instance && instance.type.__scopeId || null; + return prev; +} +function pushScopeId(id) { + currentScopeId = id; +} +function popScopeId() { + currentScopeId = null; +} +var withScopeId = (_id) => withCtx; +function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) { + if (!ctx) + return fn; + if (fn._n) { + return fn; + } + const renderFnWithContext = (...args) => { + if (renderFnWithContext._d) { + setBlockTracking(-1); + } + const prevInstance = setCurrentRenderingInstance(ctx); + let res; + try { + res = fn(...args); + } finally { + setCurrentRenderingInstance(prevInstance); + if (renderFnWithContext._d) { + setBlockTracking(1); + } + } + if (true) { + devtoolsComponentUpdated(ctx); + } + return res; + }; + renderFnWithContext._n = true; + renderFnWithContext._c = true; + renderFnWithContext._d = true; + return renderFnWithContext; +} +var accessedAttrs = false; +function markAttrsAccessed() { + accessedAttrs = true; +} +function renderComponentRoot(instance) { + const { + type: Component, + vnode, + proxy, + withProxy, + props, + propsOptions: [propsOptions], + slots, + attrs, + emit: emit2, + render: render2, + renderCache, + data, + setupState, + ctx, + inheritAttrs + } = instance; + let result; + let fallthroughAttrs; + const prev = setCurrentRenderingInstance(instance); + if (true) { + accessedAttrs = false; + } + try { + if (vnode.shapeFlag & 4) { + const proxyToUse = withProxy || proxy; + result = normalizeVNode( + render2.call( + proxyToUse, + proxyToUse, + renderCache, + props, + setupState, + data, + ctx + ) + ); + fallthroughAttrs = attrs; + } else { + const render22 = Component; + if (attrs === props) { + markAttrsAccessed(); + } + result = normalizeVNode( + render22.length > 1 ? render22( + props, + true ? { + get attrs() { + markAttrsAccessed(); + return attrs; + }, + slots, + emit: emit2 + } : { attrs, slots, emit: emit2 } + ) : render22( + props, + null + /* we know it doesn't need it */ + ) + ); + fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs); + } + } catch (err) { + blockStack.length = 0; + handleError(err, instance, 1); + result = createVNode(Comment); + } + let root = result; + let setRoot = void 0; + if (result.patchFlag > 0 && result.patchFlag & 2048) { + [root, setRoot] = getChildRoot(result); + } + if (fallthroughAttrs && inheritAttrs !== false) { + const keys = Object.keys(fallthroughAttrs); + const { shapeFlag } = root; + if (keys.length) { + if (shapeFlag & (1 | 6)) { + if (propsOptions && keys.some(isModelListener)) { + fallthroughAttrs = filterModelListeners( + fallthroughAttrs, + propsOptions + ); + } + root = cloneVNode(root, fallthroughAttrs); + } else if (!accessedAttrs && root.type !== Comment) { + const allAttrs = Object.keys(attrs); + const eventAttrs = []; + const extraAttrs = []; + for (let i = 0, l = allAttrs.length; i < l; i++) { + const key = allAttrs[i]; + if (isOn(key)) { + if (!isModelListener(key)) { + eventAttrs.push(key[2].toLowerCase() + key.slice(3)); + } + } else { + extraAttrs.push(key); + } + } + if (extraAttrs.length) { + warn2( + `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.` + ); + } + if (eventAttrs.length) { + warn2( + `Extraneous non-emits event listeners (${eventAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.` + ); + } + } + } + } + if (vnode.dirs) { + if (!isElementRoot(root)) { + warn2( + `Runtime directive used on component with non-element root node. The directives will not function as intended.` + ); + } + root = cloneVNode(root); + root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs; + } + if (vnode.transition) { + if (!isElementRoot(root)) { + warn2( + `Component inside renders non-element root node that cannot be animated.` + ); + } + root.transition = vnode.transition; + } + if (setRoot) { + setRoot(root); + } else { + result = root; + } + setCurrentRenderingInstance(prev); + return result; +} +var getChildRoot = (vnode) => { + const rawChildren = vnode.children; + const dynamicChildren = vnode.dynamicChildren; + const childRoot = filterSingleRoot(rawChildren); + if (!childRoot) { + return [vnode, void 0]; + } + const index = rawChildren.indexOf(childRoot); + const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1; + const setRoot = (updatedRoot) => { + rawChildren[index] = updatedRoot; + if (dynamicChildren) { + if (dynamicIndex > -1) { + dynamicChildren[dynamicIndex] = updatedRoot; + } else if (updatedRoot.patchFlag > 0) { + vnode.dynamicChildren = [...dynamicChildren, updatedRoot]; + } + } + }; + return [normalizeVNode(childRoot), setRoot]; +}; +function filterSingleRoot(children) { + let singleRoot; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isVNode(child)) { + if (child.type !== Comment || child.children === "v-if") { + if (singleRoot) { + return; + } else { + singleRoot = child; + } + } + } else { + return; + } + } + return singleRoot; +} +var getFunctionalFallthrough = (attrs) => { + let res; + for (const key in attrs) { + if (key === "class" || key === "style" || isOn(key)) { + (res || (res = {}))[key] = attrs[key]; + } + } + return res; +}; +var filterModelListeners = (attrs, props) => { + const res = {}; + for (const key in attrs) { + if (!isModelListener(key) || !(key.slice(9) in props)) { + res[key] = attrs[key]; + } + } + return res; +}; +var isElementRoot = (vnode) => { + return vnode.shapeFlag & (6 | 1) || vnode.type === Comment; +}; +function shouldUpdateComponent(prevVNode, nextVNode, optimized) { + const { props: prevProps, children: prevChildren, component } = prevVNode; + const { props: nextProps, children: nextChildren, patchFlag } = nextVNode; + const emits = component.emitsOptions; + if ((prevChildren || nextChildren) && isHmrUpdating) { + return true; + } + 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 i = 0; i < dynamicProps.length; i++) { + const key = dynamicProps[i]; + if (nextProps[key] !== 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 i = 0; i < nextKeys.length; i++) { + const key = nextKeys[i]; + if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) { + return true; + } + } + return false; +} +function updateHOCHostEl({ vnode, parent }, el) { + while (parent && parent.subTree === vnode) { + (vnode = parent.vnode).el = el; + parent = parent.parent; + } +} +var isSuspense = (type) => type.__isSuspense; +var SuspenseImpl = { + name: "Suspense", + // In order to make Suspense tree-shakable, we need to avoid importing it + // directly in the renderer. The renderer checks for the __isSuspense flag + // on a vnode's type and calls the `process` method, passing in renderer + // internals. + __isSuspense: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) { + if (n1 == null) { + mountSuspense( + n2, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized, + rendererInternals + ); + } else { + patchSuspense( + n1, + n2, + container, + anchor, + parentComponent, + isSVG, + slotScopeIds, + optimized, + rendererInternals + ); + } + }, + hydrate: hydrateSuspense, + create: createSuspenseBoundary, + normalize: normalizeSuspenseChildren +}; +var Suspense = SuspenseImpl; +function triggerEvent(vnode, name) { + const eventListener = vnode.props && vnode.props[name]; + if (isFunction(eventListener)) { + eventListener(); + } +} +function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) { + const { + p: patch, + o: { createElement } + } = rendererInternals; + const hiddenContainer = createElement("div"); + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + container, + hiddenContainer, + anchor, + isSVG, + slotScopeIds, + optimized, + rendererInternals + ); + patch( + null, + suspense.pendingBranch = vnode.ssContent, + hiddenContainer, + null, + parentComponent, + suspense, + isSVG, + slotScopeIds + ); + if (suspense.deps > 0) { + triggerEvent(vnode, "onPending"); + triggerEvent(vnode, "onFallback"); + patch( + null, + vnode.ssFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + isSVG, + slotScopeIds + ); + setActiveBranch(suspense, vnode.ssFallback); + } else { + suspense.resolve(false, true); + } +} +function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) { + const suspense = n2.suspense = n1.suspense; + suspense.vnode = n2; + n2.el = n1.el; + const newBranch = n2.ssContent; + const newFallback = n2.ssFallback; + const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense; + if (pendingBranch) { + suspense.pendingBranch = newBranch; + if (isSameVNodeType(newBranch, pendingBranch)) { + patch( + pendingBranch, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else if (isInFallback) { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + isSVG, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } else { + suspense.pendingId++; + if (isHydrating) { + suspense.isHydrating = false; + suspense.activeBranch = pendingBranch; + } else { + unmount(pendingBranch, parentComponent, suspense); + } + suspense.deps = 0; + suspense.effects.length = 0; + suspense.hiddenContainer = createElement("div"); + if (isInFallback) { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + isSVG, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + suspense.resolve(true); + } else { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } + } + } + } else { + if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newBranch); + } else { + triggerEvent(n2, "onPending"); + suspense.pendingBranch = newBranch; + suspense.pendingId++; + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + const { timeout, pendingId } = suspense; + if (timeout > 0) { + setTimeout(() => { + if (suspense.pendingId === pendingId) { + suspense.fallback(newFallback); + } + }, timeout); + } else if (timeout === 0) { + suspense.fallback(newFallback); + } + } + } + } +} +var hasWarned = false; +function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) { + if (!hasWarned) { + hasWarned = true; + console[console.info ? "info" : "log"]( + ` is an experimental feature and its API will likely change.` + ); + } + const { + p: patch, + m: move, + um: unmount, + n: next, + o: { parentNode, remove: remove2 } + } = rendererInternals; + let parentSuspenseId; + const isSuspensible = isVNodeSuspensible(vnode); + if (isSuspensible) { + if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) { + parentSuspenseId = parentSuspense.pendingId; + parentSuspense.deps++; + } + } + const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0; + if (true) { + assertNumber(timeout, `Suspense timeout`); + } + const suspense = { + vnode, + parent: parentSuspense, + parentComponent, + isSVG, + container, + hiddenContainer, + anchor, + deps: 0, + pendingId: 0, + timeout: typeof timeout === "number" ? timeout : -1, + activeBranch: null, + pendingBranch: null, + isInFallback: true, + isHydrating, + isUnmounted: false, + effects: [], + resolve(resume = false, sync = false) { + if (true) { + if (!resume && !suspense.pendingBranch) { + throw new Error( + `suspense.resolve() is called without a pending branch.` + ); + } + if (suspense.isUnmounted) { + throw new Error( + `suspense.resolve() is called on an already unmounted suspense boundary.` + ); + } + } + const { + vnode: vnode2, + activeBranch, + pendingBranch, + pendingId, + effects, + parentComponent: parentComponent2, + container: container2 + } = suspense; + if (suspense.isHydrating) { + suspense.isHydrating = false; + } else if (!resume) { + const delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = () => { + if (pendingId === suspense.pendingId) { + move(pendingBranch, container2, anchor2, 0); + } + }; + } + let { anchor: anchor2 } = suspense; + if (activeBranch) { + anchor2 = next(activeBranch); + unmount(activeBranch, parentComponent2, suspense, true); + } + if (!delayEnter) { + move(pendingBranch, container2, anchor2, 0); + } + } + setActiveBranch(suspense, pendingBranch); + suspense.pendingBranch = null; + suspense.isInFallback = false; + let parent = suspense.parent; + let hasUnresolvedAncestor = false; + while (parent) { + if (parent.pendingBranch) { + parent.effects.push(...effects); + hasUnresolvedAncestor = true; + break; + } + parent = parent.parent; + } + if (!hasUnresolvedAncestor) { + queuePostFlushCb(effects); + } + suspense.effects = []; + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) { + parentSuspense.deps--; + if (parentSuspense.deps === 0 && !sync) { + parentSuspense.resolve(); + } + } + } + triggerEvent(vnode2, "onResolve"); + }, + fallback(fallbackVNode) { + if (!suspense.pendingBranch) { + return; + } + const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, isSVG: isSVG2 } = suspense; + triggerEvent(vnode2, "onFallback"); + const anchor2 = next(activeBranch); + const mountFallback = () => { + if (!suspense.isInFallback) { + return; + } + patch( + null, + fallbackVNode, + container2, + anchor2, + parentComponent2, + null, + // fallback tree will not have suspense context + isSVG2, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, fallbackVNode); + }; + const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = mountFallback; + } + suspense.isInFallback = true; + unmount( + activeBranch, + parentComponent2, + null, + // no suspense so unmount hooks fire now + true + // shouldRemove + ); + if (!delayEnter) { + mountFallback(); + } + }, + move(container2, anchor2, type) { + suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type); + suspense.container = container2; + }, + next() { + return suspense.activeBranch && next(suspense.activeBranch); + }, + registerDep(instance, setupRenderEffect) { + const isInPendingSuspense = !!suspense.pendingBranch; + if (isInPendingSuspense) { + suspense.deps++; + } + const hydratedEl = instance.vnode.el; + instance.asyncDep.catch((err) => { + handleError(err, instance, 0); + }).then((asyncSetupResult) => { + if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) { + return; + } + instance.asyncResolved = true; + const { vnode: vnode2 } = instance; + if (true) { + pushWarningContext(vnode2); + } + handleSetupResult(instance, asyncSetupResult, false); + if (hydratedEl) { + vnode2.el = hydratedEl; + } + const placeholder = !hydratedEl && instance.subTree.el; + setupRenderEffect( + instance, + vnode2, + // component may have been moved before resolve. + // if this is not a hydration, instance.subTree will be the comment + // placeholder. + parentNode(hydratedEl || instance.subTree.el), + // anchor will not be used if this is hydration, so only need to + // consider the comment placeholder case. + hydratedEl ? null : next(instance.subTree), + suspense, + isSVG, + optimized + ); + if (placeholder) { + remove2(placeholder); + } + updateHOCHostEl(instance, vnode2.el); + if (true) { + popWarningContext(); + } + if (isInPendingSuspense && --suspense.deps === 0) { + suspense.resolve(); + } + }); + }, + unmount(parentSuspense2, doRemove) { + suspense.isUnmounted = true; + if (suspense.activeBranch) { + unmount( + suspense.activeBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + if (suspense.pendingBranch) { + unmount( + suspense.pendingBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + } + }; + return suspense; +} +function hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) { + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + node.parentNode, + document.createElement("div"), + null, + isSVG, + slotScopeIds, + optimized, + rendererInternals, + true + /* hydrating */ + ); + const result = hydrateNode( + node, + suspense.pendingBranch = vnode.ssContent, + parentComponent, + suspense, + slotScopeIds, + optimized + ); + if (suspense.deps === 0) { + suspense.resolve(false, true); + } + return result; +} +function normalizeSuspenseChildren(vnode) { + const { shapeFlag, children } = vnode; + const isSlotChildren = shapeFlag & 32; + vnode.ssContent = normalizeSuspenseSlot( + isSlotChildren ? children.default : children + ); + vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment); +} +function normalizeSuspenseSlot(s) { + let block; + if (isFunction(s)) { + const trackBlock = isBlockTreeEnabled && s._c; + if (trackBlock) { + s._d = false; + openBlock(); + } + s = s(); + if (trackBlock) { + s._d = true; + block = currentBlock; + closeBlock(); + } + } + if (isArray(s)) { + const singleChild = filterSingleRoot(s); + if (!singleChild) { + warn2(` slots expect a single root node.`); + } + s = singleChild; + } + s = normalizeVNode(s); + if (block && !s.dynamicChildren) { + s.dynamicChildren = block.filter((c) => c !== s); + } + return s; +} +function queueEffectWithSuspense(fn, suspense) { + if (suspense && suspense.pendingBranch) { + if (isArray(fn)) { + suspense.effects.push(...fn); + } else { + suspense.effects.push(fn); + } + } else { + queuePostFlushCb(fn); + } +} +function setActiveBranch(suspense, branch) { + suspense.activeBranch = branch; + const { vnode, parentComponent } = suspense; + const el = vnode.el = branch.el; + if (parentComponent && parentComponent.subTree === vnode) { + parentComponent.vnode.el = el; + updateHOCHostEl(parentComponent, el); + } +} +function isVNodeSuspensible(vnode) { + var _a; + return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false; +} +function watchEffect(effect2, options) { + return doWatch(effect2, null, options); +} +function watchPostEffect(effect2, options) { + return doWatch( + effect2, + null, + true ? extend({}, options, { flush: "post" }) : { flush: "post" } + ); +} +function watchSyncEffect(effect2, options) { + return doWatch( + effect2, + null, + true ? extend({}, options, { flush: "sync" }) : { flush: "sync" } + ); +} +var INITIAL_WATCHER_VALUE = {}; +function watch(source, cb, options) { + if (!isFunction(cb)) { + warn2( + `\`watch(fn, options?)\` signature has been moved to a separate API. Use \`watchEffect(fn, options?)\` instead. \`watch\` now only supports \`watch(source, cb, options?) signature.` + ); + } + return doWatch(source, cb, options); +} +function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) { + var _a; + if (!cb) { + if (immediate !== void 0) { + warn2( + `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + if (deep !== void 0) { + warn2( + `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + } + const warnInvalidSource = (s) => { + warn2( + `Invalid watch source: `, + s, + `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.` + ); + }; + const instance = getCurrentScope() === ((_a = currentInstance) == null ? void 0 : _a.scope) ? currentInstance : null; + let getter; + let forceTrigger = false; + let isMultiSource = false; + if (isRef(source)) { + getter = () => source.value; + forceTrigger = isShallow(source); + } else if (isReactive(source)) { + getter = () => source; + deep = true; + } else if (isArray(source)) { + isMultiSource = true; + forceTrigger = source.some((s) => isReactive(s) || isShallow(s)); + getter = () => source.map((s) => { + if (isRef(s)) { + return s.value; + } else if (isReactive(s)) { + return traverse(s); + } else if (isFunction(s)) { + return callWithErrorHandling(s, instance, 2); + } else { + warnInvalidSource(s); + } + }); + } else if (isFunction(source)) { + if (cb) { + getter = () => callWithErrorHandling(source, instance, 2); + } else { + getter = () => { + if (instance && instance.isUnmounted) { + return; + } + if (cleanup) { + cleanup(); + } + return callWithAsyncErrorHandling( + source, + instance, + 3, + [onCleanup] + ); + }; + } + } else { + getter = NOOP; + warnInvalidSource(source); + } + if (cb && deep) { + const baseGetter = getter; + getter = () => traverse(baseGetter()); + } + let cleanup; + let onCleanup = (fn) => { + cleanup = effect2.onStop = () => { + callWithErrorHandling(fn, instance, 4); + }; + }; + let ssrCleanup; + if (isInSSRComponentSetup) { + onCleanup = NOOP; + if (!cb) { + getter(); + } else if (immediate) { + callWithAsyncErrorHandling(cb, instance, 3, [ + getter(), + isMultiSource ? [] : void 0, + onCleanup + ]); + } + if (flush === "sync") { + const ctx = useSSRContext(); + ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []); + } else { + return NOOP; + } + } + let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE; + const job = () => { + if (!effect2.active) { + return; + } + if (cb) { + const newValue = effect2.run(); + if (deep || forceTrigger || (isMultiSource ? newValue.some( + (v, i) => hasChanged(v, oldValue[i]) + ) : hasChanged(newValue, oldValue)) || false) { + if (cleanup) { + cleanup(); + } + callWithAsyncErrorHandling(cb, instance, 3, [ + 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, + onCleanup + ]); + oldValue = newValue; + } + } else { + effect2.run(); + } + }; + job.allowRecurse = !!cb; + let scheduler; + if (flush === "sync") { + scheduler = job; + } else if (flush === "post") { + scheduler = () => queuePostRenderEffect(job, instance && instance.suspense); + } else { + job.pre = true; + if (instance) + job.id = instance.uid; + scheduler = () => queueJob(job); + } + const effect2 = new ReactiveEffect(getter, scheduler); + if (true) { + effect2.onTrack = onTrack; + effect2.onTrigger = onTrigger; + } + if (cb) { + if (immediate) { + job(); + } else { + oldValue = effect2.run(); + } + } else if (flush === "post") { + queuePostRenderEffect( + effect2.run.bind(effect2), + instance && instance.suspense + ); + } else { + effect2.run(); + } + const unwatch = () => { + effect2.stop(); + if (instance && instance.scope) { + remove(instance.scope.effects, effect2); + } + }; + if (ssrCleanup) + ssrCleanup.push(unwatch); + return unwatch; +} +function instanceWatch(source, value, options) { + const publicThis = this.proxy; + const getter = isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis); + let cb; + if (isFunction(value)) { + cb = value; + } else { + cb = value.handler; + options = value; + } + const cur = currentInstance; + setCurrentInstance(this); + const res = doWatch(getter, cb.bind(publicThis), options); + if (cur) { + setCurrentInstance(cur); + } else { + unsetCurrentInstance(); + } + return res; +} +function createPathGetter(ctx, path) { + const segments = path.split("."); + return () => { + let cur = ctx; + for (let i = 0; i < segments.length && cur; i++) { + cur = cur[segments[i]]; + } + return cur; + }; +} +function traverse(value, seen) { + if (!isObject(value) || value["__v_skip"]) { + return value; + } + seen = seen || /* @__PURE__ */ new Set(); + if (seen.has(value)) { + return value; + } + seen.add(value); + if (isRef(value)) { + traverse(value.value, seen); + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + traverse(value[i], seen); + } + } else if (isSet(value) || isMap(value)) { + value.forEach((v) => { + traverse(v, seen); + }); + } else if (isPlainObject(value)) { + for (const key in value) { + traverse(value[key], seen); + } + } + return value; +} +function validateDirectiveName(name) { + if (isBuiltInDirective(name)) { + warn2("Do not use built-in directive ids as custom directive id: " + name); + } +} +function withDirectives(vnode, directives) { + const internalInstance = currentRenderingInstance; + if (internalInstance === null) { + warn2(`withDirectives can only be used inside render functions.`); + return vnode; + } + const instance = getExposeProxy(internalInstance) || internalInstance.proxy; + const bindings = vnode.dirs || (vnode.dirs = []); + for (let i = 0; i < directives.length; i++) { + let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i]; + if (dir) { + if (isFunction(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 i = 0; i < bindings.length; i++) { + const binding = bindings[i]; + if (oldBindings) { + binding.oldValue = oldBindings[i].value; + } + let hook = binding.dir[name]; + if (hook) { + pauseTracking(); + callWithAsyncErrorHandling(hook, instance, 8, [ + vnode.el, + binding, + vnode, + prevVNode + ]); + resetTracking(); + } + } +} +function useTransitionState() { + const state = { + isMounted: false, + isLeaving: false, + isUnmounting: false, + leavingVNodes: /* @__PURE__ */ new Map() + }; + onMounted(() => { + state.isMounted = true; + }); + onBeforeUnmount(() => { + state.isUnmounting = true; + }); + return state; +} +var TransitionHookValidator = [Function, Array]; +var 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 +}; +var BaseTransitionImpl = { + name: `BaseTransition`, + props: BaseTransitionPropsValidators, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const state = useTransitionState(); + let prevTransitionKey; + return () => { + const children = slots.default && getTransitionRawChildren(slots.default(), true); + if (!children || !children.length) { + return; + } + let child = children[0]; + if (children.length > 1) { + let hasFound = false; + for (const c of children) { + if (c.type !== Comment) { + if (hasFound) { + warn2( + " can only be used on a single element or component. Use for lists." + ); + break; + } + child = c; + hasFound = true; + if (false) + break; + } + } + } + const rawProps = toRaw(props); + const { mode } = rawProps; + if (mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") { + warn2(`invalid mode: ${mode}`); + } + if (state.isLeaving) { + return emptyPlaceholder(child); + } + const innerChild = getKeepAliveChild(child); + if (!innerChild) { + return emptyPlaceholder(child); + } + const enterHooks = resolveTransitionHooks( + innerChild, + rawProps, + state, + instance + ); + setTransitionHooks(innerChild, enterHooks); + const oldChild = instance.subTree; + const oldInnerChild = oldChild && getKeepAliveChild(oldChild); + let transitionKeyChanged = false; + const { getTransitionKey } = innerChild.type; + if (getTransitionKey) { + const key = getTransitionKey(); + if (prevTransitionKey === void 0) { + prevTransitionKey = key; + } else if (key !== prevTransitionKey) { + prevTransitionKey = key; + transitionKeyChanged = true; + } + } + if (oldInnerChild && oldInnerChild.type !== Comment && (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) { + const leavingHooks = resolveTransitionHooks( + oldInnerChild, + rawProps, + state, + instance + ); + setTransitionHooks(oldInnerChild, leavingHooks); + if (mode === "out-in") { + state.isLeaving = true; + leavingHooks.afterLeave = () => { + state.isLeaving = false; + if (instance.update.active !== false) { + instance.update(); + } + }; + 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._leaveCb = () => { + earlyRemove(); + el._leaveCb = void 0; + delete enterHooks.delayedLeave; + }; + enterHooks.delayedLeave = delayedLeave; + }; + } + } + return child; + }; + } +}; +var 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) { + 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 callHook3 = (hook, args) => { + hook && callWithAsyncErrorHandling( + hook, + instance, + 9, + args + ); + }; + const callAsyncHook = (hook, args) => { + const done = args[1]; + callHook3(hook, args); + if (isArray(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._leaveCb) { + el._leaveCb( + true + /* cancelled */ + ); + } + const leavingVNode = leavingVNodesCache[key]; + if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el._leaveCb) { + leavingVNode.el._leaveCb(); + } + callHook3(hook, [el]); + }, + enter(el) { + 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; + const done = el._enterCb = (cancelled) => { + if (called) + return; + called = true; + if (cancelled) { + callHook3(cancelHook, [el]); + } else { + callHook3(afterHook, [el]); + } + if (hooks.delayedLeave) { + hooks.delayedLeave(); + } + el._enterCb = void 0; + }; + if (hook) { + callAsyncHook(hook, [el, done]); + } else { + done(); + } + }, + leave(el, remove2) { + const key2 = String(vnode.key); + if (el._enterCb) { + el._enterCb( + true + /* cancelled */ + ); + } + if (state.isUnmounting) { + return remove2(); + } + callHook3(onBeforeLeave, [el]); + let called = false; + const done = el._leaveCb = (cancelled) => { + if (called) + return; + called = true; + remove2(); + if (cancelled) { + callHook3(onLeaveCancelled, [el]); + } else { + callHook3(onAfterLeave, [el]); + } + el._leaveCb = void 0; + if (leavingVNodesCache[key2] === vnode) { + delete leavingVNodesCache[key2]; + } + }; + leavingVNodesCache[key2] = vnode; + if (onLeave) { + callAsyncHook(onLeave, [el, done]); + } else { + done(); + } + }, + clone(vnode2) { + return resolveTransitionHooks(vnode2, props, state, instance); + } + }; + return hooks; +} +function emptyPlaceholder(vnode) { + if (isKeepAlive(vnode)) { + vnode = cloneVNode(vnode); + vnode.children = null; + return vnode; + } +} +function getKeepAliveChild(vnode) { + return isKeepAlive(vnode) ? vnode.children ? vnode.children[0] : void 0 : vnode; +} +function setTransitionHooks(vnode, hooks) { + if (vnode.shapeFlag & 6 && vnode.component) { + 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(children, keepComment = false, parentKey) { + let ret = []; + let keyedFragmentCount = 0; + for (let i = 0; i < children.length; i++) { + let child = children[i]; + const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i); + 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 i = 0; i < ret.length; i++) { + ret[i].patchFlag = -2; + } + } + return ret; +} +function defineComponent(options, extraOptions) { + return isFunction(options) ? ( + // #8326: extend call and options.name access are considered side-effects + // by Rollup, so we have to wrap it in a pure-annotated IIFE. + (() => extend({ name: options.name }, extraOptions, { setup: options }))() + ) : options; +} +var isAsyncWrapper = (i) => !!i.type.__asyncLoader; +function defineAsyncComponent(source) { + if (isFunction(source)) { + source = { loader: source }; + } + const { + loader, + loadingComponent, + errorComponent, + delay = 200, + timeout, + // 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) { + warn2( + `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.` + ); + } + if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) { + comp = comp.default; + } + if (comp && !isObject(comp) && !isFunction(comp)) { + throw new Error(`Invalid async component load result: ${comp}`); + } + resolvedComp = comp; + return comp; + })); + }; + return defineComponent({ + name: "AsyncComponentWrapper", + __asyncLoader: load, + get __asyncResolved() { + return resolvedComp; + }, + setup() { + const instance = currentInstance; + if (resolvedComp) { + return () => createInnerComp(resolvedComp, instance); + } + const onError = (err) => { + pendingRequest = null; + handleError( + err, + instance, + 13, + !errorComponent + /* do not throw in dev if user provided error component */ + ); + }; + if (suspensible && instance.suspense || isInSSRComponentSetup) { + return load().then((comp) => { + return () => createInnerComp(comp, instance); + }).catch((err) => { + onError(err); + return () => errorComponent ? createVNode(errorComponent, { + error: err + }) : null; + }); + } + const loaded = ref(false); + const error = ref(); + const delayed = ref(!!delay); + if (delay) { + setTimeout(() => { + delayed.value = false; + }, delay); + } + if (timeout != null) { + setTimeout(() => { + if (!loaded.value && !error.value) { + const err = new Error( + `Async component timed out after ${timeout}ms.` + ); + onError(err); + error.value = err; + } + }, timeout); + } + load().then(() => { + loaded.value = true; + if (instance.parent && isKeepAlive(instance.parent.vnode)) { + queueJob(instance.parent.update); + } + }).catch((err) => { + onError(err); + error.value = err; + }); + return () => { + if (loaded.value && resolvedComp) { + return createInnerComp(resolvedComp, instance); + } else if (error.value && errorComponent) { + return createVNode(errorComponent, { + error: error.value + }); + } else if (loadingComponent && !delayed.value) { + return createVNode(loadingComponent); + } + }; + } + }); +} +function createInnerComp(comp, parent) { + const { ref: ref2, props, children, ce } = parent.vnode; + const vnode = createVNode(comp, props, children); + vnode.ref = ref2; + vnode.ce = ce; + delete parent.vnode.ce; + return vnode; +} +var isKeepAlive = (vnode) => vnode.type.__isKeepAlive; +var 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(); + const sharedContext = instance.ctx; + if (!sharedContext.renderer) { + return () => { + const children = slots.default && slots.default(); + return children && children.length === 1 ? children[0] : children; + }; + } + const cache = /* @__PURE__ */ new Map(); + const keys = /* @__PURE__ */ new Set(); + let current = null; + if (true) { + instance.__v_cache = cache; + } + const parentSuspense = instance.suspense; + const { + renderer: { + p: patch, + m: move, + um: _unmount, + o: { createElement } + } + } = sharedContext; + const storageContainer = createElement("div"); + sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => { + const instance2 = vnode.component; + move(vnode, container, anchor, 0, parentSuspense); + patch( + instance2.vnode, + vnode, + container, + anchor, + instance2, + parentSuspense, + isSVG, + 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); + if (true) { + devtoolsComponentAdded(instance2); + } + }; + sharedContext.deactivate = (vnode) => { + const instance2 = vnode.component; + 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); + if (true) { + devtoolsComponentAdded(instance2); + } + }; + function unmount(vnode) { + resetShapeFlag(vnode); + _unmount(vnode, instance, parentSuspense, true); + } + function pruneCache(filter) { + cache.forEach((vnode, key) => { + const name = getComponentName(vnode.type); + if (name && (!filter || !filter(name))) { + pruneCacheEntry(key); + } + }); + } + function pruneCacheEntry(key) { + const cached = cache.get(key); + if (!current || !isSameVNodeType(cached, current)) { + unmount(cached); + } else if (current) { + resetShapeFlag(current); + } + cache.delete(key); + keys.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) { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + } + }; + onMounted(cacheSubtree); + onUpdated(cacheSubtree); + onBeforeUnmount(() => { + cache.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 null; + } + const children = slots.default(); + const rawVNode = children[0]; + if (children.length > 1) { + if (true) { + warn2(`KeepAlive should contain exactly one component child.`); + } + current = null; + return children; + } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) { + current = null; + return rawVNode; + } + let vnode = getInnerChild(rawVNode); + const comp = vnode.type; + const name = getComponentName( + isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp + ); + const { include, exclude, max } = props; + if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) { + current = vnode; + return rawVNode; + } + const key = vnode.key == null ? comp : vnode.key; + const cachedVNode = cache.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; + keys.delete(key); + keys.add(key); + } else { + keys.add(key); + if (max && keys.size > parseInt(max, 10)) { + pruneCacheEntry(keys.values().next().value); + } + } + vnode.shapeFlag |= 256; + current = vnode; + return isSuspense(rawVNode.type) ? rawVNode : vnode; + }; + } +}; +var KeepAlive = KeepAliveImpl; +function matches(pattern, name) { + if (isArray(pattern)) { + return pattern.some((p2) => matches(p2, name)); + } else if (isString(pattern)) { + return pattern.split(",").includes(name); + } else if (isRegExp(pattern)) { + return pattern.test(name); + } + return false; +} +function onActivated(hook, target) { + registerKeepAliveHook(hook, "a", target); +} +function onDeactivated(hook, target) { + registerKeepAliveHook(hook, "da", target); +} +function registerKeepAliveHook(hook, type, target = currentInstance) { + const wrappedHook = hook.__wdc || (hook.__wdc = () => { + let current = target; + while (current) { + if (current.isDeactivated) { + return; + } + current = current.parent; + } + return hook(); + }); + injectHook(type, wrappedHook, target); + if (target) { + let current = target.parent; + while (current && current.parent) { + if (isKeepAlive(current.parent.vnode)) { + injectToKeepAliveRoot(wrappedHook, type, target, current); + } + current = current.parent; + } + } +} +function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) { + const injected = injectHook( + type, + hook, + keepAliveRoot, + true + /* prepend */ + ); + onUnmounted(() => { + remove(keepAliveRoot[type], injected); + }, target); +} +function resetShapeFlag(vnode) { + vnode.shapeFlag &= ~256; + vnode.shapeFlag &= ~512; +} +function getInnerChild(vnode) { + return vnode.shapeFlag & 128 ? vnode.ssContent : vnode; +} +function injectHook(type, hook, target = currentInstance, prepend = false) { + if (target) { + const hooks = target[type] || (target[type] = []); + const wrappedHook = hook.__weh || (hook.__weh = (...args) => { + if (target.isUnmounted) { + return; + } + pauseTracking(); + setCurrentInstance(target); + const res = callWithAsyncErrorHandling(hook, target, type, args); + unsetCurrentInstance(); + resetTracking(); + return res; + }); + if (prepend) { + hooks.unshift(wrappedHook); + } else { + hooks.push(wrappedHook); + } + return wrappedHook; + } else if (true) { + const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, "")); + warn2( + `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` + ); + } +} +var createHook = (lifecycle) => (hook, target = currentInstance) => ( + // post-create lifecycle registrations are noops during SSR (except for serverPrefetch) + (!isInSSRComponentSetup || lifecycle === "sp") && injectHook(lifecycle, (...args) => hook(...args), target) +); +var onBeforeMount = createHook("bm"); +var onMounted = createHook("m"); +var onBeforeUpdate = createHook("bu"); +var onUpdated = createHook("u"); +var onBeforeUnmount = createHook("bum"); +var onUnmounted = createHook("um"); +var onServerPrefetch = createHook("sp"); +var onRenderTriggered = createHook( + "rtg" +); +var onRenderTracked = createHook( + "rtc" +); +function onErrorCaptured(hook, target = currentInstance) { + injectHook("ec", hook, target); +} +var COMPONENTS = "components"; +var DIRECTIVES = "directives"; +function resolveComponent(name, maybeSelfReference) { + return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name; +} +var NULL_DYNAMIC_COMPONENT = Symbol.for("v-ndc"); +function resolveDynamicComponent(component) { + if (isString(component)) { + return resolveAsset(COMPONENTS, component, false) || component; + } else { + return component || NULL_DYNAMIC_COMPONENT; + } +} +function resolveDirective(name) { + return resolveAsset(DIRECTIVES, name); +} +function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) { + const instance = currentRenderingInstance || currentInstance; + if (instance) { + const Component = instance.type; + if (type === COMPONENTS) { + const selfName = getComponentName( + Component, + false + /* do not include inferred name to avoid breaking existing code */ + ); + if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) { + return Component; + } + } + const res = ( + // local registration + // check instance[type] first which is resolved for options API + resolve(instance[type] || Component[type], name) || // global registration + resolve(instance.appContext[type], name) + ); + if (!res && maybeSelfReference) { + return Component; + } + if (warnMissing && !res) { + const extra = type === COMPONENTS ? ` +If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``; + warn2(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`); + } + return res; + } else if (true) { + warn2( + `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().` + ); + } +} +function resolve(registry, name) { + return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]); +} +function renderList(source, renderItem, cache, index) { + let ret; + const cached = cache && cache[index]; + if (isArray(source) || isString(source)) { + ret = new Array(source.length); + for (let i = 0, l = source.length; i < l; i++) { + ret[i] = renderItem(source[i], i, void 0, cached && cached[i]); + } + } else if (typeof source === "number") { + if (!Number.isInteger(source)) { + warn2(`The v-for range expect an integer value but got ${source}.`); + } + ret = new Array(source); + for (let i = 0; i < source; i++) { + ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]); + } + } else if (isObject(source)) { + if (source[Symbol.iterator]) { + ret = Array.from( + source, + (item, i) => renderItem(item, i, void 0, cached && cached[i]) + ); + } else { + const keys = Object.keys(source); + ret = new Array(keys.length); + for (let i = 0, l = keys.length; i < l; i++) { + const key = keys[i]; + ret[i] = renderItem(source[key], key, i, cached && cached[i]); + } + } + } else { + ret = []; + } + if (cache) { + cache[index] = ret; + } + return ret; +} +function createSlots(slots, dynamicSlots) { + for (let i = 0; i < dynamicSlots.length; i++) { + const slot = dynamicSlots[i]; + if (isArray(slot)) { + for (let j = 0; j < slot.length; j++) { + slots[slot[j].name] = slot[j].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.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) { + if (name !== "default") + props.name = name; + return createVNode("slot", props, fallback && fallback()); + } + let slot = slots[name]; + if (slot && slot.length > 1) { + warn2( + `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.` + ); + slot = () => []; + } + if (slot && slot._c) { + slot._d = false; + } + openBlock(); + const validSlotContent = slot && ensureValidVNode(slot(props)); + const rendered = createBlock( + Fragment, + { + key: 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 || `_${name}` + }, + 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(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 = {}; + if (!isObject(obj)) { + warn2(`v-on with no argument expects an object value.`); + return ret; + } + for (const key in obj) { + ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key]; + } + return ret; +} +var getPublicInstance = (i) => { + if (!i) + return null; + if (isStatefulComponent(i)) + return getExposeProxy(i) || i.proxy; + return getPublicInstance(i.parent); +}; +var publicPropertiesMap = ( + // Move PURE marker to new line to workaround compiler discarding it + // due to type annotation + extend(/* @__PURE__ */ Object.create(null), { + $: (i) => i, + $el: (i) => i.vnode.el, + $data: (i) => i.data, + $props: (i) => true ? shallowReadonly(i.props) : i.props, + $attrs: (i) => true ? shallowReadonly(i.attrs) : i.attrs, + $slots: (i) => true ? shallowReadonly(i.slots) : i.slots, + $refs: (i) => true ? shallowReadonly(i.refs) : i.refs, + $parent: (i) => getPublicInstance(i.parent), + $root: (i) => getPublicInstance(i.root), + $emit: (i) => i.emit, + $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type, + $forceUpdate: (i) => i.f || (i.f = () => queueJob(i.update)), + $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)), + $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP + }) +); +var isReservedPrefix = (key) => key === "_" || key === "$"; +var hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key); +var PublicInstanceProxyHandlers = { + get({ _: instance }, key) { + const { ctx, setupState, data, props, accessCache, type, appContext } = instance; + if (key === "__isVue") { + return true; + } + let normalizedProps; + if (key[0] !== "$") { + const n = accessCache[key]; + if (n !== void 0) { + switch (n) { + 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(data, key)) { + accessCache[key] = 2; + return data[key]; + } else if ( + // only cache other properties when instance has declared (thus stable) + // props + (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key) + ) { + accessCache[key] = 3; + return props[key]; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4; + return ctx[key]; + } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) { + accessCache[key] = 0; + } + } + const publicGetter = publicPropertiesMap[key]; + let cssModule, globalProperties; + if (publicGetter) { + if (key === "$attrs") { + track(instance, "get", key); + markAttrsAccessed(); + } else if (key === "$slots") { + track(instance, "get", key); + } + return publicGetter(instance); + } else if ( + // css module (injected by vue-loader) + (cssModule = type.__cssModules) && (cssModule = cssModule[key]) + ) { + return cssModule; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4; + return ctx[key]; + } else if ( + // global properties + globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key) + ) { + { + return globalProperties[key]; + } + } else if (currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading + // to infinite warning loop + key.indexOf("__v") !== 0)) { + if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) { + warn2( + `Property ${JSON.stringify( + key + )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.` + ); + } else if (instance === currentRenderingInstance) { + warn2( + `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.` + ); + } + } + }, + set({ _: instance }, key, value) { + const { data, setupState, ctx } = instance; + if (hasSetupBinding(setupState, key)) { + setupState[key] = value; + return true; + } else if (setupState.__isScriptSetup && hasOwn(setupState, key)) { + warn2(`Cannot mutate + + + + + + +
+
手册
+
基础知识手册(学习基础笔记)
+
+ +
+
+
+
?
+
AAA笔记
+
+ 我就是记录一些笔记,以及异常处理经验记录,工作中遇到问题记录解决方案 +
+
+
+
+
+
?
+
BBB笔记
+
+ 我就是记录一些笔记,以及异常处理经验记录,工作中遇到问题记录解决方案 +
+
+
+
+
+
?
+
CCC笔记
+
+ 我就是记录一些笔记,以及异常处理经验记录,工作中遇到问题记录解决方案 +
+
+
+
+
+
?
+
DDD笔记
+
+ 我就是记录一些笔记,以及异常处理经验记录,工作中遇到问题记录解决方案 +
+
+
+
+
\ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..370d2c1 --- /dev/null +++ b/package.json @@ -0,0 +1,19 @@ +{ + "name": "custom-vitepress-theme-demo", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "dev": "vitepress dev --host 0.0.0.0", + "build": "vitepress build " + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "@types/node": "^18.15.11", + "markdown-from-posts": "^1.0.5", + "vitepress": "1.0.0-alpha.64", + "ppst-vitepress-theme": "^0.0.2" + } +} diff --git a/pages/archives.md b/pages/archives.md new file mode 100644 index 0000000..8a7f5c1 --- /dev/null +++ b/pages/archives.md @@ -0,0 +1,13 @@ +--- +page: true +title: Archive +description: Archive +sidebar: false +--- + + + + + \ No newline at end of file diff --git a/pages/category.md b/pages/category.md new file mode 100644 index 0000000..4ae9287 --- /dev/null +++ b/pages/category.md @@ -0,0 +1,13 @@ +--- +page: true +title: 分类 +description: 分类 +sidebar: false +--- + + + + + diff --git a/pages/default.md b/pages/default.md new file mode 100644 index 0000000..7d1e9ec --- /dev/null +++ b/pages/default.md @@ -0,0 +1,13 @@ +--- +page: true +title: 默认 +description: 默认 +sidebar: false +--- + + + + + diff --git a/pages/search.md b/pages/search.md new file mode 100644 index 0000000..6720a0e --- /dev/null +++ b/pages/search.md @@ -0,0 +1,11 @@ +--- +page: true +title: 搜索 +description: 全文检索 +sidebar: false +--- + + + diff --git a/posts/default/default.md b/posts/default/default.md new file mode 100644 index 0000000..54c51a1 --- /dev/null +++ b/posts/default/default.md @@ -0,0 +1,63 @@ +--- +title: default +date: 2018-09-14 13:57:02 +category: default +tags: + - default +--- +# 主标题AAAA + +## 副标题 + +我是内容 + +```js +let a = '我是js代码' +``` + +```css +.default{ + color:red; +} +``` + +```shell +npm install default +``` + +### 副标题1 + +我是内容 + +```js +let a = '我是js代码' +``` + +```css +.default{ + color:red; +} +``` + +```shell +npm install default +``` + + +#### 副标题111 + +我是内容 + +```js +let a = '我是js代码' +``` + +```css +.default{ + color:red; +} +``` + +```shell +npm install default +``` diff --git a/posts/demo/demo.md b/posts/demo/demo.md new file mode 100644 index 0000000..cfb5d1c --- /dev/null +++ b/posts/demo/demo.md @@ -0,0 +1,63 @@ +--- +title: demo +date: 2018-09-14 13:57:02 +category: demo +tags: + - demo +--- +# 主标题BBBB + +## 副标题 + +我是内容 + +```js +let a = '我是js代码' +``` + +```css +.demo{ + color:red; +} +``` + +```shell +npm install demo +``` + +### 副标题1 + +我是内容 + +```js +let a = '我是js代码' +``` + +```css +.demo{ + color:red; +} +``` + +```shell +npm install demo +``` + + +#### 副标题111 + +我是内容 + +```js +let a = '我是js代码' +``` + +```css +.demo{ + color:red; +} +``` + +```shell +npm install demo +``` diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..0b97428566a07b7b84d26e838b58124b06590567 GIT binary patch literal 4115 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 RJkbCE002ovPDHLkV1gF}<^ccz literal 0 HcmV?d00001 diff --git a/public/img/banner.png b/public/img/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..c4aac891593dcff68ea7d0008e3ca78d3caee4c1 GIT binary patch literal 61524 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

%CjBHfuPN^IUzg!(br%Nnca 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 literal 0 HcmV?d00001 diff --git a/public/img/page.png b/public/img/page.png new file mode 100644 index 0000000000000000000000000000000000000000..81ac9d64a37a93df661fe38602434b673e4d10a4 GIT binary patch literal 84668 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�UbsZj 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