@lytjs/component 3.1.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.
- package/dist/index.cjs +1 -0
- package/dist/index.mjs +1 -0
- package/dist/types/builtins/async-component.d.ts +61 -0
- package/dist/types/builtins/async-component.d.ts.map +1 -0
- package/dist/types/builtins/error-boundary.d.ts +28 -0
- package/dist/types/builtins/error-boundary.d.ts.map +1 -0
- package/dist/types/builtins/index.d.ts +19 -0
- package/dist/types/builtins/index.d.ts.map +1 -0
- package/dist/types/builtins/keep-alive.d.ts +118 -0
- package/dist/types/builtins/keep-alive.d.ts.map +1 -0
- package/dist/types/builtins/suspense.d.ts +51 -0
- package/dist/types/builtins/suspense.d.ts.map +1 -0
- package/dist/types/builtins/transition-group.d.ts +40 -0
- package/dist/types/builtins/transition-group.d.ts.map +1 -0
- package/dist/types/builtins/transition.d.ts +136 -0
- package/dist/types/builtins/transition.d.ts.map +1 -0
- package/dist/types/composition-api.d.ts +116 -0
- package/dist/types/composition-api.d.ts.map +1 -0
- package/dist/types/define-component.d.ts +265 -0
- package/dist/types/define-component.d.ts.map +1 -0
- package/dist/types/emit.d.ts +79 -0
- package/dist/types/emit.d.ts.map +1 -0
- package/dist/types/index.d.ts +23 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/lifecycle.d.ts +92 -0
- package/dist/types/lifecycle.d.ts.map +1 -0
- package/dist/types/props.d.ts +85 -0
- package/dist/types/props.d.ts.map +1 -0
- package/dist/types/signal-state.d.ts +58 -0
- package/dist/types/signal-state.d.ts.map +1 -0
- package/dist/types/slots.d.ts +80 -0
- package/dist/types/slots.d.ts.map +1 -0
- package/dist/types/src/builtins/async-component.d.ts +61 -0
- package/dist/types/src/builtins/async-component.d.ts.map +1 -0
- package/dist/types/src/builtins/error-boundary.d.ts +28 -0
- package/dist/types/src/builtins/error-boundary.d.ts.map +1 -0
- package/dist/types/src/builtins/index.d.ts +19 -0
- package/dist/types/src/builtins/index.d.ts.map +1 -0
- package/dist/types/src/builtins/keep-alive.d.ts +118 -0
- package/dist/types/src/builtins/keep-alive.d.ts.map +1 -0
- package/dist/types/src/builtins/suspense.d.ts +51 -0
- package/dist/types/src/builtins/suspense.d.ts.map +1 -0
- package/dist/types/src/builtins/transition-group.d.ts +40 -0
- package/dist/types/src/builtins/transition-group.d.ts.map +1 -0
- package/dist/types/src/builtins/transition.d.ts +136 -0
- package/dist/types/src/builtins/transition.d.ts.map +1 -0
- package/dist/types/src/composition-api.d.ts +116 -0
- package/dist/types/src/composition-api.d.ts.map +1 -0
- package/dist/types/src/define-component.d.ts +265 -0
- package/dist/types/src/define-component.d.ts.map +1 -0
- package/dist/types/src/emit.d.ts +79 -0
- package/dist/types/src/emit.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +23 -0
- package/dist/types/src/index.d.ts.map +1 -0
- package/dist/types/src/lifecycle.d.ts +92 -0
- package/dist/types/src/lifecycle.d.ts.map +1 -0
- package/dist/types/src/props.d.ts +85 -0
- package/dist/types/src/props.d.ts.map +1 -0
- package/dist/types/src/signal-state.d.ts +58 -0
- package/dist/types/src/signal-state.d.ts.map +1 -0
- package/dist/types/src/slots.d.ts +80 -0
- package/dist/types/src/slots.d.ts.map +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lyt.js 生命周期系统
|
|
3
|
+
*
|
|
4
|
+
* 提供组件生命周期钩子的注册、管理与调用能力。
|
|
5
|
+
* 支持 onInit / onMounted / onBeforeUpdate / onUpdated / onBeforeUnmount / onUnmounted。
|
|
6
|
+
* 包含当前实例管理(currentInstance / setCurrentInstance),
|
|
7
|
+
* 可在 setup 阶段自动收集生命周期钩子。
|
|
8
|
+
* 纯原生实现,零外部依赖。
|
|
9
|
+
*/
|
|
10
|
+
/** 生命周期钩子名称枚举 */
|
|
11
|
+
export declare enum LifecycleHook {
|
|
12
|
+
/** 初始化阶段(组件实例创建后,props/state 初始化完成) */
|
|
13
|
+
INIT = "init",
|
|
14
|
+
/** 挂载完成(组件首次渲染到 DOM 后) */
|
|
15
|
+
MOUNTED = "mounted",
|
|
16
|
+
/** 更新前(响应式数据变化后,DOM 更新前) */
|
|
17
|
+
BEFORE_UPDATE = "beforeUpdate",
|
|
18
|
+
/** 更新完成(DOM 更新后) */
|
|
19
|
+
UPDATED = "updated",
|
|
20
|
+
/** 卸载前(组件从 DOM 移除前) */
|
|
21
|
+
BEFORE_UNMOUNT = "beforeUnmount",
|
|
22
|
+
/** 卸载完成(组件从 DOM 移除后) */
|
|
23
|
+
UNMOUNTED = "unmounted"
|
|
24
|
+
}
|
|
25
|
+
/** 生命周期钩子回调函数类型 */
|
|
26
|
+
export type LifecycleHookCallback = (...args: any[]) => void;
|
|
27
|
+
/** 组件实例所需的最小生命周期接口 */
|
|
28
|
+
export interface LifecycleInstance {
|
|
29
|
+
/** 生命周期钩子注册表:hookName → 回调函数数组 */
|
|
30
|
+
[LifecycleHook.INIT]?: LifecycleHookCallback[];
|
|
31
|
+
[LifecycleHook.MOUNTED]?: LifecycleHookCallback[];
|
|
32
|
+
[LifecycleHook.BEFORE_UPDATE]?: LifecycleHookCallback[];
|
|
33
|
+
[LifecycleHook.UPDATED]?: LifecycleHookCallback[];
|
|
34
|
+
[LifecycleHook.BEFORE_UNMOUNT]?: LifecycleHookCallback[];
|
|
35
|
+
[LifecycleHook.UNMOUNTED]?: LifecycleHookCallback[];
|
|
36
|
+
}
|
|
37
|
+
/** 当前正在初始化的组件实例 */
|
|
38
|
+
export declare let currentInstance: LifecycleInstance | null;
|
|
39
|
+
/**
|
|
40
|
+
* 设置当前正在初始化的组件实例
|
|
41
|
+
*
|
|
42
|
+
* 在组件 setup 阶段调用,使生命周期钩子能自动注册到正确的实例。
|
|
43
|
+
*
|
|
44
|
+
* @param instance - 组件实例,传 null 表示退出 setup 上下文
|
|
45
|
+
* @returns 之前的当前实例(用于嵌套场景恢复)
|
|
46
|
+
*/
|
|
47
|
+
export declare function setCurrentInstance(instance: LifecycleInstance | null): LifecycleInstance | null;
|
|
48
|
+
/**
|
|
49
|
+
* 创建生命周期钩子注册函数
|
|
50
|
+
*
|
|
51
|
+
* 返回一个函数,调用该函数即可注册对应生命周期的回调。
|
|
52
|
+
* 如果当前有 activeInstance,回调注册到该实例;
|
|
53
|
+
* 否则注册到指定的 target 实例。
|
|
54
|
+
*
|
|
55
|
+
* @param hook - 生命周期钩子名称
|
|
56
|
+
* @returns 钩子注册函数
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```ts
|
|
60
|
+
* const onMounted = createLifecycleHook(LifecycleHook.MOUNTED);
|
|
61
|
+
*
|
|
62
|
+
* // 在 setup 中使用
|
|
63
|
+
* onMounted(() => {
|
|
64
|
+
* console.log('组件已挂载');
|
|
65
|
+
* });
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
export declare function createLifecycleHook(hook: LifecycleHook): (callback: LifecycleHookCallback, target?: LifecycleInstance) => void;
|
|
69
|
+
/**
|
|
70
|
+
* 调用组件的生命周期钩子
|
|
71
|
+
*
|
|
72
|
+
* 按注册顺序依次执行指定生命周期名称下的所有回调。
|
|
73
|
+
* 如果某个回调抛出异常,会捕获并警告,但不影响后续回调执行。
|
|
74
|
+
*
|
|
75
|
+
* @param instance - 组件实例
|
|
76
|
+
* @param hook - 要调用的生命周期钩子名称
|
|
77
|
+
* @param args - 传递给回调函数的参数
|
|
78
|
+
*/
|
|
79
|
+
export declare function callLifecycleHook(instance: LifecycleInstance, hook: LifecycleHook, ...args: any[]): void;
|
|
80
|
+
/** 注册初始化钩子 */
|
|
81
|
+
export declare const onInit: (callback: LifecycleHookCallback, target?: LifecycleInstance) => void;
|
|
82
|
+
/** 注册挂载完成钩子 */
|
|
83
|
+
export declare const onMounted: (callback: LifecycleHookCallback, target?: LifecycleInstance) => void;
|
|
84
|
+
/** 注册更新前钩子 */
|
|
85
|
+
export declare const onBeforeUpdate: (callback: LifecycleHookCallback, target?: LifecycleInstance) => void;
|
|
86
|
+
/** 注册更新完成钩子 */
|
|
87
|
+
export declare const onUpdated: (callback: LifecycleHookCallback, target?: LifecycleInstance) => void;
|
|
88
|
+
/** 注册卸载前钩子 */
|
|
89
|
+
export declare const onBeforeUnmount: (callback: LifecycleHookCallback, target?: LifecycleInstance) => void;
|
|
90
|
+
/** 注册卸载完成钩子 */
|
|
91
|
+
export declare const onUnmounted: (callback: LifecycleHookCallback, target?: LifecycleInstance) => void;
|
|
92
|
+
//# sourceMappingURL=lifecycle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../src/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,iBAAiB;AACjB,oBAAY,aAAa;IACvB,uCAAuC;IACvC,IAAI,SAAS;IACb,0BAA0B;IAC1B,OAAO,YAAY;IACnB,4BAA4B;IAC5B,aAAa,iBAAiB;IAC9B,oBAAoB;IACpB,OAAO,YAAY;IACnB,uBAAuB;IACvB,cAAc,kBAAkB;IAChC,wBAAwB;IACxB,SAAS,cAAc;CACxB;AAED,mBAAmB;AACnB,MAAM,MAAM,qBAAqB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;AAE7D,sBAAsB;AACtB,MAAM,WAAW,iBAAiB;IAChC,kCAAkC;IAClC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC/C,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAClD,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACxD,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAClD,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACzD,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACrD;AAED,mBAAmB;AACnB,eAAO,IAAI,eAAe,EAAE,iBAAiB,GAAG,IAAW,CAAC;AAiB5D;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,GACjC,iBAAiB,GAAG,IAAI,CAI1B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,aAAa,GAClB,CAAC,QAAQ,EAAE,qBAAqB,EAAE,MAAM,CAAC,EAAE,iBAAiB,KAAK,IAAI,CA6BvE;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,aAAa,EACnB,GAAG,IAAI,EAAE,GAAG,EAAE,GACb,IAAI,CAiBN;AAMD,cAAc;AACd,eAAO,MAAM,MAAM,aArEL,qBAAqB,WAAW,iBAAiB,KAAK,IAqEP,CAAC;AAE9D,eAAe;AACf,eAAO,MAAM,SAAS,aAxER,qBAAqB,WAAW,iBAAiB,KAAK,IAwED,CAAC;AAEpE,cAAc;AACd,eAAO,MAAM,cAAc,aA3Eb,qBAAqB,WAAW,iBAAiB,KAAK,IA2EU,CAAC;AAE/E,eAAe;AACf,eAAO,MAAM,SAAS,aA9ER,qBAAqB,WAAW,iBAAiB,KAAK,IA8ED,CAAC;AAEpE,cAAc;AACd,eAAO,MAAM,eAAe,aAjFd,qBAAqB,WAAW,iBAAiB,KAAK,IAiFY,CAAC;AAEjF,eAAe;AACf,eAAO,MAAM,WAAW,aApFV,qBAAqB,WAAW,iBAAiB,KAAK,IAoFG,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lyt.js Props 系统
|
|
3
|
+
*
|
|
4
|
+
* 提供 props 声明标准化、验证与初始化能力。
|
|
5
|
+
* 支持数组形式和对象形式的 props 声明,
|
|
6
|
+
* 支持类型检查、默认值(值 / 工厂函数)、required 校验。
|
|
7
|
+
* 纯原生实现,零外部依赖。
|
|
8
|
+
*/
|
|
9
|
+
/** 支持的 prop 原始类型构造器 */
|
|
10
|
+
export type PropType = typeof String | typeof Number | typeof Boolean | typeof Array | typeof Object | typeof Function;
|
|
11
|
+
/** 单个 prop 的声明选项 */
|
|
12
|
+
export interface PropOptions {
|
|
13
|
+
/** 期望类型,可以是单个类型或类型数组 */
|
|
14
|
+
type?: PropType | PropType[] | null;
|
|
15
|
+
/** 是否必传,默认 false */
|
|
16
|
+
required?: boolean;
|
|
17
|
+
/** 默认值,可以是静态值或返回默认值的工厂函数 */
|
|
18
|
+
default?: any;
|
|
19
|
+
/** 自定义验证函数,返回 true 表示通过 */
|
|
20
|
+
validator?: (value: any) => boolean;
|
|
21
|
+
}
|
|
22
|
+
/** 标准化后的 props 选项映射 */
|
|
23
|
+
export type NormalizedPropsOptions = Record<string, PropOptions>;
|
|
24
|
+
/** 标准化后的 props 选项(保留原始 key 顺序) */
|
|
25
|
+
export type NormalizedProps = {
|
|
26
|
+
/** 标准化后的选项映射 */
|
|
27
|
+
options: NormalizedPropsOptions;
|
|
28
|
+
/** 原始 key 列表(保持声明顺序) */
|
|
29
|
+
keys: string[];
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* 标准化 props 声明
|
|
33
|
+
*
|
|
34
|
+
* 支持两种形式:
|
|
35
|
+
* - 数组形式:['title', 'count'] → 每个元素转为 { type: null }
|
|
36
|
+
* - 对象形式:{ title: String, count: { type: Number, default: 0 } }
|
|
37
|
+
*
|
|
38
|
+
* @param props - 组件 options 中传入的 props 声明
|
|
39
|
+
* @returns 标准化后的 props 结构(options + keys)
|
|
40
|
+
*/
|
|
41
|
+
export declare function normalizePropsOptions(props: string[] | Record<string, PropOptions | PropType | PropType[]> | undefined | null): NormalizedProps;
|
|
42
|
+
/**
|
|
43
|
+
* 验证单个 prop 值是否符合声明约束
|
|
44
|
+
*
|
|
45
|
+
* 检查顺序:
|
|
46
|
+
* 1. required 校验
|
|
47
|
+
* 2. type 校验(如果声明了 type)
|
|
48
|
+
* 3. 自定义 validator 校验
|
|
49
|
+
*
|
|
50
|
+
* @param propName - prop 名称
|
|
51
|
+
* @param propOptions - 该 prop 的标准化选项
|
|
52
|
+
* @param value - 传入的 prop 值
|
|
53
|
+
* @returns 验证是否通过
|
|
54
|
+
*/
|
|
55
|
+
export declare function validateProp(propName: string, propOptions: PropOptions, value: unknown): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* 获取 prop 的默认值
|
|
58
|
+
*
|
|
59
|
+
* 如果 default 是工厂函数则调用并返回结果,
|
|
60
|
+
* 否则直接返回 default 值。
|
|
61
|
+
*
|
|
62
|
+
* @param propOptions - 该 prop 的标准化选项
|
|
63
|
+
* @param propName - prop 名称(用于错误提示)
|
|
64
|
+
* @returns 默认值
|
|
65
|
+
*/
|
|
66
|
+
export declare function getPropDefaultValue(propOptions: PropOptions, propName: string): any;
|
|
67
|
+
/**
|
|
68
|
+
* 初始化组件 props
|
|
69
|
+
*
|
|
70
|
+
* 流程:
|
|
71
|
+
* 1. 遍历标准化后的 props keys
|
|
72
|
+
* 2. 从 rawProps 中取值,没有则取默认值
|
|
73
|
+
* 3. 对 Boolean 类型做特殊转换
|
|
74
|
+
* 4. 执行 validateProp 校验
|
|
75
|
+
* 5. 将最终值写入 instance.props
|
|
76
|
+
*
|
|
77
|
+
* @param instance - 组件内部实例(需有 props 和 propsOptions 属性)
|
|
78
|
+
* @param rawProps - 父组件传入的原始 props
|
|
79
|
+
* @returns 初始化后的 props 对象
|
|
80
|
+
*/
|
|
81
|
+
export declare function initProps(instance: {
|
|
82
|
+
props: Record<string, any>;
|
|
83
|
+
propsOptions: NormalizedProps;
|
|
84
|
+
}, rawProps: Record<string, any> | null | undefined): Record<string, any>;
|
|
85
|
+
//# sourceMappingURL=props.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../../src/props.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,uBAAuB;AACvB,MAAM,MAAM,QAAQ,GAChB,OAAO,MAAM,GACb,OAAO,MAAM,GACb,OAAO,OAAO,GACd,OAAO,KAAK,GACZ,OAAO,MAAM,GACb,OAAO,QAAQ,CAAC;AAEpB,oBAAoB;AACpB,MAAM,WAAW,WAAW;IAC1B,wBAAwB;IACxB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC;IACpC,oBAAoB;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,2BAA2B;IAC3B,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC;CACrC;AAED,uBAAuB;AACvB,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEjE,kCAAkC;AAClC,MAAM,MAAM,eAAe,GAAG;IAC5B,gBAAgB;IAChB,OAAO,EAAE,sBAAsB,CAAC;IAChC,wBAAwB;IACxB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,CAAC;AAmGF;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,GACvF,eAAe,CAsDjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,OAAO,GACb,OAAO,CAwET;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,MAAM,GACf,GAAG,CAuBL;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAAC,YAAY,EAAE,eAAe,CAAA;CAAE,EACvE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,GAC/C,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAmCrB"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lyt.js Signal State Adapter
|
|
3
|
+
*
|
|
4
|
+
* 将普通状态对象转换为基于 Signal 的响应式状态。
|
|
5
|
+
* 提供 Proxy 包装,使组件代码可以使用 this.count 而非 this.count.value()。
|
|
6
|
+
* 纯原生零依赖实现。
|
|
7
|
+
*/
|
|
8
|
+
import { type WritableSignal } from '@lyt/reactivity/signal';
|
|
9
|
+
/** Signal 状态对象:每个 key 对应一个 WritableSignal */
|
|
10
|
+
export type SignalState = Record<string, WritableSignal<any>>;
|
|
11
|
+
/** Signal 状态代理(自动解包/设置 Signal 值) */
|
|
12
|
+
export type SignalStateProxy = Record<string, any>;
|
|
13
|
+
/**
|
|
14
|
+
* 将普通状态对象转换为 Signal-based 状态
|
|
15
|
+
*
|
|
16
|
+
* 例如:createSignalState({ count: 0, name: 'hello' })
|
|
17
|
+
* 返回:{ count: signal(0), name: signal('hello') }
|
|
18
|
+
*
|
|
19
|
+
* @param initialState - 初始状态对象
|
|
20
|
+
* @returns 每个字段对应一个 WritableSignal 的对象
|
|
21
|
+
*/
|
|
22
|
+
export declare function createSignalState(initialState: Record<string, any>): SignalState;
|
|
23
|
+
/**
|
|
24
|
+
* 创建 Signal 状态代理
|
|
25
|
+
*
|
|
26
|
+
* 代理对象会自动解包 Signal 值(读取时调用 sig()),
|
|
27
|
+
* 并自动设置 Signal 值(写入时调用 sig.set(value))。
|
|
28
|
+
*
|
|
29
|
+
* 这允许组件代码使用 this.count 而非 this.count.value()。
|
|
30
|
+
*
|
|
31
|
+
* @param signalState - Signal 状态对象
|
|
32
|
+
* @returns 代理对象
|
|
33
|
+
*/
|
|
34
|
+
export declare function createSignalStateProxy(signalState: SignalState): SignalStateProxy;
|
|
35
|
+
/**
|
|
36
|
+
* 获取 Signal 状态的原始值快照
|
|
37
|
+
*
|
|
38
|
+
* @param signalState - Signal 状态对象
|
|
39
|
+
* @returns 包含所有 Signal 当前值的普通对象
|
|
40
|
+
*/
|
|
41
|
+
export declare function getSignalStateSnapshot(signalState: SignalState): Record<string, any>;
|
|
42
|
+
/**
|
|
43
|
+
* 批量更新 Signal 状态
|
|
44
|
+
*
|
|
45
|
+
* @param signalState - Signal 状态对象
|
|
46
|
+
* @param partial - 要更新的部分状态
|
|
47
|
+
*/
|
|
48
|
+
export declare function patchSignalState(signalState: SignalState, partial: Record<string, any>): void;
|
|
49
|
+
/**
|
|
50
|
+
* 清理 Signal 状态(停止所有 Signal 的订阅)
|
|
51
|
+
*
|
|
52
|
+
* 注意:当前 Signal 实现没有显式的 dispose 方法,
|
|
53
|
+
* 此函数为未来扩展预留。
|
|
54
|
+
*
|
|
55
|
+
* @param signalState - Signal 状态对象
|
|
56
|
+
*/
|
|
57
|
+
export declare function disposeSignalState(signalState: SignalState): void;
|
|
58
|
+
//# sourceMappingURL=signal-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signal-state.d.ts","sourceRoot":"","sources":["../../../src/signal-state.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAIL,KAAK,cAAc,EAEpB,MAAM,wBAAwB,CAAA;AAM/B,6CAA6C;AAC7C,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAA;AAE7D,oCAAoC;AACpC,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAMlD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,WAAW,CAQhF;AASD;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,WAAW,GAAG,gBAAgB,CAwDjF;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CASpF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAS7F;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAGjE"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lyt.js 插槽系统
|
|
3
|
+
*
|
|
4
|
+
* 提供组件插槽的初始化、标准化与访问能力。
|
|
5
|
+
* 支持默认插槽、具名插槽和作用域插槽。
|
|
6
|
+
* 纯原生实现,零外部依赖。
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* 插槽内容类型
|
|
10
|
+
*
|
|
11
|
+
* 插槽内容可以是:
|
|
12
|
+
* - 普通值(字符串、数字等)
|
|
13
|
+
* - 返回 VNode / 内容的函数(作用域插槽)
|
|
14
|
+
* - VNode 数组
|
|
15
|
+
* - null / undefined(空插槽)
|
|
16
|
+
*/
|
|
17
|
+
export type SlotValue = any | ((...args: any[]) => any) | null | undefined;
|
|
18
|
+
/** 插槽映射表:插槽名 → 插槽内容 */
|
|
19
|
+
export type Slots = Record<string, SlotValue>;
|
|
20
|
+
/** 子节点结构,用于传递插槽内容 */
|
|
21
|
+
export interface SlotChildren {
|
|
22
|
+
/** 默认插槽内容 */
|
|
23
|
+
default?: SlotValue;
|
|
24
|
+
/** 具名插槽内容 */
|
|
25
|
+
[name: string]: SlotValue | undefined;
|
|
26
|
+
}
|
|
27
|
+
/** 组件实例所需的最小插槽接口 */
|
|
28
|
+
export interface SlotsInstance {
|
|
29
|
+
/** 初始化后的插槽映射 */
|
|
30
|
+
slots: Slots;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* 标准化插槽内容
|
|
34
|
+
*
|
|
35
|
+
* 将各种形式的插槽内容统一处理:
|
|
36
|
+
* - null / undefined → 返回 null(空插槽)
|
|
37
|
+
* - 函数 → 保持原样(作用域插槽,调用时传入 props)
|
|
38
|
+
* - 数组 → 保持原样(多个子节点)
|
|
39
|
+
* - 其他值 → 包装为数组(单个子节点)
|
|
40
|
+
*
|
|
41
|
+
* @param value - 原始插槽内容
|
|
42
|
+
* @returns 标准化后的插槽内容
|
|
43
|
+
*/
|
|
44
|
+
export declare function normalizeSlotValue(value: SlotValue): SlotValue;
|
|
45
|
+
/**
|
|
46
|
+
* 初始化组件插槽
|
|
47
|
+
*
|
|
48
|
+
* 从 children 中提取插槽内容并标准化。
|
|
49
|
+
* children 可以是:
|
|
50
|
+
* - null / undefined → 无插槽
|
|
51
|
+
* - 函数 → 默认作用域插槽
|
|
52
|
+
* - 数组 → 默认插槽内容(多个子节点)
|
|
53
|
+
* - 普通对象 → 具名插槽映射
|
|
54
|
+
*
|
|
55
|
+
* @param instance - 组件实例(需有 slots 属性)
|
|
56
|
+
* @param children - 父组件传入的子节点 / 插槽内容
|
|
57
|
+
* @returns 初始化后的插槽映射
|
|
58
|
+
*/
|
|
59
|
+
export declare function initSlots(instance: SlotsInstance, children: SlotChildren | SlotValue | null | undefined): Slots;
|
|
60
|
+
/**
|
|
61
|
+
* 渲染插槽
|
|
62
|
+
*
|
|
63
|
+
* 获取指定名称的插槽内容并渲染。
|
|
64
|
+
* 如果是作用域插槽(函数),传入 scope 参数调用。
|
|
65
|
+
*
|
|
66
|
+
* @param slots - 插槽映射
|
|
67
|
+
* @param name - 插槽名称(默认为 'default')
|
|
68
|
+
* @param scope - 传递给作用域插槽的数据
|
|
69
|
+
* @returns 插槽渲染结果,如果没有对应插槽则返回 null
|
|
70
|
+
*/
|
|
71
|
+
export declare function renderSlot(slots: Slots, name?: string, scope?: any): any;
|
|
72
|
+
/**
|
|
73
|
+
* 检查插槽是否存在
|
|
74
|
+
*
|
|
75
|
+
* @param slots - 插槽映射
|
|
76
|
+
* @param name - 插槽名称(默认为 'default')
|
|
77
|
+
* @returns 插槽是否存在且有内容
|
|
78
|
+
*/
|
|
79
|
+
export declare function hasSlot(slots: Slots, name?: string): boolean;
|
|
80
|
+
//# sourceMappingURL=slots.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slots.d.ts","sourceRoot":"","sources":["../../../src/slots.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH;;;;;;;;GAQG;AACH,MAAM,MAAM,SAAS,GACjB,GAAG,GACH,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GACzB,IAAI,GACJ,SAAS,CAAC;AAEd,uBAAuB;AACvB,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAE9C,qBAAqB;AACrB,MAAM,WAAW,YAAY;IAC3B,aAAa;IACb,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,aAAa;IACb,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;CACvC;AAED,oBAAoB;AACpB,MAAM,WAAW,aAAa;IAC5B,gBAAgB;IAChB,KAAK,EAAE,KAAK,CAAC;CACd;AAwBD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAkB9D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GACpD,KAAK,CA4CP;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,KAAK,EACZ,IAAI,GAAE,MAAkB,EACxB,KAAK,CAAC,EAAE,GAAG,GACV,GAAG,CAcL;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,GAAE,MAAkB,GAAG,OAAO,CAGvE"}
|
package/package.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@lytjs/component",
|
|
3
|
+
"version": "3.1.0",
|
|
4
|
+
"description": "Lyt.js 组件系统 - 提供组件定义、生命周期、组合式 API、插槽和内置组件",
|
|
5
|
+
"main": "./dist/index.cjs",
|
|
6
|
+
"module": "./dist/index.mjs",
|
|
7
|
+
"types": "./dist/types/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/types/index.d.ts",
|
|
11
|
+
"import": "./dist/index.mjs",
|
|
12
|
+
"require": "./dist/index.cjs",
|
|
13
|
+
"default": "./dist/index.mjs"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"sideEffects": false,
|
|
17
|
+
"files": ["dist"],
|
|
18
|
+
"license": "MIT",
|
|
19
|
+
"author": "lytjs",
|
|
20
|
+
"repository": {
|
|
21
|
+
"type": "git",
|
|
22
|
+
"url": "https://gitee.com/@lytjs/lytjs"
|
|
23
|
+
},
|
|
24
|
+
"homepage": "https://gitee.com/@lytjs/lytjs",
|
|
25
|
+
"keywords": [
|
|
26
|
+
"lyt",
|
|
27
|
+
"lytjs",
|
|
28
|
+
"javascript",
|
|
29
|
+
"framework",
|
|
30
|
+
"frontend",
|
|
31
|
+
"vue-like",
|
|
32
|
+
"lightweight",
|
|
33
|
+
"zero-dependency",
|
|
34
|
+
"component",
|
|
35
|
+
"lifecycle",
|
|
36
|
+
"composition-api",
|
|
37
|
+
"keep-alive",
|
|
38
|
+
"transition",
|
|
39
|
+
"组件"
|
|
40
|
+
],
|
|
41
|
+
"publishConfig": {
|
|
42
|
+
"access": "public"
|
|
43
|
+
}
|
|
44
|
+
}
|