wevu 6.16.37 → 6.16.41
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.
- package/dist/dev/{base-CoF39as1.mjs → base-BPG0sDu-.mjs} +2 -2
- package/dist/dev/{base-CoF39as1.mjs.map → base-BPG0sDu-.mjs.map} +1 -1
- package/dist/dev/{computed-DBCuiNOA.mjs → computed-njo5yWBk.mjs} +2 -2
- package/dist/dev/{computed-DBCuiNOA.mjs.map → computed-njo5yWBk.mjs.map} +1 -1
- package/dist/dev/index.mjs +10 -10
- package/dist/dev/internal-reactivity.mjs +5 -5
- package/dist/dev/internal-runtime.mjs +3 -3
- package/dist/dev/internal-template.mjs +1 -1
- package/dist/dev/{ref-BoBfMdVt.mjs → ref-DJZWB2im.mjs} +5 -5
- package/dist/dev/{ref-BoBfMdVt.mjs.map → ref-DJZWB2im.mjs.map} +1 -1
- package/dist/dev/{router-C_io1Bpp.mjs → router-pDQKAVqU.mjs} +2 -2
- package/dist/dev/{router-C_io1Bpp.mjs.map → router-pDQKAVqU.mjs.map} +1 -1
- package/dist/dev/router.mjs +3 -3
- package/dist/dev/router.mjs.map +1 -1
- package/dist/dev/{src-YafqvC_l.mjs → src-COWmLfUI.mjs} +9 -9
- package/dist/dev/{store-BWZEkK8F.mjs → store-D_seGoEN.mjs} +3 -3
- package/dist/dev/{store-BWZEkK8F.mjs.map → store-D_seGoEN.mjs.map} +1 -1
- package/dist/dev/store.mjs +1 -1
- package/dist/dev/{template-BeuoC58i.mjs → template-D4K5xTD2.mjs} +2 -2
- package/dist/dev/{template-BeuoC58i.mjs.map → template-D4K5xTD2.mjs.map} +1 -1
- package/dist/dev/{templateRef-GsGuFvwE.mjs → templateRef-C6J2nS-k.mjs} +117 -20
- package/dist/dev/templateRef-C6J2nS-k.mjs.map +1 -0
- package/dist/dev/{toRefs-DrE7KHlW.mjs → toRefs-C9gCs6N3.mjs} +2 -2
- package/dist/dev/{toRefs-DrE7KHlW.mjs.map → toRefs-C9gCs6N3.mjs.map} +1 -1
- package/dist/dev/vue-demi.mjs +10 -10
- package/dist/dev/{watch-CqXsBjp3.mjs → watch-CJiD9u34.mjs} +3 -3
- package/dist/dev/{watch-CqXsBjp3.mjs.map → watch-CJiD9u34.mjs.map} +1 -1
- package/dist/{index-CgXlVT9g.d.mts → index-DcoLBzsV.d.mts} +32 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.mjs +1 -1
- package/dist/internal-runtime.d.mts +1 -1
- package/dist/internal-runtime.mjs +1 -1
- package/dist/templateRef-CkvD-df-.mjs +1 -0
- package/dist/vue-demi.d.mts +1 -1
- package/dist/vue-demi.mjs +1 -1
- package/package.json +2 -2
- package/dist/dev/templateRef-GsGuFvwE.mjs.map +0 -1
- package/dist/templateRef-D5kOrMIX.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-
|
|
2
|
-
import { t as computed } from "./computed-
|
|
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-DJZWB2im.mjs";
|
|
2
|
+
import { t as computed } from "./computed-njo5yWBk.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/store/actions.ts
|
|
5
5
|
function wrapAction(store, name, action, actionSubs) {
|
|
@@ -472,4 +472,4 @@ function storeToRefs(store) {
|
|
|
472
472
|
|
|
473
473
|
//#endregion
|
|
474
474
|
export { defineStore as n, createStore as r, storeToRefs as t };
|
|
475
|
-
//# sourceMappingURL=store-
|
|
475
|
+
//# sourceMappingURL=store-D_seGoEN.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-BWZEkK8F.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\nconst hasOwn = Object.prototype.hasOwnProperty\n\nexport function isTrackableRef(value: unknown) {\n return isRef(value) && hasOwn.call(value, 'dep')\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 current.value = cloneDeep(snapValue)\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":"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"}
|
|
1
|
+
{"version":3,"file":"store-D_seGoEN.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\nconst hasOwn = Object.prototype.hasOwnProperty\n\nexport function isTrackableRef(value: unknown) {\n return isRef(value) && hasOwn.call(value, 'dep')\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 current.value = cloneDeep(snapValue)\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":"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"}
|
package/dist/dev/store.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { o as unref } from "./ref-
|
|
1
|
+
import { o as unref } from "./ref-DJZWB2im.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-
|
|
91
|
+
//# sourceMappingURL=template-D4K5xTD2.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-
|
|
1
|
+
{"version":3,"file":"template-D4K5xTD2.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,8 +1,8 @@
|
|
|
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-
|
|
2
|
-
import { t as computed } from "./computed-
|
|
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-
|
|
4
|
-
import { l as shallowRef, t as watch } from "./watch-
|
|
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-
|
|
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-DJZWB2im.mjs";
|
|
2
|
+
import { t as computed } from "./computed-njo5yWBk.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-BPG0sDu-.mjs";
|
|
4
|
+
import { l as shallowRef, t as watch } from "./watch-CJiD9u34.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-pDQKAVqU.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
7
|
import { resolveMiniProgramPageKeys } from "@weapp-core/shared";
|
|
8
8
|
import { wpi } from "@wevu/api";
|
|
@@ -84,7 +84,7 @@ function callUpdateHooks(target, phase) {
|
|
|
84
84
|
|
|
85
85
|
//#endregion
|
|
86
86
|
//#region package.json
|
|
87
|
-
var version$1 = "6.16.
|
|
87
|
+
var version$1 = "6.16.41";
|
|
88
88
|
|
|
89
89
|
//#endregion
|
|
90
90
|
//#region src/version.ts
|
|
@@ -541,6 +541,8 @@ function createDiagnosticsLogger(mode) {
|
|
|
541
541
|
];
|
|
542
542
|
if (typeof info.mergedSiblingParents === "number") parts.push(`mergedParents=${info.mergedSiblingParents}`);
|
|
543
543
|
if (typeof info.computedDirtyKeys === "number") parts.push(`computedDirty=${info.computedDirtyKeys}`);
|
|
544
|
+
if (typeof info.flushCount === "number") parts.push(`flushes=${info.flushCount}`);
|
|
545
|
+
if (typeof info.windowMs === "number") parts.push(`window=${info.windowMs}ms`);
|
|
544
546
|
const message = `[wevu:setData] ${parts.join(" ")}`;
|
|
545
547
|
if (isFallbackReason(info.reason)) {
|
|
546
548
|
console.warn(message);
|
|
@@ -1175,7 +1177,7 @@ function runPatchUpdate(options) {
|
|
|
1175
1177
|
//#endregion
|
|
1176
1178
|
//#region src/runtime/app/setData/scheduler.ts
|
|
1177
1179
|
function createSetDataScheduler(options) {
|
|
1178
|
-
const { state, setupState, snapshotOmitKeys, computedRefs, dirtyComputedKeys, includeComputed, setDataStrategy, computedCompare, computedCompareMaxDepth, computedCompareMaxKeys, currentAdapter, shouldIncludeKey, maxPatchKeys, maxPayloadBytes, mergeSiblingThreshold, mergeSiblingMaxInflationRatio, mergeSiblingMaxParentBytes, mergeSiblingSkipArray, elevateTopKeyThreshold, toPlainMaxDepth, toPlainMaxKeys, includeFunctions = false, functionPaths, debug, debugWhen, debugSampleRate, runTracker, isMounted, initialSnapshot } = options;
|
|
1180
|
+
const { state, setupState, snapshotOmitKeys, computedRefs, dirtyComputedKeys, includeComputed, setDataStrategy, computedCompare, computedCompareMaxDepth, computedCompareMaxKeys, currentAdapter, shouldIncludeKey, maxPatchKeys, maxPayloadBytes, mergeSiblingThreshold, mergeSiblingMaxInflationRatio, mergeSiblingMaxParentBytes, mergeSiblingSkipArray, elevateTopKeyThreshold, toPlainMaxDepth, toPlainMaxKeys, includeFunctions = false, functionPaths, debug, debugWhen, debugSampleRate, loopWarning, runTracker, isMounted, initialSnapshot, initialState } = options;
|
|
1179
1181
|
const plainCache = /* @__PURE__ */ new WeakMap();
|
|
1180
1182
|
const plainCacheEligibility = /* @__PURE__ */ new WeakMap();
|
|
1181
1183
|
let latestSnapshot = {};
|
|
@@ -1185,6 +1187,9 @@ function createSetDataScheduler(options) {
|
|
|
1185
1187
|
const needsFullSnapshot = { value: setDataStrategy === "patch" };
|
|
1186
1188
|
const pendingPatches = /* @__PURE__ */ new Map();
|
|
1187
1189
|
const fallbackTopKeys = /* @__PURE__ */ new Set();
|
|
1190
|
+
const flushTimes = [];
|
|
1191
|
+
let lastLoopWarningAt = Number.NEGATIVE_INFINITY;
|
|
1192
|
+
const initialStateKeys = new Set(initialState && typeof initialState === "object" ? Object.keys(initialState) : []);
|
|
1188
1193
|
const isPlainObject = (value) => {
|
|
1189
1194
|
if (Object.prototype.toString.call(value) !== "[object Object]") return false;
|
|
1190
1195
|
const proto = Object.getPrototypeOf(value);
|
|
@@ -1243,6 +1248,7 @@ function createSetDataScheduler(options) {
|
|
|
1243
1248
|
continue;
|
|
1244
1249
|
}
|
|
1245
1250
|
if (hasOwn(rawState, key)) {
|
|
1251
|
+
if (initialStateKeys.has(key)) continue;
|
|
1246
1252
|
rawState[key] = initialSnapshot[key];
|
|
1247
1253
|
latestStateTokens[key] = createValueToken(rawState[key]);
|
|
1248
1254
|
}
|
|
@@ -1269,6 +1275,26 @@ function createSetDataScheduler(options) {
|
|
|
1269
1275
|
debug(info);
|
|
1270
1276
|
} catch (_unused) {}
|
|
1271
1277
|
};
|
|
1278
|
+
const recordFlushForLoopWarning = () => {
|
|
1279
|
+
if (!loopWarning) return;
|
|
1280
|
+
const current = Date.now();
|
|
1281
|
+
flushTimes.push(current);
|
|
1282
|
+
const windowStart = current - loopWarning.sampleWindowMs;
|
|
1283
|
+
while (flushTimes.length && flushTimes[0] < windowStart) flushTimes.shift();
|
|
1284
|
+
if (flushTimes.length <= loopWarning.maxFlushes) return;
|
|
1285
|
+
if (loopWarning.coolDownMs > 0 && current - lastLoopWarningAt < loopWarning.coolDownMs) return;
|
|
1286
|
+
lastLoopWarningAt = current;
|
|
1287
|
+
emitDebug({
|
|
1288
|
+
mode: setDataStrategy,
|
|
1289
|
+
reason: "loopWarning",
|
|
1290
|
+
pendingPatchKeys: pendingPatches.size + fallbackTopKeys.size,
|
|
1291
|
+
payloadKeys: 0,
|
|
1292
|
+
computedDirtyKeys: includeComputed ? dirtyComputedKeys.size : 0,
|
|
1293
|
+
flushCount: flushTimes.length,
|
|
1294
|
+
windowMs: loopWarning.sampleWindowMs,
|
|
1295
|
+
message: `疑似运行时更新循环:${flushTimes.length} 次 setData flush/${loopWarning.sampleWindowMs}ms`
|
|
1296
|
+
});
|
|
1297
|
+
};
|
|
1272
1298
|
const collect = () => collectSnapshot({
|
|
1273
1299
|
state,
|
|
1274
1300
|
setupState,
|
|
@@ -1401,6 +1427,7 @@ function createSetDataScheduler(options) {
|
|
|
1401
1427
|
};
|
|
1402
1428
|
const job = (_stateRootRaw) => {
|
|
1403
1429
|
if (!isMounted()) return;
|
|
1430
|
+
recordFlushForLoopWarning();
|
|
1404
1431
|
runTracker();
|
|
1405
1432
|
if (setDataStrategy === "patch" && !needsFullSnapshot.value) {
|
|
1406
1433
|
if (!(pendingPatches.size > 0 || fallbackTopKeys.size > 0 || includeComputed && dirtyComputedKeys.size > 0)) {
|
|
@@ -1471,6 +1498,12 @@ function resolveSetDataOptions(setDataOptions) {
|
|
|
1471
1498
|
const prelinkMaxKeys = setDataOptions === null || setDataOptions === void 0 ? void 0 : setDataOptions.prelinkMaxKeys;
|
|
1472
1499
|
const debug = setDataOptions === null || setDataOptions === void 0 ? void 0 : setDataOptions.debug;
|
|
1473
1500
|
const diagnostics = (_setDataOptions$diagn = setDataOptions === null || setDataOptions === void 0 ? void 0 : setDataOptions.diagnostics) !== null && _setDataOptions$diagn !== void 0 ? _setDataOptions$diagn : "off";
|
|
1501
|
+
const loopWarningOption = setDataOptions === null || setDataOptions === void 0 ? void 0 : setDataOptions.loopWarning;
|
|
1502
|
+
const loopWarning = loopWarningOption === false || loopWarningOption && typeof loopWarningOption === "object" && loopWarningOption.enabled === false ? false : {
|
|
1503
|
+
sampleWindowMs: typeof loopWarningOption === "object" && typeof loopWarningOption.sampleWindowMs === "number" ? Math.max(100, Math.floor(loopWarningOption.sampleWindowMs)) : 1e3,
|
|
1504
|
+
maxFlushes: typeof loopWarningOption === "object" && typeof loopWarningOption.maxFlushes === "number" ? Math.max(1, Math.floor(loopWarningOption.maxFlushes)) : 50,
|
|
1505
|
+
coolDownMs: typeof loopWarningOption === "object" && typeof loopWarningOption.coolDownMs === "number" ? Math.max(0, Math.floor(loopWarningOption.coolDownMs)) : 5e3
|
|
1506
|
+
};
|
|
1474
1507
|
const debugWhen = (_setDataOptions$debug = setDataOptions === null || setDataOptions === void 0 ? void 0 : setDataOptions.debugWhen) !== null && _setDataOptions$debug !== void 0 ? _setDataOptions$debug : "fallback";
|
|
1475
1508
|
const debugSampleRate = typeof (setDataOptions === null || setDataOptions === void 0 ? void 0 : setDataOptions.debugSampleRate) === "number" ? Math.min(1, Math.max(0, setDataOptions.debugSampleRate)) : 1;
|
|
1476
1509
|
const elevateTopKeyThreshold = typeof (setDataOptions === null || setDataOptions === void 0 ? void 0 : setDataOptions.elevateTopKeyThreshold) === "number" ? Math.max(0, Math.floor(setDataOptions.elevateTopKeyThreshold)) : Number.POSITIVE_INFINITY;
|
|
@@ -1502,6 +1535,7 @@ function resolveSetDataOptions(setDataOptions) {
|
|
|
1502
1535
|
prelinkMaxKeys,
|
|
1503
1536
|
debug,
|
|
1504
1537
|
diagnostics,
|
|
1538
|
+
loopWarning,
|
|
1505
1539
|
debugWhen,
|
|
1506
1540
|
debugSampleRate,
|
|
1507
1541
|
elevateTopKeyThreshold,
|
|
@@ -1553,6 +1587,7 @@ function createRuntimeMount(options) {
|
|
|
1553
1587
|
const adapterSnapshotOmitKeys = adapter === null || adapter === void 0 ? void 0 : adapter.__wevu_snapshotOmitKeys;
|
|
1554
1588
|
const deferInitialSnapshot = Boolean(adapter === null || adapter === void 0 ? void 0 : adapter.__wevu_deferInitialSnapshot);
|
|
1555
1589
|
const adapterInitialSnapshot = adapter === null || adapter === void 0 ? void 0 : adapter.__wevu_initialSnapshot;
|
|
1590
|
+
const adapterInitialState = adapter === null || adapter === void 0 ? void 0 : adapter.__wevu_initialState;
|
|
1556
1591
|
const snapshotOmitKeys = new Set(adapterSnapshotOmitKeys instanceof Set ? adapterSnapshotOmitKeys : Array.isArray(adapterSnapshotOmitKeys) ? adapterSnapshotOmitKeys : []);
|
|
1557
1592
|
if (rawState && typeof rawState === "object" && !hasOwn(rawState, WEVU_SETUP_STATE_KEY)) try {
|
|
1558
1593
|
Object.defineProperty(rawState, WEVU_SETUP_STATE_KEY, {
|
|
@@ -1562,6 +1597,10 @@ function createRuntimeMount(options) {
|
|
|
1562
1597
|
writable: false
|
|
1563
1598
|
});
|
|
1564
1599
|
} catch (_unused2) {}
|
|
1600
|
+
if (rawState && typeof rawState === "object" && adapterInitialState && typeof adapterInitialState === "object") for (const [key, value] of Object.entries(adapterInitialState)) {
|
|
1601
|
+
if (snapshotOmitKeys.has(key)) continue;
|
|
1602
|
+
rawState[key] = value;
|
|
1603
|
+
}
|
|
1565
1604
|
const computedDefs = resolvedComputed;
|
|
1566
1605
|
const methodDefs = resolvedMethods;
|
|
1567
1606
|
let mounted = true;
|
|
@@ -1571,11 +1610,13 @@ function createRuntimeMount(options) {
|
|
|
1571
1610
|
const value = state[key];
|
|
1572
1611
|
if (hasTrackableSetupBinding(value)) trackedSetupReactiveKeys.add(key);
|
|
1573
1612
|
});
|
|
1574
|
-
const { includeComputed, setDataStrategy, maxPatchKeys, maxPayloadBytes, mergeSiblingThreshold, mergeSiblingMaxInflationRatio, mergeSiblingMaxParentBytes, mergeSiblingSkipArray, computedCompare, computedCompareMaxDepth, computedCompareMaxKeys, prelinkMaxDepth, prelinkMaxKeys, debug, diagnostics, debugWhen, debugSampleRate, elevateTopKeyThreshold, toPlainMaxDepth, toPlainMaxKeys, includeFunctions, functionPaths, shouldIncludeKey } = resolveSetDataOptions(setDataOptions);
|
|
1613
|
+
const { includeComputed, setDataStrategy, maxPatchKeys, maxPayloadBytes, mergeSiblingThreshold, mergeSiblingMaxInflationRatio, mergeSiblingMaxParentBytes, mergeSiblingSkipArray, computedCompare, computedCompareMaxDepth, computedCompareMaxKeys, prelinkMaxDepth, prelinkMaxKeys, debug, diagnostics, loopWarning, debugWhen, debugSampleRate, elevateTopKeyThreshold, toPlainMaxDepth, toPlainMaxKeys, includeFunctions, functionPaths, shouldIncludeKey } = resolveSetDataOptions(setDataOptions);
|
|
1575
1614
|
const diagnosticsLogger = createDiagnosticsLogger(diagnostics);
|
|
1576
|
-
const
|
|
1615
|
+
const loopWarningLogger = diagnostics === "off" && loopWarning ? createDiagnosticsLogger("fallback") : void 0;
|
|
1616
|
+
const mergedDebug = debug || diagnosticsLogger || loopWarningLogger ? (info) => {
|
|
1577
1617
|
if (typeof debug === "function") debug(info);
|
|
1578
1618
|
diagnosticsLogger === null || diagnosticsLogger === void 0 || diagnosticsLogger(info);
|
|
1619
|
+
if (info.reason === "loopWarning") loopWarningLogger === null || loopWarningLogger === void 0 || loopWarningLogger(info);
|
|
1579
1620
|
} : void 0;
|
|
1580
1621
|
const mergedDebugWhen = diagnostics === "always" ? "always" : debugWhen;
|
|
1581
1622
|
const { boundMethods, computedRefs, computedSetters, dirtyComputedKeys, computedProxy, publicInstance, touchSetupMethodsVersion } = createRuntimeContext({
|
|
@@ -1617,9 +1658,11 @@ function createRuntimeMount(options) {
|
|
|
1617
1658
|
debug: mergedDebug,
|
|
1618
1659
|
debugWhen: mergedDebugWhen,
|
|
1619
1660
|
debugSampleRate,
|
|
1661
|
+
loopWarning,
|
|
1620
1662
|
runTracker: () => tracker === null || tracker === void 0 ? void 0 : tracker(),
|
|
1621
1663
|
isMounted: () => mounted,
|
|
1622
|
-
initialSnapshot: adapterInitialSnapshot && typeof adapterInitialSnapshot === "object" ? adapterInitialSnapshot : void 0
|
|
1664
|
+
initialSnapshot: adapterInitialSnapshot && typeof adapterInitialSnapshot === "object" ? adapterInitialSnapshot : void 0,
|
|
1665
|
+
initialState: adapterInitialState && typeof adapterInitialState === "object" ? adapterInitialState : void 0
|
|
1623
1666
|
});
|
|
1624
1667
|
const job = () => scheduler.job(stateRootRaw);
|
|
1625
1668
|
const mutationRecorder = (record) => scheduler.mutationRecorder(record, stateRootRaw);
|
|
@@ -3205,11 +3248,12 @@ function attachPageLayoutSetter(target) {
|
|
|
3205
3248
|
* @internal
|
|
3206
3249
|
*/
|
|
3207
3250
|
function mountRuntimeInstance(target, runtimeApp, watchMap, setup, options) {
|
|
3208
|
-
var _wevuSetDataOptions, _wevuSetDataOptions2, _runtime$proxy, _runtime$state, _runtime$setupState, _computed, _runtime$methods, _watch, _bindModel, _snapshot, _unmount;
|
|
3251
|
+
var _data, _wevuSetDataOptions, _wevuSetDataOptions2, _runtime$proxy, _runtime$state, _runtime$setupState, _computed, _runtime$methods, _watch, _bindModel, _snapshot, _unmount;
|
|
3209
3252
|
if (target.__wevu) return target.__wevu;
|
|
3210
3253
|
attachRuntimeProvideParentContext(target, runtimeApp);
|
|
3211
3254
|
safeMarkNoSetData(target);
|
|
3212
|
-
const
|
|
3255
|
+
const initialNativeOwnerId = (_data = target.data) === null || _data === void 0 ? void 0 : _data[WEVU_SLOT_OWNER_ID_KEY];
|
|
3256
|
+
const ownerId = typeof initialNativeOwnerId === "string" && initialNativeOwnerId ? initialNativeOwnerId : allocateOwnerId();
|
|
3213
3257
|
const suspendWhenHidden = Boolean(runtimeApp === null || runtimeApp === void 0 || (_wevuSetDataOptions = runtimeApp.__wevuSetDataOptions) === null || _wevuSetDataOptions === void 0 ? void 0 : _wevuSetDataOptions.suspendWhenHidden);
|
|
3214
3258
|
const targetLabel = typeof target.route === "string" && target.route ? `page:${target.route}` : typeof target.is === "string" && target.is ? `component:${target.is}` : "unknown-target";
|
|
3215
3259
|
const highFrequencyWarning = createSetDataHighFrequencyWarningMonitor({
|
|
@@ -3303,6 +3347,12 @@ function mountRuntimeInstance(target, runtimeApp, watchMap, setup, options) {
|
|
|
3303
3347
|
value: initialSnapshot,
|
|
3304
3348
|
writable: false
|
|
3305
3349
|
});
|
|
3350
|
+
Object.defineProperty(baseMountAdapter, "__wevu_initialState", {
|
|
3351
|
+
configurable: true,
|
|
3352
|
+
enumerable: false,
|
|
3353
|
+
value: { [WEVU_SLOT_OWNER_ID_KEY]: ownerId },
|
|
3354
|
+
writable: false
|
|
3355
|
+
});
|
|
3306
3356
|
const targetProperties = target.properties;
|
|
3307
3357
|
if (Boolean(setup) || Boolean(targetProperties && typeof targetProperties === "object" && Object.keys(targetProperties).length > 0)) Object.defineProperty(baseMountAdapter, "__wevu_deferInitialSnapshot", {
|
|
3308
3358
|
configurable: true,
|
|
@@ -4853,6 +4903,31 @@ function resolveComputedGetter(definition) {
|
|
|
4853
4903
|
function isCompilerGeneratedTemplateComputedKey(key) {
|
|
4854
4904
|
return key.startsWith("__wv_bind_") || key.startsWith("__wv_cls_") || key.startsWith("__wv_style_");
|
|
4855
4905
|
}
|
|
4906
|
+
function canResolveInitialTemplateComputed(key, getter) {
|
|
4907
|
+
if (!key.startsWith("__wv_bind_")) return false;
|
|
4908
|
+
try {
|
|
4909
|
+
return !/\bthis\b/.test(Function.prototype.toString.call(getter));
|
|
4910
|
+
} catch (_unused) {
|
|
4911
|
+
return false;
|
|
4912
|
+
}
|
|
4913
|
+
}
|
|
4914
|
+
function resolveRuntimeBindingPlaceholder(key) {
|
|
4915
|
+
if (key === WEVU_SLOT_OWNER_ID_KEY) return "";
|
|
4916
|
+
if (key.startsWith("__wv_bind_")) return null;
|
|
4917
|
+
if (key.startsWith("__wv_cls_") || key.startsWith("__wv_style_")) return "";
|
|
4918
|
+
}
|
|
4919
|
+
function resolveRuntimeBindingPlaceholderData(data, setData) {
|
|
4920
|
+
const pickKeys = Array.isArray(setData === null || setData === void 0 ? void 0 : setData.pick) ? setData.pick : [];
|
|
4921
|
+
if (!pickKeys.length) return;
|
|
4922
|
+
const omitKeys = new Set(Array.isArray(setData === null || setData === void 0 ? void 0 : setData.omit) ? setData.omit : []);
|
|
4923
|
+
const resolved = {};
|
|
4924
|
+
for (const key of pickKeys) {
|
|
4925
|
+
if (omitKeys.has(key) || hasOwn(data, key)) continue;
|
|
4926
|
+
const placeholder = resolveRuntimeBindingPlaceholder(key);
|
|
4927
|
+
if (placeholder !== void 0) resolved[key] = placeholder;
|
|
4928
|
+
}
|
|
4929
|
+
return Object.keys(resolved).length ? resolved : void 0;
|
|
4930
|
+
}
|
|
4856
4931
|
function resolveInitialComputedData(options) {
|
|
4857
4932
|
const { data, computed, setData } = options;
|
|
4858
4933
|
const computedKeys = computed ? Object.keys(computed) : [];
|
|
@@ -4888,7 +4963,7 @@ function resolveInitialComputedData(options) {
|
|
|
4888
4963
|
ok: true,
|
|
4889
4964
|
value
|
|
4890
4965
|
};
|
|
4891
|
-
} catch (
|
|
4966
|
+
} catch (_unused2) {
|
|
4892
4967
|
return { ok: false };
|
|
4893
4968
|
} finally {
|
|
4894
4969
|
resolving.delete(key);
|
|
@@ -4914,7 +4989,8 @@ function resolveInitialComputedData(options) {
|
|
|
4914
4989
|
}
|
|
4915
4990
|
});
|
|
4916
4991
|
for (const key of computedKeys) {
|
|
4917
|
-
|
|
4992
|
+
const getter = resolveComputedGetter(computed[key]);
|
|
4993
|
+
if (isCompilerGeneratedTemplateComputedKey(key) && (!getter || !canResolveInitialTemplateComputed(key, getter))) continue;
|
|
4918
4994
|
resolveComputedValue(key);
|
|
4919
4995
|
}
|
|
4920
4996
|
return Object.keys(resolved).length ? resolved : void 0;
|
|
@@ -4926,8 +5002,10 @@ function resolveNativeInitialData(data, computed, setData) {
|
|
|
4926
5002
|
computed,
|
|
4927
5003
|
setData
|
|
4928
5004
|
});
|
|
4929
|
-
|
|
5005
|
+
const runtimeBindingPlaceholderData = resolveRuntimeBindingPlaceholderData(data, setData);
|
|
5006
|
+
return initialComputedData || runtimeBindingPlaceholderData ? {
|
|
4930
5007
|
...data,
|
|
5008
|
+
...runtimeBindingPlaceholderData,
|
|
4931
5009
|
...initialComputedData
|
|
4932
5010
|
} : data;
|
|
4933
5011
|
}
|
|
@@ -5083,7 +5161,8 @@ function normalizeProps(baseOptions, props, explicitProperties) {
|
|
|
5083
5161
|
const allowNullPropInput = Boolean((_ALLOW_NULL_PROP_INPU = baseOptions[ALLOW_NULL_PROP_INPUT_KEY]) !== null && _ALLOW_NULL_PROP_INPU !== void 0 ? _ALLOW_NULL_PROP_INPU : baseOptions[PUBLIC_ALLOW_NULL_PROP_INPUT_KEY]);
|
|
5084
5162
|
const { [ALLOW_NULL_PROP_INPUT_KEY]: _ignoredAllowNullPropInput, [PUBLIC_ALLOW_NULL_PROP_INPUT_KEY]: _ignoredPublicAllowNullPropInput, ...normalizedBaseOptions } = baseOptions;
|
|
5085
5163
|
const baseProperties = baseOptions.properties;
|
|
5086
|
-
const
|
|
5164
|
+
const normalizedBaseProperties = baseProperties && typeof baseProperties === "object" && Object.keys(baseProperties).length > 0 ? baseProperties : void 0;
|
|
5165
|
+
const resolvedExplicit = explicitProperties !== null && explicitProperties !== void 0 ? explicitProperties : normalizedBaseProperties;
|
|
5087
5166
|
const shouldAttachInternalProps = Boolean(props || resolvedExplicit);
|
|
5088
5167
|
const attachInternalProps = (source) => {
|
|
5089
5168
|
const next = { ...source !== null && source !== void 0 ? source : {} };
|
|
@@ -5437,20 +5516,34 @@ function ensureScopedSlotComponentGlobal() {
|
|
|
5437
5516
|
const globalRecord = globalObject;
|
|
5438
5517
|
if (scopedSlotCreator && globalRecord[WEVU_SCOPED_SLOT_CREATOR_KEY] !== scopedSlotCreator) globalRecord[WEVU_SCOPED_SLOT_CREATOR_KEY] = scopedSlotCreator;
|
|
5439
5518
|
}
|
|
5519
|
+
function shouldSeedNativeSlotOwnerId(mpOptions, setData) {
|
|
5520
|
+
return Boolean(mpOptions.__wevu_isPage) && Array.isArray(setData === null || setData === void 0 ? void 0 : setData.pick) && setData.pick.includes(WEVU_SLOT_OWNER_ID_KEY);
|
|
5521
|
+
}
|
|
5522
|
+
function hasScopedSlotHostProperties(mpOptions) {
|
|
5523
|
+
const properties = mpOptions.properties;
|
|
5524
|
+
return Boolean(properties && typeof properties === "object" && (WEVU_SLOT_OWNER_ID_PROP in properties || WEVU_SLOT_SCOPE_KEY in properties));
|
|
5525
|
+
}
|
|
5526
|
+
function resolveScopedSlotHostSetData(mpOptions, setData) {
|
|
5527
|
+
if ((setData === null || setData === void 0 ? void 0 : setData.strategy) !== "patch" || !hasScopedSlotHostProperties(mpOptions)) return setData;
|
|
5528
|
+
return {
|
|
5529
|
+
...setData,
|
|
5530
|
+
strategy: "diff"
|
|
5531
|
+
};
|
|
5532
|
+
}
|
|
5440
5533
|
function defineComponent(options) {
|
|
5441
5534
|
ensureScopedSlotComponentGlobal();
|
|
5442
5535
|
const { __typeProps: _typeProps, data, computed, methods, setData, watch, setup, props, allowFunctionProps, ...mpOptions } = applyWevuComponentDefaults(options);
|
|
5443
5536
|
const rawFunctionPropPaths = mpOptions[WEVU_FUNCTION_PROP_PATHS_KEY];
|
|
5444
5537
|
const functionPropPaths = Array.isArray(rawFunctionPropPaths) ? [...new Set(rawFunctionPropPaths.filter((path) => typeof path === "string" && path.length > 0))] : [];
|
|
5445
5538
|
delete mpOptions[WEVU_FUNCTION_PROP_PATHS_KEY];
|
|
5446
|
-
const resolvedSetData = allowFunctionProps === true ? {
|
|
5539
|
+
const resolvedSetData = resolveScopedSlotHostSetData(mpOptions, allowFunctionProps === true ? {
|
|
5447
5540
|
...setData !== null && setData !== void 0 ? setData : {},
|
|
5448
5541
|
includeFunctions: true,
|
|
5449
5542
|
functionPaths: functionPropPaths
|
|
5450
5543
|
} : allowFunctionProps === false ? setData : functionPropPaths.length ? {
|
|
5451
5544
|
...setData !== null && setData !== void 0 ? setData : {},
|
|
5452
5545
|
functionPaths: functionPropPaths
|
|
5453
|
-
} : setData;
|
|
5546
|
+
} : setData);
|
|
5454
5547
|
const setupFunctionPropKeys = new Set(functionPropPaths.filter((path) => !path.includes(".")));
|
|
5455
5548
|
const runtimeApp = createApp({
|
|
5456
5549
|
data,
|
|
@@ -5467,7 +5560,11 @@ function defineComponent(options) {
|
|
|
5467
5560
|
});
|
|
5468
5561
|
return result;
|
|
5469
5562
|
}) : void 0;
|
|
5470
|
-
const
|
|
5563
|
+
const nativeData = typeof data === "function" ? data() : data;
|
|
5564
|
+
const nativeInitialData = resolveNativeInitialData(shouldSeedNativeSlotOwnerId(mpOptions, resolvedSetData) ? {
|
|
5565
|
+
...nativeData && typeof nativeData === "object" ? nativeData : {},
|
|
5566
|
+
[WEVU_SLOT_OWNER_ID_KEY]: (nativeData === null || nativeData === void 0 ? void 0 : nativeData[WEVU_SLOT_OWNER_ID_KEY]) || allocateOwnerId()
|
|
5567
|
+
} : nativeData, computed, resolvedSetData);
|
|
5471
5568
|
const mpOptionsWithProps = normalizeProps(nativeInitialData !== void 0 ? {
|
|
5472
5569
|
...mpOptions,
|
|
5473
5570
|
data: nativeInitialData
|
|
@@ -6181,4 +6278,4 @@ function useTemplateRef(name) {
|
|
|
6181
6278
|
|
|
6182
6279
|
//#endregion
|
|
6183
6280
|
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 };
|
|
6184
|
-
//# sourceMappingURL=templateRef-
|
|
6281
|
+
//# sourceMappingURL=templateRef-C6J2nS-k.mjs.map
|