@schemx/vue 0.1.20
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 +136 -0
- package/dist/components/FormGroup/index.d.ts +17 -0
- package/dist/components/FormGroup/index.d.ts.map +1 -0
- package/dist/components/FormItem/index.d.ts +17 -0
- package/dist/components/FormItem/index.d.ts.map +1 -0
- package/dist/form.d.ts +34 -0
- package/dist/form.d.ts.map +1 -0
- package/dist/hocs/index.d.ts +10 -0
- package/dist/hocs/index.d.ts.map +1 -0
- package/dist/hocs/withRemoteOptions.d.ts +74 -0
- package/dist/hocs/withRemoteOptions.d.ts.map +1 -0
- package/dist/hooks/index.d.ts +24 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/useContext.d.ts +40 -0
- package/dist/hooks/useContext.d.ts.map +1 -0
- package/dist/hooks/useDictionary.d.ts +63 -0
- package/dist/hooks/useDictionary.d.ts.map +1 -0
- package/dist/hooks/useEffect.d.ts +34 -0
- package/dist/hooks/useEffect.d.ts.map +1 -0
- package/dist/hooks/useField.d.ts +38 -0
- package/dist/hooks/useField.d.ts.map +1 -0
- package/dist/hooks/useFieldContext.d.ts +23 -0
- package/dist/hooks/useFieldContext.d.ts.map +1 -0
- package/dist/hooks/useForm.d.ts +59 -0
- package/dist/hooks/useForm.d.ts.map +1 -0
- package/dist/hooks/useStableRef.d.ts +28 -0
- package/dist/hooks/useStableRef.d.ts.map +1 -0
- package/dist/hooks/useViewSchemas.d.ts +6 -0
- package/dist/hooks/useViewSchemas.d.ts.map +1 -0
- package/dist/hooks/useWatch.d.ts +65 -0
- package/dist/hooks/useWatch.d.ts.map +1 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +686 -0
- package/dist/index.mjs.map +1 -0
- package/dist/index.umd.js +2 -0
- package/dist/index.umd.js.map +1 -0
- package/dist/style.css +1 -0
- package/dist/types/field.d.ts +23 -0
- package/dist/types/field.d.ts.map +1 -0
- package/dist/types/form.d.ts +18 -0
- package/dist/types/form.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/utils/diff.d.ts +33 -0
- package/dist/utils/diff.d.ts.map +1 -0
- package/dist/utils/dynamic.d.ts +99 -0
- package/dist/utils/dynamic.d.ts.map +1 -0
- package/dist/utils/equal.d.ts +22 -0
- package/dist/utils/equal.d.ts.map +1 -0
- package/dist/utils/index.d.ts +13 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/rendererProvider.d.ts +17 -0
- package/dist/utils/rendererProvider.d.ts.map +1 -0
- package/dist/utils/rulesProvider.d.ts +17 -0
- package/dist/utils/rulesProvider.d.ts.map +1 -0
- package/dist/utils/slot.d.ts +49 -0
- package/dist/utils/slot.d.ts.map +1 -0
- package/dist/utils/validation.d.ts +43 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { Dynamic, Values } from '@schemx/core';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 批量解析的单个属性条目
|
|
5
|
+
*
|
|
6
|
+
* @typeParam T - 属性值类型
|
|
7
|
+
*/
|
|
8
|
+
export interface DependencieEntry<T> {
|
|
9
|
+
/** 动态属性值(函数、静态值、null 或 undefined) */
|
|
10
|
+
value: Dynamic<T> | undefined | null;
|
|
11
|
+
/** 默认值,当 value 为空或函数返回 nullish 时使用 */
|
|
12
|
+
defaultValue: T;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* 批量解析的属性条目映射表类型
|
|
16
|
+
*
|
|
17
|
+
* 将属性名映射到对应的 {@link DependencieEntry}。
|
|
18
|
+
*
|
|
19
|
+
* @typeParam M - 属性名到值类型的映射
|
|
20
|
+
*/
|
|
21
|
+
type DependencieEntries<M extends Record<string, unknown>> = {
|
|
22
|
+
[K in keyof M]: DependencieEntry<M[K]>;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* 解析泛型动态属性
|
|
26
|
+
*
|
|
27
|
+
* 将 `Dynamic<T>`(函数或静态值)统一解析为 `T`。
|
|
28
|
+
* 当 value 为函数时调用并传入表单值,捕获错误返回默认值;
|
|
29
|
+
* 当 value 为 null/undefined 时返回默认值。
|
|
30
|
+
*
|
|
31
|
+
* @typeParam T - 解析后的属性值类型
|
|
32
|
+
*
|
|
33
|
+
* @param value - 动态属性值(函数、静态值、null 或 undefined)
|
|
34
|
+
* @param formValues - 当前表单值,作为函数形式的入参
|
|
35
|
+
* @param defaultValue - 默认值,当 value 为空或函数返回 nullish 时使用
|
|
36
|
+
*
|
|
37
|
+
* @returns 解析后的属性值,类型始终为 T
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```typescript
|
|
41
|
+
* // 函数类型
|
|
42
|
+
* await resolveDependencie((v) => v.name, { name: 'test' }, '')
|
|
43
|
+
* // => 'test'
|
|
44
|
+
*
|
|
45
|
+
* // 静态值
|
|
46
|
+
* await resolveDependencie('hello', {}, '')
|
|
47
|
+
* // => 'hello'
|
|
48
|
+
*
|
|
49
|
+
* // null/undefined 回退到默认值
|
|
50
|
+
* await resolveDependencie(undefined, {}, 'default')
|
|
51
|
+
* // => 'default'
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export declare function resolveDependencie<T>(value: Dynamic<T> | undefined | null, formValues: Values, defaultValue: T): Promise<T>;
|
|
55
|
+
/**
|
|
56
|
+
* 创建 debounced 批量动态属性解析器
|
|
57
|
+
*
|
|
58
|
+
* 返回一个函数,每次调用时传入属性配置映射表、表单值和回调。
|
|
59
|
+
* 高频调用时只保留最后一次的参数,debounce 窗口结束后一次性
|
|
60
|
+
* 通过 `Promise.all` 并行解析所有属性,将结果通过回调分发。
|
|
61
|
+
*
|
|
62
|
+
* @typeParam M - 属性名到值类型的映射
|
|
63
|
+
*
|
|
64
|
+
* @param wait - debounce 等待时间(毫秒),默认 16ms(约一帧)
|
|
65
|
+
*
|
|
66
|
+
* @returns debounced 批量解析函数
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* const resolve = batchResolveDependencie<{
|
|
71
|
+
* visible: boolean
|
|
72
|
+
* disabled: boolean
|
|
73
|
+
* placeholder: string
|
|
74
|
+
* }>()
|
|
75
|
+
*
|
|
76
|
+
* // 在 watch 回调中调用,高频触发时只执行最后一次
|
|
77
|
+
* resolve(
|
|
78
|
+
* {
|
|
79
|
+
* visible: { value: schema.visible, defaultValue: true },
|
|
80
|
+
* disabled: { value: schema.disabled, defaultValue: false },
|
|
81
|
+
* placeholder: { value: schema.placeholder, defaultValue: '' },
|
|
82
|
+
* },
|
|
83
|
+
* latestSnapshot,
|
|
84
|
+
* (results) => {
|
|
85
|
+
* resolvedVisible.value = results.visible
|
|
86
|
+
* resolvedDisabled.value = results.disabled
|
|
87
|
+
* resolvedPlaceholder.value = results.placeholder
|
|
88
|
+
* }
|
|
89
|
+
* )
|
|
90
|
+
* ```
|
|
91
|
+
*
|
|
92
|
+
* @remarks
|
|
93
|
+
* 内部使用 es-toolkit 的 debounce 实现调用合并。
|
|
94
|
+
* 适用于 signal effect / watch 回调中批量解析动态属性的场景,
|
|
95
|
+
* 避免多个字段同时变化时重复解析。
|
|
96
|
+
*/
|
|
97
|
+
export declare function batchResolveDependencie<M extends Record<string, unknown>>(wait?: number): (entries: DependencieEntries<M>, formValues: Values, callback: (results: M) => void) => void;
|
|
98
|
+
export {};
|
|
99
|
+
//# sourceMappingURL=dynamic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamic.d.ts","sourceRoot":"","sources":["../../src/utils/dynamic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAE1C;;;;GAIG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,qCAAqC;IACrC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAA;IACpC,sCAAsC;IACtC,YAAY,EAAE,CAAC,CAAA;CAChB;AAED;;;;;;GAMG;AACH,KAAK,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;KAC1D,CAAC,IAAI,MAAM,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACvC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,EACxC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,EACpC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,CAAC,GACd,OAAO,CAAC,CAAC,CAAC,CAkBZ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvE,IAAI,SAAK,GACR,CACD,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC9B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,KAC3B,IAAI,CAgCR"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 对象浅比较工具
|
|
3
|
+
*
|
|
4
|
+
* @module utils/equal
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* 浅比较两个对象的自有属性值是否相同。
|
|
8
|
+
*
|
|
9
|
+
* 用于避免 computed / shallowRef 每次返回新对象引用导致子组件不必要的更新。
|
|
10
|
+
* 仅比较第一层属性,函数引用通过 === 判断。
|
|
11
|
+
*
|
|
12
|
+
* @param a - 旧对象
|
|
13
|
+
* @param b - 新对象
|
|
14
|
+
*
|
|
15
|
+
* @returns 两个对象浅相等时返回 true
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* shallowEqual({ a: 1, b: 2 }, { a: 1, b: 2 }) // => true
|
|
19
|
+
* shallowEqual({ a: 1 }, { a: 1, b: 2 }) // => false
|
|
20
|
+
*/
|
|
21
|
+
export declare const isShallowEqual: (a: Record<string, any>, b: Record<string, any>) => boolean;
|
|
22
|
+
//# sourceMappingURL=equal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"equal.d.ts","sourceRoot":"","sources":["../../src/utils/equal.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,cAAc,GACzB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACtB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KACrB,OAMF,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 工具函数统一导出
|
|
3
|
+
*
|
|
4
|
+
* @module utils
|
|
5
|
+
*/
|
|
6
|
+
/** 动态属性解析 */
|
|
7
|
+
export { type DependencieEntry, resolveDependencie, batchResolveDependencie, } from './dynamic';
|
|
8
|
+
/** 校验触发工具 */
|
|
9
|
+
export { type TriggerConfig, type NormalizedTrigger, shouldValidateOn, mergeTrigger, } from './validation';
|
|
10
|
+
/** 插槽工具 */
|
|
11
|
+
export { resolveSlot, extractChildSlots } from './slot';
|
|
12
|
+
export { diff } from './diff';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,aAAa;AACb,OAAO,EACL,KAAK,gBAAgB,EACrB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,WAAW,CAAA;AAElB,aAAa;AACb,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,gBAAgB,EAChB,YAAY,GACb,MAAM,cAAc,CAAA;AAErB,WAAW;AACX,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { RendererRegistryType, SchemxRendererKey } from '@schemx/core';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 全局渲染器注册实例
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* // UI 适配层注册渲染器
|
|
9
|
+
* import { rendererRegistry } from '@schemx/vue'
|
|
10
|
+
* rendererRegistry.registerAll({ input: InputRenderer, ... })
|
|
11
|
+
*
|
|
12
|
+
* // useForm 内部自动使用
|
|
13
|
+
* // props 传入的 rendererRegistry 优先级更高
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export declare const rendererRegistry: RendererRegistryType<SchemxRendererKey>;
|
|
17
|
+
//# sourceMappingURL=rendererProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rendererProvider.d.ts","sourceRoot":"","sources":["../../src/utils/rendererProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACvB,MAAM,cAAc,CAAA;AAErB;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,EAAE,oBAAoB,CAAC,iBAAiB,CACjB,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ValidatorsRegistryType } from '@schemx/core';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 全局校验规则注册实例
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* // 注册自定义规则
|
|
9
|
+
* import { validatorRegistry } from '@schemx/vue'
|
|
10
|
+
* validatorRegistry.register('phone', phoneRule)
|
|
11
|
+
*
|
|
12
|
+
* // useForm 内部自动使用
|
|
13
|
+
* // props 传入的 validatorRegistry 优先级更高
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export declare const validatorRegistry: ValidatorsRegistryType;
|
|
17
|
+
//# sourceMappingURL=rulesProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rulesProvider.d.ts","sourceRoot":"","sources":["../../src/utils/rulesProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAA4B,KAAK,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAEpF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,iBAAiB,EAAE,sBAAmD,CAAA"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 插槽解析与子插槽提取工具。
|
|
3
|
+
*
|
|
4
|
+
* 提供 camelCase / kebab-case 双向查找插槽,
|
|
5
|
+
* 以及按字段名前缀提取子渲染器插槽。
|
|
6
|
+
*
|
|
7
|
+
* @module utils/slot
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* 从插槽对象中按名称查找插槽,同时支持 camelCase 和 kebab-case。
|
|
11
|
+
*
|
|
12
|
+
* 优先查找原始名称,未找到时尝试另一种命名格式。
|
|
13
|
+
* 例如传入 `userName` 时,先查 `userName`,再查 `user-name`;
|
|
14
|
+
* 传入 `user-name` 时,先查 `user-name`,再查 `userName`。
|
|
15
|
+
*
|
|
16
|
+
* @param slots - Vue 插槽对象
|
|
17
|
+
* @param name - 插槽名称(camelCase 或 kebab-case)
|
|
18
|
+
*
|
|
19
|
+
* @returns 匹配的插槽函数,未找到返回 undefined
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* // slots 中定义了 'user-name' 插槽
|
|
24
|
+
* resolveSlot(slots, 'userName') // => 找到 'user-name' 插槽
|
|
25
|
+
* resolveSlot(slots, 'user-name') // => 找到 'user-name' 插槽
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare const resolveSlot: (slots: Record<string, any>, name: string) => ((...args: any[]) => any) | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* 从父级插槽中提取子渲染器插槽。
|
|
31
|
+
*
|
|
32
|
+
* 按 `fieldName:slotName` 和 `fieldName:slot-name` 格式匹配,
|
|
33
|
+
* 提取后去掉前缀作为子渲染器的插槽名。
|
|
34
|
+
* 同时支持 camelCase 和 kebab-case 的 fieldName。
|
|
35
|
+
*
|
|
36
|
+
* @param fieldName - 字段名
|
|
37
|
+
* @param allSlots - 父级全部插槽
|
|
38
|
+
*
|
|
39
|
+
* @returns 子渲染器的插槽对象
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* // 父级插槽: { 'userName:prefix': fn, 'userName:suffix': fn, 'userNameLabel': fn }
|
|
44
|
+
* extractChildSlots('userName', slots)
|
|
45
|
+
* // => { prefix: fn, suffix: fn }
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export declare const extractChildSlots: (fieldName: string, allSlots: Record<string, any>) => Record<string, any>;
|
|
49
|
+
//# sourceMappingURL=slot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slot.d.ts","sourceRoot":"","sources":["../../src/utils/slot.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA8DH;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,WAAW,GACtB,OAAO,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,MAAM,MAAM,KACX,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG,SAY9B,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,iBAAiB,GAC5B,WAAW,MAAM,EACjB,UAAU,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAC5B,MAAM,CAAC,MAAM,EAAE,GAAG,CAcpB,CAAA"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { ValidationTrigger } from '@schemx/core';
|
|
2
|
+
|
|
3
|
+
/** 触发时机类型(支持单个或数组) */
|
|
4
|
+
export type TriggerConfig = ValidationTrigger | ValidationTrigger[];
|
|
5
|
+
/** 归一化后的触发类型 */
|
|
6
|
+
export type NormalizedTrigger = "blur" | "change" | "submit";
|
|
7
|
+
/**
|
|
8
|
+
* 合并校验触发时机配置。
|
|
9
|
+
*
|
|
10
|
+
* 按优先级从高到低取值:列级配置 > 表单上下文配置 > 默认值。
|
|
11
|
+
* 跳过 undefined 和空数组,确保空数组不会意外覆盖后续配置。
|
|
12
|
+
*
|
|
13
|
+
* @param columnTrigger - 列级配置的触发时机
|
|
14
|
+
* @param contextTrigger - 表单上下文配置的触发时机
|
|
15
|
+
* @param defaultTrigger - 兜底默认值
|
|
16
|
+
*
|
|
17
|
+
* @returns 最终生效的触发时机
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* mergeTrigger("onBlur", "onChange", "onSubmit") // => "onBlur"
|
|
21
|
+
* mergeTrigger(undefined, "onChange", "onSubmit") // => "onChange"
|
|
22
|
+
* mergeTrigger([], "onChange", "onSubmit") // => "onChange"
|
|
23
|
+
* mergeTrigger(undefined, undefined, "onSubmit") // => "onSubmit"
|
|
24
|
+
*/
|
|
25
|
+
export declare function mergeTrigger(columnTrigger: TriggerConfig | undefined, contextTrigger: TriggerConfig | undefined, defaultTrigger: TriggerConfig): TriggerConfig;
|
|
26
|
+
/**
|
|
27
|
+
* 判断当前事件是否应该触发校验。
|
|
28
|
+
*
|
|
29
|
+
* 将配置的触发时机归一化后,与当前事件类型进行匹配。
|
|
30
|
+
*
|
|
31
|
+
* @param event - 当前触发的事件类型
|
|
32
|
+
* @param trigger - 配置的触发时机(支持单个或数组)
|
|
33
|
+
*
|
|
34
|
+
* @returns 是否应该触发校验
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* shouldValidateOn("change", "onChange") // => true
|
|
38
|
+
* shouldValidateOn("blur", ["onBlur", "onChange"]) // => true
|
|
39
|
+
* shouldValidateOn("change", "onSubmit") // => false
|
|
40
|
+
* shouldValidateOn("change", undefined) // => false
|
|
41
|
+
*/
|
|
42
|
+
export declare function shouldValidateOn(event: NormalizedTrigger, trigger?: TriggerConfig): boolean;
|
|
43
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAErD,sBAAsB;AACtB,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG,iBAAiB,EAAE,CAAA;AAEnE,gBAAgB;AAChB,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAkB5D;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAC1B,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,cAAc,EAAE,aAAa,GAAG,SAAS,EACzC,cAAc,EAAE,aAAa,GAC5B,aAAa,CAMf;AAyBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,iBAAiB,EACxB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAKT"}
|
package/package.json
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "module",
|
|
3
|
+
"name": "@schemx/vue",
|
|
4
|
+
"version": "0.1.20",
|
|
5
|
+
"description": "基于 JSON Schema 配置的 Vue 3 动态表单引擎(UI 无关核心)",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"schemx",
|
|
8
|
+
"vue",
|
|
9
|
+
"vue3",
|
|
10
|
+
"form",
|
|
11
|
+
"dynamic-form",
|
|
12
|
+
"json-schema",
|
|
13
|
+
"form-renderer"
|
|
14
|
+
],
|
|
15
|
+
"homepage": "https://github.com/Jiohon/schemx/tree/main/packages/vue#readme",
|
|
16
|
+
"bugs": {
|
|
17
|
+
"url": "https://github.com/Jiohon/schemx/issues"
|
|
18
|
+
},
|
|
19
|
+
"repository": {
|
|
20
|
+
"type": "git",
|
|
21
|
+
"url": "https://github.com/Jiohon/schemx.git",
|
|
22
|
+
"directory": "packages/vue"
|
|
23
|
+
},
|
|
24
|
+
"main": "./dist/index.cjs",
|
|
25
|
+
"module": "./dist/index.mjs",
|
|
26
|
+
"types": "./dist/index.d.ts",
|
|
27
|
+
"exports": {
|
|
28
|
+
".": {
|
|
29
|
+
"import": {
|
|
30
|
+
"types": "./dist/index.d.ts",
|
|
31
|
+
"default": "./dist/index.mjs"
|
|
32
|
+
},
|
|
33
|
+
"require": {
|
|
34
|
+
"types": "./dist/index.d.ts",
|
|
35
|
+
"default": "./dist/index.cjs"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"./style.css": "./dist/style.css"
|
|
39
|
+
},
|
|
40
|
+
"files": [
|
|
41
|
+
"dist",
|
|
42
|
+
"README.md"
|
|
43
|
+
],
|
|
44
|
+
"sideEffects": [
|
|
45
|
+
"**/*.css",
|
|
46
|
+
"**/*.scss"
|
|
47
|
+
],
|
|
48
|
+
"peerDependencies": {
|
|
49
|
+
"vue": "^3.0.0"
|
|
50
|
+
},
|
|
51
|
+
"dependencies": {
|
|
52
|
+
"classnames": "^2.5.1",
|
|
53
|
+
"csstype": "^3.2.3",
|
|
54
|
+
"dayjs": "^1.11.19",
|
|
55
|
+
"es-toolkit": "^1.45.1",
|
|
56
|
+
"@schemx/core": "0.1.23"
|
|
57
|
+
},
|
|
58
|
+
"license": "MIT",
|
|
59
|
+
"scripts": {
|
|
60
|
+
"build": "vite build",
|
|
61
|
+
"test": "vitest run",
|
|
62
|
+
"lint": "eslint \"src/**/*.{ts,tsx,vue,js,jsx}\""
|
|
63
|
+
}
|
|
64
|
+
}
|