wevu 6.17.8 → 6.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/dist/base-BxKbbKVO.mjs +1 -0
  2. package/dist/computed-Xoi9XEUx.mjs +1 -0
  3. package/dist/dev/{base-ii6cqKIl.mjs → base-CYkvI7w8.mjs} +2 -2
  4. package/dist/dev/{base-ii6cqKIl.mjs.map → base-CYkvI7w8.mjs.map} +1 -1
  5. package/dist/dev/computed-BxRsUJgi.mjs +128 -0
  6. package/dist/dev/computed-BxRsUJgi.mjs.map +1 -0
  7. package/dist/dev/index.mjs +9 -9
  8. package/dist/dev/internal-reactivity.mjs +5 -5
  9. package/dist/dev/internal-runtime.mjs +3 -3
  10. package/dist/dev/internal-template.mjs +1 -1
  11. package/dist/dev/{ref-Bxwe2Kfo.mjs → ref-DRZC3Kc5.mjs} +6 -202
  12. package/dist/dev/ref-DRZC3Kc5.mjs.map +1 -0
  13. package/dist/dev/{router-D6H7HviN.mjs → router-BD-ovqV2.mjs} +69 -5
  14. package/dist/dev/router-BD-ovqV2.mjs.map +1 -0
  15. package/dist/dev/router.mjs +36 -13
  16. package/dist/dev/router.mjs.map +1 -1
  17. package/dist/dev/{store-7lzhCASj.mjs → store-HNsiQJ4d.mjs} +14 -10
  18. package/dist/dev/store-HNsiQJ4d.mjs.map +1 -0
  19. package/dist/dev/store.mjs +1 -1
  20. package/dist/dev/{template-DLHZbQ3E.mjs → template-n_iVr0ey.mjs} +2 -2
  21. package/dist/dev/{template-DLHZbQ3E.mjs.map → template-n_iVr0ey.mjs.map} +1 -1
  22. package/dist/dev/{templateRef-C4hJDc4O.mjs → templateRef-DuFamxmB.mjs} +108 -16
  23. package/dist/dev/templateRef-DuFamxmB.mjs.map +1 -0
  24. package/dist/dev/{toRefs-BVrN7XKZ.mjs → toRefs-D06VmFK2.mjs} +2 -2
  25. package/dist/dev/{toRefs-BVrN7XKZ.mjs.map → toRefs-D06VmFK2.mjs.map} +1 -1
  26. package/dist/dev/vue-demi.mjs +9 -9
  27. package/dist/dev/{watch-B46crqgs.mjs → watch-jrgL5ald.mjs} +121 -4
  28. package/dist/dev/watch-jrgL5ald.mjs.map +1 -0
  29. package/dist/fetch.d.mts +0 -1
  30. package/dist/{index-C6Jyiw-u.d.mts → index-CCET_bCY.d.mts} +3 -4
  31. package/dist/{index-HS9xxiUI.d.mts → index-Dg1-jV9L.d.mts} +17 -17
  32. package/dist/index.d.mts +5 -4
  33. package/dist/index.mjs +1 -1
  34. package/dist/internal-reactivity.d.mts +2 -1
  35. package/dist/internal-reactivity.mjs +1 -1
  36. package/dist/internal-runtime.d.mts +1 -1
  37. package/dist/internal-runtime.mjs +1 -1
  38. package/dist/internal-template.mjs +1 -1
  39. package/dist/jsx-runtime.d.mts +1 -2
  40. package/dist/ref-D37CknuD.mjs +1 -0
  41. package/dist/router-DLOOLAqv.mjs +1 -0
  42. package/dist/router.d.mts +1 -2
  43. package/dist/router.mjs +1 -1
  44. package/dist/store-eHrHBQiv.mjs +1 -0
  45. package/dist/store.d.mts +1 -1
  46. package/dist/store.mjs +1 -1
  47. package/dist/{template-CFhlojaH.mjs → template-CNzlwH-E.mjs} +1 -1
  48. package/dist/templateRef-C4R74tUR.mjs +1 -0
  49. package/dist/{toRefs-COgMIEoC.mjs → toRefs-CoytPyo0.mjs} +1 -1
  50. package/dist/traverse-B4Ez44Gd.d.mts +108 -0
  51. package/dist/vue-demi.d.mts +5 -6
  52. package/dist/vue-demi.mjs +1 -1
  53. package/dist/{vue-types-xMdYZRuG.d.mts → vue-types-B3N60cGV.d.mts} +13 -121
  54. package/dist/watch-Bbd-gmEg.mjs +1 -0
  55. package/dist/{weappIntrinsicElements-BjaNcUW3.d.mts → weappIntrinsicElements-BgDtC53_.d.mts} +1 -1
  56. package/package.json +2 -2
  57. package/dist/base-D-o2Hv6z.mjs +0 -1
  58. package/dist/computed-DdPJb4_M.mjs +0 -1
  59. package/dist/dev/computed-4hT2jDra.mjs +0 -48
  60. package/dist/dev/computed-4hT2jDra.mjs.map +0 -1
  61. package/dist/dev/ref-Bxwe2Kfo.mjs.map +0 -1
  62. package/dist/dev/router-D6H7HviN.mjs.map +0 -1
  63. package/dist/dev/store-7lzhCASj.mjs.map +0 -1
  64. package/dist/dev/templateRef-C4hJDc4O.mjs.map +0 -1
  65. package/dist/dev/watch-B46crqgs.mjs.map +0 -1
  66. package/dist/ref-CRwjgX_d.mjs +0 -1
  67. package/dist/router-BiJKkvy7.mjs +0 -1
  68. package/dist/store-B9C0AuaO.mjs +0 -1
  69. package/dist/templateRef-DPHQBy6k.mjs +0 -1
  70. package/dist/watch-6_s3_f8q.mjs +0 -1
@@ -1,5 +1,5 @@
1
- import { C as effect, d as reactive, g as touchReactive, l as isReactive, n as isRef, w as effectScope, y as toRaw } from "./ref-Bxwe2Kfo.mjs";
2
- import { t as computed } from "./computed-4hT2jDra.mjs";
1
+ import { M as effect, N as effectScope, d as reactive, l as isReactive, n as isRef, v as toRaw } from "./ref-DRZC3Kc5.mjs";
2
+ import { i as touchReactive, t as computed } from "./computed-BxRsUJgi.mjs";
3
3
 
4
4
  //#region src/store/actions.ts
5
5
  function wrapAction(store, name, action, actionSubs) {
@@ -139,9 +139,8 @@ function createBaseApi(id, stateObj, notify, resetImpl) {
139
139
 
140
140
  //#endregion
141
141
  //#region src/store/define/shared.ts
142
- const hasOwn = Object.prototype.hasOwnProperty;
143
142
  function isTrackableRef(value) {
144
- return isRef(value) && hasOwn.call(value, "dep");
143
+ return isRef(value);
145
144
  }
146
145
  function snapshotValue(value) {
147
146
  if (isReactive(value)) return cloneDeep(toRaw(value));
@@ -240,9 +239,12 @@ function createOptionsStyleStore(id, options, manager) {
240
239
  const actionDefs = (_options$actions = options.actions) !== null && _options$actions !== void 0 ? _options$actions : {};
241
240
  Object.keys(actionDefs).forEach((key) => {
242
241
  const act = actionDefs[key];
243
- if (typeof act === "function") store[key] = wrapAction(store, key, (...args) => {
244
- return act.apply(store, args);
245
- }, base.actionSubs);
242
+ if (typeof act === "function") {
243
+ const wrapped = wrapAction(store, key, (...args) => {
244
+ return act.apply(store, args);
245
+ }, base.actionSubs);
246
+ store[key] = wrapped;
247
+ }
246
248
  });
247
249
  Object.keys(state).forEach((k) => {
248
250
  Object.defineProperty(store, k, {
@@ -297,7 +299,9 @@ function createSetupStyleStore(id, setupFactory, manager) {
297
299
  initialSnapshot.forEach((snapValue, key) => {
298
300
  const current = instance[key];
299
301
  if (isTrackableRef(current)) {
300
- current.value = cloneDeep(snapValue);
302
+ try {
303
+ current.value = cloneDeep(snapValue);
304
+ } catch (_unused) {}
301
305
  return;
302
306
  }
303
307
  if (isReactive(current)) {
@@ -407,7 +411,7 @@ function createSetupStyleStore(id, setupFactory, manager) {
407
411
  const plugins = (_manager$_plugins = manager === null || manager === void 0 ? void 0 : manager._plugins) !== null && _manager$_plugins !== void 0 ? _manager$_plugins : [];
408
412
  for (const plugin of plugins) try {
409
413
  plugin({ store: instance });
410
- } catch (_unused) {}
414
+ } catch (_unused2) {}
411
415
  return instance;
412
416
  }
413
417
 
@@ -472,4 +476,4 @@ function storeToRefs(store) {
472
476
 
473
477
  //#endregion
474
478
  export { defineStore as n, createStore as r, storeToRefs as t };
475
- //# sourceMappingURL=store-7lzhCASj.mjs.map
479
+ //# sourceMappingURL=store-HNsiQJ4d.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store-HNsiQJ4d.mjs","names":[],"sources":["../../src/store/actions.ts","../../src/store/utils.ts","../../src/store/base.ts","../../src/store/define/shared.ts","../../src/store/define/optionsStyle.ts","../../src/store/define/setupStyle.ts","../../src/store/manager.ts","../../src/store/define.ts","../../src/store/storeToRefs.ts"],"sourcesContent":["import type { ActionSubscriber } from './types'\n\nexport function wrapAction<TStore extends Record<string, any>>(\n store: TStore,\n name: string,\n action: (...args: any[]) => any,\n actionSubs: Set<ActionSubscriber<TStore>>,\n) {\n return function wrapped(this: any, ...args: any[]) {\n const afterCbs: Array<(r: any) => void> = []\n const errorCbs: Array<(e: any) => void> = []\n const after = (cb: (r: any) => void) => afterCbs.push(cb)\n const onError = (cb: (e: any) => void) => errorCbs.push(cb)\n actionSubs.forEach((sub) => {\n try {\n sub({ name, store, args, after, onError })\n }\n catch {\n // 捕获订阅者回调内部的异常,避免单个监听器出错影响其他订阅和原始 action 执行链\n }\n })\n let res: any\n try {\n res = action.apply(store, args)\n }\n catch (e) {\n errorCbs.forEach(cb => cb(e))\n throw e\n }\n const finalize = (r: any) => {\n afterCbs.forEach(cb => cb(r))\n return r\n }\n if (res && typeof (res as Promise<any>).then === 'function') {\n return (res as Promise<any>).then(\n r => finalize(r),\n (e) => {\n errorCbs.forEach(cb => cb(e))\n return Promise.reject(e)\n },\n )\n }\n return finalize(res)\n }\n}\n","export function isObject(val: unknown): val is object {\n return typeof val === 'object' && val !== null\n}\n\nexport function isPlainObject(val: unknown): val is Record<string, any> {\n if (!isObject(val)) {\n return false\n }\n const proto = Object.getPrototypeOf(val)\n return proto === Object.prototype || proto === null\n}\n\nexport function mergeShallow(target: Record<string, any>, patch: Record<string, any>) {\n for (const k in patch) {\n target[k] = patch[k]\n }\n}\n\nexport function cloneDeep<T>(value: T): T {\n if (Array.isArray(value)) {\n return value.map(item => cloneDeep(item)) as T\n }\n if (isPlainObject(value)) {\n const result: Record<string, any> = {}\n for (const key in value) {\n result[key] = cloneDeep((value as any)[key])\n }\n return result as T\n }\n return value\n}\n\nexport function resetObject(target: Record<string, any>, snapshot: Record<string, any> | any[]) {\n if (Array.isArray(target) && Array.isArray(snapshot)) {\n target.length = 0\n snapshot.forEach((item, index) => {\n target[index] = cloneDeep(item)\n })\n return\n }\n if (!isObject(snapshot)) {\n return\n }\n for (const key in target) {\n if (!(key in snapshot)) {\n delete target[key]\n }\n }\n for (const key in snapshot) {\n const snapValue = (snapshot as any)[key]\n const currentValue = target[key]\n if (Array.isArray(snapValue) && Array.isArray(currentValue)) {\n resetObject(currentValue, snapValue)\n continue\n }\n if (isPlainObject(snapValue) && isPlainObject(currentValue)) {\n resetObject(currentValue, snapValue)\n continue\n }\n target[key] = cloneDeep(snapValue)\n }\n}\n","import type { ActionSubscriber, MutationType, SubscriptionCallback } from './types'\nimport { isObject, mergeShallow } from './utils'\n\nexport function createBaseApi<S extends Record<string, any>>(\n id: string,\n stateObj: S | undefined,\n notify: (type: MutationType) => void,\n resetImpl?: () => void,\n) {\n const api: any = {\n $id: id,\n }\n Object.defineProperty(api, '$state', {\n get() {\n return stateObj\n },\n set(v: any) {\n if (stateObj && isObject(v)) {\n mergeShallow(stateObj, v)\n notify('patch object')\n }\n },\n })\n api.$patch = (patch: Record<string, any> | ((state: S) => void)) => {\n if (!stateObj) {\n if (typeof patch === 'function') {\n patch(api as S)\n notify('patch function')\n }\n else {\n mergeShallow(api as any, patch)\n notify('patch object')\n }\n return\n }\n if (typeof patch === 'function') {\n patch(stateObj)\n notify('patch function')\n }\n else {\n mergeShallow(stateObj, patch)\n notify('patch object')\n }\n }\n if (resetImpl) {\n api.$reset = () => resetImpl()\n }\n const subs = new Set<SubscriptionCallback<S>>()\n api.$subscribe = (cb: SubscriptionCallback<S>, _opts?: { detached?: boolean }) => {\n subs.add(cb)\n return () => subs.delete(cb)\n }\n const actionSubs = new Set<ActionSubscriber<any>>()\n api.$onAction = (cb: ActionSubscriber<any>) => {\n actionSubs.add(cb)\n return () => actionSubs.delete(cb)\n }\n return { api, subs, actionSubs }\n}\n","import type { MutationType, SubscriptionCallback } from '../types'\nimport { isReactive, isRef, toRaw } from '../../reactivity'\nimport { cloneDeep } from '../utils'\n\nexport function isTrackableRef(value: unknown) {\n return isRef(value)\n}\n\nexport function snapshotValue(value: unknown) {\n if (isReactive(value)) {\n return cloneDeep(toRaw(value as any))\n }\n if (isTrackableRef(value)) {\n return cloneDeep((value as any).value)\n }\n return cloneDeep(value)\n}\n\nexport function createSafeNotifier<S>(\n storeId: string,\n subs: Set<SubscriptionCallback<S>>,\n getState: () => S,\n) {\n let notifying = false\n return (type: MutationType) => {\n if (notifying) {\n return\n }\n notifying = true\n try {\n const state = getState()\n subs.forEach((cb) => {\n try {\n cb({ type, storeId }, state)\n }\n catch {}\n })\n }\n finally {\n notifying = false\n }\n }\n}\n","import { computed, effect, reactive, toRaw, touchReactive } from '../../reactivity'\nimport { wrapAction } from '../actions'\nimport { createBaseApi } from '../base'\nimport { cloneDeep, resetObject } from '../utils'\nimport { createSafeNotifier } from './shared'\n\nexport function createOptionsStyleStore(id: string, options: any, manager: any) {\n const rawState = options.state ? options.state() : {}\n const state = reactive(rawState)\n const initialSnapshot = cloneDeep(toRaw(rawState))\n let notify: (type: any) => void = () => {}\n const base = createBaseApi<typeof state>(id, state, t => notify(t), () => {\n resetObject(state as any, initialSnapshot)\n notify('patch object')\n })\n\n let isPatching = false\n const rawPatch = base.api.$patch\n base.api.$patch = (patch: Partial<typeof state> | ((nextState: typeof state) => void)) => {\n isPatching = true\n try {\n rawPatch(patch as any)\n }\n finally {\n isPatching = false\n }\n }\n if (typeof base.api.$reset === 'function') {\n const rawReset = base.api.$reset\n base.api.$reset = () => {\n isPatching = true\n try {\n rawReset()\n }\n finally {\n isPatching = false\n }\n }\n }\n\n notify = createSafeNotifier(id, base.subs, () => state as any)\n\n const store: Record<string, any> = {}\n for (const key of Object.getOwnPropertyNames(base.api)) {\n const d = Object.getOwnPropertyDescriptor(base.api, key)\n if (d) {\n if (key === '$state') {\n Object.defineProperty(store, key, {\n enumerable: d.enumerable,\n configurable: d.configurable,\n get() {\n return (base.api as any).$state\n },\n set(v: any) {\n isPatching = true\n try {\n ;(base.api as any).$state = v\n }\n finally {\n isPatching = false\n }\n },\n })\n }\n else {\n Object.defineProperty(store, key, d)\n }\n }\n }\n\n const getterDefs = options.getters ?? {}\n Object.keys(getterDefs).forEach((key) => {\n const getter = (getterDefs as any)[key]\n if (typeof getter === 'function') {\n const c = computed(() => getter.call(store, state))\n Object.defineProperty(store, key, {\n enumerable: true,\n configurable: true,\n get() {\n return c.value\n },\n })\n }\n })\n\n const actionDefs = options.actions ?? {}\n Object.keys(actionDefs).forEach((key) => {\n const act = (actionDefs as any)[key]\n if (typeof act === 'function') {\n const wrapped = wrapAction(store as any, key, (...args: any[]) => {\n return act.apply(store as any, args)\n }, base.actionSubs)\n store[key] = wrapped\n }\n })\n\n Object.keys(state).forEach((k) => {\n Object.defineProperty(store, k, {\n enumerable: true,\n configurable: true,\n get() {\n return (state as any)[k]\n },\n set(v: any) {\n ;(state as any)[k] = v\n },\n })\n })\n\n let initialized = false\n let dispatchingDirect = false\n effect(() => {\n touchReactive(state)\n if (!initialized) {\n initialized = true\n return\n }\n if (isPatching || dispatchingDirect) {\n return\n }\n dispatchingDirect = true\n try {\n notify('direct')\n }\n finally {\n dispatchingDirect = false\n }\n })\n\n const plugins = manager?._plugins ?? []\n for (const plugin of plugins) {\n try {\n plugin({ store })\n }\n catch {}\n }\n\n return store\n}\n","import { effect, isReactive, isRef, touchReactive } from '../../reactivity'\nimport { wrapAction } from '../actions'\nimport { createBaseApi } from '../base'\nimport { cloneDeep, resetObject } from '../utils'\nimport { createSafeNotifier, isTrackableRef, snapshotValue } from './shared'\n\nexport function createSetupStyleStore(id: string, setupFactory: () => Record<string, any>, manager: any) {\n const result = setupFactory()\n let notify: (type: any) => void = () => {}\n const initialSnapshot = new Map<string, any>()\n Object.keys(result).forEach((k) => {\n const val = (result as any)[k]\n if (typeof val === 'function' || k.startsWith('$')) {\n return\n }\n if (isRef(val) && !isTrackableRef(val)) {\n return\n }\n initialSnapshot.set(k, snapshotValue(val))\n })\n\n let instance: Record<string, any> = {}\n const resetImpl = () => {\n initialSnapshot.forEach((snapValue, key) => {\n const current = (instance as any)[key]\n if (isTrackableRef(current)) {\n try {\n current.value = cloneDeep(snapValue)\n }\n catch {\n // computed / readonly ref 不能写入,reset 时跳过这类派生状态。\n }\n return\n }\n if (isReactive(current)) {\n resetObject(current as any, snapValue)\n return\n }\n if (isRef(current)) {\n return\n }\n ;(instance as any)[key] = cloneDeep(snapValue)\n })\n notify('patch object')\n }\n\n const base = createBaseApi<any>(id, undefined, t => notify(t), resetImpl)\n let isPatching = false\n const rawPatch = base.api.$patch\n base.api.$patch = (patch: Record<string, any> | ((state: any) => void)) => {\n isPatching = true\n try {\n rawPatch(patch)\n }\n finally {\n isPatching = false\n }\n }\n if (typeof base.api.$reset === 'function') {\n const rawReset = base.api.$reset\n base.api.$reset = () => {\n isPatching = true\n try {\n rawReset()\n }\n finally {\n isPatching = false\n }\n }\n }\n\n instance = { ...result }\n notify = createSafeNotifier(id, base.subs, () => instance)\n\n // 将 setup 返回值与基础 API 合并,同时保留每个 getter/setter 的描述符,避免覆写访问器行为\n for (const key of Object.getOwnPropertyNames(base.api)) {\n const d = Object.getOwnPropertyDescriptor(base.api, key)\n if (d) {\n if (key === '$state') {\n Object.defineProperty(instance, key, {\n enumerable: d.enumerable,\n configurable: d.configurable,\n get() {\n return (base.api as any).$state\n },\n set(v: any) {\n isPatching = true\n try {\n ;(base.api as any).$state = v\n }\n finally {\n isPatching = false\n }\n },\n })\n }\n else {\n Object.defineProperty(instance, key, d)\n }\n }\n }\n\n const directSources: any[] = []\n Object.keys(result).forEach((k) => {\n const val = (result as any)[k]\n if (typeof val === 'function' && !k.startsWith('$')) {\n ;(instance as any)[k] = wrapAction(instance, k, val, base.actionSubs)\n return\n }\n if (isTrackableRef(val)) {\n directSources.push(val)\n return\n }\n if (isReactive(val)) {\n directSources.push(val)\n return\n }\n if (isRef(val)) {\n return\n }\n if (!k.startsWith('$')) {\n let innerValue = val\n Object.defineProperty(instance, k, {\n enumerable: true,\n configurable: true,\n get() {\n return innerValue\n },\n set(next: any) {\n innerValue = next\n if (!isPatching) {\n notify('direct')\n }\n },\n })\n }\n })\n\n let dispatchingDirect = false\n if (directSources.length > 0) {\n let initialized = false\n effect(() => {\n directSources.forEach((source) => {\n if (isTrackableRef(source)) {\n void source.value\n }\n else {\n touchReactive(source)\n }\n })\n if (!initialized) {\n initialized = true\n return\n }\n if (isPatching || dispatchingDirect) {\n return\n }\n dispatchingDirect = true\n try {\n notify('direct')\n }\n finally {\n dispatchingDirect = false\n }\n })\n }\n\n const plugins = manager?._plugins ?? []\n for (const plugin of plugins) {\n try {\n plugin({ store: instance })\n }\n catch {}\n }\n\n return instance\n}\n","import type { StoreManager } from './types'\n\n/**\n * @description 创建 store 管理器(插件与共享实例入口)\n */\nexport function createStore(): StoreManager {\n const manager: StoreManager = {\n _stores: new Map(),\n _plugins: [],\n install(_app: any) {\n // 小程序场景不需要注册全局插件入口,这里保留 API 但不执行任何操作\n },\n use(plugin: (context: { store: any }) => void) {\n if (typeof plugin === 'function') {\n manager._plugins.push(plugin)\n }\n return manager\n },\n }\n ;(createStore as any)._instance = manager\n return manager\n}\n","import type {\n ActionSubscriber,\n DefineStoreOptions,\n StoreGetters,\n StoreManager,\n StoreSubscribeOptions,\n SubscriptionCallback,\n} from './types'\nimport { effectScope } from '../reactivity'\nimport { createOptionsStyleStore } from './define/optionsStyle'\nimport { createSetupStyleStore } from './define/setupStyle'\nimport { createStore } from './manager'\n\ntype SetupDefinition<T> = () => T\n\n/**\n * @description 定义一个 setup 风格的 store\n */\nexport function defineStore<T extends Record<string, any>>(id: string, setup: SetupDefinition<T>): () => T & {\n $id: string\n $patch: (patch: Record<string, any> | ((state: any) => void)) => void\n $reset: () => void\n $subscribe: (cb: SubscriptionCallback<any>, opts?: StoreSubscribeOptions) => () => void\n $onAction: (cb: ActionSubscriber<any>) => () => void\n}\n/**\n * @description 定义一个 options 风格的 store\n */\nexport function defineStore<S extends Record<string, any>, G extends Record<string, any>, A extends Record<string, any>>(\n id: string,\n options: DefineStoreOptions<S, G, A>,\n): () => S & StoreGetters<G> & A & {\n $id: string\n $state: S\n $patch: (patch: Partial<S> | ((state: S) => void)) => void\n $reset: () => void\n $subscribe: (cb: SubscriptionCallback<S>, opts?: StoreSubscribeOptions) => () => void\n $onAction: (cb: ActionSubscriber<S & StoreGetters<G> & A>) => () => void\n}\nexport function defineStore(id: string, setupOrOptions: any) {\n let instance: any\n let created = false\n const manager = (createStore as any)._instance as StoreManager | undefined\n\n return function useStore(): any {\n if (created && instance) {\n return instance\n }\n created = true\n\n const storeScope = effectScope(true)\n instance = storeScope.run(() => {\n return typeof setupOrOptions === 'function'\n ? createSetupStyleStore(id, setupOrOptions, manager)\n : createOptionsStyleStore(id, setupOrOptions as DefineStoreOptions<any, any, any>, manager)\n })\n\n return instance\n }\n}\n","import type { Ref } from '../reactivity'\nimport { computed, isRef } from '../reactivity'\n\n/**\n * @description storeToRefs 返回类型推导\n */\nexport type StoreToRefsResult<T extends Record<string, any>> = {\n [K in keyof T]:\n T[K] extends (...args: any[]) => any\n ? T[K]\n : T[K] extends Ref<infer V>\n ? Ref<V>\n : Ref<T[K]>\n}\n\n/**\n * @description 将 store 状态转换为 Ref\n */\nexport function storeToRefs<T extends Record<string, any>>(store: T): StoreToRefsResult<T> {\n const result: Record<string, any> = {}\n for (const key in store) {\n const value = (store as any)[key]\n if (typeof value === 'function') {\n result[key] = value\n continue\n }\n if (isRef(value)) {\n result[key] = value\n }\n else {\n result[key] = computed({\n get: () => (store as any)[key],\n set: (v: any) => {\n ;(store as any)[key] = v\n },\n })\n }\n }\n return result as StoreToRefsResult<T>\n}\n"],"mappings":";;;;AAEA,SAAgB,WACd,OACA,MACA,QACA,YACA;CACA,OAAO,SAAS,QAAmB,GAAG,MAAa;EACjD,MAAM,WAAoC,CAAC;EAC3C,MAAM,WAAoC,CAAC;EAC3C,MAAM,SAAS,OAAyB,SAAS,KAAK,EAAE;EACxD,MAAM,WAAW,OAAyB,SAAS,KAAK,EAAE;EAC1D,WAAW,SAAS,QAAQ;GAC1B,IAAI;IACF,IAAI;KAAE;KAAM;KAAO;KAAM;KAAO;IAAQ,CAAC;GAC3C,kBACM,CAEN;EACF,CAAC;EACD,IAAI;EACJ,IAAI;GACF,MAAM,OAAO,MAAM,OAAO,IAAI;EAChC,SACO,GAAG;GACR,SAAS,SAAQ,OAAM,GAAG,CAAC,CAAC;GAC5B,MAAM;EACR;EACA,MAAM,YAAY,MAAW;GAC3B,SAAS,SAAQ,OAAM,GAAG,CAAC,CAAC;GAC5B,OAAO;EACT;EACA,IAAI,OAAO,OAAQ,IAAqB,SAAS,YAC/C,OAAQ,IAAqB,MAC3B,MAAK,SAAS,CAAC,IACd,MAAM;GACL,SAAS,SAAQ,OAAM,GAAG,CAAC,CAAC;GAC5B,OAAO,QAAQ,OAAO,CAAC;EACzB,CACF;EAEF,OAAO,SAAS,GAAG;CACrB;AACF;;;;AC5CA,SAAgB,SAAS,KAA6B;CACpD,OAAO,OAAO,QAAQ,YAAY,QAAQ;AAC5C;AAEA,SAAgB,cAAc,KAA0C;CACtE,IAAI,CAAC,SAAS,GAAG,GACf,OAAO;CAET,MAAM,QAAQ,OAAO,eAAe,GAAG;CACvC,OAAO,UAAU,OAAO,aAAa,UAAU;AACjD;AAEA,SAAgB,aAAa,QAA6B,OAA4B;CACpF,KAAK,MAAM,KAAK,OACd,OAAO,KAAK,MAAM;AAEtB;AAEA,SAAgB,UAAa,OAAa;CACxC,IAAI,MAAM,QAAQ,KAAK,GACrB,OAAO,MAAM,KAAI,SAAQ,UAAU,IAAI,CAAC;CAE1C,IAAI,cAAc,KAAK,GAAG;EACxB,MAAM,SAA8B,CAAC;EACrC,KAAK,MAAM,OAAO,OAChB,OAAO,OAAO,UAAW,MAAc,IAAI;EAE7C,OAAO;CACT;CACA,OAAO;AACT;AAEA,SAAgB,YAAY,QAA6B,UAAuC;CAC9F,IAAI,MAAM,QAAQ,MAAM,KAAK,MAAM,QAAQ,QAAQ,GAAG;EACpD,OAAO,SAAS;EAChB,SAAS,SAAS,MAAM,UAAU;GAChC,OAAO,SAAS,UAAU,IAAI;EAChC,CAAC;EACD;CACF;CACA,IAAI,CAAC,SAAS,QAAQ,GACpB;CAEF,KAAK,MAAM,OAAO,QAChB,IAAI,EAAE,OAAO,WACX,OAAO,OAAO;CAGlB,KAAK,MAAM,OAAO,UAAU;EAC1B,MAAM,YAAa,SAAiB;EACpC,MAAM,eAAe,OAAO;EAC5B,IAAI,MAAM,QAAQ,SAAS,KAAK,MAAM,QAAQ,YAAY,GAAG;GAC3D,YAAY,cAAc,SAAS;GACnC;EACF;EACA,IAAI,cAAc,SAAS,KAAK,cAAc,YAAY,GAAG;GAC3D,YAAY,cAAc,SAAS;GACnC;EACF;EACA,OAAO,OAAO,UAAU,SAAS;CACnC;AACF;;;;AC1DA,SAAgB,cACd,IACA,UACA,QACA,WACA;CACA,MAAM,MAAW,EACf,KAAK,GACP;CACA,OAAO,eAAe,KAAK,UAAU;EACnC,MAAM;GACJ,OAAO;EACT;EACA,IAAI,GAAQ;GACV,IAAI,YAAY,SAAS,CAAC,GAAG;IAC3B,aAAa,UAAU,CAAC;IACxB,OAAO,cAAc;GACvB;EACF;CACF,CAAC;CACD,IAAI,UAAU,UAAsD;EAClE,IAAI,CAAC,UAAU;GACb,IAAI,OAAO,UAAU,YAAY;IAC/B,MAAM,GAAQ;IACd,OAAO,gBAAgB;GACzB,OACK;IACH,aAAa,KAAY,KAAK;IAC9B,OAAO,cAAc;GACvB;GACA;EACF;EACA,IAAI,OAAO,UAAU,YAAY;GAC/B,MAAM,QAAQ;GACd,OAAO,gBAAgB;EACzB,OACK;GACH,aAAa,UAAU,KAAK;GAC5B,OAAO,cAAc;EACvB;CACF;CACA,IAAI,WACF,IAAI,eAAe,UAAU;CAE/B,MAAM,uBAAO,IAAI,IAA6B;CAC9C,IAAI,cAAc,IAA6B,UAAmC;EAChF,KAAK,IAAI,EAAE;EACX,aAAa,KAAK,OAAO,EAAE;CAC7B;CACA,MAAM,6BAAa,IAAI,IAA2B;CAClD,IAAI,aAAa,OAA8B;EAC7C,WAAW,IAAI,EAAE;EACjB,aAAa,WAAW,OAAO,EAAE;CACnC;CACA,OAAO;EAAE;EAAK;EAAM;CAAW;AACjC;;;;ACtDA,SAAgB,eAAe,OAAgB;CAC7C,OAAO,MAAM,KAAK;AACpB;AAEA,SAAgB,cAAc,OAAgB;CAC5C,IAAI,WAAW,KAAK,GAClB,OAAO,UAAU,MAAM,KAAY,CAAC;CAEtC,IAAI,eAAe,KAAK,GACtB,OAAO,UAAW,MAAc,KAAK;CAEvC,OAAO,UAAU,KAAK;AACxB;AAEA,SAAgB,mBACd,SACA,MACA,UACA;CACA,IAAI,YAAY;CAChB,QAAQ,SAAuB;EAC7B,IAAI,WACF;EAEF,YAAY;EACZ,IAAI;GACF,MAAM,QAAQ,SAAS;GACvB,KAAK,SAAS,OAAO;IACnB,IAAI;KACF,GAAG;MAAE;MAAM;KAAQ,GAAG,KAAK;IAC7B,kBACM,CAAC;GACT,CAAC;EACH,UACQ;GACN,YAAY;EACd;CACF;AACF;;;;ACpCA,SAAgB,wBAAwB,IAAY,SAAc,SAAc;;CAC9E,MAAM,WAAW,QAAQ,QAAQ,QAAQ,MAAM,IAAI,CAAC;CACpD,MAAM,QAAQ,SAAS,QAAQ;CAC/B,MAAM,kBAAkB,UAAU,MAAM,QAAQ,CAAC;CACjD,IAAI,eAAoC,CAAC;CACzC,MAAM,OAAO,cAA4B,IAAI,QAAO,MAAK,OAAO,CAAC,SAAS;EACxE,YAAY,OAAc,eAAe;EACzC,OAAO,cAAc;CACvB,CAAC;CAED,IAAI,aAAa;CACjB,MAAM,WAAW,KAAK,IAAI;CAC1B,KAAK,IAAI,UAAU,UAAuE;EACxF,aAAa;EACb,IAAI;GACF,SAAS,KAAY;EACvB,UACQ;GACN,aAAa;EACf;CACF;CACA,IAAI,OAAO,KAAK,IAAI,WAAW,YAAY;EACzC,MAAM,WAAW,KAAK,IAAI;EAC1B,KAAK,IAAI,eAAe;GACtB,aAAa;GACb,IAAI;IACF,SAAS;GACX,UACQ;IACN,aAAa;GACf;EACF;CACF;CAEA,SAAS,mBAAmB,IAAI,KAAK,YAAY,KAAY;CAE7D,MAAM,QAA6B,CAAC;CACpC,KAAK,MAAM,OAAO,OAAO,oBAAoB,KAAK,GAAG,GAAG;EACtD,MAAM,IAAI,OAAO,yBAAyB,KAAK,KAAK,GAAG;EACvD,IAAI,GACF,IAAI,QAAQ,UACV,OAAO,eAAe,OAAO,KAAK;GAChC,YAAY,EAAE;GACd,cAAc,EAAE;GAChB,MAAM;IACJ,OAAQ,KAAK,IAAY;GAC3B;GACA,IAAI,GAAQ;IACV,aAAa;IACb,IAAI;KACD,AAAC,KAAK,IAAY,SAAS;IAC9B,UACQ;KACN,aAAa;IACf;GACF;EACF,CAAC;OAGD,OAAO,eAAe,OAAO,KAAK,CAAC;CAGzC;CAEA,MAAM,iCAAa,QAAQ,sEAAW,CAAC;CACvC,OAAO,KAAK,UAAU,CAAC,CAAC,SAAS,QAAQ;EACvC,MAAM,SAAU,WAAmB;EACnC,IAAI,OAAO,WAAW,YAAY;GAChC,MAAM,IAAI,eAAe,OAAO,KAAK,OAAO,KAAK,CAAC;GAClD,OAAO,eAAe,OAAO,KAAK;IAChC,YAAY;IACZ,cAAc;IACd,MAAM;KACJ,OAAO,EAAE;IACX;GACF,CAAC;EACH;CACF,CAAC;CAED,MAAM,iCAAa,QAAQ,sEAAW,CAAC;CACvC,OAAO,KAAK,UAAU,CAAC,CAAC,SAAS,QAAQ;EACvC,MAAM,MAAO,WAAmB;EAChC,IAAI,OAAO,QAAQ,YAAY;GAC7B,MAAM,UAAU,WAAW,OAAc,MAAM,GAAG,SAAgB;IAChE,OAAO,IAAI,MAAM,OAAc,IAAI;GACrC,GAAG,KAAK,UAAU;GAClB,MAAM,OAAO;EACf;CACF,CAAC;CAED,OAAO,KAAK,KAAK,CAAC,CAAC,SAAS,MAAM;EAChC,OAAO,eAAe,OAAO,GAAG;GAC9B,YAAY;GACZ,cAAc;GACd,MAAM;IACJ,OAAQ,MAAc;GACxB;GACA,IAAI,GAAQ;IACT,AAAC,MAAc,KAAK;GACvB;EACF,CAAC;CACH,CAAC;CAED,IAAI,cAAc;CAClB,IAAI,oBAAoB;CACxB,aAAa;EACX,cAAc,KAAK;EACnB,IAAI,CAAC,aAAa;GAChB,cAAc;GACd;EACF;EACA,IAAI,cAAc,mBAChB;EAEF,oBAAoB;EACpB,IAAI;GACF,OAAO,QAAQ;EACjB,UACQ;GACN,oBAAoB;EACtB;CACF,CAAC;CAED,MAAM,iFAAU,QAAS,yEAAY,CAAC;CACtC,KAAK,MAAM,UAAU,SACnB,IAAI;EACF,OAAO,EAAE,MAAM,CAAC;CAClB,kBACM,CAAC;CAGT,OAAO;AACT;;;;ACpIA,SAAgB,sBAAsB,IAAY,cAAyC,SAAc;;CACvG,MAAM,SAAS,aAAa;CAC5B,IAAI,eAAoC,CAAC;CACzC,MAAM,kCAAkB,IAAI,IAAiB;CAC7C,OAAO,KAAK,MAAM,CAAC,CAAC,SAAS,MAAM;EACjC,MAAM,MAAO,OAAe;EAC5B,IAAI,OAAO,QAAQ,cAAc,EAAE,WAAW,GAAG,GAC/C;EAEF,IAAI,MAAM,GAAG,KAAK,CAAC,eAAe,GAAG,GACnC;EAEF,gBAAgB,IAAI,GAAG,cAAc,GAAG,CAAC;CAC3C,CAAC;CAED,IAAI,WAAgC,CAAC;CACrC,MAAM,kBAAkB;EACtB,gBAAgB,SAAS,WAAW,QAAQ;GAC1C,MAAM,UAAW,SAAiB;GAClC,IAAI,eAAe,OAAO,GAAG;IAC3B,IAAI;KACF,QAAQ,QAAQ,UAAU,SAAS;IACrC,kBACM,CAEN;IACA;GACF;GACA,IAAI,WAAW,OAAO,GAAG;IACvB,YAAY,SAAgB,SAAS;IACrC;GACF;GACA,IAAI,MAAM,OAAO,GACf;GAED,AAAC,SAAiB,OAAO,UAAU,SAAS;EAC/C,CAAC;EACD,OAAO,cAAc;CACvB;CAEA,MAAM,OAAO,cAAmB,IAAI,SAAW,MAAK,OAAO,CAAC,GAAG,SAAS;CACxE,IAAI,aAAa;CACjB,MAAM,WAAW,KAAK,IAAI;CAC1B,KAAK,IAAI,UAAU,UAAwD;EACzE,aAAa;EACb,IAAI;GACF,SAAS,KAAK;EAChB,UACQ;GACN,aAAa;EACf;CACF;CACA,IAAI,OAAO,KAAK,IAAI,WAAW,YAAY;EACzC,MAAM,WAAW,KAAK,IAAI;EAC1B,KAAK,IAAI,eAAe;GACtB,aAAa;GACb,IAAI;IACF,SAAS;GACX,UACQ;IACN,aAAa;GACf;EACF;CACF;CAEA,WAAW,EAAE,GAAG,OAAO;CACvB,SAAS,mBAAmB,IAAI,KAAK,YAAY,QAAQ;CAGzD,KAAK,MAAM,OAAO,OAAO,oBAAoB,KAAK,GAAG,GAAG;EACtD,MAAM,IAAI,OAAO,yBAAyB,KAAK,KAAK,GAAG;EACvD,IAAI,GACF,IAAI,QAAQ,UACV,OAAO,eAAe,UAAU,KAAK;GACnC,YAAY,EAAE;GACd,cAAc,EAAE;GAChB,MAAM;IACJ,OAAQ,KAAK,IAAY;GAC3B;GACA,IAAI,GAAQ;IACV,aAAa;IACb,IAAI;KACD,AAAC,KAAK,IAAY,SAAS;IAC9B,UACQ;KACN,aAAa;IACf;GACF;EACF,CAAC;OAGD,OAAO,eAAe,UAAU,KAAK,CAAC;CAG5C;CAEA,MAAM,gBAAuB,CAAC;CAC9B,OAAO,KAAK,MAAM,CAAC,CAAC,SAAS,MAAM;EACjC,MAAM,MAAO,OAAe;EAC5B,IAAI,OAAO,QAAQ,cAAc,CAAC,EAAE,WAAW,GAAG,GAAG;GAClD,AAAC,SAAiB,KAAK,WAAW,UAAU,GAAG,KAAK,KAAK,UAAU;GACpE;EACF;EACA,IAAI,eAAe,GAAG,GAAG;GACvB,cAAc,KAAK,GAAG;GACtB;EACF;EACA,IAAI,WAAW,GAAG,GAAG;GACnB,cAAc,KAAK,GAAG;GACtB;EACF;EACA,IAAI,MAAM,GAAG,GACX;EAEF,IAAI,CAAC,EAAE,WAAW,GAAG,GAAG;GACtB,IAAI,aAAa;GACjB,OAAO,eAAe,UAAU,GAAG;IACjC,YAAY;IACZ,cAAc;IACd,MAAM;KACJ,OAAO;IACT;IACA,IAAI,MAAW;KACb,aAAa;KACb,IAAI,CAAC,YACH,OAAO,QAAQ;IAEnB;GACF,CAAC;EACH;CACF,CAAC;CAED,IAAI,oBAAoB;CACxB,IAAI,cAAc,SAAS,GAAG;EAC5B,IAAI,cAAc;EAClB,aAAa;GACX,cAAc,SAAS,WAAW;IAChC,IAAI,eAAe,MAAM,GACvB,AAAK,OAAO;SAGZ,cAAc,MAAM;GAExB,CAAC;GACD,IAAI,CAAC,aAAa;IAChB,cAAc;IACd;GACF;GACA,IAAI,cAAc,mBAChB;GAEF,oBAAoB;GACpB,IAAI;IACF,OAAO,QAAQ;GACjB,UACQ;IACN,oBAAoB;GACtB;EACF,CAAC;CACH;CAEA,MAAM,iFAAU,QAAS,yEAAY,CAAC;CACtC,KAAK,MAAM,UAAU,SACnB,IAAI;EACF,OAAO,EAAE,OAAO,SAAS,CAAC;CAC5B,mBACM,CAAC;CAGT,OAAO;AACT;;;;;;;AC3KA,SAAgB,cAA4B;CAC1C,MAAM,UAAwB;EAC5B,yBAAS,IAAI,IAAI;EACjB,UAAU,CAAC;EACX,QAAQ,MAAW,CAEnB;EACA,IAAI,QAA2C;GAC7C,IAAI,OAAO,WAAW,YACpB,QAAQ,SAAS,KAAK,MAAM;GAE9B,OAAO;EACT;CACF;CACC,AAAC,YAAoB,YAAY;CAClC,OAAO;AACT;;;;ACkBA,SAAgB,YAAY,IAAY,gBAAqB;CAC3D,IAAI;CACJ,IAAI,UAAU;CACd,MAAM,UAAW,YAAoB;CAErC,OAAO,SAAS,WAAgB;EAC9B,IAAI,WAAW,UACb,OAAO;EAET,UAAU;EAGV,WADmB,YAAY,IACX,CAAC,CAAC,UAAU;GAC9B,OAAO,OAAO,mBAAmB,aAC7B,sBAAsB,IAAI,gBAAgB,OAAO,IACjD,wBAAwB,IAAI,gBAAqD,OAAO;EAC9F,CAAC;EAED,OAAO;CACT;AACF;;;;;;;ACzCA,SAAgB,YAA2C,OAAgC;CACzF,MAAM,SAA8B,CAAC;CACrC,KAAK,MAAM,OAAO,OAAO;EACvB,MAAM,QAAS,MAAc;EAC7B,IAAI,OAAO,UAAU,YAAY;GAC/B,OAAO,OAAO;GACd;EACF;EACA,IAAI,MAAM,KAAK,GACb,OAAO,OAAO;OAGd,OAAO,OAAO,SAAS;GACrB,WAAY,MAAc;GAC1B,MAAM,MAAW;IACd,AAAC,MAAc,OAAO;GACzB;EACF,CAAC;CAEL;CACA,OAAO;AACT"}
@@ -1,3 +1,3 @@
1
- import { n as defineStore, r as createStore, t as storeToRefs } from "./store-7lzhCASj.mjs";
1
+ import { n as defineStore, r as createStore, t as storeToRefs } from "./store-HNsiQJ4d.mjs";
2
2
 
3
3
  export { createStore, defineStore, storeToRefs };
@@ -1,4 +1,4 @@
1
- import { o as unref } from "./ref-Bxwe2Kfo.mjs";
1
+ import { o as unref } from "./ref-DRZC3Kc5.mjs";
2
2
 
3
3
  //#region src/runtime/template.ts
4
4
  const hyphenateRE = /\B([A-Z])/g;
@@ -88,4 +88,4 @@ function resolvePropValue(target, key, fallback, preferProps = false) {
88
88
 
89
89
  //#endregion
90
90
  export { normalizeStyle as n, resolvePropValue as r, normalizeClass as t };
91
- //# sourceMappingURL=template-DLHZbQ3E.mjs.map
91
+ //# sourceMappingURL=template-n_iVr0ey.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"template-DLHZbQ3E.mjs","names":[],"sources":["../../src/runtime/template.ts"],"sourcesContent":["import { unref } from '../reactivity'\n\nconst hyphenateRE = /\\B([A-Z])/g\n\nfunction hasOwnProperty(target: object, key: string) {\n return Object.prototype.hasOwnProperty.call(target, key)\n}\n\nfunction hyphenate(value: string) {\n if (!value) {\n return ''\n }\n if (value.startsWith('--')) {\n return value\n }\n return value.replace(hyphenateRE, '-$1').toLowerCase()\n}\n\nfunction appendStyle(base: string, part: string) {\n if (!part) {\n return base\n }\n if (!base) {\n return part\n }\n let next = base\n if (!next.endsWith(';')) {\n next += ';'\n }\n const normalized = part.startsWith(';') ? part.slice(1) : part\n return next + normalized\n}\n\nfunction stringifyStyle(value: Record<string, any>) {\n let res = ''\n for (const key of Object.keys(value)) {\n const raw = unref(value[key])\n if (raw == null) {\n continue\n }\n const name = hyphenate(key)\n if (Array.isArray(raw)) {\n for (const itemValue of raw) {\n const item = unref(itemValue)\n if (item == null) {\n continue\n }\n res = appendStyle(res, `${name}:${item}`)\n }\n }\n else {\n res = appendStyle(res, `${name}:${raw}`)\n }\n }\n return res\n}\n\nexport function normalizeStyle(value: any): string {\n const unwrapped = unref(value)\n if (unwrapped == null) {\n return ''\n }\n if (typeof unwrapped === 'string') {\n return unwrapped\n }\n if (Array.isArray(unwrapped)) {\n let res = ''\n for (const item of unwrapped) {\n const normalized = normalizeStyle(item)\n if (normalized) {\n res = appendStyle(res, normalized)\n }\n }\n return res\n }\n if (typeof unwrapped === 'object') {\n return stringifyStyle(unwrapped)\n }\n return ''\n}\n\nexport function normalizeClass(value: any): string {\n const unwrapped = unref(value)\n let res = ''\n if (!unwrapped) {\n return res\n }\n if (typeof unwrapped === 'string') {\n return unwrapped\n }\n if (Array.isArray(unwrapped)) {\n for (const item of unwrapped) {\n const normalized = normalizeClass(item)\n if (normalized) {\n res += `${normalized} `\n }\n }\n return res.trim()\n }\n if (typeof unwrapped === 'object') {\n for (const key of Object.keys(unwrapped)) {\n if (unref(unwrapped[key])) {\n res += `${key} `\n }\n }\n return res.trim()\n }\n return res\n}\n\nexport function resolvePropValue(target: any, key: string, fallback: any, preferProps = false) {\n if (target == null) {\n return fallback\n }\n const propsObject = unref(target.__wevuProps)\n if (key === 'data') {\n if (propsObject != null && (propsObject[key] !== undefined || hasOwnProperty(propsObject, key))) {\n return propsObject[key]\n }\n return key in target ? target[key] : fallback\n }\n const hasPropsValue = propsObject != null\n && (propsObject[key] !== undefined || hasOwnProperty(propsObject, key))\n if (preferProps) {\n if (hasPropsValue) {\n return propsObject[key]\n }\n if (key in target) {\n return target[key]\n }\n return fallback\n }\n const stateObject = unref(target.$state)\n if (stateObject != null && hasOwnProperty(stateObject, key)) {\n return target[key]\n }\n if (hasPropsValue) {\n return propsObject[key]\n }\n if (!(key in target)) {\n return fallback\n }\n return target[key]\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"template-n_iVr0ey.mjs","names":[],"sources":["../../src/runtime/template.ts"],"sourcesContent":["import { unref } from '../reactivity'\n\nconst hyphenateRE = /\\B([A-Z])/g\n\nfunction hasOwnProperty(target: object, key: string) {\n return Object.prototype.hasOwnProperty.call(target, key)\n}\n\nfunction hyphenate(value: string) {\n if (!value) {\n return ''\n }\n if (value.startsWith('--')) {\n return value\n }\n return value.replace(hyphenateRE, '-$1').toLowerCase()\n}\n\nfunction appendStyle(base: string, part: string) {\n if (!part) {\n return base\n }\n if (!base) {\n return part\n }\n let next = base\n if (!next.endsWith(';')) {\n next += ';'\n }\n const normalized = part.startsWith(';') ? part.slice(1) : part\n return next + normalized\n}\n\nfunction stringifyStyle(value: Record<string, any>) {\n let res = ''\n for (const key of Object.keys(value)) {\n const raw = unref(value[key])\n if (raw == null) {\n continue\n }\n const name = hyphenate(key)\n if (Array.isArray(raw)) {\n for (const itemValue of raw) {\n const item = unref(itemValue)\n if (item == null) {\n continue\n }\n res = appendStyle(res, `${name}:${item}`)\n }\n }\n else {\n res = appendStyle(res, `${name}:${raw}`)\n }\n }\n return res\n}\n\nexport function normalizeStyle(value: any): string {\n const unwrapped = unref(value)\n if (unwrapped == null) {\n return ''\n }\n if (typeof unwrapped === 'string') {\n return unwrapped\n }\n if (Array.isArray(unwrapped)) {\n let res = ''\n for (const item of unwrapped) {\n const normalized = normalizeStyle(item)\n if (normalized) {\n res = appendStyle(res, normalized)\n }\n }\n return res\n }\n if (typeof unwrapped === 'object') {\n return stringifyStyle(unwrapped)\n }\n return ''\n}\n\nexport function normalizeClass(value: any): string {\n const unwrapped = unref(value)\n let res = ''\n if (!unwrapped) {\n return res\n }\n if (typeof unwrapped === 'string') {\n return unwrapped\n }\n if (Array.isArray(unwrapped)) {\n for (const item of unwrapped) {\n const normalized = normalizeClass(item)\n if (normalized) {\n res += `${normalized} `\n }\n }\n return res.trim()\n }\n if (typeof unwrapped === 'object') {\n for (const key of Object.keys(unwrapped)) {\n if (unref(unwrapped[key])) {\n res += `${key} `\n }\n }\n return res.trim()\n }\n return res\n}\n\nexport function resolvePropValue(target: any, key: string, fallback: any, preferProps = false) {\n if (target == null) {\n return fallback\n }\n const propsObject = unref(target.__wevuProps)\n if (key === 'data') {\n if (propsObject != null && (propsObject[key] !== undefined || hasOwnProperty(propsObject, key))) {\n return propsObject[key]\n }\n return key in target ? target[key] : fallback\n }\n const hasPropsValue = propsObject != null\n && (propsObject[key] !== undefined || hasOwnProperty(propsObject, key))\n if (preferProps) {\n if (hasPropsValue) {\n return propsObject[key]\n }\n if (key in target) {\n return target[key]\n }\n return fallback\n }\n const stateObject = unref(target.$state)\n if (stateObject != null && hasOwnProperty(stateObject, key)) {\n return target[key]\n }\n if (hasPropsValue) {\n return propsObject[key]\n }\n if (!(key in target)) {\n return fallback\n }\n return target[key]\n}\n"],"mappings":"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"}
@@ -1,10 +1,9 @@
1
- import { A as track, C as effect, N as nextTick, P as queueJob, a as toValue, b as addMutationRecorder, d as reactive, g as touchReactive, h as prelinkReactiveTree, i as ref, j as trigger, k as stop, l as isReactive, m as clearPatchIndices, n as isRef, o as unref, p as shallowReactive, r as markAsRef, s as getReactiveVersion, t as customRef, w as effectScope, x as removeMutationRecorder, y as toRaw } from "./ref-Bxwe2Kfo.mjs";
2
- import { t as computed } from "./computed-4hT2jDra.mjs";
3
- import { _ as getScopedSlotHostGlobalObject, c as getCurrentSetupContext, d as setCurrentSetupContext, g as getMiniProgramGlobalObject, h as getCurrentMiniProgramRuntimeCapabilities, l as pushHook, m as getCurrentMiniProgramPages, n as callHookList, p as getCurrentMiniProgramHostConfig, r as callHookReturn, s as getCurrentInstance, t as assertInSetup, u as setCurrentInstance, v as supportsCurrentMiniProgramRuntimeCapability, x as readonly } from "./base-ii6cqKIl.mjs";
4
- import { l as shallowRef, t as watch } from "./watch-B46crqgs.mjs";
5
- import { C as releaseCurrentPageInstance, D as attachRuntimeProvideContext, E as attachRuntimeLayoutProvideContext, H as onPullDownRefresh, M as onAttached, N as onDetached, O as ensureRuntimeAppProvides, S as getCurrentPageInstance, T as runInPageScrollHook, V as onPageScroll, X as onShow, b as ensureMiniProgramGlobalPatched, et as onUnload, k as setRuntimeAppProvidedValue, w as resolvePageOptions, x as ensurePageShareMenus, y as bindCurrentPageInstance } from "./router-D6H7HviN.mjs";
1
+ import { f as shallowReactive, l as shallowRef, m as queueJob, p as nextTick, t as watch } from "./watch-jrgL5ald.mjs";
2
+ import { A as removeMutationRecorder, B as trigger, M as effect, N as effectScope, R as stop, a as toValue, d as reactive, i as ref, k as addMutationRecorder, l as isReactive, n as isRef, o as unref, r as markAsRef, s as getReactiveVersion, t as customRef, v as toRaw, z as track } from "./ref-DRZC3Kc5.mjs";
3
+ import { i as touchReactive, n as clearPatchIndices, r as prelinkReactiveTree, t as computed } from "./computed-BxRsUJgi.mjs";
4
+ import { _ as getScopedSlotHostGlobalObject, c as getCurrentSetupContext, d as setCurrentSetupContext, g as getMiniProgramGlobalObject, h as getCurrentMiniProgramRuntimeCapabilities, l as pushHook, m as getCurrentMiniProgramPages, n as callHookList, p as getCurrentMiniProgramHostConfig, r as callHookReturn, s as getCurrentInstance, t as assertInSetup, u as setCurrentInstance, v as supportsCurrentMiniProgramRuntimeCapability, x as readonly } from "./base-CYkvI7w8.mjs";
5
+ import { $ as onShow, A as attachRuntimeProvideContext, C as ensureMiniProgramGlobalPatched, D as resolvePageOptions, E as releaseCurrentPageInstance, F as onAttached, G as onPullDownRefresh, I as onDetached, M as setRuntimeAppProvidedValue, O as runInPageScrollHook, S as bindCurrentPageInstance, T as getCurrentPageInstance, W as onPageScroll, j as ensureRuntimeAppProvides, k as attachRuntimeLayoutProvideContext, rt as onUnload, w as ensurePageShareMenus } from "./router-BD-ovqV2.mjs";
6
6
  import { WEVU_ATTRS_KEY, WEVU_EFFECT_SCOPE_KEY, WEVU_EXPOSED_KEY, WEVU_FUNCTION_PROP_PATHS_KEY, WEVU_HOOKS_KEY, WEVU_INLINE_HANDLER, WEVU_INLINE_MAP_KEY, WEVU_IS_APP_INSTANCE_KEY, WEVU_LAYOUT_BRIDGE_PAGE_KEYS, WEVU_LAYOUT_HOST_BRIDGE_KEY, WEVU_MODEL_HANDLER, WEVU_NATIVE_INSTANCE_KEY, WEVU_ON_BEFORE_UPDATE_HOOK, WEVU_ON_LOAD_CALLED_KEY, WEVU_ON_UPDATED_HOOK, WEVU_OWNER_HANDLER, WEVU_PAGE_LAYOUT_NAME_KEY, WEVU_PAGE_LAYOUT_NONE, WEVU_PAGE_LAYOUT_PROPS_KEY, WEVU_PAGE_LAYOUT_SETTER_KEY, WEVU_PAGE_SCROLL_HOOK_DEPTH_KEY, WEVU_PARENT_INSTANCE_KEY, WEVU_PENDING_PROP_VALUES_KEY, WEVU_PROPS_ALIASES_KEY, WEVU_PROPS_DERIVED_KEYS_KEY, WEVU_PROPS_KEY, WEVU_PROP_KEYS_KEY, WEVU_PUBLIC_RUNTIME_KEY, WEVU_READY_CALLED_KEY, WEVU_RESERVED_METHOD_PREFIX, WEVU_ROUTE_DONE_CALLED_KEY, WEVU_ROUTE_DONE_IN_TICK_KEY, WEVU_RUNTIME_APP_KEY, WEVU_RUNTIME_KEY, WEVU_SCOPED_SLOT_CREATOR_KEY, WEVU_SCOPED_SLOT_OWNER_SEED_KEY, WEVU_SCOPED_SLOT_OWNER_STORE_KEY, WEVU_SETUP_CONTEXT_INSTANCE_KEY, WEVU_SETUP_STATE_KEY, WEVU_SLOT_NAMES_PROP, WEVU_SLOT_OWNER_ID_KEY, WEVU_SLOT_OWNER_ID_PROP, WEVU_SLOT_OWNER_KEY, WEVU_SLOT_OWNER_PROXY_KEY, WEVU_SLOT_PROPS_DATA_KEY, WEVU_SLOT_PROPS_KEY, WEVU_SLOT_SCOPE_KEY, WEVU_TEMPLATE_REFS_CALLBACKS_KEY, WEVU_TEMPLATE_REFS_KEY, WEVU_TEMPLATE_REFS_PENDING_KEY, WEVU_TEMPLATE_REF_MAP_KEY, WEVU_WATCH_STOPS_KEY } from "@weapp-core/constants";
7
- import { createMiniProgramLayoutHostRegistry, normalizeMiniProgramLayoutHostKeys, resolveMiniProgramPageKeys } from "@weapp-core/shared";
8
7
  import { wpi } from "@wevu/api";
9
8
 
10
9
  //#region src/runtime/hooks/vue.ts
@@ -84,7 +83,7 @@ function callUpdateHooks(target, phase) {
84
83
 
85
84
  //#endregion
86
85
  //#region package.json
87
- var version$1 = "6.17.8";
86
+ var version$1 = "6.18.0";
88
87
 
89
88
  //#endregion
90
89
  //#region src/version.ts
@@ -193,7 +192,8 @@ function createBindModel(publicInstance, state, computedRefs, computedSetters, s
193
192
  };
194
193
  const handlerKey = `on${capitalize(merged.event)}`;
195
194
  const handler = (event) => {
196
- assignValue(merged.parser(event));
195
+ const parsed = merged.parser(event);
196
+ assignValue(parsed);
197
197
  };
198
198
  return {
199
199
  [merged.valueProp]: merged.formatter(resolveValue()),
@@ -3458,7 +3458,12 @@ function syncRuntimeStateFromNativeData(target) {
3458
3458
  const runtimeState = (_target$__wevu2 = target.__wevu) === null || _target$__wevu2 === void 0 ? void 0 : _target$__wevu2.state;
3459
3459
  const nativeData = target.data;
3460
3460
  if (!runtimeState || typeof runtimeState !== "object" || !nativeData || typeof nativeData !== "object") return;
3461
- for (const [key, value] of Object.entries(nativeData)) if (Object.prototype.hasOwnProperty.call(runtimeState, key)) runtimeState[key] = value;
3461
+ for (const [key, value] of Object.entries(nativeData)) {
3462
+ if (!key || key === "undefined") continue;
3463
+ if (Object.prototype.hasOwnProperty.call(runtimeState, key)) try {
3464
+ runtimeState[key] = value;
3465
+ } catch (_unused3) {}
3466
+ }
3462
3467
  }
3463
3468
  function enableDeferredSetData(target) {
3464
3469
  var _wevu, _wevu2, _wevu2$__wevu_flushSe;
@@ -3487,7 +3492,7 @@ function teardownRuntimeInstance(target) {
3487
3492
  const stops = target[WEVU_WATCH_STOPS_KEY];
3488
3493
  if (Array.isArray(stops)) for (const stop of stops) try {
3489
3494
  stop();
3490
- } catch (_unused3) {}
3495
+ } catch (_unused4) {}
3491
3496
  target[WEVU_WATCH_STOPS_KEY] = void 0;
3492
3497
  (_target$WEVU_EFFECT_S = target[WEVU_EFFECT_SCOPE_KEY]) === null || _target$WEVU_EFFECT_S === void 0 || _target$WEVU_EFFECT_S.stop();
3493
3498
  target[WEVU_EFFECT_SCOPE_KEY] = void 0;
@@ -4331,13 +4336,99 @@ function createPropsSync(options) {
4331
4336
 
4332
4337
  //#endregion
4333
4338
  //#region src/runtime/layoutBridge.ts
4334
- const pageLayoutBridgeRegistry = createMiniProgramLayoutHostRegistry();
4339
+ /**
4340
+ * @description 对 layout host key 去重并过滤空字符串。
4341
+ */
4342
+ function normalizeLayoutHostKeys(keys) {
4343
+ return Array.from(new Set(Array.isArray(keys) ? keys : [keys])).filter((key) => typeof key === "string" && key.length > 0);
4344
+ }
4345
+ /**
4346
+ * @description 解析小程序页面实例的稳定身份 key。
4347
+ */
4348
+ function resolvePageIdentityKeys(page) {
4349
+ if (!page || typeof page !== "object") return [];
4350
+ const keys = [];
4351
+ const route = typeof page.route === "string" ? page.route.replace(/^\/+/, "") : "";
4352
+ if (route) keys.push(`route:${route}`);
4353
+ for (const [prefix, field] of [["webview", "__wxWebviewId__"], ["exparser", "__wxExparserNodeId__"]]) {
4354
+ const value = page[field];
4355
+ if (typeof value === "number" || typeof value === "string") keys.push(`${prefix}:${String(value)}`);
4356
+ }
4357
+ return Array.from(new Set(keys));
4358
+ }
4359
+ /**
4360
+ * @description 创建小程序 layout host 注册表。
4361
+ */
4362
+ function createLayoutHostRegistry() {
4363
+ const registries = /* @__PURE__ */ new Map();
4364
+ function register(keys, bridge, pageKeys) {
4365
+ const normalizedKeys = normalizeLayoutHostKeys(keys);
4366
+ if (normalizedKeys.length === 0 || pageKeys.length === 0) return null;
4367
+ for (const pageKey of pageKeys) {
4368
+ var _registries$get;
4369
+ const registry = (_registries$get = registries.get(pageKey)) !== null && _registries$get !== void 0 ? _registries$get : /* @__PURE__ */ new Map();
4370
+ for (const key of normalizedKeys) registry.set(key, bridge);
4371
+ registries.set(pageKey, registry);
4372
+ }
4373
+ return normalizedKeys;
4374
+ }
4375
+ function unregister(keys, bridge, pageKeys) {
4376
+ const normalizedKeys = normalizeLayoutHostKeys(keys);
4377
+ if (normalizedKeys.length === 0 || pageKeys.length === 0) return false;
4378
+ let removed = false;
4379
+ for (const pageKey of pageKeys) {
4380
+ const registry = registries.get(pageKey);
4381
+ if (!registry) continue;
4382
+ for (const key of normalizedKeys) if (registry.get(key) === bridge) {
4383
+ registry.delete(key);
4384
+ removed = true;
4385
+ }
4386
+ if (registry.size === 0) registries.delete(pageKey);
4387
+ }
4388
+ return removed;
4389
+ }
4390
+ function resolveBridge(key, pageKeys) {
4391
+ return pageKeys.map((pageKey) => {
4392
+ var _registries$get2;
4393
+ return (_registries$get2 = registries.get(pageKey)) === null || _registries$get2 === void 0 ? void 0 : _registries$get2.get(key);
4394
+ }).find(Boolean);
4395
+ }
4396
+ function resolveHost(key, pageKeys, resolver) {
4397
+ var _resolver;
4398
+ const bridge = resolveBridge(key, pageKeys);
4399
+ if (!bridge) return null;
4400
+ return (_resolver = resolver(bridge, key)) !== null && _resolver !== void 0 ? _resolver : null;
4401
+ }
4402
+ function waitForHost(key, resolvePageKeys, resolver, options = {}) {
4403
+ var _options$retries, _options$interval;
4404
+ const retries = (_options$retries = options.retries) !== null && _options$retries !== void 0 ? _options$retries : 20;
4405
+ const interval = (_options$interval = options.interval) !== null && _options$interval !== void 0 ? _options$interval : 16;
4406
+ const host = resolveHost(key, resolvePageKeys(), resolver);
4407
+ if (host || retries <= 0) return Promise.resolve(host);
4408
+ return new Promise((resolve) => {
4409
+ setTimeout(() => {
4410
+ resolve(waitForHost(key, resolvePageKeys, resolver, {
4411
+ ...options,
4412
+ retries: retries - 1
4413
+ }));
4414
+ }, interval);
4415
+ });
4416
+ }
4417
+ return {
4418
+ register,
4419
+ resolveBridge,
4420
+ resolveHost,
4421
+ unregister,
4422
+ waitForHost
4423
+ };
4424
+ }
4425
+ const pageLayoutBridgeRegistry = createLayoutHostRegistry();
4335
4426
  function resolveCurrentPageInstance() {
4336
4427
  const pages = getCurrentMiniProgramPages();
4337
4428
  return pages[pages.length - 1];
4338
4429
  }
4339
4430
  function resolvePageKeys(page) {
4340
- return resolveMiniProgramPageKeys(page);
4431
+ return resolvePageIdentityKeys(page);
4341
4432
  }
4342
4433
  function resolvePageFromContext(context) {
4343
4434
  if (context && typeof context.__wevuSetPageLayout === "function") return context;
@@ -4464,7 +4555,7 @@ function waitForLayoutHost(key, options = {}) {
4464
4555
  function useLayoutBridge(selectors, options = {}) {
4465
4556
  if (!getCurrentSetupContext()) throw new Error("useLayoutBridge() 必须在 setup() 的同步阶段调用");
4466
4557
  const context = getCurrentInstance();
4467
- const normalizedSelectors = normalizeMiniProgramLayoutHostKeys(selectors);
4558
+ const normalizedSelectors = normalizeLayoutHostKeys(selectors);
4468
4559
  const resolveComponent = options.resolveComponent;
4469
4560
  const nativeContext = resolveNativeLayoutContext(context);
4470
4561
  const bridgeBase = nativeContext && typeof nativeContext === "object" ? Object.create(nativeContext) : {};
@@ -6202,10 +6293,11 @@ function useBindModel(defaultOptions) {
6202
6293
  const rawBindModel = instance.__wevu.bindModel.bind(instance.__wevu);
6203
6294
  const bindModel = ((path, options) => {
6204
6295
  if (!defaultOptions) return rawBindModel(path, options);
6205
- return rawBindModel(path, {
6296
+ const merged = {
6206
6297
  ...defaultOptions,
6207
6298
  ...options
6208
- });
6299
+ };
6300
+ return rawBindModel(path, merged);
6209
6301
  });
6210
6302
  bindModel.model = (path, options) => bindModel(path).model(options);
6211
6303
  bindModel.value = (path, options) => {
@@ -6281,4 +6373,4 @@ function useTemplateRef(name) {
6281
6373
 
6282
6374
  //#endregion
6283
6375
  export { version as $, registerPageLayoutBridge as A, mountRuntimeInstance as B, useElementIntersectionObserver as C, defineComponent as D, createWevuScopedSlotComponent as E, unregisterRuntimeLayoutHosts as F, setPageLayout as G, teardownRuntimeInstance as H, useLayoutBridge as I, usePageLayout as J, syncRuntimePageLayoutState as K, useLayoutHosts as L, resolveLayoutBridge as M, resolveLayoutHost as N, createApp as O, unregisterPageLayoutBridge as P, markNoSetData as Q, waitForLayoutHost as R, useIntersectionObserver as S, createWevuComponent as T, runSetupFunction as U, setRuntimeSetDataVisibility as V, resolveRuntimePageLayoutName as W, setWevuDefaults as X, resetWevuDefaults as Y, isNoSetData as Z, usePageScrollThrottle as _, useModel as a, onDeactivated as at, useNavigationBarMetrics as b, useSlots as c, onServerPrefetch as ct, useUpdatePerformanceListener as d, callUpdateHooks as et, useBoundingClientRect as f, useAsyncPullDownRefresh as g, useSelectorQuery as h, useChangeModel as i, onBeforeUpdate as it, registerRuntimeLayoutHosts as j, registerComponent as k, defineAppSetup as l, onUnmounted as lt, useSelectorFields as m, mergeModels as n, onBeforeMount as nt, useAttrs as o, onErrorCaptured as ot, useScrollOffset as p, syncRuntimePageLayoutStateFromRuntime as q, useBindModel as r, onBeforeUnmount as rt, useNativeInstance as s, onMounted as st, useTemplateRef as t, onActivated as tt, use as u, onUpdated as ut, getCurrentPageStackSnapshot as v, useDisposables as w, usePageStack as x, getNavigationBarMetrics as y, registerApp as z };
6284
- //# sourceMappingURL=templateRef-C4hJDc4O.mjs.map
6376
+ //# sourceMappingURL=templateRef-DuFamxmB.mjs.map