wevu 6.16.30 → 6.16.32

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 (55) hide show
  1. package/dist/base-D-o2Hv6z.mjs +1 -0
  2. package/dist/computed-DdPJb4_M.mjs +1 -0
  3. package/dist/dev/base-CoF39as1.mjs +302 -0
  4. package/dist/dev/base-CoF39as1.mjs.map +1 -0
  5. package/dist/dev/computed-DBCuiNOA.mjs +48 -0
  6. package/dist/dev/computed-DBCuiNOA.mjs.map +1 -0
  7. package/dist/dev/index.mjs +9 -3
  8. package/dist/dev/internal-reactivity.mjs +7 -0
  9. package/dist/dev/internal-runtime.mjs +5 -0
  10. package/dist/dev/internal-template.mjs +3 -0
  11. package/dist/dev/{router-ByTtgUmi.mjs → router-C_io1Bpp.mjs} +4 -301
  12. package/dist/dev/router-C_io1Bpp.mjs.map +1 -0
  13. package/dist/dev/router.mjs +2 -1
  14. package/dist/dev/router.mjs.map +1 -1
  15. package/dist/dev/src-DAWKf0w2.mjs +46 -0
  16. package/dist/dev/{store-eNxaNZbj.mjs → store-BWZEkK8F.mjs} +4 -47
  17. package/dist/dev/store-BWZEkK8F.mjs.map +1 -0
  18. package/dist/dev/store.mjs +1 -1
  19. package/dist/dev/template-BeuoC58i.mjs +91 -0
  20. package/dist/dev/template-BeuoC58i.mjs.map +1 -0
  21. package/dist/dev/{src-B6draUWz.mjs → templateRef-Cl4FZO1Q.mjs} +106 -528
  22. package/dist/dev/templateRef-Cl4FZO1Q.mjs.map +1 -0
  23. package/dist/dev/toRefs-DrE7KHlW.mjs +42 -0
  24. package/dist/dev/toRefs-DrE7KHlW.mjs.map +1 -0
  25. package/dist/dev/vue-demi.mjs +9 -3
  26. package/dist/dev/vue-demi.mjs.map +1 -1
  27. package/dist/dev/watch-CqXsBjp3.mjs +328 -0
  28. package/dist/dev/watch-CqXsBjp3.mjs.map +1 -0
  29. package/dist/{index-DuNbWb3x.d.mts → index-CgXlVT9g.d.mts} +2 -6
  30. package/dist/index.d.mts +2 -1
  31. package/dist/index.mjs +1 -1
  32. package/dist/internal-reactivity.d.mts +2 -0
  33. package/dist/internal-reactivity.mjs +1 -0
  34. package/dist/internal-runtime.d.mts +2 -0
  35. package/dist/internal-runtime.mjs +1 -0
  36. package/dist/internal-template.d.mts +2 -0
  37. package/dist/internal-template.mjs +1 -0
  38. package/dist/router-BiJKkvy7.mjs +1 -0
  39. package/dist/router.mjs +1 -1
  40. package/dist/store-B9C0AuaO.mjs +1 -0
  41. package/dist/store.mjs +1 -1
  42. package/dist/template-CFhlojaH.mjs +1 -0
  43. package/dist/template-DE8e5dj_.d.mts +6 -0
  44. package/dist/templateRef-QWFf20h8.mjs +1 -0
  45. package/dist/toRefs-COgMIEoC.mjs +1 -0
  46. package/dist/vue-demi.d.mts +2 -1
  47. package/dist/vue-demi.mjs +1 -1
  48. package/dist/watch-6_s3_f8q.mjs +1 -0
  49. package/package.json +47 -2
  50. package/dist/dev/router-ByTtgUmi.mjs.map +0 -1
  51. package/dist/dev/src-B6draUWz.mjs.map +0 -1
  52. package/dist/dev/store-eNxaNZbj.mjs.map +0 -1
  53. package/dist/router-C1IObdgc.mjs +0 -1
  54. package/dist/src-DswUAmfF.mjs +0 -1
  55. package/dist/store-CNXa5BsN.mjs +0 -1
@@ -1,171 +1,12 @@
1
- import { A as track, C as effect, D as onScopeDispose, E as getCurrentScope, M as triggerEffects, N as nextTick, O as startBatch, P as queueJob, S as batch, T as endBatch, a as toValue, b as addMutationRecorder, c as isRaw, d as reactive, f as isShallowReactive, 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, u as markRaw, v as isObject$1, w as effectScope, x as removeMutationRecorder, y as toRaw } from "./ref-BoBfMdVt.mjs";
2
- import { i as computed, n as defineStore, r as createStore, t as storeToRefs } from "./store-eNxaNZbj.mjs";
3
- import { $ as onUnhandledRejection, A as setGlobalProvidedValue, B as onPageNotFound, C as releaseCurrentPageInstance, D as attachRuntimeProvideContext, E as attachRuntimeLayoutProvideContext, F as onHide, G as onResize, H as onPullDownRefresh, I as onLaunch, J as onShareAppMessage, K as onRouteDone, L as onLoad, M as onAttached, N as onDetached, O as ensureRuntimeAppProvides, P as onError, Q as onThemeChange, R as onMemoryWarning, S as getCurrentPageInstance, T as runInPageScrollHook, U as onReachBottom, V as onPageScroll, W as onReady, X as onShow, Y as onShareTimeline, Z as onTabItemTap, _ as provide, _t as readonly, at as getCurrentSetupContext, b as ensureMiniProgramGlobalPatched, ct as setCurrentSetupContext, dt as getCurrentMiniProgramRuntimeCapabilities, et as onUnload, ft as getMiniProgramGlobalObject, g as injectGlobal, gt as isReadonly, h as inject, ht as isProxy, it as getCurrentInstance, j as onAddToFavorites, k as setRuntimeAppProvidedValue, lt as getCurrentMiniProgramHostConfig, m as hasInjectionContext, mt as supportsCurrentMiniProgramRuntimeCapability, n as useNativeRouter, nt as callHookList, ot as pushHook, pt as getScopedSlotHostGlobalObject, q as onSaveExitState, rt as callHookReturn, st as setCurrentInstance, t as useNativePageRouter, tt as assertInSetup, ut as getCurrentMiniProgramPages, v as provideGlobal, vt as shallowReadonly, w as resolvePageOptions, x as ensurePageShareMenus, y as bindCurrentPageInstance, z as onMoved } from "./router-ByTtgUmi.mjs";
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-BoBfMdVt.mjs";
2
+ import { t as computed } from "./computed-DBCuiNOA.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-CoF39as1.mjs";
4
+ import { l as shallowRef, t as watch } from "./watch-CqXsBjp3.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-C_io1Bpp.mjs";
4
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";
5
7
  import { resolveMiniProgramPageKeys } from "@weapp-core/shared";
6
8
  import { wpi } from "@wevu/api";
7
9
 
8
- //#region \0rolldown/runtime.js
9
- var __defProp = Object.defineProperty;
10
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
11
- var __getOwnPropNames = Object.getOwnPropertyNames;
12
- var __hasOwnProp = Object.prototype.hasOwnProperty;
13
- var __exportAll = (all, no_symbols) => {
14
- let target = {};
15
- for (var name in all) {
16
- __defProp(target, name, {
17
- get: all[name],
18
- enumerable: true
19
- });
20
- }
21
- if (!no_symbols) {
22
- __defProp(target, Symbol.toStringTag, { value: "Module" });
23
- }
24
- return target;
25
- };
26
- var __copyProps = (to, from, except, desc) => {
27
- if (from && typeof from === "object" || typeof from === "function") {
28
- for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
29
- key = keys[i];
30
- if (!__hasOwnProp.call(to, key) && key !== except) {
31
- __defProp(to, key, {
32
- get: ((k) => from[k]).bind(null, key),
33
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
34
- });
35
- }
36
- }
37
- }
38
- return to;
39
- };
40
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
41
-
42
- //#endregion
43
- //#region src/reactivity/shallowRef.ts
44
- /**
45
- * 创建一个“浅层” ref:它只在 .value 被整体替换时触发依赖,不会对内部对象做深层响应式处理。
46
- *
47
- * @param value 初始值
48
- * @param defaultValue 传递给 customRef 的默认值,可用于兜底
49
- * @returns 仅跟踪自身 .value 变更的浅层 ref
50
- *
51
- * @example
52
- * ```ts
53
- * const state = shallowRef({ count: 0 })
54
- * state.value = { count: 1 } // 会触发依赖
55
- * state.value.count++ // 不会触发依赖(内部属性未被深度代理)
56
- * ```
57
- */
58
- function shallowRef(value, defaultValue) {
59
- return customRef((track, trigger) => ({
60
- get() {
61
- track();
62
- return value;
63
- },
64
- set(newValue) {
65
- if (Object.is(value, newValue)) return;
66
- value = newValue;
67
- trigger();
68
- }
69
- }), defaultValue);
70
- }
71
- /**
72
- * 判断传入值是否为浅层 ref。
73
- *
74
- * @param r 待判断的值
75
- * @returns 若为浅层 ref 则返回 true
76
- */
77
- function isShallowRef(r) {
78
- return isRef(r) && typeof r.value !== "function";
79
- }
80
- /**
81
- * 主动触发一次浅层 ref 的更新(无需深度比较)。
82
- *
83
- * @param ref 需要触发的 ref
84
- */
85
- function triggerRef(ref) {
86
- if (isRef(ref)) {
87
- const dep = ref.dep;
88
- if (dep) {
89
- triggerEffects(dep);
90
- return;
91
- }
92
- ref.value = ref.value;
93
- }
94
- }
95
-
96
- //#endregion
97
- //#region src/reactivity/toRefs.ts
98
- function toRef(object, key, defaultValue) {
99
- const value = object[key];
100
- if (isRef(value)) return value;
101
- return customRef((track, trigger) => ({
102
- get() {
103
- track();
104
- return object[key];
105
- },
106
- set(newValue) {
107
- object[key] = newValue;
108
- trigger();
109
- }
110
- }), defaultValue);
111
- }
112
- /**
113
- * 将一个响应式对象转换成“同结构的普通对象”,其中每个字段都是指向原对象对应属性的 ref。
114
- *
115
- * @param object 待转换的响应式对象
116
- * @returns 包含若干 ref 的普通对象
117
- *
118
- * @example
119
- * ```ts
120
- * const state = reactive({ foo: 1, bar: 2 })
121
- * const stateAsRefs = toRefs(state)
122
- *
123
- * stateAsRefs.foo.value++ // 2
124
- * state.foo // 2
125
- * ```
126
- */
127
- function toRefs(object) {
128
- if (!isReactive(object)) console.warn("toRefs() 需要响应式对象,但收到的是普通对象。");
129
- const result = Array.isArray(object) ? Array.from({ length: object.length }) : {};
130
- for (const key in object) result[key] = toRef(object, key);
131
- return result;
132
- }
133
-
134
- //#endregion
135
- //#region src/reactivity/traverse.ts
136
- /**
137
- * 深度遍历工具(框架内部依赖收集使用)。
138
- * @internal
139
- */
140
- function traverse(value, depth = Infinity, seen = /* @__PURE__ */ new Map()) {
141
- if (depth <= 0 || !isObject$1(value)) return value;
142
- if (isRef(value)) {
143
- traverse(value.value, depth - 1, seen);
144
- return value;
145
- }
146
- if (value["__r_skip"]) return value;
147
- const existingDepth = seen.get(value);
148
- if (existingDepth !== void 0 && existingDepth >= depth) return value;
149
- seen.set(value, depth);
150
- const nextDepth = depth - 1;
151
- if (Array.isArray(value)) {
152
- value.forEach((item) => traverse(item, nextDepth, seen));
153
- return value;
154
- }
155
- if (value instanceof Map) {
156
- value.forEach((item) => traverse(item, nextDepth, seen));
157
- return value;
158
- }
159
- if (value instanceof Set) {
160
- value.forEach((item) => traverse(item, nextDepth, seen));
161
- return value;
162
- }
163
- const target = isReactive(value) && depth !== Infinity ? toRaw(value) : value;
164
- for (const key in target) traverse(value[key], nextDepth, seen);
165
- return value;
166
- }
167
-
168
- //#endregion
169
10
  //#region src/runtime/hooks/vue.ts
170
11
  /**
171
12
  * Vue 3 对齐:组件/页面已挂载,映射小程序 onReady
@@ -241,244 +82,9 @@ function callUpdateHooks(target, phase) {
241
82
  callHookList(target, phase === "before" ? WEVU_ON_BEFORE_UPDATE_HOOK : WEVU_ON_UPDATED_HOOK);
242
83
  }
243
84
 
244
- //#endregion
245
- //#region src/reactivity/watch/types.ts
246
- let __deepWatchStrategy = "version";
247
- /**
248
- * 设置深度 watch 内部策略(测试/框架内部使用)。
249
- * @internal
250
- */
251
- function setDeepWatchStrategy(strategy) {
252
- __deepWatchStrategy = strategy;
253
- }
254
- /**
255
- * 获取深度 watch 内部策略(测试/框架内部使用)。
256
- * @internal
257
- */
258
- function getDeepWatchStrategy() {
259
- return __deepWatchStrategy;
260
- }
261
-
262
- //#endregion
263
- //#region src/reactivity/watch/helpers.ts
264
- function resolveWatchSource(item) {
265
- if (typeof item === "function") return item();
266
- if (isRef(item)) return item.value;
267
- if (isReactive(item)) return item;
268
- throw new Error("无效的 watch 源");
269
- }
270
- function createWatchGetter(source) {
271
- const isReactiveSource = isReactive(source);
272
- const isMultiSource = Array.isArray(source) && !isReactiveSource;
273
- let getter;
274
- if (isMultiSource) {
275
- const sources = source;
276
- getter = () => sources.map((item) => resolveWatchSource(item));
277
- } else if (typeof source === "function") getter = source;
278
- else if (isRef(source)) getter = () => source.value;
279
- else if (isReactiveSource) getter = () => source;
280
- else throw new Error("无效的 watch 源");
281
- return {
282
- getter,
283
- isMultiSource,
284
- isReactiveSource
285
- };
286
- }
287
- function applyDeepWatchGetter(getter, source, isMultiSource, isReactiveSource, deepOption) {
288
- const deepDefault = isMultiSource ? source.some((item) => isReactive(item)) : isReactiveSource;
289
- const deep = deepOption !== null && deepOption !== void 0 ? deepOption : deepDefault;
290
- if (!(deep === true || typeof deep === "number")) return getter;
291
- const depth = typeof deep === "number" ? deep : deep ? Infinity : 0;
292
- return () => {
293
- const value = getter();
294
- const strategy = getDeepWatchStrategy();
295
- if (isMultiSource && Array.isArray(value)) return value.map((item) => {
296
- if (strategy === "version" && isReactive(item)) {
297
- touchReactive(item);
298
- return item;
299
- }
300
- return traverse(item, depth);
301
- });
302
- if (strategy === "version" && isReactive(value)) {
303
- touchReactive(value);
304
- return value;
305
- }
306
- return traverse(value, depth);
307
- };
308
- }
309
- function dispatchScheduledJob(job, flush, isFirstRun, scheduler) {
310
- if (scheduler) {
311
- scheduler(job, isFirstRun);
312
- return;
313
- }
314
- if (flush === "sync") {
315
- job();
316
- return;
317
- }
318
- if (flush === "post") {
319
- nextTick(() => queueJob(job));
320
- return;
321
- }
322
- if (isFirstRun) job();
323
- else queueJob(job);
324
- }
325
-
326
- //#endregion
327
- //#region src/reactivity/watch.ts
328
- function watch(source, cb, options = {}) {
329
- var _options$flush;
330
- const ownerInstance = getCurrentInstance();
331
- const watchGetterContext = createWatchGetter(source);
332
- const getter = applyDeepWatchGetter(watchGetterContext.getter, source, watchGetterContext.isMultiSource, watchGetterContext.isReactiveSource, options.deep);
333
- let cleanup;
334
- const onCleanup = (fn) => {
335
- cleanup = fn;
336
- };
337
- let oldValue;
338
- let runner;
339
- let paused = false;
340
- let pauseToken = 0;
341
- let scheduledToken = pauseToken;
342
- let stopHandle;
343
- const cbWithOnce = options.once ? (value, oldVal, cleanupRegister) => {
344
- cb(value, oldVal, cleanupRegister);
345
- stopHandle();
346
- } : cb;
347
- const flush = (_options$flush = options.flush) !== null && _options$flush !== void 0 ? _options$flush : "pre";
348
- const runJob = (token) => {
349
- if (!runner.active || paused || token !== pauseToken) return;
350
- const newValue = runner();
351
- cleanup === null || cleanup === void 0 || cleanup();
352
- const previousInstance = getCurrentInstance();
353
- setCurrentInstance(ownerInstance);
354
- try {
355
- cbWithOnce(newValue, oldValue, onCleanup);
356
- } finally {
357
- setCurrentInstance(previousInstance);
358
- }
359
- oldValue = newValue;
360
- };
361
- const scheduledJob = () => runJob(scheduledToken);
362
- const scheduleJob = (isFirstRun) => {
363
- scheduledToken = pauseToken;
364
- dispatchScheduledJob(scheduledJob, flush, isFirstRun, options.scheduler);
365
- };
366
- runner = effect(() => getter(), {
367
- scheduler: () => {
368
- if (paused) return;
369
- scheduleJob(false);
370
- },
371
- lazy: true
372
- });
373
- const doStop = () => {
374
- cleanup === null || cleanup === void 0 || cleanup();
375
- cleanup = void 0;
376
- stop(runner);
377
- };
378
- stopHandle = doStop;
379
- stopHandle.stop = doStop;
380
- stopHandle.pause = () => {
381
- if (!paused) {
382
- paused = true;
383
- pauseToken += 1;
384
- }
385
- };
386
- stopHandle.resume = () => {
387
- if (!paused || !runner.active) return;
388
- paused = false;
389
- oldValue = runner();
390
- };
391
- if (options.immediate) runJob(pauseToken);
392
- else oldValue = runner();
393
- onScopeDispose(stopHandle);
394
- return stopHandle;
395
- }
396
- /**
397
- * watchEffect 注册一个响应式副作用,可选清理函数。
398
- * 副作用会立即执行,并在依赖变化时重新运行。
399
- */
400
- function watchEffect(effectFn, options = {}) {
401
- var _options$flush2;
402
- const ownerInstance = getCurrentInstance();
403
- let cleanup;
404
- const onCleanup = (fn) => {
405
- cleanup = fn;
406
- };
407
- let runner;
408
- let paused = false;
409
- let pauseToken = 0;
410
- let scheduledToken = pauseToken;
411
- const flush = (_options$flush2 = options.flush) !== null && _options$flush2 !== void 0 ? _options$flush2 : "pre";
412
- const runJob = (token) => {
413
- if (!runner.active || paused || token !== pauseToken) return;
414
- runner();
415
- };
416
- const scheduledJob = () => runJob(scheduledToken);
417
- const scheduleJob = (isFirstRun) => {
418
- scheduledToken = pauseToken;
419
- dispatchScheduledJob(scheduledJob, flush, isFirstRun);
420
- };
421
- runner = effect(() => {
422
- cleanup === null || cleanup === void 0 || cleanup();
423
- cleanup = void 0;
424
- const previousInstance = getCurrentInstance();
425
- setCurrentInstance(ownerInstance);
426
- try {
427
- effectFn(onCleanup);
428
- } finally {
429
- setCurrentInstance(previousInstance);
430
- }
431
- }, {
432
- lazy: true,
433
- scheduler: () => {
434
- if (paused) return;
435
- scheduleJob(false);
436
- }
437
- });
438
- scheduleJob(true);
439
- const doStop = () => {
440
- cleanup === null || cleanup === void 0 || cleanup();
441
- cleanup = void 0;
442
- stop(runner);
443
- };
444
- const stopHandle = doStop;
445
- stopHandle.stop = doStop;
446
- stopHandle.pause = () => {
447
- if (!paused) {
448
- paused = true;
449
- pauseToken += 1;
450
- }
451
- };
452
- stopHandle.resume = () => {
453
- if (!paused || !runner.active) return;
454
- paused = false;
455
- scheduleJob(true);
456
- };
457
- onScopeDispose(stopHandle);
458
- return stopHandle;
459
- }
460
- /**
461
- * 以后置刷新的方式运行副作用,与 Vue 的 `watchPostEffect()` 兼容。
462
- */
463
- function watchPostEffect(effectFn, options = {}) {
464
- return watchEffect(effectFn, {
465
- ...options,
466
- flush: "post"
467
- });
468
- }
469
- /**
470
- * 以同步刷新的方式运行副作用,与 Vue 的 `watchSyncEffect()` 兼容。
471
- */
472
- function watchSyncEffect(effectFn, options = {}) {
473
- return watchEffect(effectFn, {
474
- ...options,
475
- flush: "sync"
476
- });
477
- }
478
-
479
85
  //#endregion
480
86
  //#region package.json
481
- var version$1 = "6.16.30";
87
+ var version$1 = "6.16.32";
482
88
 
483
89
  //#endregion
484
90
  //#region src/version.ts
@@ -967,7 +573,7 @@ function isPlainObject$1(value) {
967
573
  const proto = Object.getPrototypeOf(value);
968
574
  return proto === null || proto === Object.prototype;
969
575
  }
970
- function toPlainInternal(value, seen, visiting, cache, depth, budget, includeFunctions, functionPathSet, currentPath) {
576
+ function toPlainInternal(value, seen, visiting, cache, cacheEligibility, depth, budget, includeFunctions, functionPathSet, currentPath) {
971
577
  const unwrapped = unref(value);
972
578
  if (typeof unwrapped === "bigint") {
973
579
  const asNumber = Number(unwrapped);
@@ -977,8 +583,15 @@ function toPlainInternal(value, seen, visiting, cache, depth, budget, includeFun
977
583
  if (typeof unwrapped === "function") return includeFunctions || (functionPathSet === null || functionPathSet === void 0 ? void 0 : functionPathSet.has(currentPath)) ? unwrapped : void 0;
978
584
  if (typeof unwrapped !== "object" || unwrapped === null) return unwrapped;
979
585
  if (isNoSetData(unwrapped)) return;
980
- const raw = isReactive(unwrapped) ? toRaw(unwrapped) : unwrapped;
981
- const cacheRef = Boolean(cache) && (isReactive(unwrapped) || !hasTrackableSetupBinding(raw)) ? cache : void 0;
586
+ const reactiveValue = isReactive(unwrapped);
587
+ const raw = reactiveValue ? toRaw(unwrapped) : unwrapped;
588
+ let canUseCache = Boolean(cache) && reactiveValue;
589
+ if (cache && !canUseCache) {
590
+ const cachedEligibility = cacheEligibility === null || cacheEligibility === void 0 ? void 0 : cacheEligibility.get(raw);
591
+ canUseCache = cachedEligibility !== null && cachedEligibility !== void 0 ? cachedEligibility : !hasTrackableSetupBinding(raw);
592
+ cacheEligibility === null || cacheEligibility === void 0 || cacheEligibility.set(raw, canUseCache);
593
+ }
594
+ const cacheRef = canUseCache ? cache : void 0;
982
595
  if (depth <= 0 || budget.keys <= 0) return raw;
983
596
  if (cacheRef) {
984
597
  const version = getReactiveVersion(raw);
@@ -994,7 +607,7 @@ function toPlainInternal(value, seen, visiting, cache, depth, budget, includeFun
994
607
  seen.set(raw, entries);
995
608
  visiting.add(raw);
996
609
  raw.forEach((mapValue, mapKey) => {
997
- entries.push([toPlainInternal(mapKey, seen, visiting, void 0, Number.POSITIVE_INFINITY, { keys: Number.POSITIVE_INFINITY }, includeFunctions, void 0, ""), toPlainInternal(mapValue, seen, visiting, void 0, Number.POSITIVE_INFINITY, { keys: Number.POSITIVE_INFINITY }, includeFunctions, void 0, "")]);
610
+ entries.push([toPlainInternal(mapKey, seen, visiting, void 0, void 0, Number.POSITIVE_INFINITY, { keys: Number.POSITIVE_INFINITY }, includeFunctions, void 0, ""), toPlainInternal(mapValue, seen, visiting, void 0, void 0, Number.POSITIVE_INFINITY, { keys: Number.POSITIVE_INFINITY }, includeFunctions, void 0, "")]);
998
611
  });
999
612
  visiting.delete(raw);
1000
613
  return entries;
@@ -1004,7 +617,7 @@ function toPlainInternal(value, seen, visiting, cache, depth, budget, includeFun
1004
617
  seen.set(raw, values);
1005
618
  visiting.add(raw);
1006
619
  raw.forEach((setValue) => {
1007
- values.push(toPlainInternal(setValue, seen, visiting, void 0, Number.POSITIVE_INFINITY, { keys: Number.POSITIVE_INFINITY }, includeFunctions, void 0, ""));
620
+ values.push(toPlainInternal(setValue, seen, visiting, void 0, void 0, Number.POSITIVE_INFINITY, { keys: Number.POSITIVE_INFINITY }, includeFunctions, void 0, ""));
1008
621
  });
1009
622
  visiting.delete(raw);
1010
623
  return values;
@@ -1016,7 +629,7 @@ function toPlainInternal(value, seen, visiting, cache, depth, budget, includeFun
1016
629
  if (typeof view[Symbol.iterator] === "function") {
1017
630
  const values = [...view];
1018
631
  seen.set(raw, values);
1019
- return values.map((item) => toPlainInternal(item, seen, visiting, void 0, Number.POSITIVE_INFINITY, { keys: Number.POSITIVE_INFINITY }, includeFunctions, void 0, ""));
632
+ return values.map((item) => toPlainInternal(item, seen, visiting, void 0, void 0, Number.POSITIVE_INFINITY, { keys: Number.POSITIVE_INFINITY }, includeFunctions, void 0, ""));
1020
633
  }
1021
634
  const bytes = [...new Uint8Array(view.buffer, view.byteOffset, view.byteLength)];
1022
635
  seen.set(raw, bytes);
@@ -1034,7 +647,7 @@ function toPlainInternal(value, seen, visiting, cache, depth, budget, includeFun
1034
647
  const nextDepth = depth - 1;
1035
648
  for (let index = 0; index < raw.length; index += 1) {
1036
649
  const childPath = currentPath ? `${currentPath}.${index}` : String(index);
1037
- const next = toPlainInternal(raw[index], seen, visiting, cache, nextDepth, budget, includeFunctions, functionPathSet, childPath);
650
+ const next = toPlainInternal(raw[index], seen, visiting, cache, cacheEligibility, nextDepth, budget, includeFunctions, functionPathSet, childPath);
1038
651
  arr[index] = next === void 0 ? null : next;
1039
652
  }
1040
653
  visiting.delete(raw);
@@ -1052,7 +665,7 @@ function toPlainInternal(value, seen, visiting, cache, depth, budget, includeFun
1052
665
  budget.keys -= 1;
1053
666
  if (budget.keys <= 0) break;
1054
667
  const childPath = currentPath ? `${currentPath}.${key}` : key;
1055
- const next = toPlainInternal(raw[key], seen, visiting, cache, nextDepth, budget, includeFunctions, functionPathSet, childPath);
668
+ const next = toPlainInternal(raw[key], seen, visiting, cache, cacheEligibility, nextDepth, budget, includeFunctions, functionPathSet, childPath);
1056
669
  if (next !== void 0) output[key] = next;
1057
670
  }
1058
671
  visiting.delete(raw);
@@ -1067,7 +680,7 @@ function toPlain(value, seen = /* @__PURE__ */ new WeakMap(), options) {
1067
680
  const depth = (_options$_depth = options === null || options === void 0 ? void 0 : options._depth) !== null && _options$_depth !== void 0 ? _options$_depth : typeof (options === null || options === void 0 ? void 0 : options.maxDepth) === "number" ? Math.max(0, Math.floor(options.maxDepth)) : Number.POSITIVE_INFINITY;
1068
681
  const budget = (_options$_budget = options === null || options === void 0 ? void 0 : options._budget) !== null && _options$_budget !== void 0 ? _options$_budget : typeof (options === null || options === void 0 ? void 0 : options.maxKeys) === "number" ? { keys: Math.max(0, Math.floor(options.maxKeys)) } : { keys: Number.POSITIVE_INFINITY };
1069
682
  const functionPathSet = Array.isArray(options === null || options === void 0 ? void 0 : options.functionPaths) && options.functionPaths.length ? new Set(options.functionPaths) : void 0;
1070
- return toPlainInternal(value, seen, /* @__PURE__ */ new WeakSet(), options === null || options === void 0 ? void 0 : options.cache, depth, budget, Boolean(options === null || options === void 0 ? void 0 : options.includeFunctions), functionPathSet, (_options$_path = options === null || options === void 0 ? void 0 : options._path) !== null && _options$_path !== void 0 ? _options$_path : "");
683
+ return toPlainInternal(value, seen, /* @__PURE__ */ new WeakSet(), options === null || options === void 0 ? void 0 : options.cache, options === null || options === void 0 ? void 0 : options.cacheEligibility, depth, budget, Boolean(options === null || options === void 0 ? void 0 : options.includeFunctions), functionPathSet, (_options$_path = options === null || options === void 0 ? void 0 : options._path) !== null && _options$_path !== void 0 ? _options$_path : "");
1071
684
  }
1072
685
  function isArrayEqual(a, b, compare) {
1073
686
  if (a.length !== b.length) return false;
@@ -1357,7 +970,7 @@ function applySnapshotUpdate(snapshot, path, value, op, options) {
1357
970
  else current[leaf] = cloneValue ? cloneSnapshotValue(value) : value;
1358
971
  }
1359
972
  function collectSnapshot(options) {
1360
- const { state, setupState, computedRefs, includeComputed, shouldIncludeKey, plainCache, toPlainMaxDepth, toPlainMaxKeys, includeFunctions = false, functionPaths = [] } = options;
973
+ const { state, setupState, computedRefs, includeComputed, shouldIncludeKey, plainCache, plainCacheEligibility, toPlainMaxDepth, toPlainMaxKeys, includeFunctions = false, functionPaths = [] } = options;
1361
974
  const seen = /* @__PURE__ */ new WeakMap();
1362
975
  const out = {};
1363
976
  const budget = Number.isFinite(toPlainMaxKeys) ? { keys: toPlainMaxKeys } : void 0;
@@ -1370,6 +983,7 @@ function collectSnapshot(options) {
1370
983
  if (!shouldIncludeKey(key)) continue;
1371
984
  out[key] = toPlain(rawState[key], seen, {
1372
985
  cache: plainCache,
986
+ cacheEligibility: plainCacheEligibility,
1373
987
  maxDepth: toPlainMaxDepth,
1374
988
  includeFunctions,
1375
989
  functionPaths,
@@ -1381,6 +995,7 @@ function collectSnapshot(options) {
1381
995
  if (!shouldIncludeKey(key)) continue;
1382
996
  out[key] = toPlain(rawSetupState[key], seen, {
1383
997
  cache: plainCache,
998
+ cacheEligibility: plainCacheEligibility,
1384
999
  maxDepth: toPlainMaxDepth,
1385
1000
  includeFunctions,
1386
1001
  functionPaths,
@@ -1392,6 +1007,7 @@ function collectSnapshot(options) {
1392
1007
  if (!shouldIncludeKey(key)) continue;
1393
1008
  out[key] = toPlain(computedRefs[key].value, seen, {
1394
1009
  cache: plainCache,
1010
+ cacheEligibility: plainCacheEligibility,
1395
1011
  maxDepth: toPlainMaxDepth,
1396
1012
  includeFunctions,
1397
1013
  functionPaths,
@@ -1405,7 +1021,7 @@ function collectSnapshot(options) {
1405
1021
  //#endregion
1406
1022
  //#region src/runtime/app/setData/patchScheduler.ts
1407
1023
  function runPatchUpdate(options) {
1408
- const { state, computedRefs, dirtyComputedKeys, includeComputed, computedCompare, computedCompareMaxDepth, computedCompareMaxKeys, currentAdapter, shouldIncludeKey, maxPatchKeys, maxPayloadBytes, mergeSiblingThreshold, mergeSiblingMaxInflationRatio, mergeSiblingMaxParentBytes, mergeSiblingSkipArray, elevateTopKeyThreshold, toPlainMaxDepth, toPlainMaxKeys, includeFunctions = false, functionPaths, plainCache, pendingPatches, fallbackTopKeys, latestSnapshot, latestComputedSnapshot, needsFullSnapshot, emitDebug, runDiffUpdate } = options;
1024
+ const { state, computedRefs, dirtyComputedKeys, includeComputed, computedCompare, computedCompareMaxDepth, computedCompareMaxKeys, currentAdapter, shouldIncludeKey, maxPatchKeys, maxPayloadBytes, mergeSiblingThreshold, mergeSiblingMaxInflationRatio, mergeSiblingMaxParentBytes, mergeSiblingSkipArray, elevateTopKeyThreshold, toPlainMaxDepth, toPlainMaxKeys, includeFunctions = false, functionPaths, plainCache, plainCacheEligibility, pendingPatches, fallbackTopKeys, latestSnapshot, latestComputedSnapshot, needsFullSnapshot, emitDebug, runDiffUpdate } = options;
1409
1025
  if (pendingPatches.size > maxPatchKeys) {
1410
1026
  needsFullSnapshot.value = true;
1411
1027
  const pendingCount = pendingPatches.size;
@@ -1452,6 +1068,7 @@ function runPatchUpdate(options) {
1452
1068
  if (plainByPath.has(path)) return plainByPath.get(path);
1453
1069
  const value = normalizeSetDataValue(toPlain(getStateValueByPath(path), seen, {
1454
1070
  cache: plainCache,
1071
+ cacheEligibility: plainCacheEligibility,
1455
1072
  maxDepth: toPlainMaxDepth,
1456
1073
  maxKeys: toPlainMaxKeys,
1457
1074
  includeFunctions,
@@ -1489,6 +1106,7 @@ function runPatchUpdate(options) {
1489
1106
  if (!shouldIncludeKey(key)) continue;
1490
1107
  const nextValue = toPlain(computedRefs[key].value, seen, {
1491
1108
  cache: plainCache,
1109
+ cacheEligibility: plainCacheEligibility,
1492
1110
  maxDepth: toPlainMaxDepth,
1493
1111
  maxKeys: toPlainMaxKeys,
1494
1112
  includeFunctions,
@@ -1559,6 +1177,7 @@ function runPatchUpdate(options) {
1559
1177
  function createSetDataScheduler(options) {
1560
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;
1561
1179
  const plainCache = /* @__PURE__ */ new WeakMap();
1180
+ const plainCacheEligibility = /* @__PURE__ */ new WeakMap();
1562
1181
  let latestSnapshot = {};
1563
1182
  let latestComputedSnapshot = Object.create(null);
1564
1183
  const latestStateTokens = Object.create(null);
@@ -1589,6 +1208,7 @@ function createSetDataScheduler(options) {
1589
1208
  const candidate = isRef(value) ? value.value : value;
1590
1209
  if (candidate == null || typeof candidate !== "object") return candidate;
1591
1210
  if (!isReactive(candidate) && hasTrackableSetupBinding(candidate)) return { snapshot: toPlain(candidate, /* @__PURE__ */ new WeakMap(), {
1211
+ cacheEligibility: plainCacheEligibility,
1592
1212
  maxDepth: toPlainMaxDepth,
1593
1213
  maxKeys: toPlainMaxKeys,
1594
1214
  includeFunctions,
@@ -1656,6 +1276,7 @@ function createSetDataScheduler(options) {
1656
1276
  includeComputed,
1657
1277
  shouldIncludeKey: shouldIncludeSnapshotKey,
1658
1278
  plainCache,
1279
+ plainCacheEligibility,
1659
1280
  toPlainMaxDepth,
1660
1281
  toPlainMaxKeys,
1661
1282
  includeFunctions,
@@ -1679,6 +1300,7 @@ function createSetDataScheduler(options) {
1679
1300
  if (previousToken && token && typeof previousToken === "object" && typeof token === "object" && hasOwn(previousToken, "raw") && hasOwn(token, "raw") && Array.isArray(previousToken.raw) && Array.isArray(token.raw) && previousToken.raw !== token.raw) replacedTopLevelKeys.add(key);
1680
1301
  if (!isSameToken(previousToken, token) || !hasOwn(latestSnapshot, key)) nextSnapshot[key] = toPlain(source[key], seen, {
1681
1302
  cache: plainCache,
1303
+ cacheEligibility: plainCacheEligibility,
1682
1304
  maxDepth: toPlainMaxDepth,
1683
1305
  maxKeys: toPlainMaxKeys,
1684
1306
  includeFunctions,
@@ -1705,6 +1327,7 @@ function createSetDataScheduler(options) {
1705
1327
  const token = createValueToken(value);
1706
1328
  if (!isSameToken(latestComputedTokens[key], token) || !hasOwn(latestSnapshot, key)) nextSnapshot[key] = toPlain(value, seen, {
1707
1329
  cache: plainCache,
1330
+ cacheEligibility: plainCacheEligibility,
1708
1331
  maxDepth: toPlainMaxDepth,
1709
1332
  maxKeys: toPlainMaxKeys,
1710
1333
  includeFunctions,
@@ -1806,6 +1429,7 @@ function createSetDataScheduler(options) {
1806
1429
  includeFunctions,
1807
1430
  functionPaths,
1808
1431
  plainCache,
1432
+ plainCacheEligibility,
1809
1433
  pendingPatches,
1810
1434
  fallbackTopKeys,
1811
1435
  latestSnapshot,
@@ -2454,6 +2078,17 @@ function resolveOwnerSnapshot(runtime) {
2454
2078
  if (typeof fastSnapshot === "function") return fastSnapshot();
2455
2079
  return typeof runtime.snapshot === "function" ? runtime.snapshot() : {};
2456
2080
  }
2081
+ function shouldIncludeOwnerSnapshotProp(runtime, key) {
2082
+ const snapshotOmitKeys = runtime[WEVU_PROPS_DERIVED_KEYS_KEY];
2083
+ return !(snapshotOmitKeys instanceof Set && snapshotOmitKeys.has(key));
2084
+ }
2085
+ function mergeOwnerSnapshotProps(snapshot, propsSource, runtime) {
2086
+ if (!propsSource || typeof propsSource !== "object") return;
2087
+ for (const [key, value] of Object.entries(propsSource)) {
2088
+ if (!shouldIncludeOwnerSnapshotProp(runtime, key)) continue;
2089
+ snapshot[key] = value;
2090
+ }
2091
+ }
2457
2092
  function attachOwnerSnapshot(target, runtime, ownerId) {
2458
2093
  var _WEVU_PROPS_KEY;
2459
2094
  try {
@@ -2467,8 +2102,7 @@ function attachOwnerSnapshot(target, runtime, ownerId) {
2467
2102
  if (data && typeof data === "object") data[WEVU_SLOT_OWNER_ID_KEY] = ownerId;
2468
2103
  } catch (_unused4) {}
2469
2104
  const snapshot = resolveOwnerSnapshot(runtime);
2470
- const propsSource = (_WEVU_PROPS_KEY = target[WEVU_PROPS_KEY]) !== null && _WEVU_PROPS_KEY !== void 0 ? _WEVU_PROPS_KEY : target.properties;
2471
- if (propsSource && typeof propsSource === "object") for (const [key, value] of Object.entries(propsSource)) snapshot[key] = value;
2105
+ mergeOwnerSnapshotProps(snapshot, (_WEVU_PROPS_KEY = target[WEVU_PROPS_KEY]) !== null && _WEVU_PROPS_KEY !== void 0 ? _WEVU_PROPS_KEY : target.properties, runtime);
2472
2106
  updateOwnerSnapshot(ownerId, snapshot, runtime.proxy);
2473
2107
  }
2474
2108
 
@@ -3627,8 +3261,7 @@ function mountRuntimeInstance(target, runtimeApp, watchMap, setup, options) {
3627
3261
  var _WEVU_PROPS_KEY;
3628
3262
  if (!runtimeRef) return;
3629
3263
  const snapshot = resolveOwnerSnapshot(runtimeRef);
3630
- const propsSource = (_WEVU_PROPS_KEY = target[WEVU_PROPS_KEY]) !== null && _WEVU_PROPS_KEY !== void 0 ? _WEVU_PROPS_KEY : target.properties;
3631
- if (propsSource && typeof propsSource === "object") for (const [key, value] of Object.entries(propsSource)) snapshot[key] = value;
3264
+ mergeOwnerSnapshotProps(snapshot, (_WEVU_PROPS_KEY = target[WEVU_PROPS_KEY]) !== null && _WEVU_PROPS_KEY !== void 0 ? _WEVU_PROPS_KEY : target.properties, runtimeRef);
3632
3265
  updateOwnerSnapshot(ownerId, snapshot, runtimeRef.proxy);
3633
3266
  };
3634
3267
  const baseMountAdapter = {
@@ -3710,7 +3343,8 @@ function mountRuntimeInstance(target, runtimeApp, watchMap, setup, options) {
3710
3343
  const internalRuntimeFields = {
3711
3344
  __wevu_flushSetupSnapshotSync: runtime.__wevu_flushSetupSnapshotSync,
3712
3345
  __wevu_touchSetupMethodsVersion: runtime.__wevu_touchSetupMethodsVersion,
3713
- __wevu_trackSetupReactiveKey: runtime.__wevu_trackSetupReactiveKey
3346
+ __wevu_trackSetupReactiveKey: runtime.__wevu_trackSetupReactiveKey,
3347
+ [WEVU_PROPS_DERIVED_KEYS_KEY]: runtime[WEVU_PROPS_DERIVED_KEYS_KEY]
3714
3348
  };
3715
3349
  for (const [key, value] of Object.entries(internalRuntimeFields)) {
3716
3350
  if (!value) continue;
@@ -4417,8 +4051,7 @@ function refreshOwnerSnapshotFromInstance(instance) {
4417
4051
  const ownerId = instance[WEVU_SLOT_OWNER_ID_KEY];
4418
4052
  if (!runtime || !ownerId || typeof runtime.snapshot !== "function") return;
4419
4053
  const snapshot = runtime.snapshot();
4420
- const propsSource = (_WEVU_PROPS_KEY = instance[WEVU_PROPS_KEY]) !== null && _WEVU_PROPS_KEY !== void 0 ? _WEVU_PROPS_KEY : instance.properties;
4421
- if (propsSource && typeof propsSource === "object") for (const [key, value] of Object.entries(propsSource)) snapshot[key] = value;
4054
+ mergeOwnerSnapshotProps(snapshot, (_WEVU_PROPS_KEY = instance[WEVU_PROPS_KEY]) !== null && _WEVU_PROPS_KEY !== void 0 ? _WEVU_PROPS_KEY : instance.properties, runtime);
4422
4055
  updateOwnerSnapshot(ownerId, snapshot, runtime.proxy);
4423
4056
  }
4424
4057
 
@@ -4432,6 +4065,11 @@ function createPropsSync(options) {
4432
4065
  const aliasEntries = Object.entries(propsAliases !== null && propsAliases !== void 0 ? propsAliases : {}).filter(([alias, propName]) => alias && propName);
4433
4066
  const aliasKeySet = new Set(aliasEntries.map(([alias]) => alias));
4434
4067
  const directPropsDerivedKeys = [...propsDerivedKeySet].filter((key) => propKeySet.has(key) && !aliasKeySet.has(key));
4068
+ const templateRuntimePropKeys = new Set([
4069
+ WEVU_SLOT_NAMES_PROP,
4070
+ WEVU_SLOT_OWNER_ID_PROP,
4071
+ WEVU_SLOT_SCOPE_KEY
4072
+ ]);
4435
4073
  const syncedAliases = /* @__PURE__ */ new WeakMap();
4436
4074
  const isInternalAttrKey = (key) => key.startsWith("__wv_");
4437
4075
  const updateSnapshotOmitKeys = (instance) => {
@@ -4445,6 +4083,15 @@ function createPropsSync(options) {
4445
4083
  target[key] = value;
4446
4084
  return true;
4447
4085
  };
4086
+ const syncTemplateRuntimeProp = (instance, key, value) => {
4087
+ var _wevu;
4088
+ if (!templateRuntimePropKeys.has(key)) return;
4089
+ const runtimeState = (_wevu = instance.__wevu) === null || _wevu === void 0 ? void 0 : _wevu.state;
4090
+ if (!runtimeState || typeof runtimeState !== "object") return;
4091
+ try {
4092
+ setIfChanged(runtimeState, key, value);
4093
+ } catch (_unused) {}
4094
+ };
4448
4095
  const syncSetupStatePropsAliases = (instance, propsProxy) => {
4449
4096
  var _syncedAliases$get;
4450
4097
  if (!aliasEntries.length) return;
@@ -4461,10 +4108,10 @@ function createPropsSync(options) {
4461
4108
  try {
4462
4109
  setIfChanged(setupState, alias, value);
4463
4110
  aliases.add(alias);
4464
- } catch (_unused) {}
4111
+ } catch (_unused2) {}
4465
4112
  if (state && typeof state === "object" && (!hasOwn(state, alias) || aliases.has(alias))) try {
4466
4113
  setIfChanged(state, alias, value);
4467
- } catch (_unused2) {}
4114
+ } catch (_unused3) {}
4468
4115
  }
4469
4116
  };
4470
4117
  const syncPropsDerivedKeys = (instance, propsProxy) => {
@@ -4480,7 +4127,7 @@ function createPropsSync(options) {
4480
4127
  if (!hasOwn(propsProxy, propName)) continue;
4481
4128
  try {
4482
4129
  setIfChanged(setupState, key, propsProxy[propName]);
4483
- } catch (_unused3) {}
4130
+ } catch (_unused4) {}
4484
4131
  }
4485
4132
  };
4486
4133
  const attachWevuPropKeys = (instance) => {
@@ -4491,7 +4138,7 @@ function createPropsSync(options) {
4491
4138
  enumerable: false,
4492
4139
  writable: false
4493
4140
  });
4494
- } catch (_unused4) {
4141
+ } catch (_unused5) {
4495
4142
  instance[WEVU_PROP_KEYS_KEY] = propKeys;
4496
4143
  }
4497
4144
  };
@@ -4499,8 +4146,8 @@ function createPropsSync(options) {
4499
4146
  const attrsProxy = instance[WEVU_ATTRS_KEY];
4500
4147
  if (!attrsProxy || typeof attrsProxy !== "object") return;
4501
4148
  const hasRuntimeStateKey = (key) => {
4502
- var _wevu;
4503
- const runtimeState = (_wevu = instance.__wevu) === null || _wevu === void 0 ? void 0 : _wevu.state;
4149
+ var _wevu2;
4150
+ const runtimeState = (_wevu2 = instance.__wevu) === null || _wevu2 === void 0 ? void 0 : _wevu2.state;
4504
4151
  return runtimeState != null && typeof runtimeState === "object" && hasOwn(runtimeState, key);
4505
4152
  };
4506
4153
  const properties = instance.properties;
@@ -4508,7 +4155,7 @@ function createPropsSync(options) {
4508
4155
  const currentKeys = Object.keys(attrsProxy);
4509
4156
  for (const existingKey of currentKeys) if (!next || !hasOwn(next, existingKey) || isInternalAttrKey(existingKey) || propKeySet.has(existingKey) || hasRuntimeStateKey(existingKey)) try {
4510
4157
  delete attrsProxy[existingKey];
4511
- } catch (_unused5) {}
4158
+ } catch (_unused6) {}
4512
4159
  if (!next) {
4513
4160
  refreshOwnerSnapshotFromInstance(instance);
4514
4161
  return;
@@ -4517,7 +4164,7 @@ function createPropsSync(options) {
4517
4164
  if (isInternalAttrKey(key) || propKeySet.has(key) || hasRuntimeStateKey(key)) continue;
4518
4165
  try {
4519
4166
  attrsProxy[key] = value;
4520
- } catch (_unused6) {}
4167
+ } catch (_unused7) {}
4521
4168
  }
4522
4169
  refreshOwnerSnapshotFromInstance(instance);
4523
4170
  };
@@ -4530,17 +4177,21 @@ function createPropsSync(options) {
4530
4177
  const currentKeys = Object.keys(propsProxy);
4531
4178
  for (const existingKey of currentKeys) if (!hasOwn(next, existingKey)) try {
4532
4179
  delete propsProxy[existingKey];
4533
- } catch (_unused7) {}
4180
+ } catch (_unused8) {}
4534
4181
  for (const [k, v] of Object.entries(next)) {
4535
4182
  const nextValue = pendingPropValues && hasOwn(pendingPropValues, k) ? pendingPropValues[k] : v;
4536
4183
  try {
4537
4184
  propsProxy[k] = nextValue;
4538
- } catch (_unused8) {}
4185
+ } catch (_unused9) {}
4186
+ syncTemplateRuntimeProp(instance, k, nextValue);
4539
4187
  }
4540
4188
  if (pendingPropValues) {
4541
- for (const [k, v] of Object.entries(pendingPropValues)) if (!hasOwn(next, k)) try {
4542
- propsProxy[k] = v;
4543
- } catch (_unused9) {}
4189
+ for (const [k, v] of Object.entries(pendingPropValues)) if (!hasOwn(next, k)) {
4190
+ try {
4191
+ propsProxy[k] = v;
4192
+ } catch (_unused10) {}
4193
+ syncTemplateRuntimeProp(instance, k, v);
4194
+ }
4544
4195
  }
4545
4196
  syncPropsDerivedKeys(instance, propsProxy);
4546
4197
  syncSetupStatePropsAliases(instance, propsProxy);
@@ -4559,7 +4210,8 @@ function createPropsSync(options) {
4559
4210
  try {
4560
4211
  propsProxy[key] = values[key];
4561
4212
  changed = true;
4562
- } catch (_unused10) {}
4213
+ } catch (_unused11) {}
4214
+ syncTemplateRuntimeProp(instance, key, values[key]);
4563
4215
  }
4564
4216
  if (!changed) return;
4565
4217
  syncPropsDerivedKeys(instance, propsProxy);
@@ -4573,7 +4225,8 @@ function createPropsSync(options) {
4573
4225
  if (!propsProxy || typeof propsProxy !== "object") return;
4574
4226
  try {
4575
4227
  propsProxy[key] = value;
4576
- } catch (_unused11) {}
4228
+ } catch (_unused12) {}
4229
+ syncTemplateRuntimeProp(instance, key, value);
4577
4230
  const pendingPropValues = (_ref$WEVU_PENDING_PRO = (_ref = instance)[WEVU_PENDING_PROP_VALUES_KEY]) !== null && _ref$WEVU_PENDING_PRO !== void 0 ? _ref$WEVU_PENDING_PRO : _ref[WEVU_PENDING_PROP_VALUES_KEY] = Object.create(null);
4578
4231
  pendingPropValues[key] = value;
4579
4232
  syncPropsDerivedKeys(instance, propsProxy);
@@ -5196,6 +4849,9 @@ function resolveComputedGetter(definition) {
5196
4849
  const getter = definition === null || definition === void 0 ? void 0 : definition.get;
5197
4850
  return typeof getter === "function" ? getter : void 0;
5198
4851
  }
4852
+ function isCompilerGeneratedTemplateComputedKey(key) {
4853
+ return key.startsWith("__wv_bind_") || key.startsWith("__wv_cls_") || key.startsWith("__wv_style_");
4854
+ }
5199
4855
  function resolveInitialComputedData(options) {
5200
4856
  const { data, computed, setData } = options;
5201
4857
  const computedKeys = computed ? Object.keys(computed) : [];
@@ -5256,7 +4912,10 @@ function resolveInitialComputedData(options) {
5256
4912
  return Reflect.has(target, key) || typeof key === "string" && Boolean(computed && hasOwn(computed, key));
5257
4913
  }
5258
4914
  });
5259
- for (const key of computedKeys) resolveComputedValue(key);
4915
+ for (const key of computedKeys) {
4916
+ if (isCompilerGeneratedTemplateComputedKey(key)) continue;
4917
+ resolveComputedValue(key);
4918
+ }
5260
4919
  return Object.keys(resolved).length ? resolved : void 0;
5261
4920
  }
5262
4921
  function resolveNativeInitialData(data, computed, setData) {
@@ -5462,6 +5121,15 @@ function normalizeProps(baseOptions, props, explicitProperties) {
5462
5121
 
5463
5122
  //#endregion
5464
5123
  //#region src/runtime/define/scopedSlotOptions.ts
5124
+ const SCOPED_SLOT_SNAPSHOT_OMIT_KEYS = [
5125
+ WEVU_SLOT_OWNER_ID_KEY,
5126
+ WEVU_SLOT_OWNER_ID_PROP,
5127
+ WEVU_SLOT_OWNER_PROXY_KEY,
5128
+ WEVU_SLOT_OWNER_KEY,
5129
+ WEVU_SLOT_PROPS_DATA_KEY,
5130
+ WEVU_SLOT_PROPS_KEY,
5131
+ WEVU_SLOT_SCOPE_KEY
5132
+ ];
5465
5133
  const AMP_RE = /&amp;/g;
5466
5134
  const QUOT_RE = /&quot;/g;
5467
5135
  const NUM_QUOT_RE = /&#34;/g;
@@ -5619,11 +5287,8 @@ function createScopedSlotOptions(overrides) {
5619
5287
  const scopedSlotComputed = overrides === null || overrides === void 0 ? void 0 : overrides.computed;
5620
5288
  const baseOptions = {
5621
5289
  options: { virtualHost: true },
5622
- setData: { omit: [
5623
- WEVU_SLOT_OWNER_ID_KEY,
5624
- WEVU_SLOT_OWNER_ID_PROP,
5625
- WEVU_SLOT_OWNER_PROXY_KEY
5626
- ] },
5290
+ setData: { omit: SCOPED_SLOT_SNAPSHOT_OMIT_KEYS },
5291
+ [WEVU_PROPS_DERIVED_KEYS_KEY]: SCOPED_SLOT_SNAPSHOT_OMIT_KEYS,
5627
5292
  properties: {
5628
5293
  [WEVU_SLOT_OWNER_ID_PROP]: {
5629
5294
  type: String,
@@ -6294,93 +5959,6 @@ function useScrollOffset(options = {}) {
6294
5959
  return (selector) => runSelectorQuery(context, selector, all, (nodesRef) => nodesRef.scrollOffset());
6295
5960
  }
6296
5961
 
6297
- //#endregion
6298
- //#region src/runtime/template.ts
6299
- const hyphenateRE = /\B([A-Z])/g;
6300
- function hasOwnProperty(target, key) {
6301
- return Object.prototype.hasOwnProperty.call(target, key);
6302
- }
6303
- function hyphenate(value) {
6304
- if (!value) return "";
6305
- if (value.startsWith("--")) return value;
6306
- return value.replace(hyphenateRE, "-$1").toLowerCase();
6307
- }
6308
- function appendStyle(base, part) {
6309
- if (!part) return base;
6310
- if (!base) return part;
6311
- let next = base;
6312
- if (!next.endsWith(";")) next += ";";
6313
- const normalized = part.startsWith(";") ? part.slice(1) : part;
6314
- return next + normalized;
6315
- }
6316
- function stringifyStyle(value) {
6317
- let res = "";
6318
- for (const key of Object.keys(value)) {
6319
- const raw = unref(value[key]);
6320
- if (raw == null) continue;
6321
- const name = hyphenate(key);
6322
- if (Array.isArray(raw)) for (const itemValue of raw) {
6323
- const item = unref(itemValue);
6324
- if (item == null) continue;
6325
- res = appendStyle(res, `${name}:${item}`);
6326
- }
6327
- else res = appendStyle(res, `${name}:${raw}`);
6328
- }
6329
- return res;
6330
- }
6331
- function normalizeStyle(value) {
6332
- const unwrapped = unref(value);
6333
- if (unwrapped == null) return "";
6334
- if (typeof unwrapped === "string") return unwrapped;
6335
- if (Array.isArray(unwrapped)) {
6336
- let res = "";
6337
- for (const item of unwrapped) {
6338
- const normalized = normalizeStyle(item);
6339
- if (normalized) res = appendStyle(res, normalized);
6340
- }
6341
- return res;
6342
- }
6343
- if (typeof unwrapped === "object") return stringifyStyle(unwrapped);
6344
- return "";
6345
- }
6346
- function normalizeClass(value) {
6347
- const unwrapped = unref(value);
6348
- let res = "";
6349
- if (!unwrapped) return res;
6350
- if (typeof unwrapped === "string") return unwrapped;
6351
- if (Array.isArray(unwrapped)) {
6352
- for (const item of unwrapped) {
6353
- const normalized = normalizeClass(item);
6354
- if (normalized) res += `${normalized} `;
6355
- }
6356
- return res.trim();
6357
- }
6358
- if (typeof unwrapped === "object") {
6359
- for (const key of Object.keys(unwrapped)) if (unref(unwrapped[key])) res += `${key} `;
6360
- return res.trim();
6361
- }
6362
- return res;
6363
- }
6364
- function resolvePropValue(target, key, fallback, preferProps = false) {
6365
- if (target == null) return fallback;
6366
- const propsObject = unref(target.__wevuProps);
6367
- if (key === "data") {
6368
- if (propsObject != null && (propsObject[key] !== void 0 || hasOwnProperty(propsObject, key))) return propsObject[key];
6369
- return key in target ? target[key] : fallback;
6370
- }
6371
- const hasPropsValue = propsObject != null && (propsObject[key] !== void 0 || hasOwnProperty(propsObject, key));
6372
- if (preferProps) {
6373
- if (hasPropsValue) return propsObject[key];
6374
- if (key in target) return target[key];
6375
- return fallback;
6376
- }
6377
- const stateObject = unref(target.$state);
6378
- if (stateObject != null && hasOwnProperty(stateObject, key)) return target[key];
6379
- if (hasPropsValue) return propsObject[key];
6380
- if (!(key in target)) return fallback;
6381
- return target[key];
6382
- }
6383
-
6384
5962
  //#endregion
6385
5963
  //#region src/runtime/updatePerformance.ts
6386
5964
  function resolveUpdatePerformanceSetter(instance) {
@@ -6601,5 +6179,5 @@ function useTemplateRef(name) {
6601
6179
  }
6602
6180
 
6603
6181
  //#endregion
6604
- export { setWevuDefaults as $, defineComponent as A, useLayoutHosts as B, useNavigationBarMetrics as C, isShallowRef as Ct, useDisposables as D, __reExport as Dt, useElementIntersectionObserver as E, __exportAll as Et, resolveLayoutBridge as F, teardownRuntimeInstance as G, registerApp as H, resolveLayoutHost as I, setPageLayout as J, runSetupFunction as K, unregisterPageLayoutBridge as L, registerComponent as M, registerPageLayoutBridge as N, createWevuComponent as O, registerRuntimeLayoutHosts as P, resetWevuDefaults as Q, unregisterRuntimeLayoutHosts as R, getNavigationBarMetrics as S, toRefs as St, useIntersectionObserver as T, triggerRef as Tt, mountRuntimeInstance as U, waitForLayoutHost as V, setRuntimeSetDataVisibility as W, syncRuntimePageLayoutStateFromRuntime as X, syncRuntimePageLayoutState as Y, usePageLayout as Z, useSelectorFields as _, onServerPrefetch as _t, useModel as a, watchPostEffect as at, usePageScrollThrottle as b, traverse as bt, useSlots as c, setDeepWatchStrategy as ct, useUpdatePerformanceListener as d, onBeforeMount as dt, isNoSetData as et, normalizeClass as f, onBeforeUnmount as ft, useScrollOffset as g, onMounted as gt, useBoundingClientRect as h, onErrorCaptured as ht, useChangeModel as i, watchEffect as it, createApp as j, createWevuScopedSlotComponent as k, defineAppSetup as l, callUpdateHooks as lt, resolvePropValue as m, onDeactivated as mt, mergeModels as n, version as nt, useAttrs as o, watchSyncEffect as ot, normalizeStyle as p, onBeforeUpdate as pt, resolveRuntimePageLayoutName as q, useBindModel as r, watch as rt, useNativeInstance as s, getDeepWatchStrategy as st, useTemplateRef as t, markNoSetData as tt, use as u, onActivated as ut, useSelectorQuery as v, onUnmounted as vt, usePageStack as w, shallowRef as wt, getCurrentPageStackSnapshot as x, toRef as xt, useAsyncPullDownRefresh as y, onUpdated as yt, useLayoutBridge as z };
6605
- //# sourceMappingURL=src-B6draUWz.mjs.map
6182
+ 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 };
6183
+ //# sourceMappingURL=templateRef-Cl4FZO1Q.mjs.map