@lytjs/component 3.1.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/builtins-entry.cjs +1 -0
  2. package/dist/builtins-entry.mjs +1 -0
  3. package/dist/index.cjs +1 -1
  4. package/dist/index.mjs +1 -1
  5. package/dist/types/builtins-entry.d.ts +9 -0
  6. package/dist/types/builtins-entry.d.ts.map +1 -0
  7. package/dist/types/define-component.d.ts +5 -1
  8. package/dist/types/define-component.d.ts.map +1 -1
  9. package/dist/types/index.d.ts +0 -2
  10. package/dist/types/index.d.ts.map +1 -1
  11. package/dist/types/props.d.ts +1 -1
  12. package/dist/types/props.d.ts.map +1 -1
  13. package/package.json +18 -18
  14. package/dist/types/src/builtins/async-component.d.ts +0 -61
  15. package/dist/types/src/builtins/async-component.d.ts.map +0 -1
  16. package/dist/types/src/builtins/error-boundary.d.ts +0 -28
  17. package/dist/types/src/builtins/error-boundary.d.ts.map +0 -1
  18. package/dist/types/src/builtins/index.d.ts +0 -19
  19. package/dist/types/src/builtins/index.d.ts.map +0 -1
  20. package/dist/types/src/builtins/keep-alive.d.ts +0 -118
  21. package/dist/types/src/builtins/keep-alive.d.ts.map +0 -1
  22. package/dist/types/src/builtins/suspense.d.ts +0 -51
  23. package/dist/types/src/builtins/suspense.d.ts.map +0 -1
  24. package/dist/types/src/builtins/transition-group.d.ts +0 -40
  25. package/dist/types/src/builtins/transition-group.d.ts.map +0 -1
  26. package/dist/types/src/builtins/transition.d.ts +0 -136
  27. package/dist/types/src/builtins/transition.d.ts.map +0 -1
  28. package/dist/types/src/composition-api.d.ts +0 -116
  29. package/dist/types/src/composition-api.d.ts.map +0 -1
  30. package/dist/types/src/define-component.d.ts +0 -265
  31. package/dist/types/src/define-component.d.ts.map +0 -1
  32. package/dist/types/src/emit.d.ts +0 -79
  33. package/dist/types/src/emit.d.ts.map +0 -1
  34. package/dist/types/src/index.d.ts +0 -23
  35. package/dist/types/src/index.d.ts.map +0 -1
  36. package/dist/types/src/lifecycle.d.ts +0 -92
  37. package/dist/types/src/lifecycle.d.ts.map +0 -1
  38. package/dist/types/src/props.d.ts +0 -85
  39. package/dist/types/src/props.d.ts.map +0 -1
  40. package/dist/types/src/signal-state.d.ts +0 -58
  41. package/dist/types/src/signal-state.d.ts.map +0 -1
  42. package/dist/types/src/slots.d.ts +0 -80
  43. package/dist/types/src/slots.d.ts.map +0 -1
@@ -1,118 +0,0 @@
1
- /**
2
- * Lyt.js KeepAlive 内置缓存组件
3
- *
4
- * 缓存组件实例,避免重复渲染和销毁。
5
- * 支持 include/exclude 匹配规则和 max LRU 淘汰策略。
6
- * 提供 activated/deactivated 生命周期钩子。
7
- * 纯原生实现,零外部依赖。
8
- */
9
- import { type ComponentDefine, type ComponentInternalInstance } from '../define-component';
10
- /** KeepAlive 组件的 Props 接口 */
11
- export interface KeepAliveProps {
12
- /** 匹配的组件名缓存(字符串精确匹配或 RegExp 正则匹配) */
13
- include?: string | RegExp | (string | RegExp)[];
14
- /** 匹配的组件名不缓存 */
15
- exclude?: string | RegExp | (string | RegExp)[];
16
- /** 最大缓存数量,超过时使用 LRU 淘汰策略 */
17
- max?: number;
18
- }
19
- /** 缓存条目 */
20
- interface CacheEntry {
21
- /** 缓存的 VNode(原始引用,非拷贝) */
22
- vnode: any;
23
- /** 缓存的组件实例 */
24
- component: ComponentInternalInstance | null;
25
- /** 缓存的 key(组件名) */
26
- key: string;
27
- /** 组件实例的完整状态快照(deactivate 时保存) */
28
- savedState: SavedComponentState | null;
29
- }
30
- /** 组件实例状态快照 */
31
- interface SavedComponentState {
32
- /** 组件内部 state(reactive 对象的原始值) */
33
- state: Record<string, any>;
34
- /** 组件 setupState */
35
- setupState: Record<string, any>;
36
- /** 计算属性引用(@lyt/reactivity ComputedRef) */
37
- computedRefs: Record<string, {
38
- value: any;
39
- } | (() => any)>;
40
- /** 子树 */
41
- subTree: any;
42
- /** 是否已挂载 */
43
- isMounted: boolean;
44
- /** watch 停止句柄列表 */
45
- watchStopHandles: any[];
46
- /** 生命周期钩子快照 */
47
- lifecycleHooks: Partial<Record<string, any[]>>;
48
- }
49
- /**
50
- * KeepAlive 内置缓存组件
51
- *
52
- * 缓存包裹的组件实例,切换时不会销毁组件而是移入缓存,
53
- * 再次切换回来时从缓存恢复,避免重复创建和销毁。
54
- *
55
- * 缓存策略:
56
- * - include:只有匹配的组件会被缓存
57
- * - exclude:匹配的组件不会被缓存
58
- * - max:最大缓存数量,使用 LRU(最近最少使用)策略淘汰
59
- *
60
- * 生命周期:
61
- * - activated:从缓存恢复时触发
62
- * - deactivated:移入缓存时触发
63
- *
64
- * @example
65
- * ```ts
66
- * // 基本用法
67
- * <keep-alive>
68
- * <component :is="currentComponent" />
69
- * </keep-alive>
70
- *
71
- * // 配置 include/exclude
72
- * <keep-alive include="Home" exclude="Login" :max="10">
73
- * <component :is="currentComponent" />
74
- * </keep-alive>
75
- * ```
76
- */
77
- export declare const KeepAlive: ComponentDefine;
78
- /**
79
- * 注册组件实例到 KeepAlive 缓存
80
- *
81
- * 当 KeepAlive 包裹的子组件完成挂载后,
82
- * 渲染器应调用此方法将组件实例关联到对应的缓存条目。
83
- *
84
- * @param vnode - 子组件的 VNode
85
- * @param component - 子组件的内部实例
86
- */
87
- export declare function registerKeepAliveInstance(vnode: any, component: ComponentInternalInstance): void;
88
- /**
89
- * 将缓存 Map 引用关联到 VNode
90
- *
91
- * 在 KeepAlive render 时调用,使 registerKeepAliveInstance
92
- * 能找到正确的缓存 Map。
93
- *
94
- * @param vnode - 子组件 VNode
95
- * @param cache - KeepAlive 的缓存 Map
96
- */
97
- export declare function attachCacheRef(vnode: any, cache: Map<string, CacheEntry>): void;
98
- /**
99
- * 淘汰指定缓存条目
100
- *
101
- * 从缓存中移除指定 key 的条目,
102
- * 并触发该组件的 deactivated 钩子。
103
- *
104
- * @param cache - 缓存 Map
105
- * @param key - 要淘汰的缓存 key
106
- */
107
- export declare function pruneCacheEntry(cache: Map<string, CacheEntry>, key: string): void;
108
- /**
109
- * 根据 include/exclude 规则清理缓存
110
- *
111
- * 遍历所有缓存条目,移除不满足条件的条目。
112
- *
113
- * @param cache - 缓存 Map
114
- * @param props - KeepAlive props
115
- */
116
- export declare function pruneCache(cache: Map<string, CacheEntry>, props: KeepAliveProps): void;
117
- export {};
118
- //# sourceMappingURL=keep-alive.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keep-alive.d.ts","sourceRoot":"","sources":["../../../../src/builtins/keep-alive.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAC/B,MAAM,qBAAqB,CAAC;AAa7B,6BAA6B;AAC7B,MAAM,WAAW,cAAc;IAC7B,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAChD,gBAAgB;IAChB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAChD,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,WAAW;AACX,UAAU,UAAU;IAClB,0BAA0B;IAC1B,KAAK,EAAE,GAAG,CAAC;IACX,cAAc;IACd,SAAS,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAC5C,mBAAmB;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,kCAAkC;IAClC,UAAU,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACxC;AAED,eAAe;AACf,UAAU,mBAAmB;IAC3B,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,oBAAoB;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,0CAA0C;IAC1C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,GAAG,CAAA;KAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3D,SAAS;IACT,OAAO,EAAE,GAAG,CAAC;IACb,YAAY;IACZ,SAAS,EAAE,OAAO,CAAC;IACnB,mBAAmB;IACnB,gBAAgB,EAAE,GAAG,EAAE,CAAC;IACxB,eAAe;IACf,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;CAChD;AA0KD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,SAAS,EAAE,eAiItB,CAAC;AAMH;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,GAAG,EACV,SAAS,EAAE,yBAAyB,GACnC,IAAI,CAgBN;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,GAAG,EACV,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,GAC7B,IAAI,CAIN;AAiDD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAC9B,GAAG,EAAE,MAAM,GACV,IAAI,CAWN;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAC9B,KAAK,EAAE,cAAc,GACpB,IAAI,CAaN"}
@@ -1,51 +0,0 @@
1
- /**
2
- * Lyt.js Suspense 内置异步依赖等待组件
3
- *
4
- * 等待异步子组件加载完成后再显示真实内容,
5
- * 加载过程中显示 fallback 占位内容。
6
- * 支持多个异步子组件(全部完成后才切换),
7
- * 支持超时处理和事件回调。
8
- * 纯原生实现,零外部依赖。
9
- */
10
- import { type ComponentDefine } from '../define-component';
11
- /** Suspense 组件的 Props 接口 */
12
- export interface SuspenseProps {
13
- /** 异步加载时显示的占位内容 */
14
- fallback?: any;
15
- /** 超时时间(ms),超时后显示 fallback */
16
- timeout?: number;
17
- /** 等待开始回调 */
18
- onPending?: () => void;
19
- /** 异步组件全部加载完成回调 */
20
- onResolve?: () => void;
21
- /** 显示 fallback 回调 */
22
- onFallback?: () => void;
23
- }
24
- /**
25
- * Suspense 内置异步依赖等待组件
26
- *
27
- * 等待所有异步子组件加载完成后再显示真实内容。
28
- * 加载过程中显示 fallback 占位内容。
29
- *
30
- * 工作流程:
31
- * 1. 检测子组件是否为异步组件
32
- * 2. 如果有异步组件,显示 fallback
33
- * 3. 等待所有异步组件加载完成
34
- * 4. 全部完成后切换为真实内容
35
- * 5. 如果超时,显示 fallback 并触发超时处理
36
- *
37
- * @example
38
- * ```ts
39
- * // 基本用法
40
- * <suspense :fallback="LoadingSpinner">
41
- * <async-component />
42
- * </suspense>
43
- *
44
- * // 带超时
45
- * <suspense :fallback="LoadingSpinner" :timeout="3000" :onResolve="handleLoaded">
46
- * <async-component />
47
- * </suspense>
48
- * ```
49
- */
50
- export declare const Suspense: ComponentDefine;
51
- //# sourceMappingURL=suspense.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"suspense.d.ts","sourceRoot":"","sources":["../../../../src/builtins/suspense.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,qBAAqB,CAAC;AAM7B,4BAA4B;AAC5B,MAAM,WAAW,aAAa;IAC5B,mBAAmB;IACnB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa;IACb,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,mBAAmB;IACnB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,qBAAqB;IACrB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAiHD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,QAAQ,EAAE,eAgOrB,CAAC"}
@@ -1,40 +0,0 @@
1
- /**
2
- * Lyt.js TransitionGroup 内置列表过渡组件
3
- *
4
- * 继承 Transition 的所有功能,额外处理列表中元素的移动过渡(FLIP 动画技术)。
5
- * 使用 getBoundingClientRect 记录元素位置,在 DOM 更新后计算位移并应用 transform 动画。
6
- * 纯原生实现,零外部依赖。
7
- */
8
- import { type ComponentDefine } from '../define-component';
9
- import { type TransitionProps } from './transition';
10
- /** TransitionGroup 组件的 Props 接口 */
11
- export interface TransitionGroupProps extends TransitionProps {
12
- /** 包裹标签名,默认不渲染包裹元素(Fragment) */
13
- tag?: string;
14
- /** 移动过渡类名 */
15
- moveClass?: string;
16
- }
17
- /**
18
- * TransitionGroup 内置列表过渡组件
19
- *
20
- * 处理列表中多个子元素的进入、离开和移动过渡。
21
- * 继承 Transition 的 CSS 类名和 JS 钩子功能,
22
- * 额外使用 FLIP 技术实现元素移动动画。
23
- *
24
- * @example
25
- * ```ts
26
- * // 列表过渡
27
- * <transition-group name="list" tag="ul">
28
- * <li v-for="item in items" :key="item.id">
29
- * {{ item.text }}
30
- * </li>
31
- * </transition-group>
32
- *
33
- * // CSS 示例
34
- * // .list-enter-active, .list-leave-active { transition: all 0.3s; }
35
- * // .list-enter-from, .list-leave-to { opacity: 0; transform: translateX(30px); }
36
- * // .list-move { transition: transform 0.3s; }
37
- * ```
38
- */
39
- export declare const TransitionGroup: ComponentDefine;
40
- //# sourceMappingURL=transition-group.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transition-group.d.ts","sourceRoot":"","sources":["../../../../src/builtins/transition-group.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,KAAK,eAAe,EAMrB,MAAM,cAAc,CAAC;AAMtB,mCAAmC;AACnC,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,gCAAgC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwFD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,eAAe,EAAE,eAwI5B,CAAC"}
@@ -1,136 +0,0 @@
1
- /**
2
- * Lyt.js Transition 内置过渡组件
3
- *
4
- * 控制 Vue 风格的进入/离开过渡效果。
5
- * 支持 CSS 类名模式和 JS 钩子模式,支持 appear 首次挂载过渡,
6
- * 支持 mode 过渡模式(in-out / out-in)。
7
- * 纯原生实现,零外部依赖。
8
- */
9
- import { type ComponentDefine } from '../define-component';
10
- /** Transition 组件的 Props 接口 */
11
- export interface TransitionProps {
12
- /** CSS 类名前缀,如 "fade" → fade-enter-active/fade-leave-active */
13
- name?: string;
14
- /** 初始渲染时是否应用过渡 */
15
- appear?: boolean;
16
- /** 过渡模式:'in-out' 先进入再离开,'out-in' 先离开再进入 */
17
- mode?: 'in-out' | 'out-in' | 'default';
18
- /** 过渡持续时间(ms),用于超时回退 */
19
- duration?: number;
20
- /** 进入起始类名 */
21
- enterFromClass?: string;
22
- /** 进入激活类名 */
23
- enterActiveClass?: string;
24
- /** 进入结束类名 */
25
- enterToClass?: string;
26
- /** 离开起始类名 */
27
- leaveFromClass?: string;
28
- /** 离开激活类名 */
29
- leaveActiveClass?: string;
30
- /** 离开结束类名 */
31
- leaveToClass?: string;
32
- /** 进入前钩子 */
33
- onBeforeEnter?: (el: any) => void;
34
- /** 进入钩子(需调用 done 表示完成) */
35
- onEnter?: (el: any, done: () => void) => void;
36
- /** 进入完成钩子 */
37
- onAfterEnter?: (el: any) => void;
38
- /** 进入取消钩子 */
39
- onEnterCancelled?: (el: any) => void;
40
- /** 离开前钩子 */
41
- onBeforeLeave?: (el: any) => void;
42
- /** 离开钩子(需调用 done 表示完成) */
43
- onLeave?: (el: any, done: () => void) => void;
44
- /** 离开完成钩子 */
45
- onAfterLeave?: (el: any) => void;
46
- /** 离开取消钩子 */
47
- onLeaveCancelled?: (el: any) => void;
48
- }
49
- /** 过渡信息 */
50
- interface TransitionInfo {
51
- /** 过渡类型:transition 或 animation */
52
- type: string | null;
53
- /** 过渡属性数量 */
54
- propCount: number;
55
- /** 过渡结束时间(ms) */
56
- timeout: number;
57
- /** 是否有过渡属性 */
58
- hasTransform: boolean;
59
- }
60
- /**
61
- * 下一帧工具函数
62
- *
63
- * 使用 requestAnimationFrame 双帧确保浏览器完成重排。
64
- * 第一帧:浏览器将 pending 的样式变更应用到 DOM
65
- * 第二帧:确保样式已生效,可以安全地添加下一组类名
66
- *
67
- * @param fn - 在下一帧执行的回调函数
68
- */
69
- export declare function nextFrame(fn: () => void): void;
70
- /**
71
- * 给元素添加过渡类名
72
- *
73
- * @param el - 目标 DOM 元素
74
- * @param cls - 要添加的 CSS 类名
75
- */
76
- export declare function addTransitionClass(el: Element, cls: string): void;
77
- /**
78
- * 移除元素的过渡类名
79
- *
80
- * @param el - 目标 DOM 元素
81
- * @param cls - 要移除的 CSS 类名
82
- */
83
- export declare function removeTransitionClass(el: Element, cls: string): void;
84
- /**
85
- * 获取元素的过渡属性信息
86
- *
87
- * 检测元素上 transition-duration 和 animation-duration,
88
- * 返回最长的持续时间作为过渡结束时间。
89
- *
90
- * @param el - 目标 DOM 元素
91
- * @param expectedType - 期望的过渡类型('transition' 或 'animation'),不指定则自动检测
92
- * @returns 过渡信息对象
93
- */
94
- export declare function getTransitionInfo(el: Element, expectedType?: string): TransitionInfo;
95
- /**
96
- * 等待过渡/动画结束
97
- *
98
- * 监听 transitionend / animationend 事件,或超时后强制完成。
99
- * 处理了多属性过渡的情况(需要等待所有属性完成)。
100
- *
101
- * @param el - 目标 DOM 元素
102
- * @param expectedType - 期望的过渡类型
103
- * @param timeout - 超时时间(ms)
104
- * @param cb - 过渡完成回调
105
- */
106
- export declare function whenTransitionEnds(el: Element, expectedType: string | undefined, timeout: number, cb: () => void): void;
107
- /**
108
- * Transition 组件识别的 prop 键列表
109
- *
110
- * 用于框架在处理 Transition 组件时,识别哪些属性是 Transition 专有的,
111
- * 不应传递给子组件。
112
- */
113
- export declare const TransitionPropsKeys: string[];
114
- /**
115
- * Transition 内置过渡组件
116
- *
117
- * 控制单个子元素的进入/离开过渡效果。
118
- * 必须只有一个子元素作为内容。
119
- *
120
- * @example
121
- * ```ts
122
- * // CSS 类名模式
123
- * const FadeTransition = Transition;
124
- * // 使用时传入 name="fade",CSS 中定义 .fade-enter-active, .fade-leave-active 等
125
- *
126
- * // JS 钩子模式
127
- * <transition
128
- * :onBeforeEnter="el => el.style.opacity = '0'"
129
- * :onEnter="(el, done) => { el.style.transition = 'opacity 0.3s'; el.style.opacity = '1'; done(); }"
130
- * :onLeave="(el, done) => { el.style.transition = 'opacity 0.3s'; el.style.opacity = '0'; done(); }"
131
- * />
132
- * ```
133
- */
134
- export declare const Transition: ComponentDefine;
135
- export {};
136
- //# sourceMappingURL=transition.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transition.d.ts","sourceRoot":"","sources":["../../../../src/builtins/transition.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAEL,KAAK,eAAe,EAErB,MAAM,qBAAqB,CAAC;AAM7B,8BAA8B;AAC9B,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kBAAkB;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACvC,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY;IACZ,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC;IAClC,0BAA0B;IAC1B,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAC9C,aAAa;IACb,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,aAAa;IACb,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC;IACrC,YAAY;IACZ,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC;IAClC,0BAA0B;IAC1B,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAC9C,aAAa;IACb,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,aAAa;IACb,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC;CACtC;AAED,WAAW;AACX,UAAU,cAAc;IACtB,kCAAkC;IAClC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,aAAa;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc;IACd,YAAY,EAAE,OAAO,CAAC;CACvB;AAoBD;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAI9C;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAIjE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAIpE;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,OAAO,EACX,YAAY,CAAC,EAAE,MAAM,GACpB,cAAc,CA6ChB;AAwCD;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,OAAO,EACX,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,IAAI,GACb,IAAI,CAsCN;AAMD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,EAmBvC,CAAC;AA6IF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,UAAU,EAAE,eAqGvB,CAAC"}
@@ -1,116 +0,0 @@
1
- /**
2
- * Lyt.js Composition API
3
- *
4
- * 提供 setup() 函数式组件编写能力,包括:
5
- * - 生命周期钩子(onMounted / onUnmounted / onUpdated / onBeforeMount / onBeforeUnmount)
6
- * - 依赖注入(provide / inject)
7
- * - setup 执行器(runSetup)
8
- * - 当前实例访问(getCurrentInstance)
9
- *
10
- * 纯原生实现,零外部依赖。
11
- */
12
- /** 生命周期钩子回调函数类型 */
13
- type LifecycleHook = () => void;
14
- /** setup 函数类型 */
15
- export type SetupFunction = (props: any, ctx: any) => object | Function;
16
- /**
17
- * 注册挂载完成钩子
18
- *
19
- * 在组件挂载到 DOM 后调用。必须在 setup() 函数内调用。
20
- *
21
- * @param hook - 钩子回调函数
22
- */
23
- export declare function onMounted(hook: LifecycleHook): void;
24
- /**
25
- * 注册卸载完成钩子
26
- *
27
- * 在组件从 DOM 移除后调用。必须在 setup() 函数内调用。
28
- *
29
- * @param hook - 钩子回调函数
30
- */
31
- export declare function onUnmounted(hook: LifecycleHook): void;
32
- /**
33
- * 注册更新完成钩子
34
- *
35
- * 在组件响应式数据变化导致 DOM 更新后调用。必须在 setup() 函数内调用。
36
- *
37
- * @param hook - 钩子回调函数
38
- */
39
- export declare function onUpdated(hook: LifecycleHook): void;
40
- /**
41
- * 注册挂载前钩子
42
- *
43
- * 在组件挂载到 DOM 前调用。必须在 setup() 函数内调用。
44
- *
45
- * @param hook - 钩子回调函数
46
- */
47
- export declare function onBeforeMount(hook: LifecycleHook): void;
48
- /**
49
- * 注册卸载前钩子
50
- *
51
- * 在组件从 DOM 移除前调用。必须在 setup() 函数内调用。
52
- *
53
- * @param hook - 钩子回调函数
54
- */
55
- export declare function onBeforeUnmount(hook: LifecycleHook): void;
56
- /**
57
- * 提供依赖
58
- *
59
- * 在祖先组件的 setup() 中调用,为后代组件提供数据。
60
- *
61
- * @param key - 依赖的唯一标识
62
- * @param value - 要提供的值
63
- *
64
- * @example
65
- * ```ts
66
- * setup(props, ctx) {
67
- * provide('theme', 'dark')
68
- * provide('config', reactive({ debug: true }))
69
- * }
70
- * ```
71
- */
72
- export declare function provide<T>(key: string | symbol, value: T): void;
73
- /**
74
- * 注入依赖
75
- *
76
- * 在后代组件的 setup() 中调用,从祖先组件查找并获取提供的数据。
77
- * 沿着组件实例的 _parent 链向上查找,直到找到匹配的 key 或到达根组件。
78
- *
79
- * @param key - 依赖的唯一标识
80
- * @param defaultValue - 找不到时的默认值(可选)
81
- * @returns 注入的值或默认值
82
- *
83
- * @example
84
- * ```ts
85
- * setup(props, ctx) {
86
- * const theme = inject<string>('theme') // 'dark'
87
- * const config = inject('config', { debug: false }) // 使用默认值
88
- * }
89
- * ```
90
- */
91
- export declare function inject<T>(key: string | symbol, defaultValue?: T): T | undefined;
92
- /**
93
- * 执行 setup 函数
94
- *
95
- * 在组件初始化阶段调用,设置当前实例上下文后执行用户定义的 setup 函数。
96
- * setup 可以返回:
97
- * - 对象:属性合并到组件上下文(renderProxy)
98
- * - 函数:作为组件的渲染函数
99
- *
100
- * @param setupFn - 用户定义的 setup 函数
101
- * @param instance - 组件内部实例
102
- * @param props - 组件 props
103
- * @param ctx - 组件上下文(包含 attrs、slots、emit 等)
104
- * @returns setup 返回值(对象或函数)
105
- */
106
- export declare function runSetup(setupFn: Function, instance: any, props: any, ctx: any): any;
107
- /**
108
- * 获取当前正在执行的 setup 对应的组件实例
109
- *
110
- * 只能在 setup() 执行期间调用,其他时候返回 null。
111
- *
112
- * @returns 当前组件实例或 null
113
- */
114
- export declare function getCurrentInstance(): any;
115
- export {};
116
- //# sourceMappingURL=composition-api.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"composition-api.d.ts","sourceRoot":"","sources":["../../../src/composition-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,mBAAmB;AACnB,KAAK,aAAa,GAAG,MAAM,IAAI,CAAA;AAE/B,iBAAiB;AACjB,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,MAAM,GAAG,QAAQ,CAAA;AAavE;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAMnD;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAMrD;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAMnD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAMvD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAMzD;AASD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAS/D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAY/E;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,CAQpF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,IAAI,GAAG,CAExC"}