wevu 7.0.2 → 7.0.3

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.
@@ -1,5 +1,5 @@
1
1
  //#region package.json
2
- var version = "7.0.2";
2
+ var version = "7.0.3";
3
3
 
4
4
  //#endregion
5
5
  export { version };
@@ -1,5 +1,6 @@
1
1
  import { getActiveRouter } from "./instance.mjs";
2
2
  import { WEVU_INITIAL_NAVIGATION_TIMEOUT_MARKER } from "@weapp-core/constants";
3
+ import { queueMicrotaskPolyfill } from "@wevu/web-apis";
3
4
 
4
5
  //#region src/router/initialNavigation.ts
5
6
  const DEFAULT_INITIAL_NAVIGATION_TIMEOUT = 1e4;
@@ -17,7 +18,9 @@ function snapshotPage(instance) {
17
18
  }
18
19
  function snapshotQuery(query) {
19
20
  if (!query || typeof query !== "object") return;
20
- return Object.fromEntries(Object.entries(query).map(([key, value]) => [key, Array.isArray(value) ? [...value] : value]));
21
+ const snapshot = {};
22
+ for (const [key, value] of Object.entries(query)) snapshot[key] = Array.isArray(value) ? [...value] : value;
23
+ return snapshot;
21
24
  }
22
25
  function registerInitialNavigationRunner(router, runner, timeoutMs = DEFAULT_INITIAL_NAVIGATION_TIMEOUT, mode = "blocking") {
23
26
  initialNavigationRunners.set(router, {
@@ -69,7 +72,7 @@ function ensureInitialNavigation(instance, query, options = {}) {
69
72
  page = void 0;
70
73
  initialQuery = void 0;
71
74
  resolveNavigation(shouldMount);
72
- queueMicrotask(() => {
75
+ queueMicrotaskPolyfill(() => {
73
76
  if (currentStatus !== "allowed" && currentStatus !== "timed-out") return;
74
77
  for (const entry of callbacks) if (entry.active) {
75
78
  entry.callback(shouldMount);
@@ -86,7 +89,7 @@ function ensureInitialNavigation(instance, query, options = {}) {
86
89
  callback,
87
90
  active: true
88
91
  };
89
- if (currentStatus !== "idle" && currentStatus !== "running") queueMicrotask(() => {
92
+ if (currentStatus !== "idle" && currentStatus !== "running") queueMicrotaskPolyfill(() => {
90
93
  if (entry.active && (currentStatus === "allowed" || currentStatus === "timed-out")) {
91
94
  callback(currentStatus === "allowed" || currentStatus === "timed-out");
92
95
  entry.active = false;
@@ -1 +1 @@
1
- {"version":3,"file":"initialNavigation.mjs","names":[],"sources":["../../../src/router/initialNavigation.ts"],"sourcesContent":["import type { MiniProgramPageLike } from '../routerInternal/shared'\nimport type { InitialNavigationMode, LocationQueryRaw, NavigationFailure } from './types'\nimport { WEVU_INITIAL_NAVIGATION_TIMEOUT_MARKER } from '@weapp-core/constants'\nimport { getActiveRouter } from './instance'\n\nexport const DEFAULT_INITIAL_NAVIGATION_TIMEOUT = 10_000\n\nexport type InitialNavigationStatus = 'idle' | 'running' | 'allowed' | 'aborted' | 'timed-out' | 'cancelled'\n\ninterface InitialNavigationRunnerRegistration {\n runner: InitialNavigationRunner\n mode: InitialNavigationMode\n timeoutMs: number\n}\n\nexport type InitialNavigationRunner = (\n page: MiniProgramPageLike,\n query?: LocationQueryRaw,\n isActive?: () => boolean,\n) => Promise<void | NavigationFailure>\n\ninterface InitialNavigationController {\n readonly promise: Promise<boolean>\n readonly blocking: boolean\n readonly status: () => InitialNavigationStatus\n subscribe: (callback: (shouldMount: boolean) => void) => () => void\n start: (query?: LocationQueryRaw) => void\n cancel: () => void\n}\n\nconst initialNavigationRunners = new WeakMap<object, InitialNavigationRunnerRegistration>()\nconst initialNavigationControllers = new WeakMap<object, InitialNavigationController>()\n\nfunction normalizeTimeout(timeoutMs: number) {\n return Number.isFinite(timeoutMs) && timeoutMs > 0\n ? Math.max(1, Math.trunc(timeoutMs))\n : DEFAULT_INITIAL_NAVIGATION_TIMEOUT\n}\n\nfunction snapshotPage(instance: MiniProgramPageLike): MiniProgramPageLike {\n return {\n route: typeof instance.route === 'string' ? instance.route : undefined,\n __route__: typeof instance.__route__ === 'string' ? instance.__route__ : undefined,\n options: instance.options && typeof instance.options === 'object'\n ? { ...instance.options }\n : undefined,\n }\n}\n\nfunction snapshotQuery(query: LocationQueryRaw | undefined): LocationQueryRaw | undefined {\n if (!query || typeof query !== 'object') {\n return undefined\n }\n return Object.fromEntries(Object.entries(query).map(([key, value]) => [\n key,\n Array.isArray(value) ? [...value] : value,\n ]))\n}\n\nexport function registerInitialNavigationRunner(\n router: object,\n runner: InitialNavigationRunner,\n timeoutMs = DEFAULT_INITIAL_NAVIGATION_TIMEOUT,\n mode: InitialNavigationMode = 'blocking',\n) {\n initialNavigationRunners.set(router, {\n runner,\n mode,\n timeoutMs: normalizeTimeout(timeoutMs),\n })\n}\n\nexport function getInitialNavigationRunner(): InitialNavigationRunner | undefined {\n const router = getActiveRouter()\n return router ? initialNavigationRunners.get(router)?.runner : undefined\n}\n\nexport function getInitialNavigationTimeout() {\n const router = getActiveRouter()\n return router ? initialNavigationRunners.get(router)?.timeoutMs ?? DEFAULT_INITIAL_NAVIGATION_TIMEOUT : DEFAULT_INITIAL_NAVIGATION_TIMEOUT\n}\n\nexport function getInitialNavigationMode(): InitialNavigationMode {\n const router = getActiveRouter()\n return router ? initialNavigationRunners.get(router)?.mode ?? 'eager' : 'eager'\n}\n\nfunction isNavigationFailureResult(result: void | NavigationFailure): result is NavigationFailure {\n return Boolean(result && typeof result === 'object' && (result as NavigationFailure).__wevuNavigationFailure)\n}\n\nexport function getInitialNavigationPromise(instance: MiniProgramPageLike) {\n return initialNavigationControllers.get(instance as object)?.promise\n}\n\nexport function getInitialNavigationStatus(instance: MiniProgramPageLike) {\n return initialNavigationControllers.get(instance as object)?.status()\n}\n\nexport function ensureInitialNavigation(\n instance: MiniProgramPageLike,\n query?: LocationQueryRaw,\n options: { start?: boolean, onComplete?: (shouldMount: boolean) => void } = {},\n) {\n const existing = initialNavigationControllers.get(instance as object)\n if (existing) {\n if (options.onComplete && existing.blocking) {\n existing.subscribe(options.onComplete)\n }\n if (options.start !== false) {\n existing.start(query)\n }\n return existing.blocking ? existing.promise : undefined\n }\n\n const router = getActiveRouter()\n const registration = router ? initialNavigationRunners.get(router) : undefined\n let pendingRunner = registration?.runner\n if (!pendingRunner) {\n return undefined\n }\n const blocking = registration?.mode === 'blocking'\n\n let page: MiniProgramPageLike | undefined = snapshotPage(instance)\n let initialQuery = snapshotQuery(query)\n let currentStatus: InitialNavigationStatus = 'idle'\n let timeoutHandle: ReturnType<typeof setTimeout> | undefined\n const timeoutMs = getInitialNavigationTimeout()\n let resolveNavigation!: (shouldMount: boolean) => void\n const completionCallbacks = new Set<{ callback: (shouldMount: boolean) => void, active: boolean }>()\n const promise = new Promise<boolean>((resolve) => {\n resolveNavigation = resolve\n })\n\n const settle = (status: Exclude<InitialNavigationStatus, 'idle' | 'running'>, shouldMount: boolean) => {\n if (currentStatus !== 'idle' && currentStatus !== 'running') {\n return\n }\n currentStatus = status\n if (timeoutHandle !== undefined) {\n clearTimeout(timeoutHandle)\n timeoutHandle = undefined\n }\n const callbacks = [...completionCallbacks]\n completionCallbacks.clear()\n pendingRunner = undefined\n page = undefined\n initialQuery = undefined\n resolveNavigation(shouldMount)\n queueMicrotask(() => {\n if (currentStatus !== 'allowed' && currentStatus !== 'timed-out') {\n return\n }\n for (const entry of callbacks) {\n if (entry.active) {\n entry.callback(shouldMount)\n entry.active = false\n }\n }\n })\n }\n\n const controller: InitialNavigationController = {\n promise,\n blocking,\n status: () => currentStatus,\n subscribe(callback) {\n const entry = { callback, active: true }\n if (currentStatus !== 'idle' && currentStatus !== 'running') {\n queueMicrotask(() => {\n if (entry.active && (currentStatus === 'allowed' || currentStatus === 'timed-out')) {\n callback(currentStatus === 'allowed' || currentStatus === 'timed-out')\n entry.active = false\n }\n })\n }\n else {\n completionCallbacks.add(entry)\n }\n return () => {\n entry.active = false\n completionCallbacks.delete(entry)\n }\n },\n start(startQuery?: LocationQueryRaw) {\n if (currentStatus !== 'idle') {\n return\n }\n currentStatus = 'running'\n if (blocking) {\n timeoutHandle = setTimeout(() => {\n if (currentStatus !== 'running') {\n return\n }\n // 超时是可恢复的运行时诊断,保留稳定 marker 供宿主和 E2E 观测。\n // eslint-disable-next-line no-console\n console.warn(`${WEVU_INITIAL_NAVIGATION_TIMEOUT_MARKER} initial navigation exceeded ${timeoutMs}ms; mounting page`, page?.route ?? page?.__route__ ?? '')\n settle('timed-out', true)\n }, timeoutMs)\n }\n const runnerPage = page\n const runnerQuery = snapshotQuery(startQuery ?? initialQuery)\n const runner = pendingRunner\n pendingRunner = undefined\n if (!runner || !runnerPage) {\n settle('aborted', false)\n return\n }\n void runner(runnerPage, runnerQuery, () => currentStatus === 'running').then((result) => {\n const failed = isNavigationFailureResult(result)\n settle(failed ? 'aborted' : 'allowed', !failed)\n }, () => {\n settle('aborted', false)\n })\n },\n cancel() {\n settle('cancelled', false)\n },\n }\n\n initialNavigationControllers.set(instance as object, controller)\n if (options.onComplete && blocking) {\n controller.subscribe(options.onComplete)\n }\n if (options.start !== false) {\n controller.start(query)\n }\n return blocking ? promise : undefined\n}\n\nexport function cancelInitialNavigation(instance: MiniProgramPageLike) {\n initialNavigationControllers.get(instance as object)?.cancel()\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"initialNavigation.mjs","names":[],"sources":["../../../src/router/initialNavigation.ts"],"sourcesContent":["import type { MiniProgramPageLike } from '../routerInternal/shared'\nimport type { InitialNavigationMode, LocationQueryRaw, NavigationFailure } from './types'\nimport { WEVU_INITIAL_NAVIGATION_TIMEOUT_MARKER } from '@weapp-core/constants'\nimport { queueMicrotaskPolyfill } from '@wevu/web-apis'\nimport { getActiveRouter } from './instance'\n\nexport const DEFAULT_INITIAL_NAVIGATION_TIMEOUT = 10_000\n\nexport type InitialNavigationStatus = 'idle' | 'running' | 'allowed' | 'aborted' | 'timed-out' | 'cancelled'\n\ninterface InitialNavigationRunnerRegistration {\n runner: InitialNavigationRunner\n mode: InitialNavigationMode\n timeoutMs: number\n}\n\nexport type InitialNavigationRunner = (\n page: MiniProgramPageLike,\n query?: LocationQueryRaw,\n isActive?: () => boolean,\n) => Promise<void | NavigationFailure>\n\ninterface InitialNavigationController {\n readonly promise: Promise<boolean>\n readonly blocking: boolean\n readonly status: () => InitialNavigationStatus\n subscribe: (callback: (shouldMount: boolean) => void) => () => void\n start: (query?: LocationQueryRaw) => void\n cancel: () => void\n}\n\nconst initialNavigationRunners = new WeakMap<object, InitialNavigationRunnerRegistration>()\nconst initialNavigationControllers = new WeakMap<object, InitialNavigationController>()\n\nfunction normalizeTimeout(timeoutMs: number) {\n return Number.isFinite(timeoutMs) && timeoutMs > 0\n ? Math.max(1, Math.trunc(timeoutMs))\n : DEFAULT_INITIAL_NAVIGATION_TIMEOUT\n}\n\nfunction snapshotPage(instance: MiniProgramPageLike): MiniProgramPageLike {\n return {\n route: typeof instance.route === 'string' ? instance.route : undefined,\n __route__: typeof instance.__route__ === 'string' ? instance.__route__ : undefined,\n options: instance.options && typeof instance.options === 'object'\n ? { ...instance.options }\n : undefined,\n }\n}\n\nfunction snapshotQuery(query: LocationQueryRaw | undefined): LocationQueryRaw | undefined {\n if (!query || typeof query !== 'object') {\n return undefined\n }\n const snapshot: LocationQueryRaw = {}\n for (const [key, value] of Object.entries(query)) {\n snapshot[key] = Array.isArray(value) ? [...value] : value\n }\n return snapshot\n}\n\nexport function registerInitialNavigationRunner(\n router: object,\n runner: InitialNavigationRunner,\n timeoutMs = DEFAULT_INITIAL_NAVIGATION_TIMEOUT,\n mode: InitialNavigationMode = 'blocking',\n) {\n initialNavigationRunners.set(router, {\n runner,\n mode,\n timeoutMs: normalizeTimeout(timeoutMs),\n })\n}\n\nexport function getInitialNavigationRunner(): InitialNavigationRunner | undefined {\n const router = getActiveRouter()\n return router ? initialNavigationRunners.get(router)?.runner : undefined\n}\n\nexport function getInitialNavigationTimeout() {\n const router = getActiveRouter()\n return router ? initialNavigationRunners.get(router)?.timeoutMs ?? DEFAULT_INITIAL_NAVIGATION_TIMEOUT : DEFAULT_INITIAL_NAVIGATION_TIMEOUT\n}\n\nexport function getInitialNavigationMode(): InitialNavigationMode {\n const router = getActiveRouter()\n return router ? initialNavigationRunners.get(router)?.mode ?? 'eager' : 'eager'\n}\n\nfunction isNavigationFailureResult(result: void | NavigationFailure): result is NavigationFailure {\n return Boolean(result && typeof result === 'object' && (result as NavigationFailure).__wevuNavigationFailure)\n}\n\nexport function getInitialNavigationPromise(instance: MiniProgramPageLike) {\n return initialNavigationControllers.get(instance as object)?.promise\n}\n\nexport function getInitialNavigationStatus(instance: MiniProgramPageLike) {\n return initialNavigationControllers.get(instance as object)?.status()\n}\n\nexport function ensureInitialNavigation(\n instance: MiniProgramPageLike,\n query?: LocationQueryRaw,\n options: { start?: boolean, onComplete?: (shouldMount: boolean) => void } = {},\n) {\n const existing = initialNavigationControllers.get(instance as object)\n if (existing) {\n if (options.onComplete && existing.blocking) {\n existing.subscribe(options.onComplete)\n }\n if (options.start !== false) {\n existing.start(query)\n }\n return existing.blocking ? existing.promise : undefined\n }\n\n const router = getActiveRouter()\n const registration = router ? initialNavigationRunners.get(router) : undefined\n let pendingRunner = registration?.runner\n if (!pendingRunner) {\n return undefined\n }\n const blocking = registration?.mode === 'blocking'\n\n let page: MiniProgramPageLike | undefined = snapshotPage(instance)\n let initialQuery = snapshotQuery(query)\n let currentStatus: InitialNavigationStatus = 'idle'\n let timeoutHandle: ReturnType<typeof setTimeout> | undefined\n const timeoutMs = getInitialNavigationTimeout()\n let resolveNavigation!: (shouldMount: boolean) => void\n const completionCallbacks = new Set<{ callback: (shouldMount: boolean) => void, active: boolean }>()\n const promise = new Promise<boolean>((resolve) => {\n resolveNavigation = resolve\n })\n\n const settle = (status: Exclude<InitialNavigationStatus, 'idle' | 'running'>, shouldMount: boolean) => {\n if (currentStatus !== 'idle' && currentStatus !== 'running') {\n return\n }\n currentStatus = status\n if (timeoutHandle !== undefined) {\n clearTimeout(timeoutHandle)\n timeoutHandle = undefined\n }\n const callbacks = [...completionCallbacks]\n completionCallbacks.clear()\n pendingRunner = undefined\n page = undefined\n initialQuery = undefined\n resolveNavigation(shouldMount)\n queueMicrotaskPolyfill(() => {\n if (currentStatus !== 'allowed' && currentStatus !== 'timed-out') {\n return\n }\n for (const entry of callbacks) {\n if (entry.active) {\n entry.callback(shouldMount)\n entry.active = false\n }\n }\n })\n }\n\n const controller: InitialNavigationController = {\n promise,\n blocking,\n status: () => currentStatus,\n subscribe(callback) {\n const entry = { callback, active: true }\n if (currentStatus !== 'idle' && currentStatus !== 'running') {\n queueMicrotaskPolyfill(() => {\n if (entry.active && (currentStatus === 'allowed' || currentStatus === 'timed-out')) {\n callback(currentStatus === 'allowed' || currentStatus === 'timed-out')\n entry.active = false\n }\n })\n }\n else {\n completionCallbacks.add(entry)\n }\n return () => {\n entry.active = false\n completionCallbacks.delete(entry)\n }\n },\n start(startQuery?: LocationQueryRaw) {\n if (currentStatus !== 'idle') {\n return\n }\n currentStatus = 'running'\n if (blocking) {\n timeoutHandle = setTimeout(() => {\n if (currentStatus !== 'running') {\n return\n }\n // 超时是可恢复的运行时诊断,保留稳定 marker 供宿主和 E2E 观测。\n // eslint-disable-next-line no-console\n console.warn(`${WEVU_INITIAL_NAVIGATION_TIMEOUT_MARKER} initial navigation exceeded ${timeoutMs}ms; mounting page`, page?.route ?? page?.__route__ ?? '')\n settle('timed-out', true)\n }, timeoutMs)\n }\n const runnerPage = page\n const runnerQuery = snapshotQuery(startQuery ?? initialQuery)\n const runner = pendingRunner\n pendingRunner = undefined\n if (!runner || !runnerPage) {\n settle('aborted', false)\n return\n }\n void runner(runnerPage, runnerQuery, () => currentStatus === 'running').then((result) => {\n const failed = isNavigationFailureResult(result)\n settle(failed ? 'aborted' : 'allowed', !failed)\n }, () => {\n settle('aborted', false)\n })\n },\n cancel() {\n settle('cancelled', false)\n },\n }\n\n initialNavigationControllers.set(instance as object, controller)\n if (options.onComplete && blocking) {\n controller.subscribe(options.onComplete)\n }\n if (options.start !== false) {\n controller.start(query)\n }\n return blocking ? promise : undefined\n}\n\nexport function cancelInitialNavigation(instance: MiniProgramPageLike) {\n initialNavigationControllers.get(instance as object)?.cancel()\n}\n"],"mappings":"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"}
@@ -82,7 +82,9 @@ function createSlotFunctionProxy(instance, descriptor) {
82
82
  };
83
83
  }
84
84
  function resolveRuntimeSlotBindings(instance, bindings) {
85
- return Object.fromEntries(Object.entries(bindings).map(([key, value]) => [key, isSlotFunctionDescriptor(value) ? createSlotFunctionProxy(instance, value) : value]));
85
+ const resolved = {};
86
+ for (const [key, value] of Object.entries(bindings)) resolved[key] = isSlotFunctionDescriptor(value) ? createSlotFunctionProxy(instance, value) : value;
87
+ return resolved;
86
88
  }
87
89
  function resolveComputedContext(instance) {
88
90
  var _ref2, _instance$__wevu$prox, _instance$__wevu, _instance$WEVU_PUBLIC;
@@ -1 +1 @@
1
- {"version":3,"file":"scopedSlotOptions.mjs","names":[],"sources":["../../../../src/runtime/define/scopedSlotOptions.ts"],"sourcesContent":["import type { InlineExpressionMap } from '../register/inline'\nimport type { TemplateRefBinding } from '../templateRefs'\nimport type { ComputedDefinitions } from '../types'\nimport {\n WEVU_INLINE_HANDLER,\n WEVU_INLINE_MAP_KEY,\n WEVU_OWNER_HANDLER,\n WEVU_PROPS_DERIVED_KEYS_KEY,\n WEVU_PUBLIC_RUNTIME_KEY,\n WEVU_SLOT_FUNCTION_TOKEN,\n WEVU_SLOT_OWNER_ID_KEY,\n WEVU_SLOT_OWNER_ID_PROP,\n WEVU_SLOT_OWNER_KEY,\n WEVU_SLOT_OWNER_PROXY_KEY,\n WEVU_SLOT_PROPS_DATA_KEY,\n WEVU_SLOT_PROPS_KEY,\n WEVU_SLOT_SCOPE_KEY,\n WEVU_TEMPLATE_REFS_KEY,\n} from '@weapp-core/constants'\nimport { hasOwn } from '../../utils'\nimport { cloneSnapshotValue, isDeepEqualValue } from '../app/setData/snapshot'\nimport { resolveDatasetEventValue, runInlineExpression } from '../register/inline'\nimport { getOwnerProxy, getOwnerSnapshot, getOwnerTarget, subscribeOwner } from '../scopedSlots'\nimport { clearTemplateRefs, scheduleTemplateRefUpdate } from '../templateRefs'\n\nconst SCOPED_SLOT_SNAPSHOT_OMIT_KEYS = [\n WEVU_SLOT_OWNER_ID_KEY,\n WEVU_SLOT_OWNER_ID_PROP,\n WEVU_SLOT_OWNER_PROXY_KEY,\n WEVU_SLOT_OWNER_KEY,\n WEVU_SLOT_PROPS_DATA_KEY,\n WEVU_SLOT_PROPS_KEY,\n WEVU_SLOT_SCOPE_KEY,\n]\n\nconst AMP_RE = /&amp;/g\nconst QUOT_RE = /&quot;/g\nconst NUM_QUOT_RE = /&#34;/g\nconst APOS_RE = /&apos;/g\nconst NUM_APOS_RE = /&#39;/g\nconst LT_RE = /&lt;/g\nconst GT_RE = /&gt;/g\n\nfunction decodeWxmlEntities(value: string) {\n return value\n .replace(AMP_RE, '&')\n .replace(QUOT_RE, '\"')\n .replace(NUM_QUOT_RE, '\"')\n .replace(APOS_RE, '\\'')\n .replace(NUM_APOS_RE, '\\'')\n .replace(LT_RE, '<')\n .replace(GT_RE, '>')\n}\n\nfunction parseInlineArgs(event: any) {\n const dataset = event?.currentTarget?.dataset ?? event?.target?.dataset ?? {}\n const argsRaw = resolveDatasetEventValue(dataset, 'wvArgs', event)\n let args: any[] = []\n if (Array.isArray(argsRaw)) {\n args = argsRaw\n }\n else if (typeof argsRaw === 'string') {\n try {\n args = JSON.parse(argsRaw)\n }\n catch {\n try {\n args = JSON.parse(decodeWxmlEntities(argsRaw))\n }\n catch {\n args = []\n }\n }\n }\n if (!Array.isArray(args)) {\n args = []\n }\n return args.map((item: any) => item === '$event' ? event : item)\n}\n\nfunction normalizeSlotBindings(value: unknown): Record<string, any> {\n if (!value || typeof value !== 'object') {\n return {}\n }\n if (Array.isArray(value)) {\n const result: Record<string, any> = {}\n for (let i = 0; i < value.length; i += 2) {\n const key = value[i]\n if (typeof key === 'string' && key) {\n result[key] = value[i + 1]\n }\n }\n return result\n }\n return value as Record<string, any>\n}\n\nfunction isSlotFunctionDescriptor(value: unknown): value is [string, string, unknown[], unknown[]] {\n return Array.isArray(value)\n && value[0] === WEVU_SLOT_FUNCTION_TOKEN\n && typeof value[1] === 'string'\n}\n\nfunction createSlotFunctionProxy(instance: any, descriptor: [string, string, unknown[], unknown[]]) {\n return (...args: unknown[]) => {\n const owner = instance?.selectOwnerComponent?.()\n const handler = owner?.[WEVU_INLINE_HANDLER]\n if (typeof handler !== 'function') {\n return undefined\n }\n const dataset: Record<string, unknown> = {\n wd: 1,\n wi: descriptor[1],\n }\n const scopeBindings = Array.isArray(descriptor[2]) ? descriptor[2] : []\n const indexBindings = Array.isArray(descriptor[3]) ? descriptor[3] : []\n scopeBindings.forEach((value, index) => dataset[`wvS${index}`] = value)\n indexBindings.forEach((value, index) => dataset[`wvI${index}`] = value)\n const event = {\n type: 'wv-slot-function',\n detail: args,\n currentTarget: { dataset },\n target: { dataset },\n }\n return handler.call(owner, event)\n }\n}\n\nfunction resolveRuntimeSlotBindings(instance: any, bindings: Record<string, any>) {\n return Object.fromEntries(Object.entries(bindings).map(([key, value]) => [\n key,\n isSlotFunctionDescriptor(value) ? createSlotFunctionProxy(instance, value) : value,\n ]))\n}\n\nfunction resolveComputedContext(instance: any) {\n return instance?.__wevu?.proxy\n ?? instance?.[WEVU_PUBLIC_RUNTIME_KEY]?.proxy\n ?? instance\n}\n\nfunction collectComputedPayload(instance: any, computed?: ComputedDefinitions) {\n if (!computed || Object.keys(computed).length === 0) {\n return undefined\n }\n\n const context = resolveComputedContext(instance)\n const payload: Record<string, any> = {}\n for (const [key, definition] of Object.entries(computed)) {\n try {\n let value: any\n if (typeof definition === 'function') {\n value = definition.call(context)\n }\n else if (typeof (definition as any)?.get === 'function') {\n value = (definition as any).get.call(context)\n }\n if (value !== undefined) {\n payload[key] = value\n }\n }\n catch {\n }\n }\n return payload\n}\n\nfunction flushOwnerProxyBindings(instance: any) {\n instance?.__wevu?.__wevu_flushSetupSnapshotSync?.()\n}\n\nfunction flushScopedSlotComputedBindings(\n instance: any,\n computed?: ComputedDefinitions,\n options?: { force?: boolean },\n) {\n flushOwnerProxyBindings(instance)\n const payload = collectComputedPayload(instance, computed)\n if (!payload || typeof instance?.setData !== 'function') {\n return\n }\n const hasPrevious = hasOwn(instance, '__wvScopedSlotComputedSnapshot')\n const previous = instance.__wvScopedSlotComputedSnapshot ?? {}\n const next: Record<string, any> = {}\n const changed: Record<string, any> = {}\n for (const [key, value] of Object.entries(payload)) {\n next[key] = cloneSnapshotValue(value)\n if (options?.force || !hasPrevious || !hasOwn(previous, key) || !isDeepEqualValue(previous[key], value, 20, { keys: 10_000 })) {\n changed[key] = value\n }\n }\n for (const key of Object.keys(previous)) {\n if (!hasOwn(payload, key)) {\n changed[key] = null\n }\n }\n instance.__wvScopedSlotComputedSnapshot = next\n if (Object.keys(changed).length > 0) {\n instance.setData(changed)\n }\n}\n\nfunction syncSlotPropsData(\n instance: any,\n override?: { [WEVU_SLOT_SCOPE_KEY]?: unknown, [WEVU_SLOT_PROPS_KEY]?: unknown },\n) {\n const scopeSource = hasOwn(override ?? {}, WEVU_SLOT_SCOPE_KEY)\n ? (override as any)[WEVU_SLOT_SCOPE_KEY]\n : instance?.properties?.[WEVU_SLOT_SCOPE_KEY]\n const propsSource = hasOwn(override ?? {}, WEVU_SLOT_PROPS_KEY)\n ? (override as any)[WEVU_SLOT_PROPS_KEY]\n : instance?.properties?.[WEVU_SLOT_PROPS_KEY]\n const scope = normalizeSlotBindings(scopeSource)\n const slotProps = normalizeSlotBindings(propsSource)\n const snapshot = { ...scope, ...slotProps }\n const snapshotChanged = !hasOwn(instance, '__wvSlotPropsSnapshot')\n || !isDeepEqualValue(\n instance.__wvSlotPropsSnapshot ?? {},\n snapshot,\n 20,\n { keys: 10_000 },\n )\n const merged = snapshotChanged || !instance[WEVU_SLOT_PROPS_DATA_KEY]\n ? resolveRuntimeSlotBindings(instance, snapshot)\n : instance[WEVU_SLOT_PROPS_DATA_KEY]\n if (snapshotChanged) {\n instance.__wvSlotPropsSnapshot = cloneSnapshotValue(snapshot)\n }\n instance[WEVU_SLOT_PROPS_DATA_KEY] = merged\n const runtimeState = instance?.__wevu?.state\n const runtimeSnapshotChanged = Boolean(\n runtimeState\n && typeof runtimeState === 'object'\n && (\n !hasOwn(runtimeState, WEVU_SLOT_PROPS_DATA_KEY)\n || !isDeepEqualValue(\n runtimeState[WEVU_SLOT_PROPS_DATA_KEY] ?? {},\n snapshot,\n 20,\n { keys: 10_000 },\n )\n ),\n )\n if (runtimeState && typeof runtimeState === 'object') {\n runtimeState[WEVU_SLOT_PROPS_DATA_KEY] = merged\n }\n return { merged, runtimeSnapshotChanged, snapshot, snapshotChanged }\n}\n\nfunction mergeSlotProps(\n instance: any,\n computed?: ComputedDefinitions,\n override?: { [WEVU_SLOT_SCOPE_KEY]?: unknown, [WEVU_SLOT_PROPS_KEY]?: unknown },\n) {\n const { runtimeSnapshotChanged, snapshot, snapshotChanged } = syncSlotPropsData(instance, override)\n if ((snapshotChanged || runtimeSnapshotChanged) && typeof instance?.setData === 'function') {\n instance.setData({ [WEVU_SLOT_PROPS_DATA_KEY]: snapshot })\n }\n if (snapshotChanged) {\n flushScopedSlotComputedBindings(instance, computed)\n }\n}\n\nfunction setOwnerProxy(instance: any, proxy: any) {\n let changed = false\n if (instance[WEVU_SLOT_OWNER_PROXY_KEY] !== proxy) {\n instance[WEVU_SLOT_OWNER_PROXY_KEY] = proxy\n changed = true\n }\n const data = instance?.data\n if (data && typeof data === 'object' && data[WEVU_SLOT_OWNER_PROXY_KEY] !== proxy) {\n try {\n Object.defineProperty(data, WEVU_SLOT_OWNER_PROXY_KEY, {\n value: proxy,\n configurable: true,\n enumerable: false,\n writable: true,\n })\n }\n catch {\n data[WEVU_SLOT_OWNER_PROXY_KEY] = proxy\n }\n changed = true\n }\n const runtimeState = instance?.__wevu?.state\n if (\n runtimeState\n && typeof runtimeState === 'object'\n && runtimeState[WEVU_SLOT_OWNER_PROXY_KEY] !== proxy\n ) {\n runtimeState[WEVU_SLOT_OWNER_PROXY_KEY] = proxy\n changed = true\n }\n return changed\n}\n\nfunction isSnapshotObject(value: unknown): value is Record<string, any> {\n if (!value || typeof value !== 'object') {\n return false\n }\n const prototype = Object.getPrototypeOf(value)\n return prototype === Object.prototype || prototype === null\n}\n\nfunction splitOwnerSnapshotFunctions(\n value: any,\n path: string,\n functionPayload: Record<string, any>,\n visiting: WeakSet<object>,\n): any {\n if (typeof value === 'function') {\n functionPayload[path] = value\n return undefined\n }\n if (value == null || typeof value !== 'object') {\n return value\n }\n if (visiting.has(value)) {\n return undefined\n }\n if (Array.isArray(value)) {\n visiting.add(value)\n const output = value.map((item, index) => {\n const next = splitOwnerSnapshotFunctions(item, `${path}.${index}`, functionPayload, visiting)\n return next === undefined ? null : next\n })\n visiting.delete(value)\n return output\n }\n if (!isSnapshotObject(value)) {\n return cloneSnapshotValue(value)\n }\n visiting.add(value)\n const output: Record<string, any> = {}\n for (const [key, child] of Object.entries(value)) {\n const next = splitOwnerSnapshotFunctions(child, `${path}.${key}`, functionPayload, visiting)\n if (next !== undefined) {\n output[key] = next\n }\n }\n visiting.delete(value)\n return output\n}\n\nfunction createOwnerSetDataPayload(snapshot: Record<string, any>) {\n const functionPayload: Record<string, any> = {}\n const ownerSnapshot = splitOwnerSnapshotFunctions(\n snapshot,\n WEVU_SLOT_OWNER_KEY,\n functionPayload,\n new WeakSet(),\n )\n return {\n [WEVU_SLOT_OWNER_KEY]: ownerSnapshot,\n ...functionPayload,\n }\n}\n\nfunction updateOwnerBindings(instance: any, snapshot: Record<string, any>, proxy: any, computed?: ComputedDefinitions) {\n const proxyChanged = setOwnerProxy(instance, proxy)\n const { snapshotChanged: slotPropsChanged } = syncSlotPropsData(instance)\n const nextOwnerSnapshot = snapshot || {}\n const ownerChanged = !hasOwn(instance, '__wvOwnerSnapshot')\n || !isDeepEqualValue(\n instance.__wvOwnerSnapshot ?? {},\n nextOwnerSnapshot,\n 20,\n { keys: 10_000 },\n )\n if (ownerChanged) {\n instance.__wvOwnerSnapshot = cloneSnapshotValue(nextOwnerSnapshot)\n instance[WEVU_SLOT_OWNER_KEY] = nextOwnerSnapshot\n const runtimeState = instance?.__wevu?.state\n if (runtimeState && typeof runtimeState === 'object') {\n runtimeState[WEVU_SLOT_OWNER_KEY] = nextOwnerSnapshot\n }\n }\n if (ownerChanged && typeof instance?.setData === 'function') {\n instance.setData(createOwnerSetDataPayload(nextOwnerSnapshot))\n }\n if (ownerChanged || proxyChanged || slotPropsChanged) {\n flushScopedSlotComputedBindings(instance, computed)\n }\n}\n\nfunction bindOwner(instance: any, ownerId: string, computed?: ComputedDefinitions) {\n if (!ownerId) {\n if (typeof instance?.__wvOwnerUnsub === 'function') {\n instance.__wvOwnerUnsub()\n }\n instance.__wvOwnerUnsub = undefined\n instance.__wvOwnerBoundId = ''\n setOwnerProxy(instance, undefined)\n return\n }\n\n const updateOwner = (snapshot: Record<string, any>, proxy: any) => {\n updateOwnerBindings(instance, snapshot, proxy, computed)\n }\n if (instance.__wvOwnerBoundId !== ownerId) {\n if (typeof instance.__wvOwnerUnsub === 'function') {\n instance.__wvOwnerUnsub()\n }\n instance.__wvOwnerBoundId = ownerId\n instance.__wvOwnerUnsub = subscribeOwner(ownerId, updateOwner)\n }\n const snapshot = getOwnerSnapshot(ownerId)\n if (snapshot) {\n updateOwner(snapshot, getOwnerProxy(ownerId))\n }\n}\n\nfunction resolveBoundOwnerId(instance: any) {\n return instance?.properties?.[WEVU_SLOT_OWNER_ID_PROP]\n ?? instance?.properties?.[WEVU_SLOT_OWNER_ID_KEY]\n ?? ''\n}\n\nfunction syncScopedSlotBindings(instance: any, computed?: ComputedDefinitions) {\n mergeSlotProps(instance, computed)\n const ownerId = resolveBoundOwnerId(instance)\n if (!ownerId) {\n return\n }\n bindOwner(instance, ownerId, computed)\n}\n\nfunction createScopedSlotData() {\n const data = {\n [WEVU_SLOT_OWNER_KEY]: {},\n [WEVU_SLOT_PROPS_DATA_KEY]: {},\n }\n Object.defineProperty(data, WEVU_SLOT_OWNER_PROXY_KEY, {\n value: undefined,\n configurable: true,\n enumerable: false,\n writable: true,\n })\n return data\n}\n\nexport function createScopedSlotOptions(\n overrides?: {\n computed?: ComputedDefinitions\n inlineMap?: InlineExpressionMap\n templateRefs?: TemplateRefBinding[]\n },\n) {\n const scopedSlotComputed = overrides?.computed\n const templateRefs = overrides?.templateRefs\n const resolveTemplateRefOwner = (instance: any) => {\n const ownerId = resolveBoundOwnerId(instance)\n return ownerId ? getOwnerTarget(ownerId) : undefined\n }\n const baseOptions = {\n options: {\n virtualHost: true,\n },\n setData: {\n omit: SCOPED_SLOT_SNAPSHOT_OMIT_KEYS,\n },\n [WEVU_PROPS_DERIVED_KEYS_KEY]: SCOPED_SLOT_SNAPSHOT_OMIT_KEYS,\n properties: {\n [WEVU_SLOT_OWNER_ID_PROP]: {\n type: String,\n value: '',\n observer(this: any, next: string) {\n bindOwner(this, next || '', scopedSlotComputed)\n },\n },\n [WEVU_SLOT_OWNER_ID_KEY]: {\n type: String,\n value: '',\n observer(this: any, next: string) {\n bindOwner(this, next || '', scopedSlotComputed)\n },\n },\n [WEVU_SLOT_PROPS_KEY]: {\n type: null,\n value: null,\n observer(this: any, next: unknown) {\n mergeSlotProps(this, scopedSlotComputed, { [WEVU_SLOT_PROPS_KEY]: next })\n },\n },\n [WEVU_SLOT_SCOPE_KEY]: {\n type: null,\n value: null,\n observer(this: any, next: unknown) {\n mergeSlotProps(this, scopedSlotComputed, { [WEVU_SLOT_SCOPE_KEY]: next })\n },\n },\n },\n data: createScopedSlotData,\n lifetimes: {\n attached(this: any) {\n syncScopedSlotBindings(this, scopedSlotComputed)\n },\n ready(this: any) {\n syncScopedSlotBindings(this, scopedSlotComputed)\n flushScopedSlotComputedBindings(this, scopedSlotComputed, { force: true })\n const owner = resolveTemplateRefOwner(this)\n if (owner) {\n scheduleTemplateRefUpdate(this, undefined, owner)\n }\n },\n detached(this: any) {\n const owner = resolveTemplateRefOwner(this)\n if (owner) {\n clearTemplateRefs(this, owner)\n }\n if (typeof this.__wvOwnerUnsub === 'function') {\n this.__wvOwnerUnsub()\n }\n this.__wvOwnerUnsub = undefined\n this.__wvOwnerBoundId = ''\n setOwnerProxy(this, undefined)\n },\n },\n methods: {\n [WEVU_OWNER_HANDLER](this: any, event: any) {\n const owner = this[WEVU_SLOT_OWNER_PROXY_KEY]\n const inlineMap = (this as any).__wevu?.methods?.[WEVU_INLINE_MAP_KEY]\n const result = runInlineExpression(owner, undefined, event, inlineMap)\n if (result !== undefined) {\n return result\n }\n if (!owner) {\n return undefined\n }\n const dataset = event?.currentTarget?.dataset ?? event?.target?.dataset ?? {}\n const handlerName = resolveDatasetEventValue(dataset, 'wvHandler', event)\n if (typeof handlerName !== 'string' || !handlerName) {\n return undefined\n }\n const handler = owner?.[handlerName]\n if (typeof handler !== 'function') {\n return undefined\n }\n const args = parseInlineArgs(event)\n return handler.apply(owner, args)\n },\n },\n }\n\n if (overrides?.computed && Object.keys(overrides.computed).length > 0) {\n ;(baseOptions as any).computed = overrides.computed\n }\n if (overrides?.inlineMap && Object.keys(overrides.inlineMap).length > 0) {\n ;(baseOptions as any).methods = {\n ...(baseOptions as any).methods,\n [WEVU_INLINE_MAP_KEY]: overrides.inlineMap,\n }\n }\n if (templateRefs?.length) {\n ;(baseOptions as any)[WEVU_TEMPLATE_REFS_KEY] = templateRefs\n }\n\n return baseOptions\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"scopedSlotOptions.mjs","names":[],"sources":["../../../../src/runtime/define/scopedSlotOptions.ts"],"sourcesContent":["import type { InlineExpressionMap } from '../register/inline'\nimport type { TemplateRefBinding } from '../templateRefs'\nimport type { ComputedDefinitions } from '../types'\nimport {\n WEVU_INLINE_HANDLER,\n WEVU_INLINE_MAP_KEY,\n WEVU_OWNER_HANDLER,\n WEVU_PROPS_DERIVED_KEYS_KEY,\n WEVU_PUBLIC_RUNTIME_KEY,\n WEVU_SLOT_FUNCTION_TOKEN,\n WEVU_SLOT_OWNER_ID_KEY,\n WEVU_SLOT_OWNER_ID_PROP,\n WEVU_SLOT_OWNER_KEY,\n WEVU_SLOT_OWNER_PROXY_KEY,\n WEVU_SLOT_PROPS_DATA_KEY,\n WEVU_SLOT_PROPS_KEY,\n WEVU_SLOT_SCOPE_KEY,\n WEVU_TEMPLATE_REFS_KEY,\n} from '@weapp-core/constants'\nimport { hasOwn } from '../../utils'\nimport { cloneSnapshotValue, isDeepEqualValue } from '../app/setData/snapshot'\nimport { resolveDatasetEventValue, runInlineExpression } from '../register/inline'\nimport { getOwnerProxy, getOwnerSnapshot, getOwnerTarget, subscribeOwner } from '../scopedSlots'\nimport { clearTemplateRefs, scheduleTemplateRefUpdate } from '../templateRefs'\n\nconst SCOPED_SLOT_SNAPSHOT_OMIT_KEYS = [\n WEVU_SLOT_OWNER_ID_KEY,\n WEVU_SLOT_OWNER_ID_PROP,\n WEVU_SLOT_OWNER_PROXY_KEY,\n WEVU_SLOT_OWNER_KEY,\n WEVU_SLOT_PROPS_DATA_KEY,\n WEVU_SLOT_PROPS_KEY,\n WEVU_SLOT_SCOPE_KEY,\n]\n\nconst AMP_RE = /&amp;/g\nconst QUOT_RE = /&quot;/g\nconst NUM_QUOT_RE = /&#34;/g\nconst APOS_RE = /&apos;/g\nconst NUM_APOS_RE = /&#39;/g\nconst LT_RE = /&lt;/g\nconst GT_RE = /&gt;/g\n\nfunction decodeWxmlEntities(value: string) {\n return value\n .replace(AMP_RE, '&')\n .replace(QUOT_RE, '\"')\n .replace(NUM_QUOT_RE, '\"')\n .replace(APOS_RE, '\\'')\n .replace(NUM_APOS_RE, '\\'')\n .replace(LT_RE, '<')\n .replace(GT_RE, '>')\n}\n\nfunction parseInlineArgs(event: any) {\n const dataset = event?.currentTarget?.dataset ?? event?.target?.dataset ?? {}\n const argsRaw = resolveDatasetEventValue(dataset, 'wvArgs', event)\n let args: any[] = []\n if (Array.isArray(argsRaw)) {\n args = argsRaw\n }\n else if (typeof argsRaw === 'string') {\n try {\n args = JSON.parse(argsRaw)\n }\n catch {\n try {\n args = JSON.parse(decodeWxmlEntities(argsRaw))\n }\n catch {\n args = []\n }\n }\n }\n if (!Array.isArray(args)) {\n args = []\n }\n return args.map((item: any) => item === '$event' ? event : item)\n}\n\nfunction normalizeSlotBindings(value: unknown): Record<string, any> {\n if (!value || typeof value !== 'object') {\n return {}\n }\n if (Array.isArray(value)) {\n const result: Record<string, any> = {}\n for (let i = 0; i < value.length; i += 2) {\n const key = value[i]\n if (typeof key === 'string' && key) {\n result[key] = value[i + 1]\n }\n }\n return result\n }\n return value as Record<string, any>\n}\n\nfunction isSlotFunctionDescriptor(value: unknown): value is [string, string, unknown[], unknown[]] {\n return Array.isArray(value)\n && value[0] === WEVU_SLOT_FUNCTION_TOKEN\n && typeof value[1] === 'string'\n}\n\nfunction createSlotFunctionProxy(instance: any, descriptor: [string, string, unknown[], unknown[]]) {\n return (...args: unknown[]) => {\n const owner = instance?.selectOwnerComponent?.()\n const handler = owner?.[WEVU_INLINE_HANDLER]\n if (typeof handler !== 'function') {\n return undefined\n }\n const dataset: Record<string, unknown> = {\n wd: 1,\n wi: descriptor[1],\n }\n const scopeBindings = Array.isArray(descriptor[2]) ? descriptor[2] : []\n const indexBindings = Array.isArray(descriptor[3]) ? descriptor[3] : []\n scopeBindings.forEach((value, index) => dataset[`wvS${index}`] = value)\n indexBindings.forEach((value, index) => dataset[`wvI${index}`] = value)\n const event = {\n type: 'wv-slot-function',\n detail: args,\n currentTarget: { dataset },\n target: { dataset },\n }\n return handler.call(owner, event)\n }\n}\n\nfunction resolveRuntimeSlotBindings(instance: any, bindings: Record<string, any>) {\n const resolved: Record<string, any> = {}\n for (const [key, value] of Object.entries(bindings)) {\n resolved[key] = isSlotFunctionDescriptor(value) ? createSlotFunctionProxy(instance, value) : value\n }\n return resolved\n}\n\nfunction resolveComputedContext(instance: any) {\n return instance?.__wevu?.proxy\n ?? instance?.[WEVU_PUBLIC_RUNTIME_KEY]?.proxy\n ?? instance\n}\n\nfunction collectComputedPayload(instance: any, computed?: ComputedDefinitions) {\n if (!computed || Object.keys(computed).length === 0) {\n return undefined\n }\n\n const context = resolveComputedContext(instance)\n const payload: Record<string, any> = {}\n for (const [key, definition] of Object.entries(computed)) {\n try {\n let value: any\n if (typeof definition === 'function') {\n value = definition.call(context)\n }\n else if (typeof (definition as any)?.get === 'function') {\n value = (definition as any).get.call(context)\n }\n if (value !== undefined) {\n payload[key] = value\n }\n }\n catch {\n }\n }\n return payload\n}\n\nfunction flushOwnerProxyBindings(instance: any) {\n instance?.__wevu?.__wevu_flushSetupSnapshotSync?.()\n}\n\nfunction flushScopedSlotComputedBindings(\n instance: any,\n computed?: ComputedDefinitions,\n options?: { force?: boolean },\n) {\n flushOwnerProxyBindings(instance)\n const payload = collectComputedPayload(instance, computed)\n if (!payload || typeof instance?.setData !== 'function') {\n return\n }\n const hasPrevious = hasOwn(instance, '__wvScopedSlotComputedSnapshot')\n const previous = instance.__wvScopedSlotComputedSnapshot ?? {}\n const next: Record<string, any> = {}\n const changed: Record<string, any> = {}\n for (const [key, value] of Object.entries(payload)) {\n next[key] = cloneSnapshotValue(value)\n if (options?.force || !hasPrevious || !hasOwn(previous, key) || !isDeepEqualValue(previous[key], value, 20, { keys: 10_000 })) {\n changed[key] = value\n }\n }\n for (const key of Object.keys(previous)) {\n if (!hasOwn(payload, key)) {\n changed[key] = null\n }\n }\n instance.__wvScopedSlotComputedSnapshot = next\n if (Object.keys(changed).length > 0) {\n instance.setData(changed)\n }\n}\n\nfunction syncSlotPropsData(\n instance: any,\n override?: { [WEVU_SLOT_SCOPE_KEY]?: unknown, [WEVU_SLOT_PROPS_KEY]?: unknown },\n) {\n const scopeSource = hasOwn(override ?? {}, WEVU_SLOT_SCOPE_KEY)\n ? (override as any)[WEVU_SLOT_SCOPE_KEY]\n : instance?.properties?.[WEVU_SLOT_SCOPE_KEY]\n const propsSource = hasOwn(override ?? {}, WEVU_SLOT_PROPS_KEY)\n ? (override as any)[WEVU_SLOT_PROPS_KEY]\n : instance?.properties?.[WEVU_SLOT_PROPS_KEY]\n const scope = normalizeSlotBindings(scopeSource)\n const slotProps = normalizeSlotBindings(propsSource)\n const snapshot = { ...scope, ...slotProps }\n const snapshotChanged = !hasOwn(instance, '__wvSlotPropsSnapshot')\n || !isDeepEqualValue(\n instance.__wvSlotPropsSnapshot ?? {},\n snapshot,\n 20,\n { keys: 10_000 },\n )\n const merged = snapshotChanged || !instance[WEVU_SLOT_PROPS_DATA_KEY]\n ? resolveRuntimeSlotBindings(instance, snapshot)\n : instance[WEVU_SLOT_PROPS_DATA_KEY]\n if (snapshotChanged) {\n instance.__wvSlotPropsSnapshot = cloneSnapshotValue(snapshot)\n }\n instance[WEVU_SLOT_PROPS_DATA_KEY] = merged\n const runtimeState = instance?.__wevu?.state\n const runtimeSnapshotChanged = Boolean(\n runtimeState\n && typeof runtimeState === 'object'\n && (\n !hasOwn(runtimeState, WEVU_SLOT_PROPS_DATA_KEY)\n || !isDeepEqualValue(\n runtimeState[WEVU_SLOT_PROPS_DATA_KEY] ?? {},\n snapshot,\n 20,\n { keys: 10_000 },\n )\n ),\n )\n if (runtimeState && typeof runtimeState === 'object') {\n runtimeState[WEVU_SLOT_PROPS_DATA_KEY] = merged\n }\n return { merged, runtimeSnapshotChanged, snapshot, snapshotChanged }\n}\n\nfunction mergeSlotProps(\n instance: any,\n computed?: ComputedDefinitions,\n override?: { [WEVU_SLOT_SCOPE_KEY]?: unknown, [WEVU_SLOT_PROPS_KEY]?: unknown },\n) {\n const { runtimeSnapshotChanged, snapshot, snapshotChanged } = syncSlotPropsData(instance, override)\n if ((snapshotChanged || runtimeSnapshotChanged) && typeof instance?.setData === 'function') {\n instance.setData({ [WEVU_SLOT_PROPS_DATA_KEY]: snapshot })\n }\n if (snapshotChanged) {\n flushScopedSlotComputedBindings(instance, computed)\n }\n}\n\nfunction setOwnerProxy(instance: any, proxy: any) {\n let changed = false\n if (instance[WEVU_SLOT_OWNER_PROXY_KEY] !== proxy) {\n instance[WEVU_SLOT_OWNER_PROXY_KEY] = proxy\n changed = true\n }\n const data = instance?.data\n if (data && typeof data === 'object' && data[WEVU_SLOT_OWNER_PROXY_KEY] !== proxy) {\n try {\n Object.defineProperty(data, WEVU_SLOT_OWNER_PROXY_KEY, {\n value: proxy,\n configurable: true,\n enumerable: false,\n writable: true,\n })\n }\n catch {\n data[WEVU_SLOT_OWNER_PROXY_KEY] = proxy\n }\n changed = true\n }\n const runtimeState = instance?.__wevu?.state\n if (\n runtimeState\n && typeof runtimeState === 'object'\n && runtimeState[WEVU_SLOT_OWNER_PROXY_KEY] !== proxy\n ) {\n runtimeState[WEVU_SLOT_OWNER_PROXY_KEY] = proxy\n changed = true\n }\n return changed\n}\n\nfunction isSnapshotObject(value: unknown): value is Record<string, any> {\n if (!value || typeof value !== 'object') {\n return false\n }\n const prototype = Object.getPrototypeOf(value)\n return prototype === Object.prototype || prototype === null\n}\n\nfunction splitOwnerSnapshotFunctions(\n value: any,\n path: string,\n functionPayload: Record<string, any>,\n visiting: WeakSet<object>,\n): any {\n if (typeof value === 'function') {\n functionPayload[path] = value\n return undefined\n }\n if (value == null || typeof value !== 'object') {\n return value\n }\n if (visiting.has(value)) {\n return undefined\n }\n if (Array.isArray(value)) {\n visiting.add(value)\n const output = value.map((item, index) => {\n const next = splitOwnerSnapshotFunctions(item, `${path}.${index}`, functionPayload, visiting)\n return next === undefined ? null : next\n })\n visiting.delete(value)\n return output\n }\n if (!isSnapshotObject(value)) {\n return cloneSnapshotValue(value)\n }\n visiting.add(value)\n const output: Record<string, any> = {}\n for (const [key, child] of Object.entries(value)) {\n const next = splitOwnerSnapshotFunctions(child, `${path}.${key}`, functionPayload, visiting)\n if (next !== undefined) {\n output[key] = next\n }\n }\n visiting.delete(value)\n return output\n}\n\nfunction createOwnerSetDataPayload(snapshot: Record<string, any>) {\n const functionPayload: Record<string, any> = {}\n const ownerSnapshot = splitOwnerSnapshotFunctions(\n snapshot,\n WEVU_SLOT_OWNER_KEY,\n functionPayload,\n new WeakSet(),\n )\n return {\n [WEVU_SLOT_OWNER_KEY]: ownerSnapshot,\n ...functionPayload,\n }\n}\n\nfunction updateOwnerBindings(instance: any, snapshot: Record<string, any>, proxy: any, computed?: ComputedDefinitions) {\n const proxyChanged = setOwnerProxy(instance, proxy)\n const { snapshotChanged: slotPropsChanged } = syncSlotPropsData(instance)\n const nextOwnerSnapshot = snapshot || {}\n const ownerChanged = !hasOwn(instance, '__wvOwnerSnapshot')\n || !isDeepEqualValue(\n instance.__wvOwnerSnapshot ?? {},\n nextOwnerSnapshot,\n 20,\n { keys: 10_000 },\n )\n if (ownerChanged) {\n instance.__wvOwnerSnapshot = cloneSnapshotValue(nextOwnerSnapshot)\n instance[WEVU_SLOT_OWNER_KEY] = nextOwnerSnapshot\n const runtimeState = instance?.__wevu?.state\n if (runtimeState && typeof runtimeState === 'object') {\n runtimeState[WEVU_SLOT_OWNER_KEY] = nextOwnerSnapshot\n }\n }\n if (ownerChanged && typeof instance?.setData === 'function') {\n instance.setData(createOwnerSetDataPayload(nextOwnerSnapshot))\n }\n if (ownerChanged || proxyChanged || slotPropsChanged) {\n flushScopedSlotComputedBindings(instance, computed)\n }\n}\n\nfunction bindOwner(instance: any, ownerId: string, computed?: ComputedDefinitions) {\n if (!ownerId) {\n if (typeof instance?.__wvOwnerUnsub === 'function') {\n instance.__wvOwnerUnsub()\n }\n instance.__wvOwnerUnsub = undefined\n instance.__wvOwnerBoundId = ''\n setOwnerProxy(instance, undefined)\n return\n }\n\n const updateOwner = (snapshot: Record<string, any>, proxy: any) => {\n updateOwnerBindings(instance, snapshot, proxy, computed)\n }\n if (instance.__wvOwnerBoundId !== ownerId) {\n if (typeof instance.__wvOwnerUnsub === 'function') {\n instance.__wvOwnerUnsub()\n }\n instance.__wvOwnerBoundId = ownerId\n instance.__wvOwnerUnsub = subscribeOwner(ownerId, updateOwner)\n }\n const snapshot = getOwnerSnapshot(ownerId)\n if (snapshot) {\n updateOwner(snapshot, getOwnerProxy(ownerId))\n }\n}\n\nfunction resolveBoundOwnerId(instance: any) {\n return instance?.properties?.[WEVU_SLOT_OWNER_ID_PROP]\n ?? instance?.properties?.[WEVU_SLOT_OWNER_ID_KEY]\n ?? ''\n}\n\nfunction syncScopedSlotBindings(instance: any, computed?: ComputedDefinitions) {\n mergeSlotProps(instance, computed)\n const ownerId = resolveBoundOwnerId(instance)\n if (!ownerId) {\n return\n }\n bindOwner(instance, ownerId, computed)\n}\n\nfunction createScopedSlotData() {\n const data = {\n [WEVU_SLOT_OWNER_KEY]: {},\n [WEVU_SLOT_PROPS_DATA_KEY]: {},\n }\n Object.defineProperty(data, WEVU_SLOT_OWNER_PROXY_KEY, {\n value: undefined,\n configurable: true,\n enumerable: false,\n writable: true,\n })\n return data\n}\n\nexport function createScopedSlotOptions(\n overrides?: {\n computed?: ComputedDefinitions\n inlineMap?: InlineExpressionMap\n templateRefs?: TemplateRefBinding[]\n },\n) {\n const scopedSlotComputed = overrides?.computed\n const templateRefs = overrides?.templateRefs\n const resolveTemplateRefOwner = (instance: any) => {\n const ownerId = resolveBoundOwnerId(instance)\n return ownerId ? getOwnerTarget(ownerId) : undefined\n }\n const baseOptions = {\n options: {\n virtualHost: true,\n },\n setData: {\n omit: SCOPED_SLOT_SNAPSHOT_OMIT_KEYS,\n },\n [WEVU_PROPS_DERIVED_KEYS_KEY]: SCOPED_SLOT_SNAPSHOT_OMIT_KEYS,\n properties: {\n [WEVU_SLOT_OWNER_ID_PROP]: {\n type: String,\n value: '',\n observer(this: any, next: string) {\n bindOwner(this, next || '', scopedSlotComputed)\n },\n },\n [WEVU_SLOT_OWNER_ID_KEY]: {\n type: String,\n value: '',\n observer(this: any, next: string) {\n bindOwner(this, next || '', scopedSlotComputed)\n },\n },\n [WEVU_SLOT_PROPS_KEY]: {\n type: null,\n value: null,\n observer(this: any, next: unknown) {\n mergeSlotProps(this, scopedSlotComputed, { [WEVU_SLOT_PROPS_KEY]: next })\n },\n },\n [WEVU_SLOT_SCOPE_KEY]: {\n type: null,\n value: null,\n observer(this: any, next: unknown) {\n mergeSlotProps(this, scopedSlotComputed, { [WEVU_SLOT_SCOPE_KEY]: next })\n },\n },\n },\n data: createScopedSlotData,\n lifetimes: {\n attached(this: any) {\n syncScopedSlotBindings(this, scopedSlotComputed)\n },\n ready(this: any) {\n syncScopedSlotBindings(this, scopedSlotComputed)\n flushScopedSlotComputedBindings(this, scopedSlotComputed, { force: true })\n const owner = resolveTemplateRefOwner(this)\n if (owner) {\n scheduleTemplateRefUpdate(this, undefined, owner)\n }\n },\n detached(this: any) {\n const owner = resolveTemplateRefOwner(this)\n if (owner) {\n clearTemplateRefs(this, owner)\n }\n if (typeof this.__wvOwnerUnsub === 'function') {\n this.__wvOwnerUnsub()\n }\n this.__wvOwnerUnsub = undefined\n this.__wvOwnerBoundId = ''\n setOwnerProxy(this, undefined)\n },\n },\n methods: {\n [WEVU_OWNER_HANDLER](this: any, event: any) {\n const owner = this[WEVU_SLOT_OWNER_PROXY_KEY]\n const inlineMap = (this as any).__wevu?.methods?.[WEVU_INLINE_MAP_KEY]\n const result = runInlineExpression(owner, undefined, event, inlineMap)\n if (result !== undefined) {\n return result\n }\n if (!owner) {\n return undefined\n }\n const dataset = event?.currentTarget?.dataset ?? event?.target?.dataset ?? {}\n const handlerName = resolveDatasetEventValue(dataset, 'wvHandler', event)\n if (typeof handlerName !== 'string' || !handlerName) {\n return undefined\n }\n const handler = owner?.[handlerName]\n if (typeof handler !== 'function') {\n return undefined\n }\n const args = parseInlineArgs(event)\n return handler.apply(owner, args)\n },\n },\n }\n\n if (overrides?.computed && Object.keys(overrides.computed).length > 0) {\n ;(baseOptions as any).computed = overrides.computed\n }\n if (overrides?.inlineMap && Object.keys(overrides.inlineMap).length > 0) {\n ;(baseOptions as any).methods = {\n ...(baseOptions as any).methods,\n [WEVU_INLINE_MAP_KEY]: overrides.inlineMap,\n }\n }\n if (templateRefs?.length) {\n ;(baseOptions as any)[WEVU_TEMPLATE_REFS_KEY] = templateRefs\n }\n\n return baseOptions\n}\n"],"mappings":"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"}
@@ -6,7 +6,7 @@ function isTriggerEventOptions(value) {
6
6
  return hasOwn(value, "bubbles") || hasOwn(value, "composed") || hasOwn(value, "capturePhase");
7
7
  }
8
8
  function normalizeEmitEventName(eventName) {
9
- return eventName.includes(":") ? eventName.replaceAll(":", "-").toLowerCase() : hyphenate(eventName);
9
+ return eventName.includes(":") ? eventName.replace(/:/g, "-").toLowerCase() : hyphenate(eventName);
10
10
  }
11
11
  function normalizeEmitPayload(args) {
12
12
  if (args.length === 0) return {
@@ -1 +1 @@
1
- {"version":3,"file":"emit.mjs","names":[],"sources":["../../../src/runtime/emit.ts"],"sourcesContent":["import type { TriggerEventOptions } from './types'\nimport { hasOwn, hyphenate } from '../utils'\n\nfunction isTriggerEventOptions(value: unknown): value is TriggerEventOptions {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return false\n }\n return (\n hasOwn(value, 'bubbles')\n || hasOwn(value, 'composed')\n || hasOwn(value, 'capturePhase')\n )\n}\n\nexport function normalizeEmitEventName(eventName: string) {\n return eventName.includes(':') ? eventName.replaceAll(':', '-').toLowerCase() : hyphenate(eventName)\n}\n\nexport function normalizeEmitPayload(args: any[]): { detail: any, options: TriggerEventOptions | undefined } {\n if (args.length === 0) {\n return {\n detail: undefined,\n options: undefined,\n }\n }\n\n if (args.length === 1) {\n return {\n detail: args[0],\n options: undefined,\n }\n }\n\n const maybeOptions = args[args.length - 1]\n if (isTriggerEventOptions(maybeOptions)) {\n const detailArgs = args.slice(0, -1)\n return {\n detail: detailArgs.length <= 1 ? detailArgs[0] : detailArgs,\n options: maybeOptions,\n }\n }\n\n return {\n detail: args,\n options: undefined,\n }\n}\n"],"mappings":";;;AAGA,SAAS,sBAAsB,OAA8C;CAC3E,IAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK,GAC5D,OAAO;CAET,OACE,OAAO,OAAO,SAAS,KACpB,OAAO,OAAO,UAAU,KACxB,OAAO,OAAO,cAAc;AAEnC;AAEA,SAAgB,uBAAuB,WAAmB;CACxD,OAAO,UAAU,SAAS,GAAG,IAAI,UAAU,WAAW,KAAK,GAAG,CAAC,CAAC,YAAY,IAAI,UAAU,SAAS;AACrG;AAEA,SAAgB,qBAAqB,MAAwE;CAC3G,IAAI,KAAK,WAAW,GAClB,OAAO;EACL,QAAQ;EACR,SAAS;CACX;CAGF,IAAI,KAAK,WAAW,GAClB,OAAO;EACL,QAAQ,KAAK;EACb,SAAS;CACX;CAGF,MAAM,eAAe,KAAK,KAAK,SAAS;CACxC,IAAI,sBAAsB,YAAY,GAAG;EACvC,MAAM,aAAa,KAAK,MAAM,GAAG,EAAE;EACnC,OAAO;GACL,QAAQ,WAAW,UAAU,IAAI,WAAW,KAAK;GACjD,SAAS;EACX;CACF;CAEA,OAAO;EACL,QAAQ;EACR,SAAS;CACX;AACF"}
1
+ {"version":3,"file":"emit.mjs","names":[],"sources":["../../../src/runtime/emit.ts"],"sourcesContent":["import type { TriggerEventOptions } from './types'\nimport { hasOwn, hyphenate } from '../utils'\n\nfunction isTriggerEventOptions(value: unknown): value is TriggerEventOptions {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return false\n }\n return (\n hasOwn(value, 'bubbles')\n || hasOwn(value, 'composed')\n || hasOwn(value, 'capturePhase')\n )\n}\n\nexport function normalizeEmitEventName(eventName: string) {\n return eventName.includes(':') ? eventName.replace(/:/g, '-').toLowerCase() : hyphenate(eventName)\n}\n\nexport function normalizeEmitPayload(args: any[]): { detail: any, options: TriggerEventOptions | undefined } {\n if (args.length === 0) {\n return {\n detail: undefined,\n options: undefined,\n }\n }\n\n if (args.length === 1) {\n return {\n detail: args[0],\n options: undefined,\n }\n }\n\n const maybeOptions = args[args.length - 1]\n if (isTriggerEventOptions(maybeOptions)) {\n const detailArgs = args.slice(0, -1)\n return {\n detail: detailArgs.length <= 1 ? detailArgs[0] : detailArgs,\n options: maybeOptions,\n }\n }\n\n return {\n detail: args,\n options: undefined,\n }\n}\n"],"mappings":";;;AAGA,SAAS,sBAAsB,OAA8C;CAC3E,IAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK,GAC5D,OAAO;CAET,OACE,OAAO,OAAO,SAAS,KACpB,OAAO,OAAO,UAAU,KACxB,OAAO,OAAO,cAAc;AAEnC;AAEA,SAAgB,uBAAuB,WAAmB;CACxD,OAAO,UAAU,SAAS,GAAG,IAAI,UAAU,QAAQ,MAAM,GAAG,CAAC,CAAC,YAAY,IAAI,UAAU,SAAS;AACnG;AAEA,SAAgB,qBAAqB,MAAwE;CAC3G,IAAI,KAAK,WAAW,GAClB,OAAO;EACL,QAAQ;EACR,SAAS;CACX;CAGF,IAAI,KAAK,WAAW,GAClB,OAAO;EACL,QAAQ,KAAK;EACb,SAAS;CACX;CAGF,MAAM,eAAe,KAAK,KAAK,SAAS;CACxC,IAAI,sBAAsB,YAAY,GAAG;EACvC,MAAM,aAAa,KAAK,MAAM,GAAG,EAAE;EACnC,OAAO;GACL,QAAQ,WAAW,UAAU,IAAI,WAAW,KAAK;GACjD,SAAS;EACX;CACF;CAEA,OAAO;EACL,QAAQ;EACR,SAAS;CACX;AACF"}
@@ -91,7 +91,11 @@ function getHandlerMap(target) {
91
91
  function normalizeChildren(value, target, islandId, seed, adapters) {
92
92
  const resolved = typeof value === "function" ? value() : value;
93
93
  if (resolved == null || resolved === false || resolved === true) return [];
94
- if (Array.isArray(resolved)) return resolved.flatMap((item) => normalizeChildren(item, target, islandId, seed, adapters));
94
+ if (Array.isArray(resolved)) {
95
+ const children = [];
96
+ for (const item of resolved) children.push(...normalizeChildren(item, target, islandId, seed, adapters));
97
+ return children;
98
+ }
95
99
  if (typeof resolved === "object" && !isVNode(resolved)) return normalizeChildren(resolved.default, target, islandId, seed, adapters);
96
100
  const node = normalizeNode(resolved, target, islandId, seed, adapters);
97
101
  return node ? [node] : [];
@@ -1 +1 @@
1
- {"version":3,"file":"jsxIsland.mjs","names":["slots"],"sources":["../../../src/runtime/jsxIsland.ts"],"sourcesContent":["import { WEVU_JSX_ISLAND_HANDLER_MAP_KEY } from '@weapp-core/constants'\n\nexport const Fragment = Symbol.for('wevu.jsx.fragment')\n\nexport interface WevuJsxVNode {\n children?: unknown\n props?: Record<string, any> | null\n type: unknown\n}\n\nexport interface WevuJsxIslandNode {\n children?: WevuJsxIslandNode[]\n events?: Record<string, string>\n kind: 'element' | 'fragment' | 'text'\n props?: Record<string, any>\n tag?: string\n text?: string\n}\n\nexport interface WevuJsxIslandAdapters {\n normalizeClass: (value: unknown) => string\n normalizeStyle: (value: unknown) => string\n}\n\nexport function createVNode(type: unknown, props?: Record<string, any> | null, children?: unknown): WevuJsxVNode {\n return { type, props, children }\n}\n\nexport function createTextVNode(text: unknown): WevuJsxVNode {\n return { type: 'text', props: null, children: String(text ?? '') }\n}\n\nexport function isVNode(value: unknown): value is WevuJsxVNode {\n return !!value && typeof value === 'object' && 'type' in value\n}\n\nexport function mergeProps(...sources: Array<Record<string, any> | null | undefined>) {\n const output: Record<string, any> = {}\n for (const source of sources) {\n if (!source) {\n continue\n }\n for (const [key, value] of Object.entries(source)) {\n if (key === 'class' && output.class) {\n output.class = [output.class, value]\n }\n else if (key === 'style' && output.style) {\n output.style = [output.style, value]\n }\n else {\n output[key] = value\n }\n }\n }\n return output\n}\n\nexport function transformOn(events: Record<string, unknown>) {\n const output: Record<string, unknown> = {}\n for (const [name, handler] of Object.entries(events)) {\n output[`on${name.charAt(0).toUpperCase()}${name.slice(1)}`] = handler\n }\n return output\n}\n\nexport function resolveComponent(name: string) {\n return name\n}\n\nexport const vShow = 'show'\nexport const vModelText = 'model-text'\nexport const vModelCheckbox = 'model-checkbox'\nexport const vModelRadio = 'model-radio'\nexport const vModelSelect = 'model-select'\n\nexport function withDirectives(vnode: WevuJsxVNode, directives: unknown[]) {\n const props = { ...(vnode.props ?? {}) }\n for (const raw of directives) {\n if (!Array.isArray(raw)) {\n continue\n }\n const [directive, value, argument] = raw\n if (directive === vShow) {\n props.hidden = !value\n continue\n }\n if (\n directive === vModelText\n || directive === vModelCheckbox\n || directive === vModelRadio\n || directive === vModelSelect\n ) {\n const modelName = typeof argument === 'string' && argument ? argument : 'modelValue'\n const updater = props[`onUpdate:${modelName}`]\n props[modelName === 'modelValue' ? 'value' : modelName] = value\n if (typeof updater === 'function') {\n const eventName = directive === vModelText ? 'onInput' : 'onChange'\n props[eventName] = (event: any) => updater(event?.detail?.value ?? event?.detail)\n }\n }\n }\n return { ...vnode, props }\n}\n\nexport function resolveDirective(name: string) {\n return name\n}\n\nfunction eventNameFromProp(name: string) {\n if (!/^on[A-Z]/.test(name)) {\n return undefined\n }\n return name.slice(2).toLowerCase()\n}\n\nfunction getHandlerMap(target: any): Record<string, (...args: any[]) => any> {\n const existing = target?.[WEVU_JSX_ISLAND_HANDLER_MAP_KEY]\n if (existing && typeof existing === 'object') {\n return existing\n }\n const next: Record<string, (...args: any[]) => any> = Object.create(null)\n if (target && (typeof target === 'object' || typeof target === 'function')) {\n Object.defineProperty(target, WEVU_JSX_ISLAND_HANDLER_MAP_KEY, {\n value: next,\n configurable: true,\n writable: true,\n })\n }\n return next\n}\n\nfunction normalizeChildren(\n value: unknown,\n target: any,\n islandId: string,\n seed: { value: number },\n adapters: WevuJsxIslandAdapters,\n): WevuJsxIslandNode[] {\n const resolved = typeof value === 'function' ? value() : value\n if (resolved == null || resolved === false || resolved === true) {\n return []\n }\n if (Array.isArray(resolved)) {\n return resolved.flatMap(item => normalizeChildren(item, target, islandId, seed, adapters))\n }\n if (typeof resolved === 'object' && !isVNode(resolved)) {\n const slots = resolved as Record<string, unknown>\n return normalizeChildren(slots.default, target, islandId, seed, adapters)\n }\n // eslint-disable-next-line ts/no-use-before-define\n const node = normalizeNode(resolved, target, islandId, seed, adapters)\n return node ? [node] : []\n}\n\nfunction normalizeNode(\n value: unknown,\n target: any,\n islandId: string,\n seed: { value: number },\n adapters: WevuJsxIslandAdapters,\n): WevuJsxIslandNode | undefined {\n if (value == null || value === false || value === true) {\n return undefined\n }\n if (Array.isArray(value)) {\n return { kind: 'fragment', children: normalizeChildren(value, target, islandId, seed, adapters) }\n }\n if (typeof value === 'string' || typeof value === 'number') {\n return { kind: 'text', text: String(value) }\n }\n if (!isVNode(value)) {\n return { kind: 'text', text: String(value) }\n }\n if (value.type === Fragment) {\n return { kind: 'fragment', children: normalizeChildren(value.children, target, islandId, seed, adapters) }\n }\n if (value.type === 'text') {\n return { kind: 'text', text: String(value.children ?? '') }\n }\n if (typeof value.type === 'function') {\n return normalizeNode(value.type(value.props ?? {}, value.children), target, islandId, seed, adapters)\n }\n if (value.type && typeof value.type === 'object' && typeof (value.type as any).render === 'function') {\n return normalizeNode((value.type as any).render.call(value.props ?? {}), target, islandId, seed, adapters)\n }\n const tag = typeof value.type === 'string' ? value.type : undefined\n if (!tag) {\n return undefined\n }\n\n const props: Record<string, any> = {}\n const events: Record<string, string> = {}\n const handlers = getHandlerMap(target)\n for (const [name, raw] of Object.entries(value.props ?? {})) {\n const eventName = eventNameFromProp(name)\n if (eventName && typeof raw === 'function') {\n const handlerId = `${islandId}:${seed.value++}`\n handlers[handlerId] = raw\n events[eventName] = handlerId\n continue\n }\n if (typeof raw === 'function' || raw === undefined) {\n continue\n }\n if (name === 'class' || name === 'className') {\n props.class = adapters.normalizeClass(raw)\n }\n else if (name === 'style') {\n props.style = adapters.normalizeStyle(raw)\n }\n else {\n props[name] = raw\n }\n }\n return {\n kind: 'element',\n tag,\n props,\n events,\n children: normalizeChildren(value.children, target, islandId, seed, adapters),\n }\n}\n\nexport function normalizeJsxIsland(\n this: any,\n value: unknown,\n islandId: string,\n adapters: WevuJsxIslandAdapters,\n): WevuJsxIslandNode | null {\n const handlers = getHandlerMap(this)\n for (const key of Object.keys(handlers)) {\n if (key.startsWith(`${islandId}:`)) {\n delete handlers[key]\n }\n }\n return normalizeNode(value, this, islandId, { value: 0 }, adapters) ?? null\n}\n\nexport function runJsxIslandHandler(target: any, event: any) {\n const handlerId = event?.currentTarget?.dataset?.wvJsxHandler ?? event?.target?.dataset?.wvJsxHandler\n if (typeof handlerId !== 'string' || !handlerId) {\n return undefined\n }\n const runtime = target?.__wevu\n const handlers = target?.[WEVU_JSX_ISLAND_HANDLER_MAP_KEY]\n ?? runtime?.proxy?.[WEVU_JSX_ISLAND_HANDLER_MAP_KEY]\n const handler = handlers?.[handlerId]\n return typeof handler === 'function' ? handler.call(runtime?.proxy ?? target, event) : undefined\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"jsxIsland.mjs","names":["slots"],"sources":["../../../src/runtime/jsxIsland.ts"],"sourcesContent":["import { WEVU_JSX_ISLAND_HANDLER_MAP_KEY } from '@weapp-core/constants'\n\nexport const Fragment = Symbol.for('wevu.jsx.fragment')\n\nexport interface WevuJsxVNode {\n children?: unknown\n props?: Record<string, any> | null\n type: unknown\n}\n\nexport interface WevuJsxIslandNode {\n children?: WevuJsxIslandNode[]\n events?: Record<string, string>\n kind: 'element' | 'fragment' | 'text'\n props?: Record<string, any>\n tag?: string\n text?: string\n}\n\nexport interface WevuJsxIslandAdapters {\n normalizeClass: (value: unknown) => string\n normalizeStyle: (value: unknown) => string\n}\n\nexport function createVNode(type: unknown, props?: Record<string, any> | null, children?: unknown): WevuJsxVNode {\n return { type, props, children }\n}\n\nexport function createTextVNode(text: unknown): WevuJsxVNode {\n return { type: 'text', props: null, children: String(text ?? '') }\n}\n\nexport function isVNode(value: unknown): value is WevuJsxVNode {\n return !!value && typeof value === 'object' && 'type' in value\n}\n\nexport function mergeProps(...sources: Array<Record<string, any> | null | undefined>) {\n const output: Record<string, any> = {}\n for (const source of sources) {\n if (!source) {\n continue\n }\n for (const [key, value] of Object.entries(source)) {\n if (key === 'class' && output.class) {\n output.class = [output.class, value]\n }\n else if (key === 'style' && output.style) {\n output.style = [output.style, value]\n }\n else {\n output[key] = value\n }\n }\n }\n return output\n}\n\nexport function transformOn(events: Record<string, unknown>) {\n const output: Record<string, unknown> = {}\n for (const [name, handler] of Object.entries(events)) {\n output[`on${name.charAt(0).toUpperCase()}${name.slice(1)}`] = handler\n }\n return output\n}\n\nexport function resolveComponent(name: string) {\n return name\n}\n\nexport const vShow = 'show'\nexport const vModelText = 'model-text'\nexport const vModelCheckbox = 'model-checkbox'\nexport const vModelRadio = 'model-radio'\nexport const vModelSelect = 'model-select'\n\nexport function withDirectives(vnode: WevuJsxVNode, directives: unknown[]) {\n const props = { ...(vnode.props ?? {}) }\n for (const raw of directives) {\n if (!Array.isArray(raw)) {\n continue\n }\n const [directive, value, argument] = raw\n if (directive === vShow) {\n props.hidden = !value\n continue\n }\n if (\n directive === vModelText\n || directive === vModelCheckbox\n || directive === vModelRadio\n || directive === vModelSelect\n ) {\n const modelName = typeof argument === 'string' && argument ? argument : 'modelValue'\n const updater = props[`onUpdate:${modelName}`]\n props[modelName === 'modelValue' ? 'value' : modelName] = value\n if (typeof updater === 'function') {\n const eventName = directive === vModelText ? 'onInput' : 'onChange'\n props[eventName] = (event: any) => updater(event?.detail?.value ?? event?.detail)\n }\n }\n }\n return { ...vnode, props }\n}\n\nexport function resolveDirective(name: string) {\n return name\n}\n\nfunction eventNameFromProp(name: string) {\n if (!/^on[A-Z]/.test(name)) {\n return undefined\n }\n return name.slice(2).toLowerCase()\n}\n\nfunction getHandlerMap(target: any): Record<string, (...args: any[]) => any> {\n const existing = target?.[WEVU_JSX_ISLAND_HANDLER_MAP_KEY]\n if (existing && typeof existing === 'object') {\n return existing\n }\n const next: Record<string, (...args: any[]) => any> = Object.create(null)\n if (target && (typeof target === 'object' || typeof target === 'function')) {\n Object.defineProperty(target, WEVU_JSX_ISLAND_HANDLER_MAP_KEY, {\n value: next,\n configurable: true,\n writable: true,\n })\n }\n return next\n}\n\nfunction normalizeChildren(\n value: unknown,\n target: any,\n islandId: string,\n seed: { value: number },\n adapters: WevuJsxIslandAdapters,\n): WevuJsxIslandNode[] {\n const resolved = typeof value === 'function' ? value() : value\n if (resolved == null || resolved === false || resolved === true) {\n return []\n }\n if (Array.isArray(resolved)) {\n const children: WevuJsxIslandNode[] = []\n for (const item of resolved) {\n children.push(...normalizeChildren(item, target, islandId, seed, adapters))\n }\n return children\n }\n if (typeof resolved === 'object' && !isVNode(resolved)) {\n const slots = resolved as Record<string, unknown>\n return normalizeChildren(slots.default, target, islandId, seed, adapters)\n }\n // eslint-disable-next-line ts/no-use-before-define\n const node = normalizeNode(resolved, target, islandId, seed, adapters)\n return node ? [node] : []\n}\n\nfunction normalizeNode(\n value: unknown,\n target: any,\n islandId: string,\n seed: { value: number },\n adapters: WevuJsxIslandAdapters,\n): WevuJsxIslandNode | undefined {\n if (value == null || value === false || value === true) {\n return undefined\n }\n if (Array.isArray(value)) {\n return { kind: 'fragment', children: normalizeChildren(value, target, islandId, seed, adapters) }\n }\n if (typeof value === 'string' || typeof value === 'number') {\n return { kind: 'text', text: String(value) }\n }\n if (!isVNode(value)) {\n return { kind: 'text', text: String(value) }\n }\n if (value.type === Fragment) {\n return { kind: 'fragment', children: normalizeChildren(value.children, target, islandId, seed, adapters) }\n }\n if (value.type === 'text') {\n return { kind: 'text', text: String(value.children ?? '') }\n }\n if (typeof value.type === 'function') {\n return normalizeNode(value.type(value.props ?? {}, value.children), target, islandId, seed, adapters)\n }\n if (value.type && typeof value.type === 'object' && typeof (value.type as any).render === 'function') {\n return normalizeNode((value.type as any).render.call(value.props ?? {}), target, islandId, seed, adapters)\n }\n const tag = typeof value.type === 'string' ? value.type : undefined\n if (!tag) {\n return undefined\n }\n\n const props: Record<string, any> = {}\n const events: Record<string, string> = {}\n const handlers = getHandlerMap(target)\n for (const [name, raw] of Object.entries(value.props ?? {})) {\n const eventName = eventNameFromProp(name)\n if (eventName && typeof raw === 'function') {\n const handlerId = `${islandId}:${seed.value++}`\n handlers[handlerId] = raw\n events[eventName] = handlerId\n continue\n }\n if (typeof raw === 'function' || raw === undefined) {\n continue\n }\n if (name === 'class' || name === 'className') {\n props.class = adapters.normalizeClass(raw)\n }\n else if (name === 'style') {\n props.style = adapters.normalizeStyle(raw)\n }\n else {\n props[name] = raw\n }\n }\n return {\n kind: 'element',\n tag,\n props,\n events,\n children: normalizeChildren(value.children, target, islandId, seed, adapters),\n }\n}\n\nexport function normalizeJsxIsland(\n this: any,\n value: unknown,\n islandId: string,\n adapters: WevuJsxIslandAdapters,\n): WevuJsxIslandNode | null {\n const handlers = getHandlerMap(this)\n for (const key of Object.keys(handlers)) {\n if (key.startsWith(`${islandId}:`)) {\n delete handlers[key]\n }\n }\n return normalizeNode(value, this, islandId, { value: 0 }, adapters) ?? null\n}\n\nexport function runJsxIslandHandler(target: any, event: any) {\n const handlerId = event?.currentTarget?.dataset?.wvJsxHandler ?? event?.target?.dataset?.wvJsxHandler\n if (typeof handlerId !== 'string' || !handlerId) {\n return undefined\n }\n const runtime = target?.__wevu\n const handlers = target?.[WEVU_JSX_ISLAND_HANDLER_MAP_KEY]\n ?? runtime?.proxy?.[WEVU_JSX_ISLAND_HANDLER_MAP_KEY]\n const handler = handlers?.[handlerId]\n return typeof handler === 'function' ? handler.call(runtime?.proxy ?? target, event) : undefined\n}\n"],"mappings":"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"}
@@ -147,7 +147,8 @@ function prepareComponentOptions(mpOptions) {
147
147
  const userObservers = restOptions.observers;
148
148
  const setupLifecycle = restOptions.setupLifecycle === "created" ? "created" : "attached";
149
149
  delete restOptions.setupLifecycle;
150
- const vueLifecycles = Object.fromEntries([
150
+ const vueLifecycles = {};
151
+ for (const key of [
151
152
  "beforeCreate",
152
153
  "created",
153
154
  "beforeMount",
@@ -156,7 +157,7 @@ function prepareComponentOptions(mpOptions) {
156
157
  "beforeDestroy",
157
158
  "unmounted",
158
159
  "destroyed"
159
- ].map((key) => [key, restOptions[key]]));
160
+ ]) vueLifecycles[key] = restOptions[key];
160
161
  delete restOptions.features;
161
162
  for (const key of Object.keys(vueLifecycles)) delete restOptions[key];
162
163
  delete restOptions.onLoad;
@@ -1 +1 @@
1
- {"version":3,"file":"options.mjs","names":[],"sources":["../../../../../src/runtime/register/component/options.ts"],"sourcesContent":["import type { LayoutHostBinding } from '../../layoutBridge'\nimport type { TemplateRefBinding } from '../../templateRefs'\nimport type { InternalRuntimeState, MiniProgramComponentRawOptions, PageFeatures } from '../../types'\nimport { WEVU_COMPONENT_NAME_KEY, WEVU_PROPS_ALIASES_KEY, WEVU_PROPS_DERIVED_KEYS_KEY } from '@weapp-core/constants'\nimport { hasOwn } from '../../../utils'\n\ninterface PreparedComponentOptions {\n userMethods: Record<string, (...args: any[]) => any>\n userLifetimes: Record<string, any>\n userPageLifetimes: Record<string, any>\n userOptions: Record<string, any>\n restOptions: Record<string, any>\n topLevelMethods: Record<string, (...args: any[]) => any>\n templateRefs: TemplateRefBinding[] | undefined\n layoutHosts: LayoutHostBinding[] | undefined\n propsAliases: Record<string, string> | undefined\n propsDerivedKeys: string[] | undefined\n userObservers: Record<string, any> | undefined\n setupLifecycle: 'created' | 'attached'\n vueLifecycles: Record<string, unknown>\n isPage: boolean\n features: PageFeatures\n userOnLoad: any\n userOnUnload: any\n userOnShow: any\n userOnHide: any\n userOnReady: any\n userOnSaveExitState: any\n userOnPullDownRefresh: any\n userOnReachBottom: any\n userOnPageScroll: any\n userOnRouteDone: any\n userOnTabItemTap: any\n userOnResize: any\n userOnShareAppMessage: any\n userOnShareTimeline: any\n userOnAddToFavorites: any\n applyExtraInstanceFields: (instance: InternalRuntimeState) => void\n}\n\nfunction cloneInstanceFieldValue(value: unknown, cache = new WeakMap<object, unknown>()): unknown {\n if (!value || typeof value !== 'object') {\n return value\n }\n if (cache.has(value as object)) {\n return cache.get(value as object)\n }\n if (Array.isArray(value)) {\n const next: unknown[] = []\n cache.set(value, next)\n for (const item of value) {\n next.push(cloneInstanceFieldValue(item, cache))\n }\n return next\n }\n const next: Record<string, unknown> = {}\n cache.set(value as object, next)\n for (const [key, child] of Object.entries(value as Record<string, unknown>)) {\n next[key] = cloneInstanceFieldValue(child, cache)\n }\n return next\n}\n\nexport function getRuntimeOwnerLabel(instance: InternalRuntimeState) {\n const route = (instance as any).route\n if (typeof route === 'string' && route) {\n return route\n }\n const is = (instance as any).is\n if (typeof is === 'string' && is) {\n return is\n }\n return 'unknown'\n}\n\nexport function prepareComponentOptions(mpOptions: MiniProgramComponentRawOptions): PreparedComponentOptions {\n const {\n methods: userMethods = {},\n lifetimes: userLifetimes = {},\n pageLifetimes: userPageLifetimes = {},\n options: userOptions = {},\n ...rest\n } = mpOptions\n\n const userOnLoad = (rest as any).onLoad\n const userOnUnload = (rest as any).onUnload\n const userOnShow = (rest as any).onShow\n const userOnHide = (rest as any).onHide\n const userOnReady = (rest as any).onReady\n const userOnSaveExitState = (rest as any).onSaveExitState\n const userOnPullDownRefresh = (rest as any).onPullDownRefresh\n const userOnReachBottom = (rest as any).onReachBottom\n const userOnPageScroll = (rest as any).onPageScroll\n const userOnRouteDone = (rest as any).onRouteDone\n const userOnTabItemTap = (rest as any).onTabItemTap\n const userOnResize = (rest as any).onResize\n const userOnShareAppMessage = (rest as any).onShareAppMessage\n const userOnShareTimeline = (rest as any).onShareTimeline\n const userOnAddToFavorites = (rest as any).onAddToFavorites\n const features = ((rest as any).features ?? {}) as PageFeatures\n const hasPageOnlyHooks = [\n userOnLoad,\n userOnUnload,\n userOnShow,\n userOnHide,\n userOnReady,\n userOnSaveExitState,\n userOnPullDownRefresh,\n userOnReachBottom,\n userOnPageScroll,\n userOnRouteDone,\n userOnTabItemTap,\n userOnResize,\n userOnShareAppMessage,\n userOnShareTimeline,\n userOnAddToFavorites,\n ].some(hook => typeof hook === 'function')\n const isPage = hasOwn(rest, '__wevu_isPage')\n ? (rest as any).__wevu_isPage === true\n : Object.keys(features ?? {}).length > 0 || hasPageOnlyHooks\n\n const restOptions: Record<string, any> = {\n ...(rest as any),\n }\n const preservedInstanceFieldKeys = new Set([\n 'data',\n 'behaviors',\n 'relations',\n 'externalClasses',\n 'options',\n 'properties',\n 'observers',\n 'pureDataPattern',\n 'virtualHost',\n 'definitionFilter',\n 'export',\n '__wevuTemplateRefs',\n '__wevuLayoutHosts',\n WEVU_PROPS_ALIASES_KEY,\n WEVU_PROPS_DERIVED_KEYS_KEY,\n 'setupLifecycle',\n 'features',\n '__wevu_isPage',\n ])\n const extraInstanceFieldEntries: Array<[string, unknown]> = []\n for (const [key, value] of Object.entries(restOptions)) {\n if (preservedInstanceFieldKeys.has(key)) {\n continue\n }\n if (typeof value === 'function') {\n continue\n }\n extraInstanceFieldEntries.push([key, value])\n delete restOptions[key]\n }\n\n const applyExtraInstanceFields = (instance: InternalRuntimeState) => {\n const componentName = (mpOptions as Record<string, unknown>).name\n if (typeof componentName === 'string' && componentName) {\n Object.defineProperty(instance, WEVU_COMPONENT_NAME_KEY, {\n configurable: true,\n enumerable: false,\n value: componentName,\n })\n }\n for (const [key, value] of extraInstanceFieldEntries) {\n if (hasOwn(instance, key)) {\n continue\n }\n try {\n ;(instance as any)[key] = cloneInstanceFieldValue(value)\n }\n catch {\n // 忽略实例字段注入失败,避免阻断生命周期。\n }\n }\n }\n\n const moveToMethodsExcludes = new Set([\n 'data',\n 'export',\n 'definitionFilter',\n 'onLoad',\n 'onUnload',\n 'onShow',\n 'onHide',\n 'onReady',\n 'onSaveExitState',\n 'onPullDownRefresh',\n 'onReachBottom',\n 'onPageScroll',\n 'onRouteDone',\n 'onTabItemTap',\n 'onResize',\n 'onShareAppMessage',\n 'onShareTimeline',\n 'onAddToFavorites',\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUnmount',\n 'beforeDestroy',\n 'unmounted',\n 'destroyed',\n ])\n const topLevelMethods: Record<string, (...args: any[]) => any> = {}\n for (const [key, value] of Object.entries(restOptions)) {\n if (typeof value !== 'function' || moveToMethodsExcludes.has(key)) {\n continue\n }\n topLevelMethods[key] = value as (...args: any[]) => any\n delete restOptions[key]\n }\n const templateRefs = (restOptions as any).__wevuTemplateRefs as TemplateRefBinding[] | undefined\n delete (restOptions as any).__wevuTemplateRefs\n const layoutHosts = (restOptions as any).__wevuLayoutHosts as LayoutHostBinding[] | undefined\n delete (restOptions as any).__wevuLayoutHosts\n const propsAliases = (restOptions as any)[WEVU_PROPS_ALIASES_KEY] as Record<string, string> | undefined\n delete (restOptions as any)[WEVU_PROPS_ALIASES_KEY]\n const propsDerivedKeys = (restOptions as any)[WEVU_PROPS_DERIVED_KEYS_KEY] as string[] | undefined\n delete (restOptions as any)[WEVU_PROPS_DERIVED_KEYS_KEY]\n const userObservers = (restOptions as any).observers as Record<string, any> | undefined\n const setupLifecycle = (restOptions as any).setupLifecycle === 'created' ? 'created' : 'attached'\n delete (restOptions as any).setupLifecycle\n const vueLifecycles = Object.fromEntries(\n [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUnmount',\n 'beforeDestroy',\n 'unmounted',\n 'destroyed',\n ].map(key => [key, restOptions[key]]),\n )\n delete restOptions.features\n for (const key of Object.keys(vueLifecycles)) {\n delete restOptions[key]\n }\n delete restOptions.onLoad\n delete restOptions.onUnload\n delete restOptions.onShow\n delete restOptions.onHide\n delete restOptions.onReady\n\n return {\n userMethods,\n userLifetimes,\n userPageLifetimes,\n userOptions,\n restOptions,\n topLevelMethods,\n templateRefs,\n layoutHosts,\n propsAliases,\n propsDerivedKeys,\n userObservers,\n setupLifecycle,\n vueLifecycles,\n isPage,\n features,\n userOnLoad,\n userOnUnload,\n userOnShow,\n userOnHide,\n userOnReady,\n userOnSaveExitState,\n userOnPullDownRefresh,\n userOnReachBottom,\n userOnPageScroll,\n userOnRouteDone,\n userOnTabItemTap,\n userOnResize,\n userOnShareAppMessage,\n userOnShareTimeline,\n userOnAddToFavorites,\n applyExtraInstanceFields,\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"options.mjs","names":[],"sources":["../../../../../src/runtime/register/component/options.ts"],"sourcesContent":["import type { LayoutHostBinding } from '../../layoutBridge'\nimport type { TemplateRefBinding } from '../../templateRefs'\nimport type { InternalRuntimeState, MiniProgramComponentRawOptions, PageFeatures } from '../../types'\nimport { WEVU_COMPONENT_NAME_KEY, WEVU_PROPS_ALIASES_KEY, WEVU_PROPS_DERIVED_KEYS_KEY } from '@weapp-core/constants'\nimport { hasOwn } from '../../../utils'\n\ninterface PreparedComponentOptions {\n userMethods: Record<string, (...args: any[]) => any>\n userLifetimes: Record<string, any>\n userPageLifetimes: Record<string, any>\n userOptions: Record<string, any>\n restOptions: Record<string, any>\n topLevelMethods: Record<string, (...args: any[]) => any>\n templateRefs: TemplateRefBinding[] | undefined\n layoutHosts: LayoutHostBinding[] | undefined\n propsAliases: Record<string, string> | undefined\n propsDerivedKeys: string[] | undefined\n userObservers: Record<string, any> | undefined\n setupLifecycle: 'created' | 'attached'\n vueLifecycles: Record<string, unknown>\n isPage: boolean\n features: PageFeatures\n userOnLoad: any\n userOnUnload: any\n userOnShow: any\n userOnHide: any\n userOnReady: any\n userOnSaveExitState: any\n userOnPullDownRefresh: any\n userOnReachBottom: any\n userOnPageScroll: any\n userOnRouteDone: any\n userOnTabItemTap: any\n userOnResize: any\n userOnShareAppMessage: any\n userOnShareTimeline: any\n userOnAddToFavorites: any\n applyExtraInstanceFields: (instance: InternalRuntimeState) => void\n}\n\nfunction cloneInstanceFieldValue(value: unknown, cache = new WeakMap<object, unknown>()): unknown {\n if (!value || typeof value !== 'object') {\n return value\n }\n if (cache.has(value as object)) {\n return cache.get(value as object)\n }\n if (Array.isArray(value)) {\n const next: unknown[] = []\n cache.set(value, next)\n for (const item of value) {\n next.push(cloneInstanceFieldValue(item, cache))\n }\n return next\n }\n const next: Record<string, unknown> = {}\n cache.set(value as object, next)\n for (const [key, child] of Object.entries(value as Record<string, unknown>)) {\n next[key] = cloneInstanceFieldValue(child, cache)\n }\n return next\n}\n\nexport function getRuntimeOwnerLabel(instance: InternalRuntimeState) {\n const route = (instance as any).route\n if (typeof route === 'string' && route) {\n return route\n }\n const is = (instance as any).is\n if (typeof is === 'string' && is) {\n return is\n }\n return 'unknown'\n}\n\nexport function prepareComponentOptions(mpOptions: MiniProgramComponentRawOptions): PreparedComponentOptions {\n const {\n methods: userMethods = {},\n lifetimes: userLifetimes = {},\n pageLifetimes: userPageLifetimes = {},\n options: userOptions = {},\n ...rest\n } = mpOptions\n\n const userOnLoad = (rest as any).onLoad\n const userOnUnload = (rest as any).onUnload\n const userOnShow = (rest as any).onShow\n const userOnHide = (rest as any).onHide\n const userOnReady = (rest as any).onReady\n const userOnSaveExitState = (rest as any).onSaveExitState\n const userOnPullDownRefresh = (rest as any).onPullDownRefresh\n const userOnReachBottom = (rest as any).onReachBottom\n const userOnPageScroll = (rest as any).onPageScroll\n const userOnRouteDone = (rest as any).onRouteDone\n const userOnTabItemTap = (rest as any).onTabItemTap\n const userOnResize = (rest as any).onResize\n const userOnShareAppMessage = (rest as any).onShareAppMessage\n const userOnShareTimeline = (rest as any).onShareTimeline\n const userOnAddToFavorites = (rest as any).onAddToFavorites\n const features = ((rest as any).features ?? {}) as PageFeatures\n const hasPageOnlyHooks = [\n userOnLoad,\n userOnUnload,\n userOnShow,\n userOnHide,\n userOnReady,\n userOnSaveExitState,\n userOnPullDownRefresh,\n userOnReachBottom,\n userOnPageScroll,\n userOnRouteDone,\n userOnTabItemTap,\n userOnResize,\n userOnShareAppMessage,\n userOnShareTimeline,\n userOnAddToFavorites,\n ].some(hook => typeof hook === 'function')\n const isPage = hasOwn(rest, '__wevu_isPage')\n ? (rest as any).__wevu_isPage === true\n : Object.keys(features ?? {}).length > 0 || hasPageOnlyHooks\n\n const restOptions: Record<string, any> = {\n ...(rest as any),\n }\n const preservedInstanceFieldKeys = new Set([\n 'data',\n 'behaviors',\n 'relations',\n 'externalClasses',\n 'options',\n 'properties',\n 'observers',\n 'pureDataPattern',\n 'virtualHost',\n 'definitionFilter',\n 'export',\n '__wevuTemplateRefs',\n '__wevuLayoutHosts',\n WEVU_PROPS_ALIASES_KEY,\n WEVU_PROPS_DERIVED_KEYS_KEY,\n 'setupLifecycle',\n 'features',\n '__wevu_isPage',\n ])\n const extraInstanceFieldEntries: Array<[string, unknown]> = []\n for (const [key, value] of Object.entries(restOptions)) {\n if (preservedInstanceFieldKeys.has(key)) {\n continue\n }\n if (typeof value === 'function') {\n continue\n }\n extraInstanceFieldEntries.push([key, value])\n delete restOptions[key]\n }\n\n const applyExtraInstanceFields = (instance: InternalRuntimeState) => {\n const componentName = (mpOptions as Record<string, unknown>).name\n if (typeof componentName === 'string' && componentName) {\n Object.defineProperty(instance, WEVU_COMPONENT_NAME_KEY, {\n configurable: true,\n enumerable: false,\n value: componentName,\n })\n }\n for (const [key, value] of extraInstanceFieldEntries) {\n if (hasOwn(instance, key)) {\n continue\n }\n try {\n ;(instance as any)[key] = cloneInstanceFieldValue(value)\n }\n catch {\n // 忽略实例字段注入失败,避免阻断生命周期。\n }\n }\n }\n\n const moveToMethodsExcludes = new Set([\n 'data',\n 'export',\n 'definitionFilter',\n 'onLoad',\n 'onUnload',\n 'onShow',\n 'onHide',\n 'onReady',\n 'onSaveExitState',\n 'onPullDownRefresh',\n 'onReachBottom',\n 'onPageScroll',\n 'onRouteDone',\n 'onTabItemTap',\n 'onResize',\n 'onShareAppMessage',\n 'onShareTimeline',\n 'onAddToFavorites',\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUnmount',\n 'beforeDestroy',\n 'unmounted',\n 'destroyed',\n ])\n const topLevelMethods: Record<string, (...args: any[]) => any> = {}\n for (const [key, value] of Object.entries(restOptions)) {\n if (typeof value !== 'function' || moveToMethodsExcludes.has(key)) {\n continue\n }\n topLevelMethods[key] = value as (...args: any[]) => any\n delete restOptions[key]\n }\n const templateRefs = (restOptions as any).__wevuTemplateRefs as TemplateRefBinding[] | undefined\n delete (restOptions as any).__wevuTemplateRefs\n const layoutHosts = (restOptions as any).__wevuLayoutHosts as LayoutHostBinding[] | undefined\n delete (restOptions as any).__wevuLayoutHosts\n const propsAliases = (restOptions as any)[WEVU_PROPS_ALIASES_KEY] as Record<string, string> | undefined\n delete (restOptions as any)[WEVU_PROPS_ALIASES_KEY]\n const propsDerivedKeys = (restOptions as any)[WEVU_PROPS_DERIVED_KEYS_KEY] as string[] | undefined\n delete (restOptions as any)[WEVU_PROPS_DERIVED_KEYS_KEY]\n const userObservers = (restOptions as any).observers as Record<string, any> | undefined\n const setupLifecycle = (restOptions as any).setupLifecycle === 'created' ? 'created' : 'attached'\n delete (restOptions as any).setupLifecycle\n const vueLifecycles: Record<string, any> = {}\n for (const key of [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUnmount',\n 'beforeDestroy',\n 'unmounted',\n 'destroyed',\n ]) {\n vueLifecycles[key] = restOptions[key]\n }\n delete restOptions.features\n for (const key of Object.keys(vueLifecycles)) {\n delete restOptions[key]\n }\n delete restOptions.onLoad\n delete restOptions.onUnload\n delete restOptions.onShow\n delete restOptions.onHide\n delete restOptions.onReady\n\n return {\n userMethods,\n userLifetimes,\n userPageLifetimes,\n userOptions,\n restOptions,\n topLevelMethods,\n templateRefs,\n layoutHosts,\n propsAliases,\n propsDerivedKeys,\n userObservers,\n setupLifecycle,\n vueLifecycles,\n isPage,\n features,\n userOnLoad,\n userOnUnload,\n userOnShow,\n userOnHide,\n userOnReady,\n userOnSaveExitState,\n userOnPullDownRefresh,\n userOnReachBottom,\n userOnPageScroll,\n userOnRouteDone,\n userOnTabItemTap,\n userOnResize,\n userOnShareAppMessage,\n userOnShareTimeline,\n userOnAddToFavorites,\n applyExtraInstanceFields,\n }\n}\n"],"mappings":"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"}
package/dist/package.mjs CHANGED
@@ -1 +1 @@
1
- var e=`7.0.2`;export{e as version};
1
+ var e=`7.0.3`;export{e as version};
@@ -1 +1 @@
1
- import{getActiveRouter as e}from"./instance.mjs";import{WEVU_INITIAL_NAVIGATION_TIMEOUT_MARKER as t}from"@weapp-core/constants";const n=1e4,r=new WeakMap,i=new WeakMap;function a(e){return Number.isFinite(e)&&e>0?Math.max(1,Math.trunc(e)):n}function o(e){return{route:typeof e.route==`string`?e.route:void 0,__route__:typeof e.__route__==`string`?e.__route__:void 0,options:e.options&&typeof e.options==`object`?{...e.options}:void 0}}function s(e){if(e&&typeof e==`object`)return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,Array.isArray(t)?[...t]:t]))}function c(e,t,i=n,o=`blocking`){r.set(e,{runner:t,mode:o,timeoutMs:a(i)})}function l(){var t,i;let a=e();return a?(t=(i=r.get(a))==null?void 0:i.timeoutMs)==null?n:t:n}function u(e){return!!(e&&typeof e==`object`&&e.__wevuNavigationFailure)}function d(n,a,c={}){let d=i.get(n);if(d)return c.onComplete&&d.blocking&&d.subscribe(c.onComplete),c.start!==!1&&d.start(a),d.blocking?d.promise:void 0;let f=e(),p=f?r.get(f):void 0,m=p==null?void 0:p.runner;if(!m)return;let h=(p==null?void 0:p.mode)===`blocking`,g=o(n),_=s(a),v=`idle`,y,b=l(),x,S=new Set,C=new Promise(e=>{x=e}),w=(e,t)=>{if(v!==`idle`&&v!==`running`)return;v=e,y!==void 0&&(clearTimeout(y),y=void 0);let n=[...S];S.clear(),m=void 0,g=void 0,_=void 0,x(t),queueMicrotask(()=>{if(v===`allowed`||v===`timed-out`)for(let e of n)e.active&&(e.callback(t),e.active=!1)})},T={promise:C,blocking:h,status:()=>v,subscribe(e){let t={callback:e,active:!0};return v!==`idle`&&v!==`running`?queueMicrotask(()=>{t.active&&(v===`allowed`||v===`timed-out`)&&(e(v===`allowed`||v===`timed-out`),t.active=!1)}):S.add(t),()=>{t.active=!1,S.delete(t)}},start(e){if(v!==`idle`)return;v=`running`,h&&(y=setTimeout(()=>{var e,n;v===`running`&&(console.warn(`${t} initial navigation exceeded ${b}ms; mounting page`,(e=(n=g==null?void 0:g.route)==null?g==null?void 0:g.__route__:n)==null?``:e),w(`timed-out`,!0))},b));let n=g,r=s(e==null?_:e),i=m;if(m=void 0,!i||!n){w(`aborted`,!1);return}i(n,r,()=>v===`running`).then(e=>{let t=u(e);w(t?`aborted`:`allowed`,!t)},()=>{w(`aborted`,!1)})},cancel(){w(`cancelled`,!1)}};return i.set(n,T),c.onComplete&&h&&T.subscribe(c.onComplete),c.start!==!1&&T.start(a),h?C:void 0}function f(e){var t;(t=i.get(e))==null||t.cancel()}export{n as DEFAULT_INITIAL_NAVIGATION_TIMEOUT,f as cancelInitialNavigation,d as ensureInitialNavigation,l as getInitialNavigationTimeout,c as registerInitialNavigationRunner};
1
+ import{getActiveRouter as e}from"./instance.mjs";import{WEVU_INITIAL_NAVIGATION_TIMEOUT_MARKER as t}from"@weapp-core/constants";import{queueMicrotaskPolyfill as n}from"@wevu/web-apis";const r=1e4,i=new WeakMap,a=new WeakMap;function o(e){return Number.isFinite(e)&&e>0?Math.max(1,Math.trunc(e)):r}function s(e){return{route:typeof e.route==`string`?e.route:void 0,__route__:typeof e.__route__==`string`?e.__route__:void 0,options:e.options&&typeof e.options==`object`?{...e.options}:void 0}}function c(e){if(!e||typeof e!=`object`)return;let t={};for(let[n,r]of Object.entries(e))t[n]=Array.isArray(r)?[...r]:r;return t}function l(e,t,n=r,a=`blocking`){i.set(e,{runner:t,mode:a,timeoutMs:o(n)})}function u(){var t,n;let a=e();return a?(t=(n=i.get(a))==null?void 0:n.timeoutMs)==null?r:t:r}function d(e){return!!(e&&typeof e==`object`&&e.__wevuNavigationFailure)}function f(r,o,l={}){let f=a.get(r);if(f)return l.onComplete&&f.blocking&&f.subscribe(l.onComplete),l.start!==!1&&f.start(o),f.blocking?f.promise:void 0;let p=e(),m=p?i.get(p):void 0,h=m==null?void 0:m.runner;if(!h)return;let g=(m==null?void 0:m.mode)===`blocking`,_=s(r),v=c(o),y=`idle`,b,x=u(),S,C=new Set,w=new Promise(e=>{S=e}),T=(e,t)=>{if(y!==`idle`&&y!==`running`)return;y=e,b!==void 0&&(clearTimeout(b),b=void 0);let r=[...C];C.clear(),h=void 0,_=void 0,v=void 0,S(t),n(()=>{if(y===`allowed`||y===`timed-out`)for(let e of r)e.active&&(e.callback(t),e.active=!1)})},E={promise:w,blocking:g,status:()=>y,subscribe(e){let t={callback:e,active:!0};return y!==`idle`&&y!==`running`?n(()=>{t.active&&(y===`allowed`||y===`timed-out`)&&(e(y===`allowed`||y===`timed-out`),t.active=!1)}):C.add(t),()=>{t.active=!1,C.delete(t)}},start(e){if(y!==`idle`)return;y=`running`,g&&(b=setTimeout(()=>{var e,n;y===`running`&&(console.warn(`${t} initial navigation exceeded ${x}ms; mounting page`,(e=(n=_==null?void 0:_.route)==null?_==null?void 0:_.__route__:n)==null?``:e),T(`timed-out`,!0))},x));let n=_,r=c(e==null?v:e),i=h;if(h=void 0,!i||!n){T(`aborted`,!1);return}i(n,r,()=>y===`running`).then(e=>{let t=d(e);T(t?`aborted`:`allowed`,!t)},()=>{T(`aborted`,!1)})},cancel(){T(`cancelled`,!1)}};return a.set(r,E),l.onComplete&&g&&E.subscribe(l.onComplete),l.start!==!1&&E.start(o),g?w:void 0}function p(e){var t;(t=a.get(e))==null||t.cancel()}export{r as DEFAULT_INITIAL_NAVIGATION_TIMEOUT,p as cancelInitialNavigation,f as ensureInitialNavigation,u as getInitialNavigationTimeout,l as registerInitialNavigationRunner};
@@ -1 +1 @@
1
- import{hasOwn as e}from"../../utils.mjs";import{cloneSnapshotValue as t,isDeepEqualValue as n}from"../app/setData/snapshot.mjs";import{resolveDatasetEventValue as r,runInlineExpression as i}from"../register/inline.mjs";import{getOwnerProxy as a,getOwnerSnapshot as o,getOwnerTarget as s,subscribeOwner as c}from"../scopedSlots.mjs";import{clearTemplateRefs as l,scheduleTemplateRefUpdate as u}from"../templateRefs.mjs";import{WEVU_INLINE_HANDLER as d,WEVU_INLINE_MAP_KEY as f,WEVU_OWNER_HANDLER as p,WEVU_PROPS_DERIVED_KEYS_KEY as m,WEVU_PUBLIC_RUNTIME_KEY as h,WEVU_SLOT_FUNCTION_TOKEN as g,WEVU_SLOT_OWNER_ID_KEY as _,WEVU_SLOT_OWNER_ID_PROP as v,WEVU_SLOT_OWNER_KEY as y,WEVU_SLOT_OWNER_PROXY_KEY as b,WEVU_SLOT_PROPS_DATA_KEY as x,WEVU_SLOT_PROPS_KEY as S,WEVU_SLOT_SCOPE_KEY as C,WEVU_TEMPLATE_REFS_KEY as w}from"@weapp-core/constants";const T=[_,v,b,y,x,S,C],E=/&amp;/g,D=/&quot;/g,O=/&#34;/g,k=/&apos;/g,A=/&#39;/g,j=/&lt;/g,M=/&gt;/g;function N(e){return e.replace(E,`&`).replace(D,`"`).replace(O,`"`).replace(k,`'`).replace(A,`'`).replace(j,`<`).replace(M,`>`)}function P(e){var t,n,i,a;let o=(t=(n=e==null||(i=e.currentTarget)==null?void 0:i.dataset)==null?e==null||(a=e.target)==null?void 0:a.dataset:n)==null?{}:t,s=r(o,`wvArgs`,e),c=[];if(Array.isArray(s))c=s;else if(typeof s==`string`)try{c=JSON.parse(s)}catch(e){try{c=JSON.parse(N(s))}catch(e){c=[]}}return Array.isArray(c)||(c=[]),c.map(t=>t===`$event`?e:t)}function F(e){if(!e||typeof e!=`object`)return{};if(Array.isArray(e)){let t={};for(let n=0;n<e.length;n+=2){let r=e[n];typeof r==`string`&&r&&(t[r]=e[n+1])}return t}return e}function I(e){return Array.isArray(e)&&e[0]===g&&typeof e[1]==`string`}function L(e,t){return(...n)=>{var r;let i=e==null||(r=e.selectOwnerComponent)==null?void 0:r.call(e),a=i==null?void 0:i[d];if(typeof a!=`function`)return;let o={wd:1,wi:t[1]},s=Array.isArray(t[2])?t[2]:[],c=Array.isArray(t[3])?t[3]:[];s.forEach((e,t)=>o[`wvS${t}`]=e),c.forEach((e,t)=>o[`wvI${t}`]=e);let l={type:`wv-slot-function`,detail:n,currentTarget:{dataset:o},target:{dataset:o}};return a.call(i,l)}}function R(e,t){return Object.fromEntries(Object.entries(t).map(([t,n])=>[t,I(n)?L(e,n):n]))}function z(e){var t,n,r,i;return(t=(n=e==null||(r=e.__wevu)==null?void 0:r.proxy)==null?e==null||(i=e[h])==null?void 0:i.proxy:n)==null?e:t}function B(e,t){if(!t||Object.keys(t).length===0)return;let n=z(e),r={};for(let[e,i]of Object.entries(t))try{let t;typeof i==`function`?t=i.call(n):typeof(i==null?void 0:i.get)==`function`&&(t=i.get.call(n)),t!==void 0&&(r[e]=t)}catch(e){}return r}function V(e){var t,n;e==null||(t=e.__wevu)==null||(n=t.__wevu_flushSetupSnapshotSync)==null||n.call(t)}function H(r,i,a){var o;V(r);let s=B(r,i);if(!s||typeof(r==null?void 0:r.setData)!=`function`)return;let c=e(r,`__wvScopedSlotComputedSnapshot`),l=(o=r.__wvScopedSlotComputedSnapshot)==null?{}:o,u={},d={};for(let[r,i]of Object.entries(s))u[r]=t(i),(a!=null&&a.force||!c||!e(l,r)||!n(l[r],i,20,{keys:1e4}))&&(d[r]=i);for(let t of Object.keys(l))e(s,t)||(d[t]=null);r.__wvScopedSlotComputedSnapshot=u,Object.keys(d).length>0&&r.setData(d)}function U(r,i){var a,o,s,c,l;let u=e(i==null?{}:i,C)?i[C]:r==null||(a=r.properties)==null?void 0:a[C],d=e(i==null?{}:i,S)?i[S]:r==null||(o=r.properties)==null?void 0:o[S],f=F(u),p=F(d),m={...f,...p},h=!e(r,`__wvSlotPropsSnapshot`)||!n((s=r.__wvSlotPropsSnapshot)==null?{}:s,m,20,{keys:1e4}),g=h||!r[x]?R(r,m):r[x];h&&(r.__wvSlotPropsSnapshot=t(m)),r[x]=g;let _=r==null||(c=r.__wevu)==null?void 0:c.state,v=!(!_||typeof _!=`object`||e(_,x)&&n((l=_[x])==null?{}:l,m,20,{keys:1e4}));return _&&typeof _==`object`&&(_[x]=g),{merged:g,runtimeSnapshotChanged:v,snapshot:m,snapshotChanged:h}}function W(e,t,n){let{runtimeSnapshotChanged:r,snapshot:i,snapshotChanged:a}=U(e,n);(a||r)&&typeof(e==null?void 0:e.setData)==`function`&&e.setData({[x]:i}),a&&H(e,t)}function G(e,t){var n;let r=!1;e[b]!==t&&(e[b]=t,r=!0);let i=e==null?void 0:e.data;if(i&&typeof i==`object`&&i[b]!==t){try{Object.defineProperty(i,b,{value:t,configurable:!0,enumerable:!1,writable:!0})}catch(e){i[b]=t}r=!0}let a=e==null||(n=e.__wevu)==null?void 0:n.state;return a&&typeof a==`object`&&a[b]!==t&&(a[b]=t,r=!0),r}function K(e){if(!e||typeof e!=`object`)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function q(e,n,r,i){if(typeof e==`function`){r[n]=e;return}if(typeof e!=`object`||!e)return e;if(i.has(e))return;if(Array.isArray(e)){i.add(e);let t=e.map((e,t)=>{let a=q(e,`${n}.${t}`,r,i);return a===void 0?null:a});return i.delete(e),t}if(!K(e))return t(e);i.add(e);let a={};for(let[t,o]of Object.entries(e)){let e=q(o,`${n}.${t}`,r,i);e!==void 0&&(a[t]=e)}return i.delete(e),a}function J(e){let t={},n=q(e,y,t,new WeakSet);return{[y]:n,...t}}function Y(r,i,a,o){var s;let c=G(r,a),{snapshotChanged:l}=U(r),u=i||{},d=!e(r,`__wvOwnerSnapshot`)||!n((s=r.__wvOwnerSnapshot)==null?{}:s,u,20,{keys:1e4});if(d){var f;r.__wvOwnerSnapshot=t(u),r[y]=u;let e=r==null||(f=r.__wevu)==null?void 0:f.state;e&&typeof e==`object`&&(e[y]=u)}d&&typeof(r==null?void 0:r.setData)==`function`&&r.setData(J(u)),(d||c||l)&&H(r,o)}function X(e,t,n){if(!t){typeof(e==null?void 0:e.__wvOwnerUnsub)==`function`&&e.__wvOwnerUnsub(),e.__wvOwnerUnsub=void 0,e.__wvOwnerBoundId=``,G(e,void 0);return}let r=(t,r)=>{Y(e,t,r,n)};e.__wvOwnerBoundId!==t&&(typeof e.__wvOwnerUnsub==`function`&&e.__wvOwnerUnsub(),e.__wvOwnerBoundId=t,e.__wvOwnerUnsub=c(t,r));let i=o(t);i&&r(i,a(t))}function Z(e){var t,n,r,i;return(t=(n=e==null||(r=e.properties)==null?void 0:r[v])==null?e==null||(i=e.properties)==null?void 0:i[_]:n)==null?``:t}function Q(e,t){W(e,t);let n=Z(e);n&&X(e,n,t)}function $(){let e={[y]:{},[x]:{}};return Object.defineProperty(e,b,{value:void 0,configurable:!0,enumerable:!1,writable:!0}),e}function ee(e){let t=e==null?void 0:e.computed,n=e==null?void 0:e.templateRefs,a=e=>{let t=Z(e);return t?s(t):void 0},o={options:{virtualHost:!0},setData:{omit:T},[m]:T,properties:{[v]:{type:String,value:``,observer(e){X(this,e||``,t)}},[_]:{type:String,value:``,observer(e){X(this,e||``,t)}},[S]:{type:null,value:null,observer(e){W(this,t,{[S]:e})}},[C]:{type:null,value:null,observer(e){W(this,t,{[C]:e})}}},data:$,lifetimes:{attached(){Q(this,t)},ready(){Q(this,t),H(this,t,{force:!0});let e=a(this);e&&u(this,void 0,e)},detached(){let e=a(this);e&&l(this,e),typeof this.__wvOwnerUnsub==`function`&&this.__wvOwnerUnsub(),this.__wvOwnerUnsub=void 0,this.__wvOwnerBoundId=``,G(this,void 0)}},methods:{[p](e){var t,n,a,o,s;let c=this[b],l=(t=this.__wevu)==null||(t=t.methods)==null?void 0:t[f],u=i(c,void 0,e,l);if(u!==void 0)return u;if(!c)return;let d=(n=(a=e==null||(o=e.currentTarget)==null?void 0:o.dataset)==null?e==null||(s=e.target)==null?void 0:s.dataset:a)==null?{}:n,p=r(d,`wvHandler`,e);if(typeof p!=`string`||!p)return;let m=c==null?void 0:c[p];if(typeof m!=`function`)return;let h=P(e);return m.apply(c,h)}}};return e!=null&&e.computed&&Object.keys(e.computed).length>0&&(o.computed=e.computed),e!=null&&e.inlineMap&&Object.keys(e.inlineMap).length>0&&(o.methods={...o.methods,[f]:e.inlineMap}),n!=null&&n.length&&(o[w]=n),o}export{ee as createScopedSlotOptions};
1
+ import{hasOwn as e}from"../../utils.mjs";import{cloneSnapshotValue as t,isDeepEqualValue as n}from"../app/setData/snapshot.mjs";import{resolveDatasetEventValue as r,runInlineExpression as i}from"../register/inline.mjs";import{getOwnerProxy as a,getOwnerSnapshot as o,getOwnerTarget as s,subscribeOwner as c}from"../scopedSlots.mjs";import{clearTemplateRefs as l,scheduleTemplateRefUpdate as u}from"../templateRefs.mjs";import{WEVU_INLINE_HANDLER as d,WEVU_INLINE_MAP_KEY as f,WEVU_OWNER_HANDLER as p,WEVU_PROPS_DERIVED_KEYS_KEY as m,WEVU_PUBLIC_RUNTIME_KEY as h,WEVU_SLOT_FUNCTION_TOKEN as g,WEVU_SLOT_OWNER_ID_KEY as _,WEVU_SLOT_OWNER_ID_PROP as v,WEVU_SLOT_OWNER_KEY as y,WEVU_SLOT_OWNER_PROXY_KEY as b,WEVU_SLOT_PROPS_DATA_KEY as x,WEVU_SLOT_PROPS_KEY as S,WEVU_SLOT_SCOPE_KEY as C,WEVU_TEMPLATE_REFS_KEY as w}from"@weapp-core/constants";const T=[_,v,b,y,x,S,C],E=/&amp;/g,D=/&quot;/g,O=/&#34;/g,k=/&apos;/g,A=/&#39;/g,j=/&lt;/g,M=/&gt;/g;function N(e){return e.replace(E,`&`).replace(D,`"`).replace(O,`"`).replace(k,`'`).replace(A,`'`).replace(j,`<`).replace(M,`>`)}function P(e){var t,n,i,a;let o=(t=(n=e==null||(i=e.currentTarget)==null?void 0:i.dataset)==null?e==null||(a=e.target)==null?void 0:a.dataset:n)==null?{}:t,s=r(o,`wvArgs`,e),c=[];if(Array.isArray(s))c=s;else if(typeof s==`string`)try{c=JSON.parse(s)}catch(e){try{c=JSON.parse(N(s))}catch(e){c=[]}}return Array.isArray(c)||(c=[]),c.map(t=>t===`$event`?e:t)}function F(e){if(!e||typeof e!=`object`)return{};if(Array.isArray(e)){let t={};for(let n=0;n<e.length;n+=2){let r=e[n];typeof r==`string`&&r&&(t[r]=e[n+1])}return t}return e}function I(e){return Array.isArray(e)&&e[0]===g&&typeof e[1]==`string`}function L(e,t){return(...n)=>{var r;let i=e==null||(r=e.selectOwnerComponent)==null?void 0:r.call(e),a=i==null?void 0:i[d];if(typeof a!=`function`)return;let o={wd:1,wi:t[1]},s=Array.isArray(t[2])?t[2]:[],c=Array.isArray(t[3])?t[3]:[];s.forEach((e,t)=>o[`wvS${t}`]=e),c.forEach((e,t)=>o[`wvI${t}`]=e);let l={type:`wv-slot-function`,detail:n,currentTarget:{dataset:o},target:{dataset:o}};return a.call(i,l)}}function R(e,t){let n={};for(let[r,i]of Object.entries(t))n[r]=I(i)?L(e,i):i;return n}function z(e){var t,n,r,i;return(t=(n=e==null||(r=e.__wevu)==null?void 0:r.proxy)==null?e==null||(i=e[h])==null?void 0:i.proxy:n)==null?e:t}function B(e,t){if(!t||Object.keys(t).length===0)return;let n=z(e),r={};for(let[e,i]of Object.entries(t))try{let t;typeof i==`function`?t=i.call(n):typeof(i==null?void 0:i.get)==`function`&&(t=i.get.call(n)),t!==void 0&&(r[e]=t)}catch(e){}return r}function V(e){var t,n;e==null||(t=e.__wevu)==null||(n=t.__wevu_flushSetupSnapshotSync)==null||n.call(t)}function H(r,i,a){var o;V(r);let s=B(r,i);if(!s||typeof(r==null?void 0:r.setData)!=`function`)return;let c=e(r,`__wvScopedSlotComputedSnapshot`),l=(o=r.__wvScopedSlotComputedSnapshot)==null?{}:o,u={},d={};for(let[r,i]of Object.entries(s))u[r]=t(i),(a!=null&&a.force||!c||!e(l,r)||!n(l[r],i,20,{keys:1e4}))&&(d[r]=i);for(let t of Object.keys(l))e(s,t)||(d[t]=null);r.__wvScopedSlotComputedSnapshot=u,Object.keys(d).length>0&&r.setData(d)}function U(r,i){var a,o,s,c,l;let u=e(i==null?{}:i,C)?i[C]:r==null||(a=r.properties)==null?void 0:a[C],d=e(i==null?{}:i,S)?i[S]:r==null||(o=r.properties)==null?void 0:o[S],f=F(u),p=F(d),m={...f,...p},h=!e(r,`__wvSlotPropsSnapshot`)||!n((s=r.__wvSlotPropsSnapshot)==null?{}:s,m,20,{keys:1e4}),g=h||!r[x]?R(r,m):r[x];h&&(r.__wvSlotPropsSnapshot=t(m)),r[x]=g;let _=r==null||(c=r.__wevu)==null?void 0:c.state,v=!(!_||typeof _!=`object`||e(_,x)&&n((l=_[x])==null?{}:l,m,20,{keys:1e4}));return _&&typeof _==`object`&&(_[x]=g),{merged:g,runtimeSnapshotChanged:v,snapshot:m,snapshotChanged:h}}function W(e,t,n){let{runtimeSnapshotChanged:r,snapshot:i,snapshotChanged:a}=U(e,n);(a||r)&&typeof(e==null?void 0:e.setData)==`function`&&e.setData({[x]:i}),a&&H(e,t)}function G(e,t){var n;let r=!1;e[b]!==t&&(e[b]=t,r=!0);let i=e==null?void 0:e.data;if(i&&typeof i==`object`&&i[b]!==t){try{Object.defineProperty(i,b,{value:t,configurable:!0,enumerable:!1,writable:!0})}catch(e){i[b]=t}r=!0}let a=e==null||(n=e.__wevu)==null?void 0:n.state;return a&&typeof a==`object`&&a[b]!==t&&(a[b]=t,r=!0),r}function K(e){if(!e||typeof e!=`object`)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function q(e,n,r,i){if(typeof e==`function`){r[n]=e;return}if(typeof e!=`object`||!e)return e;if(i.has(e))return;if(Array.isArray(e)){i.add(e);let t=e.map((e,t)=>{let a=q(e,`${n}.${t}`,r,i);return a===void 0?null:a});return i.delete(e),t}if(!K(e))return t(e);i.add(e);let a={};for(let[t,o]of Object.entries(e)){let e=q(o,`${n}.${t}`,r,i);e!==void 0&&(a[t]=e)}return i.delete(e),a}function J(e){let t={},n=q(e,y,t,new WeakSet);return{[y]:n,...t}}function Y(r,i,a,o){var s;let c=G(r,a),{snapshotChanged:l}=U(r),u=i||{},d=!e(r,`__wvOwnerSnapshot`)||!n((s=r.__wvOwnerSnapshot)==null?{}:s,u,20,{keys:1e4});if(d){var f;r.__wvOwnerSnapshot=t(u),r[y]=u;let e=r==null||(f=r.__wevu)==null?void 0:f.state;e&&typeof e==`object`&&(e[y]=u)}d&&typeof(r==null?void 0:r.setData)==`function`&&r.setData(J(u)),(d||c||l)&&H(r,o)}function X(e,t,n){if(!t){typeof(e==null?void 0:e.__wvOwnerUnsub)==`function`&&e.__wvOwnerUnsub(),e.__wvOwnerUnsub=void 0,e.__wvOwnerBoundId=``,G(e,void 0);return}let r=(t,r)=>{Y(e,t,r,n)};e.__wvOwnerBoundId!==t&&(typeof e.__wvOwnerUnsub==`function`&&e.__wvOwnerUnsub(),e.__wvOwnerBoundId=t,e.__wvOwnerUnsub=c(t,r));let i=o(t);i&&r(i,a(t))}function Z(e){var t,n,r,i;return(t=(n=e==null||(r=e.properties)==null?void 0:r[v])==null?e==null||(i=e.properties)==null?void 0:i[_]:n)==null?``:t}function Q(e,t){W(e,t);let n=Z(e);n&&X(e,n,t)}function $(){let e={[y]:{},[x]:{}};return Object.defineProperty(e,b,{value:void 0,configurable:!0,enumerable:!1,writable:!0}),e}function ee(e){let t=e==null?void 0:e.computed,n=e==null?void 0:e.templateRefs,a=e=>{let t=Z(e);return t?s(t):void 0},o={options:{virtualHost:!0},setData:{omit:T},[m]:T,properties:{[v]:{type:String,value:``,observer(e){X(this,e||``,t)}},[_]:{type:String,value:``,observer(e){X(this,e||``,t)}},[S]:{type:null,value:null,observer(e){W(this,t,{[S]:e})}},[C]:{type:null,value:null,observer(e){W(this,t,{[C]:e})}}},data:$,lifetimes:{attached(){Q(this,t)},ready(){Q(this,t),H(this,t,{force:!0});let e=a(this);e&&u(this,void 0,e)},detached(){let e=a(this);e&&l(this,e),typeof this.__wvOwnerUnsub==`function`&&this.__wvOwnerUnsub(),this.__wvOwnerUnsub=void 0,this.__wvOwnerBoundId=``,G(this,void 0)}},methods:{[p](e){var t,n,a,o,s;let c=this[b],l=(t=this.__wevu)==null||(t=t.methods)==null?void 0:t[f],u=i(c,void 0,e,l);if(u!==void 0)return u;if(!c)return;let d=(n=(a=e==null||(o=e.currentTarget)==null?void 0:o.dataset)==null?e==null||(s=e.target)==null?void 0:s.dataset:a)==null?{}:n,p=r(d,`wvHandler`,e);if(typeof p!=`string`||!p)return;let m=c==null?void 0:c[p];if(typeof m!=`function`)return;let h=P(e);return m.apply(c,h)}}};return e!=null&&e.computed&&Object.keys(e.computed).length>0&&(o.computed=e.computed),e!=null&&e.inlineMap&&Object.keys(e.inlineMap).length>0&&(o.methods={...o.methods,[f]:e.inlineMap}),n!=null&&n.length&&(o[w]=n),o}export{ee as createScopedSlotOptions};
@@ -1 +1 @@
1
- import{hasOwn as e,hyphenate as t}from"../utils.mjs";function n(t){return!t||typeof t!=`object`||Array.isArray(t)?!1:e(t,`bubbles`)||e(t,`composed`)||e(t,`capturePhase`)}function r(e){return e.includes(`:`)?e.replaceAll(`:`,`-`).toLowerCase():t(e)}function i(e){if(e.length===0)return{detail:void 0,options:void 0};if(e.length===1)return{detail:e[0],options:void 0};let t=e[e.length-1];if(n(t)){let n=e.slice(0,-1);return{detail:n.length<=1?n[0]:n,options:t}}return{detail:e,options:void 0}}export{r as normalizeEmitEventName,i as normalizeEmitPayload};
1
+ import{hasOwn as e,hyphenate as t}from"../utils.mjs";function n(t){return!t||typeof t!=`object`||Array.isArray(t)?!1:e(t,`bubbles`)||e(t,`composed`)||e(t,`capturePhase`)}function r(e){return e.includes(`:`)?e.replace(/:/g,`-`).toLowerCase():t(e)}function i(e){if(e.length===0)return{detail:void 0,options:void 0};if(e.length===1)return{detail:e[0],options:void 0};let t=e[e.length-1];if(n(t)){let n=e.slice(0,-1);return{detail:n.length<=1?n[0]:n,options:t}}return{detail:e,options:void 0}}export{r as normalizeEmitEventName,i as normalizeEmitPayload};
@@ -1 +1 @@
1
- import{WEVU_JSX_ISLAND_HANDLER_MAP_KEY as e}from"@weapp-core/constants";const t=Symbol.for(`wevu.jsx.fragment`);function n(e,t,n){return{type:e,props:t,children:n}}function r(e){return{type:`text`,props:null,children:String(e==null?``:e)}}function i(e){return!!e&&typeof e==`object`&&`type`in e}function a(...e){let t={};for(let n of e)if(n)for(let[e,r]of Object.entries(n))e===`class`&&t.class?t.class=[t.class,r]:e===`style`&&t.style?t.style=[t.style,r]:t[e]=r;return t}function o(e){let t={};for(let[n,r]of Object.entries(e))t[`on${n.charAt(0).toUpperCase()}${n.slice(1)}`]=r;return t}function s(e){return e}const c=`show`,l=`model-text`,u=`model-checkbox`,d=`model-radio`,f=`model-select`;function p(e,t){var n;let r={...(n=e.props)==null?{}:n};for(let e of t){if(!Array.isArray(e))continue;let[t,n,i]=e;if(t===`show`){r.hidden=!n;continue}if(t===`model-text`||t===`model-checkbox`||t===`model-radio`||t===`model-select`){let e=typeof i==`string`&&i?i:`modelValue`,a=r[`onUpdate:${e}`];if(r[e===`modelValue`?`value`:e]=n,typeof a==`function`){let e=t===`model-text`?`onInput`:`onChange`;r[e]=e=>{var t,n;return a((t=e==null||(n=e.detail)==null?void 0:n.value)==null?e==null?void 0:e.detail:t)}}}}return{...e,props:r}}function m(e){return e}function h(e){if(/^on[A-Z]/.test(e))return e.slice(2).toLowerCase()}function g(t){let n=t==null?void 0:t[e];if(n&&typeof n==`object`)return n;let r=Object.create(null);return t&&(typeof t==`object`||typeof t==`function`)&&Object.defineProperty(t,e,{value:r,configurable:!0,writable:!0}),r}function _(e,t,n,r,a){let o=typeof e==`function`?e():e;if(o==null||o===!1||o===!0)return[];if(Array.isArray(o))return o.flatMap(e=>_(e,t,n,r,a));if(typeof o==`object`&&!i(o))return _(o.default,t,n,r,a);let s=v(o,t,n,r,a);return s?[s]:[]}function v(e,n,r,a,o){var s;if(e==null||e===!1||e===!0)return;if(Array.isArray(e))return{kind:`fragment`,children:_(e,n,r,a,o)};if(typeof e==`string`||typeof e==`number`||!i(e))return{kind:`text`,text:String(e)};if(e.type===t)return{kind:`fragment`,children:_(e.children,n,r,a,o)};if(e.type===`text`){var c;return{kind:`text`,text:String((c=e.children)==null?``:c)}}if(typeof e.type==`function`){var l;return v(e.type((l=e.props)==null?{}:l,e.children),n,r,a,o)}if(e.type&&typeof e.type==`object`&&typeof e.type.render==`function`){var u;return v(e.type.render.call((u=e.props)==null?{}:u),n,r,a,o)}let d=typeof e.type==`string`?e.type:void 0;if(!d)return;let f={},p={},m=g(n);for(let[t,n]of Object.entries((s=e.props)==null?{}:s)){let e=h(t);if(e&&typeof n==`function`){let t=`${r}:${a.value++}`;m[t]=n,p[e]=t;continue}typeof n!=`function`&&n!==void 0&&(t===`class`||t===`className`?f.class=o.normalizeClass(n):t===`style`?f.style=o.normalizeStyle(n):f[t]=n)}return{kind:`element`,tag:d,props:f,events:p,children:_(e.children,n,r,a,o)}}function y(e,t,n){var r;let i=g(this);for(let e of Object.keys(i))e.startsWith(`${t}:`)&&delete i[e];return(r=v(e,this,t,{value:0},n))==null?null:r}function b(t,n){var r,i,a,o,s,c;let l=(r=n==null||(i=n.currentTarget)==null||(i=i.dataset)==null?void 0:i.wvJsxHandler)==null?n==null||(a=n.target)==null||(a=a.dataset)==null?void 0:a.wvJsxHandler:r;if(typeof l!=`string`||!l)return;let u=t==null?void 0:t.__wevu,d=(o=t==null?void 0:t[e])==null?u==null||(s=u.proxy)==null?void 0:s[e]:o,f=d==null?void 0:d[l];return typeof f==`function`?f.call((c=u==null?void 0:u.proxy)==null?t:c,n):void 0}export{t as Fragment,r as createTextVNode,n as createVNode,i as isVNode,a as mergeProps,y as normalizeJsxIsland,s as resolveComponent,m as resolveDirective,b as runJsxIslandHandler,o as transformOn,u as vModelCheckbox,d as vModelRadio,f as vModelSelect,l as vModelText,c as vShow,p as withDirectives};
1
+ import{WEVU_JSX_ISLAND_HANDLER_MAP_KEY as e}from"@weapp-core/constants";const t=Symbol.for(`wevu.jsx.fragment`);function n(e,t,n){return{type:e,props:t,children:n}}function r(e){return{type:`text`,props:null,children:String(e==null?``:e)}}function i(e){return!!e&&typeof e==`object`&&`type`in e}function a(...e){let t={};for(let n of e)if(n)for(let[e,r]of Object.entries(n))e===`class`&&t.class?t.class=[t.class,r]:e===`style`&&t.style?t.style=[t.style,r]:t[e]=r;return t}function o(e){let t={};for(let[n,r]of Object.entries(e))t[`on${n.charAt(0).toUpperCase()}${n.slice(1)}`]=r;return t}function s(e){return e}const c=`show`,l=`model-text`,u=`model-checkbox`,d=`model-radio`,f=`model-select`;function p(e,t){var n;let r={...(n=e.props)==null?{}:n};for(let e of t){if(!Array.isArray(e))continue;let[t,n,i]=e;if(t===`show`){r.hidden=!n;continue}if(t===`model-text`||t===`model-checkbox`||t===`model-radio`||t===`model-select`){let e=typeof i==`string`&&i?i:`modelValue`,a=r[`onUpdate:${e}`];if(r[e===`modelValue`?`value`:e]=n,typeof a==`function`){let e=t===`model-text`?`onInput`:`onChange`;r[e]=e=>{var t,n;return a((t=e==null||(n=e.detail)==null?void 0:n.value)==null?e==null?void 0:e.detail:t)}}}}return{...e,props:r}}function m(e){return e}function h(e){if(/^on[A-Z]/.test(e))return e.slice(2).toLowerCase()}function g(t){let n=t==null?void 0:t[e];if(n&&typeof n==`object`)return n;let r=Object.create(null);return t&&(typeof t==`object`||typeof t==`function`)&&Object.defineProperty(t,e,{value:r,configurable:!0,writable:!0}),r}function _(e,t,n,r,a){let o=typeof e==`function`?e():e;if(o==null||o===!1||o===!0)return[];if(Array.isArray(o)){let e=[];for(let i of o)e.push(..._(i,t,n,r,a));return e}if(typeof o==`object`&&!i(o))return _(o.default,t,n,r,a);let s=v(o,t,n,r,a);return s?[s]:[]}function v(e,n,r,a,o){var s;if(e==null||e===!1||e===!0)return;if(Array.isArray(e))return{kind:`fragment`,children:_(e,n,r,a,o)};if(typeof e==`string`||typeof e==`number`||!i(e))return{kind:`text`,text:String(e)};if(e.type===t)return{kind:`fragment`,children:_(e.children,n,r,a,o)};if(e.type===`text`){var c;return{kind:`text`,text:String((c=e.children)==null?``:c)}}if(typeof e.type==`function`){var l;return v(e.type((l=e.props)==null?{}:l,e.children),n,r,a,o)}if(e.type&&typeof e.type==`object`&&typeof e.type.render==`function`){var u;return v(e.type.render.call((u=e.props)==null?{}:u),n,r,a,o)}let d=typeof e.type==`string`?e.type:void 0;if(!d)return;let f={},p={},m=g(n);for(let[t,n]of Object.entries((s=e.props)==null?{}:s)){let e=h(t);if(e&&typeof n==`function`){let t=`${r}:${a.value++}`;m[t]=n,p[e]=t;continue}typeof n!=`function`&&n!==void 0&&(t===`class`||t===`className`?f.class=o.normalizeClass(n):t===`style`?f.style=o.normalizeStyle(n):f[t]=n)}return{kind:`element`,tag:d,props:f,events:p,children:_(e.children,n,r,a,o)}}function y(e,t,n){var r;let i=g(this);for(let e of Object.keys(i))e.startsWith(`${t}:`)&&delete i[e];return(r=v(e,this,t,{value:0},n))==null?null:r}function b(t,n){var r,i,a,o,s,c;let l=(r=n==null||(i=n.currentTarget)==null||(i=i.dataset)==null?void 0:i.wvJsxHandler)==null?n==null||(a=n.target)==null||(a=a.dataset)==null?void 0:a.wvJsxHandler:r;if(typeof l!=`string`||!l)return;let u=t==null?void 0:t.__wevu,d=(o=t==null?void 0:t[e])==null?u==null||(s=u.proxy)==null?void 0:s[e]:o,f=d==null?void 0:d[l];return typeof f==`function`?f.call((c=u==null?void 0:u.proxy)==null?t:c,n):void 0}export{t as Fragment,r as createTextVNode,n as createVNode,i as isVNode,a as mergeProps,y as normalizeJsxIsland,s as resolveComponent,m as resolveDirective,b as runJsxIslandHandler,o as transformOn,u as vModelCheckbox,d as vModelRadio,f as vModelSelect,l as vModelText,c as vShow,p as withDirectives};
@@ -1 +1 @@
1
- import{hasOwn as e}from"../../../utils.mjs";import{WEVU_COMPONENT_NAME_KEY as t,WEVU_PROPS_ALIASES_KEY as n,WEVU_PROPS_DERIVED_KEYS_KEY as r}from"@weapp-core/constants";function i(e,t=new WeakMap){if(!e||typeof e!=`object`)return e;if(t.has(e))return t.get(e);if(Array.isArray(e)){let n=[];t.set(e,n);for(let r of e)n.push(i(r,t));return n}let n={};t.set(e,n);for(let[r,a]of Object.entries(e))n[r]=i(a,t);return n}function a(e){let t=e.route;if(typeof t==`string`&&t)return t;let n=e.is;return typeof n==`string`&&n?n:`unknown`}function o(a){var o;let{methods:s={},lifetimes:c={},pageLifetimes:l={},options:u={},...d}=a,f=d.onLoad,p=d.onUnload,m=d.onShow,h=d.onHide,g=d.onReady,_=d.onSaveExitState,v=d.onPullDownRefresh,y=d.onReachBottom,b=d.onPageScroll,x=d.onRouteDone,S=d.onTabItemTap,C=d.onResize,w=d.onShareAppMessage,T=d.onShareTimeline,E=d.onAddToFavorites,D=(o=d.features)==null?{}:o,O=[f,p,m,h,g,_,v,y,b,x,S,C,w,T,E].some(e=>typeof e==`function`),k=e(d,`__wevu_isPage`)?d.__wevu_isPage===!0:Object.keys(D==null?{}:D).length>0||O,A={...d},j=new Set([`data`,`behaviors`,`relations`,`externalClasses`,`options`,`properties`,`observers`,`pureDataPattern`,`virtualHost`,`definitionFilter`,`export`,`__wevuTemplateRefs`,`__wevuLayoutHosts`,n,r,`setupLifecycle`,`features`,`__wevu_isPage`]),M=[];for(let[e,t]of Object.entries(A))j.has(e)||typeof t!=`function`&&(M.push([e,t]),delete A[e]);let N=n=>{let r=a.name;typeof r==`string`&&r&&Object.defineProperty(n,t,{configurable:!0,enumerable:!1,value:r});for(let[t,r]of M)if(!e(n,t))try{n[t]=i(r)}catch(e){}},P=new Set(`data.export.definitionFilter.onLoad.onUnload.onShow.onHide.onReady.onSaveExitState.onPullDownRefresh.onReachBottom.onPageScroll.onRouteDone.onTabItemTap.onResize.onShareAppMessage.onShareTimeline.onAddToFavorites.beforeCreate.created.beforeMount.mounted.beforeUnmount.beforeDestroy.unmounted.destroyed`.split(`.`)),F={};for(let[e,t]of Object.entries(A))typeof t!=`function`||P.has(e)||(F[e]=t,delete A[e]);let I=A.__wevuTemplateRefs;delete A.__wevuTemplateRefs;let L=A.__wevuLayoutHosts;delete A.__wevuLayoutHosts;let R=A[n];delete A[n];let z=A[r];delete A[r];let B=A.observers,V=A.setupLifecycle===`created`?`created`:`attached`;delete A.setupLifecycle;let H=Object.fromEntries([`beforeCreate`,`created`,`beforeMount`,`mounted`,`beforeUnmount`,`beforeDestroy`,`unmounted`,`destroyed`].map(e=>[e,A[e]]));delete A.features;for(let e of Object.keys(H))delete A[e];return delete A.onLoad,delete A.onUnload,delete A.onShow,delete A.onHide,delete A.onReady,{userMethods:s,userLifetimes:c,userPageLifetimes:l,userOptions:u,restOptions:A,topLevelMethods:F,templateRefs:I,layoutHosts:L,propsAliases:R,propsDerivedKeys:z,userObservers:B,setupLifecycle:V,vueLifecycles:H,isPage:k,features:D,userOnLoad:f,userOnUnload:p,userOnShow:m,userOnHide:h,userOnReady:g,userOnSaveExitState:_,userOnPullDownRefresh:v,userOnReachBottom:y,userOnPageScroll:b,userOnRouteDone:x,userOnTabItemTap:S,userOnResize:C,userOnShareAppMessage:w,userOnShareTimeline:T,userOnAddToFavorites:E,applyExtraInstanceFields:N}}export{a as getRuntimeOwnerLabel,o as prepareComponentOptions};
1
+ import{hasOwn as e}from"../../../utils.mjs";import{WEVU_COMPONENT_NAME_KEY as t,WEVU_PROPS_ALIASES_KEY as n,WEVU_PROPS_DERIVED_KEYS_KEY as r}from"@weapp-core/constants";function i(e,t=new WeakMap){if(!e||typeof e!=`object`)return e;if(t.has(e))return t.get(e);if(Array.isArray(e)){let n=[];t.set(e,n);for(let r of e)n.push(i(r,t));return n}let n={};t.set(e,n);for(let[r,a]of Object.entries(e))n[r]=i(a,t);return n}function a(e){let t=e.route;if(typeof t==`string`&&t)return t;let n=e.is;return typeof n==`string`&&n?n:`unknown`}function o(a){var o;let{methods:s={},lifetimes:c={},pageLifetimes:l={},options:u={},...d}=a,f=d.onLoad,p=d.onUnload,m=d.onShow,h=d.onHide,g=d.onReady,_=d.onSaveExitState,v=d.onPullDownRefresh,y=d.onReachBottom,b=d.onPageScroll,x=d.onRouteDone,S=d.onTabItemTap,C=d.onResize,w=d.onShareAppMessage,T=d.onShareTimeline,E=d.onAddToFavorites,D=(o=d.features)==null?{}:o,O=[f,p,m,h,g,_,v,y,b,x,S,C,w,T,E].some(e=>typeof e==`function`),k=e(d,`__wevu_isPage`)?d.__wevu_isPage===!0:Object.keys(D==null?{}:D).length>0||O,A={...d},j=new Set([`data`,`behaviors`,`relations`,`externalClasses`,`options`,`properties`,`observers`,`pureDataPattern`,`virtualHost`,`definitionFilter`,`export`,`__wevuTemplateRefs`,`__wevuLayoutHosts`,n,r,`setupLifecycle`,`features`,`__wevu_isPage`]),M=[];for(let[e,t]of Object.entries(A))j.has(e)||typeof t!=`function`&&(M.push([e,t]),delete A[e]);let N=n=>{let r=a.name;typeof r==`string`&&r&&Object.defineProperty(n,t,{configurable:!0,enumerable:!1,value:r});for(let[t,r]of M)if(!e(n,t))try{n[t]=i(r)}catch(e){}},P=new Set(`data.export.definitionFilter.onLoad.onUnload.onShow.onHide.onReady.onSaveExitState.onPullDownRefresh.onReachBottom.onPageScroll.onRouteDone.onTabItemTap.onResize.onShareAppMessage.onShareTimeline.onAddToFavorites.beforeCreate.created.beforeMount.mounted.beforeUnmount.beforeDestroy.unmounted.destroyed`.split(`.`)),F={};for(let[e,t]of Object.entries(A))typeof t!=`function`||P.has(e)||(F[e]=t,delete A[e]);let I=A.__wevuTemplateRefs;delete A.__wevuTemplateRefs;let L=A.__wevuLayoutHosts;delete A.__wevuLayoutHosts;let R=A[n];delete A[n];let z=A[r];delete A[r];let B=A.observers,V=A.setupLifecycle===`created`?`created`:`attached`;delete A.setupLifecycle;let H={};for(let e of[`beforeCreate`,`created`,`beforeMount`,`mounted`,`beforeUnmount`,`beforeDestroy`,`unmounted`,`destroyed`])H[e]=A[e];delete A.features;for(let e of Object.keys(H))delete A[e];return delete A.onLoad,delete A.onUnload,delete A.onShow,delete A.onHide,delete A.onReady,{userMethods:s,userLifetimes:c,userPageLifetimes:l,userOptions:u,restOptions:A,topLevelMethods:F,templateRefs:I,layoutHosts:L,propsAliases:R,propsDerivedKeys:z,userObservers:B,setupLifecycle:V,vueLifecycles:H,isPage:k,features:D,userOnLoad:f,userOnUnload:p,userOnShow:m,userOnHide:h,userOnReady:g,userOnSaveExitState:_,userOnPullDownRefresh:v,userOnReachBottom:y,userOnPageScroll:b,userOnRouteDone:x,userOnTabItemTap:S,userOnResize:C,userOnShareAppMessage:w,userOnShareTimeline:T,userOnAddToFavorites:E,applyExtraInstanceFields:N}}export{a as getRuntimeOwnerLabel,o as prepareComponentOptions};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "wevu",
3
3
  "type": "module",
4
- "version": "7.0.2",
4
+ "version": "7.0.3",
5
5
  "description": "Vue 3 风格的小程序运行时,包含响应式、diff+setData 与轻量状态管理",
6
6
  "author": "ice breaker <1324318532@qq.com>",
7
7
  "license": "MIT",
@@ -272,10 +272,10 @@
272
272
  },
273
273
  "dependencies": {
274
274
  "@weapp-core/constants": "0.2.1",
275
- "@weapp-core/shared": "3.2.0",
275
+ "@weapp-core/shared": "3.2.1",
276
276
  "@wevu/api": "0.3.0",
277
- "@wevu/compiler": "7.0.2",
278
- "@wevu/web-apis": "1.2.39",
277
+ "@wevu/compiler": "7.0.3",
278
+ "@wevu/web-apis": "1.2.40",
279
279
  "vue": "^3.5.42"
280
280
  },
281
281
  "scripts": {