@lytjs/component 5.0.1 → 6.4.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/README.md +509 -288
- package/dist/index.cjs +1945 -1
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +812 -0
- package/dist/index.d.ts +812 -0
- package/dist/index.mjs +1865 -1
- package/dist/index.mjs.map +1 -0
- package/package.json +27 -38
- package/dist/builtins-entry.cjs +0 -1
- package/dist/builtins-entry.mjs +0 -1
- package/dist/types/builtins/async-component.d.ts +0 -61
- package/dist/types/builtins/async-component.d.ts.map +0 -1
- package/dist/types/builtins/error-boundary.d.ts +0 -28
- package/dist/types/builtins/error-boundary.d.ts.map +0 -1
- package/dist/types/builtins/index.d.ts +0 -19
- package/dist/types/builtins/index.d.ts.map +0 -1
- package/dist/types/builtins/keep-alive.d.ts +0 -118
- package/dist/types/builtins/keep-alive.d.ts.map +0 -1
- package/dist/types/builtins/suspense.d.ts +0 -51
- package/dist/types/builtins/suspense.d.ts.map +0 -1
- package/dist/types/builtins/transition-group.d.ts +0 -40
- package/dist/types/builtins/transition-group.d.ts.map +0 -1
- package/dist/types/builtins/transition.d.ts +0 -136
- package/dist/types/builtins/transition.d.ts.map +0 -1
- package/dist/types/builtins-entry.d.ts +0 -9
- package/dist/types/builtins-entry.d.ts.map +0 -1
- package/dist/types/composition-api.d.ts +0 -116
- package/dist/types/composition-api.d.ts.map +0 -1
- package/dist/types/define-component.d.ts +0 -281
- package/dist/types/define-component.d.ts.map +0 -1
- package/dist/types/emit.d.ts +0 -92
- package/dist/types/emit.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -21
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/lifecycle.d.ts +0 -92
- package/dist/types/lifecycle.d.ts.map +0 -1
- package/dist/types/props.d.ts +0 -85
- package/dist/types/props.d.ts.map +0 -1
- package/dist/types/signal-state.d.ts +0 -58
- package/dist/types/signal-state.d.ts.map +0 -1
- package/dist/types/slots.d.ts +0 -80
- package/dist/types/slots.d.ts.map +0 -1
|
@@ -1,281 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lyt.js 组件定义系统
|
|
3
|
-
*
|
|
4
|
-
* 提供组件定义(defineComponent)、内部实例创建与初始化能力。
|
|
5
|
-
* 支持有状态组件(选项式)和函数组件两种模式。
|
|
6
|
-
* 基于 @lytjs/reactivity 响应式系统实现 computed 和 watch。
|
|
7
|
-
*/
|
|
8
|
-
import { type WatchStopHandle } from '@lytjs/reactivity';
|
|
9
|
-
import { type SignalState } from './signal-state';
|
|
10
|
-
import { type NormalizedProps, type PropOptions, type PropType } from './props';
|
|
11
|
-
import { type NormalizedEmitsOptions, type EmitsOptions } from './emit';
|
|
12
|
-
import { type LifecycleInstance } from './lifecycle';
|
|
13
|
-
import { type Slots, type SlotChildren } from './slots';
|
|
14
|
-
/** 组件渲染函数类型 */
|
|
15
|
-
export type RenderFunction = (h: CreateElement, instance: ComponentInternalInstance) => any;
|
|
16
|
-
/** 简易 createElement 函数类型 */
|
|
17
|
-
export type CreateElement = (tag: string | Function, props?: Record<string, any>, children?: any[]) => any;
|
|
18
|
-
/** 计算属性定义 */
|
|
19
|
-
export interface ComputedOptions {
|
|
20
|
-
[key: string]: (() => any) | {
|
|
21
|
-
/** 计算属性的 getter */
|
|
22
|
-
get: () => any;
|
|
23
|
-
/** 计算属性的 setter(可选) */
|
|
24
|
-
set?: (value: any) => void;
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
/** 侦听器选项 */
|
|
28
|
-
export interface WatchOptions {
|
|
29
|
-
[key: string]: {
|
|
30
|
-
/** 要侦听的状态/props 路径 */
|
|
31
|
-
handler: (newValue: any, oldValue: any) => void;
|
|
32
|
-
/** 是否立即执行 */
|
|
33
|
-
immediate?: boolean;
|
|
34
|
-
/** 是否深度侦听 */
|
|
35
|
-
deep?: boolean;
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
/** 响应式模式 */
|
|
39
|
-
export type ReactivityMode = 'proxy' | 'signal';
|
|
40
|
-
/** 组件选项类型(保持向后兼容) */
|
|
41
|
-
export interface ComponentOptions {
|
|
42
|
-
/** 组件名称 */
|
|
43
|
-
name?: string;
|
|
44
|
-
/** Props 声明 */
|
|
45
|
-
props?: string[] | Record<string, PropOptions | PropType | PropType[]> | any;
|
|
46
|
-
/** 组件内部状态(响应式数据) */
|
|
47
|
-
state?: () => Record<string, any>;
|
|
48
|
-
/** 计算属性 */
|
|
49
|
-
computed?: ComputedOptions;
|
|
50
|
-
/** 侦听器 */
|
|
51
|
-
watch?: WatchOptions;
|
|
52
|
-
/** 方法 */
|
|
53
|
-
methods?: Record<string, (...args: any[]) => any>;
|
|
54
|
-
/** 模板字符串 */
|
|
55
|
-
template?: string;
|
|
56
|
-
/** 渲染函数(优先于 template) */
|
|
57
|
-
render?: RenderFunction;
|
|
58
|
-
/** 初始化函数(setup 阶段调用) */
|
|
59
|
-
init?: (this: ComponentPublicInstance, props: Record<string, any>, state: Record<string, any>) => void | Record<string, any>;
|
|
60
|
-
/** Composition API setup 函数 */
|
|
61
|
-
setup?: (props: Record<string, any>, ctx: {
|
|
62
|
-
attrs: Record<string, any>;
|
|
63
|
-
slots: Slots;
|
|
64
|
-
emit: (event: string, ...args: any[]) => void;
|
|
65
|
-
}) => any;
|
|
66
|
-
/** Emits 声明 */
|
|
67
|
-
emits?: EmitsOptions;
|
|
68
|
-
/** 默认插槽内容(由父组件传入) */
|
|
69
|
-
slots?: SlotChildren;
|
|
70
|
-
/** 响应式模式:'proxy'(默认,基于 Proxy)或 'signal'(基于 Signal) */
|
|
71
|
-
reactivityMode?: ReactivityMode;
|
|
72
|
-
/** 组件样式字符串 */
|
|
73
|
-
styles?: string;
|
|
74
|
-
}
|
|
75
|
-
/** 函数组件类型(保持简单,向后兼容) */
|
|
76
|
-
export type FunctionalComponent = (props: Record<string, any>, context: {
|
|
77
|
-
slots: Slots;
|
|
78
|
-
emit: (event: string, ...args: any[]) => void;
|
|
79
|
-
}) => any;
|
|
80
|
-
/** emit 函数类型 */
|
|
81
|
-
export type EmitFunction = (event: string, ...args: any[]) => boolean;
|
|
82
|
-
/** 组件公共实例(保持简单,向后兼容) */
|
|
83
|
-
export interface ComponentPublicInstance {
|
|
84
|
-
/** 组件名称 */
|
|
85
|
-
$name?: string;
|
|
86
|
-
/** 组件 props(只读) */
|
|
87
|
-
$props: Record<string, any>;
|
|
88
|
-
/** 组件内部状态 */
|
|
89
|
-
$state: Record<string, any>;
|
|
90
|
-
/** 组件插槽 */
|
|
91
|
-
$slots: Slots;
|
|
92
|
-
/** 组件是否已挂载 */
|
|
93
|
-
$isMounted: boolean;
|
|
94
|
-
/** 触发事件 */
|
|
95
|
-
$emit: EmitFunction;
|
|
96
|
-
/** 强制更新 */
|
|
97
|
-
$forceUpdate: () => void;
|
|
98
|
-
/** 卸载组件 */
|
|
99
|
-
$unmount: () => void;
|
|
100
|
-
/** 设置状态 */
|
|
101
|
-
$setState: (partial: Record<string, any>) => void;
|
|
102
|
-
/** 允许访问其他属性 */
|
|
103
|
-
[key: string]: any;
|
|
104
|
-
}
|
|
105
|
-
/** 组件内部实例(框架内部使用) */
|
|
106
|
-
export interface ComponentInternalInstance extends LifecycleInstance {
|
|
107
|
-
/** 组件类型标记 */
|
|
108
|
-
_isComponent: true;
|
|
109
|
-
/** 组件定义选项 */
|
|
110
|
-
type: ComponentOptions;
|
|
111
|
-
/** 组件名称 */
|
|
112
|
-
name?: string;
|
|
113
|
-
/** 标准化后的 props 选项 */
|
|
114
|
-
propsOptions: NormalizedProps;
|
|
115
|
-
/** 标准化后的 emits 选项 */
|
|
116
|
-
emitsOptions?: NormalizedEmitsOptions;
|
|
117
|
-
/** 组件 props */
|
|
118
|
-
props: Record<string, any>;
|
|
119
|
-
/** 组件内部状态(proxy 模式为 shallowReactive,signal 模式为 SignalStateProxy) */
|
|
120
|
-
state: Record<string, any>;
|
|
121
|
-
/** Signal 模式下的原始 Signal 状态(仅 signal 模式存在) */
|
|
122
|
-
_signalState?: SignalState;
|
|
123
|
-
/** setup 返回的状态(合并到 renderProxy) */
|
|
124
|
-
setupState: Record<string, any>;
|
|
125
|
-
/** 计算属性缓存(使用 @lytjs/reactivity 的 ComputedRef) */
|
|
126
|
-
computedRefs: Record<string, {
|
|
127
|
-
value: any;
|
|
128
|
-
} | (() => any)>;
|
|
129
|
-
/** 渲染代理(公共实例,用户通过 this 访问) */
|
|
130
|
-
renderProxy: ComponentPublicInstance;
|
|
131
|
-
/** 渲染结果子树 */
|
|
132
|
-
subTree: any;
|
|
133
|
-
/** 是否已挂载 */
|
|
134
|
-
isMounted: boolean;
|
|
135
|
-
/** 是否已卸载 */
|
|
136
|
-
isUnmounted: boolean;
|
|
137
|
-
/** 组件插槽 */
|
|
138
|
-
slots: Slots;
|
|
139
|
-
/** watch 停止句柄列表(用于卸载时清理) */
|
|
140
|
-
watchStopHandles: WatchStopHandle[];
|
|
141
|
-
/** emit 函数的绑定引用 */
|
|
142
|
-
emit: EmitFunction;
|
|
143
|
-
/** 更新回调(由渲染器设置) */
|
|
144
|
-
update?: () => void;
|
|
145
|
-
/** Composition API 生命周期钩子 */
|
|
146
|
-
_lifecycleHooks?: Record<string, Function[]>;
|
|
147
|
-
}
|
|
148
|
-
/** defineComponent 的返回类型(保持简单,向后兼容) */
|
|
149
|
-
export interface ComponentDefine {
|
|
150
|
-
/** 组件名称 */
|
|
151
|
-
name?: string;
|
|
152
|
-
/** 组件选项 */
|
|
153
|
-
options: ComponentOptions;
|
|
154
|
-
/** 标记为组件定义 */
|
|
155
|
-
_isComponentDefine: true;
|
|
156
|
-
/** 允许挂载静态方法 */
|
|
157
|
-
[key: string]: any;
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* 定义组件(选项式 API)
|
|
161
|
-
*
|
|
162
|
-
* 接收组件选项对象,返回标准化的组件定义。
|
|
163
|
-
* 支持的选项:
|
|
164
|
-
* - name: 组件名称
|
|
165
|
-
* - props: 属性声明(数组或对象形式)
|
|
166
|
-
* - state: 响应式数据工厂函数
|
|
167
|
-
* - computed: 计算属性
|
|
168
|
-
* - watch: 侦听器
|
|
169
|
-
* - methods: 方法
|
|
170
|
-
* - template: 模板字符串
|
|
171
|
-
* - render: 渲染函数
|
|
172
|
-
* - init: 初始化函数
|
|
173
|
-
* - emits: 事件声明
|
|
174
|
-
* - slots: 默认插槽
|
|
175
|
-
*
|
|
176
|
-
* @param options - 组件选项
|
|
177
|
-
* @returns 组件定义对象
|
|
178
|
-
*
|
|
179
|
-
* @example
|
|
180
|
-
* ```ts
|
|
181
|
-
* const MyComponent = defineComponent({
|
|
182
|
-
* name: 'MyComponent',
|
|
183
|
-
* props: {
|
|
184
|
-
* title: { type: String, default: 'Hello' },
|
|
185
|
-
* count: { type: Number, required: true }
|
|
186
|
-
* },
|
|
187
|
-
* state() {
|
|
188
|
-
* return { inner: 0 };
|
|
189
|
-
* },
|
|
190
|
-
* methods: {
|
|
191
|
-
* increment() {
|
|
192
|
-
* this.$setState({ inner: this.$state.inner + 1 });
|
|
193
|
-
* }
|
|
194
|
-
* },
|
|
195
|
-
* init(props, state) {
|
|
196
|
-
* console.log('组件初始化', props.title);
|
|
197
|
-
* }
|
|
198
|
-
* });
|
|
199
|
-
* ```
|
|
200
|
-
*/
|
|
201
|
-
export declare function defineComponent(options: ComponentOptions): ComponentDefine;
|
|
202
|
-
/**
|
|
203
|
-
* 定义函数组件
|
|
204
|
-
*
|
|
205
|
-
* @param fn - 函数组件
|
|
206
|
-
* @returns 组件定义对象
|
|
207
|
-
*/
|
|
208
|
-
export declare function defineFunctionalComponent(fn: FunctionalComponent): ComponentDefine;
|
|
209
|
-
/**
|
|
210
|
-
* 创建组件内部实例
|
|
211
|
-
*
|
|
212
|
-
* 根据组件定义创建内部实例对象,但不执行初始化。
|
|
213
|
-
*
|
|
214
|
-
* @param component - 组件定义
|
|
215
|
-
* @returns 组件内部实例
|
|
216
|
-
*/
|
|
217
|
-
export declare function createComponentInstance(component: ComponentDefine): ComponentInternalInstance;
|
|
218
|
-
/**
|
|
219
|
-
* 初始化组件
|
|
220
|
-
*
|
|
221
|
-
* 根据组件类型执行不同的初始化流程:
|
|
222
|
-
* - 有状态组件(ComponentOptions)→ setupStatefulComponent
|
|
223
|
-
* - 函数组件(Function)→ setupFunctionComponent
|
|
224
|
-
*
|
|
225
|
-
* @param instance - 组件内部实例
|
|
226
|
-
* @param rawProps - 父组件传入的原始 props
|
|
227
|
-
* @param children - 父组件传入的子节点 / 插槽
|
|
228
|
-
*/
|
|
229
|
-
export declare function setupComponent(instance: ComponentInternalInstance, rawProps?: Record<string, any> | null, children?: SlotChildren | null): void;
|
|
230
|
-
/**
|
|
231
|
-
* 有状态组件初始化
|
|
232
|
-
*
|
|
233
|
-
* 初始化流程:
|
|
234
|
-
* 1. 设置当前实例上下文
|
|
235
|
-
* 2. 初始化 state(调用 state 工厂函数)
|
|
236
|
-
* 3. 初始化 computed(标记为脏)
|
|
237
|
-
* 4. 初始化 methods(绑定到 renderProxy)
|
|
238
|
-
* 5. 调用 init 函数(用户自定义初始化逻辑)
|
|
239
|
-
* 6. 将 methods 和 setupState 合并到 renderProxy
|
|
240
|
-
* 7. 调用 onInit 生命周期钩子
|
|
241
|
-
* 8. 恢复之前的实例上下文
|
|
242
|
-
*
|
|
243
|
-
* @param instance - 组件内部实例
|
|
244
|
-
*/
|
|
245
|
-
export declare function setupStatefulComponent(instance: ComponentInternalInstance): void;
|
|
246
|
-
/**
|
|
247
|
-
* 函数组件初始化
|
|
248
|
-
*
|
|
249
|
-
* 函数组件没有内部状态,直接将 props 和 slots 传递给渲染函数。
|
|
250
|
-
*
|
|
251
|
-
* @param instance - 组件内部实例
|
|
252
|
-
*/
|
|
253
|
-
export declare function setupFunctionComponent(instance: ComponentInternalInstance): void;
|
|
254
|
-
/**
|
|
255
|
-
* 挂载组件
|
|
256
|
-
*
|
|
257
|
-
* 调用渲染函数生成子树,标记为已挂载,触发 onMounted 钩子。
|
|
258
|
-
*
|
|
259
|
-
* @param instance - 组件内部实例
|
|
260
|
-
* @param h - createElement 函数(可选,用于渲染函数)
|
|
261
|
-
*/
|
|
262
|
-
export declare function mountComponent(instance: ComponentInternalInstance, h?: CreateElement): void;
|
|
263
|
-
/**
|
|
264
|
-
* 更新组件
|
|
265
|
-
*
|
|
266
|
-
* 触发 beforeUpdate → 重新渲染 → updated 生命周期。
|
|
267
|
-
*
|
|
268
|
-
* @param instance - 组件内部实例
|
|
269
|
-
* @param h - createElement 函数
|
|
270
|
-
* @param newProps - 新的 props(可选)
|
|
271
|
-
*/
|
|
272
|
-
export declare function updateComponent(instance: ComponentInternalInstance, h?: CreateElement, newProps?: Record<string, any>): void;
|
|
273
|
-
/**
|
|
274
|
-
* 卸载组件
|
|
275
|
-
*
|
|
276
|
-
* 触发 beforeUnmount → 标记已卸载 → unmounted 生命周期。
|
|
277
|
-
*
|
|
278
|
-
* @param instance - 组件内部实例
|
|
279
|
-
*/
|
|
280
|
-
export declare function unmountComponent(instance: ComponentInternalInstance): void;
|
|
281
|
-
//# sourceMappingURL=define-component.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"define-component.d.ts","sourceRoot":"","sources":["../../src/define-component.ts"],"names":[],"mappings":"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"}
|
package/dist/types/emit.d.ts
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lyt.js 事件发射系统
|
|
3
|
-
*
|
|
4
|
-
* 提供组件自定义事件的声明、标准化与发射能力。
|
|
5
|
-
* 支持驼峰命名自动转短横线、emits 声明校验。
|
|
6
|
-
* 纯原生实现,零外部依赖。
|
|
7
|
-
*/
|
|
8
|
-
/** emits 声明形式:字符串数组或带验证器的对象 */
|
|
9
|
-
export type EmitsOptions = string[] | Record<string, ((...args: any[]) => boolean) | null>;
|
|
10
|
-
/** 标准化后的 emits 配置 */
|
|
11
|
-
export interface NormalizedEmitsOptions {
|
|
12
|
-
/** 已声明的事件名集合(短横线形式) */
|
|
13
|
-
keys: string[];
|
|
14
|
-
/** 事件名 → 验证函数映射(无验证器则为 null) */
|
|
15
|
-
validators: Record<string, ((...args: any[]) => boolean) | null>;
|
|
16
|
-
}
|
|
17
|
-
/** 组件实例所需的最小 emit 接口 */
|
|
18
|
-
export interface EmitInstance {
|
|
19
|
-
/** 组件的 emits 声明(标准化后) */
|
|
20
|
-
emitsOptions?: NormalizedEmitsOptions;
|
|
21
|
-
/** 组件注册的事件处理函数映射(key 为短横线形式) */
|
|
22
|
-
props?: Record<string, any>;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* 从事件处理器类型提取事件类型
|
|
26
|
-
* 例如:
|
|
27
|
-
* - { onClick: (e: MouseEvent) => void } → { click: (e: MouseEvent) => void }
|
|
28
|
-
*/
|
|
29
|
-
export type ExtractEmitsFromHandlers<Handlers> = {
|
|
30
|
-
[K in keyof Handlers as K extends `on${infer E}` ? Uncapitalize<E> : never]: Handlers[K] extends (...args: infer Args) => any ? (...args: Args) => void : never;
|
|
31
|
-
};
|
|
32
|
-
/**
|
|
33
|
-
* 定义 emits 类型的工具函数
|
|
34
|
-
* 用于类型安全的事件声明
|
|
35
|
-
*/
|
|
36
|
-
export declare function defineEmits<T extends EmitsOptions>(emits: T): T;
|
|
37
|
-
/**
|
|
38
|
-
* 将驼峰命名转为短横线命名
|
|
39
|
-
*
|
|
40
|
-
* 示例:
|
|
41
|
-
* - handleChange → change
|
|
42
|
-
* - updateValue → update-value
|
|
43
|
-
* - myCustomEvent → my-custom-event
|
|
44
|
-
*
|
|
45
|
-
* @param str - 驼峰命名的字符串
|
|
46
|
-
* @returns 短横线命名的字符串
|
|
47
|
-
*/
|
|
48
|
-
export declare function camelizeToHyphen(str: string): string;
|
|
49
|
-
/**
|
|
50
|
-
* 将短横线命名转为驼峰命名
|
|
51
|
-
*
|
|
52
|
-
* 示例:
|
|
53
|
-
* - update-value → updateValue
|
|
54
|
-
* - my-custom-event → myCustomEvent
|
|
55
|
-
*
|
|
56
|
-
* @param str - 短横线命名的字符串
|
|
57
|
-
* @returns 驼峰命名的字符串
|
|
58
|
-
*/
|
|
59
|
-
export declare function hyphenToCamel(str: string): string;
|
|
60
|
-
/**
|
|
61
|
-
* 标准化 emits 声明
|
|
62
|
-
*
|
|
63
|
-
* 支持两种形式:
|
|
64
|
-
* - 数组形式:['change', 'update'] → 每个事件无验证器
|
|
65
|
-
* - 对象形式:{ change: null, update: (val) => val > 0 } → 可附带验证器
|
|
66
|
-
*
|
|
67
|
-
* 所有事件名统一转为短横线形式。
|
|
68
|
-
*
|
|
69
|
-
* @param emits - 组件 options 中传入的 emits 声明
|
|
70
|
-
* @returns 标准化后的 emits 配置
|
|
71
|
-
*/
|
|
72
|
-
export declare function normalizeEmits(emits: EmitsOptions | undefined | null): NormalizedEmitsOptions;
|
|
73
|
-
/**
|
|
74
|
-
* 组件事件发射
|
|
75
|
-
*
|
|
76
|
-
* 流程:
|
|
77
|
-
* 1. 将事件名转为短横线形式
|
|
78
|
-
* 2. 如果组件声明了 emits,校验事件是否已声明
|
|
79
|
-
* 3. 如果该事件有验证器,执行验证
|
|
80
|
-
* 4. 在实例 props 中查找对应的处理函数并调用
|
|
81
|
-
*
|
|
82
|
-
* 事件处理函数命名约定:
|
|
83
|
-
* - 事件 "change" 对应处理函数 "onChange"
|
|
84
|
-
* - 事件 "update-value" 对应处理函数 "onUpdateValue"
|
|
85
|
-
*
|
|
86
|
-
* @param instance - 组件实例
|
|
87
|
-
* @param event - 事件名(支持驼峰或短横线形式)
|
|
88
|
-
* @param args - 传递给事件处理函数的参数
|
|
89
|
-
* @returns 事件是否有对应的处理函数被调用
|
|
90
|
-
*/
|
|
91
|
-
export declare function emit(instance: EmitInstance, event: string, ...args: any[]): boolean;
|
|
92
|
-
//# sourceMappingURL=emit.d.ts.map
|
package/dist/types/emit.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"emit.d.ts","sourceRoot":"","sources":["../../src/emit.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,+BAA+B;AAC/B,MAAM,MAAM,YAAY,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AAE3F,qBAAqB;AACrB,MAAM,WAAW,sBAAsB;IACrC,uBAAuB;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;CAClE;AAED,wBAAwB;AACxB,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,YAAY,CAAC,EAAE,sBAAsB,CAAC;IACtC,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,CAAC,QAAQ,IAAI;KAC9C,CAAC,IAAI,MAAM,QAAQ,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,EAAE,GAC5C,YAAY,CAAC,CAAC,CAAC,GACf,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,GAAG,GACtD,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,IAAI,GACvB,KAAK;CACZ,CAAC;AAEF;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,YAAY,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAE/D;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,GACrC,sBAAsB,CAmCxB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,IAAI,CAClB,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,MAAM,EACb,GAAG,IAAI,EAAE,GAAG,EAAE,GACb,OAAO,CAqDT"}
|
package/dist/types/index.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lyt.js 组件系统 — 统一导出入口
|
|
3
|
-
*
|
|
4
|
-
* 导出所有公共 API 和类型定义。
|
|
5
|
-
* 纯原生实现,零外部依赖。
|
|
6
|
-
*/
|
|
7
|
-
export { defineComponent, defineFunctionalComponent, createComponentInstance, setupComponent, setupStatefulComponent, setupFunctionComponent, mountComponent, updateComponent, unmountComponent, } from './define-component';
|
|
8
|
-
export type { ComponentOptions, ComponentDefine, ComponentPublicInstance, ComponentInternalInstance, RenderFunction, CreateElement, ComputedOptions, WatchOptions, FunctionalComponent, EmitFunction, ReactivityMode, } from './define-component';
|
|
9
|
-
export { normalizePropsOptions, validateProp, initProps, getPropDefaultValue, } from './props';
|
|
10
|
-
export type { PropType, PropOptions, NormalizedPropsOptions, NormalizedProps, } from './props';
|
|
11
|
-
export { emit, normalizeEmits, camelizeToHyphen, hyphenToCamel, defineEmits, } from './emit';
|
|
12
|
-
export type { EmitsOptions, NormalizedEmitsOptions, EmitInstance, ExtractEmitsFromHandlers, } from './emit';
|
|
13
|
-
export { LifecycleHook, createLifecycleHook, callLifecycleHook, setCurrentInstance, onInit, onMounted, onBeforeUpdate, onUpdated, onBeforeUnmount, onUnmounted, currentInstance, } from './lifecycle';
|
|
14
|
-
export type { LifecycleHookCallback, LifecycleInstance, } from './lifecycle';
|
|
15
|
-
export { initSlots, normalizeSlotValue, renderSlot, hasSlot, } from './slots';
|
|
16
|
-
export type { SlotValue, Slots, SlotChildren, SlotsInstance, } from './slots';
|
|
17
|
-
export { onMounted as compositionOnMounted, onUnmounted as compositionOnUnmounted, onUpdated as compositionOnUpdated, onBeforeMount as compositionOnBeforeMount, onBeforeUnmount as compositionOnBeforeUnmount, provide, inject, getCurrentInstance, runSetup, } from './composition-api';
|
|
18
|
-
export type { SetupFunction, } from './composition-api';
|
|
19
|
-
export { createSignalState, createSignalStateProxy, getSignalStateSnapshot, patchSignalState, disposeSignalState, } from './signal-state';
|
|
20
|
-
export type { SignalState, SignalStateProxy, } from './signal-state';
|
|
21
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,uBAAuB,EACvB,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,yBAAyB,EACzB,cAAc,EACd,aAAa,EACb,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,cAAc,GACf,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,SAAS,EACT,mBAAmB,GACpB,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,QAAQ,EACR,WAAW,EACX,sBAAsB,EACtB,eAAe,GAChB,MAAM,SAAS,CAAC;AAMjB,OAAO,EACL,IAAI,EACJ,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,WAAW,GACZ,MAAM,QAAQ,CAAC;AAEhB,YAAY,EACV,YAAY,EACZ,sBAAsB,EACtB,YAAY,EACZ,wBAAwB,GACzB,MAAM,QAAQ,CAAC;AAMhB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,MAAM,EACN,SAAS,EACT,cAAc,EACd,SAAS,EACT,eAAe,EACf,WAAW,EACX,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAMrB,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,UAAU,EACV,OAAO,GACR,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,SAAS,EACT,KAAK,EACL,YAAY,EACZ,aAAa,GACd,MAAM,SAAS,CAAC;AAYjB,OAAO,EACL,SAAS,IAAI,oBAAoB,EACjC,WAAW,IAAI,sBAAsB,EACrC,SAAS,IAAI,oBAAoB,EACjC,aAAa,IAAI,wBAAwB,EACzC,eAAe,IAAI,0BAA0B,EAC7C,OAAO,EACP,MAAM,EACN,kBAAkB,EAClB,QAAQ,GACT,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,aAAa,GACd,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,WAAW,EACX,gBAAgB,GACjB,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,92 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dist/types/props.d.ts
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
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 | (() => any);
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../src/props.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAgBH,uBAAuB;AACvB,MAAM,MAAM,QAAQ,GAChB,OAAO,MAAM,GACb,OAAO,MAAM,GACb,OAAO,OAAO,GACd,OAAO,KAAK,GACZ,OAAO,MAAM,GACb,OAAO,QAAQ,GACf,CAAC,MAAM,GAAG,CAAC,CAAC;AAEhB,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;AAkDF;;;;;;;;;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"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lyt.js Signal State Adapter
|
|
3
|
-
*
|
|
4
|
-
* 将普通状态对象转换为基于 Signal 的响应式状态。
|
|
5
|
-
* 提供 Proxy 包装,使组件代码可以使用 this.count 而非 this.count.value()。
|
|
6
|
-
* 纯原生零依赖实现。
|
|
7
|
-
*/
|
|
8
|
-
import { type WritableSignal } from '@lytjs/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
|
-
* 调用后状态对象中的所有 Signal 将被清空。
|
|
54
|
-
*
|
|
55
|
-
* @param signalState - Signal 状态对象
|
|
56
|
-
*/
|
|
57
|
-
export declare function disposeSignalState(signalState: SignalState): void;
|
|
58
|
-
//# sourceMappingURL=signal-state.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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,0BAA0B,CAAA;AAMjC,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,CAejE"}
|