@shwfed/config 2.12.17 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/module.json +1 -1
- package/dist/runtime/components/actions/buttons/2026-06-25/com.shwfed.actions.button.state.write/config.vue +17 -11
- 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 +68 -68
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/config.vue.d.ts +68 -68
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/runtime.d.vue.ts +68 -68
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/runtime.vue.d.ts +68 -68
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/schema.d.ts +35 -35
- package/dist/runtime/components/config/footer.vue +14 -8
- package/dist/runtime/components/config/index.d.vue.ts +3 -2
- package/dist/runtime/components/config/index.vue +30 -2
- package/dist/runtime/components/config/index.vue.d.ts +3 -2
- package/dist/runtime/components/config/use-editor.d.ts +12 -1
- package/dist/runtime/components/config/use-editor.js +47 -24
- package/dist/runtime/components/config/use-unsaved-guard.d.ts +1 -0
- package/dist/runtime/components/config/use-unsaved-guard.js +8 -0
- 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-23/com.shwfed.form.field.tree.multi/config.d.vue.ts +18 -18
- package/dist/runtime/components/form/fields/2026-05-23/com.shwfed.form.field.tree.multi/config.vue.d.ts +18 -18
- 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-26/com.shwfed.form.field.tree.combobox.multi/config.d.vue.ts +18 -18
- package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.multi/config.vue.d.ts +18 -18
- package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.single/config.d.vue.ts +18 -18
- package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.single/config.vue.d.ts +18 -18
- 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-05-28/com.shwfed.form.field.tree.combobox.multi/config.d.vue.ts +18 -18
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/config.vue.d.ts +18 -18
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/config.d.vue.ts +18 -18
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/config.vue.d.ts +18 -18
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/config.d.vue.ts +18 -18
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/config.vue.d.ts +18 -18
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/config.d.vue.ts +18 -18
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/config.vue.d.ts +18 -18
- 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/index.d.vue.ts +2 -0
- package/dist/runtime/components/form/index.vue +21 -13
- package/dist/runtime/components/form/index.vue.d.ts +2 -0
- package/dist/runtime/components/form/schema.d.ts +2 -2
- package/dist/runtime/components/modal.d.vue.ts +8 -8
- package/dist/runtime/components/modal.vue +9 -1
- package/dist/runtime/components/modal.vue.d.ts +8 -8
- package/dist/runtime/components/sidebar/footer.vue +13 -7
- package/dist/runtime/components/sidebar/index.d.vue.ts +1 -0
- package/dist/runtime/components/sidebar/index.vue +30 -2
- package/dist/runtime/components/sidebar/index.vue.d.ts +1 -0
- package/dist/runtime/components/sidebar/use-editor.d.ts +11 -1
- package/dist/runtime/components/sidebar/use-editor.js +38 -17
- 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 +4 -4
- package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-multi/config.vue.d.ts +4 -4
- package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-single/config.d.vue.ts +4 -4
- package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-single/config.vue.d.ts +4 -4
- 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 +4 -4
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-multi/config.vue.d.ts +4 -4
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-single/config.d.vue.ts +4 -4
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-single/config.vue.d.ts +4 -4
- 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 +4 -4
- package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.tree-combobox-multi/config.vue.d.ts +4 -4
- package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.tree-combobox-single/config.d.vue.ts +4 -4
- package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.tree-combobox-single/config.vue.d.ts +4 -4
- package/dist/runtime/components/table/index.vue +2 -14
- package/dist/runtime/components/table/schema.d.ts +69 -69
- 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/components/ui/expression-editor/ExpressionEditor.vue +4 -1
- package/package.json +1 -1
package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/runtime.d.vue.ts
CHANGED
|
@@ -29,6 +29,40 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
29
29
|
readonly message: string;
|
|
30
30
|
}[]] | undefined;
|
|
31
31
|
}[];
|
|
32
|
+
readonly query?: {
|
|
33
|
+
readonly style?: string | undefined;
|
|
34
|
+
readonly id?: string | undefined;
|
|
35
|
+
readonly initial?: {
|
|
36
|
+
readonly data: string;
|
|
37
|
+
readonly request?: string | undefined;
|
|
38
|
+
} | undefined;
|
|
39
|
+
readonly displayName?: string | undefined;
|
|
40
|
+
readonly kind: "shwfed.component.form";
|
|
41
|
+
readonly fields: readonly any[];
|
|
42
|
+
readonly layouts: readonly {
|
|
43
|
+
readonly name: string;
|
|
44
|
+
readonly layout: {
|
|
45
|
+
readonly style?: string | undefined;
|
|
46
|
+
readonly columns: number;
|
|
47
|
+
readonly gap?: number | undefined;
|
|
48
|
+
readonly rows?: number | undefined;
|
|
49
|
+
readonly placements: {
|
|
50
|
+
readonly [x: string]: {
|
|
51
|
+
readonly area: readonly [readonly [number, number], readonly [number, number]];
|
|
52
|
+
readonly v?: "stretch" | "center" | "end" | "start" | undefined;
|
|
53
|
+
readonly h?: "stretch" | "center" | "end" | "start" | undefined;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
readonly media?: string | undefined;
|
|
58
|
+
}[];
|
|
59
|
+
readonly readonly?: string | undefined;
|
|
60
|
+
} | undefined;
|
|
61
|
+
readonly dataSource?: {
|
|
62
|
+
readonly data: string;
|
|
63
|
+
readonly total?: string | undefined;
|
|
64
|
+
readonly request?: string | undefined;
|
|
65
|
+
} | undefined;
|
|
32
66
|
readonly actions?: {
|
|
33
67
|
readonly size: "default" | "sm" | "xs";
|
|
34
68
|
readonly style?: string | undefined;
|
|
@@ -96,40 +130,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
96
130
|
readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
|
|
97
131
|
}[];
|
|
98
132
|
} | undefined;
|
|
99
|
-
readonly query?: {
|
|
100
|
-
readonly style?: string | undefined;
|
|
101
|
-
readonly id?: string | undefined;
|
|
102
|
-
readonly initial?: {
|
|
103
|
-
readonly data: string;
|
|
104
|
-
readonly request?: string | undefined;
|
|
105
|
-
} | undefined;
|
|
106
|
-
readonly displayName?: string | undefined;
|
|
107
|
-
readonly kind: "shwfed.component.form";
|
|
108
|
-
readonly fields: readonly any[];
|
|
109
|
-
readonly readonly?: string | undefined;
|
|
110
|
-
readonly layouts: readonly {
|
|
111
|
-
readonly name: string;
|
|
112
|
-
readonly layout: {
|
|
113
|
-
readonly style?: string | undefined;
|
|
114
|
-
readonly columns: number;
|
|
115
|
-
readonly gap?: number | undefined;
|
|
116
|
-
readonly rows?: number | undefined;
|
|
117
|
-
readonly placements: {
|
|
118
|
-
readonly [x: string]: {
|
|
119
|
-
readonly area: readonly [readonly [number, number], readonly [number, number]];
|
|
120
|
-
readonly v?: "stretch" | "center" | "end" | "start" | undefined;
|
|
121
|
-
readonly h?: "stretch" | "center" | "end" | "start" | undefined;
|
|
122
|
-
};
|
|
123
|
-
};
|
|
124
|
-
};
|
|
125
|
-
readonly media?: string | undefined;
|
|
126
|
-
}[];
|
|
127
|
-
} | undefined;
|
|
128
|
-
readonly dataSource?: {
|
|
129
|
-
readonly data: string;
|
|
130
|
-
readonly total?: string | undefined;
|
|
131
|
-
readonly request?: string | undefined;
|
|
132
|
-
} | undefined;
|
|
133
133
|
readonly bottomActions?: {
|
|
134
134
|
readonly size: "default" | "sm" | "xs";
|
|
135
135
|
readonly style?: string | undefined;
|
|
@@ -277,6 +277,40 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
277
277
|
readonly message: string;
|
|
278
278
|
}[]] | undefined;
|
|
279
279
|
}[];
|
|
280
|
+
readonly query?: {
|
|
281
|
+
readonly style?: string | undefined;
|
|
282
|
+
readonly id?: string | undefined;
|
|
283
|
+
readonly initial?: {
|
|
284
|
+
readonly data: string;
|
|
285
|
+
readonly request?: string | undefined;
|
|
286
|
+
} | undefined;
|
|
287
|
+
readonly displayName?: string | undefined;
|
|
288
|
+
readonly kind: "shwfed.component.form";
|
|
289
|
+
readonly fields: readonly any[];
|
|
290
|
+
readonly layouts: readonly {
|
|
291
|
+
readonly name: string;
|
|
292
|
+
readonly layout: {
|
|
293
|
+
readonly style?: string | undefined;
|
|
294
|
+
readonly columns: number;
|
|
295
|
+
readonly gap?: number | undefined;
|
|
296
|
+
readonly rows?: number | undefined;
|
|
297
|
+
readonly placements: {
|
|
298
|
+
readonly [x: string]: {
|
|
299
|
+
readonly area: readonly [readonly [number, number], readonly [number, number]];
|
|
300
|
+
readonly v?: "stretch" | "center" | "end" | "start" | undefined;
|
|
301
|
+
readonly h?: "stretch" | "center" | "end" | "start" | undefined;
|
|
302
|
+
};
|
|
303
|
+
};
|
|
304
|
+
};
|
|
305
|
+
readonly media?: string | undefined;
|
|
306
|
+
}[];
|
|
307
|
+
readonly readonly?: string | undefined;
|
|
308
|
+
} | undefined;
|
|
309
|
+
readonly dataSource?: {
|
|
310
|
+
readonly data: string;
|
|
311
|
+
readonly total?: string | undefined;
|
|
312
|
+
readonly request?: string | undefined;
|
|
313
|
+
} | undefined;
|
|
280
314
|
readonly actions?: {
|
|
281
315
|
readonly size: "default" | "sm" | "xs";
|
|
282
316
|
readonly style?: string | undefined;
|
|
@@ -344,40 +378,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
344
378
|
readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
|
|
345
379
|
}[];
|
|
346
380
|
} | undefined;
|
|
347
|
-
readonly query?: {
|
|
348
|
-
readonly style?: string | undefined;
|
|
349
|
-
readonly id?: string | undefined;
|
|
350
|
-
readonly initial?: {
|
|
351
|
-
readonly data: string;
|
|
352
|
-
readonly request?: string | undefined;
|
|
353
|
-
} | undefined;
|
|
354
|
-
readonly displayName?: string | undefined;
|
|
355
|
-
readonly kind: "shwfed.component.form";
|
|
356
|
-
readonly fields: readonly any[];
|
|
357
|
-
readonly readonly?: string | undefined;
|
|
358
|
-
readonly layouts: readonly {
|
|
359
|
-
readonly name: string;
|
|
360
|
-
readonly layout: {
|
|
361
|
-
readonly style?: string | undefined;
|
|
362
|
-
readonly columns: number;
|
|
363
|
-
readonly gap?: number | undefined;
|
|
364
|
-
readonly rows?: number | undefined;
|
|
365
|
-
readonly placements: {
|
|
366
|
-
readonly [x: string]: {
|
|
367
|
-
readonly area: readonly [readonly [number, number], readonly [number, number]];
|
|
368
|
-
readonly v?: "stretch" | "center" | "end" | "start" | undefined;
|
|
369
|
-
readonly h?: "stretch" | "center" | "end" | "start" | undefined;
|
|
370
|
-
};
|
|
371
|
-
};
|
|
372
|
-
};
|
|
373
|
-
readonly media?: string | undefined;
|
|
374
|
-
}[];
|
|
375
|
-
} | undefined;
|
|
376
|
-
readonly dataSource?: {
|
|
377
|
-
readonly data: string;
|
|
378
|
-
readonly total?: string | undefined;
|
|
379
|
-
readonly request?: string | undefined;
|
|
380
|
-
} | undefined;
|
|
381
381
|
readonly bottomActions?: {
|
|
382
382
|
readonly size: "default" | "sm" | "xs";
|
|
383
383
|
readonly style?: string | undefined;
|
package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/runtime.vue.d.ts
CHANGED
|
@@ -29,6 +29,40 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
29
29
|
readonly message: string;
|
|
30
30
|
}[]] | undefined;
|
|
31
31
|
}[];
|
|
32
|
+
readonly query?: {
|
|
33
|
+
readonly style?: string | undefined;
|
|
34
|
+
readonly id?: string | undefined;
|
|
35
|
+
readonly initial?: {
|
|
36
|
+
readonly data: string;
|
|
37
|
+
readonly request?: string | undefined;
|
|
38
|
+
} | undefined;
|
|
39
|
+
readonly displayName?: string | undefined;
|
|
40
|
+
readonly kind: "shwfed.component.form";
|
|
41
|
+
readonly fields: readonly any[];
|
|
42
|
+
readonly layouts: readonly {
|
|
43
|
+
readonly name: string;
|
|
44
|
+
readonly layout: {
|
|
45
|
+
readonly style?: string | undefined;
|
|
46
|
+
readonly columns: number;
|
|
47
|
+
readonly gap?: number | undefined;
|
|
48
|
+
readonly rows?: number | undefined;
|
|
49
|
+
readonly placements: {
|
|
50
|
+
readonly [x: string]: {
|
|
51
|
+
readonly area: readonly [readonly [number, number], readonly [number, number]];
|
|
52
|
+
readonly v?: "stretch" | "center" | "end" | "start" | undefined;
|
|
53
|
+
readonly h?: "stretch" | "center" | "end" | "start" | undefined;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
readonly media?: string | undefined;
|
|
58
|
+
}[];
|
|
59
|
+
readonly readonly?: string | undefined;
|
|
60
|
+
} | undefined;
|
|
61
|
+
readonly dataSource?: {
|
|
62
|
+
readonly data: string;
|
|
63
|
+
readonly total?: string | undefined;
|
|
64
|
+
readonly request?: string | undefined;
|
|
65
|
+
} | undefined;
|
|
32
66
|
readonly actions?: {
|
|
33
67
|
readonly size: "default" | "sm" | "xs";
|
|
34
68
|
readonly style?: string | undefined;
|
|
@@ -96,40 +130,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
96
130
|
readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
|
|
97
131
|
}[];
|
|
98
132
|
} | undefined;
|
|
99
|
-
readonly query?: {
|
|
100
|
-
readonly style?: string | undefined;
|
|
101
|
-
readonly id?: string | undefined;
|
|
102
|
-
readonly initial?: {
|
|
103
|
-
readonly data: string;
|
|
104
|
-
readonly request?: string | undefined;
|
|
105
|
-
} | undefined;
|
|
106
|
-
readonly displayName?: string | undefined;
|
|
107
|
-
readonly kind: "shwfed.component.form";
|
|
108
|
-
readonly fields: readonly any[];
|
|
109
|
-
readonly readonly?: string | undefined;
|
|
110
|
-
readonly layouts: readonly {
|
|
111
|
-
readonly name: string;
|
|
112
|
-
readonly layout: {
|
|
113
|
-
readonly style?: string | undefined;
|
|
114
|
-
readonly columns: number;
|
|
115
|
-
readonly gap?: number | undefined;
|
|
116
|
-
readonly rows?: number | undefined;
|
|
117
|
-
readonly placements: {
|
|
118
|
-
readonly [x: string]: {
|
|
119
|
-
readonly area: readonly [readonly [number, number], readonly [number, number]];
|
|
120
|
-
readonly v?: "stretch" | "center" | "end" | "start" | undefined;
|
|
121
|
-
readonly h?: "stretch" | "center" | "end" | "start" | undefined;
|
|
122
|
-
};
|
|
123
|
-
};
|
|
124
|
-
};
|
|
125
|
-
readonly media?: string | undefined;
|
|
126
|
-
}[];
|
|
127
|
-
} | undefined;
|
|
128
|
-
readonly dataSource?: {
|
|
129
|
-
readonly data: string;
|
|
130
|
-
readonly total?: string | undefined;
|
|
131
|
-
readonly request?: string | undefined;
|
|
132
|
-
} | undefined;
|
|
133
133
|
readonly bottomActions?: {
|
|
134
134
|
readonly size: "default" | "sm" | "xs";
|
|
135
135
|
readonly style?: string | undefined;
|
|
@@ -277,6 +277,40 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
277
277
|
readonly message: string;
|
|
278
278
|
}[]] | undefined;
|
|
279
279
|
}[];
|
|
280
|
+
readonly query?: {
|
|
281
|
+
readonly style?: string | undefined;
|
|
282
|
+
readonly id?: string | undefined;
|
|
283
|
+
readonly initial?: {
|
|
284
|
+
readonly data: string;
|
|
285
|
+
readonly request?: string | undefined;
|
|
286
|
+
} | undefined;
|
|
287
|
+
readonly displayName?: string | undefined;
|
|
288
|
+
readonly kind: "shwfed.component.form";
|
|
289
|
+
readonly fields: readonly any[];
|
|
290
|
+
readonly layouts: readonly {
|
|
291
|
+
readonly name: string;
|
|
292
|
+
readonly layout: {
|
|
293
|
+
readonly style?: string | undefined;
|
|
294
|
+
readonly columns: number;
|
|
295
|
+
readonly gap?: number | undefined;
|
|
296
|
+
readonly rows?: number | undefined;
|
|
297
|
+
readonly placements: {
|
|
298
|
+
readonly [x: string]: {
|
|
299
|
+
readonly area: readonly [readonly [number, number], readonly [number, number]];
|
|
300
|
+
readonly v?: "stretch" | "center" | "end" | "start" | undefined;
|
|
301
|
+
readonly h?: "stretch" | "center" | "end" | "start" | undefined;
|
|
302
|
+
};
|
|
303
|
+
};
|
|
304
|
+
};
|
|
305
|
+
readonly media?: string | undefined;
|
|
306
|
+
}[];
|
|
307
|
+
readonly readonly?: string | undefined;
|
|
308
|
+
} | undefined;
|
|
309
|
+
readonly dataSource?: {
|
|
310
|
+
readonly data: string;
|
|
311
|
+
readonly total?: string | undefined;
|
|
312
|
+
readonly request?: string | undefined;
|
|
313
|
+
} | undefined;
|
|
280
314
|
readonly actions?: {
|
|
281
315
|
readonly size: "default" | "sm" | "xs";
|
|
282
316
|
readonly style?: string | undefined;
|
|
@@ -344,40 +378,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
344
378
|
readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
|
|
345
379
|
}[];
|
|
346
380
|
} | undefined;
|
|
347
|
-
readonly query?: {
|
|
348
|
-
readonly style?: string | undefined;
|
|
349
|
-
readonly id?: string | undefined;
|
|
350
|
-
readonly initial?: {
|
|
351
|
-
readonly data: string;
|
|
352
|
-
readonly request?: string | undefined;
|
|
353
|
-
} | undefined;
|
|
354
|
-
readonly displayName?: string | undefined;
|
|
355
|
-
readonly kind: "shwfed.component.form";
|
|
356
|
-
readonly fields: readonly any[];
|
|
357
|
-
readonly readonly?: string | undefined;
|
|
358
|
-
readonly layouts: readonly {
|
|
359
|
-
readonly name: string;
|
|
360
|
-
readonly layout: {
|
|
361
|
-
readonly style?: string | undefined;
|
|
362
|
-
readonly columns: number;
|
|
363
|
-
readonly gap?: number | undefined;
|
|
364
|
-
readonly rows?: number | undefined;
|
|
365
|
-
readonly placements: {
|
|
366
|
-
readonly [x: string]: {
|
|
367
|
-
readonly area: readonly [readonly [number, number], readonly [number, number]];
|
|
368
|
-
readonly v?: "stretch" | "center" | "end" | "start" | undefined;
|
|
369
|
-
readonly h?: "stretch" | "center" | "end" | "start" | undefined;
|
|
370
|
-
};
|
|
371
|
-
};
|
|
372
|
-
};
|
|
373
|
-
readonly media?: string | undefined;
|
|
374
|
-
}[];
|
|
375
|
-
} | undefined;
|
|
376
|
-
readonly dataSource?: {
|
|
377
|
-
readonly data: string;
|
|
378
|
-
readonly total?: string | undefined;
|
|
379
|
-
readonly request?: string | undefined;
|
|
380
|
-
} | undefined;
|
|
381
381
|
readonly bottomActions?: {
|
|
382
382
|
readonly size: "default" | "sm" | "xs";
|
|
383
383
|
readonly style?: string | undefined;
|
|
@@ -47,6 +47,40 @@ export declare function schema(configure: (env: Environment) => void, _blockRef:
|
|
|
47
47
|
readonly message: string;
|
|
48
48
|
}[]] | undefined;
|
|
49
49
|
}[];
|
|
50
|
+
readonly query?: {
|
|
51
|
+
readonly style?: string | undefined;
|
|
52
|
+
readonly id?: string | undefined;
|
|
53
|
+
readonly initial?: {
|
|
54
|
+
readonly data: string;
|
|
55
|
+
readonly request?: string | undefined;
|
|
56
|
+
} | undefined;
|
|
57
|
+
readonly displayName?: string | undefined;
|
|
58
|
+
readonly kind: "shwfed.component.form";
|
|
59
|
+
readonly fields: readonly any[];
|
|
60
|
+
readonly layouts: readonly {
|
|
61
|
+
readonly name: string;
|
|
62
|
+
readonly layout: {
|
|
63
|
+
readonly style?: string | undefined;
|
|
64
|
+
readonly columns: number;
|
|
65
|
+
readonly gap?: number | undefined;
|
|
66
|
+
readonly rows?: number | undefined;
|
|
67
|
+
readonly placements: {
|
|
68
|
+
readonly [x: string]: {
|
|
69
|
+
readonly area: readonly [readonly [number, number], readonly [number, number]];
|
|
70
|
+
readonly v?: "stretch" | "center" | "end" | "start" | undefined;
|
|
71
|
+
readonly h?: "stretch" | "center" | "end" | "start" | undefined;
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
readonly media?: string | undefined;
|
|
76
|
+
}[];
|
|
77
|
+
readonly readonly?: string | undefined;
|
|
78
|
+
} | undefined;
|
|
79
|
+
readonly dataSource?: {
|
|
80
|
+
readonly data: string;
|
|
81
|
+
readonly total?: string | undefined;
|
|
82
|
+
readonly request?: string | undefined;
|
|
83
|
+
} | undefined;
|
|
50
84
|
readonly actions?: {
|
|
51
85
|
readonly size: "default" | "sm" | "xs";
|
|
52
86
|
readonly style?: string | undefined;
|
|
@@ -114,40 +148,6 @@ export declare function schema(configure: (env: Environment) => void, _blockRef:
|
|
|
114
148
|
readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
|
|
115
149
|
}[];
|
|
116
150
|
} | undefined;
|
|
117
|
-
readonly query?: {
|
|
118
|
-
readonly style?: string | undefined;
|
|
119
|
-
readonly id?: string | undefined;
|
|
120
|
-
readonly initial?: {
|
|
121
|
-
readonly data: string;
|
|
122
|
-
readonly request?: string | undefined;
|
|
123
|
-
} | undefined;
|
|
124
|
-
readonly displayName?: string | undefined;
|
|
125
|
-
readonly kind: "shwfed.component.form";
|
|
126
|
-
readonly fields: readonly any[];
|
|
127
|
-
readonly readonly?: string | undefined;
|
|
128
|
-
readonly layouts: readonly {
|
|
129
|
-
readonly name: string;
|
|
130
|
-
readonly layout: {
|
|
131
|
-
readonly style?: string | undefined;
|
|
132
|
-
readonly columns: number;
|
|
133
|
-
readonly gap?: number | undefined;
|
|
134
|
-
readonly rows?: number | undefined;
|
|
135
|
-
readonly placements: {
|
|
136
|
-
readonly [x: string]: {
|
|
137
|
-
readonly area: readonly [readonly [number, number], readonly [number, number]];
|
|
138
|
-
readonly v?: "stretch" | "center" | "end" | "start" | undefined;
|
|
139
|
-
readonly h?: "stretch" | "center" | "end" | "start" | undefined;
|
|
140
|
-
};
|
|
141
|
-
};
|
|
142
|
-
};
|
|
143
|
-
readonly media?: string | undefined;
|
|
144
|
-
}[];
|
|
145
|
-
} | undefined;
|
|
146
|
-
readonly dataSource?: {
|
|
147
|
-
readonly data: string;
|
|
148
|
-
readonly total?: string | undefined;
|
|
149
|
-
readonly request?: string | undefined;
|
|
150
|
-
} | undefined;
|
|
151
151
|
readonly bottomActions?: {
|
|
152
152
|
readonly size: "default" | "sm" | "xs";
|
|
153
153
|
readonly style?: string | undefined;
|
|
@@ -572,7 +572,6 @@ 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;
|
|
576
575
|
readonly layouts: readonly {
|
|
577
576
|
readonly name: string;
|
|
578
577
|
readonly layout: {
|
|
@@ -590,6 +589,7 @@ export declare function schema(configure: (env: Environment) => void, _blockRef:
|
|
|
590
589
|
};
|
|
591
590
|
readonly media?: string | undefined;
|
|
592
591
|
}[];
|
|
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 {
|
|
@@ -10,16 +10,12 @@ const props = defineProps({
|
|
|
10
10
|
});
|
|
11
11
|
const emit = defineEmits(["close", "select-version"]);
|
|
12
12
|
function onDismiss() {
|
|
13
|
+
if (props.state.saving.value) return;
|
|
13
14
|
props.state.dismiss();
|
|
14
15
|
emit("close");
|
|
15
16
|
}
|
|
16
|
-
function onConfirm() {
|
|
17
|
-
|
|
18
|
-
const errorBefore = props.state.validationError.value;
|
|
19
|
-
props.state.confirm();
|
|
20
|
-
const errorAfter = props.state.validationError.value;
|
|
21
|
-
if (errorAfter && errorAfter !== errorBefore) return;
|
|
22
|
-
if (!dirtyBefore || !errorAfter) emit("close");
|
|
17
|
+
async function onConfirm() {
|
|
18
|
+
if (await props.state.confirm()) emit("close");
|
|
23
19
|
}
|
|
24
20
|
</script>
|
|
25
21
|
|
|
@@ -30,12 +26,17 @@ function onConfirm() {
|
|
|
30
26
|
v-if="props.state.validationError.value"
|
|
31
27
|
class="text-red-500 break-all"
|
|
32
28
|
>{{ props.state.validationError.value }}</span>
|
|
29
|
+
<span
|
|
30
|
+
v-if="props.state.saveError.value"
|
|
31
|
+
class="text-red-500 break-all"
|
|
32
|
+
>{{ props.state.saveError.value }}</span>
|
|
33
33
|
</div>
|
|
34
34
|
<Button
|
|
35
35
|
v-if="props.state.stack.value.length > 1"
|
|
36
36
|
type="button"
|
|
37
37
|
variant="default"
|
|
38
38
|
size="sm"
|
|
39
|
+
:disabled="props.state.saving.value"
|
|
39
40
|
@click="props.state.popOne()"
|
|
40
41
|
>
|
|
41
42
|
<Icon icon="fluent:arrow-left-20-regular" />
|
|
@@ -46,6 +47,7 @@ function onConfirm() {
|
|
|
46
47
|
type="button"
|
|
47
48
|
variant="default"
|
|
48
49
|
size="sm"
|
|
50
|
+
:disabled="props.state.saving.value"
|
|
49
51
|
@click="onDismiss"
|
|
50
52
|
>
|
|
51
53
|
<Icon icon="fluent:dismiss-20-regular" />
|
|
@@ -61,9 +63,13 @@ function onConfirm() {
|
|
|
61
63
|
type="button"
|
|
62
64
|
variant="primary"
|
|
63
65
|
size="sm"
|
|
66
|
+
:disabled="props.state.saving.value"
|
|
64
67
|
@click="onConfirm"
|
|
65
68
|
>
|
|
66
|
-
<Icon
|
|
69
|
+
<Icon
|
|
70
|
+
:icon="props.state.saving.value ? 'fluent:arrow-sync-20-regular' : 'fluent:checkmark-20-regular'"
|
|
71
|
+
:class="props.state.saving.value ? 'animate-spin' : ''"
|
|
72
|
+
/>
|
|
67
73
|
确认
|
|
68
74
|
</Button>
|
|
69
75
|
<HistoryPicker
|
|
@@ -4,6 +4,7 @@ import { type PageConfigValue } from './schema.js';
|
|
|
4
4
|
type __VLS_Props = {
|
|
5
5
|
configure?: (env: Environment) => void;
|
|
6
6
|
editable?: boolean;
|
|
7
|
+
save?: (config: PageConfigValue) => void | Promise<void>;
|
|
7
8
|
versions?: HistoryVersion[];
|
|
8
9
|
};
|
|
9
10
|
type __VLS_ModelProps = {
|
|
@@ -11,6 +12,7 @@ type __VLS_ModelProps = {
|
|
|
11
12
|
};
|
|
12
13
|
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
13
14
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
15
|
+
"select-version": (version: string) => any;
|
|
14
16
|
"update:config": (value: Readonly<{
|
|
15
17
|
kind: "shwfed.component.page";
|
|
16
18
|
title?: import("../../share/locale.js").LocaleValue;
|
|
@@ -24,8 +26,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
24
26
|
}>[];
|
|
25
27
|
}>;
|
|
26
28
|
}> | null | undefined) => any;
|
|
27
|
-
"select-version": (version: string) => any;
|
|
28
29
|
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
30
|
+
"onSelect-version"?: ((version: string) => any) | undefined;
|
|
29
31
|
"onUpdate:config"?: ((value: Readonly<{
|
|
30
32
|
kind: "shwfed.component.page";
|
|
31
33
|
title?: import("../../share/locale.js").LocaleValue;
|
|
@@ -39,7 +41,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
39
41
|
}>[];
|
|
40
42
|
}>;
|
|
41
43
|
}> | null | undefined) => any) | undefined;
|
|
42
|
-
"onSelect-version"?: ((version: string) => any) | undefined;
|
|
43
44
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
44
45
|
declare const _default: typeof __VLS_export;
|
|
45
46
|
export default _default;
|
|
@@ -21,6 +21,7 @@ import * as httpRequestOperation from "../operations/2026-06-11/com.shwfed.opera
|
|
|
21
21
|
import * as navigationOperation from "../operations/2026-06-15/com.shwfed.operation.navigation/schema";
|
|
22
22
|
import { PAGE_TARGET_ID, createPageConfig } from "./schema";
|
|
23
23
|
import { useConfigEditor } from "./use-editor";
|
|
24
|
+
import { useUnsavedChangesGuard } from "./use-unsaved-guard";
|
|
24
25
|
import { findBlock } from "./utils/resolve";
|
|
25
26
|
import { useTabStore } from "../tabs/use-tabs";
|
|
26
27
|
import { publishPageTitle } from "../../utils/page-title-registry";
|
|
@@ -35,6 +36,7 @@ const config = computed({
|
|
|
35
36
|
const props = defineProps({
|
|
36
37
|
configure: { type: Function, required: false },
|
|
37
38
|
editable: { type: Boolean, required: false },
|
|
39
|
+
save: { type: Function, required: false },
|
|
38
40
|
versions: { type: Array, required: false }
|
|
39
41
|
});
|
|
40
42
|
const emit = defineEmits(["select-version"]);
|
|
@@ -95,10 +97,17 @@ provideEventTarget(PAGE_TARGET_ID, {
|
|
|
95
97
|
const editorOpen = ref(false);
|
|
96
98
|
const editorState = useConfigEditor(config, {
|
|
97
99
|
configure: mergedConfigure,
|
|
100
|
+
// Presence is decided once at setup (a host toggling the prop's existence
|
|
101
|
+
// at runtime is not supported); the wrapper reads the current prop per
|
|
102
|
+
// call so a rebound handler identity stays honored.
|
|
103
|
+
save: props.save ? (cfg) => props.save(cfg) : void 0,
|
|
98
104
|
onClose: () => {
|
|
99
105
|
editorOpen.value = false;
|
|
100
106
|
}
|
|
101
107
|
});
|
|
108
|
+
useUnsavedChangesGuard(
|
|
109
|
+
() => props.editable === true && (editorState.isDirty.value || editorState.saving.value)
|
|
110
|
+
);
|
|
102
111
|
watch(editorOpen, (open, prev) => {
|
|
103
112
|
if (open && !prev) editorState.reset();
|
|
104
113
|
});
|
|
@@ -202,11 +211,16 @@ const isMac = computed(
|
|
|
202
211
|
</template>
|
|
203
212
|
</SlotRenderer>
|
|
204
213
|
</div>
|
|
214
|
+
<!-- While the draft is dirty (or a save is in flight) the modal refuses
|
|
215
|
+
casual dismissal — Esc, outside-click, and the × button all drop the
|
|
216
|
+
session on the reopen re-anchor above, which was a top edit-loss
|
|
217
|
+
complaint. The explicit footer exits (取消 discards, 确认 saves)
|
|
218
|
+
remain the only ways out of a dirty session. -->
|
|
205
219
|
<ShwfedModal
|
|
206
220
|
v-if="editable"
|
|
207
221
|
v-model:open="editorOpen"
|
|
208
222
|
content-width="90vw"
|
|
209
|
-
:dismissible="
|
|
223
|
+
:dismissible="!editorState.isDirty.value && !editorState.saving.value"
|
|
210
224
|
>
|
|
211
225
|
<template #title>
|
|
212
226
|
<EditorBreadcrumb :state="editorState" />
|
|
@@ -214,7 +228,21 @@ const isMac = computed(
|
|
|
214
228
|
<template #description>
|
|
215
229
|
<span class="sr-only">编辑页面布局与块配置</span>
|
|
216
230
|
</template>
|
|
217
|
-
|
|
231
|
+
<!-- The overlay freezes the canvas while the host save runs: an edit
|
|
232
|
+
landing mid-save would be silently clobbered by the post-commit
|
|
233
|
+
draft re-anchor. -->
|
|
234
|
+
<div class="relative">
|
|
235
|
+
<EditorBody :state="editorState" />
|
|
236
|
+
<div
|
|
237
|
+
v-if="editorState.saving.value"
|
|
238
|
+
class="absolute inset-0 z-20 flex items-center justify-center bg-white/60"
|
|
239
|
+
>
|
|
240
|
+
<Icon
|
|
241
|
+
icon="fluent:arrow-sync-20-regular"
|
|
242
|
+
class="animate-spin text-2xl text-zinc-500"
|
|
243
|
+
/>
|
|
244
|
+
</div>
|
|
245
|
+
</div>
|
|
218
246
|
<template #footer>
|
|
219
247
|
<EditorFooter
|
|
220
248
|
:state="editorState"
|
|
@@ -4,6 +4,7 @@ import { type PageConfigValue } from './schema.js';
|
|
|
4
4
|
type __VLS_Props = {
|
|
5
5
|
configure?: (env: Environment) => void;
|
|
6
6
|
editable?: boolean;
|
|
7
|
+
save?: (config: PageConfigValue) => void | Promise<void>;
|
|
7
8
|
versions?: HistoryVersion[];
|
|
8
9
|
};
|
|
9
10
|
type __VLS_ModelProps = {
|
|
@@ -11,6 +12,7 @@ type __VLS_ModelProps = {
|
|
|
11
12
|
};
|
|
12
13
|
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
13
14
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
15
|
+
"select-version": (version: string) => any;
|
|
14
16
|
"update:config": (value: Readonly<{
|
|
15
17
|
kind: "shwfed.component.page";
|
|
16
18
|
title?: import("../../share/locale.js").LocaleValue;
|
|
@@ -24,8 +26,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
24
26
|
}>[];
|
|
25
27
|
}>;
|
|
26
28
|
}> | null | undefined) => any;
|
|
27
|
-
"select-version": (version: string) => any;
|
|
28
29
|
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
30
|
+
"onSelect-version"?: ((version: string) => any) | undefined;
|
|
29
31
|
"onUpdate:config"?: ((value: Readonly<{
|
|
30
32
|
kind: "shwfed.component.page";
|
|
31
33
|
title?: import("../../share/locale.js").LocaleValue;
|
|
@@ -39,7 +41,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
39
41
|
}>[];
|
|
40
42
|
}>;
|
|
41
43
|
}> | null | undefined) => any) | undefined;
|
|
42
|
-
"onSelect-version"?: ((version: string) => any) | undefined;
|
|
43
44
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
44
45
|
declare const _default: typeof __VLS_export;
|
|
45
46
|
export default _default;
|
|
@@ -84,6 +84,8 @@ export interface ConfigEditorState {
|
|
|
84
84
|
selectedBlockIds: Ref<string[]>;
|
|
85
85
|
activeLayoutIndex: Ref<number>;
|
|
86
86
|
validationError: Ref<string | null>;
|
|
87
|
+
saveError: Ref<string | null>;
|
|
88
|
+
saving: Ref<boolean>;
|
|
87
89
|
addCrumb: () => BreadcrumbCrumb;
|
|
88
90
|
addParentSuffix: () => BreadcrumbParentSuffix;
|
|
89
91
|
isDirty: ComputedRef<boolean>;
|
|
@@ -116,12 +118,21 @@ export interface ConfigEditorState {
|
|
|
116
118
|
getBlockLabel: (b: BlockValue) => string;
|
|
117
119
|
findBlockMeta: (type: string, compatibilityDate: string) => BlockEntry | undefined;
|
|
118
120
|
onDrillDown: (blockId: string) => void;
|
|
119
|
-
confirm: () =>
|
|
121
|
+
confirm: () => Promise<boolean>;
|
|
120
122
|
dismiss: () => void;
|
|
121
123
|
reset: () => void;
|
|
122
124
|
}
|
|
123
125
|
export interface UseConfigEditorOptions {
|
|
124
126
|
configure?: (env: Environment) => void;
|
|
127
|
+
/**
|
|
128
|
+
* Delegated persistence. When provided, a successful 确认 first awaits this
|
|
129
|
+
* with the validated config; only after it resolves does the draft commit
|
|
130
|
+
* to the outer model and the editor close. A rejection keeps the editor
|
|
131
|
+
* open with the draft intact and surfaces the failure via `saveError` — the
|
|
132
|
+
* host owns transport and recovery (retry, re-auth, offline fallback, …),
|
|
133
|
+
* the editor guarantees the session is never lost to a failed save.
|
|
134
|
+
*/
|
|
135
|
+
save?: (config: PageConfigValue) => void | Promise<void>;
|
|
125
136
|
/**
|
|
126
137
|
* Called after a successful 确认 commits the draft to the outer model.
|
|
127
138
|
* Hosts wire this to close the modal; legacy mode emits `close`.
|