@schemx/vue 0.2.3 → 1.0.0-next.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 +290 -229
- package/dist/analyze.html +1 -1
- package/dist/components/FormGroup/index.d.ts +3 -4
- package/dist/components/FormGroup/index.d.ts.map +1 -1
- package/dist/components/FormItem/index.d.ts +3 -4
- package/dist/components/FormItem/index.d.ts.map +1 -1
- package/dist/config/appConfig.d.ts +19 -0
- package/dist/config/appConfig.d.ts.map +1 -0
- package/dist/config/index.d.ts +2 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/form.d.ts +11 -8
- package/dist/form.d.ts.map +1 -1
- package/dist/hocs/withRemoteOptions.d.ts +3 -29
- package/dist/hocs/withRemoteOptions.d.ts.map +1 -1
- package/dist/hooks/index.d.ts +2 -2
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/provideFieldContext.d.ts +1 -2
- package/dist/hooks/provideFormConfigContext.d.ts +24 -19
- package/dist/hooks/provideFormConfigContext.d.ts.map +1 -1
- package/dist/hooks/provideFormContext.d.ts +0 -1
- package/dist/hooks/useDictionary.d.ts +13 -8
- package/dist/hooks/useDictionary.d.ts.map +1 -1
- package/dist/hooks/useEffect.d.ts +0 -1
- package/dist/hooks/useField.d.ts +1 -2
- package/dist/hooks/useField.d.ts.map +1 -1
- package/dist/hooks/useForm.d.ts +2 -3
- package/dist/hooks/useForm.d.ts.map +1 -1
- package/dist/hooks/useStableRef.d.ts +2 -3
- package/dist/hooks/useStableRef.d.ts.map +1 -1
- package/dist/hooks/useViewSchemas.d.ts +16 -2
- package/dist/hooks/useViewSchemas.d.ts.map +1 -1
- package/dist/hooks/useWatch.d.ts +64 -13
- package/dist/hooks/useWatch.d.ts.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +195 -82
- package/dist/index.mjs.map +1 -1
- package/dist/types/dictionary.d.ts +18 -18
- package/dist/types/dictionary.d.ts.map +1 -1
- package/dist/types/field.d.ts +20 -11
- package/dist/types/field.d.ts.map +1 -1
- package/dist/types/form.d.ts +41 -4
- package/dist/types/form.d.ts.map +1 -1
- package/dist/types/index.d.ts +15 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/diff.d.ts +2 -2
- package/dist/utils/diff.d.ts.map +1 -1
- package/dist/utils/dynamic.d.ts +13 -14
- package/dist/utils/dynamic.d.ts.map +1 -1
- package/dist/utils/equal.d.ts.map +1 -1
- package/dist/utils/helpers.d.ts +5 -6
- package/dist/utils/helpers.d.ts.map +1 -1
- package/dist/utils/rendererProvider.d.ts +2 -3
- package/dist/utils/rendererProvider.d.ts.map +1 -1
- package/dist/utils/rulesProvider.d.ts +5 -6
- package/dist/utils/rulesProvider.d.ts.map +1 -1
- package/dist/utils/slot.d.ts.map +1 -1
- package/dist/utils/validation.d.ts +0 -1
- package/package.json +6 -5
package/dist/types/field.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { Ref } from 'vue';
|
|
1
|
+
import { ComputedRef, Ref } from 'vue';
|
|
2
2
|
import { FieldValue, NamePath, SchemxFieldInstance, Values } from '@schemx/core';
|
|
3
|
-
|
|
4
3
|
/**
|
|
5
4
|
* Vue 层字段控制器实例
|
|
6
5
|
*
|
|
@@ -8,18 +7,28 @@ import { FieldValue, NamePath, SchemxFieldInstance, Values } from '@schemx/core'
|
|
|
8
7
|
* 将其 Signal 驱动的字段状态桥接为 Vue Ref,
|
|
9
8
|
* 供模板、computed、watchEffect 等响应式上下文直接使用。
|
|
10
9
|
*
|
|
11
|
-
* @typeParam
|
|
10
|
+
* @typeParam TValues - 表单值类型。
|
|
12
11
|
*/
|
|
13
12
|
export interface FieldInstance<TValues extends Values = Values> extends SchemxFieldInstance<TValues> {
|
|
14
|
-
/**
|
|
13
|
+
/**
|
|
14
|
+
* 当前字段路径。
|
|
15
|
+
*/
|
|
15
16
|
readonly name: NamePath<TValues>;
|
|
16
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* 当前字段值(Vue shallowRef,由 Signal effect 驱动)。
|
|
19
|
+
*/
|
|
17
20
|
value: Ref<FieldValue<TValues, NamePath<TValues>> | undefined>;
|
|
18
|
-
/**
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
|
|
21
|
+
/**
|
|
22
|
+
* 是否已被用户修改(只读 Vue computed)。
|
|
23
|
+
*/
|
|
24
|
+
dirty: ComputedRef<boolean>;
|
|
25
|
+
/**
|
|
26
|
+
* 当前校验错误信息(只读 Vue computed)。
|
|
27
|
+
*/
|
|
28
|
+
errors: ComputedRef<readonly string[]>;
|
|
29
|
+
/**
|
|
30
|
+
* 是否处于异步操作中(只读 Vue computed,如文件上传、远程校验等)。
|
|
31
|
+
*/
|
|
32
|
+
pending: ComputedRef<boolean>;
|
|
24
33
|
}
|
|
25
34
|
//# sourceMappingURL=field.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../src/types/field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../src/types/field.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAE3C,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErF;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa,CAC5B,OAAO,SAAS,MAAM,GAAG,MAAM,CAC/B,SAAQ,mBAAmB,CAAC,OAAO,CAAC;IACpC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;IAChC;;OAEG;IACH,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;IAC9D;;OAEG;IACH,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC3B;;OAEG;IACH,MAAM,EAAE,WAAW,CAAC,SAAS,MAAM,EAAE,CAAC,CAAA;IACtC;;OAEG;IACH,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;CAC9B"}
|
package/dist/types/form.d.ts
CHANGED
|
@@ -1,12 +1,48 @@
|
|
|
1
|
-
import { SchemxProps, Values } from '@schemx/core';
|
|
2
1
|
import { StyleValue } from 'vue';
|
|
3
|
-
|
|
2
|
+
import { DefinedFieldValue, FormCallbackOptions, FormLifecycleOptions, NamePath, RequiredRule, SchemxInstance, SchemxSchemasInput, ValidationTrigger, Values, SchemxConfig } from '@schemx/core';
|
|
3
|
+
/**
|
|
4
|
+
* Vue 需要在编译 `defineProps` 时直接读取 Props 的字段列表。
|
|
5
|
+
*
|
|
6
|
+
* Core 中的 `SchemxSchemaConfig` 是基于 `SchemxBaseField` 的外部复合类型别名,
|
|
7
|
+
* Vue SFC 编译器无法将它作为接口基类展开。这里在框架适配层保留同一组字段,
|
|
8
|
+
* 让运行时 Props 推导可静态解析,同时避免把这些配置误判为 fallthrough attrs。
|
|
9
|
+
*/
|
|
10
|
+
interface SchemxFormSchemaConfigProps<TValues extends Values = Values> {
|
|
11
|
+
required?: RequiredRule<DefinedFieldValue<TValues, NamePath<TValues>>>;
|
|
12
|
+
readonly?: boolean;
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
visible?: boolean;
|
|
15
|
+
labelIcon?: string;
|
|
16
|
+
labelAlign?: "left" | "center" | "right";
|
|
17
|
+
labelPosition?: "left" | "top" | "right";
|
|
18
|
+
labelWidth?: string;
|
|
19
|
+
contentAlign?: "left" | "center" | "right";
|
|
20
|
+
validationTrigger?: ValidationTrigger | ValidationTrigger[];
|
|
21
|
+
colon?: boolean;
|
|
22
|
+
showRequiredMark?: boolean;
|
|
23
|
+
}
|
|
4
24
|
/**
|
|
5
25
|
* schemx 组件 Props
|
|
6
26
|
*
|
|
7
|
-
* @typeParam
|
|
27
|
+
* @typeParam TValues - 表单值类型
|
|
8
28
|
*/
|
|
9
|
-
export interface SchemxFormProps<
|
|
29
|
+
export interface SchemxFormProps<TValues extends Values = Values> extends Omit<SchemxConfig, "schemaConfig">, FormCallbackOptions<TValues>, FormLifecycleOptions<TValues>, SchemxFormSchemaConfigProps<TValues> {
|
|
30
|
+
/**
|
|
31
|
+
* 初始 Schema 列表。
|
|
32
|
+
*/
|
|
33
|
+
schemas?: SchemxSchemasInput<TValues>;
|
|
34
|
+
/**
|
|
35
|
+
* Store 使用的初始表单值。
|
|
36
|
+
*/
|
|
37
|
+
initialValues?: TValues;
|
|
38
|
+
/**
|
|
39
|
+
* Vue 受控模式下的表单值。
|
|
40
|
+
*/
|
|
41
|
+
modelValue?: TValues;
|
|
42
|
+
/**
|
|
43
|
+
* 外部传入的表单实例;传入后由组件复用该实例。
|
|
44
|
+
*/
|
|
45
|
+
form?: SchemxInstance<TValues>;
|
|
10
46
|
/**
|
|
11
47
|
* 自定义 CSS 类名
|
|
12
48
|
*/
|
|
@@ -16,4 +52,5 @@ export interface SchemxFormProps<T extends Values = Values> extends SchemxProps<
|
|
|
16
52
|
*/
|
|
17
53
|
style?: StyleValue;
|
|
18
54
|
}
|
|
55
|
+
export {};
|
|
19
56
|
//# sourceMappingURL=form.d.ts.map
|
package/dist/types/form.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../src/types/form.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../src/types/form.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAErC,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,EACN,YAAY,EACb,MAAM,cAAc,CAAA;AAErB;;;;;;GAMG;AACH,UAAU,2BAA2B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IACnE,QAAQ,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IACtE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;IACxC,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAA;IACxC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;IAC1C,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,CAAA;IAC3D,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,CAC9D,SACE,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,EAClC,mBAAmB,CAAC,OAAO,CAAC,EAC5B,oBAAoB,CAAC,OAAO,CAAC,EAC7B,2BAA2B,CAAC,OAAO,CAAC;IACtC;;OAEG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAErC;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IAEpB;;OAEG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAA;IAE9B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,KAAK,CAAC,EAAE,UAAU,CAAA;CACnB"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
import { StyleValue } from 'vue';
|
|
2
|
+
declare module "@schemx/core" {
|
|
3
|
+
interface SchemxFieldDefinition {
|
|
4
|
+
/** 追加到表单项容器元素上的自定义 CSS 类名。 */
|
|
5
|
+
class?: string;
|
|
6
|
+
/** 应用到表单项容器元素上的自定义内联样式。 */
|
|
7
|
+
style?: StyleValue;
|
|
8
|
+
}
|
|
9
|
+
interface SchemxGroupFieldDefinition {
|
|
10
|
+
/** 追加到 Group 根元素上的自定义 CSS 类名。 */
|
|
11
|
+
class?: string;
|
|
12
|
+
/** 应用到 Group 根元素上的自定义内联样式。 */
|
|
13
|
+
style?: StyleValue;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
1
16
|
export * from './dictionary';
|
|
2
17
|
export * from './form';
|
|
3
18
|
export * from './field';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAE5B,cAAc,QAAQ,CAAA;AAEtB,cAAc,SAAS,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAErC,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,qBAAqB;QAC7B,8BAA8B;QAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;QAEd,2BAA2B;QAC3B,KAAK,CAAC,EAAE,UAAU,CAAA;KACnB;IAED,UAAU,0BAA0B;QAClC,iCAAiC;QACjC,KAAK,CAAC,EAAE,MAAM,CAAA;QAEd,8BAA8B;QAC9B,KAAK,CAAC,EAAE,UAAU,CAAA;KACnB;CACF;AAED,cAAc,cAAc,CAAA;AAE5B,cAAc,QAAQ,CAAA;AAEtB,cAAc,SAAS,CAAA"}
|
package/dist/utils/diff.d.ts
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* 遍历 current 的所有 key,与 prev 逐一深度比较,
|
|
17
17
|
* 收集不相等的 key 对应的新值。
|
|
18
18
|
*
|
|
19
|
-
* @typeParam
|
|
19
|
+
* @typeParam TRecord - 对象类型
|
|
20
20
|
*
|
|
21
21
|
* @param current - 当前对象
|
|
22
22
|
* @param prev - 上一次对象
|
|
@@ -29,5 +29,5 @@
|
|
|
29
29
|
* // changed => { b: 2 }
|
|
30
30
|
* ```
|
|
31
31
|
*/
|
|
32
|
-
export declare function diff<
|
|
32
|
+
export declare function diff<TRecord extends Record<string, unknown>>(current: TRecord, prev: TRecord): Partial<TRecord>;
|
|
33
33
|
//# sourceMappingURL=diff.d.ts.map
|
package/dist/utils/diff.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/utils/diff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/utils/diff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,IAAI,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1D,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,OAAO,CAAC,CAUlB"}
|
package/dist/utils/dynamic.d.ts
CHANGED
|
@@ -1,40 +1,39 @@
|
|
|
1
1
|
import { Dynamic, Values } from '@schemx/core';
|
|
2
|
-
|
|
3
2
|
/**
|
|
4
3
|
* 批量解析的单个属性条目
|
|
5
4
|
*
|
|
6
|
-
* @typeParam
|
|
5
|
+
* @typeParam TValue - 属性值类型
|
|
7
6
|
*/
|
|
8
|
-
export interface DependencieEntry<
|
|
7
|
+
export interface DependencieEntry<TValue> {
|
|
9
8
|
/** 动态属性值(函数、静态值、null 或 undefined) */
|
|
10
|
-
value: Dynamic<
|
|
9
|
+
value: Dynamic<TValue> | undefined | null;
|
|
11
10
|
/** 默认值,当 value 为空或函数返回 nullish 时使用 */
|
|
12
|
-
defaultValue:
|
|
11
|
+
defaultValue: TValue;
|
|
13
12
|
}
|
|
14
13
|
/**
|
|
15
14
|
* 批量解析的属性条目映射表类型
|
|
16
15
|
*
|
|
17
16
|
* 将属性名映射到对应的 {@link DependencieEntry}。
|
|
18
17
|
*
|
|
19
|
-
* @typeParam
|
|
18
|
+
* @typeParam TProps - 属性名到值类型的映射
|
|
20
19
|
*/
|
|
21
|
-
type DependencieEntries<
|
|
22
|
-
[
|
|
20
|
+
type DependencieEntries<TProps extends Record<string, unknown>> = {
|
|
21
|
+
[TKey in keyof TProps]: DependencieEntry<TProps[TKey]>;
|
|
23
22
|
};
|
|
24
23
|
/**
|
|
25
24
|
* 解析泛型动态属性
|
|
26
25
|
*
|
|
27
|
-
* 将 `Dynamic<
|
|
26
|
+
* 将 `Dynamic<TValue>`(函数或静态值)统一解析为 `TValue`。
|
|
28
27
|
* 当 value 为函数时调用并传入表单值,捕获错误返回默认值;
|
|
29
28
|
* 当 value 为 null/undefined 时返回默认值。
|
|
30
29
|
*
|
|
31
|
-
* @typeParam
|
|
30
|
+
* @typeParam TValue - 解析后的属性值类型
|
|
32
31
|
*
|
|
33
32
|
* @param value - 动态属性值(函数、静态值、null 或 undefined)
|
|
34
33
|
* @param formValues - 当前表单值,作为函数形式的入参
|
|
35
34
|
* @param defaultValue - 默认值,当 value 为空或函数返回 nullish 时使用
|
|
36
35
|
*
|
|
37
|
-
* @returns 解析后的属性值,类型始终为
|
|
36
|
+
* @returns 解析后的属性值,类型始终为 TValue
|
|
38
37
|
*
|
|
39
38
|
* @example
|
|
40
39
|
* ```typescript
|
|
@@ -51,7 +50,7 @@ type DependencieEntries<M extends Record<string, unknown>> = {
|
|
|
51
50
|
* // => 'default'
|
|
52
51
|
* ```
|
|
53
52
|
*/
|
|
54
|
-
export declare function resolveDependencie<
|
|
53
|
+
export declare function resolveDependencie<TValue>(value: Dynamic<TValue> | undefined | null, formValues: Values, defaultValue: TValue): Promise<TValue>;
|
|
55
54
|
/**
|
|
56
55
|
* 创建 debounced 批量动态属性解析器
|
|
57
56
|
*
|
|
@@ -59,7 +58,7 @@ export declare function resolveDependencie<T>(value: Dynamic<T> | undefined | nu
|
|
|
59
58
|
* 高频调用时只保留最后一次的参数,debounce 窗口结束后一次性
|
|
60
59
|
* 通过 `Promise.all` 并行解析所有属性,将结果通过回调分发。
|
|
61
60
|
*
|
|
62
|
-
* @typeParam
|
|
61
|
+
* @typeParam TProps - 属性名到值类型的映射
|
|
63
62
|
*
|
|
64
63
|
* @param wait - debounce 等待时间(毫秒),默认 16ms(约一帧)
|
|
65
64
|
*
|
|
@@ -94,6 +93,6 @@ export declare function resolveDependencie<T>(value: Dynamic<T> | undefined | nu
|
|
|
94
93
|
* 适用于 signal effect / watch 回调中批量解析动态属性的场景,
|
|
95
94
|
* 避免多个字段同时变化时重复解析。
|
|
96
95
|
*/
|
|
97
|
-
export declare function batchResolveDependencie<
|
|
96
|
+
export declare function batchResolveDependencie<TProps extends Record<string, unknown>>(wait?: number): (entries: DependencieEntries<TProps>, formValues: Values, callback: (results: TProps) => void) => void;
|
|
98
97
|
export {};
|
|
99
98
|
//# sourceMappingURL=dynamic.d.ts.map
|
|
@@ -1 +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,
|
|
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,MAAM;IACtC,qCAAqC;IACrC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,IAAI,CAAA;IACzC,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;GAMG;AACH,KAAK,kBAAkB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;KAC/D,IAAI,IAAI,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CACvD,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAC7C,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,IAAI,EACzC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAoBjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5E,IAAI,SAAK,GACR,CACD,OAAO,EAAE,kBAAkB,CAAC,MAAM,CAAC,EACnC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,KAChC,IAAI,CAmCR"}
|
|
@@ -1 +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,
|
|
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,OAQF,CAAA"}
|
package/dist/utils/helpers.d.ts
CHANGED
|
@@ -1,24 +1,23 @@
|
|
|
1
1
|
import { SchemxViewSchema } from '@schemx/core';
|
|
2
|
-
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
3
|
+
* 判断当前项是否为顶层可见普通字段所在区段的第一个或最后一个。
|
|
5
4
|
*
|
|
6
|
-
*
|
|
5
|
+
* 可见 Group 是区段边界;不可见字段和不可见 Group 不参与计算。
|
|
7
6
|
*
|
|
8
7
|
* 使用示例:
|
|
9
8
|
*
|
|
10
9
|
* const list = [
|
|
11
|
-
* { key: 'group-1',
|
|
10
|
+
* { key: 'group-1', children: [] },
|
|
12
11
|
* { key: 'a' },
|
|
13
12
|
* { key: 'b' },
|
|
14
|
-
* { key: 'group-2',
|
|
13
|
+
* { key: 'group-2', children: [] },
|
|
15
14
|
* { key: 'c' },
|
|
16
15
|
* ]
|
|
17
16
|
*
|
|
18
17
|
* getSectionPosition(list, 'a')
|
|
19
18
|
* // => { found: true, isFirst: true, isLast: false }
|
|
20
19
|
*/
|
|
21
|
-
export declare function getSectionPosition<
|
|
20
|
+
export declare function getSectionPosition<TItem extends SchemxViewSchema>(list: TItem[], currentKey: string): {
|
|
22
21
|
found: boolean;
|
|
23
22
|
isFirst: boolean;
|
|
24
23
|
isLast: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,SAAS,gBAAgB,EAC/D,IAAI,EAAE,KAAK,EAAE,EACb,UAAU,EAAE,MAAM;;;;EA2BnB"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { RendererRegistry, SchemxRendererKey } from '@schemx/core';
|
|
3
2
|
/**
|
|
4
3
|
* 全局渲染器注册实例
|
|
5
4
|
*
|
|
@@ -13,5 +12,5 @@ import { RendererRegistryType, SchemxRendererKey } from '@schemx/core';
|
|
|
13
12
|
* // props 传入的 rendererRegistry 优先级更高
|
|
14
13
|
* ```
|
|
15
14
|
*/
|
|
16
|
-
export declare const rendererRegistry:
|
|
15
|
+
export declare const rendererRegistry: RendererRegistry<SchemxRendererKey>;
|
|
17
16
|
//# sourceMappingURL=rendererProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rendererProvider.d.ts","sourceRoot":"","sources":["../../src/utils/rendererProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAEL,KAAK,
|
|
1
|
+
{"version":3,"file":"rendererProvider.d.ts","sourceRoot":"","sources":["../../src/utils/rendererProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACvB,MAAM,cAAc,CAAA;AAErB;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,EAAE,gBAAgB,CAAC,iBAAiB,CACb,CAAA"}
|
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { ValidationRuleRegistry } from '@schemx/core';
|
|
3
2
|
/**
|
|
4
3
|
* 全局校验规则注册实例
|
|
5
4
|
*
|
|
6
5
|
* @example
|
|
7
6
|
* ```ts
|
|
8
7
|
* // 注册自定义规则
|
|
9
|
-
* import {
|
|
10
|
-
*
|
|
8
|
+
* import { validationRuleRegistry } from '@schemx/vue'
|
|
9
|
+
* validationRuleRegistry.register('phone', phoneRule)
|
|
11
10
|
*
|
|
12
11
|
* // useForm 内部自动使用
|
|
13
|
-
* // props 传入的
|
|
12
|
+
* // props 传入的 validationRuleRegistry 优先级更高
|
|
14
13
|
* ```
|
|
15
14
|
*/
|
|
16
|
-
export declare const
|
|
15
|
+
export declare const validationRuleRegistry: ValidationRuleRegistry;
|
|
17
16
|
//# sourceMappingURL=rulesProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rulesProvider.d.ts","sourceRoot":"","sources":["../../src/utils/rulesProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"rulesProvider.d.ts","sourceRoot":"","sources":["../../src/utils/rulesProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAgC,KAAK,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAExF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,EAAE,sBACL,CAAA"}
|
package/dist/utils/slot.d.ts.map
CHANGED
|
@@ -1 +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,
|
|
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,CAgBpB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@schemx/vue",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "1.0.0-next.0",
|
|
5
5
|
"description": "基于 JSON Schema 配置的 Vue 3 动态表单引擎(UI 无关核心)",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"schemx",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
],
|
|
49
49
|
"peerDependencies": {
|
|
50
50
|
"vue": "^3.0.0",
|
|
51
|
-
"@schemx/core": "0.
|
|
51
|
+
"@schemx/core": "1.0.0-next.0"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
54
|
"classnames": "^2.5.1",
|
|
@@ -60,17 +60,18 @@
|
|
|
60
60
|
"@vue/test-utils": "^2.4.6",
|
|
61
61
|
"vue": "^3.4.0",
|
|
62
62
|
"zod": "^4.3.6",
|
|
63
|
-
"@schemx/core": "0.
|
|
63
|
+
"@schemx/core": "1.0.0-next.0"
|
|
64
64
|
},
|
|
65
65
|
"scripts": {
|
|
66
|
-
"build": "vite build",
|
|
66
|
+
"build": "pnpm run type-check && vite build",
|
|
67
67
|
"build:analyze": "vite build",
|
|
68
68
|
"test": "vitest run",
|
|
69
69
|
"lint": "eslint \"src/**/*.{ts,tsx,vue,js,jsx}\"",
|
|
70
70
|
"lint:fix": "eslint \"src/**/*.{ts,tsx,vue,js,jsx}\" --fix",
|
|
71
71
|
"format": "prettier --write \"src/**/*.{ts,tsx,vue,js,jsx,json,css,scss}\"",
|
|
72
72
|
"format:check": "prettier --check \"src/**/*.{ts,tsx,vue,js,jsx,json,css,scss}\"",
|
|
73
|
-
"type-
|
|
73
|
+
"type-test": "tsc -p tsconfig.type-tests.json --noEmit",
|
|
74
|
+
"type-check": "tsc -p tsconfig.json --noEmit && pnpm run type-test",
|
|
74
75
|
"check": "pnpm run lint && pnpm run format:check && pnpm run type-check"
|
|
75
76
|
}
|
|
76
77
|
}
|