@shwfed/nuxt 0.11.37 → 0.11.38
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/fields.d.vue.ts +396 -350
- package/dist/runtime/components/fields.vue +2 -1
- package/dist/runtime/components/fields.vue.d.ts +396 -350
- package/dist/runtime/components/ui/fields/Fields.d.vue.ts +838 -358
- package/dist/runtime/components/ui/fields/Fields.vue +520 -435
- package/dist/runtime/components/ui/fields/Fields.vue.d.ts +838 -358
- package/dist/runtime/components/ui/fields/schema.d.ts +3283 -30
- package/dist/runtime/components/ui/fields/schema.js +85 -9
- package/dist/runtime/components/ui/fields-configurator/FieldsConfiguratorDialog.d.vue.ts +394 -348
- package/dist/runtime/components/ui/fields-configurator/FieldsConfiguratorDialog.vue +734 -172
- package/dist/runtime/components/ui/fields-configurator/FieldsConfiguratorDialog.vue.d.ts +394 -348
- package/dist/runtime/components/ui/table/Table.vue +1 -0
- package/package.json +1 -1
|
@@ -2,6 +2,7 @@ import z from "zod";
|
|
|
2
2
|
import { createComponentConfig, createComponentConfigMetadataShape } from "../../component-config.js";
|
|
3
3
|
import { dotPropC, expressionC, localeC } from "../../../utils/coders.js";
|
|
4
4
|
const fieldIdC = z.uuid().describe("\u5B57\u6BB5\u552F\u4E00\u6807\u8BC6\uFF0C\u5FC5\u987B\u662F UUID");
|
|
5
|
+
const fieldGroupIdC = z.uuid().describe("\u5B57\u6BB5\u7EC4\u552F\u4E00\u6807\u8BC6\uFF0C\u5FC5\u987B\u662F UUID");
|
|
5
6
|
const inheritedFieldContext = {
|
|
6
7
|
form: "map<string, dyn>",
|
|
7
8
|
row: "map<string, dyn>",
|
|
@@ -15,6 +16,7 @@ const fieldCellStyleShape = {
|
|
|
15
16
|
export const KIND = "shwfed.component.fields";
|
|
16
17
|
export const CURRENT_COMPATIBILITY_DATE = "2026-03-20";
|
|
17
18
|
export const SUPPORTED_COMPATIBILITY_DATES = [CURRENT_COMPATIBILITY_DATE];
|
|
19
|
+
export const LEGACY_DEFAULT_GROUP_ID = "00000000-0000-4000-8000-000000000000";
|
|
18
20
|
export const ValidationRuleC = z.object({
|
|
19
21
|
expression: expressionC(["bool", "dyn"], { value: "dyn", ...inheritedFieldContext }).describe("\u8FD4\u56DE\u5E03\u5C14\u503C\u7684 CEL \u8868\u8FBE\u5F0F\uFF0C\u53EF\u4F7F\u7528 value\u3001form\u3001row\u3001index \u548C id \u53D8\u91CF"),
|
|
20
22
|
message: z.string().describe("\u6821\u9A8C\u5931\u8D25\u65F6\u5C55\u793A\u7684 Markdown \u6D88\u606F\uFF0C\u53EF\u5728 {{ expression }} \u4E2D\u4F7F\u7528 value\u3001form\u3001row\u3001index \u548C id \u53D8\u91CF")
|
|
@@ -69,6 +71,15 @@ export const NumberFieldC = z.object({
|
|
|
69
71
|
validation: validationC,
|
|
70
72
|
...fieldCellStyleShape
|
|
71
73
|
});
|
|
74
|
+
export const MarkdownFieldC = z.object({
|
|
75
|
+
id: fieldIdC,
|
|
76
|
+
type: z.literal("markdown").describe("\u5C55\u793A\u578B Markdown \u5B57\u6BB5\uFF0C\u663E\u793A\u5E26\u6807\u7B7E\u7684\u672C\u5730\u5316 Markdown \u5185\u5BB9"),
|
|
77
|
+
title: localeC.describe("\u5B57\u6BB5\u6807\u7B7E\u7684\u672C\u5730\u5316\u663E\u793A\u6587\u672C"),
|
|
78
|
+
locale: localeC.describe("\u5B57\u6BB5\u5185\u5BB9\u7684\u672C\u5730\u5316 Markdown \u6587\u672C\uFF0C\u652F\u6301 {{ expression }} \u8BED\u6CD5"),
|
|
79
|
+
style: z.string().optional().describe("CSS \u6837\u5F0F\u5BF9\u8C61\u8868\u8FBE\u5F0F\uFF0C\u63A7\u5236\u5B57\u6BB5\u7684\u5E03\u5C40\u4E0E\u5916\u89C2"),
|
|
80
|
+
hidden: expressionC(["bool", "dyn"], inheritedFieldContext).optional().describe("\u4E3A true \u65F6\uFF0C\u9690\u85CF\u8FD9\u4E2A\u5B57\u6BB5\uFF0C\u53EF\u4F7F\u7528 form\u3001row\u3001index \u548C id \u53D8\u91CF"),
|
|
81
|
+
...fieldCellStyleShape
|
|
82
|
+
}).strict();
|
|
72
83
|
export const SelectFieldC = z.object({
|
|
73
84
|
id: fieldIdC,
|
|
74
85
|
type: z.literal("select").describe("\u4E0B\u62C9\u9009\u62E9\u5B57\u6BB5\uFF0C\u4ECE\u9884\u5B9A\u4E49\u9009\u9879\u4E2D\u9009\u53D6\u4E00\u4E2A\u503C"),
|
|
@@ -156,6 +167,7 @@ export const FieldC = z.discriminatedUnion("type", [
|
|
|
156
167
|
StringFieldC,
|
|
157
168
|
TextareaFieldC,
|
|
158
169
|
NumberFieldC,
|
|
170
|
+
MarkdownFieldC,
|
|
159
171
|
SelectFieldC,
|
|
160
172
|
RadioGroupFieldC,
|
|
161
173
|
CalendarFieldC,
|
|
@@ -167,18 +179,82 @@ export const FieldsOrientationC = z.enum(["horizontal", "vertical", "floating",
|
|
|
167
179
|
export const FieldsStyleC = expressionC([/^map/, "dyn"], {
|
|
168
180
|
...inheritedFieldContext
|
|
169
181
|
}).optional().describe("\u8FD4\u56DE\u5B57\u6BB5\u96C6\u5408\u5BB9\u5668\u6837\u5F0F\u5BF9\u8C61\u7684 CEL \u8868\u8FBE\u5F0F\uFF0C\u53EF\u4F7F\u7528 form\u3001row\u3001index \u548C id \u53D8\u91CF\u3002");
|
|
170
|
-
const
|
|
182
|
+
export const FieldGroupStyleC = expressionC([/^map/, "dyn"], {
|
|
183
|
+
...inheritedFieldContext
|
|
184
|
+
}).optional().describe("\u8FD4\u56DE\u5B57\u6BB5\u7EC4\u5BB9\u5668\u6837\u5F0F\u5BF9\u8C61\u7684 CEL \u8868\u8FBE\u5F0F\uFF0C\u53EF\u4F7F\u7528 form\u3001row\u3001index \u548C id \u53D8\u91CF\u3002");
|
|
185
|
+
export const FieldGroupC = z.strictObject({
|
|
186
|
+
id: fieldGroupIdC,
|
|
187
|
+
title: localeC.optional().describe("\u5B57\u6BB5\u7EC4\u6807\u9898\u7684\u672C\u5730\u5316\u663E\u793A\u6587\u672C\uFF0C\u7559\u7A7A\u65F6\u4E0D\u6E32\u67D3\u6807\u9898"),
|
|
188
|
+
style: FieldGroupStyleC,
|
|
189
|
+
fields: z.array(FieldC).readonly().describe("\u5B57\u6BB5\u7EC4\u5185\u5B57\u6BB5\u5217\u8868")
|
|
190
|
+
}).readonly();
|
|
191
|
+
const fieldsSharedShape = {
|
|
171
192
|
orientation: FieldsOrientationC.optional().describe("\u5B57\u6BB5\u5E03\u5C40\u65B9\u5411\uFF0C\u53EF\u9009 horizontal\u3001vertical\u3001floating \u6216 contents\uFF1B\u7559\u7A7A\u65F6\u9ED8\u8BA4 horizontal"),
|
|
172
193
|
bordered: z.boolean().optional().describe("\u4E3A true \u65F6\uFF0C\u5728 contents \u5E03\u5C40\u6A21\u5F0F\u4E0B\u4E3A\u5BB9\u5668\u548C\u6BCF\u4E2A\u5355\u5143\u683C\u6DFB\u52A0\u8868\u683C\u5F0F\u8FB9\u6846"),
|
|
173
|
-
style: FieldsStyleC
|
|
174
|
-
|
|
194
|
+
style: FieldsStyleC
|
|
195
|
+
};
|
|
196
|
+
const FieldsBodyNormalizedObjectC = z.object({
|
|
197
|
+
...fieldsSharedShape,
|
|
198
|
+
groups: z.array(FieldGroupC).readonly().describe("\u6839\u7EA7\u5B57\u6BB5\u7EC4\u5217\u8868")
|
|
199
|
+
});
|
|
200
|
+
const FieldsBodyInputObjectC = z.object({
|
|
201
|
+
...fieldsSharedShape,
|
|
202
|
+
fields: z.array(FieldC).readonly().optional().describe("\u65E7\u7248\u6839\u7EA7\u5B57\u6BB5\u5217\u8868\uFF0C\u4EC5\u7528\u4E8E\u517C\u5BB9\u8F93\u5165"),
|
|
203
|
+
groups: z.array(FieldGroupC).readonly().optional().describe("\u6839\u7EA7\u5B57\u6BB5\u7EC4\u5217\u8868")
|
|
204
|
+
}).superRefine((value, ctx) => {
|
|
205
|
+
if (value.fields && value.groups) {
|
|
206
|
+
ctx.addIssue({
|
|
207
|
+
code: "custom",
|
|
208
|
+
message: "fields and groups cannot be provided together",
|
|
209
|
+
path: ["groups"]
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
if (!value.fields && !value.groups) {
|
|
213
|
+
ctx.addIssue({
|
|
214
|
+
code: "custom",
|
|
215
|
+
message: "groups is required",
|
|
216
|
+
path: ["groups"]
|
|
217
|
+
});
|
|
218
|
+
}
|
|
175
219
|
});
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
220
|
+
function normalizeFieldsBody(input) {
|
|
221
|
+
const nextBody = {
|
|
222
|
+
groups: input.groups ?? [
|
|
223
|
+
{
|
|
224
|
+
id: LEGACY_DEFAULT_GROUP_ID,
|
|
225
|
+
fields: input.fields ?? []
|
|
226
|
+
}
|
|
227
|
+
]
|
|
228
|
+
};
|
|
229
|
+
if (input.orientation) {
|
|
230
|
+
nextBody.orientation = input.orientation;
|
|
231
|
+
}
|
|
232
|
+
if (input.bordered) {
|
|
233
|
+
nextBody.bordered = input.bordered;
|
|
234
|
+
}
|
|
235
|
+
if (input.style) {
|
|
236
|
+
nextBody.style = input.style;
|
|
237
|
+
}
|
|
238
|
+
return nextBody;
|
|
239
|
+
}
|
|
240
|
+
export const FieldsBodyInputC = FieldsBodyInputObjectC.readonly();
|
|
241
|
+
export const FieldsBodyC = FieldsBodyInputObjectC.transform(normalizeFieldsBody).pipe(FieldsBodyNormalizedObjectC).readonly();
|
|
242
|
+
const FieldsConfigInputObjectC = FieldsBodyInputObjectC.extend(
|
|
243
|
+
createComponentConfigMetadataShape(KIND, SUPPORTED_COMPATIBILITY_DATES)
|
|
244
|
+
);
|
|
245
|
+
const FieldsConfigNormalizedObjectC = FieldsBodyNormalizedObjectC.extend(
|
|
179
246
|
createComponentConfigMetadataShape(KIND, SUPPORTED_COMPATIBILITY_DATES)
|
|
180
|
-
)
|
|
181
|
-
|
|
247
|
+
);
|
|
248
|
+
function normalizeFieldsConfig(input) {
|
|
249
|
+
const body = normalizeFieldsBody(input);
|
|
250
|
+
return {
|
|
251
|
+
...body,
|
|
252
|
+
kind: input.kind,
|
|
253
|
+
compatibilityDate: input.compatibilityDate
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
export const FieldsConfigInputC = FieldsConfigInputObjectC.readonly();
|
|
257
|
+
export const FieldsConfigC = FieldsConfigInputObjectC.transform(normalizeFieldsConfig).pipe(FieldsConfigNormalizedObjectC).readonly();
|
|
182
258
|
export function createFieldsConfig(body) {
|
|
183
|
-
return createComponentConfig(KIND, CURRENT_COMPATIBILITY_DATE, body);
|
|
259
|
+
return FieldsConfigC.parse(createComponentConfig(KIND, CURRENT_COMPATIBILITY_DATE, body));
|
|
184
260
|
}
|