diff --git a/packages/playground/__tests__/__snapshots__/uni_modules.spec.ts.snap b/packages/playground/__tests__/__snapshots__/uni_modules.spec.ts.snap
index 3e1951289ab..63d4a399e87 100644
--- a/packages/playground/__tests__/__snapshots__/uni_modules.spec.ts.snap
+++ b/packages/playground/__tests__/__snapshots__/uni_modules.spec.ts.snap
@@ -15,6 +15,9 @@ exports[`uni_modules playground uni-app-x build:app-android 1`] = `
"components": [
"text",
"image"
+ ],
+ "modules": [
+ "uni-getSystemInfo"
]
}
}
@@ -34,6 +37,9 @@ exports[`uni_modules playground uni-app-x build:app-android 2`] = `
"components": [
"text",
"video"
+ ],
+ "modules": [
+ "uni-video"
]
}
}
@@ -674,7 +680,11 @@ exports[`uni_modules playground uni-app-x dev:app-android 1`] = `
"uni.getSystemInfo",
"uniCloud.importObject"
],
- "components": []
+ "components": [],
+ "modules": [
+ "uni-getSystemInfo",
+ "uni-cloud-client"
+ ]
}
}
}"
@@ -692,7 +702,10 @@ exports[`uni_modules playground uni-app-x dev:app-android 2`] = `
"apis": [
"uniCloud.importObject"
],
- "components": []
+ "components": [],
+ "modules": [
+ "uni-cloud-client"
+ ]
}
}
}"
diff --git a/packages/uni-app/dist/uni-app.d.ts b/packages/uni-app/dist/uni-app.d.ts
index 4078b505c41..add3c597a9b 100644
--- a/packages/uni-app/dist/uni-app.d.ts
+++ b/packages/uni-app/dist/uni-app.d.ts
@@ -1,115 +1,115 @@
-///
-
-import { capitalize } from '@vue/shared';
-import type { ComponentInternalInstance } from 'vue';
-import { extend } from '@vue/shared';
-import { hasOwn } from '@vue/shared';
-import { isPlainObject } from '@vue/shared';
-import { ref } from 'vue';
-import { shallowRef } from 'vue';
-import type { Slots } from 'vue';
-
-export { capitalize }
-
-export { extend }
-
-export declare function formatAppLog(type: 'log' | 'info' | 'debug' | 'warn' | 'error', filename: string, ...args: unknown[]): void;
-
-export declare function formatH5Log(type: keyof Console, filename: string, ...args: unknown[]): void;
-
-/**
- * uni 对象是跨实例的,而此处列的 API 均是需要跟当前实例关联的,比如 requireNativePlugin 获取 dom 时,依赖当前 weex 实例
- */
-///
-export declare function getCurrentSubNVue(): UniApp.SubNVue;
-
-export declare function getSsrGlobalData(): any;
-
-export { hasOwn }
-
-export { isPlainObject }
-
-declare interface NavigationBarSearchInputFocusChanged {
- focus: boolean;
-}
-
-export declare const onAddToFavorites: (hook: (options: Page.AddToFavoritesOption) => Page.CustomFavoritesContent, target?: ComponentInternalInstance | null) => void;
-
-export declare const onBackPress: (hook: (options: Page.BackPressOption) => any, target?: ComponentInternalInstance | null) => void;
-
-export declare const onError: (hook: (error: string) => void, target?: ComponentInternalInstance | null) => void;
-
-export declare const onExit: (hook: () => void, target?: ComponentInternalInstance | null) => void;
-
-export declare const onHide: (hook: () => any, target?: ComponentInternalInstance | null) => void;
-
-export declare const onInit: (hook: (query?: AnyObject | undefined) => void, target?: ComponentInternalInstance | null) => void;
-
-export declare const onLaunch: (hook: (options?: App.LaunchShowOption | undefined) => void, target?: ComponentInternalInstance | null) => void;
-
-export declare const onLoad: (hook: (query?: AnyObject | undefined) => void, target?: ComponentInternalInstance | null) => void;
-
-export declare const onNavigationBarButtonTap: (hook: (options: Page.NavigationBarButtonTapOption) => void, target?: ComponentInternalInstance | null) => void;
-
-export declare const onNavigationBarSearchInputChanged: (hook: (event: Page.NavigationBarSearchInputEvent) => void, target?: ComponentInternalInstance | null) => void;
-
-export declare const onNavigationBarSearchInputClicked: (hook: () => any, target?: ComponentInternalInstance | null) => void;
-
-export declare const onNavigationBarSearchInputConfirmed: (hook: (event: Page.NavigationBarSearchInputEvent) => void, target?: ComponentInternalInstance | null) => void;
-
-export declare const onNavigationBarSearchInputFocusChanged: (hook: onNavigationBarSearchInputFocusChangedHook, target?: ComponentInternalInstance | null) => void;
-
-declare type onNavigationBarSearchInputFocusChangedHook = (options: NavigationBarSearchInputFocusChanged) => void;
-
-export declare const onPageHide: (hook: () => any, target?: ComponentInternalInstance | null) => void;
-
-export declare const onPageNotFound: (hook: (options: App.PageNotFoundOption) => void, target?: ComponentInternalInstance | null) => void;
-
-export declare const onPageScroll: (hook: (options: Page.PageScrollOption) => void, target?: ComponentInternalInstance | null) => void;
-
-export declare const onPageShow: (hook: ((options?: App.LaunchShowOption | undefined) => void) | (() => void), target?: ComponentInternalInstance | null) => void;
-
-export declare const onPullDownRefresh: (hook: () => any, target?: ComponentInternalInstance | null) => void;
-
-export declare const onReachBottom: (hook: () => any, target?: ComponentInternalInstance | null) => void;
-
-export declare const onReady: (hook: () => any, target?: ComponentInternalInstance | null) => void;
-
-export declare const onResize: (hook: (options: Page.ResizeOption) => void, target?: ComponentInternalInstance | null) => void;
-
-export declare const onSaveExitState: (hook: onSaveExitStateHook, target?: ComponentInternalInstance | null) => void;
-
-declare type onSaveExitStateHook = () => SaveExitState;
-
-export declare const onShareAppMessage: (hook: (options: Page.ShareAppMessageOption) => Page.CustomShareContent | Promise>, target?: ComponentInternalInstance | null) => void;
-
-export declare const onShareTimeline: (hook: () => Page.ShareTimelineContent, target?: ComponentInternalInstance | null) => void;
-
-export declare const onShow: (hook: ((options?: App.LaunchShowOption | undefined) => void) | (() => void), target?: ComponentInternalInstance | null) => void;
-
-export declare const onTabItemTap: (hook: (options: Page.TabItemTapOption) => void, target?: ComponentInternalInstance | null) => void;
-
-export declare const onThemeChange: (hook: (options: UniApp.OnThemeChangeCallbackResult) => void, target?: ComponentInternalInstance | null) => void;
-
-export declare const onUnhandledRejection: (hook: (options: UniApp.OnUnhandledRejectionCallbackResult) => void, target?: ComponentInternalInstance | null) => void;
-
-export declare const onUnload: (hook: () => any, target?: ComponentInternalInstance | null) => void;
-
-export declare function renderComponentSlot(slots: Slots, name: string, props?: any | null): any | null;
-
-export declare function requireNativePlugin(name: string): any;
-
-export declare function resolveEasycom(component: unknown, easycom: unknown): unknown;
-
-declare interface SaveExitState {
- data: any;
- expireTimeStamp: number;
-}
-
-export declare const shallowSsrRef: SSRRef;
-
-declare type SSRRef = (value: unknown, key?: string, shallow?: boolean) => ReturnType | ReturnType;
-
-export declare const ssrRef: SSRRef;
-
-export { }
+///
+
+import { capitalize } from '@vue/shared';
+import type { ComponentInternalInstance } from 'vue';
+import { extend } from '@vue/shared';
+import { hasOwn } from '@vue/shared';
+import { isPlainObject } from '@vue/shared';
+import { ref } from 'vue';
+import { shallowRef } from 'vue';
+import type { Slots } from 'vue';
+
+export { capitalize }
+
+export { extend }
+
+export declare function formatAppLog(type: 'log' | 'info' | 'debug' | 'warn' | 'error', filename: string, ...args: unknown[]): void;
+
+export declare function formatH5Log(type: keyof Console, filename: string, ...args: unknown[]): void;
+
+/**
+ * uni 对象是跨实例的,而此处列的 API 均是需要跟当前实例关联的,比如 requireNativePlugin 获取 dom 时,依赖当前 weex 实例
+ */
+///
+export declare function getCurrentSubNVue(): UniApp.SubNVue;
+
+export declare function getSsrGlobalData(): any;
+
+export { hasOwn }
+
+export { isPlainObject }
+
+declare interface NavigationBarSearchInputFocusChanged {
+ focus: boolean;
+}
+
+export declare const onAddToFavorites: (hook: (options: Page.AddToFavoritesOption) => Page.CustomFavoritesContent, target?: ComponentInternalInstance | null) => void;
+
+export declare const onBackPress: (hook: (options: Page.BackPressOption) => any, target?: ComponentInternalInstance | null) => void;
+
+export declare const onError: (hook: (error: string) => void, target?: ComponentInternalInstance | null) => void;
+
+export declare const onExit: (hook: () => void, target?: ComponentInternalInstance | null) => void;
+
+export declare const onHide: (hook: () => any, target?: ComponentInternalInstance | null) => void;
+
+export declare const onInit: (hook: (query?: AnyObject | undefined) => void, target?: ComponentInternalInstance | null) => void;
+
+export declare const onLaunch: (hook: (options?: App.LaunchShowOption | undefined) => void, target?: ComponentInternalInstance | null) => void;
+
+export declare const onLoad: (hook: (query?: AnyObject | undefined) => void, target?: ComponentInternalInstance | null) => void;
+
+export declare const onNavigationBarButtonTap: (hook: (options: Page.NavigationBarButtonTapOption) => void, target?: ComponentInternalInstance | null) => void;
+
+export declare const onNavigationBarSearchInputChanged: (hook: (event: Page.NavigationBarSearchInputEvent) => void, target?: ComponentInternalInstance | null) => void;
+
+export declare const onNavigationBarSearchInputClicked: (hook: () => any, target?: ComponentInternalInstance | null) => void;
+
+export declare const onNavigationBarSearchInputConfirmed: (hook: (event: Page.NavigationBarSearchInputEvent) => void, target?: ComponentInternalInstance | null) => void;
+
+export declare const onNavigationBarSearchInputFocusChanged: (hook: onNavigationBarSearchInputFocusChangedHook, target?: ComponentInternalInstance | null) => void;
+
+declare type onNavigationBarSearchInputFocusChangedHook = (options: NavigationBarSearchInputFocusChanged) => void;
+
+export declare const onPageHide: (hook: () => any, target?: ComponentInternalInstance | null) => void;
+
+export declare const onPageNotFound: (hook: (options: App.PageNotFoundOption) => void, target?: ComponentInternalInstance | null) => void;
+
+export declare const onPageScroll: (hook: (options: Page.PageScrollOption) => void, target?: ComponentInternalInstance | null) => void;
+
+export declare const onPageShow: (hook: ((options?: App.LaunchShowOption | undefined) => void) | (() => void), target?: ComponentInternalInstance | null) => void;
+
+export declare const onPullDownRefresh: (hook: () => any, target?: ComponentInternalInstance | null) => void;
+
+export declare const onReachBottom: (hook: () => any, target?: ComponentInternalInstance | null) => void;
+
+export declare const onReady: (hook: () => any, target?: ComponentInternalInstance | null) => void;
+
+export declare const onResize: (hook: (options: Page.ResizeOption) => void, target?: ComponentInternalInstance | null) => void;
+
+export declare const onSaveExitState: (hook: onSaveExitStateHook, target?: ComponentInternalInstance | null) => void;
+
+declare type onSaveExitStateHook = () => SaveExitState;
+
+export declare const onShareAppMessage: (hook: (options: Page.ShareAppMessageOption) => Page.CustomShareContent | Promise>, target?: ComponentInternalInstance | null) => void;
+
+export declare const onShareTimeline: (hook: () => Page.ShareTimelineContent, target?: ComponentInternalInstance | null) => void;
+
+export declare const onShow: (hook: ((options?: App.LaunchShowOption | undefined) => void) | (() => void), target?: ComponentInternalInstance | null) => void;
+
+export declare const onTabItemTap: (hook: (options: Page.TabItemTapOption) => void, target?: ComponentInternalInstance | null) => void;
+
+export declare const onThemeChange: (hook: (options: UniApp.OnThemeChangeCallbackResult) => void, target?: ComponentInternalInstance | null) => void;
+
+export declare const onUnhandledRejection: (hook: (options: UniApp.OnUnhandledRejectionCallbackResult) => void, target?: ComponentInternalInstance | null) => void;
+
+export declare const onUnload: (hook: () => any, target?: ComponentInternalInstance | null) => void;
+
+export declare function renderComponentSlot(slots: Slots, name: string, props?: any | null): any | null;
+
+export declare function requireNativePlugin(name: string): any;
+
+export declare function resolveEasycom(component: unknown, easycom: unknown): unknown;
+
+declare interface SaveExitState {
+ data: any;
+ expireTimeStamp: number;
+}
+
+export declare const shallowSsrRef: SSRRef;
+
+declare type SSRRef = (value: unknown, key?: string, shallow?: boolean) => ReturnType | ReturnType;
+
+export declare const ssrRef: SSRRef;
+
+export { }
diff --git a/packages/uni-cli-shared/src/uni_modules.ts b/packages/uni-cli-shared/src/uni_modules.ts
index 46c1e4c5293..d096ecc8663 100644
--- a/packages/uni-cli-shared/src/uni_modules.ts
+++ b/packages/uni-cli-shared/src/uni_modules.ts
@@ -624,13 +624,20 @@ function findLastIndex(
let encryptUniModules: ReturnType = {}
-export function resolveEncryptUniModule(id: string) {
+export function resolveEncryptUniModule(
+ id: string,
+ platform: typeof process.env.UNI_UTS_PLATFORM,
+ isX: boolean = true
+) {
const parts = id.split('/')
const index = findLastIndex(parts, (part) => part === 'uni_modules')
if (index !== -1) {
const uniModuleId = parts[index + 1]
if (uniModuleId in encryptUniModules) {
- return `@/uni_modules/${uniModuleId}?uni_helpers`
+ // 原生平台走旧的uts-proxy
+ return `@/uni_modules/${uniModuleId}?${
+ isX && platform === 'app-android' ? 'uts-proxy' : 'uni_helpers'
+ }`
}
}
}
diff --git a/packages/uni-cli-shared/src/vite/cloud.ts b/packages/uni-cli-shared/src/vite/cloud.ts
index b09349cffa2..11b3d12dccd 100644
--- a/packages/uni-cli-shared/src/vite/cloud.ts
+++ b/packages/uni-cli-shared/src/vite/cloud.ts
@@ -118,6 +118,13 @@ export function uniEncryptUniModulesPlugin(): Plugin {
uni_modules: [],
})
if (result) {
+ const apis = result.inject_apis
+ const components = getUniModulesExtApiComponents(uniModule)
+ const modules = resolveUTSCompiler().parseInjectModules(
+ apis,
+ {},
+ components
+ )
fs.writeFileSync(
path.resolve(
process.env.UNI_OUTPUT_DIR,
@@ -127,8 +134,9 @@ export function uniEncryptUniModulesPlugin(): Plugin {
),
genUniModulesPackageJson(uniModule, tempOutputDir, {
env: initCheckEnv(),
- apis: result.inject_apis,
- components: getUniModulesExtApiComponents(uniModule),
+ apis,
+ components,
+ modules,
})
)
}
diff --git a/packages/uni-cli-shared/src/vite/plugins/uts/uni_modules.ts b/packages/uni-cli-shared/src/vite/plugins/uts/uni_modules.ts
index 2fdb1d0925b..72ac9f5c523 100644
--- a/packages/uni-cli-shared/src/vite/plugins/uts/uni_modules.ts
+++ b/packages/uni-cli-shared/src/vite/plugins/uts/uni_modules.ts
@@ -114,28 +114,38 @@ export function uniUTSUniModulesPlugin(
}
}
+ const isX = process.env.UNI_APP_X === 'true'
+
return {
name: 'uni:uts-uni_modules',
apply: 'build',
enforce: 'pre',
async configResolved() {
- const manifest = parseManifestJsonOnce(inputDir)
- await checkEncryptUniModules(inputDir, {
- mode:
- process.env.NODE_ENV !== 'development' ? 'production' : 'development',
- compilerVersion: process.env.UNI_COMPILER_VERSION,
- appid: manifest.appid,
- appname: manifest.name,
- platform: process.env.UNI_UTS_PLATFORM,
- 'uni-app-x': process.env.UNI_APP_X === 'true',
- })
+ if (isX) {
+ const manifest = parseManifestJsonOnce(inputDir)
+ await checkEncryptUniModules(inputDir, {
+ mode:
+ process.env.NODE_ENV !== 'development'
+ ? 'production'
+ : 'development',
+ compilerVersion: process.env.UNI_COMPILER_VERSION,
+ appid: manifest.appid,
+ appname: manifest.name,
+ platform: process.env.UNI_UTS_PLATFORM,
+ 'uni-app-x': isX,
+ })
+ }
},
resolveId(id, importer) {
if (isUTSProxy(id) || isUniHelpers(id)) {
return id
}
- if (process.env.UNI_COMPILE_TARGET !== 'uni_modules') {
- const resolvedId = resolveEncryptUniModule(id)
+ if (isX && process.env.UNI_COMPILE_TARGET !== 'uni_modules') {
+ const resolvedId = resolveEncryptUniModule(
+ id,
+ process.env.UNI_UTS_PLATFORM,
+ process.env.UNI_APP_X === 'true'
+ )
if (resolvedId) {
return resolvedId
}
diff --git a/packages/uni-mp-vue/dist/vue.runtime.esm.js b/packages/uni-mp-vue/dist/vue.runtime.esm.js
new file mode 100644
index 00000000000..c456e2e48af
--- /dev/null
+++ b/packages/uni-mp-vue/dist/vue.runtime.esm.js
@@ -0,0 +1,8083 @@
+import { isRootHook, getValueByDataPath, isUniLifecycleHook, ON_ERROR, UniLifecycleHooks, invokeCreateErrorHandler, dynamicSlotName } from '@dcloudio/uni-shared';
+import { isSymbol, extend, isObject, toRawType, def, hasOwn, isArray, isIntegerKey, makeMap, hasChanged, isMap, capitalize, getGlobalThis, isString, normalizeClass, normalizeStyle, isFunction, isOn, NOOP, EMPTY_OBJ, isPromise, isSet, isPlainObject, camelize, remove, toHandlerKey, hyphenate, isReservedProp, toTypeString, invokeArrayFns, isBuiltInDirective, looseToNumber, NO, EMPTY_ARR, isModelListener, toNumber, toDisplayString } from '@vue/shared';
+export { EMPTY_OBJ, camelize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';
+
+/**
+* @vue/reactivity v3.4.21
+* (c) 2018-present Yuxi (Evan) You and Vue contributors
+* @license MIT
+**/
+
+function warn$4(msg, ...args) {
+ console.warn(`[Vue warn] ${msg}`, ...args);
+}
+
+let activeEffectScope$1;
+function recordEffectScope$1(effect, scope = activeEffectScope$1) {
+ if (scope && scope.active) {
+ scope.effects.push(effect);
+ }
+}
+
+let activeEffect$1;
+let ReactiveEffect$1 = class ReactiveEffect {
+ constructor(fn, trigger, scheduler, scope) {
+ this.fn = fn;
+ this.trigger = trigger;
+ this.scheduler = scheduler;
+ this.active = true;
+ this.deps = [];
+ /**
+ * @internal
+ */
+ this._dirtyLevel = 4;
+ /**
+ * @internal
+ */
+ this._trackId = 0;
+ /**
+ * @internal
+ */
+ this._runnings = 0;
+ /**
+ * @internal
+ */
+ this._shouldSchedule = false;
+ /**
+ * @internal
+ */
+ this._depsLength = 0;
+ recordEffectScope$1(this, scope);
+ }
+ get dirty() {
+ if (this._dirtyLevel === 2 || this._dirtyLevel === 3) {
+ this._dirtyLevel = 1;
+ pauseTracking$1();
+ for (let i = 0; i < this._depsLength; i++) {
+ const dep = this.deps[i];
+ if (dep.computed) {
+ triggerComputed$1(dep.computed);
+ if (this._dirtyLevel >= 4) {
+ break;
+ }
+ }
+ }
+ if (this._dirtyLevel === 1) {
+ this._dirtyLevel = 0;
+ }
+ resetTracking$1();
+ }
+ return this._dirtyLevel >= 4;
+ }
+ set dirty(v) {
+ this._dirtyLevel = v ? 4 : 0;
+ }
+ run() {
+ this._dirtyLevel = 0;
+ if (!this.active) {
+ return this.fn();
+ }
+ let lastShouldTrack = shouldTrack$1;
+ let lastEffect = activeEffect$1;
+ try {
+ shouldTrack$1 = true;
+ activeEffect$1 = this;
+ this._runnings++;
+ preCleanupEffect$1(this);
+ return this.fn();
+ } finally {
+ postCleanupEffect$1(this);
+ this._runnings--;
+ activeEffect$1 = lastEffect;
+ shouldTrack$1 = lastShouldTrack;
+ }
+ }
+ stop() {
+ var _a;
+ if (this.active) {
+ preCleanupEffect$1(this);
+ postCleanupEffect$1(this);
+ (_a = this.onStop) == null ? void 0 : _a.call(this);
+ this.active = false;
+ }
+ }
+};
+function triggerComputed$1(computed) {
+ return computed.value;
+}
+function preCleanupEffect$1(effect2) {
+ effect2._trackId++;
+ effect2._depsLength = 0;
+}
+function postCleanupEffect$1(effect2) {
+ if (effect2.deps.length > effect2._depsLength) {
+ for (let i = effect2._depsLength; i < effect2.deps.length; i++) {
+ cleanupDepEffect$1(effect2.deps[i], effect2);
+ }
+ effect2.deps.length = effect2._depsLength;
+ }
+}
+function cleanupDepEffect$1(dep, effect2) {
+ const trackId = dep.get(effect2);
+ if (trackId !== void 0 && effect2._trackId !== trackId) {
+ dep.delete(effect2);
+ if (dep.size === 0) {
+ dep.cleanup();
+ }
+ }
+}
+let shouldTrack$1 = true;
+let pauseScheduleStack$1 = 0;
+const trackStack$1 = [];
+function pauseTracking$1() {
+ trackStack$1.push(shouldTrack$1);
+ shouldTrack$1 = false;
+}
+function resetTracking$1() {
+ const last = trackStack$1.pop();
+ shouldTrack$1 = last === void 0 ? true : last;
+}
+function pauseScheduling$1() {
+ pauseScheduleStack$1++;
+}
+function resetScheduling$1() {
+ pauseScheduleStack$1--;
+ while (!pauseScheduleStack$1 && queueEffectSchedulers$1.length) {
+ queueEffectSchedulers$1.shift()();
+ }
+}
+function trackEffect$1(effect2, dep, debuggerEventExtraInfo) {
+ var _a;
+ if (dep.get(effect2) !== effect2._trackId) {
+ dep.set(effect2, effect2._trackId);
+ const oldDep = effect2.deps[effect2._depsLength];
+ if (oldDep !== dep) {
+ if (oldDep) {
+ cleanupDepEffect$1(oldDep, effect2);
+ }
+ effect2.deps[effect2._depsLength++] = dep;
+ } else {
+ effect2._depsLength++;
+ }
+ if (!!(process.env.NODE_ENV !== "production")) {
+ (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));
+ }
+ }
+}
+const queueEffectSchedulers$1 = [];
+function triggerEffects$1(dep, dirtyLevel, debuggerEventExtraInfo) {
+ var _a;
+ pauseScheduling$1();
+ for (const effect2 of dep.keys()) {
+ let tracking;
+ if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {
+ effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);
+ effect2._dirtyLevel = dirtyLevel;
+ }
+ if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {
+ if (!!(process.env.NODE_ENV !== "production")) {
+ (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));
+ }
+ effect2.trigger();
+ if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) {
+ effect2._shouldSchedule = false;
+ if (effect2.scheduler) {
+ queueEffectSchedulers$1.push(effect2.scheduler);
+ }
+ }
+ }
+ }
+ resetScheduling$1();
+}
+
+const createDep$1 = (cleanup, computed) => {
+ const dep = /* @__PURE__ */ new Map();
+ dep.cleanup = cleanup;
+ dep.computed = computed;
+ return dep;
+};
+
+const targetMap$1 = /* @__PURE__ */ new WeakMap();
+const ITERATE_KEY$1 = Symbol(!!(process.env.NODE_ENV !== "production") ? "iterate" : "");
+const MAP_KEY_ITERATE_KEY$1 = Symbol(!!(process.env.NODE_ENV !== "production") ? "Map key iterate" : "");
+function track$1(target, type, key) {
+ if (shouldTrack$1 && activeEffect$1) {
+ let depsMap = targetMap$1.get(target);
+ if (!depsMap) {
+ targetMap$1.set(target, depsMap = /* @__PURE__ */ new Map());
+ }
+ let dep = depsMap.get(key);
+ if (!dep) {
+ depsMap.set(key, dep = createDep$1(() => depsMap.delete(key)));
+ }
+ trackEffect$1(
+ activeEffect$1,
+ dep,
+ !!(process.env.NODE_ENV !== "production") ? {
+ target,
+ type,
+ key
+ } : void 0
+ );
+ }
+}
+function trigger$1(target, type, key, newValue, oldValue, oldTarget) {
+ const depsMap = targetMap$1.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" || !isSymbol(key2) && 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$1));
+ if (isMap(target)) {
+ deps.push(depsMap.get(MAP_KEY_ITERATE_KEY$1));
+ }
+ } else if (isIntegerKey(key)) {
+ deps.push(depsMap.get("length"));
+ }
+ break;
+ case "delete":
+ if (!isArray(target)) {
+ deps.push(depsMap.get(ITERATE_KEY$1));
+ if (isMap(target)) {
+ deps.push(depsMap.get(MAP_KEY_ITERATE_KEY$1));
+ }
+ }
+ break;
+ case "set":
+ if (isMap(target)) {
+ deps.push(depsMap.get(ITERATE_KEY$1));
+ }
+ break;
+ }
+ }
+ pauseScheduling$1();
+ for (const dep of deps) {
+ if (dep) {
+ triggerEffects$1(
+ dep,
+ 4,
+ !!(process.env.NODE_ENV !== "production") ? {
+ target,
+ type,
+ key,
+ newValue,
+ oldValue,
+ oldTarget
+ } : void 0
+ );
+ }
+ }
+ resetScheduling$1();
+}
+
+const isNonTrackableKeys$1 = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);
+const builtInSymbols$1 = new Set(
+ /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol)
+);
+const arrayInstrumentations$1 = /* @__PURE__ */ createArrayInstrumentations$1();
+function createArrayInstrumentations$1() {
+ const instrumentations = {};
+ ["includes", "indexOf", "lastIndexOf"].forEach((key) => {
+ instrumentations[key] = function(...args) {
+ const arr = toRaw$1(this);
+ for (let i = 0, l = this.length; i < l; i++) {
+ track$1(arr, "get", i + "");
+ }
+ const res = arr[key](...args);
+ if (res === -1 || res === false) {
+ return arr[key](...args.map(toRaw$1));
+ } else {
+ return res;
+ }
+ };
+ });
+ ["push", "pop", "shift", "unshift", "splice"].forEach((key) => {
+ instrumentations[key] = function(...args) {
+ pauseTracking$1();
+ pauseScheduling$1();
+ const res = toRaw$1(this)[key].apply(this, args);
+ resetScheduling$1();
+ resetTracking$1();
+ return res;
+ };
+ });
+ return instrumentations;
+}
+function hasOwnProperty$1(key) {
+ const obj = toRaw$1(this);
+ track$1(obj, "has", key);
+ return obj.hasOwnProperty(key);
+}
+let BaseReactiveHandler$1 = class BaseReactiveHandler {
+ constructor(_isReadonly = false, _isShallow = false) {
+ this._isReadonly = _isReadonly;
+ this._isShallow = _isShallow;
+ }
+ get(target, key, receiver) {
+ const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;
+ if (key === "__v_isReactive") {
+ return !isReadonly2;
+ } else if (key === "__v_isReadonly") {
+ return isReadonly2;
+ } else if (key === "__v_isShallow") {
+ return isShallow2;
+ } else if (key === "__v_raw") {
+ if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap$1 : readonlyMap$1 : isShallow2 ? shallowReactiveMap$1 : reactiveMap$1).get(target) || // receiver is not the reactive proxy, but has the same prototype
+ // this means the reciever is a user proxy of the reactive proxy
+ Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {
+ return target;
+ }
+ return;
+ }
+ const targetIsArray = isArray(target);
+ if (!isReadonly2) {
+ if (targetIsArray && hasOwn(arrayInstrumentations$1, key)) {
+ return Reflect.get(arrayInstrumentations$1, key, receiver);
+ }
+ if (key === "hasOwnProperty") {
+ return hasOwnProperty$1;
+ }
+ }
+ const res = Reflect.get(target, key, receiver);
+ if (isSymbol(key) ? builtInSymbols$1.has(key) : isNonTrackableKeys$1(key)) {
+ return res;
+ }
+ if (!isReadonly2) {
+ track$1(target, "get", key);
+ }
+ if (isShallow2) {
+ return res;
+ }
+ if (isRef$1(res)) {
+ return targetIsArray && isIntegerKey(key) ? res : res.value;
+ }
+ if (isObject(res)) {
+ return isReadonly2 ? readonly$1(res) : reactive$1(res);
+ }
+ return res;
+ }
+};
+let MutableReactiveHandler$1 = class MutableReactiveHandler extends BaseReactiveHandler$1 {
+ constructor(isShallow2 = false) {
+ super(false, isShallow2);
+ }
+ set(target, key, value, receiver) {
+ let oldValue = target[key];
+ if (!this._isShallow) {
+ const isOldValueReadonly = isReadonly$1(oldValue);
+ if (!isShallow$1(value) && !isReadonly$1(value)) {
+ oldValue = toRaw$1(oldValue);
+ value = toRaw$1(value);
+ }
+ if (!isArray(target) && isRef$1(oldValue) && !isRef$1(value)) {
+ if (isOldValueReadonly) {
+ return false;
+ } else {
+ 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$1(receiver)) {
+ if (!hadKey) {
+ trigger$1(target, "add", key, value);
+ } else if (hasChanged(value, oldValue)) {
+ trigger$1(target, "set", key, value, oldValue);
+ }
+ }
+ return result;
+ }
+ deleteProperty(target, key) {
+ const hadKey = hasOwn(target, key);
+ const oldValue = target[key];
+ const result = Reflect.deleteProperty(target, key);
+ if (result && hadKey) {
+ trigger$1(target, "delete", key, void 0, oldValue);
+ }
+ return result;
+ }
+ has(target, key) {
+ const result = Reflect.has(target, key);
+ if (!isSymbol(key) || !builtInSymbols$1.has(key)) {
+ track$1(target, "has", key);
+ }
+ return result;
+ }
+ ownKeys(target) {
+ track$1(
+ target,
+ "iterate",
+ isArray(target) ? "length" : ITERATE_KEY$1
+ );
+ return Reflect.ownKeys(target);
+ }
+};
+let ReadonlyReactiveHandler$1 = class ReadonlyReactiveHandler extends BaseReactiveHandler$1 {
+ constructor(isShallow2 = false) {
+ super(true, isShallow2);
+ }
+ set(target, key) {
+ if (!!(process.env.NODE_ENV !== "production")) {
+ warn$4(
+ `Set operation on key "${String(key)}" failed: target is readonly.`,
+ target
+ );
+ }
+ return true;
+ }
+ deleteProperty(target, key) {
+ if (!!(process.env.NODE_ENV !== "production")) {
+ warn$4(
+ `Delete operation on key "${String(key)}" failed: target is readonly.`,
+ target
+ );
+ }
+ return true;
+ }
+};
+const mutableHandlers$1 = /* @__PURE__ */ new MutableReactiveHandler$1();
+const readonlyHandlers$1 = /* @__PURE__ */ new ReadonlyReactiveHandler$1();
+const shallowReadonlyHandlers$1 = /* @__PURE__ */ new ReadonlyReactiveHandler$1(true);
+
+const toShallow$1 = (value) => value;
+const getProto$1 = (v) => Reflect.getPrototypeOf(v);
+function get$1(target, key, isReadonly = false, isShallow = false) {
+ target = target["__v_raw"];
+ const rawTarget = toRaw$1(target);
+ const rawKey = toRaw$1(key);
+ if (!isReadonly) {
+ if (hasChanged(key, rawKey)) {
+ track$1(rawTarget, "get", key);
+ }
+ track$1(rawTarget, "get", rawKey);
+ }
+ const { has: has2 } = getProto$1(rawTarget);
+ const wrap = isShallow ? toShallow$1 : isReadonly ? toReadonly$1 : toReactive$1;
+ if (has2.call(rawTarget, key)) {
+ return wrap(target.get(key));
+ } else if (has2.call(rawTarget, rawKey)) {
+ return wrap(target.get(rawKey));
+ } else if (target !== rawTarget) {
+ target.get(key);
+ }
+}
+function has$1(key, isReadonly = false) {
+ const target = this["__v_raw"];
+ const rawTarget = toRaw$1(target);
+ const rawKey = toRaw$1(key);
+ if (!isReadonly) {
+ if (hasChanged(key, rawKey)) {
+ track$1(rawTarget, "has", key);
+ }
+ track$1(rawTarget, "has", rawKey);
+ }
+ return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);
+}
+function size$1(target, isReadonly = false) {
+ target = target["__v_raw"];
+ !isReadonly && track$1(toRaw$1(target), "iterate", ITERATE_KEY$1);
+ return Reflect.get(target, "size", target);
+}
+function add$1(value) {
+ value = toRaw$1(value);
+ const target = toRaw$1(this);
+ const proto = getProto$1(target);
+ const hadKey = proto.has.call(target, value);
+ if (!hadKey) {
+ target.add(value);
+ trigger$1(target, "add", value, value);
+ }
+ return this;
+}
+function set$2(key, value) {
+ value = toRaw$1(value);
+ const target = toRaw$1(this);
+ const { has: has2, get: get2 } = getProto$1(target);
+ let hadKey = has2.call(target, key);
+ if (!hadKey) {
+ key = toRaw$1(key);
+ hadKey = has2.call(target, key);
+ } else if (!!(process.env.NODE_ENV !== "production")) {
+ checkIdentityKeys$1(target, has2, key);
+ }
+ const oldValue = get2.call(target, key);
+ target.set(key, value);
+ if (!hadKey) {
+ trigger$1(target, "add", key, value);
+ } else if (hasChanged(value, oldValue)) {
+ trigger$1(target, "set", key, value, oldValue);
+ }
+ return this;
+}
+function deleteEntry$1(key) {
+ const target = toRaw$1(this);
+ const { has: has2, get: get2 } = getProto$1(target);
+ let hadKey = has2.call(target, key);
+ if (!hadKey) {
+ key = toRaw$1(key);
+ hadKey = has2.call(target, key);
+ } else if (!!(process.env.NODE_ENV !== "production")) {
+ checkIdentityKeys$1(target, has2, key);
+ }
+ const oldValue = get2 ? get2.call(target, key) : void 0;
+ const result = target.delete(key);
+ if (hadKey) {
+ trigger$1(target, "delete", key, void 0, oldValue);
+ }
+ return result;
+}
+function clear$1() {
+ const target = toRaw$1(this);
+ const hadItems = target.size !== 0;
+ const oldTarget = !!(process.env.NODE_ENV !== "production") ? isMap(target) ? new Map(target) : new Set(target) : void 0;
+ const result = target.clear();
+ if (hadItems) {
+ trigger$1(target, "clear", void 0, void 0, oldTarget);
+ }
+ return result;
+}
+function createForEach$1(isReadonly, isShallow) {
+ return function forEach(callback, thisArg) {
+ const observed = this;
+ const target = observed["__v_raw"];
+ const rawTarget = toRaw$1(target);
+ const wrap = isShallow ? toShallow$1 : isReadonly ? toReadonly$1 : toReactive$1;
+ !isReadonly && track$1(rawTarget, "iterate", ITERATE_KEY$1);
+ return target.forEach((value, key) => {
+ return callback.call(thisArg, wrap(value), wrap(key), observed);
+ });
+ };
+}
+function createIterableMethod$1(method, isReadonly, isShallow) {
+ return function(...args) {
+ const target = this["__v_raw"];
+ const rawTarget = toRaw$1(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 = isShallow ? toShallow$1 : isReadonly ? toReadonly$1 : toReactive$1;
+ !isReadonly && track$1(
+ rawTarget,
+ "iterate",
+ isKeyOnly ? MAP_KEY_ITERATE_KEY$1 : ITERATE_KEY$1
+ );
+ 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$1(type) {
+ return function(...args) {
+ if (!!(process.env.NODE_ENV !== "production")) {
+ const key = args[0] ? `on key "${args[0]}" ` : ``;
+ warn$4(
+ `${capitalize(type)} operation ${key}failed: target is readonly.`,
+ toRaw$1(this)
+ );
+ }
+ return type === "delete" ? false : type === "clear" ? void 0 : this;
+ };
+}
+function createInstrumentations$1() {
+ const mutableInstrumentations2 = {
+ get(key) {
+ return get$1(this, key);
+ },
+ get size() {
+ return size$1(this);
+ },
+ has: has$1,
+ add: add$1,
+ set: set$2,
+ delete: deleteEntry$1,
+ clear: clear$1,
+ forEach: createForEach$1(false, false)
+ };
+ const shallowInstrumentations2 = {
+ get(key) {
+ return get$1(this, key, false, true);
+ },
+ get size() {
+ return size$1(this);
+ },
+ has: has$1,
+ add: add$1,
+ set: set$2,
+ delete: deleteEntry$1,
+ clear: clear$1,
+ forEach: createForEach$1(false, true)
+ };
+ const readonlyInstrumentations2 = {
+ get(key) {
+ return get$1(this, key, true);
+ },
+ get size() {
+ return size$1(this, true);
+ },
+ has(key) {
+ return has$1.call(this, key, true);
+ },
+ add: createReadonlyMethod$1("add"),
+ set: createReadonlyMethod$1("set"),
+ delete: createReadonlyMethod$1("delete"),
+ clear: createReadonlyMethod$1("clear"),
+ forEach: createForEach$1(true, false)
+ };
+ const shallowReadonlyInstrumentations2 = {
+ get(key) {
+ return get$1(this, key, true, true);
+ },
+ get size() {
+ return size$1(this, true);
+ },
+ has(key) {
+ return has$1.call(this, key, true);
+ },
+ add: createReadonlyMethod$1("add"),
+ set: createReadonlyMethod$1("set"),
+ delete: createReadonlyMethod$1("delete"),
+ clear: createReadonlyMethod$1("clear"),
+ forEach: createForEach$1(true, true)
+ };
+ const iteratorMethods = ["keys", "values", "entries", Symbol.iterator];
+ iteratorMethods.forEach((method) => {
+ mutableInstrumentations2[method] = createIterableMethod$1(
+ method,
+ false,
+ false
+ );
+ readonlyInstrumentations2[method] = createIterableMethod$1(
+ method,
+ true,
+ false
+ );
+ shallowInstrumentations2[method] = createIterableMethod$1(
+ method,
+ false,
+ true
+ );
+ shallowReadonlyInstrumentations2[method] = createIterableMethod$1(
+ method,
+ true,
+ true
+ );
+ });
+ return [
+ mutableInstrumentations2,
+ readonlyInstrumentations2,
+ shallowInstrumentations2,
+ shallowReadonlyInstrumentations2
+ ];
+}
+const [
+ mutableInstrumentations$1,
+ readonlyInstrumentations$1,
+ shallowInstrumentations$1,
+ shallowReadonlyInstrumentations$1
+] = /* @__PURE__ */ createInstrumentations$1();
+function createInstrumentationGetter$1(isReadonly, shallow) {
+ const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations$1 : shallowInstrumentations$1 : isReadonly ? readonlyInstrumentations$1 : mutableInstrumentations$1;
+ return (target, key, receiver) => {
+ if (key === "__v_isReactive") {
+ return !isReadonly;
+ } else if (key === "__v_isReadonly") {
+ return isReadonly;
+ } else if (key === "__v_raw") {
+ return target;
+ }
+ return Reflect.get(
+ hasOwn(instrumentations, key) && key in target ? instrumentations : target,
+ key,
+ receiver
+ );
+ };
+}
+const mutableCollectionHandlers$1 = {
+ get: /* @__PURE__ */ createInstrumentationGetter$1(false, false)
+};
+const readonlyCollectionHandlers$1 = {
+ get: /* @__PURE__ */ createInstrumentationGetter$1(true, false)
+};
+const shallowReadonlyCollectionHandlers$1 = {
+ get: /* @__PURE__ */ createInstrumentationGetter$1(true, true)
+};
+function checkIdentityKeys$1(target, has2, key) {
+ const rawKey = toRaw$1(key);
+ if (rawKey !== key && has2.call(target, rawKey)) {
+ const type = toRawType(target);
+ warn$4(
+ `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.`
+ );
+ }
+}
+
+const reactiveMap$1 = /* @__PURE__ */ new WeakMap();
+const shallowReactiveMap$1 = /* @__PURE__ */ new WeakMap();
+const readonlyMap$1 = /* @__PURE__ */ new WeakMap();
+const shallowReadonlyMap$1 = /* @__PURE__ */ new WeakMap();
+function targetTypeMap$1(rawType) {
+ switch (rawType) {
+ case "Object":
+ case "Array":
+ return 1 /* COMMON */;
+ case "Map":
+ case "Set":
+ case "WeakMap":
+ case "WeakSet":
+ return 2 /* COLLECTION */;
+ default:
+ return 0 /* INVALID */;
+ }
+}
+function getTargetType$1(value) {
+ return value["__v_skip"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap$1(toRawType(value));
+}
+function reactive$1(target) {
+ if (isReadonly$1(target)) {
+ return target;
+ }
+ return createReactiveObject$1(
+ target,
+ false,
+ mutableHandlers$1,
+ mutableCollectionHandlers$1,
+ reactiveMap$1
+ );
+}
+function readonly$1(target) {
+ return createReactiveObject$1(
+ target,
+ true,
+ readonlyHandlers$1,
+ readonlyCollectionHandlers$1,
+ readonlyMap$1
+ );
+}
+function shallowReadonly$1(target) {
+ return createReactiveObject$1(
+ target,
+ true,
+ shallowReadonlyHandlers$1,
+ shallowReadonlyCollectionHandlers$1,
+ shallowReadonlyMap$1
+ );
+}
+function createReactiveObject$1(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {
+ if (!isObject(target)) {
+ if (!!(process.env.NODE_ENV !== "production")) {
+ warn$4(`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$1(target);
+ if (targetType === 0 /* INVALID */) {
+ return target;
+ }
+ const proxy = new Proxy(
+ target,
+ targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers
+ );
+ proxyMap.set(target, proxy);
+ return proxy;
+}
+function isReactive$1(value) {
+ if (isReadonly$1(value)) {
+ return isReactive$1(value["__v_raw"]);
+ }
+ return !!(value && value["__v_isReactive"]);
+}
+function isReadonly$1(value) {
+ return !!(value && value["__v_isReadonly"]);
+}
+function isShallow$1(value) {
+ return !!(value && value["__v_isShallow"]);
+}
+function isProxy$1(value) {
+ return isReactive$1(value) || isReadonly$1(value);
+}
+function toRaw$1(observed) {
+ const raw = observed && observed["__v_raw"];
+ return raw ? toRaw$1(raw) : observed;
+}
+function markRaw$1(value) {
+ if (Object.isExtensible(value)) {
+ def(value, "__v_skip", true);
+ }
+ return value;
+}
+const toReactive$1 = (value) => isObject(value) ? reactive$1(value) : value;
+const toReadonly$1 = (value) => isObject(value) ? readonly$1(value) : value;
+function isRef$1(r) {
+ return !!(r && r.__v_isRef === true);
+}
+function unref$1(ref2) {
+ return isRef$1(ref2) ? ref2.value : ref2;
+}
+const shallowUnwrapHandlers$1 = {
+ get: (target, key, receiver) => unref$1(Reflect.get(target, key, receiver)),
+ set: (target, key, value, receiver) => {
+ const oldValue = target[key];
+ if (isRef$1(oldValue) && !isRef$1(value)) {
+ oldValue.value = value;
+ return true;
+ } else {
+ return Reflect.set(target, key, value, receiver);
+ }
+ }
+};
+function proxyRefs$1(objectWithRefs) {
+ return isReactive$1(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers$1);
+}
+
+/**
+* @vue/runtime-core v3.4.21
+* (c) 2018-present Yuxi (Evan) You and Vue contributors
+* @license MIT
+**/
+
+const stack$1 = [];
+function pushWarningContext$1(vnode) {
+ stack$1.push(vnode);
+}
+function popWarningContext$1() {
+ stack$1.pop();
+}
+function warn$1$1(msg, ...args) {
+ pauseTracking$1();
+ const instance = stack$1.length ? stack$1[stack$1.length - 1].component : null;
+ const appWarnHandler = instance && instance.appContext.config.warnHandler;
+ const trace = getComponentTrace$1();
+ if (appWarnHandler) {
+ callWithErrorHandling$1(
+ appWarnHandler,
+ instance,
+ 11,
+ [
+ msg + args.map((a) => {
+ var _a, _b;
+ return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);
+ }).join(""),
+ instance && instance.proxy,
+ trace.map(
+ ({ vnode }) => `at <${formatComponentName$1(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$1(trace));
+ }
+ console.warn(...warnArgs);
+ }
+ resetTracking$1();
+}
+function getComponentTrace$1() {
+ let currentVNode = stack$1[stack$1.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$1(trace) {
+ const logs = [];
+ trace.forEach((entry, i) => {
+ logs.push(...i === 0 ? [] : [`
+`], ...formatTraceEntry$1(entry));
+ });
+ return logs;
+}
+function formatTraceEntry$1({ vnode, recurseCount }) {
+ const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;
+ const isRoot = vnode.component ? vnode.component.parent == null : false;
+ const open = ` at <${formatComponentName$1(
+ vnode.component,
+ vnode.type,
+ isRoot
+ )}`;
+ const close = `>` + postfix;
+ return vnode.props ? [open, ...formatProps$1(vnode.props), close] : [open + close];
+}
+function formatProps$1(props) {
+ const res = [];
+ const keys = Object.keys(props);
+ keys.slice(0, 3).forEach((key) => {
+ res.push(...formatProp$1(key, props[key]));
+ });
+ if (keys.length > 3) {
+ res.push(` ...`);
+ }
+ return res;
+}
+function formatProp$1(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$1(value)) {
+ value = formatProp$1(key, toRaw$1(value.value), true);
+ return raw ? value : [`${key}=Ref<`, value, `>`];
+ } else if (isFunction(value)) {
+ return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];
+ } else {
+ value = toRaw$1(value);
+ return raw ? value : [`${key}=`, value];
+ }
+}
+const ErrorTypeStrings$1 = {
+ ["sp"]: "serverPrefetch hook",
+ ["bc"]: "beforeCreate hook",
+ ["c"]: "created hook",
+ ["bm"]: "beforeMount hook",
+ ["m"]: "mounted hook",
+ ["bu"]: "beforeUpdate hook",
+ ["u"]: "updated",
+ ["bum"]: "beforeUnmount hook",
+ ["um"]: "unmounted hook",
+ ["a"]: "activated hook",
+ ["da"]: "deactivated hook",
+ ["ec"]: "errorCaptured hook",
+ ["rtc"]: "renderTracked hook",
+ ["rtg"]: "renderTriggered hook",
+ [0]: "setup function",
+ [1]: "render function",
+ [2]: "watcher getter",
+ [3]: "watcher callback",
+ [4]: "watcher cleanup function",
+ [5]: "native event handler",
+ [6]: "component event handler",
+ [7]: "vnode hook",
+ [8]: "directive hook",
+ [9]: "transition hook",
+ [10]: "app errorHandler",
+ [11]: "app warnHandler",
+ [12]: "ref function",
+ [13]: "async component loader",
+ [14]: "scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core ."
+};
+function callWithErrorHandling$1(fn, instance, type, args) {
+ try {
+ return args ? fn(...args) : fn();
+ } catch (err) {
+ handleError$1(err, instance, type);
+ }
+}
+function callWithAsyncErrorHandling$1(fn, instance, type, args) {
+ if (isFunction(fn)) {
+ const res = callWithErrorHandling$1(fn, instance, type, args);
+ if (res && isPromise(res)) {
+ res.catch((err) => {
+ handleError$1(err, instance, type);
+ });
+ }
+ return res;
+ }
+ const values = [];
+ for (let i = 0; i < fn.length; i++) {
+ values.push(callWithAsyncErrorHandling$1(fn[i], instance, type, args));
+ }
+ return values;
+}
+function handleError$1(err, instance, type, throwInDev = true) {
+ const contextVNode = instance ? instance.vnode : null;
+ if (instance) {
+ let cur = instance.parent;
+ const exposedInstance = instance.proxy;
+ const errorInfo = !!(process.env.NODE_ENV !== "production") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${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$1(
+ appErrorHandler,
+ null,
+ 10,
+ [err, exposedInstance, errorInfo]
+ );
+ return;
+ }
+ }
+ logError$1(err, type, contextVNode, throwInDev);
+}
+function logError$1(err, type, contextVNode, throwInDev = true) {
+ if (!!(process.env.NODE_ENV !== "production")) {
+ const info = ErrorTypeStrings$1[type];
+ if (contextVNode) {
+ pushWarningContext$1(contextVNode);
+ }
+ warn$1$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);
+ if (contextVNode) {
+ popWarningContext$1();
+ }
+ if (throwInDev) {
+ throw err;
+ } else {
+ console.error(err);
+ }
+ } else {
+ console.error(err);
+ }
+}
+
+let isFlushing$1 = false;
+let isFlushPending$1 = false;
+const queue$1 = [];
+let flushIndex$1 = 0;
+const pendingPostFlushCbs$1 = [];
+let activePostFlushCbs$1 = null;
+let postFlushIndex$1 = 0;
+const resolvedPromise$1 = /* @__PURE__ */ Promise.resolve();
+let currentFlushPromise$1 = null;
+const RECURSION_LIMIT$1 = 100;
+function nextTick$2(fn) {
+ const p = currentFlushPromise$1 || resolvedPromise$1;
+ return fn ? p.then(this ? fn.bind(this) : fn) : p;
+}
+function findInsertionIndex$1(id) {
+ let start = flushIndex$1 + 1;
+ let end = queue$1.length;
+ while (start < end) {
+ const middle = start + end >>> 1;
+ const middleJob = queue$1[middle];
+ const middleJobId = getId$1(middleJob);
+ if (middleJobId < id || middleJobId === id && middleJob.pre) {
+ start = middle + 1;
+ } else {
+ end = middle;
+ }
+ }
+ return start;
+}
+function queueJob$1(job) {
+ if (!queue$1.length || !queue$1.includes(
+ job,
+ isFlushing$1 && job.allowRecurse ? flushIndex$1 + 1 : flushIndex$1
+ )) {
+ if (job.id == null) {
+ queue$1.push(job);
+ } else {
+ queue$1.splice(findInsertionIndex$1(job.id), 0, job);
+ }
+ queueFlush$1();
+ }
+}
+function queueFlush$1() {
+ if (!isFlushing$1 && !isFlushPending$1) {
+ isFlushPending$1 = true;
+ currentFlushPromise$1 = resolvedPromise$1.then(flushJobs$1);
+ }
+}
+function queuePostFlushCb$1(cb) {
+ if (!isArray(cb)) {
+ if (!activePostFlushCbs$1 || !activePostFlushCbs$1.includes(
+ cb,
+ cb.allowRecurse ? postFlushIndex$1 + 1 : postFlushIndex$1
+ )) {
+ pendingPostFlushCbs$1.push(cb);
+ }
+ } else {
+ pendingPostFlushCbs$1.push(...cb);
+ }
+ queueFlush$1();
+}
+function flushPostFlushCbs$1(seen) {
+ if (pendingPostFlushCbs$1.length) {
+ const deduped = [...new Set(pendingPostFlushCbs$1)].sort(
+ (a, b) => getId$1(a) - getId$1(b)
+ );
+ pendingPostFlushCbs$1.length = 0;
+ if (activePostFlushCbs$1) {
+ activePostFlushCbs$1.push(...deduped);
+ return;
+ }
+ activePostFlushCbs$1 = deduped;
+ if (!!(process.env.NODE_ENV !== "production")) {
+ seen = seen || /* @__PURE__ */ new Map();
+ }
+ for (postFlushIndex$1 = 0; postFlushIndex$1 < activePostFlushCbs$1.length; postFlushIndex$1++) {
+ if (!!(process.env.NODE_ENV !== "production") && checkRecursiveUpdates$1(seen, activePostFlushCbs$1[postFlushIndex$1])) {
+ continue;
+ }
+ activePostFlushCbs$1[postFlushIndex$1]();
+ }
+ activePostFlushCbs$1 = null;
+ postFlushIndex$1 = 0;
+ }
+}
+const getId$1 = (job) => job.id == null ? Infinity : job.id;
+const comparator$1 = (a, b) => {
+ const diff = getId$1(a) - getId$1(b);
+ if (diff === 0) {
+ if (a.pre && !b.pre)
+ return -1;
+ if (b.pre && !a.pre)
+ return 1;
+ }
+ return diff;
+};
+function flushJobs$1(seen) {
+ isFlushPending$1 = false;
+ isFlushing$1 = true;
+ if (!!(process.env.NODE_ENV !== "production")) {
+ seen = seen || /* @__PURE__ */ new Map();
+ }
+ queue$1.sort(comparator$1);
+ const check = !!(process.env.NODE_ENV !== "production") ? (job) => checkRecursiveUpdates$1(seen, job) : NOOP;
+ try {
+ for (flushIndex$1 = 0; flushIndex$1 < queue$1.length; flushIndex$1++) {
+ const job = queue$1[flushIndex$1];
+ if (job && job.active !== false) {
+ if (!!(process.env.NODE_ENV !== "production") && check(job)) {
+ continue;
+ }
+ callWithErrorHandling$1(job, null, 14);
+ }
+ }
+ } finally {
+ flushIndex$1 = 0;
+ queue$1.length = 0;
+ flushPostFlushCbs$1(seen);
+ isFlushing$1 = false;
+ currentFlushPromise$1 = null;
+ if (queue$1.length || pendingPostFlushCbs$1.length) {
+ flushJobs$1(seen);
+ }
+ }
+}
+function checkRecursiveUpdates$1(seen, fn) {
+ if (!seen.has(fn)) {
+ seen.set(fn, 1);
+ } else {
+ const count = seen.get(fn);
+ if (count > RECURSION_LIMIT$1) {
+ const instance = fn.ownerInstance;
+ const componentName = instance && getComponentName$1(instance.type);
+ handleError$1(
+ `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.`,
+ null,
+ 10
+ );
+ return true;
+ } else {
+ seen.set(fn, count + 1);
+ }
+ }
+}
+const hmrDirtyComponents = /* @__PURE__ */ new Set();
+if (!!(process.env.NODE_ENV !== "production")) {
+ getGlobalThis().__VUE_HMR_RUNTIME__ = {
+ createRecord: tryWrap(createRecord),
+ rerender: tryWrap(rerender),
+ reload: tryWrap(reload)
+ };
+}
+const map = /* @__PURE__ */ new Map();
+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$1(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 = [];
+ instance.effect.dirty = true;
+ instance.update();
+ });
+}
+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) {
+ instance.parent.effect.dirty = true;
+ queueJob$1(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$1(() => {
+ 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.`
+ );
+ }
+ };
+}
+
+let devtools$1;
+let buffer$1 = [];
+function setDevtoolsHook$1(hook, target) {
+ var _a, _b;
+ devtools$1 = hook;
+ if (devtools$1) {
+ devtools$1.enabled = true;
+ buffer$1.forEach(({ event, args }) => devtools$1.emit(event, ...args));
+ buffer$1 = [];
+ } 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$1(newHook, target);
+ });
+ setTimeout(() => {
+ if (!devtools$1) {
+ target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;
+ buffer$1 = [];
+ }
+ }, 3e3);
+ } else {
+ buffer$1 = [];
+ }
+}
+
+let currentRenderingInstance$1 = null;
+let currentScopeId$1 = null;
+function markAttrsAccessed$1() {
+}
+const NULL_DYNAMIC_COMPONENT$1 = Symbol.for("v-ndc");
+
+const isSuspense = (type) => type.__isSuspense;
+function queueEffectWithSuspense(fn, suspense) {
+ if (suspense && suspense.pendingBranch) {
+ if (isArray(fn)) {
+ suspense.effects.push(...fn);
+ } else {
+ suspense.effects.push(fn);
+ }
+ } else {
+ queuePostFlushCb$1(fn);
+ }
+}
+
+const ssrContextKey$1 = Symbol.for("v-scx");
+const useSSRContext$1 = () => {
+ {
+ const ctx = inject$1(ssrContextKey$1);
+ if (!ctx) {
+ !!(process.env.NODE_ENV !== "production") && warn$1$1(
+ `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`
+ );
+ }
+ return ctx;
+ }
+};
+const INITIAL_WATCHER_VALUE$1 = {};
+function doWatch$1(source, cb, {
+ immediate,
+ deep,
+ flush,
+ once,
+ onTrack,
+ onTrigger
+} = EMPTY_OBJ) {
+ if (cb && once) {
+ const _cb = cb;
+ cb = (...args) => {
+ _cb(...args);
+ unwatch();
+ };
+ }
+ if (!!(process.env.NODE_ENV !== "production") && deep !== void 0 && typeof deep === "number") {
+ warn$1$1(
+ `watch() "deep" option with number value will be used as watch depth in future versions. Please use a boolean instead to avoid potential breakage.`
+ );
+ }
+ if (!!(process.env.NODE_ENV !== "production") && !cb) {
+ if (immediate !== void 0) {
+ warn$1$1(
+ `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.`
+ );
+ }
+ if (deep !== void 0) {
+ warn$1$1(
+ `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.`
+ );
+ }
+ if (once !== void 0) {
+ warn$1$1(
+ `watch() "once" option is only respected when using the watch(source, callback, options?) signature.`
+ );
+ }
+ }
+ const warnInvalidSource = (s) => {
+ warn$1$1(
+ `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 = currentInstance$1;
+ const reactiveGetter = (source2) => deep === true ? source2 : (
+ // for deep: false, only traverse root-level properties
+ traverse$1(source2, deep === false ? 1 : void 0)
+ );
+ let getter;
+ let forceTrigger = false;
+ let isMultiSource = false;
+ if (isRef$1(source)) {
+ getter = () => source.value;
+ forceTrigger = isShallow$1(source);
+ } else if (isReactive$1(source)) {
+ getter = () => reactiveGetter(source);
+ forceTrigger = true;
+ } else if (isArray(source)) {
+ isMultiSource = true;
+ forceTrigger = source.some((s) => isReactive$1(s) || isShallow$1(s));
+ getter = () => source.map((s) => {
+ if (isRef$1(s)) {
+ return s.value;
+ } else if (isReactive$1(s)) {
+ return reactiveGetter(s);
+ } else if (isFunction(s)) {
+ return callWithErrorHandling$1(s, instance, 2);
+ } else {
+ !!(process.env.NODE_ENV !== "production") && warnInvalidSource(s);
+ }
+ });
+ } else if (isFunction(source)) {
+ if (cb) {
+ getter = () => callWithErrorHandling$1(source, instance, 2);
+ } else {
+ getter = () => {
+ if (cleanup) {
+ cleanup();
+ }
+ return callWithAsyncErrorHandling$1(
+ source,
+ instance,
+ 3,
+ [onCleanup]
+ );
+ };
+ }
+ } else {
+ getter = NOOP;
+ !!(process.env.NODE_ENV !== "production") && warnInvalidSource(source);
+ }
+ if (cb && deep) {
+ const baseGetter = getter;
+ getter = () => traverse$1(baseGetter());
+ }
+ let cleanup;
+ let onCleanup = (fn) => {
+ cleanup = effect.onStop = () => {
+ callWithErrorHandling$1(fn, instance, 4);
+ cleanup = effect.onStop = void 0;
+ };
+ };
+ let ssrCleanup;
+ if (isInSSRComponentSetup$1) {
+ onCleanup = NOOP;
+ if (!cb) {
+ getter();
+ } else if (immediate) {
+ callWithAsyncErrorHandling$1(cb, instance, 3, [
+ getter(),
+ isMultiSource ? [] : void 0,
+ onCleanup
+ ]);
+ }
+ if (flush === "sync") {
+ const ctx = useSSRContext$1();
+ ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);
+ } else {
+ return NOOP;
+ }
+ }
+ let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE$1) : INITIAL_WATCHER_VALUE$1;
+ const job = () => {
+ if (!effect.active || !effect.dirty) {
+ return;
+ }
+ if (cb) {
+ const newValue = effect.run();
+ if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) {
+ if (cleanup) {
+ cleanup();
+ }
+ callWithAsyncErrorHandling$1(cb, instance, 3, [
+ newValue,
+ // pass undefined as the old value when it's changed for the first time
+ oldValue === INITIAL_WATCHER_VALUE$1 ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE$1 ? [] : oldValue,
+ onCleanup
+ ]);
+ oldValue = newValue;
+ }
+ } else {
+ effect.run();
+ }
+ };
+ job.allowRecurse = !!cb;
+ let scheduler;
+ if (flush === "sync") {
+ scheduler = job;
+ } else if (flush === "post") {
+ scheduler = () => queuePostRenderEffect$2(job, instance && instance.suspense);
+ } else {
+ job.pre = true;
+ if (instance)
+ job.id = instance.uid;
+ scheduler = () => queueJob$1(job);
+ }
+ const effect = new ReactiveEffect$1(getter, NOOP, scheduler);
+ const unwatch = () => {
+ effect.stop();
+ };
+ if (!!(process.env.NODE_ENV !== "production")) {
+ effect.onTrack = onTrack;
+ effect.onTrigger = onTrigger;
+ }
+ if (cb) {
+ if (immediate) {
+ job();
+ } else {
+ oldValue = effect.run();
+ }
+ } else if (flush === "post") {
+ queuePostRenderEffect$2(
+ effect.run.bind(effect),
+ instance && instance.suspense
+ );
+ } else {
+ effect.run();
+ }
+ if (ssrCleanup)
+ ssrCleanup.push(unwatch);
+ return unwatch;
+}
+function instanceWatch$1(source, value, options) {
+ const publicThis = this.proxy;
+ const getter = isString(source) ? source.includes(".") ? createPathGetter$1(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);
+ let cb;
+ if (isFunction(value)) {
+ cb = value;
+ } else {
+ cb = value.handler;
+ options = value;
+ }
+ const reset = setCurrentInstance$1(this);
+ const res = doWatch$1(getter, cb.bind(publicThis), options);
+ reset();
+ return res;
+}
+function createPathGetter$1(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$1(value, depth, currentDepth = 0, seen) {
+ if (!isObject(value) || value["__v_skip"]) {
+ return value;
+ }
+ if (depth && depth > 0) {
+ if (currentDepth >= depth) {
+ return value;
+ }
+ currentDepth++;
+ }
+ seen = seen || /* @__PURE__ */ new Set();
+ if (seen.has(value)) {
+ return value;
+ }
+ seen.add(value);
+ if (isRef$1(value)) {
+ traverse$1(value.value, depth, currentDepth, seen);
+ } else if (isArray(value)) {
+ for (let i = 0; i < value.length; i++) {
+ traverse$1(value[i], depth, currentDepth, seen);
+ }
+ } else if (isSet(value) || isMap(value)) {
+ value.forEach((v) => {
+ traverse$1(v, depth, currentDepth, seen);
+ });
+ } else if (isPlainObject(value)) {
+ for (const key in value) {
+ traverse$1(value[key], depth, currentDepth, seen);
+ }
+ }
+ return value;
+}
+
+const getPublicInstance$1 = (i) => {
+ if (!i)
+ return null;
+ if (isStatefulComponent$1(i))
+ return getExposeProxy$1(i) || i.proxy;
+ return getPublicInstance$1(i.parent);
+};
+const publicPropertiesMap$1 = (
+ // Move PURE marker to new line to workaround compiler discarding it
+ // due to type annotation
+ /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {
+ $: (i) => i,
+ $el: (i) => i.vnode.el,
+ $data: (i) => i.data,
+ $props: (i) => !!(process.env.NODE_ENV !== "production") ? shallowReadonly$1(i.props) : i.props,
+ $attrs: (i) => !!(process.env.NODE_ENV !== "production") ? shallowReadonly$1(i.attrs) : i.attrs,
+ $slots: (i) => !!(process.env.NODE_ENV !== "production") ? shallowReadonly$1(i.slots) : i.slots,
+ $refs: (i) => !!(process.env.NODE_ENV !== "production") ? shallowReadonly$1(i.refs) : i.refs,
+ $parent: (i) => getPublicInstance$1(i.parent),
+ $root: (i) => getPublicInstance$1(i.root),
+ $emit: (i) => i.emit,
+ $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions$1(i) : i.type,
+ $forceUpdate: (i) => i.f || (i.f = () => {
+ i.effect.dirty = true;
+ queueJob$1(i.update);
+ }),
+ $nextTick: (i) => i.n || (i.n = nextTick$2.bind(i.proxy)),
+ $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch$1.bind(i) : NOOP
+ })
+);
+const isReservedPrefix$1 = (key) => key === "_" || key === "$";
+const hasSetupBinding$1 = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);
+const PublicInstanceProxyHandlers$1 = {
+ get({ _: instance }, key) {
+ const { ctx, setupState, data, props, accessCache, type, appContext } = instance;
+ if (!!(process.env.NODE_ENV !== "production") && key === "__isVue") {
+ return true;
+ }
+ let normalizedProps;
+ if (key[0] !== "$") {
+ const n = accessCache[key];
+ if (n !== void 0) {
+ switch (n) {
+ case 1 /* SETUP */:
+ return setupState[key];
+ case 2 /* DATA */:
+ return data[key];
+ case 4 /* CONTEXT */:
+ return ctx[key];
+ case 3 /* PROPS */:
+ return props[key];
+ }
+ } else if (hasSetupBinding$1(setupState, key)) {
+ accessCache[key] = 1 /* SETUP */;
+ return setupState[key];
+ } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {
+ accessCache[key] = 2 /* DATA */;
+ 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 /* PROPS */;
+ return props[key];
+ } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {
+ accessCache[key] = 4 /* CONTEXT */;
+ return ctx[key];
+ } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess$1) {
+ accessCache[key] = 0 /* OTHER */;
+ }
+ }
+ const publicGetter = publicPropertiesMap$1[key];
+ let cssModule, globalProperties;
+ if (publicGetter) {
+ if (key === "$attrs") {
+ track$1(instance, "get", key);
+ !!(process.env.NODE_ENV !== "production") && markAttrsAccessed$1();
+ } else if (!!(process.env.NODE_ENV !== "production") && key === "$slots") {
+ track$1(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 /* CONTEXT */;
+ return ctx[key];
+ } else if (
+ // global properties
+ globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)
+ ) {
+ {
+ return globalProperties[key];
+ }
+ } else if (!!(process.env.NODE_ENV !== "production") && currentRenderingInstance$1 && (!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$1(key[0]) && hasOwn(data, key)) {
+ warn$1$1(
+ `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$1) {
+ warn$1$1(
+ `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$1(setupState, key)) {
+ setupState[key] = value;
+ return true;
+ } else if (!!(process.env.NODE_ENV !== "production") && setupState.__isScriptSetup && hasOwn(setupState, key)) {
+ warn$1$1(`Cannot mutate