@shwfed/config 2.12.15 → 2.12.17
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/module.json +1 -1
- package/dist/runtime/components/actions/components/group.vue +1 -0
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/config.d.vue.ts +2 -2
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/config.vue.d.ts +2 -2
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/runtime.d.vue.ts +4 -4
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/runtime.vue.d.ts +4 -4
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/schema.d.ts +1 -1
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/config.d.vue.ts +2 -2
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/config.vue.d.ts +2 -2
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/runtime.d.vue.ts +2 -2
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/runtime.vue.d.ts +2 -2
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/schema.d.ts +2 -2
- package/dist/runtime/components/config/index.d.vue.ts +2 -2
- package/dist/runtime/components/config/index.vue.d.ts +2 -2
- package/dist/runtime/components/config/use-editor.js +9 -0
- package/dist/runtime/components/config/utils/linkage.d.ts +29 -0
- package/dist/runtime/components/config/utils/linkage.js +57 -0
- package/dist/runtime/components/config/utils/validation-error.d.ts +1 -0
- package/dist/runtime/components/config/utils/validation-error.js +1 -1
- package/dist/runtime/components/form/FormUnitRenderer.vue +76 -23
- package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.combobox.single/config.d.vue.ts +2 -2
- package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.combobox.single/config.vue.d.ts +2 -2
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/config.d.vue.ts +6 -6
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/config.vue.d.ts +6 -6
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/config.d.vue.ts +8 -8
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/config.vue.d.ts +8 -8
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/config.d.vue.ts +2 -2
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/config.vue.d.ts +2 -2
- package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/config.d.vue.ts +2 -2
- package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/config.vue.d.ts +2 -2
- package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.monthrange/config.d.vue.ts +6 -6
- package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.monthrange/config.vue.d.ts +6 -6
- package/dist/runtime/components/form/fields/2026-05-25/com.shwfed.form.field.combobox.multi/config.d.vue.ts +2 -2
- package/dist/runtime/components/form/fields/2026-05-25/com.shwfed.form.field.combobox.multi/config.vue.d.ts +2 -2
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/config.d.vue.ts +2 -2
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/config.vue.d.ts +2 -2
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/config.d.vue.ts +2 -2
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/config.vue.d.ts +2 -2
- package/dist/runtime/components/form/fields/2026-06-14/com.shwfed.form.field.combobox.multi/config.d.vue.ts +2 -2
- package/dist/runtime/components/form/fields/2026-06-14/com.shwfed.form.field.combobox.multi/config.vue.d.ts +2 -2
- package/dist/runtime/components/form/fields/2026-06-14/com.shwfed.form.field.combobox.single/config.d.vue.ts +2 -2
- package/dist/runtime/components/form/fields/2026-06-14/com.shwfed.form.field.combobox.single/config.vue.d.ts +2 -2
- package/dist/runtime/components/form/schema.d.ts +2 -2
- package/dist/runtime/components/sidebar/use-editor.js +6 -0
- package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.combobox-single/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.combobox-single/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-remote/config.d.vue.ts +6 -6
- package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-remote/config.vue.d.ts +6 -6
- package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-static/config.d.vue.ts +4 -4
- package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-static/config.vue.d.ts +4 -4
- package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-remote/config.d.vue.ts +6 -6
- package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-remote/config.vue.d.ts +6 -6
- package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-static/config.d.vue.ts +4 -4
- package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-static/config.vue.d.ts +4 -4
- package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-multi/config.d.vue.ts +6 -6
- package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-multi/config.vue.d.ts +6 -6
- package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-multi.remote/config.d.vue.ts +22 -22
- package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-multi.remote/config.vue.d.ts +22 -22
- package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-single/config.d.vue.ts +6 -6
- package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-single/config.vue.d.ts +6 -6
- package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-single.remote/config.d.vue.ts +22 -22
- package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-single.remote/config.vue.d.ts +22 -22
- package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-multi/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-multi/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-single/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-single/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/config.d.vue.ts +8 -8
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/config.vue.d.ts +8 -8
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/config.d.vue.ts +8 -8
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/config.vue.d.ts +8 -8
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-multi/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-multi/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-single/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-single/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.combobox-multi/config.d.vue.ts +8 -8
- package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.combobox-multi/config.vue.d.ts +8 -8
- package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.combobox-single/config.d.vue.ts +8 -8
- package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.combobox-single/config.vue.d.ts +8 -8
- package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.tree-combobox-multi/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.tree-combobox-multi/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.tree-combobox-single/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.tree-combobox-single/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/schema.d.ts +3 -3
- package/dist/runtime/components/ui/date-picker/DatePickerInput.d.vue.ts +1 -1
- package/dist/runtime/components/ui/date-picker/DatePickerInput.vue.d.ts +1 -1
- package/dist/runtime/components/ui/date-picker/DatePickerTimeInput.d.vue.ts +1 -1
- package/dist/runtime/components/ui/date-picker/DatePickerTimeInput.vue.d.ts +1 -1
- package/dist/runtime/components/ui/date-range-picker/DateRangePickerInput.d.vue.ts +1 -1
- package/dist/runtime/components/ui/date-range-picker/DateRangePickerInput.vue.d.ts +1 -1
- package/dist/runtime/components/ui/date-range-picker/DateRangePickerTimeInput.d.vue.ts +2 -2
- package/dist/runtime/components/ui/date-range-picker/DateRangePickerTimeInput.vue.d.ts +2 -2
- package/dist/runtime/share/layout.js +2 -2
- package/dist/runtime/share/slot-renderer.vue +6 -1
- package/dist/runtime/share/viewport.d.ts +16 -0
- package/dist/runtime/share/viewport.js +11 -0
- package/dist/runtime/utils/cel.js +6 -1
- package/package.json +1 -1
package/dist/module.json
CHANGED
package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/config.d.vue.ts
CHANGED
|
@@ -19,6 +19,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
19
19
|
readonly displayName?: string | undefined;
|
|
20
20
|
readonly kind: "shwfed.component.form";
|
|
21
21
|
readonly fields: readonly any[];
|
|
22
|
+
readonly readonly?: string | undefined;
|
|
22
23
|
readonly layouts: readonly {
|
|
23
24
|
readonly name: string;
|
|
24
25
|
readonly layout: {
|
|
@@ -36,7 +37,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
36
37
|
};
|
|
37
38
|
readonly media?: string | undefined;
|
|
38
39
|
}[];
|
|
39
|
-
readonly readonly?: string | undefined;
|
|
40
40
|
};
|
|
41
41
|
readonly type: "com.shwfed.block.form";
|
|
42
42
|
readonly id: string;
|
|
@@ -54,6 +54,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
54
54
|
readonly displayName?: string | undefined;
|
|
55
55
|
readonly kind: "shwfed.component.form";
|
|
56
56
|
readonly fields: readonly any[];
|
|
57
|
+
readonly readonly?: string | undefined;
|
|
57
58
|
readonly layouts: readonly {
|
|
58
59
|
readonly name: string;
|
|
59
60
|
readonly layout: {
|
|
@@ -71,7 +72,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
71
72
|
};
|
|
72
73
|
readonly media?: string | undefined;
|
|
73
74
|
}[];
|
|
74
|
-
readonly readonly?: string | undefined;
|
|
75
75
|
};
|
|
76
76
|
readonly type: "com.shwfed.block.form";
|
|
77
77
|
readonly id: string;
|
package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/config.vue.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
19
19
|
readonly displayName?: string | undefined;
|
|
20
20
|
readonly kind: "shwfed.component.form";
|
|
21
21
|
readonly fields: readonly any[];
|
|
22
|
+
readonly readonly?: string | undefined;
|
|
22
23
|
readonly layouts: readonly {
|
|
23
24
|
readonly name: string;
|
|
24
25
|
readonly layout: {
|
|
@@ -36,7 +37,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
36
37
|
};
|
|
37
38
|
readonly media?: string | undefined;
|
|
38
39
|
}[];
|
|
39
|
-
readonly readonly?: string | undefined;
|
|
40
40
|
};
|
|
41
41
|
readonly type: "com.shwfed.block.form";
|
|
42
42
|
readonly id: string;
|
|
@@ -54,6 +54,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
54
54
|
readonly displayName?: string | undefined;
|
|
55
55
|
readonly kind: "shwfed.component.form";
|
|
56
56
|
readonly fields: readonly any[];
|
|
57
|
+
readonly readonly?: string | undefined;
|
|
57
58
|
readonly layouts: readonly {
|
|
58
59
|
readonly name: string;
|
|
59
60
|
readonly layout: {
|
|
@@ -71,7 +72,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
71
72
|
};
|
|
72
73
|
readonly media?: string | undefined;
|
|
73
74
|
}[];
|
|
74
|
-
readonly readonly?: string | undefined;
|
|
75
75
|
};
|
|
76
76
|
readonly type: "com.shwfed.block.form";
|
|
77
77
|
readonly id: string;
|
package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/runtime.d.vue.ts
CHANGED
|
@@ -10,6 +10,7 @@ type __VLS_ModelProps = {
|
|
|
10
10
|
};
|
|
11
11
|
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
12
12
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
13
|
+
"update:modelValue": (value: FormState) => any;
|
|
13
14
|
"update:block": (value: {
|
|
14
15
|
readonly form: {
|
|
15
16
|
readonly style?: string | undefined;
|
|
@@ -21,6 +22,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
21
22
|
readonly displayName?: string | undefined;
|
|
22
23
|
readonly kind: "shwfed.component.form";
|
|
23
24
|
readonly fields: readonly any[];
|
|
25
|
+
readonly readonly?: string | undefined;
|
|
24
26
|
readonly layouts: readonly {
|
|
25
27
|
readonly name: string;
|
|
26
28
|
readonly layout: {
|
|
@@ -38,14 +40,13 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
38
40
|
};
|
|
39
41
|
readonly media?: string | undefined;
|
|
40
42
|
}[];
|
|
41
|
-
readonly readonly?: string | undefined;
|
|
42
43
|
};
|
|
43
44
|
readonly type: "com.shwfed.block.form";
|
|
44
45
|
readonly id: string;
|
|
45
46
|
readonly compatibilityDate: "2026-05-06";
|
|
46
47
|
}) => any;
|
|
47
|
-
"update:modelValue": (value: FormState) => any;
|
|
48
48
|
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
49
|
+
"onUpdate:modelValue"?: ((value: FormState) => any) | undefined;
|
|
49
50
|
"onUpdate:block"?: ((value: {
|
|
50
51
|
readonly form: {
|
|
51
52
|
readonly style?: string | undefined;
|
|
@@ -57,6 +58,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
57
58
|
readonly displayName?: string | undefined;
|
|
58
59
|
readonly kind: "shwfed.component.form";
|
|
59
60
|
readonly fields: readonly any[];
|
|
61
|
+
readonly readonly?: string | undefined;
|
|
60
62
|
readonly layouts: readonly {
|
|
61
63
|
readonly name: string;
|
|
62
64
|
readonly layout: {
|
|
@@ -74,13 +76,11 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
74
76
|
};
|
|
75
77
|
readonly media?: string | undefined;
|
|
76
78
|
}[];
|
|
77
|
-
readonly readonly?: string | undefined;
|
|
78
79
|
};
|
|
79
80
|
readonly type: "com.shwfed.block.form";
|
|
80
81
|
readonly id: string;
|
|
81
82
|
readonly compatibilityDate: "2026-05-06";
|
|
82
83
|
}) => any) | undefined;
|
|
83
|
-
"onUpdate:modelValue"?: ((value: FormState) => any) | undefined;
|
|
84
84
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
85
85
|
declare const _default: typeof __VLS_export;
|
|
86
86
|
export default _default;
|
package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/runtime.vue.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ type __VLS_ModelProps = {
|
|
|
10
10
|
};
|
|
11
11
|
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
12
12
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
13
|
+
"update:modelValue": (value: FormState) => any;
|
|
13
14
|
"update:block": (value: {
|
|
14
15
|
readonly form: {
|
|
15
16
|
readonly style?: string | undefined;
|
|
@@ -21,6 +22,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
21
22
|
readonly displayName?: string | undefined;
|
|
22
23
|
readonly kind: "shwfed.component.form";
|
|
23
24
|
readonly fields: readonly any[];
|
|
25
|
+
readonly readonly?: string | undefined;
|
|
24
26
|
readonly layouts: readonly {
|
|
25
27
|
readonly name: string;
|
|
26
28
|
readonly layout: {
|
|
@@ -38,14 +40,13 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
38
40
|
};
|
|
39
41
|
readonly media?: string | undefined;
|
|
40
42
|
}[];
|
|
41
|
-
readonly readonly?: string | undefined;
|
|
42
43
|
};
|
|
43
44
|
readonly type: "com.shwfed.block.form";
|
|
44
45
|
readonly id: string;
|
|
45
46
|
readonly compatibilityDate: "2026-05-06";
|
|
46
47
|
}) => any;
|
|
47
|
-
"update:modelValue": (value: FormState) => any;
|
|
48
48
|
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
49
|
+
"onUpdate:modelValue"?: ((value: FormState) => any) | undefined;
|
|
49
50
|
"onUpdate:block"?: ((value: {
|
|
50
51
|
readonly form: {
|
|
51
52
|
readonly style?: string | undefined;
|
|
@@ -57,6 +58,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
57
58
|
readonly displayName?: string | undefined;
|
|
58
59
|
readonly kind: "shwfed.component.form";
|
|
59
60
|
readonly fields: readonly any[];
|
|
61
|
+
readonly readonly?: string | undefined;
|
|
60
62
|
readonly layouts: readonly {
|
|
61
63
|
readonly name: string;
|
|
62
64
|
readonly layout: {
|
|
@@ -74,13 +76,11 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
74
76
|
};
|
|
75
77
|
readonly media?: string | undefined;
|
|
76
78
|
}[];
|
|
77
|
-
readonly readonly?: string | undefined;
|
|
78
79
|
};
|
|
79
80
|
readonly type: "com.shwfed.block.form";
|
|
80
81
|
readonly id: string;
|
|
81
82
|
readonly compatibilityDate: "2026-05-06";
|
|
82
83
|
}) => any) | undefined;
|
|
83
|
-
"onUpdate:modelValue"?: ((value: FormState) => any) | undefined;
|
|
84
84
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
85
85
|
declare const _default: typeof __VLS_export;
|
|
86
86
|
export default _default;
|
|
@@ -31,6 +31,7 @@ export declare function schema(configure: (env: Environment) => void, _blockRef:
|
|
|
31
31
|
readonly displayName?: string | undefined;
|
|
32
32
|
readonly kind: "shwfed.component.form";
|
|
33
33
|
readonly fields: readonly any[];
|
|
34
|
+
readonly readonly?: string | undefined;
|
|
34
35
|
readonly layouts: readonly {
|
|
35
36
|
readonly name: string;
|
|
36
37
|
readonly layout: {
|
|
@@ -48,7 +49,6 @@ export declare function schema(configure: (env: Environment) => void, _blockRef:
|
|
|
48
49
|
};
|
|
49
50
|
readonly media?: string | undefined;
|
|
50
51
|
}[];
|
|
51
|
-
readonly readonly?: string | undefined;
|
|
52
52
|
}, Schema.Struct<{
|
|
53
53
|
fields: Schema.Array$<Schema.Schema<any, any, never>>;
|
|
54
54
|
layouts: Schema.refine<readonly {
|
package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/config.d.vue.ts
CHANGED
|
@@ -111,6 +111,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
111
111
|
readonly displayName?: string | undefined;
|
|
112
112
|
readonly kind: "shwfed.component.form";
|
|
113
113
|
readonly fields: readonly any[];
|
|
114
|
+
readonly readonly?: string | undefined;
|
|
114
115
|
readonly layouts: readonly {
|
|
115
116
|
readonly name: string;
|
|
116
117
|
readonly layout: {
|
|
@@ -128,7 +129,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
128
129
|
};
|
|
129
130
|
readonly media?: string | undefined;
|
|
130
131
|
}[];
|
|
131
|
-
readonly readonly?: string | undefined;
|
|
132
132
|
} | undefined;
|
|
133
133
|
readonly dataSource?: {
|
|
134
134
|
readonly data: string;
|
|
@@ -359,6 +359,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
359
359
|
readonly displayName?: string | undefined;
|
|
360
360
|
readonly kind: "shwfed.component.form";
|
|
361
361
|
readonly fields: readonly any[];
|
|
362
|
+
readonly readonly?: string | undefined;
|
|
362
363
|
readonly layouts: readonly {
|
|
363
364
|
readonly name: string;
|
|
364
365
|
readonly layout: {
|
|
@@ -376,7 +377,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
376
377
|
};
|
|
377
378
|
readonly media?: string | undefined;
|
|
378
379
|
}[];
|
|
379
|
-
readonly readonly?: string | undefined;
|
|
380
380
|
} | undefined;
|
|
381
381
|
readonly dataSource?: {
|
|
382
382
|
readonly data: string;
|
package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/config.vue.d.ts
CHANGED
|
@@ -111,6 +111,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
111
111
|
readonly displayName?: string | undefined;
|
|
112
112
|
readonly kind: "shwfed.component.form";
|
|
113
113
|
readonly fields: readonly any[];
|
|
114
|
+
readonly readonly?: string | undefined;
|
|
114
115
|
readonly layouts: readonly {
|
|
115
116
|
readonly name: string;
|
|
116
117
|
readonly layout: {
|
|
@@ -128,7 +129,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
128
129
|
};
|
|
129
130
|
readonly media?: string | undefined;
|
|
130
131
|
}[];
|
|
131
|
-
readonly readonly?: string | undefined;
|
|
132
132
|
} | undefined;
|
|
133
133
|
readonly dataSource?: {
|
|
134
134
|
readonly data: string;
|
|
@@ -359,6 +359,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
359
359
|
readonly displayName?: string | undefined;
|
|
360
360
|
readonly kind: "shwfed.component.form";
|
|
361
361
|
readonly fields: readonly any[];
|
|
362
|
+
readonly readonly?: string | undefined;
|
|
362
363
|
readonly layouts: readonly {
|
|
363
364
|
readonly name: string;
|
|
364
365
|
readonly layout: {
|
|
@@ -376,7 +377,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
376
377
|
};
|
|
377
378
|
readonly media?: string | undefined;
|
|
378
379
|
}[];
|
|
379
|
-
readonly readonly?: string | undefined;
|
|
380
380
|
} | undefined;
|
|
381
381
|
readonly dataSource?: {
|
|
382
382
|
readonly data: string;
|
package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/runtime.d.vue.ts
CHANGED
|
@@ -106,6 +106,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
106
106
|
readonly displayName?: string | undefined;
|
|
107
107
|
readonly kind: "shwfed.component.form";
|
|
108
108
|
readonly fields: readonly any[];
|
|
109
|
+
readonly readonly?: string | undefined;
|
|
109
110
|
readonly layouts: readonly {
|
|
110
111
|
readonly name: string;
|
|
111
112
|
readonly layout: {
|
|
@@ -123,7 +124,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
123
124
|
};
|
|
124
125
|
readonly media?: string | undefined;
|
|
125
126
|
}[];
|
|
126
|
-
readonly readonly?: string | undefined;
|
|
127
127
|
} | undefined;
|
|
128
128
|
readonly dataSource?: {
|
|
129
129
|
readonly data: string;
|
|
@@ -354,6 +354,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
354
354
|
readonly displayName?: string | undefined;
|
|
355
355
|
readonly kind: "shwfed.component.form";
|
|
356
356
|
readonly fields: readonly any[];
|
|
357
|
+
readonly readonly?: string | undefined;
|
|
357
358
|
readonly layouts: readonly {
|
|
358
359
|
readonly name: string;
|
|
359
360
|
readonly layout: {
|
|
@@ -371,7 +372,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
371
372
|
};
|
|
372
373
|
readonly media?: string | undefined;
|
|
373
374
|
}[];
|
|
374
|
-
readonly readonly?: string | undefined;
|
|
375
375
|
} | undefined;
|
|
376
376
|
readonly dataSource?: {
|
|
377
377
|
readonly data: string;
|
package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/runtime.vue.d.ts
CHANGED
|
@@ -106,6 +106,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
106
106
|
readonly displayName?: string | undefined;
|
|
107
107
|
readonly kind: "shwfed.component.form";
|
|
108
108
|
readonly fields: readonly any[];
|
|
109
|
+
readonly readonly?: string | undefined;
|
|
109
110
|
readonly layouts: readonly {
|
|
110
111
|
readonly name: string;
|
|
111
112
|
readonly layout: {
|
|
@@ -123,7 +124,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
123
124
|
};
|
|
124
125
|
readonly media?: string | undefined;
|
|
125
126
|
}[];
|
|
126
|
-
readonly readonly?: string | undefined;
|
|
127
127
|
} | undefined;
|
|
128
128
|
readonly dataSource?: {
|
|
129
129
|
readonly data: string;
|
|
@@ -354,6 +354,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
354
354
|
readonly displayName?: string | undefined;
|
|
355
355
|
readonly kind: "shwfed.component.form";
|
|
356
356
|
readonly fields: readonly any[];
|
|
357
|
+
readonly readonly?: string | undefined;
|
|
357
358
|
readonly layouts: readonly {
|
|
358
359
|
readonly name: string;
|
|
359
360
|
readonly layout: {
|
|
@@ -371,7 +372,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
371
372
|
};
|
|
372
373
|
readonly media?: string | undefined;
|
|
373
374
|
}[];
|
|
374
|
-
readonly readonly?: string | undefined;
|
|
375
375
|
} | undefined;
|
|
376
376
|
readonly dataSource?: {
|
|
377
377
|
readonly data: string;
|
|
@@ -124,6 +124,7 @@ export declare function schema(configure: (env: Environment) => void, _blockRef:
|
|
|
124
124
|
readonly displayName?: string | undefined;
|
|
125
125
|
readonly kind: "shwfed.component.form";
|
|
126
126
|
readonly fields: readonly any[];
|
|
127
|
+
readonly readonly?: string | undefined;
|
|
127
128
|
readonly layouts: readonly {
|
|
128
129
|
readonly name: string;
|
|
129
130
|
readonly layout: {
|
|
@@ -141,7 +142,6 @@ export declare function schema(configure: (env: Environment) => void, _blockRef:
|
|
|
141
142
|
};
|
|
142
143
|
readonly media?: string | undefined;
|
|
143
144
|
}[];
|
|
144
|
-
readonly readonly?: string | undefined;
|
|
145
145
|
} | undefined;
|
|
146
146
|
readonly dataSource?: {
|
|
147
147
|
readonly data: string;
|
|
@@ -572,6 +572,7 @@ export declare function schema(configure: (env: Environment) => void, _blockRef:
|
|
|
572
572
|
readonly displayName?: string | undefined;
|
|
573
573
|
readonly kind: "shwfed.component.form";
|
|
574
574
|
readonly fields: readonly any[];
|
|
575
|
+
readonly readonly?: string | undefined;
|
|
575
576
|
readonly layouts: readonly {
|
|
576
577
|
readonly name: string;
|
|
577
578
|
readonly layout: {
|
|
@@ -589,7 +590,6 @@ export declare function schema(configure: (env: Environment) => void, _blockRef:
|
|
|
589
590
|
};
|
|
590
591
|
readonly media?: string | undefined;
|
|
591
592
|
}[];
|
|
592
|
-
readonly readonly?: string | undefined;
|
|
593
593
|
}, Schema.Struct<{
|
|
594
594
|
fields: Schema.Array$<Schema.Schema<any, any, never>>;
|
|
595
595
|
layouts: Schema.refine<readonly {
|
|
@@ -11,7 +11,6 @@ type __VLS_ModelProps = {
|
|
|
11
11
|
};
|
|
12
12
|
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
13
13
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
14
|
-
"select-version": (version: string) => any;
|
|
15
14
|
"update:config": (value: Readonly<{
|
|
16
15
|
kind: "shwfed.component.page";
|
|
17
16
|
title?: import("../../share/locale.js").LocaleValue;
|
|
@@ -25,8 +24,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
25
24
|
}>[];
|
|
26
25
|
}>;
|
|
27
26
|
}> | null | undefined) => any;
|
|
27
|
+
"select-version": (version: string) => any;
|
|
28
28
|
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
29
|
-
"onSelect-version"?: ((version: string) => any) | undefined;
|
|
30
29
|
"onUpdate:config"?: ((value: Readonly<{
|
|
31
30
|
kind: "shwfed.component.page";
|
|
32
31
|
title?: import("../../share/locale.js").LocaleValue;
|
|
@@ -40,6 +39,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
40
39
|
}>[];
|
|
41
40
|
}>;
|
|
42
41
|
}> | null | undefined) => any) | undefined;
|
|
42
|
+
"onSelect-version"?: ((version: string) => any) | undefined;
|
|
43
43
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
44
44
|
declare const _default: typeof __VLS_export;
|
|
45
45
|
export default _default;
|
|
@@ -11,7 +11,6 @@ type __VLS_ModelProps = {
|
|
|
11
11
|
};
|
|
12
12
|
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
13
13
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
14
|
-
"select-version": (version: string) => any;
|
|
15
14
|
"update:config": (value: Readonly<{
|
|
16
15
|
kind: "shwfed.component.page";
|
|
17
16
|
title?: import("../../share/locale.js").LocaleValue;
|
|
@@ -25,8 +24,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
25
24
|
}>[];
|
|
26
25
|
}>;
|
|
27
26
|
}> | null | undefined) => any;
|
|
27
|
+
"select-version": (version: string) => any;
|
|
28
28
|
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
29
|
-
"onSelect-version"?: ((version: string) => any) | undefined;
|
|
30
29
|
"onUpdate:config"?: ((value: Readonly<{
|
|
31
30
|
kind: "shwfed.component.page";
|
|
32
31
|
title?: import("../../share/locale.js").LocaleValue;
|
|
@@ -40,6 +39,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
40
39
|
}>[];
|
|
41
40
|
}>;
|
|
42
41
|
}> | null | undefined) => any) | undefined;
|
|
42
|
+
"onSelect-version"?: ((version: string) => any) | undefined;
|
|
43
43
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
44
44
|
declare const _default: typeof __VLS_export;
|
|
45
45
|
export default _default;
|
|
@@ -6,6 +6,7 @@ import { readClip, reidFragment, writeClip } from "../../share/clipboard.js";
|
|
|
6
6
|
import { PageConfig } from "./schema.js";
|
|
7
7
|
import { BLOCKS, findBlock } from "./utils/resolve.js";
|
|
8
8
|
import { formatValidationError } from "./utils/validation-error.js";
|
|
9
|
+
import { findDanglingLinkages, formatDanglingLinkages } from "./utils/linkage.js";
|
|
9
10
|
import { createExpressionValidityRegistry, provideExpressionValidity } from "../ui/expression-editor/index.js";
|
|
10
11
|
function deepClone(value) {
|
|
11
12
|
return JSON.parse(JSON.stringify(value));
|
|
@@ -384,6 +385,14 @@ export function useConfigEditor(model, options = {}) {
|
|
|
384
385
|
validationError.value = "\u5B58\u5728\u65E0\u6548\u7684\u8DE8\u5C42\u4F5C\u7528\u57DF\u5F15\u7528\uFF0C\u8BF7\u4FEE\u6B63\u6807\u7EA2\u7684\u8868\u8FBE\u5F0F\u540E\u518D\u4FDD\u5B58";
|
|
385
386
|
return;
|
|
386
387
|
}
|
|
388
|
+
const dangling = findDanglingLinkages(decoded);
|
|
389
|
+
if (dangling.length > 0) {
|
|
390
|
+
validationError.value = formatDanglingLinkages(dangling, decoded, (i) => {
|
|
391
|
+
const b = topSlotEditor.blocks.value[i];
|
|
392
|
+
return b ? topSlotEditor.getBlockLabel(b) : void 0;
|
|
393
|
+
});
|
|
394
|
+
return;
|
|
395
|
+
}
|
|
387
396
|
validationError.value = null;
|
|
388
397
|
model.value = decoded;
|
|
389
398
|
baseline.value = deepClone(decoded);
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export type LinkageKind = 'operation' | 'step' | 'scope';
|
|
2
|
+
export type DanglingLinkage = Readonly<{
|
|
3
|
+
kind: LinkageKind;
|
|
4
|
+
/** The referenced uuid that is not defined anywhere in the tree. */
|
|
5
|
+
id: string;
|
|
6
|
+
/**
|
|
7
|
+
* Property path from the config root to the offending reference
|
|
8
|
+
* (`['slot','blocks',0,'actions','buttons',1,'params','rows',2,'value']`).
|
|
9
|
+
* Fed to `describePath` for the breadcrumb — the same one the schema decoder
|
|
10
|
+
* renders — so the message pins the exact field, not just the top block.
|
|
11
|
+
*/
|
|
12
|
+
path: ReadonlyArray<PropertyKey>;
|
|
13
|
+
}>;
|
|
14
|
+
/**
|
|
15
|
+
* Find every linkage in `config` whose target uuid is not defined anywhere in
|
|
16
|
+
* the tree. `PAGE_TARGET_ID` (the singleton page target sentinel) is always
|
|
17
|
+
* valid — it names the outermost page, which carries no stored id. Each result
|
|
18
|
+
* carries the property path from the config root to the offending reference, so
|
|
19
|
+
* the caller can render a field-level breadcrumb (see `describePath`).
|
|
20
|
+
*/
|
|
21
|
+
export declare function findDanglingLinkages(config: unknown): DanglingLinkage[];
|
|
22
|
+
/**
|
|
23
|
+
* One-line save-footer message for a non-empty dangling list. Renders the
|
|
24
|
+
* breadcrumb to the first offending reference (`「表单 › 确定 › value」`) via the
|
|
25
|
+
* shared `describePath`, tagged with its kind, with a trailing count when more
|
|
26
|
+
* remain. `rootData` is the decoded config the paths index into; `blockLabelAt`
|
|
27
|
+
* gives the nicest label for a top-level block (the host's `getBlockLabel`).
|
|
28
|
+
*/
|
|
29
|
+
export declare function formatDanglingLinkages(dangling: ReadonlyArray<DanglingLinkage>, rootData: unknown, blockLabelAt: (index: number) => string | undefined): string;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { PAGE_TARGET_ID } from "../../../share/page-target.js";
|
|
2
|
+
import { scanScopeRefs } from "../../ui/expression-editor/scope-refs.js";
|
|
3
|
+
import { scanStepRefs } from "../../ui/expression-editor/step-refs.js";
|
|
4
|
+
import { describePath } from "./validation-error.js";
|
|
5
|
+
const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
6
|
+
function isObject(v) {
|
|
7
|
+
return v !== null && typeof v === "object" && !Array.isArray(v);
|
|
8
|
+
}
|
|
9
|
+
function collectDefinedIds(node, into) {
|
|
10
|
+
if (Array.isArray(node)) {
|
|
11
|
+
for (const v of node) collectDefinedIds(v, into);
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
if (!isObject(node)) return;
|
|
15
|
+
for (const [k, v] of Object.entries(node)) {
|
|
16
|
+
if (k === "id" && typeof v === "string" && UUID_RE.test(v)) into.add(v);
|
|
17
|
+
collectDefinedIds(v, into);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function collectRefs(node, path, into) {
|
|
21
|
+
if (Array.isArray(node)) {
|
|
22
|
+
node.forEach((v, i) => collectRefs(v, [...path, i], into));
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
if (!isObject(node)) {
|
|
26
|
+
if (typeof node === "string") {
|
|
27
|
+
for (const r of scanStepRefs(node)) into.push({ kind: "step", id: r.id, path });
|
|
28
|
+
for (const r of scanScopeRefs(node)) into.push({ kind: "scope", id: r.id, path });
|
|
29
|
+
}
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
if (typeof node.target === "string" && typeof node.operation === "string" && UUID_RE.test(node.target)) {
|
|
33
|
+
into.push({ kind: "operation", id: node.target, path: [...path, "target"] });
|
|
34
|
+
}
|
|
35
|
+
for (const [k, v] of Object.entries(node)) collectRefs(v, [...path, k], into);
|
|
36
|
+
}
|
|
37
|
+
export function findDanglingLinkages(config) {
|
|
38
|
+
const defined = /* @__PURE__ */ new Set();
|
|
39
|
+
collectDefinedIds(config, defined);
|
|
40
|
+
const refs = [];
|
|
41
|
+
collectRefs(config, [], refs);
|
|
42
|
+
return refs.filter((r) => r.id !== PAGE_TARGET_ID && !defined.has(r.id));
|
|
43
|
+
}
|
|
44
|
+
const KIND_LABEL = {
|
|
45
|
+
operation: "\u89E6\u53D1\u64CD\u4F5C",
|
|
46
|
+
step: "\u6B65\u9AA4\u5F15\u7528",
|
|
47
|
+
scope: "\u8DE8\u5C42\u4F5C\u7528\u57DF\u5F15\u7528"
|
|
48
|
+
};
|
|
49
|
+
export function formatDanglingLinkages(dangling, rootData, blockLabelAt) {
|
|
50
|
+
const first = dangling[0];
|
|
51
|
+
if (!first) return "";
|
|
52
|
+
const kind = KIND_LABEL[first.kind];
|
|
53
|
+
const segs = describePath(first.path, rootData, blockLabelAt);
|
|
54
|
+
const where = segs.length > 0 ? `\u300C${segs.join(" \u203A ")}\u300D\u7684${kind}` : kind;
|
|
55
|
+
const suffix = dangling.length > 1 ? `\uFF08\u8FD8\u6709 ${dangling.length - 1} \u4E2A\uFF09` : "";
|
|
56
|
+
return `${where}\u5F15\u7528\u4E86\u5DF2\u5931\u6548\u7684\u8D44\u6E90\uFF08\u6765\u6E90\u4E0D\u5B58\u5728\u4E8E\u5F53\u524D\u914D\u7F6E\u4E2D\uFF09\uFF0C\u8BF7\u4FEE\u6B63\u540E\u518D\u4FDD\u5B58${suffix}`;
|
|
57
|
+
}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
export declare function describePath(path: ReadonlyArray<PropertyKey>, rootData: unknown, blockLabelAt: (index: number) => string | undefined): string[];
|
|
1
2
|
export declare function formatValidationError(err: unknown, blockLabelAt: (index: number) => string | undefined, rootData?: unknown): string;
|
|
@@ -19,7 +19,7 @@ function nodeLabel(node) {
|
|
|
19
19
|
if (!isObject(node)) return void 0;
|
|
20
20
|
return localeText(node.label) ?? localeText(node.title) ?? (typeof node.displayName === "string" && node.displayName.trim() ? node.displayName.trim() : void 0) ?? (typeof node.type === "string" ? node.type : void 0);
|
|
21
21
|
}
|
|
22
|
-
function describePath(path, rootData, blockLabelAt) {
|
|
22
|
+
export function describePath(path, rootData, blockLabelAt) {
|
|
23
23
|
const segs = [];
|
|
24
24
|
let node = rootData;
|
|
25
25
|
let labeledTopBlock = false;
|