@shwfed/config 2.3.11 → 2.3.13
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/mcp.mjs +1157 -733
- package/dist/module.json +1 -1
- package/dist/preview/assets/{config-BZahzuEc.js → config-0UIjgMSM.js} +1 -1
- package/dist/preview/assets/{config-57-v4VXo.js → config-9eu0BvKT.js} +1 -1
- package/dist/preview/assets/{config-BnZQO-Sp.js → config-B1jKkIYg.js} +1 -1
- package/dist/preview/assets/{config-DNokxY7M.js → config-BpTg08Vv.js} +1 -1
- package/dist/preview/assets/{config-_uPI8qV-.js → config-CDjs2Ohl.js} +1 -1
- package/dist/preview/assets/{config-_msO_f2R.js → config-CVS1PW6h.js} +1 -1
- package/dist/preview/assets/{config-Be-2ZA2R.js → config-DoQjG5TI.js} +1 -1
- package/dist/preview/assets/{config-Bp91DUdU.js → config-f56G9OU7.js} +1 -1
- package/dist/preview/assets/{definition.vue_vue_type_script_setup_true_lang-BtScXbs1.js → definition.vue_vue_type_script_setup_true_lang-DbnaeqGK.js} +1 -1
- package/dist/preview/assets/index-Br_eXThF.css +1 -0
- package/dist/preview/assets/index-DDthcoXk.js +637 -0
- package/dist/preview/assets/index-DhkKZ2ii.js +1 -0
- package/dist/preview/assets/{runtime-Dk9u-Ybw.js → runtime-BICQC6bF.js} +1 -1
- package/dist/preview/assets/{runtime-CfR7ZAND.js → runtime-BkZp9k_z.js} +1 -1
- package/dist/preview/assets/{runtime-XXqIAt53.js → runtime-BqFFtMNw.js} +1 -1
- package/dist/preview/assets/{runtime-BBms4myv.js → runtime-COMOofol.js} +1 -1
- package/dist/preview/assets/{runtime-D3EyeiyA.js → runtime-CPPOlC0F.js} +1 -1
- package/dist/preview/assets/{runtime-cKWSGFod.js → runtime-DejxoCBP.js} +1 -1
- package/dist/preview/assets/{runtime-w7V-p3t1.js → runtime-YYdaCEw3.js} +1 -1
- package/dist/preview/assets/{runtime-B9u14qqB.js → runtime-hKRNY9F6.js} +1 -1
- package/dist/preview/index.html +2 -2
- package/dist/runtime/components/actions/utils/resolve.js +6 -2
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/schema.d.ts +1 -1
- package/dist/runtime/components/config/blocks/2026-05-17/com.shwfed.block.chart.xy/schema.d.ts +4 -0
- package/dist/runtime/components/config/blocks/2026-05-17/com.shwfed.block.chart.xy/schema.js +6 -17
- package/dist/runtime/components/config/utils/resolve.js +3 -1
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/config.d.vue.ts +18 -18
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/config.vue.d.ts +18 -18
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/config.d.vue.ts +4 -4
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/config.vue.d.ts +4 -4
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/config.d.vue.ts +22 -22
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/config.vue.d.ts +22 -22
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/config.d.vue.ts +2 -2
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/config.vue.d.ts +2 -2
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/config.d.vue.ts +4 -4
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/config.vue.d.ts +4 -4
- package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/config.d.vue.ts +12 -12
- package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/config.vue.d.ts +12 -12
- package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/config.d.vue.ts +10 -10
- package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/config.vue.d.ts +10 -10
- package/dist/runtime/components/form/fields/2026-05-12/com.shwfed.form.field.upload/config.d.vue.ts +12 -12
- package/dist/runtime/components/form/fields/2026-05-12/com.shwfed.form.field.upload/config.vue.d.ts +12 -12
- package/dist/runtime/components/form/fields/2026-05-23/com.shwfed.form.field.tree.multi/config.d.vue.ts +133 -0
- package/dist/runtime/components/form/fields/2026-05-23/com.shwfed.form.field.tree.multi/config.vue +605 -0
- package/dist/runtime/components/form/fields/2026-05-23/com.shwfed.form.field.tree.multi/config.vue.d.ts +133 -0
- package/dist/runtime/components/form/fields/2026-05-23/com.shwfed.form.field.tree.multi/runtime.d.vue.ts +8 -0
- package/dist/runtime/components/form/fields/2026-05-23/com.shwfed.form.field.tree.multi/runtime.vue +324 -0
- package/dist/runtime/components/form/fields/2026-05-23/com.shwfed.form.field.tree.multi/runtime.vue.d.ts +8 -0
- package/dist/runtime/components/form/fields/2026-05-23/com.shwfed.form.field.tree.multi/schema.d.ts +99 -0
- package/dist/runtime/components/form/fields/2026-05-23/com.shwfed.form.field.tree.multi/schema.js +129 -0
- package/dist/runtime/components/form/unit-config.vue +0 -23
- package/dist/runtime/components/form/utils/resolve.js +3 -1
- package/dist/runtime/components/table/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/config.vue +5 -45
- package/dist/runtime/components/table/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/schema.d.ts +9 -2
- package/dist/runtime/components/table/schema.js +30 -14
- package/dist/runtime/components/table/utils/resolve.js +3 -1
- package/dist/runtime/components/ui/date-range-picker/DateRangePickerDateTimePanel.d.vue.ts +1 -1
- package/dist/runtime/components/ui/date-range-picker/DateRangePickerDateTimePanel.vue.d.ts +1 -1
- package/dist/runtime/components/ui/date-range-picker/DateRangePickerTimeInput.d.vue.ts +1 -1
- package/dist/runtime/components/ui/date-range-picker/DateRangePickerTimeInput.vue.d.ts +1 -1
- package/dist/runtime/components/ui/tree/Tree.d.vue.ts +57 -0
- package/dist/runtime/components/ui/tree/Tree.vue +325 -0
- package/dist/runtime/components/ui/tree/Tree.vue.d.ts +57 -0
- package/dist/runtime/components/ui/tree/TreeNode.d.vue.ts +53 -0
- package/dist/runtime/components/ui/tree/TreeNode.vue +299 -0
- package/dist/runtime/components/ui/tree/TreeNode.vue.d.ts +53 -0
- package/dist/runtime/components/ui/tree/index.d.ts +3 -0
- package/dist/runtime/components/ui/tree/index.js +2 -0
- package/dist/runtime/components/ui/tree/types.d.ts +120 -0
- package/dist/runtime/components/ui/tree/types.js +0 -0
- package/dist/runtime/components/ui/tree/useTreeState.d.ts +95 -0
- package/dist/runtime/components/ui/tree/useTreeState.js +369 -0
- package/dist/runtime/shims.d.ts +2 -0
- package/package.json +1 -1
- package/dist/preview/assets/index-DDbl2Atj.js +0 -1
- package/dist/preview/assets/index-DGa3Oj3y.js +0 -1075
- package/dist/preview/assets/index-mbGtsgdv.css +0 -1
- package/dist/runtime/components/form/ai/fields-button.d.vue.ts +0 -13
- package/dist/runtime/components/form/ai/fields-button.vue +0 -460
- package/dist/runtime/components/form/ai/fields-button.vue.d.ts +0 -13
- package/dist/runtime/components/form/ai/fields-task.md +0 -71
- package/dist/runtime/components/table/ai/columns-button.d.vue.ts +0 -12
- package/dist/runtime/components/table/ai/columns-button.vue +0 -492
- package/dist/runtime/components/table/ai/columns-button.vue.d.ts +0 -12
- package/dist/runtime/components/table/ai/columns-task.md +0 -53
- package/dist/runtime/components/table/ai/data-source-button.d.vue.ts +0 -20
- package/dist/runtime/components/table/ai/data-source-button.vue +0 -324
- package/dist/runtime/components/table/ai/data-source-button.vue.d.ts +0 -20
- package/dist/runtime/components/table/ai/data-source-task.md +0 -17
- package/dist/runtime/utils/ai/cel-prompt.d.ts +0 -11
- package/dist/runtime/utils/ai/cel-prompt.js +0 -27
package/dist/mcp.mjs
CHANGED
|
@@ -14094,13 +14094,13 @@ function requireDataType() {
|
|
|
14094
14094
|
}
|
|
14095
14095
|
return dataType;
|
|
14096
14096
|
}
|
|
14097
|
-
var defaults$
|
|
14097
|
+
var defaults$8 = {};
|
|
14098
14098
|
var hasRequiredDefaults;
|
|
14099
14099
|
function requireDefaults() {
|
|
14100
|
-
if (hasRequiredDefaults) return defaults$
|
|
14100
|
+
if (hasRequiredDefaults) return defaults$8;
|
|
14101
14101
|
hasRequiredDefaults = 1;
|
|
14102
|
-
Object.defineProperty(defaults$
|
|
14103
|
-
defaults$
|
|
14102
|
+
Object.defineProperty(defaults$8, "__esModule", { value: true });
|
|
14103
|
+
defaults$8.assignDefaults = void 0;
|
|
14104
14104
|
const codegen_1 = /* @__PURE__ */ requireCodegen();
|
|
14105
14105
|
const util_1 = /* @__PURE__ */ requireUtil$1();
|
|
14106
14106
|
function assignDefaults(it, ty) {
|
|
@@ -14113,7 +14113,7 @@ function requireDefaults() {
|
|
|
14113
14113
|
items2.forEach((sch, i) => assignDefault(it, i, sch.default));
|
|
14114
14114
|
}
|
|
14115
14115
|
}
|
|
14116
|
-
defaults$
|
|
14116
|
+
defaults$8.assignDefaults = assignDefaults;
|
|
14117
14117
|
function assignDefault(it, prop, defaultValue) {
|
|
14118
14118
|
const { gen: gen2, compositeRule, data, opts } = it;
|
|
14119
14119
|
if (defaultValue === void 0)
|
|
@@ -14129,7 +14129,7 @@ function requireDefaults() {
|
|
|
14129
14129
|
}
|
|
14130
14130
|
gen2.if(condition, (0, codegen_1._)`${childData} = ${(0, codegen_1.stringify)(defaultValue)}`);
|
|
14131
14131
|
}
|
|
14132
|
-
return defaults$
|
|
14132
|
+
return defaults$8;
|
|
14133
14133
|
}
|
|
14134
14134
|
var keyword = {};
|
|
14135
14135
|
var code$1 = {};
|
|
@@ -15509,14 +15509,14 @@ function requireCompile() {
|
|
|
15509
15509
|
}
|
|
15510
15510
|
const $id$1 = "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#";
|
|
15511
15511
|
const description = "Meta-schema for $data reference (JSON AnySchema extension proposal)";
|
|
15512
|
-
const type$
|
|
15512
|
+
const type$R = "object";
|
|
15513
15513
|
const required$1 = ["$data"];
|
|
15514
15514
|
const properties$2 = { "$data": { "type": "string", "anyOf": [{ "format": "relative-json-pointer" }, { "format": "json-pointer" }] } };
|
|
15515
15515
|
const additionalProperties$1 = false;
|
|
15516
15516
|
const require$$9 = {
|
|
15517
15517
|
$id: $id$1,
|
|
15518
15518
|
description,
|
|
15519
|
-
type: type$
|
|
15519
|
+
type: type$R,
|
|
15520
15520
|
required: required$1,
|
|
15521
15521
|
properties: properties$2,
|
|
15522
15522
|
additionalProperties: additionalProperties$1
|
|
@@ -18516,14 +18516,14 @@ function requireFormat() {
|
|
|
18516
18516
|
format$7.default = format2;
|
|
18517
18517
|
return format$7;
|
|
18518
18518
|
}
|
|
18519
|
-
var metadata$
|
|
18519
|
+
var metadata$Q = {};
|
|
18520
18520
|
var hasRequiredMetadata;
|
|
18521
18521
|
function requireMetadata() {
|
|
18522
|
-
if (hasRequiredMetadata) return metadata$
|
|
18522
|
+
if (hasRequiredMetadata) return metadata$Q;
|
|
18523
18523
|
hasRequiredMetadata = 1;
|
|
18524
|
-
Object.defineProperty(metadata$
|
|
18525
|
-
metadata$
|
|
18526
|
-
metadata$
|
|
18524
|
+
Object.defineProperty(metadata$Q, "__esModule", { value: true });
|
|
18525
|
+
metadata$Q.contentVocabulary = metadata$Q.metadataVocabulary = void 0;
|
|
18526
|
+
metadata$Q.metadataVocabulary = [
|
|
18527
18527
|
"title",
|
|
18528
18528
|
"description",
|
|
18529
18529
|
"default",
|
|
@@ -18532,12 +18532,12 @@ function requireMetadata() {
|
|
|
18532
18532
|
"writeOnly",
|
|
18533
18533
|
"examples"
|
|
18534
18534
|
];
|
|
18535
|
-
metadata$
|
|
18535
|
+
metadata$Q.contentVocabulary = [
|
|
18536
18536
|
"contentMediaType",
|
|
18537
18537
|
"contentEncoding",
|
|
18538
18538
|
"contentSchema"
|
|
18539
18539
|
];
|
|
18540
|
-
return metadata$
|
|
18540
|
+
return metadata$Q;
|
|
18541
18541
|
}
|
|
18542
18542
|
var hasRequiredDraft7;
|
|
18543
18543
|
function requireDraft7() {
|
|
@@ -18683,14 +18683,14 @@ const $schema = "http://json-schema.org/draft-07/schema#";
|
|
|
18683
18683
|
const $id = "http://json-schema.org/draft-07/schema#";
|
|
18684
18684
|
const title = "Core schema meta-schema";
|
|
18685
18685
|
const definitions = { "schemaArray": { "type": "array", "minItems": 1, "items": { "$ref": "#" } }, "nonNegativeInteger": { "type": "integer", "minimum": 0 }, "nonNegativeIntegerDefault0": { "allOf": [{ "$ref": "#/definitions/nonNegativeInteger" }, { "default": 0 }] }, "simpleTypes": { "enum": ["array", "boolean", "integer", "null", "number", "object", "string"] }, "stringArray": { "type": "array", "items": { "type": "string" }, "uniqueItems": true, "default": [] } };
|
|
18686
|
-
const type$
|
|
18686
|
+
const type$Q = ["object", "boolean"];
|
|
18687
18687
|
const properties = { "$id": { "type": "string", "format": "uri-reference" }, "$schema": { "type": "string", "format": "uri" }, "$ref": { "type": "string", "format": "uri-reference" }, "$comment": { "type": "string" }, "title": { "type": "string" }, "description": { "type": "string" }, "default": true, "readOnly": { "type": "boolean", "default": false }, "examples": { "type": "array", "items": true }, "multipleOf": { "type": "number", "exclusiveMinimum": 0 }, "maximum": { "type": "number" }, "exclusiveMaximum": { "type": "number" }, "minimum": { "type": "number" }, "exclusiveMinimum": { "type": "number" }, "maxLength": { "$ref": "#/definitions/nonNegativeInteger" }, "minLength": { "$ref": "#/definitions/nonNegativeIntegerDefault0" }, "pattern": { "type": "string", "format": "regex" }, "additionalItems": { "$ref": "#" }, "items": { "anyOf": [{ "$ref": "#" }, { "$ref": "#/definitions/schemaArray" }], "default": true }, "maxItems": { "$ref": "#/definitions/nonNegativeInteger" }, "minItems": { "$ref": "#/definitions/nonNegativeIntegerDefault0" }, "uniqueItems": { "type": "boolean", "default": false }, "contains": { "$ref": "#" }, "maxProperties": { "$ref": "#/definitions/nonNegativeInteger" }, "minProperties": { "$ref": "#/definitions/nonNegativeIntegerDefault0" }, "required": { "$ref": "#/definitions/stringArray" }, "additionalProperties": { "$ref": "#" }, "definitions": { "type": "object", "additionalProperties": { "$ref": "#" }, "default": {} }, "properties": { "type": "object", "additionalProperties": { "$ref": "#" }, "default": {} }, "patternProperties": { "type": "object", "additionalProperties": { "$ref": "#" }, "propertyNames": { "format": "regex" }, "default": {} }, "dependencies": { "type": "object", "additionalProperties": { "anyOf": [{ "$ref": "#" }, { "$ref": "#/definitions/stringArray" }] } }, "propertyNames": { "$ref": "#" }, "const": true, "enum": { "type": "array", "items": true, "minItems": 1, "uniqueItems": true }, "type": { "anyOf": [{ "$ref": "#/definitions/simpleTypes" }, { "type": "array", "items": { "$ref": "#/definitions/simpleTypes" }, "minItems": 1, "uniqueItems": true }] }, "format": { "type": "string" }, "contentMediaType": { "type": "string" }, "contentEncoding": { "type": "string" }, "if": { "$ref": "#" }, "then": { "$ref": "#" }, "else": { "$ref": "#" }, "allOf": { "$ref": "#/definitions/schemaArray" }, "anyOf": { "$ref": "#/definitions/schemaArray" }, "oneOf": { "$ref": "#/definitions/schemaArray" }, "not": { "$ref": "#" } };
|
|
18688
18688
|
const require$$3 = {
|
|
18689
18689
|
$schema,
|
|
18690
18690
|
$id,
|
|
18691
18691
|
title,
|
|
18692
18692
|
definitions,
|
|
18693
|
-
type: type$
|
|
18693
|
+
type: type$Q,
|
|
18694
18694
|
properties,
|
|
18695
18695
|
"default": true
|
|
18696
18696
|
};
|
|
@@ -45510,133 +45510,6 @@ function LocaleMarkdown(options) {
|
|
|
45510
45510
|
)
|
|
45511
45511
|
);
|
|
45512
45512
|
}
|
|
45513
|
-
const TrackCount = Number$.pipe(int(), positive());
|
|
45514
|
-
const GridCoord = Number$.pipe(int(), positive());
|
|
45515
|
-
const Corner = Tuple(GridCoord, GridCoord).annotations({
|
|
45516
|
-
title: "Corner",
|
|
45517
|
-
description: "[x, y] 网格线号(1 基)"
|
|
45518
|
-
});
|
|
45519
|
-
const Area = Tuple(Corner, Corner).pipe(filter((a) => {
|
|
45520
|
-
if (a[1][0] <= a[0][0]) return "右下列线必须大于左上列线";
|
|
45521
|
-
if (a[1][1] <= a[0][1]) return "右下行线必须大于左上行线";
|
|
45522
|
-
return true;
|
|
45523
|
-
})).annotations({
|
|
45524
|
-
title: "Area",
|
|
45525
|
-
description: "矩形区域:`[[x1, y1], [x2, y2]]`,左上 + 右下对角(终止线不含)"
|
|
45526
|
-
});
|
|
45527
|
-
const Align$1 = Literal2("start", "center", "end", "stretch").annotations({
|
|
45528
|
-
title: "Align",
|
|
45529
|
-
description: "网格项在单轴上的对齐方式;缺省等同于 stretch"
|
|
45530
|
-
});
|
|
45531
|
-
const Placement = Struct({
|
|
45532
|
-
area: Area,
|
|
45533
|
-
h: optional(Align$1.annotations({ title: "水平对齐", description: "水平轴对齐(justify-self)" })),
|
|
45534
|
-
v: optional(Align$1.annotations({ title: "垂直对齐", description: "垂直轴对齐(align-self)" }))
|
|
45535
|
-
}).annotations({
|
|
45536
|
-
title: "Placement",
|
|
45537
|
-
description: "块在某一布局中的位置与对齐"
|
|
45538
|
-
});
|
|
45539
|
-
const Layout = Struct({
|
|
45540
|
-
columns: TrackCount.annotations({
|
|
45541
|
-
title: "列数",
|
|
45542
|
-
description: "总列数。每列等宽,渲染时展开为 `repeat(N, minmax(0, 1fr))` — 列会收缩以适配容器宽度"
|
|
45543
|
-
}),
|
|
45544
|
-
rows: optional(TrackCount.annotations({
|
|
45545
|
-
title: "行数",
|
|
45546
|
-
description: "总行数。每行等权,渲染时展开为 `repeat(N, minmax(0, 1fr))` — 在自然高度容器内等同于 `auto`"
|
|
45547
|
-
})),
|
|
45548
|
-
gap: optional(Number$.pipe(int(), nonNegative()).annotations({
|
|
45549
|
-
title: "网格间距",
|
|
45550
|
-
description: "非负整数;实际 CSS gap 为 `calc(n * 0.25rem)`。显式 `0` 表示无间距,未设置则取默认间距 4(即 `1rem`)"
|
|
45551
|
-
})),
|
|
45552
|
-
style: optional(String$.annotations({
|
|
45553
|
-
title: "容器样式",
|
|
45554
|
-
description: "容器的内联样式字符串"
|
|
45555
|
-
})),
|
|
45556
|
-
placements: Record({
|
|
45557
|
-
key: String$,
|
|
45558
|
-
value: Placement
|
|
45559
|
-
}).annotations({
|
|
45560
|
-
title: "位置",
|
|
45561
|
-
description: "以块 `id` 为键的位置映射;未映射的块在该布局中不渲染"
|
|
45562
|
-
})
|
|
45563
|
-
}).annotations({
|
|
45564
|
-
title: "Layout",
|
|
45565
|
-
description: "一套完整的网格布局"
|
|
45566
|
-
});
|
|
45567
|
-
function configureMedia(configure) {
|
|
45568
|
-
return (env) => {
|
|
45569
|
-
env.registerFunction(
|
|
45570
|
-
"media(string): bool",
|
|
45571
|
-
(_self, q) => typeof window !== "undefined" && window.matchMedia(q).matches,
|
|
45572
|
-
{ description: "匹配 CSS 媒体查询,等价于 `window.matchMedia(q).matches`;SSR 上下文返回 `false`" }
|
|
45573
|
-
);
|
|
45574
|
-
configure(env);
|
|
45575
|
-
};
|
|
45576
|
-
}
|
|
45577
|
-
function LayoutSet(configure) {
|
|
45578
|
-
return Struct({
|
|
45579
|
-
name: String$.annotations({
|
|
45580
|
-
title: "名称",
|
|
45581
|
-
description: "编辑器中区分不同布局的内部名称"
|
|
45582
|
-
}),
|
|
45583
|
-
media: optional(Expression({
|
|
45584
|
-
configure: configureMedia(configure),
|
|
45585
|
-
resultType: "bool"
|
|
45586
|
-
}).annotations({
|
|
45587
|
-
title: "匹配条件",
|
|
45588
|
-
description: "返回 `bool` 的 CEL 表达式,挂载时一次性求值;空表示无条件匹配。可用 `media('(min-width: 1024px)')` 包装 CSS 媒体查询。"
|
|
45589
|
-
})),
|
|
45590
|
-
layout: Layout
|
|
45591
|
-
}).annotations({
|
|
45592
|
-
title: "LayoutSet",
|
|
45593
|
-
description: "带匹配条件的布局集合项"
|
|
45594
|
-
});
|
|
45595
|
-
}
|
|
45596
|
-
function validatePlacements(items2, layouts, label) {
|
|
45597
|
-
const ids2 = new Set(items2.map((it) => it.id));
|
|
45598
|
-
for (const [i, set3] of layouts.entries()) {
|
|
45599
|
-
const nCols = set3.layout.columns;
|
|
45600
|
-
const nRows = set3.layout.rows;
|
|
45601
|
-
for (const [id2, placement] of Object.entries(set3.layout.placements)) {
|
|
45602
|
-
if (!ids2.has(id2)) {
|
|
45603
|
-
return `布局 #${i} (${set3.name}) 引用了不存在的${label} id: ${id2}`;
|
|
45604
|
-
}
|
|
45605
|
-
const [, [x2, y2]] = placement.area;
|
|
45606
|
-
if (x2 > nCols + 1) {
|
|
45607
|
-
return `布局 #${i} (${set3.name}) ${label} ${id2} 的列区域超出列定义(共 ${nCols} 列)`;
|
|
45608
|
-
}
|
|
45609
|
-
if (nRows !== void 0 && y2 > nRows + 1) {
|
|
45610
|
-
return `布局 #${i} (${set3.name}) ${label} ${id2} 的行区域超出行定义(共 ${nRows} 行)`;
|
|
45611
|
-
}
|
|
45612
|
-
}
|
|
45613
|
-
}
|
|
45614
|
-
return true;
|
|
45615
|
-
}
|
|
45616
|
-
function Slot(BlockSchemaUnion, configure) {
|
|
45617
|
-
return Struct({
|
|
45618
|
-
blocks: Array$(BlockSchemaUnion).annotations({
|
|
45619
|
-
title: "块",
|
|
45620
|
-
description: "块列表;未绑定到任何布局的块不会被渲染"
|
|
45621
|
-
}),
|
|
45622
|
-
layouts: Array$(LayoutSet(configure)).pipe(minItems(1)).annotations({
|
|
45623
|
-
title: "布局",
|
|
45624
|
-
description: "按顺序排列的布局集合;挂载时按序求值各项 `media` CEL 表达式,使用第一个为 `true` 的布局(全部不匹配时回退到最后一项)"
|
|
45625
|
-
})
|
|
45626
|
-
}).pipe(filter((slot) => {
|
|
45627
|
-
const items2 = slot.blocks.map((b) => ({ id: b.id }));
|
|
45628
|
-
return validatePlacements(items2, slot.layouts, "块");
|
|
45629
|
-
})).annotations({
|
|
45630
|
-
title: "Slot",
|
|
45631
|
-
description: "块与布局的组合:定义一组块以及它们在不同布局下的位置"
|
|
45632
|
-
});
|
|
45633
|
-
}
|
|
45634
|
-
function defaultSlot() {
|
|
45635
|
-
return {
|
|
45636
|
-
blocks: [],
|
|
45637
|
-
layouts: [{ name: "默认", layout: { columns: 1, placements: {} } }]
|
|
45638
|
-
};
|
|
45639
|
-
}
|
|
45640
45513
|
var vue = { exports: {} };
|
|
45641
45514
|
var vue_cjs_prod = {};
|
|
45642
45515
|
var compilerDom_cjs_prod = {};
|
|
@@ -57245,12 +57118,12 @@ function requireLib() {
|
|
|
57245
57118
|
}
|
|
57246
57119
|
}
|
|
57247
57120
|
finishPlaceholder(node, expectedNode) {
|
|
57248
|
-
let
|
|
57249
|
-
if (!
|
|
57250
|
-
|
|
57121
|
+
let placeholder2 = node;
|
|
57122
|
+
if (!placeholder2.expectedNode || !placeholder2.type) {
|
|
57123
|
+
placeholder2 = this.finishNode(placeholder2, "Placeholder");
|
|
57251
57124
|
}
|
|
57252
|
-
|
|
57253
|
-
return
|
|
57125
|
+
placeholder2.expectedNode = expectedNode;
|
|
57126
|
+
return placeholder2;
|
|
57254
57127
|
}
|
|
57255
57128
|
getTokenFromCode(code3) {
|
|
57256
57129
|
if (code3 === 37 && this.input.charCodeAt(this.state.pos + 1) === 37) {
|
|
@@ -57338,13 +57211,13 @@ function requireLib() {
|
|
|
57338
57211
|
const type2 = isStatement ? "ClassDeclaration" : "ClassExpression";
|
|
57339
57212
|
this.next();
|
|
57340
57213
|
const oldStrict = this.state.strict;
|
|
57341
|
-
const
|
|
57342
|
-
if (
|
|
57214
|
+
const placeholder2 = this.parsePlaceholder("Identifier");
|
|
57215
|
+
if (placeholder2) {
|
|
57343
57216
|
if (this.match(81) || this.match(133) || this.match(5)) {
|
|
57344
|
-
node.id =
|
|
57217
|
+
node.id = placeholder2;
|
|
57345
57218
|
} else if (optionalId || !isStatement) {
|
|
57346
57219
|
node.id = null;
|
|
57347
|
-
node.body = this.finishPlaceholder(
|
|
57220
|
+
node.body = this.finishPlaceholder(placeholder2, "ClassBody");
|
|
57348
57221
|
return this.finishNode(node, type2);
|
|
57349
57222
|
} else {
|
|
57350
57223
|
throw this.raise(PlaceholderErrors.ClassNameIsRequired, this.state.startLoc);
|
|
@@ -57357,18 +57230,18 @@ function requireLib() {
|
|
|
57357
57230
|
return this.finishNode(node, type2);
|
|
57358
57231
|
}
|
|
57359
57232
|
parseExport(node, decorators) {
|
|
57360
|
-
const
|
|
57361
|
-
if (!
|
|
57233
|
+
const placeholder2 = this.parsePlaceholder("Identifier");
|
|
57234
|
+
if (!placeholder2) return super.parseExport(node, decorators);
|
|
57362
57235
|
const node2 = node;
|
|
57363
57236
|
if (!this.isContextual(98) && !this.match(12)) {
|
|
57364
57237
|
node2.specifiers = [];
|
|
57365
57238
|
node2.source = null;
|
|
57366
|
-
node2.declaration = this.finishPlaceholder(
|
|
57239
|
+
node2.declaration = this.finishPlaceholder(placeholder2, "Declaration");
|
|
57367
57240
|
return this.finishNode(node2, "ExportNamedDeclaration");
|
|
57368
57241
|
}
|
|
57369
57242
|
this.expectPlugin("exportDefaultFrom");
|
|
57370
57243
|
const specifier = this.startNode();
|
|
57371
|
-
specifier.exported =
|
|
57244
|
+
specifier.exported = placeholder2;
|
|
57372
57245
|
node2.specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")];
|
|
57373
57246
|
return super.parseExport(node2, decorators);
|
|
57374
57247
|
}
|
|
@@ -57401,16 +57274,16 @@ function requireLib() {
|
|
|
57401
57274
|
node.specifiers = specifiers;
|
|
57402
57275
|
}
|
|
57403
57276
|
parseImport(node) {
|
|
57404
|
-
const
|
|
57405
|
-
if (!
|
|
57277
|
+
const placeholder2 = this.parsePlaceholder("Identifier");
|
|
57278
|
+
if (!placeholder2) return super.parseImport(node);
|
|
57406
57279
|
node.specifiers = [];
|
|
57407
57280
|
if (!this.isContextual(98) && !this.match(12)) {
|
|
57408
|
-
node.source = this.finishPlaceholder(
|
|
57281
|
+
node.source = this.finishPlaceholder(placeholder2, "StringLiteral");
|
|
57409
57282
|
this.semicolon();
|
|
57410
57283
|
return this.finishNode(node, "ImportDeclaration");
|
|
57411
57284
|
}
|
|
57412
|
-
const specifier = this.startNodeAtNode(
|
|
57413
|
-
specifier.local =
|
|
57285
|
+
const specifier = this.startNodeAtNode(placeholder2);
|
|
57286
|
+
specifier.local = placeholder2;
|
|
57414
57287
|
node.specifiers.push(this.finishNode(specifier, "ImportDefaultSpecifier"));
|
|
57415
57288
|
if (this.eat(12)) {
|
|
57416
57289
|
const hasStarImport = this.maybeParseStarImportSpecifier(node);
|
|
@@ -73378,9 +73251,9 @@ function requireRuntimeCore_cjs_prod() {
|
|
|
73378
73251
|
queuePostRenderEffect(mountJob, parentSuspense);
|
|
73379
73252
|
};
|
|
73380
73253
|
if (n1 == null) {
|
|
73381
|
-
const
|
|
73254
|
+
const placeholder2 = n2.el = createText("");
|
|
73382
73255
|
const mainAnchor = n2.anchor = createText("");
|
|
73383
|
-
insert(
|
|
73256
|
+
insert(placeholder2, container, anchor);
|
|
73384
73257
|
insert(mainAnchor, container, anchor);
|
|
73385
73258
|
if (isTeleportDeferred(n2.props) || parentSuspense && parentSuspense.pendingBranch) {
|
|
73386
73259
|
queuePendingMount(n2);
|
|
@@ -77380,9 +77253,9 @@ function requireRuntimeCore_cjs_prod() {
|
|
|
77380
77253
|
if (instance.asyncDep) {
|
|
77381
77254
|
parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
|
|
77382
77255
|
if (!initialVNode.el) {
|
|
77383
|
-
const
|
|
77384
|
-
processCommentNode(null,
|
|
77385
|
-
initialVNode.placeholder =
|
|
77256
|
+
const placeholder2 = instance.subTree = createVNode(Comment);
|
|
77257
|
+
processCommentNode(null, placeholder2, container, anchor);
|
|
77258
|
+
initialVNode.placeholder = placeholder2.el;
|
|
77386
77259
|
}
|
|
77387
77260
|
} else {
|
|
77388
77261
|
setupRenderEffect(
|
|
@@ -78664,7 +78537,7 @@ function requireRuntimeCore_cjs_prod() {
|
|
|
78664
78537
|
if (hydratedEl) {
|
|
78665
78538
|
vnode2.el = hydratedEl;
|
|
78666
78539
|
}
|
|
78667
|
-
const
|
|
78540
|
+
const placeholder2 = !hydratedEl && instance.subTree.el;
|
|
78668
78541
|
setupRenderEffect(
|
|
78669
78542
|
instance,
|
|
78670
78543
|
vnode2,
|
|
@@ -78679,9 +78552,9 @@ function requireRuntimeCore_cjs_prod() {
|
|
|
78679
78552
|
namespace,
|
|
78680
78553
|
optimized2
|
|
78681
78554
|
);
|
|
78682
|
-
if (
|
|
78555
|
+
if (placeholder2) {
|
|
78683
78556
|
vnode2.placeholder = null;
|
|
78684
|
-
remove2(
|
|
78557
|
+
remove2(placeholder2);
|
|
78685
78558
|
}
|
|
78686
78559
|
updateHOCHostEl(instance, vnode2.el);
|
|
78687
78560
|
if (isInPendingSuspense && --suspense.deps === 0) {
|
|
@@ -81617,13 +81490,13 @@ function md(...args2) {
|
|
|
81617
81490
|
const indent = (original.startsWith("\n") ? original.slice(1) : original).split("\n", 1)[0]?.match(/^(\s*)/)?.[1]?.length ?? 0;
|
|
81618
81491
|
return original.trim().replaceAll("\\`", "`").split("\n").map((line) => line.replace(new RegExp(`^${String.raw`\s`.repeat(indent)}`), "")).join("\n");
|
|
81619
81492
|
}
|
|
81620
|
-
const type$
|
|
81621
|
-
const compatibilityDate$
|
|
81622
|
-
const metadata$
|
|
81493
|
+
const type$P = "com.shwfed.actions.button.http.request.json.confirm";
|
|
81494
|
+
const compatibilityDate$P = "2026-04-18";
|
|
81495
|
+
const metadata$P = {
|
|
81623
81496
|
name: "网络请求(JSON + 确认)",
|
|
81624
81497
|
icon: "fluent:shield-checkmark-20-regular"
|
|
81625
81498
|
};
|
|
81626
|
-
function schema$
|
|
81499
|
+
function schema$P(configure) {
|
|
81627
81500
|
const CelHttpRequest = Expression({ configure, resultType: "HttpRequest" });
|
|
81628
81501
|
const CelMessage = Expression({
|
|
81629
81502
|
configure: (env) => {
|
|
@@ -81635,8 +81508,8 @@ function schema$O(configure) {
|
|
|
81635
81508
|
resultType: "string"
|
|
81636
81509
|
});
|
|
81637
81510
|
return Struct({
|
|
81638
|
-
type: Literal2(type$
|
|
81639
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
81511
|
+
type: Literal2(type$P),
|
|
81512
|
+
compatibilityDate: Literal2(compatibilityDate$P),
|
|
81640
81513
|
expression: CelHttpRequest.annotations({
|
|
81641
81514
|
title: "请求",
|
|
81642
81515
|
description: md`
|
|
@@ -81694,18 +81567,18 @@ function schema$O(configure) {
|
|
|
81694
81567
|
}
|
|
81695
81568
|
const __vite_glob_0_0$3 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
81696
81569
|
__proto__: null,
|
|
81697
|
-
compatibilityDate: compatibilityDate$
|
|
81698
|
-
metadata: metadata$
|
|
81699
|
-
schema: schema$
|
|
81700
|
-
type: type$
|
|
81570
|
+
compatibilityDate: compatibilityDate$P,
|
|
81571
|
+
metadata: metadata$P,
|
|
81572
|
+
schema: schema$P,
|
|
81573
|
+
type: type$P
|
|
81701
81574
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
81702
|
-
const type$
|
|
81703
|
-
const compatibilityDate$
|
|
81704
|
-
const metadata$
|
|
81575
|
+
const type$O = "com.shwfed.actions.button.http.request.json";
|
|
81576
|
+
const compatibilityDate$O = "2026-04-18";
|
|
81577
|
+
const metadata$O = {
|
|
81705
81578
|
name: "网络请求(JSON)",
|
|
81706
81579
|
icon: "fluent:cloud-arrow-up-20-regular"
|
|
81707
81580
|
};
|
|
81708
|
-
function schema$
|
|
81581
|
+
function schema$O(configure) {
|
|
81709
81582
|
const CelHttpRequest = Expression({ configure, resultType: "HttpRequest" });
|
|
81710
81583
|
const CelMessage = Expression({
|
|
81711
81584
|
configure: (env) => {
|
|
@@ -81717,8 +81590,8 @@ function schema$N(configure) {
|
|
|
81717
81590
|
resultType: "string"
|
|
81718
81591
|
});
|
|
81719
81592
|
return Struct({
|
|
81720
|
-
type: Literal2(type$
|
|
81721
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
81593
|
+
type: Literal2(type$O),
|
|
81594
|
+
compatibilityDate: Literal2(compatibilityDate$O),
|
|
81722
81595
|
expression: CelHttpRequest.annotations({
|
|
81723
81596
|
title: "请求",
|
|
81724
81597
|
description: md`
|
|
@@ -81764,21 +81637,21 @@ function schema$N(configure) {
|
|
|
81764
81637
|
}
|
|
81765
81638
|
const __vite_glob_0_1$3 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
81766
81639
|
__proto__: null,
|
|
81767
|
-
compatibilityDate: compatibilityDate$
|
|
81768
|
-
metadata: metadata$
|
|
81769
|
-
schema: schema$
|
|
81770
|
-
type: type$
|
|
81640
|
+
compatibilityDate: compatibilityDate$O,
|
|
81641
|
+
metadata: metadata$O,
|
|
81642
|
+
schema: schema$O,
|
|
81643
|
+
type: type$O
|
|
81771
81644
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
81772
|
-
const type$
|
|
81773
|
-
const compatibilityDate$
|
|
81774
|
-
const metadata$
|
|
81645
|
+
const type$N = "com.shwfed.actions.button.prototype";
|
|
81646
|
+
const compatibilityDate$N = "2026-04-18";
|
|
81647
|
+
const metadata$N = {
|
|
81775
81648
|
name: "原型",
|
|
81776
81649
|
icon: "fluent:predictions-20-regular"
|
|
81777
81650
|
};
|
|
81778
|
-
function schema$
|
|
81651
|
+
function schema$N(_configure) {
|
|
81779
81652
|
return Struct({
|
|
81780
|
-
type: Literal2(type$
|
|
81781
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
81653
|
+
type: Literal2(type$N),
|
|
81654
|
+
compatibilityDate: Literal2(compatibilityDate$N)
|
|
81782
81655
|
}).annotations({
|
|
81783
81656
|
title: "PrototypeAction",
|
|
81784
81657
|
description: "点击无副作用的原型按钮,可被一次性转换为其它类型"
|
|
@@ -81786,23 +81659,23 @@ function schema$M(_configure) {
|
|
|
81786
81659
|
}
|
|
81787
81660
|
const __vite_glob_0_2$3 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
81788
81661
|
__proto__: null,
|
|
81789
|
-
compatibilityDate: compatibilityDate$
|
|
81790
|
-
metadata: metadata$
|
|
81791
|
-
schema: schema$
|
|
81792
|
-
type: type$
|
|
81662
|
+
compatibilityDate: compatibilityDate$N,
|
|
81663
|
+
metadata: metadata$N,
|
|
81664
|
+
schema: schema$N,
|
|
81665
|
+
type: type$N
|
|
81793
81666
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
81794
|
-
const type$
|
|
81795
|
-
const compatibilityDate$
|
|
81796
|
-
const metadata$
|
|
81667
|
+
const type$M = "com.shwfed.actions.button.navigation";
|
|
81668
|
+
const compatibilityDate$M = "2026-04-21";
|
|
81669
|
+
const metadata$M = {
|
|
81797
81670
|
name: "导航",
|
|
81798
81671
|
icon: "fluent:link-20-regular"
|
|
81799
81672
|
};
|
|
81800
81673
|
const Mode = Literal2("_self", "_blank");
|
|
81801
|
-
function schema$
|
|
81674
|
+
function schema$M(configure) {
|
|
81802
81675
|
const CelUrl = Expression({ configure, resultType: "string" });
|
|
81803
81676
|
return Struct({
|
|
81804
|
-
type: Literal2(type$
|
|
81805
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
81677
|
+
type: Literal2(type$M),
|
|
81678
|
+
compatibilityDate: Literal2(compatibilityDate$M),
|
|
81806
81679
|
url: CelUrl.annotations({
|
|
81807
81680
|
title: "链接",
|
|
81808
81681
|
description: "点击后将打开的链接,返回 `string`"
|
|
@@ -81818,11 +81691,138 @@ function schema$L(configure) {
|
|
|
81818
81691
|
}
|
|
81819
81692
|
const __vite_glob_0_3$3 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
81820
81693
|
__proto__: null,
|
|
81821
|
-
compatibilityDate: compatibilityDate$
|
|
81822
|
-
metadata: metadata$
|
|
81823
|
-
schema: schema$
|
|
81824
|
-
type: type$
|
|
81694
|
+
compatibilityDate: compatibilityDate$M,
|
|
81695
|
+
metadata: metadata$M,
|
|
81696
|
+
schema: schema$M,
|
|
81697
|
+
type: type$M
|
|
81825
81698
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
81699
|
+
const TrackCount = Number$.pipe(int(), positive());
|
|
81700
|
+
const GridCoord = Number$.pipe(int(), positive());
|
|
81701
|
+
const Corner = Tuple(GridCoord, GridCoord).annotations({
|
|
81702
|
+
title: "Corner",
|
|
81703
|
+
description: "[x, y] 网格线号(1 基)"
|
|
81704
|
+
});
|
|
81705
|
+
const Area = Tuple(Corner, Corner).pipe(filter((a) => {
|
|
81706
|
+
if (a[1][0] <= a[0][0]) return "右下列线必须大于左上列线";
|
|
81707
|
+
if (a[1][1] <= a[0][1]) return "右下行线必须大于左上行线";
|
|
81708
|
+
return true;
|
|
81709
|
+
})).annotations({
|
|
81710
|
+
title: "Area",
|
|
81711
|
+
description: "矩形区域:`[[x1, y1], [x2, y2]]`,左上 + 右下对角(终止线不含)"
|
|
81712
|
+
});
|
|
81713
|
+
const Align$1 = Literal2("start", "center", "end", "stretch").annotations({
|
|
81714
|
+
title: "Align",
|
|
81715
|
+
description: "网格项在单轴上的对齐方式;缺省等同于 stretch"
|
|
81716
|
+
});
|
|
81717
|
+
const Placement = Struct({
|
|
81718
|
+
area: Area,
|
|
81719
|
+
h: optional(Align$1.annotations({ title: "水平对齐", description: "水平轴对齐(justify-self)" })),
|
|
81720
|
+
v: optional(Align$1.annotations({ title: "垂直对齐", description: "垂直轴对齐(align-self)" }))
|
|
81721
|
+
}).annotations({
|
|
81722
|
+
title: "Placement",
|
|
81723
|
+
description: "块在某一布局中的位置与对齐"
|
|
81724
|
+
});
|
|
81725
|
+
const Layout = Struct({
|
|
81726
|
+
columns: TrackCount.annotations({
|
|
81727
|
+
title: "列数",
|
|
81728
|
+
description: "总列数。每列等宽,渲染时展开为 `repeat(N, minmax(0, 1fr))` — 列会收缩以适配容器宽度"
|
|
81729
|
+
}),
|
|
81730
|
+
rows: optional(TrackCount.annotations({
|
|
81731
|
+
title: "行数",
|
|
81732
|
+
description: "总行数。每行等权,渲染时展开为 `repeat(N, minmax(0, 1fr))` — 在自然高度容器内等同于 `auto`"
|
|
81733
|
+
})),
|
|
81734
|
+
gap: optional(Number$.pipe(int(), nonNegative()).annotations({
|
|
81735
|
+
title: "网格间距",
|
|
81736
|
+
description: "非负整数;实际 CSS gap 为 `calc(n * 0.25rem)`。显式 `0` 表示无间距,未设置则取默认间距 4(即 `1rem`)"
|
|
81737
|
+
})),
|
|
81738
|
+
style: optional(String$.annotations({
|
|
81739
|
+
title: "容器样式",
|
|
81740
|
+
description: "容器的内联样式字符串"
|
|
81741
|
+
})),
|
|
81742
|
+
placements: Record({
|
|
81743
|
+
key: String$,
|
|
81744
|
+
value: Placement
|
|
81745
|
+
}).annotations({
|
|
81746
|
+
title: "位置",
|
|
81747
|
+
description: "以块 `id` 为键的位置映射;未映射的块在该布局中不渲染"
|
|
81748
|
+
})
|
|
81749
|
+
}).annotations({
|
|
81750
|
+
title: "Layout",
|
|
81751
|
+
description: "一套完整的网格布局"
|
|
81752
|
+
});
|
|
81753
|
+
function configureMedia(configure) {
|
|
81754
|
+
return (env) => {
|
|
81755
|
+
env.registerFunction(
|
|
81756
|
+
"media(string): bool",
|
|
81757
|
+
(_self, q) => typeof window !== "undefined" && window.matchMedia(q).matches,
|
|
81758
|
+
{ description: "匹配 CSS 媒体查询,等价于 `window.matchMedia(q).matches`;SSR 上下文返回 `false`" }
|
|
81759
|
+
);
|
|
81760
|
+
configure(env);
|
|
81761
|
+
};
|
|
81762
|
+
}
|
|
81763
|
+
function LayoutSet(configure) {
|
|
81764
|
+
return Struct({
|
|
81765
|
+
name: String$.annotations({
|
|
81766
|
+
title: "名称",
|
|
81767
|
+
description: "编辑器中区分不同布局的内部名称"
|
|
81768
|
+
}),
|
|
81769
|
+
media: optional(Expression({
|
|
81770
|
+
configure: configureMedia(configure),
|
|
81771
|
+
resultType: "bool"
|
|
81772
|
+
}).annotations({
|
|
81773
|
+
title: "匹配条件",
|
|
81774
|
+
description: "返回 `bool` 的 CEL 表达式,挂载时一次性求值;空表示无条件匹配。可用 `media('(min-width: 1024px)')` 包装 CSS 媒体查询。"
|
|
81775
|
+
})),
|
|
81776
|
+
layout: Layout
|
|
81777
|
+
}).annotations({
|
|
81778
|
+
title: "LayoutSet",
|
|
81779
|
+
description: "带匹配条件的布局集合项"
|
|
81780
|
+
});
|
|
81781
|
+
}
|
|
81782
|
+
function validatePlacements(items2, layouts, label) {
|
|
81783
|
+
const ids2 = new Set(items2.map((it) => it.id));
|
|
81784
|
+
for (const [i, set3] of layouts.entries()) {
|
|
81785
|
+
const nCols = set3.layout.columns;
|
|
81786
|
+
const nRows = set3.layout.rows;
|
|
81787
|
+
for (const [id2, placement] of Object.entries(set3.layout.placements)) {
|
|
81788
|
+
if (!ids2.has(id2)) {
|
|
81789
|
+
return `布局 #${i} (${set3.name}) 引用了不存在的${label} id: ${id2}`;
|
|
81790
|
+
}
|
|
81791
|
+
const [, [x2, y2]] = placement.area;
|
|
81792
|
+
if (x2 > nCols + 1) {
|
|
81793
|
+
return `布局 #${i} (${set3.name}) ${label} ${id2} 的列区域超出列定义(共 ${nCols} 列)`;
|
|
81794
|
+
}
|
|
81795
|
+
if (nRows !== void 0 && y2 > nRows + 1) {
|
|
81796
|
+
return `布局 #${i} (${set3.name}) ${label} ${id2} 的行区域超出行定义(共 ${nRows} 行)`;
|
|
81797
|
+
}
|
|
81798
|
+
}
|
|
81799
|
+
}
|
|
81800
|
+
return true;
|
|
81801
|
+
}
|
|
81802
|
+
function Slot(BlockSchemaUnion, configure) {
|
|
81803
|
+
return Struct({
|
|
81804
|
+
blocks: Array$(BlockSchemaUnion).annotations({
|
|
81805
|
+
title: "块",
|
|
81806
|
+
description: "块列表;未绑定到任何布局的块不会被渲染"
|
|
81807
|
+
}),
|
|
81808
|
+
layouts: Array$(LayoutSet(configure)).pipe(minItems(1)).annotations({
|
|
81809
|
+
title: "布局",
|
|
81810
|
+
description: "按顺序排列的布局集合;挂载时按序求值各项 `media` CEL 表达式,使用第一个为 `true` 的布局(全部不匹配时回退到最后一项)"
|
|
81811
|
+
})
|
|
81812
|
+
}).pipe(filter((slot) => {
|
|
81813
|
+
const items2 = slot.blocks.map((b) => ({ id: b.id }));
|
|
81814
|
+
return validatePlacements(items2, slot.layouts, "块");
|
|
81815
|
+
})).annotations({
|
|
81816
|
+
title: "Slot",
|
|
81817
|
+
description: "块与布局的组合:定义一组块以及它们在不同布局下的位置"
|
|
81818
|
+
});
|
|
81819
|
+
}
|
|
81820
|
+
function defaultSlot() {
|
|
81821
|
+
return {
|
|
81822
|
+
blocks: [],
|
|
81823
|
+
layouts: [{ name: "默认", layout: { columns: 1, placements: {} } }]
|
|
81824
|
+
};
|
|
81825
|
+
}
|
|
81826
81826
|
const blockRefCache = /* @__PURE__ */ new WeakMap();
|
|
81827
81827
|
function registerBlockRef(configure, ref2) {
|
|
81828
81828
|
blockRefCache.set(configure, ref2);
|
|
@@ -81830,9 +81830,9 @@ function registerBlockRef(configure, ref2) {
|
|
|
81830
81830
|
function lookupBlockRef(configure) {
|
|
81831
81831
|
return blockRefCache.get(configure);
|
|
81832
81832
|
}
|
|
81833
|
-
const type$
|
|
81834
|
-
const compatibilityDate$
|
|
81835
|
-
const metadata$
|
|
81833
|
+
const type$L = "com.shwfed.actions.button.modal.layout";
|
|
81834
|
+
const compatibilityDate$L = "2026-05-11";
|
|
81835
|
+
const metadata$L = {
|
|
81836
81836
|
name: "模态窗口",
|
|
81837
81837
|
icon: "fluent:window-edit-20-regular",
|
|
81838
81838
|
drillable: true,
|
|
@@ -81843,12 +81843,12 @@ const metadata$K = {
|
|
|
81843
81843
|
const CssLength = String$.pipe(
|
|
81844
81844
|
filter((s) => s.trim().length > 0 || "不能为空字符串")
|
|
81845
81845
|
);
|
|
81846
|
-
function schema$
|
|
81846
|
+
function schema$L(configure) {
|
|
81847
81847
|
const blockUnion = lookupBlockRef(configure) ?? Unknown;
|
|
81848
81848
|
const ModalSlot = Slot(blockUnion, configure);
|
|
81849
81849
|
return Struct({
|
|
81850
|
-
type: Literal2(type$
|
|
81851
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
81850
|
+
type: Literal2(type$L),
|
|
81851
|
+
compatibilityDate: Literal2(compatibilityDate$L),
|
|
81852
81852
|
modalTitle: optional(Locale.annotations({
|
|
81853
81853
|
title: "弹窗标题",
|
|
81854
81854
|
description: "弹窗顶部展示的本地化标题,支持行内 Markdown;不填则回退使用按钮自身的名称"
|
|
@@ -81877,22 +81877,22 @@ function defaultBody$6() {
|
|
|
81877
81877
|
}
|
|
81878
81878
|
const __vite_glob_0_4$3 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
81879
81879
|
__proto__: null,
|
|
81880
|
-
compatibilityDate: compatibilityDate$
|
|
81880
|
+
compatibilityDate: compatibilityDate$L,
|
|
81881
81881
|
defaultBody: defaultBody$6,
|
|
81882
|
-
metadata: metadata$
|
|
81883
|
-
schema: schema$
|
|
81884
|
-
type: type$
|
|
81882
|
+
metadata: metadata$L,
|
|
81883
|
+
schema: schema$L,
|
|
81884
|
+
type: type$L
|
|
81885
81885
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
81886
|
-
const type$
|
|
81887
|
-
const compatibilityDate$
|
|
81888
|
-
const metadata$
|
|
81886
|
+
const type$K = "com.shwfed.actions.button.event.dispatch";
|
|
81887
|
+
const compatibilityDate$K = "2026-05-15";
|
|
81888
|
+
const metadata$K = {
|
|
81889
81889
|
name: "触发事件",
|
|
81890
81890
|
icon: "fluent:flash-20-regular"
|
|
81891
81891
|
};
|
|
81892
|
-
function schema$
|
|
81892
|
+
function schema$K(_configure) {
|
|
81893
81893
|
return Struct({
|
|
81894
|
-
type: Literal2(type$
|
|
81895
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
81894
|
+
type: Literal2(type$K),
|
|
81895
|
+
compatibilityDate: Literal2(compatibilityDate$K),
|
|
81896
81896
|
// This button's entire behaviour: the op-requests it bubbles up the
|
|
81897
81897
|
// component tree on click. Stored on the button itself — there is no
|
|
81898
81898
|
// host-level trigger field any more.
|
|
@@ -81903,14 +81903,14 @@ function schema$J(_configure) {
|
|
|
81903
81903
|
}
|
|
81904
81904
|
const __vite_glob_0_5$3 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
81905
81905
|
__proto__: null,
|
|
81906
|
-
compatibilityDate: compatibilityDate$
|
|
81907
|
-
metadata: metadata$
|
|
81908
|
-
schema: schema$
|
|
81909
|
-
type: type$
|
|
81906
|
+
compatibilityDate: compatibilityDate$K,
|
|
81907
|
+
metadata: metadata$K,
|
|
81908
|
+
schema: schema$K,
|
|
81909
|
+
type: type$K
|
|
81910
81910
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
81911
|
-
const type$
|
|
81912
|
-
const compatibilityDate$
|
|
81913
|
-
const metadata$
|
|
81911
|
+
const type$J = "com.shwfed.actions.button.http.download";
|
|
81912
|
+
const compatibilityDate$J = "2026-05-21";
|
|
81913
|
+
const metadata$J = {
|
|
81914
81914
|
name: "下载文件",
|
|
81915
81915
|
icon: "fluent:arrow-download-20-regular"
|
|
81916
81916
|
};
|
|
@@ -81925,13 +81925,13 @@ function configureWithJson$2(configure) {
|
|
|
81925
81925
|
env.registerVariable("json", JSON_VAR$2.type, { description: JSON_VAR$2.description });
|
|
81926
81926
|
};
|
|
81927
81927
|
}
|
|
81928
|
-
function schema$
|
|
81928
|
+
function schema$J(configure) {
|
|
81929
81929
|
const CelHttpRequest = Expression({ configure, resultType: "HttpRequest" });
|
|
81930
81930
|
const CelDownloadRequest = Expression({ configure: configureWithJson$2(configure), resultType: "HttpRequest" });
|
|
81931
81931
|
const CelMessage = Expression({ configure: configureWithJson$2(configure), resultType: "string" });
|
|
81932
81932
|
return Struct({
|
|
81933
|
-
type: Literal2(type$
|
|
81934
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
81933
|
+
type: Literal2(type$J),
|
|
81934
|
+
compatibilityDate: Literal2(compatibilityDate$J),
|
|
81935
81935
|
template: Struct({
|
|
81936
81936
|
request: CelHttpRequest.annotations({
|
|
81937
81937
|
title: "请求",
|
|
@@ -81994,25 +81994,25 @@ function schema$I(configure) {
|
|
|
81994
81994
|
const __vite_glob_0_6$2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
81995
81995
|
__proto__: null,
|
|
81996
81996
|
JSON_VAR: JSON_VAR$2,
|
|
81997
|
-
compatibilityDate: compatibilityDate$
|
|
81998
|
-
metadata: metadata$
|
|
81999
|
-
schema: schema$
|
|
82000
|
-
type: type$
|
|
81997
|
+
compatibilityDate: compatibilityDate$J,
|
|
81998
|
+
metadata: metadata$J,
|
|
81999
|
+
schema: schema$J,
|
|
82000
|
+
type: type$J
|
|
82001
82001
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
82002
|
-
const type$
|
|
82003
|
-
const compatibilityDate$
|
|
82004
|
-
const metadata$
|
|
82002
|
+
const type$I = "com.shwfed.actions.item.markdown";
|
|
82003
|
+
const compatibilityDate$I = "2026-05-21";
|
|
82004
|
+
const metadata$I = {
|
|
82005
82005
|
name: "内联 Markdown",
|
|
82006
82006
|
icon: "fluent:markdown-20-regular"
|
|
82007
82007
|
};
|
|
82008
|
-
function schema$
|
|
82008
|
+
function schema$I(_configure) {
|
|
82009
82009
|
return Struct({
|
|
82010
82010
|
id: UUID.annotations({ description: "Markdown 项唯一标识" }),
|
|
82011
82011
|
// Present when the item sits at group level; absent when it lives as a
|
|
82012
82012
|
// dropdown sub-item (the parent is the dropdown itself).
|
|
82013
82013
|
groupId: optional(UUID.annotations({ description: "所属按钮组标识" })),
|
|
82014
|
-
type: Literal2(type$
|
|
82015
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
82014
|
+
type: Literal2(type$I),
|
|
82015
|
+
compatibilityDate: Literal2(compatibilityDate$I),
|
|
82016
82016
|
name: String$.annotations({
|
|
82017
82017
|
title: "内部名称",
|
|
82018
82018
|
description: "仅用于编辑器内识别该 Markdown 项,不会展示给最终用户"
|
|
@@ -82028,10 +82028,10 @@ function schema$H(_configure) {
|
|
|
82028
82028
|
}
|
|
82029
82029
|
const __vite_glob_3_0 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
82030
82030
|
__proto__: null,
|
|
82031
|
-
compatibilityDate: compatibilityDate$
|
|
82032
|
-
metadata: metadata$
|
|
82033
|
-
schema: schema$
|
|
82034
|
-
type: type$
|
|
82031
|
+
compatibilityDate: compatibilityDate$I,
|
|
82032
|
+
metadata: metadata$I,
|
|
82033
|
+
schema: schema$I,
|
|
82034
|
+
type: type$I
|
|
82035
82035
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
82036
82036
|
function defineRegistry(options) {
|
|
82037
82037
|
const {
|
|
@@ -82175,7 +82175,9 @@ const BUTTONS = registry$3.ENTRIES.map((e) => ({
|
|
|
82175
82175
|
...e.deprecationNote !== void 0 ? { deprecationNote: e.deprecationNote } : {}
|
|
82176
82176
|
}));
|
|
82177
82177
|
function allButtonSchemas(configure) {
|
|
82178
|
-
return BUTTONS.map((entry) => entry.schema(configure)
|
|
82178
|
+
return BUTTONS.map((entry) => entry.schema(configure).annotations({
|
|
82179
|
+
identifier: `${entry.type}@${entry.compatibilityDate}`
|
|
82180
|
+
}));
|
|
82179
82181
|
}
|
|
82180
82182
|
const itemSchemaModules = /* @__PURE__ */ Object.assign({
|
|
82181
82183
|
"../items/2026-05-21/com.shwfed.actions.item.markdown/schema.ts": __vite_glob_3_0
|
|
@@ -82214,7 +82216,9 @@ const ITEMS = itemRegistry.ENTRIES.map((e) => ({
|
|
|
82214
82216
|
runtime: e.runtime
|
|
82215
82217
|
}));
|
|
82216
82218
|
function allItemSchemas(configure) {
|
|
82217
|
-
return ITEMS.map((entry) => entry.schema(configure)
|
|
82219
|
+
return ITEMS.map((entry) => entry.schema(configure).annotations({
|
|
82220
|
+
identifier: `${entry.type}@${entry.compatibilityDate}`
|
|
82221
|
+
}));
|
|
82218
82222
|
}
|
|
82219
82223
|
const KIND$3 = "shwfed.component.action";
|
|
82220
82224
|
const Variant = Literal2("default", "primary", "destructive", "ghost", "link").annotations({
|
|
@@ -82396,20 +82400,20 @@ function defaultActionsConfig() {
|
|
|
82396
82400
|
items: []
|
|
82397
82401
|
};
|
|
82398
82402
|
}
|
|
82399
|
-
const type$
|
|
82400
|
-
const compatibilityDate$
|
|
82401
|
-
const metadata$
|
|
82403
|
+
const type$H = "com.shwfed.block.actions";
|
|
82404
|
+
const compatibilityDate$H = "2026-05-06";
|
|
82405
|
+
const metadata$H = {
|
|
82402
82406
|
name: "操作按钮",
|
|
82403
82407
|
icon: "fluent:cursor-click-20-regular",
|
|
82404
82408
|
w: { initial: 8, min: 8, max: Infinity },
|
|
82405
82409
|
h: { initial: 2, min: 2, max: Infinity }
|
|
82406
82410
|
};
|
|
82407
|
-
function schema$
|
|
82411
|
+
function schema$H(configure, _blockRef) {
|
|
82408
82412
|
const ActionsSchema = ActionsConfig(configure);
|
|
82409
82413
|
return Struct({
|
|
82410
82414
|
id: UUID.annotations({ description: "块唯一标识" }),
|
|
82411
|
-
type: tag(type$
|
|
82412
|
-
compatibilityDate: tag(compatibilityDate$
|
|
82415
|
+
type: tag(type$H),
|
|
82416
|
+
compatibilityDate: tag(compatibilityDate$H),
|
|
82413
82417
|
actions: ActionsSchema.annotations({
|
|
82414
82418
|
title: "操作按钮配置",
|
|
82415
82419
|
description: "内嵌的 Actions 组件配置"
|
|
@@ -82424,11 +82428,11 @@ function defaultBody$5() {
|
|
|
82424
82428
|
}
|
|
82425
82429
|
const __vite_glob_0_0$2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
82426
82430
|
__proto__: null,
|
|
82427
|
-
compatibilityDate: compatibilityDate$
|
|
82431
|
+
compatibilityDate: compatibilityDate$H,
|
|
82428
82432
|
defaultBody: defaultBody$5,
|
|
82429
|
-
metadata: metadata$
|
|
82430
|
-
schema: schema$
|
|
82431
|
-
type: type$
|
|
82433
|
+
metadata: metadata$H,
|
|
82434
|
+
schema: schema$H,
|
|
82435
|
+
type: type$H
|
|
82432
82436
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
82433
82437
|
function commonFieldFields(configure) {
|
|
82434
82438
|
const CelBool = Expression({ configure, resultType: "bool" });
|
|
@@ -82475,18 +82479,18 @@ function derivedField(configure, resultType) {
|
|
|
82475
82479
|
})
|
|
82476
82480
|
);
|
|
82477
82481
|
}
|
|
82478
|
-
const type$
|
|
82479
|
-
const compatibilityDate$
|
|
82480
|
-
const metadata$
|
|
82482
|
+
const type$G = "com.shwfed.form.field.markdown";
|
|
82483
|
+
const compatibilityDate$G = "2026-04-22";
|
|
82484
|
+
const metadata$G = {
|
|
82481
82485
|
name: "Markdown",
|
|
82482
82486
|
icon: "fluent:markdown-20-regular",
|
|
82483
82487
|
w: { initial: 8, min: 2, max: Infinity },
|
|
82484
82488
|
h: { initial: 2, min: 2, max: Infinity }
|
|
82485
82489
|
};
|
|
82486
|
-
function schema$
|
|
82490
|
+
function schema$G(configure) {
|
|
82487
82491
|
return Struct({
|
|
82488
|
-
type: Literal2(type$
|
|
82489
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
82492
|
+
type: Literal2(type$G),
|
|
82493
|
+
compatibilityDate: Literal2(compatibilityDate$G),
|
|
82490
82494
|
...commonFieldFields(configure),
|
|
82491
82495
|
content: Locale.annotations({
|
|
82492
82496
|
title: "内容",
|
|
@@ -82499,24 +82503,24 @@ function schema$F(configure) {
|
|
|
82499
82503
|
}
|
|
82500
82504
|
const __vite_glob_0_0$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
82501
82505
|
__proto__: null,
|
|
82502
|
-
compatibilityDate: compatibilityDate$
|
|
82503
|
-
metadata: metadata$
|
|
82504
|
-
schema: schema$
|
|
82505
|
-
type: type$
|
|
82506
|
+
compatibilityDate: compatibilityDate$G,
|
|
82507
|
+
metadata: metadata$G,
|
|
82508
|
+
schema: schema$G,
|
|
82509
|
+
type: type$G
|
|
82506
82510
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
82507
|
-
const type$
|
|
82508
|
-
const compatibilityDate$
|
|
82509
|
-
const metadata$
|
|
82511
|
+
const type$F = "com.shwfed.form.field.text";
|
|
82512
|
+
const compatibilityDate$F = "2026-04-22";
|
|
82513
|
+
const metadata$F = {
|
|
82510
82514
|
name: "文本输入",
|
|
82511
82515
|
icon: "fluent:text-field-20-regular",
|
|
82512
82516
|
w: { initial: 8, min: 4, max: Infinity },
|
|
82513
82517
|
h: { initial: 2, min: 2, max: 2 }
|
|
82514
82518
|
};
|
|
82515
|
-
function schema$
|
|
82519
|
+
function schema$F(configure) {
|
|
82516
82520
|
const CelBool = Expression({ configure, resultType: "bool" });
|
|
82517
82521
|
return Struct({
|
|
82518
|
-
type: Literal2(type$
|
|
82519
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
82522
|
+
type: Literal2(type$F),
|
|
82523
|
+
compatibilityDate: Literal2(compatibilityDate$F),
|
|
82520
82524
|
...commonFieldFields(configure),
|
|
82521
82525
|
label: optional(Locale.annotations({
|
|
82522
82526
|
title: "标签",
|
|
@@ -82551,24 +82555,24 @@ function schema$E(configure) {
|
|
|
82551
82555
|
}
|
|
82552
82556
|
const __vite_glob_0_1$2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
82553
82557
|
__proto__: null,
|
|
82554
|
-
compatibilityDate: compatibilityDate$
|
|
82555
|
-
metadata: metadata$
|
|
82556
|
-
schema: schema$
|
|
82557
|
-
type: type$
|
|
82558
|
+
compatibilityDate: compatibilityDate$F,
|
|
82559
|
+
metadata: metadata$F,
|
|
82560
|
+
schema: schema$F,
|
|
82561
|
+
type: type$F
|
|
82558
82562
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
82559
|
-
const type$
|
|
82560
|
-
const compatibilityDate$
|
|
82561
|
-
const metadata$
|
|
82563
|
+
const type$E = "com.shwfed.form.field.textarea";
|
|
82564
|
+
const compatibilityDate$E = "2026-04-22";
|
|
82565
|
+
const metadata$E = {
|
|
82562
82566
|
name: "多行文本输入",
|
|
82563
82567
|
icon: "fluent:text-description-20-regular",
|
|
82564
82568
|
w: { initial: 8, min: 4, max: Infinity },
|
|
82565
82569
|
h: { initial: 3, min: 2, max: Infinity, grow: true }
|
|
82566
82570
|
};
|
|
82567
|
-
function schema$
|
|
82571
|
+
function schema$E(configure) {
|
|
82568
82572
|
const CelBool = Expression({ configure, resultType: "bool" });
|
|
82569
82573
|
return Struct({
|
|
82570
|
-
type: Literal2(type$
|
|
82571
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
82574
|
+
type: Literal2(type$E),
|
|
82575
|
+
compatibilityDate: Literal2(compatibilityDate$E),
|
|
82572
82576
|
...commonFieldFields(configure),
|
|
82573
82577
|
label: optional(Locale.annotations({
|
|
82574
82578
|
title: "标签",
|
|
@@ -82607,25 +82611,25 @@ function schema$D(configure) {
|
|
|
82607
82611
|
}
|
|
82608
82612
|
const __vite_glob_0_2$2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
82609
82613
|
__proto__: null,
|
|
82610
|
-
compatibilityDate: compatibilityDate$
|
|
82611
|
-
metadata: metadata$
|
|
82612
|
-
schema: schema$
|
|
82613
|
-
type: type$
|
|
82614
|
+
compatibilityDate: compatibilityDate$E,
|
|
82615
|
+
metadata: metadata$E,
|
|
82616
|
+
schema: schema$E,
|
|
82617
|
+
type: type$E
|
|
82614
82618
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
82615
|
-
const type$
|
|
82616
|
-
const compatibilityDate$
|
|
82617
|
-
const metadata$
|
|
82619
|
+
const type$D = "com.shwfed.form.field.actions";
|
|
82620
|
+
const compatibilityDate$D = "2026-04-24";
|
|
82621
|
+
const metadata$D = {
|
|
82618
82622
|
name: "操作",
|
|
82619
82623
|
icon: "fluent:cursor-click-20-regular",
|
|
82620
82624
|
w: { initial: 8, min: 4, max: Infinity },
|
|
82621
82625
|
h: { initial: 2, min: 2, max: Infinity }
|
|
82622
82626
|
};
|
|
82623
|
-
function schema$
|
|
82627
|
+
function schema$D(configure) {
|
|
82624
82628
|
const { fields: actionFields } = ActionSchemaFields(configure);
|
|
82625
82629
|
const { size: _size, groups, items: items2, ...rest } = actionFields;
|
|
82626
82630
|
return Struct({
|
|
82627
|
-
type: Literal2(type$
|
|
82628
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
82631
|
+
type: Literal2(type$D),
|
|
82632
|
+
compatibilityDate: Literal2(compatibilityDate$D),
|
|
82629
82633
|
...commonFieldFields(configure),
|
|
82630
82634
|
...rest,
|
|
82631
82635
|
// Form's add-field factory creates new fields with only { type, compatibilityDate, id },
|
|
@@ -82639,14 +82643,14 @@ function schema$C(configure) {
|
|
|
82639
82643
|
}
|
|
82640
82644
|
const __vite_glob_0_3$2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
82641
82645
|
__proto__: null,
|
|
82642
|
-
compatibilityDate: compatibilityDate$
|
|
82643
|
-
metadata: metadata$
|
|
82644
|
-
schema: schema$
|
|
82645
|
-
type: type$
|
|
82646
|
+
compatibilityDate: compatibilityDate$D,
|
|
82647
|
+
metadata: metadata$D,
|
|
82648
|
+
schema: schema$D,
|
|
82649
|
+
type: type$D
|
|
82646
82650
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
82647
|
-
const type$
|
|
82648
|
-
const compatibilityDate$
|
|
82649
|
-
const metadata$
|
|
82651
|
+
const type$C = "com.shwfed.form.field.combobox.single";
|
|
82652
|
+
const compatibilityDate$C = "2026-04-24";
|
|
82653
|
+
const metadata$C = {
|
|
82650
82654
|
name: "下拉单选",
|
|
82651
82655
|
icon: "fluent:chevron-down-20-regular",
|
|
82652
82656
|
w: { initial: 8, min: 4, max: Infinity },
|
|
@@ -82659,14 +82663,14 @@ function configureWithOption$1(configure) {
|
|
|
82659
82663
|
};
|
|
82660
82664
|
}
|
|
82661
82665
|
const isListType$2 = (actual) => actual === "dyn" || actual.startsWith("list");
|
|
82662
|
-
function schema$
|
|
82666
|
+
function schema$C(configure) {
|
|
82663
82667
|
const CelBool = Expression({ configure, resultType: "bool" });
|
|
82664
82668
|
const CelOptions = Expression({ configure, resultType: isListType$2 });
|
|
82665
82669
|
const CelOptionValue = Expression({ configure: configureWithOption$1(configure), resultType: "dyn" });
|
|
82666
82670
|
const LocaleOptionLabel = LocaleMarkdown({ configure: configureWithOption$1(configure) });
|
|
82667
82671
|
return Struct({
|
|
82668
|
-
type: Literal2(type$
|
|
82669
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
82672
|
+
type: Literal2(type$C),
|
|
82673
|
+
compatibilityDate: Literal2(compatibilityDate$C),
|
|
82670
82674
|
...commonFieldFields(configure),
|
|
82671
82675
|
label: optional(Locale.annotations({
|
|
82672
82676
|
title: "标签",
|
|
@@ -82713,14 +82717,14 @@ function schema$B(configure) {
|
|
|
82713
82717
|
}
|
|
82714
82718
|
const __vite_glob_0_4$2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
82715
82719
|
__proto__: null,
|
|
82716
|
-
compatibilityDate: compatibilityDate$
|
|
82717
|
-
metadata: metadata$
|
|
82718
|
-
schema: schema$
|
|
82719
|
-
type: type$
|
|
82720
|
+
compatibilityDate: compatibilityDate$C,
|
|
82721
|
+
metadata: metadata$C,
|
|
82722
|
+
schema: schema$C,
|
|
82723
|
+
type: type$C
|
|
82720
82724
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
82721
|
-
const type$
|
|
82722
|
-
const compatibilityDate$
|
|
82723
|
-
const metadata$
|
|
82725
|
+
const type$B = "com.shwfed.form.field.date";
|
|
82726
|
+
const compatibilityDate$B = "2026-04-27";
|
|
82727
|
+
const metadata$B = {
|
|
82724
82728
|
name: "日期",
|
|
82725
82729
|
icon: "fluent:calendar-ltr-20-regular",
|
|
82726
82730
|
w: { initial: 8, min: 4, max: Infinity },
|
|
@@ -82742,12 +82746,12 @@ function presetSchema$3(configure) {
|
|
|
82742
82746
|
title: "DateFieldPreset"
|
|
82743
82747
|
});
|
|
82744
82748
|
}
|
|
82745
|
-
function schema$
|
|
82749
|
+
function schema$B(configure) {
|
|
82746
82750
|
const CelBool = Expression({ configure, resultType: "bool" });
|
|
82747
82751
|
const Preset = presetSchema$3(configure);
|
|
82748
82752
|
return Struct({
|
|
82749
|
-
type: Literal2(type$
|
|
82750
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
82753
|
+
type: Literal2(type$B),
|
|
82754
|
+
compatibilityDate: Literal2(compatibilityDate$B),
|
|
82751
82755
|
...commonFieldFields(configure),
|
|
82752
82756
|
label: optional(Locale.annotations({
|
|
82753
82757
|
title: "标签",
|
|
@@ -82794,14 +82798,14 @@ function schema$A(configure) {
|
|
|
82794
82798
|
}
|
|
82795
82799
|
const __vite_glob_0_5$2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
82796
82800
|
__proto__: null,
|
|
82797
|
-
compatibilityDate: compatibilityDate$
|
|
82798
|
-
metadata: metadata$
|
|
82801
|
+
compatibilityDate: compatibilityDate$B,
|
|
82802
|
+
metadata: metadata$B,
|
|
82799
82803
|
presetSchema: presetSchema$3,
|
|
82800
|
-
schema: schema$
|
|
82801
|
-
type: type$
|
|
82804
|
+
schema: schema$B,
|
|
82805
|
+
type: type$B
|
|
82802
82806
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
82803
|
-
const type$
|
|
82804
|
-
const compatibilityDate$
|
|
82807
|
+
const type$A = "com.shwfed.form.field.daterange";
|
|
82808
|
+
const compatibilityDate$A = "2026-04-27";
|
|
82805
82809
|
const BindingPath$3 = String$.pipe(minLength(1));
|
|
82806
82810
|
const SplitBinding$3 = Tuple(BindingPath$3, BindingPath$3).pipe(
|
|
82807
82811
|
filter(([a, b]) => a !== b, {
|
|
@@ -82812,7 +82816,7 @@ const bindingSchema$3 = Union2(BindingPath$3, SplitBinding$3).annotations({
|
|
|
82812
82816
|
title: "绑定路径",
|
|
82813
82817
|
description: "写入表单状态的 `dot-prop` 路径;填写单个路径时写入 `[start, end]` 字符串数组,例如 `event.range`;填写 `[起始路径, 结束路径]` 元组时分别写入两端;留空则为非受控字段"
|
|
82814
82818
|
});
|
|
82815
|
-
const metadata$
|
|
82819
|
+
const metadata$A = {
|
|
82816
82820
|
name: "日期范围",
|
|
82817
82821
|
icon: "fluent:calendar-arrow-right-20-regular",
|
|
82818
82822
|
w: { initial: 10, min: 10, max: Infinity },
|
|
@@ -82838,12 +82842,12 @@ function presetSchema$2(configure) {
|
|
|
82838
82842
|
title: "DateRangeFieldPreset"
|
|
82839
82843
|
});
|
|
82840
82844
|
}
|
|
82841
|
-
function schema$
|
|
82845
|
+
function schema$A(configure) {
|
|
82842
82846
|
const CelBool = Expression({ configure, resultType: "bool" });
|
|
82843
82847
|
const Preset = presetSchema$2(configure);
|
|
82844
82848
|
return Struct({
|
|
82845
|
-
type: Literal2(type$
|
|
82846
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
82849
|
+
type: Literal2(type$A),
|
|
82850
|
+
compatibilityDate: Literal2(compatibilityDate$A),
|
|
82847
82851
|
...commonFieldFields(configure),
|
|
82848
82852
|
label: optional(Locale.annotations({
|
|
82849
82853
|
title: "标签",
|
|
@@ -82897,21 +82901,21 @@ function schema$z(configure) {
|
|
|
82897
82901
|
description: "日期范围选择输入"
|
|
82898
82902
|
});
|
|
82899
82903
|
}
|
|
82900
|
-
function defaults$
|
|
82904
|
+
function defaults$7() {
|
|
82901
82905
|
return { rangeSeparatorIcon: "fluent:arrow-right-20-regular" };
|
|
82902
82906
|
}
|
|
82903
82907
|
const __vite_glob_0_6$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
82904
82908
|
__proto__: null,
|
|
82905
|
-
compatibilityDate: compatibilityDate$
|
|
82906
|
-
defaults: defaults$
|
|
82907
|
-
metadata: metadata$
|
|
82909
|
+
compatibilityDate: compatibilityDate$A,
|
|
82910
|
+
defaults: defaults$7,
|
|
82911
|
+
metadata: metadata$A,
|
|
82908
82912
|
presetSchema: presetSchema$2,
|
|
82909
|
-
schema: schema$
|
|
82910
|
-
type: type$
|
|
82913
|
+
schema: schema$A,
|
|
82914
|
+
type: type$A
|
|
82911
82915
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
82912
|
-
const type$
|
|
82913
|
-
const compatibilityDate$
|
|
82914
|
-
const metadata$
|
|
82916
|
+
const type$z = "com.shwfed.form.field.datetime";
|
|
82917
|
+
const compatibilityDate$z = "2026-04-27";
|
|
82918
|
+
const metadata$z = {
|
|
82915
82919
|
name: "日期时间",
|
|
82916
82920
|
icon: "fluent:calendar-clock-20-regular",
|
|
82917
82921
|
w: { initial: 8, min: 4, max: Infinity },
|
|
@@ -82943,12 +82947,12 @@ function presetSchema$1(configure) {
|
|
|
82943
82947
|
title: "DateTimeFieldPreset"
|
|
82944
82948
|
});
|
|
82945
82949
|
}
|
|
82946
|
-
function schema$
|
|
82950
|
+
function schema$z(configure) {
|
|
82947
82951
|
const CelBool = Expression({ configure, resultType: "bool" });
|
|
82948
82952
|
const Preset = presetSchema$1(configure);
|
|
82949
82953
|
return Struct({
|
|
82950
|
-
type: Literal2(type$
|
|
82951
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
82954
|
+
type: Literal2(type$z),
|
|
82955
|
+
compatibilityDate: Literal2(compatibilityDate$z),
|
|
82952
82956
|
...commonFieldFields(configure),
|
|
82953
82957
|
label: optional(Locale.annotations({
|
|
82954
82958
|
title: "标签",
|
|
@@ -83006,14 +83010,14 @@ const __vite_glob_0_7$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.d
|
|
|
83006
83010
|
HOUR_CYCLE_OPTIONS: HOUR_CYCLE_OPTIONS$3,
|
|
83007
83011
|
TIME_GRANULARITIES: TIME_GRANULARITIES$3,
|
|
83008
83012
|
TIME_GRANULARITY_OPTIONS: TIME_GRANULARITY_OPTIONS$3,
|
|
83009
|
-
compatibilityDate: compatibilityDate$
|
|
83010
|
-
metadata: metadata$
|
|
83013
|
+
compatibilityDate: compatibilityDate$z,
|
|
83014
|
+
metadata: metadata$z,
|
|
83011
83015
|
presetSchema: presetSchema$1,
|
|
83012
|
-
schema: schema$
|
|
83013
|
-
type: type$
|
|
83016
|
+
schema: schema$z,
|
|
83017
|
+
type: type$z
|
|
83014
83018
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
83015
|
-
const type$
|
|
83016
|
-
const compatibilityDate$
|
|
83019
|
+
const type$y = "com.shwfed.form.field.datetimerange";
|
|
83020
|
+
const compatibilityDate$y = "2026-04-27";
|
|
83017
83021
|
const BindingPath$2 = String$.pipe(minLength(1));
|
|
83018
83022
|
const SplitBinding$2 = Tuple(BindingPath$2, BindingPath$2).pipe(
|
|
83019
83023
|
filter(([a, b]) => a !== b, {
|
|
@@ -83024,7 +83028,7 @@ const bindingSchema$2 = Union2(BindingPath$2, SplitBinding$2).annotations({
|
|
|
83024
83028
|
title: "绑定路径",
|
|
83025
83029
|
description: "写入表单状态的 `dot-prop` 路径;填写单个路径时写入 `[start, end]` 字符串数组,例如 `event.range`;填写 `[起始路径, 结束路径]` 元组时分别写入两端;留空则为非受控字段"
|
|
83026
83030
|
});
|
|
83027
|
-
const metadata$
|
|
83031
|
+
const metadata$y = {
|
|
83028
83032
|
name: "日期时间范围",
|
|
83029
83033
|
icon: "fluent:calendar-clock-20-regular",
|
|
83030
83034
|
w: { initial: 14, min: 14, max: Infinity },
|
|
@@ -83060,12 +83064,12 @@ function presetSchema(configure) {
|
|
|
83060
83064
|
title: "DateTimeRangeFieldPreset"
|
|
83061
83065
|
});
|
|
83062
83066
|
}
|
|
83063
|
-
function schema$
|
|
83067
|
+
function schema$y(configure) {
|
|
83064
83068
|
const CelBool = Expression({ configure, resultType: "bool" });
|
|
83065
83069
|
const Preset = presetSchema(configure);
|
|
83066
83070
|
return Struct({
|
|
83067
|
-
type: Literal2(type$
|
|
83068
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
83071
|
+
type: Literal2(type$y),
|
|
83072
|
+
compatibilityDate: Literal2(compatibilityDate$y),
|
|
83069
83073
|
...commonFieldFields(configure),
|
|
83070
83074
|
label: optional(Locale.annotations({
|
|
83071
83075
|
title: "标签",
|
|
@@ -83127,7 +83131,7 @@ function schema$x(configure) {
|
|
|
83127
83131
|
description: "日期时间范围选择输入"
|
|
83128
83132
|
});
|
|
83129
83133
|
}
|
|
83130
|
-
function defaults$
|
|
83134
|
+
function defaults$6() {
|
|
83131
83135
|
return { rangeSeparatorIcon: "fluent:arrow-right-20-regular" };
|
|
83132
83136
|
}
|
|
83133
83137
|
const __vite_glob_0_8$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
@@ -83135,16 +83139,16 @@ const __vite_glob_0_8$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.d
|
|
|
83135
83139
|
HOUR_CYCLE_OPTIONS: HOUR_CYCLE_OPTIONS$2,
|
|
83136
83140
|
TIME_GRANULARITIES: TIME_GRANULARITIES$2,
|
|
83137
83141
|
TIME_GRANULARITY_OPTIONS: TIME_GRANULARITY_OPTIONS$2,
|
|
83138
|
-
compatibilityDate: compatibilityDate$
|
|
83139
|
-
defaults: defaults$
|
|
83140
|
-
metadata: metadata$
|
|
83142
|
+
compatibilityDate: compatibilityDate$y,
|
|
83143
|
+
defaults: defaults$6,
|
|
83144
|
+
metadata: metadata$y,
|
|
83141
83145
|
presetSchema,
|
|
83142
|
-
schema: schema$
|
|
83143
|
-
type: type$
|
|
83146
|
+
schema: schema$y,
|
|
83147
|
+
type: type$y
|
|
83144
83148
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
83145
|
-
const type$
|
|
83146
|
-
const compatibilityDate$
|
|
83147
|
-
const metadata$
|
|
83149
|
+
const type$x = "com.shwfed.form.field.time";
|
|
83150
|
+
const compatibilityDate$x = "2026-04-27";
|
|
83151
|
+
const metadata$x = {
|
|
83148
83152
|
name: "时间",
|
|
83149
83153
|
icon: "fluent:clock-20-regular",
|
|
83150
83154
|
w: { initial: 8, min: 4, max: Infinity },
|
|
@@ -83160,11 +83164,11 @@ const HOUR_CYCLE_OPTIONS$1 = [
|
|
|
83160
83164
|
{ value: 24, label: "24 小时制" },
|
|
83161
83165
|
{ value: 12, label: "12 小时制" }
|
|
83162
83166
|
];
|
|
83163
|
-
function schema$
|
|
83167
|
+
function schema$x(configure) {
|
|
83164
83168
|
const CelBool = Expression({ configure, resultType: "bool" });
|
|
83165
83169
|
return Struct({
|
|
83166
|
-
type: Literal2(type$
|
|
83167
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
83170
|
+
type: Literal2(type$x),
|
|
83171
|
+
compatibilityDate: Literal2(compatibilityDate$x),
|
|
83168
83172
|
...commonFieldFields(configure),
|
|
83169
83173
|
label: optional(Locale.annotations({
|
|
83170
83174
|
title: "标签",
|
|
@@ -83210,13 +83214,13 @@ const __vite_glob_0_9$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.d
|
|
|
83210
83214
|
HOUR_CYCLE_OPTIONS: HOUR_CYCLE_OPTIONS$1,
|
|
83211
83215
|
TIME_GRANULARITIES: TIME_GRANULARITIES$1,
|
|
83212
83216
|
TIME_GRANULARITY_OPTIONS: TIME_GRANULARITY_OPTIONS$1,
|
|
83213
|
-
compatibilityDate: compatibilityDate$
|
|
83214
|
-
metadata: metadata$
|
|
83215
|
-
schema: schema$
|
|
83216
|
-
type: type$
|
|
83217
|
+
compatibilityDate: compatibilityDate$x,
|
|
83218
|
+
metadata: metadata$x,
|
|
83219
|
+
schema: schema$x,
|
|
83220
|
+
type: type$x
|
|
83217
83221
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
83218
|
-
const type$
|
|
83219
|
-
const compatibilityDate$
|
|
83222
|
+
const type$w = "com.shwfed.form.field.timerange";
|
|
83223
|
+
const compatibilityDate$w = "2026-04-27";
|
|
83220
83224
|
const BindingPath$1 = String$.pipe(minLength(1));
|
|
83221
83225
|
const SplitBinding$1 = Tuple(BindingPath$1, BindingPath$1).pipe(
|
|
83222
83226
|
filter(([a, b]) => a !== b, {
|
|
@@ -83227,7 +83231,7 @@ const bindingSchema$1 = Union2(BindingPath$1, SplitBinding$1).annotations({
|
|
|
83227
83231
|
title: "绑定路径",
|
|
83228
83232
|
description: "写入表单状态的 `dot-prop` 路径;填写单个路径时写入 `[start, end]` 字符串数组,例如 `meeting.timeRange`;填写 `[起始路径, 结束路径]` 元组时分别写入两端;留空则为非受控字段"
|
|
83229
83233
|
});
|
|
83230
|
-
const metadata$
|
|
83234
|
+
const metadata$w = {
|
|
83231
83235
|
name: "时间范围",
|
|
83232
83236
|
icon: "fluent:clock-arrow-download-20-regular",
|
|
83233
83237
|
w: { initial: 14, min: 14, max: Infinity },
|
|
@@ -83243,11 +83247,11 @@ const HOUR_CYCLE_OPTIONS = [
|
|
|
83243
83247
|
{ value: 24, label: "24 小时制" },
|
|
83244
83248
|
{ value: 12, label: "12 小时制" }
|
|
83245
83249
|
];
|
|
83246
|
-
function schema$
|
|
83250
|
+
function schema$w(configure) {
|
|
83247
83251
|
const CelBool = Expression({ configure, resultType: "bool" });
|
|
83248
83252
|
return Struct({
|
|
83249
|
-
type: Literal2(type$
|
|
83250
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
83253
|
+
type: Literal2(type$w),
|
|
83254
|
+
compatibilityDate: Literal2(compatibilityDate$w),
|
|
83251
83255
|
...commonFieldFields(configure),
|
|
83252
83256
|
label: optional(Locale.annotations({
|
|
83253
83257
|
title: "标签",
|
|
@@ -83289,7 +83293,7 @@ function schema$v(configure) {
|
|
|
83289
83293
|
description: "时间范围选择输入"
|
|
83290
83294
|
});
|
|
83291
83295
|
}
|
|
83292
|
-
function defaults$
|
|
83296
|
+
function defaults$5() {
|
|
83293
83297
|
return { rangeSeparatorIcon: "fluent:arrow-right-20-regular" };
|
|
83294
83298
|
}
|
|
83295
83299
|
const __vite_glob_0_10$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
@@ -83297,26 +83301,26 @@ const __vite_glob_0_10$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.
|
|
|
83297
83301
|
HOUR_CYCLE_OPTIONS,
|
|
83298
83302
|
TIME_GRANULARITIES,
|
|
83299
83303
|
TIME_GRANULARITY_OPTIONS,
|
|
83300
|
-
compatibilityDate: compatibilityDate$
|
|
83301
|
-
defaults: defaults$
|
|
83302
|
-
metadata: metadata$
|
|
83303
|
-
schema: schema$
|
|
83304
|
-
type: type$
|
|
83304
|
+
compatibilityDate: compatibilityDate$w,
|
|
83305
|
+
defaults: defaults$5,
|
|
83306
|
+
metadata: metadata$w,
|
|
83307
|
+
schema: schema$w,
|
|
83308
|
+
type: type$w
|
|
83305
83309
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
83306
|
-
const type$
|
|
83307
|
-
const compatibilityDate$
|
|
83308
|
-
const metadata$
|
|
83310
|
+
const type$v = "com.shwfed.form.field.number";
|
|
83311
|
+
const compatibilityDate$v = "2026-04-28";
|
|
83312
|
+
const metadata$v = {
|
|
83309
83313
|
name: "数值输入",
|
|
83310
83314
|
icon: "fluent:number-symbol-20-regular",
|
|
83311
83315
|
w: { initial: 8, min: 4, max: Infinity },
|
|
83312
83316
|
h: { initial: 2, min: 2, max: 2 }
|
|
83313
83317
|
};
|
|
83314
|
-
function schema$
|
|
83318
|
+
function schema$v(configure) {
|
|
83315
83319
|
const CelBool = Expression({ configure, resultType: "bool" });
|
|
83316
83320
|
const CelNumber = Expression({ configure, resultType: "number" });
|
|
83317
83321
|
return Struct({
|
|
83318
|
-
type: Literal2(type$
|
|
83319
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
83322
|
+
type: Literal2(type$v),
|
|
83323
|
+
compatibilityDate: Literal2(compatibilityDate$v),
|
|
83320
83324
|
...commonFieldFields(configure),
|
|
83321
83325
|
label: optional(Locale.annotations({
|
|
83322
83326
|
title: "标签",
|
|
@@ -83375,13 +83379,13 @@ function schema$u(configure) {
|
|
|
83375
83379
|
}
|
|
83376
83380
|
const __vite_glob_0_11$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
83377
83381
|
__proto__: null,
|
|
83378
|
-
compatibilityDate: compatibilityDate$
|
|
83379
|
-
metadata: metadata$
|
|
83380
|
-
schema: schema$
|
|
83381
|
-
type: type$
|
|
83382
|
+
compatibilityDate: compatibilityDate$v,
|
|
83383
|
+
metadata: metadata$v,
|
|
83384
|
+
schema: schema$v,
|
|
83385
|
+
type: type$v
|
|
83382
83386
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
83383
|
-
const type$
|
|
83384
|
-
const compatibilityDate$
|
|
83387
|
+
const type$u = "com.shwfed.form.field.numberrange";
|
|
83388
|
+
const compatibilityDate$u = "2026-04-28";
|
|
83385
83389
|
const BindingPath = String$.pipe(minLength(1));
|
|
83386
83390
|
const SplitBinding = Tuple(BindingPath, BindingPath).pipe(
|
|
83387
83391
|
filter(([a, b]) => a !== b, {
|
|
@@ -83392,18 +83396,18 @@ const bindingSchema = Union2(BindingPath, SplitBinding).annotations({
|
|
|
83392
83396
|
title: "绑定路径",
|
|
83393
83397
|
description: "写入表单状态的 `dot-prop` 路径;填写单个路径时写入 `[start, end]` 数值数组,例如 `score.range`;填写 `[起始路径, 结束路径]` 元组时分别写入两端;留空则为非受控字段"
|
|
83394
83398
|
});
|
|
83395
|
-
const metadata$
|
|
83399
|
+
const metadata$u = {
|
|
83396
83400
|
name: "数值范围",
|
|
83397
83401
|
icon: "fluent:arrow-bidirectional-left-right-20-regular",
|
|
83398
83402
|
w: { initial: 8, min: 4, max: Infinity },
|
|
83399
83403
|
h: { initial: 2, min: 2, max: 2 }
|
|
83400
83404
|
};
|
|
83401
|
-
function schema$
|
|
83405
|
+
function schema$u(configure) {
|
|
83402
83406
|
const CelBool = Expression({ configure, resultType: "bool" });
|
|
83403
83407
|
const CelNumber = Expression({ configure, resultType: "number" });
|
|
83404
83408
|
return Struct({
|
|
83405
|
-
type: Literal2(type$
|
|
83406
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
83409
|
+
type: Literal2(type$u),
|
|
83410
|
+
compatibilityDate: Literal2(compatibilityDate$u),
|
|
83407
83411
|
...commonFieldFields(configure),
|
|
83408
83412
|
label: optional(Locale.annotations({
|
|
83409
83413
|
title: "标签",
|
|
@@ -83465,30 +83469,30 @@ function schema$t(configure) {
|
|
|
83465
83469
|
description: "数值范围输入"
|
|
83466
83470
|
});
|
|
83467
83471
|
}
|
|
83468
|
-
function defaults$
|
|
83472
|
+
function defaults$4() {
|
|
83469
83473
|
return { rangeSeparatorIcon: "fluent:arrow-right-20-regular" };
|
|
83470
83474
|
}
|
|
83471
83475
|
const __vite_glob_0_12$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
83472
83476
|
__proto__: null,
|
|
83473
|
-
compatibilityDate: compatibilityDate$
|
|
83474
|
-
defaults: defaults$
|
|
83475
|
-
metadata: metadata$
|
|
83476
|
-
schema: schema$
|
|
83477
|
-
type: type$
|
|
83477
|
+
compatibilityDate: compatibilityDate$u,
|
|
83478
|
+
defaults: defaults$4,
|
|
83479
|
+
metadata: metadata$u,
|
|
83480
|
+
schema: schema$u,
|
|
83481
|
+
type: type$u
|
|
83478
83482
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
83479
|
-
const type$
|
|
83480
|
-
const compatibilityDate$
|
|
83481
|
-
const metadata$
|
|
83483
|
+
const type$t = "com.shwfed.form.field.switch";
|
|
83484
|
+
const compatibilityDate$t = "2026-04-28";
|
|
83485
|
+
const metadata$t = {
|
|
83482
83486
|
name: "开关",
|
|
83483
83487
|
icon: "fluent:toggle-left-20-regular",
|
|
83484
83488
|
w: { initial: 4, min: 4, max: Infinity },
|
|
83485
83489
|
h: { initial: 2, min: 2, max: 2 }
|
|
83486
83490
|
};
|
|
83487
|
-
function schema$
|
|
83491
|
+
function schema$t(configure) {
|
|
83488
83492
|
const CelBool = Expression({ configure, resultType: "bool" });
|
|
83489
83493
|
return Struct({
|
|
83490
|
-
type: Literal2(type$
|
|
83491
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
83494
|
+
type: Literal2(type$t),
|
|
83495
|
+
compatibilityDate: Literal2(compatibilityDate$t),
|
|
83492
83496
|
...commonFieldFields(configure),
|
|
83493
83497
|
label: optional(Locale.annotations({
|
|
83494
83498
|
title: "标签",
|
|
@@ -83526,10 +83530,10 @@ function schema$s(configure) {
|
|
|
83526
83530
|
}
|
|
83527
83531
|
const __vite_glob_0_13$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
83528
83532
|
__proto__: null,
|
|
83529
|
-
compatibilityDate: compatibilityDate$
|
|
83530
|
-
metadata: metadata$
|
|
83531
|
-
schema: schema$
|
|
83532
|
-
type: type$
|
|
83533
|
+
compatibilityDate: compatibilityDate$t,
|
|
83534
|
+
metadata: metadata$t,
|
|
83535
|
+
schema: schema$t,
|
|
83536
|
+
type: type$t
|
|
83533
83537
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
83534
83538
|
const decodeCache = {};
|
|
83535
83539
|
function getDecodeCache(exclude2) {
|
|
@@ -88780,9 +88784,9 @@ function interpolateMarkdown(template, $cel, context2) {
|
|
|
88780
88784
|
}
|
|
88781
88785
|
});
|
|
88782
88786
|
}
|
|
88783
|
-
const type$
|
|
88784
|
-
const compatibilityDate$
|
|
88785
|
-
const metadata$
|
|
88787
|
+
const type$s = "com.shwfed.form.field.combobox.single";
|
|
88788
|
+
const compatibilityDate$s = "2026-04-29";
|
|
88789
|
+
const metadata$s = {
|
|
88786
88790
|
name: "下拉单选(硬编码)",
|
|
88787
88791
|
icon: "fluent:chevron-down-20-regular",
|
|
88788
88792
|
w: { initial: 8, min: 4, max: Infinity },
|
|
@@ -88817,12 +88821,12 @@ function itemSchema$3(configure) {
|
|
|
88817
88821
|
title: "ComboboxSingleItem"
|
|
88818
88822
|
});
|
|
88819
88823
|
}
|
|
88820
|
-
function schema$
|
|
88824
|
+
function schema$s(configure) {
|
|
88821
88825
|
const CelBool = Expression({ configure, resultType: "bool" });
|
|
88822
88826
|
const Item = itemSchema$3(configure);
|
|
88823
88827
|
return Struct({
|
|
88824
|
-
type: Literal2(type$
|
|
88825
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
88828
|
+
type: Literal2(type$s),
|
|
88829
|
+
compatibilityDate: Literal2(compatibilityDate$s),
|
|
88826
88830
|
...commonFieldFields(configure),
|
|
88827
88831
|
label: optional(Locale.annotations({
|
|
88828
88832
|
title: "标签",
|
|
@@ -88914,23 +88918,23 @@ const migrate$2 = (prev, ctx) => {
|
|
|
88914
88918
|
} = legacy;
|
|
88915
88919
|
return {
|
|
88916
88920
|
...carryover,
|
|
88917
|
-
compatibilityDate: compatibilityDate$
|
|
88921
|
+
compatibilityDate: compatibilityDate$s,
|
|
88918
88922
|
items: items2
|
|
88919
88923
|
};
|
|
88920
88924
|
});
|
|
88921
88925
|
};
|
|
88922
88926
|
const __vite_glob_0_14$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
88923
88927
|
__proto__: null,
|
|
88924
|
-
compatibilityDate: compatibilityDate$
|
|
88928
|
+
compatibilityDate: compatibilityDate$s,
|
|
88925
88929
|
itemSchema: itemSchema$3,
|
|
88926
|
-
metadata: metadata$
|
|
88930
|
+
metadata: metadata$s,
|
|
88927
88931
|
migrate: migrate$2,
|
|
88928
|
-
schema: schema$
|
|
88929
|
-
type: type$
|
|
88932
|
+
schema: schema$s,
|
|
88933
|
+
type: type$s
|
|
88930
88934
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
88931
|
-
const type$
|
|
88932
|
-
const compatibilityDate$
|
|
88933
|
-
const metadata$
|
|
88935
|
+
const type$r = "com.shwfed.form.field.upload";
|
|
88936
|
+
const compatibilityDate$r = "2026-05-12";
|
|
88937
|
+
const metadata$r = {
|
|
88934
88938
|
name: "文件上传",
|
|
88935
88939
|
icon: "fluent:cloud-arrow-up-20-regular",
|
|
88936
88940
|
w: { initial: 8, min: 8, max: Infinity },
|
|
@@ -88947,14 +88951,14 @@ function configureWithJson$1(configure) {
|
|
|
88947
88951
|
env.registerVariable("json", JSON_VAR$1.type, { description: JSON_VAR$1.description });
|
|
88948
88952
|
};
|
|
88949
88953
|
}
|
|
88950
|
-
function schema$
|
|
88954
|
+
function schema$r(configure) {
|
|
88951
88955
|
const CelBool = Expression({ configure, resultType: "bool" });
|
|
88952
88956
|
const CelHttpRequest = Expression({ configure, resultType: "HttpRequest" });
|
|
88953
88957
|
const CelDownloadRequest = Expression({ configure: configureWithJson$1(configure), resultType: "HttpRequest" });
|
|
88954
88958
|
const LocaleMd = LocaleMarkdown({ configure });
|
|
88955
88959
|
return Struct({
|
|
88956
|
-
type: Literal2(type$
|
|
88957
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
88960
|
+
type: Literal2(type$r),
|
|
88961
|
+
compatibilityDate: Literal2(compatibilityDate$r),
|
|
88958
88962
|
...commonFieldFields(configure),
|
|
88959
88963
|
label: optional(Locale.annotations({
|
|
88960
88964
|
title: "标签",
|
|
@@ -89034,14 +89038,14 @@ function schema$q(configure) {
|
|
|
89034
89038
|
const __vite_glob_0_15 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
89035
89039
|
__proto__: null,
|
|
89036
89040
|
JSON_VAR: JSON_VAR$1,
|
|
89037
|
-
compatibilityDate: compatibilityDate$
|
|
89038
|
-
metadata: metadata$
|
|
89039
|
-
schema: schema$
|
|
89040
|
-
type: type$
|
|
89041
|
+
compatibilityDate: compatibilityDate$r,
|
|
89042
|
+
metadata: metadata$r,
|
|
89043
|
+
schema: schema$r,
|
|
89044
|
+
type: type$r
|
|
89041
89045
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
89042
|
-
const type$
|
|
89043
|
-
const compatibilityDate$
|
|
89044
|
-
const metadata$
|
|
89046
|
+
const type$q = "com.shwfed.form.field.combobox.single.remote";
|
|
89047
|
+
const compatibilityDate$q = "2026-05-13";
|
|
89048
|
+
const metadata$q = {
|
|
89045
89049
|
name: "下拉单选(远程)",
|
|
89046
89050
|
icon: "fluent:cloud-arrow-down-20-regular",
|
|
89047
89051
|
w: { initial: 8, min: 4, max: Infinity },
|
|
@@ -89070,15 +89074,15 @@ function configureWithJson(configure) {
|
|
|
89070
89074
|
};
|
|
89071
89075
|
}
|
|
89072
89076
|
const isListType$1 = (actual) => actual === "dyn" || actual.startsWith("list");
|
|
89073
|
-
function schema$
|
|
89077
|
+
function schema$q(configure) {
|
|
89074
89078
|
const CelBool = Expression({ configure, resultType: "bool" });
|
|
89075
89079
|
const CelHttpRequest = Expression({ configure, resultType: "HttpRequest" });
|
|
89076
89080
|
const CelOptions = Expression({ configure: configureWithJson(configure), resultType: isListType$1 });
|
|
89077
89081
|
const CelOptionValue = Expression({ configure: configureWithOption(configure), resultType: "dyn" });
|
|
89078
89082
|
const LocaleOptionLabel = LocaleMarkdown({ configure: configureWithOption(configure) });
|
|
89079
89083
|
return Struct({
|
|
89080
|
-
type: Literal2(type$
|
|
89081
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
89084
|
+
type: Literal2(type$q),
|
|
89085
|
+
compatibilityDate: Literal2(compatibilityDate$q),
|
|
89082
89086
|
...commonFieldFields(configure),
|
|
89083
89087
|
label: optional(Locale.annotations({
|
|
89084
89088
|
title: "标签",
|
|
@@ -89131,20 +89135,20 @@ const __vite_glob_0_16 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.de
|
|
|
89131
89135
|
__proto__: null,
|
|
89132
89136
|
JSON_VAR,
|
|
89133
89137
|
OPTION_VAR,
|
|
89134
|
-
compatibilityDate: compatibilityDate$
|
|
89135
|
-
metadata: metadata$
|
|
89136
|
-
schema: schema$
|
|
89137
|
-
type: type$
|
|
89138
|
+
compatibilityDate: compatibilityDate$q,
|
|
89139
|
+
metadata: metadata$q,
|
|
89140
|
+
schema: schema$q,
|
|
89141
|
+
type: type$q
|
|
89138
89142
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
89139
|
-
const type$
|
|
89140
|
-
const compatibilityDate$
|
|
89141
|
-
const metadata$
|
|
89143
|
+
const type$p = "com.shwfed.form.field.list";
|
|
89144
|
+
const compatibilityDate$p = "2026-05-13";
|
|
89145
|
+
const metadata$p = {
|
|
89142
89146
|
name: "列表",
|
|
89143
89147
|
icon: "fluent:list-20-regular",
|
|
89144
89148
|
w: { initial: 12, min: 4, max: Infinity },
|
|
89145
89149
|
h: { initial: 6, min: 4, max: Infinity, grow: true }
|
|
89146
89150
|
};
|
|
89147
|
-
function schema$
|
|
89151
|
+
function schema$p(configure) {
|
|
89148
89152
|
const CelBool = Expression({ configure, resultType: "bool" });
|
|
89149
89153
|
const unitConfigure = (env) => {
|
|
89150
89154
|
configure(env);
|
|
@@ -89158,8 +89162,8 @@ function schema$o(configure) {
|
|
|
89158
89162
|
};
|
|
89159
89163
|
const Unit = suspend(() => FormUnit(unitConfigure));
|
|
89160
89164
|
return Struct({
|
|
89161
|
-
type: Literal2(type$
|
|
89162
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
89165
|
+
type: Literal2(type$p),
|
|
89166
|
+
compatibilityDate: Literal2(compatibilityDate$p),
|
|
89163
89167
|
...commonFieldFields(configure),
|
|
89164
89168
|
label: optional(Locale.annotations({
|
|
89165
89169
|
title: "标签",
|
|
@@ -89216,7 +89220,7 @@ function schema$o(configure) {
|
|
|
89216
89220
|
description: "可新增/删除/重排的同构子表单列表"
|
|
89217
89221
|
});
|
|
89218
89222
|
}
|
|
89219
|
-
function defaults$
|
|
89223
|
+
function defaults$3() {
|
|
89220
89224
|
return {
|
|
89221
89225
|
unit: {
|
|
89222
89226
|
fields: [],
|
|
@@ -89226,15 +89230,15 @@ function defaults$2() {
|
|
|
89226
89230
|
}
|
|
89227
89231
|
const __vite_glob_0_17 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
89228
89232
|
__proto__: null,
|
|
89229
|
-
compatibilityDate: compatibilityDate$
|
|
89230
|
-
defaults: defaults$
|
|
89231
|
-
metadata: metadata$
|
|
89232
|
-
schema: schema$
|
|
89233
|
-
type: type$
|
|
89233
|
+
compatibilityDate: compatibilityDate$p,
|
|
89234
|
+
defaults: defaults$3,
|
|
89235
|
+
metadata: metadata$p,
|
|
89236
|
+
schema: schema$p,
|
|
89237
|
+
type: type$p
|
|
89234
89238
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
89235
|
-
const type$
|
|
89236
|
-
const compatibilityDate$
|
|
89237
|
-
const metadata$
|
|
89239
|
+
const type$o = "com.shwfed.form.field.checkbox.group";
|
|
89240
|
+
const compatibilityDate$o = "2026-05-17";
|
|
89241
|
+
const metadata$o = {
|
|
89238
89242
|
name: "复选框组",
|
|
89239
89243
|
icon: "fluent:checkbox-checked-20-regular",
|
|
89240
89244
|
w: { initial: 8, min: 2, max: Infinity },
|
|
@@ -89269,12 +89273,12 @@ function itemSchema$2(configure) {
|
|
|
89269
89273
|
title: "CheckboxGroupItem"
|
|
89270
89274
|
});
|
|
89271
89275
|
}
|
|
89272
|
-
function schema$
|
|
89276
|
+
function schema$o(configure) {
|
|
89273
89277
|
const CelBool = Expression({ configure, resultType: "bool" });
|
|
89274
89278
|
const Item = itemSchema$2(configure);
|
|
89275
89279
|
return Struct({
|
|
89276
|
-
type: Literal2(type$
|
|
89277
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
89280
|
+
type: Literal2(type$o),
|
|
89281
|
+
compatibilityDate: Literal2(compatibilityDate$o),
|
|
89278
89282
|
...commonFieldFields(configure),
|
|
89279
89283
|
label: optional(Locale.annotations({
|
|
89280
89284
|
title: "标签",
|
|
@@ -89308,15 +89312,15 @@ function schema$n(configure) {
|
|
|
89308
89312
|
}
|
|
89309
89313
|
const __vite_glob_0_18 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
89310
89314
|
__proto__: null,
|
|
89311
|
-
compatibilityDate: compatibilityDate$
|
|
89315
|
+
compatibilityDate: compatibilityDate$o,
|
|
89312
89316
|
itemSchema: itemSchema$2,
|
|
89313
|
-
metadata: metadata$
|
|
89314
|
-
schema: schema$
|
|
89315
|
-
type: type$
|
|
89317
|
+
metadata: metadata$o,
|
|
89318
|
+
schema: schema$o,
|
|
89319
|
+
type: type$o
|
|
89316
89320
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
89317
|
-
const type$
|
|
89318
|
-
const compatibilityDate$
|
|
89319
|
-
const metadata$
|
|
89321
|
+
const type$n = "com.shwfed.form.field.radio.group";
|
|
89322
|
+
const compatibilityDate$n = "2026-05-17";
|
|
89323
|
+
const metadata$n = {
|
|
89320
89324
|
name: "单选框组",
|
|
89321
89325
|
icon: "fluent:radio-button-20-regular",
|
|
89322
89326
|
w: { initial: 8, min: 2, max: Infinity },
|
|
@@ -89351,12 +89355,12 @@ function itemSchema$1(configure) {
|
|
|
89351
89355
|
title: "RadioGroupItem"
|
|
89352
89356
|
});
|
|
89353
89357
|
}
|
|
89354
|
-
function schema$
|
|
89358
|
+
function schema$n(configure) {
|
|
89355
89359
|
const CelBool = Expression({ configure, resultType: "bool" });
|
|
89356
89360
|
const Item = itemSchema$1(configure);
|
|
89357
89361
|
return Struct({
|
|
89358
|
-
type: Literal2(type$
|
|
89359
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
89362
|
+
type: Literal2(type$n),
|
|
89363
|
+
compatibilityDate: Literal2(compatibilityDate$n),
|
|
89360
89364
|
...commonFieldFields(configure),
|
|
89361
89365
|
label: optional(Locale.annotations({
|
|
89362
89366
|
title: "标签",
|
|
@@ -89390,11 +89394,11 @@ function schema$m(configure) {
|
|
|
89390
89394
|
}
|
|
89391
89395
|
const __vite_glob_0_19 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
89392
89396
|
__proto__: null,
|
|
89393
|
-
compatibilityDate: compatibilityDate$
|
|
89397
|
+
compatibilityDate: compatibilityDate$n,
|
|
89394
89398
|
itemSchema: itemSchema$1,
|
|
89395
|
-
metadata: metadata$
|
|
89396
|
-
schema: schema$
|
|
89397
|
-
type: type$
|
|
89399
|
+
metadata: metadata$n,
|
|
89400
|
+
schema: schema$n,
|
|
89401
|
+
type: type$n
|
|
89398
89402
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
89399
89403
|
const matchIconName = /^[a-z0-9]+(-[a-z0-9]+)*$/;
|
|
89400
89404
|
const stringToIcon = (value, validate2, allowSimpleName, provider = "") => {
|
|
@@ -90878,14 +90882,14 @@ function LocaleMarkdownWithRow(configure) {
|
|
|
90878
90882
|
function derivedRowField(configure, resultType) {
|
|
90879
90883
|
return derivedField(configureWithRow(configure), resultType);
|
|
90880
90884
|
}
|
|
90881
|
-
const type$
|
|
90882
|
-
const compatibilityDate$
|
|
90883
|
-
const metadata$
|
|
90885
|
+
const type$m = "com.shwfed.table.column.actions";
|
|
90886
|
+
const compatibilityDate$m = "2026-04-14";
|
|
90887
|
+
const metadata$m = {
|
|
90884
90888
|
name: "操作",
|
|
90885
90889
|
icon: "fluent:cursor-click-20-regular"
|
|
90886
90890
|
};
|
|
90887
90891
|
const registerRowVariables = registerRowVariablesIfAbsent;
|
|
90888
|
-
function schema$
|
|
90892
|
+
function schema$m(configure) {
|
|
90889
90893
|
const configureWithRow2 = (env) => {
|
|
90890
90894
|
configure(env);
|
|
90891
90895
|
registerRowVariables(env);
|
|
@@ -90893,8 +90897,8 @@ function schema$l(configure) {
|
|
|
90893
90897
|
const { fields: actionFields } = ActionSchemaFields(configureWithRow2);
|
|
90894
90898
|
const { size: _buttonSize, ...actionFieldsForColumn } = actionFields;
|
|
90895
90899
|
return Struct({
|
|
90896
|
-
type: Literal2(type$
|
|
90897
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
90900
|
+
type: Literal2(type$m),
|
|
90901
|
+
compatibilityDate: Literal2(compatibilityDate$m),
|
|
90898
90902
|
...columnIdentityFields(),
|
|
90899
90903
|
title: optional(Locale.annotations({ title: "标题", description: "列标题" })),
|
|
90900
90904
|
size: optional(Number$.pipe(finite(), positive()).annotations({
|
|
@@ -90921,23 +90925,23 @@ function toColumnDef$e(value, { getLocaleText }) {
|
|
|
90921
90925
|
}
|
|
90922
90926
|
const __vite_glob_0_0 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
90923
90927
|
__proto__: null,
|
|
90924
|
-
compatibilityDate: compatibilityDate$
|
|
90925
|
-
metadata: metadata$
|
|
90928
|
+
compatibilityDate: compatibilityDate$m,
|
|
90929
|
+
metadata: metadata$m,
|
|
90926
90930
|
registerRowVariables,
|
|
90927
|
-
schema: schema$
|
|
90931
|
+
schema: schema$m,
|
|
90928
90932
|
toColumnDef: toColumnDef$e,
|
|
90929
|
-
type: type$
|
|
90933
|
+
type: type$m
|
|
90930
90934
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
90931
|
-
const type$
|
|
90932
|
-
const compatibilityDate$
|
|
90933
|
-
const metadata$
|
|
90935
|
+
const type$l = "com.shwfed.table.column.date";
|
|
90936
|
+
const compatibilityDate$l = "2026-04-14";
|
|
90937
|
+
const metadata$l = {
|
|
90934
90938
|
name: "日期",
|
|
90935
90939
|
icon: "fluent:calendar-ltr-20-regular"
|
|
90936
90940
|
};
|
|
90937
|
-
function schema$
|
|
90941
|
+
function schema$l(configure) {
|
|
90938
90942
|
return Struct({
|
|
90939
|
-
type: Literal2(type$
|
|
90940
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
90943
|
+
type: Literal2(type$l),
|
|
90944
|
+
compatibilityDate: Literal2(compatibilityDate$l),
|
|
90941
90945
|
...columnFields(configure),
|
|
90942
90946
|
align: optionalWith(Align.annotations({ title: "对齐" }), { default: () => "left" }),
|
|
90943
90947
|
format: String$.annotations({
|
|
@@ -90969,22 +90973,22 @@ function toColumnDef$d(value, { getLocaleText, $cel, inheritedContext }) {
|
|
|
90969
90973
|
}
|
|
90970
90974
|
const __vite_glob_0_1$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
90971
90975
|
__proto__: null,
|
|
90972
|
-
compatibilityDate: compatibilityDate$
|
|
90973
|
-
metadata: metadata$
|
|
90974
|
-
schema: schema$
|
|
90976
|
+
compatibilityDate: compatibilityDate$l,
|
|
90977
|
+
metadata: metadata$l,
|
|
90978
|
+
schema: schema$l,
|
|
90975
90979
|
toColumnDef: toColumnDef$d,
|
|
90976
|
-
type: type$
|
|
90980
|
+
type: type$l
|
|
90977
90981
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
90978
|
-
const type$
|
|
90979
|
-
const compatibilityDate$
|
|
90980
|
-
const metadata$
|
|
90982
|
+
const type$k = "com.shwfed.table.column.icon";
|
|
90983
|
+
const compatibilityDate$k = "2026-04-14";
|
|
90984
|
+
const metadata$k = {
|
|
90981
90985
|
name: "图标",
|
|
90982
90986
|
icon: "fluent:shapes-20-regular"
|
|
90983
90987
|
};
|
|
90984
|
-
function schema$
|
|
90988
|
+
function schema$k(configure) {
|
|
90985
90989
|
return Struct({
|
|
90986
|
-
type: Literal2(type$
|
|
90987
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
90990
|
+
type: Literal2(type$k),
|
|
90991
|
+
compatibilityDate: Literal2(compatibilityDate$k),
|
|
90988
90992
|
...columnFields(configure),
|
|
90989
90993
|
accessor: CelRowAccess(configure).annotations({
|
|
90990
90994
|
title: "图标",
|
|
@@ -91020,25 +91024,25 @@ function toColumnDef$c(value, { getLocaleText, $cel, inheritedContext }) {
|
|
|
91020
91024
|
}
|
|
91021
91025
|
const __vite_glob_0_2$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
91022
91026
|
__proto__: null,
|
|
91023
|
-
compatibilityDate: compatibilityDate$
|
|
91024
|
-
metadata: metadata$
|
|
91025
|
-
schema: schema$
|
|
91027
|
+
compatibilityDate: compatibilityDate$k,
|
|
91028
|
+
metadata: metadata$k,
|
|
91029
|
+
schema: schema$k,
|
|
91026
91030
|
toColumnDef: toColumnDef$c,
|
|
91027
|
-
type: type$
|
|
91031
|
+
type: type$k
|
|
91028
91032
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
91029
|
-
const type$
|
|
91030
|
-
const compatibilityDate$
|
|
91031
|
-
const metadata$
|
|
91033
|
+
const type$j = "com.shwfed.table.column.markdown";
|
|
91034
|
+
const compatibilityDate$j = "2026-04-14";
|
|
91035
|
+
const metadata$j = {
|
|
91032
91036
|
name: "MD",
|
|
91033
91037
|
icon: "fluent:markdown-20-regular"
|
|
91034
91038
|
};
|
|
91035
91039
|
const isCopyExpressionType$1 = (t) => t === "string" || t === "dyn" || t.startsWith("optional");
|
|
91036
|
-
function schema$
|
|
91040
|
+
function schema$j(configure) {
|
|
91037
91041
|
const cel = CelRowAccess(configure, { resultType: isCopyExpressionType$1 });
|
|
91038
91042
|
const localeMarkdown = LocaleMarkdownWithRow(configure);
|
|
91039
91043
|
return Struct({
|
|
91040
|
-
type: Literal2(type$
|
|
91041
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
91044
|
+
type: Literal2(type$j),
|
|
91045
|
+
compatibilityDate: Literal2(compatibilityDate$j),
|
|
91042
91046
|
...columnIdentityFields(),
|
|
91043
91047
|
title: Locale.annotations({ title: "标题", description: "列标题" }),
|
|
91044
91048
|
align: optionalWith(Align.annotations({ title: "对齐" }), { default: () => "left" }),
|
|
@@ -91077,22 +91081,22 @@ function toColumnDef$b(value, { getLocaleText }) {
|
|
|
91077
91081
|
}
|
|
91078
91082
|
const __vite_glob_0_3$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
91079
91083
|
__proto__: null,
|
|
91080
|
-
compatibilityDate: compatibilityDate$
|
|
91081
|
-
metadata: metadata$
|
|
91082
|
-
schema: schema$
|
|
91084
|
+
compatibilityDate: compatibilityDate$j,
|
|
91085
|
+
metadata: metadata$j,
|
|
91086
|
+
schema: schema$j,
|
|
91083
91087
|
toColumnDef: toColumnDef$b,
|
|
91084
|
-
type: type$
|
|
91088
|
+
type: type$j
|
|
91085
91089
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
91086
|
-
const type$
|
|
91087
|
-
const compatibilityDate$
|
|
91088
|
-
const metadata$
|
|
91090
|
+
const type$i = "com.shwfed.table.column.number";
|
|
91091
|
+
const compatibilityDate$i = "2026-04-14";
|
|
91092
|
+
const metadata$i = {
|
|
91089
91093
|
name: "数值",
|
|
91090
91094
|
icon: "fluent:number-symbol-20-regular"
|
|
91091
91095
|
};
|
|
91092
|
-
function schema$
|
|
91096
|
+
function schema$i(configure) {
|
|
91093
91097
|
return Struct({
|
|
91094
|
-
type: Literal2(type$
|
|
91095
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
91098
|
+
type: Literal2(type$i),
|
|
91099
|
+
compatibilityDate: Literal2(compatibilityDate$i),
|
|
91096
91100
|
...columnFields(configure),
|
|
91097
91101
|
align: optionalWith(Align.annotations({ title: "对齐" }), { default: () => "right" }),
|
|
91098
91102
|
displayMode: optionalWith(
|
|
@@ -91133,24 +91137,24 @@ function toColumnDef$a(value, { getLocaleText, $cel, inheritedContext }) {
|
|
|
91133
91137
|
}
|
|
91134
91138
|
const __vite_glob_0_4$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
91135
91139
|
__proto__: null,
|
|
91136
|
-
compatibilityDate: compatibilityDate$
|
|
91137
|
-
metadata: metadata$
|
|
91138
|
-
schema: schema$
|
|
91140
|
+
compatibilityDate: compatibilityDate$i,
|
|
91141
|
+
metadata: metadata$i,
|
|
91142
|
+
schema: schema$i,
|
|
91139
91143
|
toColumnDef: toColumnDef$a,
|
|
91140
|
-
type: type$
|
|
91144
|
+
type: type$i
|
|
91141
91145
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
91142
91146
|
const __vite_glob_2_5 = {};
|
|
91143
91147
|
const _stubVue = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
91144
91148
|
__proto__: null,
|
|
91145
91149
|
default: __vite_glob_2_5
|
|
91146
91150
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
91147
|
-
const type$
|
|
91148
|
-
const compatibilityDate$
|
|
91149
|
-
const metadata$
|
|
91151
|
+
const type$h = "com.shwfed.table.column.select";
|
|
91152
|
+
const compatibilityDate$h = "2026-04-14";
|
|
91153
|
+
const metadata$h = {
|
|
91150
91154
|
name: "选择",
|
|
91151
91155
|
icon: "fluent:checkbox-checked-20-regular"
|
|
91152
91156
|
};
|
|
91153
|
-
function schema$
|
|
91157
|
+
function schema$h(configure) {
|
|
91154
91158
|
const CelRowSelectionPredicate = Expression({
|
|
91155
91159
|
configure: (env) => {
|
|
91156
91160
|
configure(env);
|
|
@@ -91159,8 +91163,8 @@ function schema$g(configure) {
|
|
|
91159
91163
|
resultType: "bool"
|
|
91160
91164
|
});
|
|
91161
91165
|
return Struct({
|
|
91162
|
-
type: Literal2(type$
|
|
91163
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
91166
|
+
type: Literal2(type$h),
|
|
91167
|
+
compatibilityDate: Literal2(compatibilityDate$h),
|
|
91164
91168
|
...columnIdentityFields(),
|
|
91165
91169
|
mode: optionalWith(Literal2("radio", "checkbox").annotations({
|
|
91166
91170
|
title: "模式",
|
|
@@ -91191,24 +91195,24 @@ function toColumnDef$9(value) {
|
|
|
91191
91195
|
}
|
|
91192
91196
|
const __vite_glob_0_5$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
91193
91197
|
__proto__: null,
|
|
91194
|
-
compatibilityDate: compatibilityDate$
|
|
91195
|
-
metadata: metadata$
|
|
91196
|
-
schema: schema$
|
|
91198
|
+
compatibilityDate: compatibilityDate$h,
|
|
91199
|
+
metadata: metadata$h,
|
|
91200
|
+
schema: schema$h,
|
|
91197
91201
|
toColumnDef: toColumnDef$9,
|
|
91198
|
-
type: type$
|
|
91202
|
+
type: type$h
|
|
91199
91203
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
91200
|
-
const type$
|
|
91201
|
-
const compatibilityDate$
|
|
91202
|
-
const metadata$
|
|
91204
|
+
const type$g = "com.shwfed.table.column.text";
|
|
91205
|
+
const compatibilityDate$g = "2026-04-14";
|
|
91206
|
+
const metadata$g = {
|
|
91203
91207
|
name: "文本",
|
|
91204
91208
|
icon: "fluent:text-field-20-regular"
|
|
91205
91209
|
};
|
|
91206
91210
|
const isCopyExpressionType = (t) => t === "string" || t === "dyn" || t.startsWith("optional");
|
|
91207
|
-
function schema$
|
|
91211
|
+
function schema$g(configure) {
|
|
91208
91212
|
const cel = CelRowAccess(configure, { resultType: isCopyExpressionType });
|
|
91209
91213
|
return Struct({
|
|
91210
|
-
type: Literal2(type$
|
|
91211
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
91214
|
+
type: Literal2(type$g),
|
|
91215
|
+
compatibilityDate: Literal2(compatibilityDate$g),
|
|
91212
91216
|
...columnFields(configure),
|
|
91213
91217
|
align: optionalWith(Align.annotations({ title: "对齐" }), { default: () => "left" }),
|
|
91214
91218
|
displayMode: optionalWith(
|
|
@@ -91246,19 +91250,19 @@ function toColumnDef$8(value, { getLocaleText, $cel, inheritedContext }) {
|
|
|
91246
91250
|
}
|
|
91247
91251
|
const __vite_glob_0_6 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
91248
91252
|
__proto__: null,
|
|
91249
|
-
compatibilityDate: compatibilityDate$
|
|
91250
|
-
metadata: metadata$
|
|
91251
|
-
schema: schema$
|
|
91253
|
+
compatibilityDate: compatibilityDate$g,
|
|
91254
|
+
metadata: metadata$g,
|
|
91255
|
+
schema: schema$g,
|
|
91252
91256
|
toColumnDef: toColumnDef$8,
|
|
91253
|
-
type: type$
|
|
91257
|
+
type: type$g
|
|
91254
91258
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
91255
|
-
const type$
|
|
91256
|
-
const compatibilityDate$
|
|
91257
|
-
const metadata$
|
|
91259
|
+
const type$f = "com.shwfed.table.column.switch.remote";
|
|
91260
|
+
const compatibilityDate$f = "2026-05-13";
|
|
91261
|
+
const metadata$f = {
|
|
91258
91262
|
name: "开关(远程)",
|
|
91259
91263
|
icon: "fluent:toggle-left-20-regular"
|
|
91260
91264
|
};
|
|
91261
|
-
function schema$
|
|
91265
|
+
function schema$f(configure) {
|
|
91262
91266
|
const CelBool = CelRowAccess(configure, { resultType: "bool" });
|
|
91263
91267
|
const CelOnChange = Expression({
|
|
91264
91268
|
configure: (env) => {
|
|
@@ -91276,8 +91280,8 @@ function schema$e(configure) {
|
|
|
91276
91280
|
resultType: "string"
|
|
91277
91281
|
});
|
|
91278
91282
|
return Struct({
|
|
91279
|
-
type: Literal2(type$
|
|
91280
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
91283
|
+
type: Literal2(type$f),
|
|
91284
|
+
compatibilityDate: Literal2(compatibilityDate$f),
|
|
91281
91285
|
...columnFields(configure),
|
|
91282
91286
|
align: optionalWith(Align.annotations({ title: "对齐" }), { default: () => "center" }),
|
|
91283
91287
|
disabled: optional(CelBool.annotations({
|
|
@@ -91299,14 +91303,14 @@ function schema$e(configure) {
|
|
|
91299
91303
|
}).annotations({ title: "SwitchRenderer", description: "开关渲染器(可编辑)" });
|
|
91300
91304
|
}
|
|
91301
91305
|
const migrateFrom$1 = [
|
|
91302
|
-
{ type: "com.shwfed.table.column.switch", compatibilityDate: compatibilityDate$
|
|
91306
|
+
{ type: "com.shwfed.table.column.switch", compatibilityDate: compatibilityDate$f }
|
|
91303
91307
|
];
|
|
91304
91308
|
const migrate$1 = (prev) => try_({
|
|
91305
91309
|
try: () => {
|
|
91306
91310
|
if (!prev || typeof prev !== "object") {
|
|
91307
91311
|
throw new Error("开关(远程)迁移失败:原值不是对象");
|
|
91308
91312
|
}
|
|
91309
|
-
return { ...prev, type: type$
|
|
91313
|
+
return { ...prev, type: type$f, compatibilityDate: compatibilityDate$f };
|
|
91310
91314
|
},
|
|
91311
91315
|
catch: (e) => e instanceof Error ? e : new Error(String(e))
|
|
91312
91316
|
});
|
|
@@ -91332,21 +91336,21 @@ function toColumnDef$7(value, { getLocaleText, $cel, inheritedContext }) {
|
|
|
91332
91336
|
}
|
|
91333
91337
|
const __vite_glob_0_7 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
91334
91338
|
__proto__: null,
|
|
91335
|
-
compatibilityDate: compatibilityDate$
|
|
91336
|
-
metadata: metadata$
|
|
91339
|
+
compatibilityDate: compatibilityDate$f,
|
|
91340
|
+
metadata: metadata$f,
|
|
91337
91341
|
migrate: migrate$1,
|
|
91338
91342
|
migrateFrom: migrateFrom$1,
|
|
91339
|
-
schema: schema$
|
|
91343
|
+
schema: schema$f,
|
|
91340
91344
|
toColumnDef: toColumnDef$7,
|
|
91341
|
-
type: type$
|
|
91345
|
+
type: type$f
|
|
91342
91346
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
91343
|
-
const type$
|
|
91344
|
-
const compatibilityDate$
|
|
91345
|
-
const metadata$
|
|
91347
|
+
const type$e = "com.shwfed.table.column.switch";
|
|
91348
|
+
const compatibilityDate$e = "2026-05-13";
|
|
91349
|
+
const metadata$e = {
|
|
91346
91350
|
name: "开关(远程)",
|
|
91347
91351
|
icon: "fluent:toggle-left-20-regular"
|
|
91348
91352
|
};
|
|
91349
|
-
function schema$
|
|
91353
|
+
function schema$e(configure) {
|
|
91350
91354
|
const CelBool = CelRowAccess(configure, { resultType: "bool" });
|
|
91351
91355
|
const CelOnChange = Expression({
|
|
91352
91356
|
configure: (env) => {
|
|
@@ -91364,8 +91368,8 @@ function schema$d(configure) {
|
|
|
91364
91368
|
resultType: "string"
|
|
91365
91369
|
});
|
|
91366
91370
|
return Struct({
|
|
91367
|
-
type: Literal2(type$
|
|
91368
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
91371
|
+
type: Literal2(type$e),
|
|
91372
|
+
compatibilityDate: Literal2(compatibilityDate$e),
|
|
91369
91373
|
...columnFields(configure),
|
|
91370
91374
|
align: optionalWith(Align.annotations({ title: "对齐" }), { default: () => "center" }),
|
|
91371
91375
|
disabled: optional(CelBool.annotations({
|
|
@@ -91408,11 +91412,11 @@ function toColumnDef$6(value, { getLocaleText, $cel, inheritedContext }) {
|
|
|
91408
91412
|
}
|
|
91409
91413
|
const __vite_glob_0_8 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
91410
91414
|
__proto__: null,
|
|
91411
|
-
compatibilityDate: compatibilityDate$
|
|
91412
|
-
metadata: metadata$
|
|
91413
|
-
schema: schema$
|
|
91415
|
+
compatibilityDate: compatibilityDate$e,
|
|
91416
|
+
metadata: metadata$e,
|
|
91417
|
+
schema: schema$e,
|
|
91414
91418
|
toColumnDef: toColumnDef$6,
|
|
91415
|
-
type: type$
|
|
91419
|
+
type: type$e
|
|
91416
91420
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
91417
91421
|
const isObject$1 = (value) => {
|
|
91418
91422
|
const type2 = typeof value;
|
|
@@ -91611,9 +91615,9 @@ function getProperty(object2, path, value) {
|
|
|
91611
91615
|
}
|
|
91612
91616
|
return object2 === void 0 ? value : object2;
|
|
91613
91617
|
}
|
|
91614
|
-
const type$
|
|
91615
|
-
const compatibilityDate$
|
|
91616
|
-
const metadata$
|
|
91618
|
+
const type$d = "com.shwfed.table.column.combobox-single";
|
|
91619
|
+
const compatibilityDate$d = "2026-05-20";
|
|
91620
|
+
const metadata$d = {
|
|
91617
91621
|
name: "下拉单选",
|
|
91618
91622
|
icon: "fluent:chevron-down-20-regular"
|
|
91619
91623
|
};
|
|
@@ -91646,12 +91650,12 @@ function itemSchema(configure) {
|
|
|
91646
91650
|
title: "ComboboxSingleItem"
|
|
91647
91651
|
});
|
|
91648
91652
|
}
|
|
91649
|
-
function schema$
|
|
91653
|
+
function schema$d(configure) {
|
|
91650
91654
|
const CelBool = CelRowAccess(configure, { resultType: "bool" });
|
|
91651
91655
|
const Item = itemSchema(configure);
|
|
91652
91656
|
return Struct({
|
|
91653
|
-
type: Literal2(type$
|
|
91654
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
91657
|
+
type: Literal2(type$d),
|
|
91658
|
+
compatibilityDate: Literal2(compatibilityDate$d),
|
|
91655
91659
|
...editableColumnFields(),
|
|
91656
91660
|
placeholder: optional(Locale.annotations({
|
|
91657
91661
|
title: "占位符",
|
|
@@ -91699,25 +91703,25 @@ function toColumnDef$5(value, { getLocaleText }) {
|
|
|
91699
91703
|
}
|
|
91700
91704
|
const __vite_glob_0_9 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
91701
91705
|
__proto__: null,
|
|
91702
|
-
compatibilityDate: compatibilityDate$
|
|
91706
|
+
compatibilityDate: compatibilityDate$d,
|
|
91703
91707
|
itemSchema,
|
|
91704
|
-
metadata: metadata$
|
|
91705
|
-
schema: schema$
|
|
91708
|
+
metadata: metadata$d,
|
|
91709
|
+
schema: schema$d,
|
|
91706
91710
|
toColumnDef: toColumnDef$5,
|
|
91707
|
-
type: type$
|
|
91711
|
+
type: type$d
|
|
91708
91712
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
91709
|
-
const type$
|
|
91710
|
-
const compatibilityDate$
|
|
91711
|
-
const metadata$
|
|
91713
|
+
const type$c = "com.shwfed.table.column.number-input";
|
|
91714
|
+
const compatibilityDate$c = "2026-05-20";
|
|
91715
|
+
const metadata$c = {
|
|
91712
91716
|
name: "数值输入",
|
|
91713
91717
|
icon: "fluent:number-symbol-20-regular"
|
|
91714
91718
|
};
|
|
91715
|
-
function schema$
|
|
91719
|
+
function schema$c(configure) {
|
|
91716
91720
|
const CelBool = CelRowAccess(configure, { resultType: "bool" });
|
|
91717
91721
|
const CelNumber = CelRowAccess(configure, { resultType: "number" });
|
|
91718
91722
|
return Struct({
|
|
91719
|
-
type: Literal2(type$
|
|
91720
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
91723
|
+
type: Literal2(type$c),
|
|
91724
|
+
compatibilityDate: Literal2(compatibilityDate$c),
|
|
91721
91725
|
...editableColumnFields(),
|
|
91722
91726
|
placeholder: optional(Locale.annotations({
|
|
91723
91727
|
title: "占位符",
|
|
@@ -91785,23 +91789,23 @@ function toColumnDef$4(value, { getLocaleText }) {
|
|
|
91785
91789
|
}
|
|
91786
91790
|
const __vite_glob_0_10 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
91787
91791
|
__proto__: null,
|
|
91788
|
-
compatibilityDate: compatibilityDate$
|
|
91789
|
-
metadata: metadata$
|
|
91790
|
-
schema: schema$
|
|
91792
|
+
compatibilityDate: compatibilityDate$c,
|
|
91793
|
+
metadata: metadata$c,
|
|
91794
|
+
schema: schema$c,
|
|
91791
91795
|
toColumnDef: toColumnDef$4,
|
|
91792
|
-
type: type$
|
|
91796
|
+
type: type$c
|
|
91793
91797
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
91794
|
-
const type$
|
|
91795
|
-
const compatibilityDate$
|
|
91796
|
-
const metadata$
|
|
91798
|
+
const type$b = "com.shwfed.table.column.switch.local";
|
|
91799
|
+
const compatibilityDate$b = "2026-05-20";
|
|
91800
|
+
const metadata$b = {
|
|
91797
91801
|
name: "开关",
|
|
91798
91802
|
icon: "fluent:toggle-left-20-regular"
|
|
91799
91803
|
};
|
|
91800
|
-
function schema$
|
|
91804
|
+
function schema$b(configure) {
|
|
91801
91805
|
const CelBool = CelRowAccess(configure, { resultType: "bool" });
|
|
91802
91806
|
return Struct({
|
|
91803
|
-
type: Literal2(type$
|
|
91804
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
91807
|
+
type: Literal2(type$b),
|
|
91808
|
+
compatibilityDate: Literal2(compatibilityDate$b),
|
|
91805
91809
|
...editableColumnFields(),
|
|
91806
91810
|
hidden: optional(CelBool.annotations({
|
|
91807
91811
|
title: "隐藏条件",
|
|
@@ -91827,14 +91831,14 @@ function schema$a(configure) {
|
|
|
91827
91831
|
}).annotations({ title: "SwitchRenderer", description: "开关渲染器(可编辑、本地)" });
|
|
91828
91832
|
}
|
|
91829
91833
|
const migrateFrom = [
|
|
91830
|
-
{ type: "com.shwfed.table.column.switch", compatibilityDate: compatibilityDate$
|
|
91834
|
+
{ type: "com.shwfed.table.column.switch", compatibilityDate: compatibilityDate$b }
|
|
91831
91835
|
];
|
|
91832
91836
|
const migrate = (prev) => try_({
|
|
91833
91837
|
try: () => {
|
|
91834
91838
|
if (!prev || typeof prev !== "object") {
|
|
91835
91839
|
throw new Error("开关(本地)迁移失败:原值不是对象");
|
|
91836
91840
|
}
|
|
91837
|
-
return { ...prev, type: type$
|
|
91841
|
+
return { ...prev, type: type$b, compatibilityDate: compatibilityDate$b };
|
|
91838
91842
|
},
|
|
91839
91843
|
catch: (e) => e instanceof Error ? e : new Error(String(e))
|
|
91840
91844
|
});
|
|
@@ -91860,25 +91864,25 @@ function toColumnDef$3(value, { getLocaleText }) {
|
|
|
91860
91864
|
}
|
|
91861
91865
|
const __vite_glob_0_11 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
91862
91866
|
__proto__: null,
|
|
91863
|
-
compatibilityDate: compatibilityDate$
|
|
91864
|
-
metadata: metadata$
|
|
91867
|
+
compatibilityDate: compatibilityDate$b,
|
|
91868
|
+
metadata: metadata$b,
|
|
91865
91869
|
migrate,
|
|
91866
91870
|
migrateFrom,
|
|
91867
|
-
schema: schema$
|
|
91871
|
+
schema: schema$b,
|
|
91868
91872
|
toColumnDef: toColumnDef$3,
|
|
91869
|
-
type: type$
|
|
91873
|
+
type: type$b
|
|
91870
91874
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
91871
|
-
const type$
|
|
91872
|
-
const compatibilityDate$
|
|
91873
|
-
const metadata$
|
|
91875
|
+
const type$a = "com.shwfed.table.column.switch";
|
|
91876
|
+
const compatibilityDate$a = "2026-05-20";
|
|
91877
|
+
const metadata$a = {
|
|
91874
91878
|
name: "开关",
|
|
91875
91879
|
icon: "fluent:toggle-left-20-regular"
|
|
91876
91880
|
};
|
|
91877
|
-
function schema$
|
|
91881
|
+
function schema$a(configure) {
|
|
91878
91882
|
const CelBool = CelRowAccess(configure, { resultType: "bool" });
|
|
91879
91883
|
return Struct({
|
|
91880
|
-
type: Literal2(type$
|
|
91881
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
91884
|
+
type: Literal2(type$a),
|
|
91885
|
+
compatibilityDate: Literal2(compatibilityDate$a),
|
|
91882
91886
|
...editableColumnFields(),
|
|
91883
91887
|
hidden: optional(CelBool.annotations({
|
|
91884
91888
|
title: "隐藏条件",
|
|
@@ -91925,23 +91929,23 @@ function toColumnDef$2(value, { getLocaleText }) {
|
|
|
91925
91929
|
}
|
|
91926
91930
|
const __vite_glob_0_12 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
91927
91931
|
__proto__: null,
|
|
91928
|
-
compatibilityDate: compatibilityDate$
|
|
91929
|
-
metadata: metadata$
|
|
91930
|
-
schema: schema$
|
|
91932
|
+
compatibilityDate: compatibilityDate$a,
|
|
91933
|
+
metadata: metadata$a,
|
|
91934
|
+
schema: schema$a,
|
|
91931
91935
|
toColumnDef: toColumnDef$2,
|
|
91932
|
-
type: type$
|
|
91936
|
+
type: type$a
|
|
91933
91937
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
91934
|
-
const type$
|
|
91935
|
-
const compatibilityDate$
|
|
91936
|
-
const metadata$
|
|
91938
|
+
const type$9 = "com.shwfed.table.column.text-input";
|
|
91939
|
+
const compatibilityDate$9 = "2026-05-20";
|
|
91940
|
+
const metadata$9 = {
|
|
91937
91941
|
name: "文本输入",
|
|
91938
91942
|
icon: "fluent:text-field-20-regular"
|
|
91939
91943
|
};
|
|
91940
|
-
function schema$
|
|
91944
|
+
function schema$9(configure) {
|
|
91941
91945
|
const CelBool = CelRowAccess(configure, { resultType: "bool" });
|
|
91942
91946
|
return Struct({
|
|
91943
|
-
type: Literal2(type$
|
|
91944
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
91947
|
+
type: Literal2(type$9),
|
|
91948
|
+
compatibilityDate: Literal2(compatibilityDate$9),
|
|
91945
91949
|
...editableColumnFields(),
|
|
91946
91950
|
placeholder: optional(Locale.annotations({
|
|
91947
91951
|
title: "占位符",
|
|
@@ -91982,22 +91986,22 @@ function toColumnDef$1(value, { getLocaleText }) {
|
|
|
91982
91986
|
}
|
|
91983
91987
|
const __vite_glob_0_13 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
91984
91988
|
__proto__: null,
|
|
91985
|
-
compatibilityDate: compatibilityDate$
|
|
91986
|
-
metadata: metadata$
|
|
91987
|
-
schema: schema$
|
|
91989
|
+
compatibilityDate: compatibilityDate$9,
|
|
91990
|
+
metadata: metadata$9,
|
|
91991
|
+
schema: schema$9,
|
|
91988
91992
|
toColumnDef: toColumnDef$1,
|
|
91989
|
-
type: type$
|
|
91993
|
+
type: type$9
|
|
91990
91994
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
91991
|
-
const type$
|
|
91992
|
-
const compatibilityDate$
|
|
91993
|
-
const metadata$
|
|
91995
|
+
const type$8 = "com.shwfed.table.column.drag-handle";
|
|
91996
|
+
const compatibilityDate$8 = "2026-05-21";
|
|
91997
|
+
const metadata$8 = {
|
|
91994
91998
|
name: "拖拽",
|
|
91995
91999
|
icon: "fluent:re-order-dots-vertical-20-regular"
|
|
91996
92000
|
};
|
|
91997
|
-
function schema$
|
|
92001
|
+
function schema$8(_configure) {
|
|
91998
92002
|
return Struct({
|
|
91999
|
-
type: Literal2(type$
|
|
92000
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
92003
|
+
type: Literal2(type$8),
|
|
92004
|
+
compatibilityDate: Literal2(compatibilityDate$8),
|
|
92001
92005
|
...columnIdentityFields()
|
|
92002
92006
|
}).annotations({ title: "DragHandleRenderer", description: "行拖拽手柄列" });
|
|
92003
92007
|
}
|
|
@@ -92017,11 +92021,11 @@ function toColumnDef(_value) {
|
|
|
92017
92021
|
}
|
|
92018
92022
|
const __vite_glob_0_14 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
92019
92023
|
__proto__: null,
|
|
92020
|
-
compatibilityDate: compatibilityDate$
|
|
92021
|
-
metadata: metadata$
|
|
92022
|
-
schema: schema$
|
|
92024
|
+
compatibilityDate: compatibilityDate$8,
|
|
92025
|
+
metadata: metadata$8,
|
|
92026
|
+
schema: schema$8,
|
|
92023
92027
|
toColumnDef,
|
|
92024
|
-
type: type$
|
|
92028
|
+
type: type$8
|
|
92025
92029
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
92026
92030
|
const schemaModules$2 = /* @__PURE__ */ Object.assign({
|
|
92027
92031
|
"../columns/2026-04-14/com.shwfed.table.column.actions/schema.ts": __vite_glob_0_0,
|
|
@@ -92156,7 +92160,9 @@ const COLUMNS = registry$2.ENTRIES.map((e) => ({
|
|
|
92156
92160
|
return map2;
|
|
92157
92161
|
})();
|
|
92158
92162
|
function allColumnSchemas(configure) {
|
|
92159
|
-
return COLUMNS.map((entry) => entry.schema(configure)
|
|
92163
|
+
return COLUMNS.map((entry) => entry.schema(configure).annotations({
|
|
92164
|
+
identifier: `${entry.type}@${entry.compatibilityDate}`
|
|
92165
|
+
}));
|
|
92160
92166
|
}
|
|
92161
92167
|
function getTypeLiteral(ast) {
|
|
92162
92168
|
switch (ast._tag) {
|
|
@@ -92308,13 +92314,11 @@ const ColumnGroup = Struct({
|
|
|
92308
92314
|
description: "列分组定义"
|
|
92309
92315
|
});
|
|
92310
92316
|
const QUERY_VAR_DESCRIPTION = "搜索条件当前状态;未配置搜索条件时为空对象";
|
|
92311
|
-
function DataSource(configure) {
|
|
92317
|
+
function DataSource(configure, extras) {
|
|
92312
92318
|
const CelRequest = Expression({
|
|
92313
92319
|
configure: (env) => {
|
|
92314
92320
|
configure(env);
|
|
92315
|
-
env
|
|
92316
|
-
env.registerVariable("pageSize", "number", { description: "每页行数;未启用分页时为 0" });
|
|
92317
|
-
env.registerVariable("query", "dyn", { description: QUERY_VAR_DESCRIPTION });
|
|
92321
|
+
extras?.request?.(env);
|
|
92318
92322
|
},
|
|
92319
92323
|
resultType: "HttpRequest"
|
|
92320
92324
|
});
|
|
@@ -92324,10 +92328,35 @@ function DataSource(configure) {
|
|
|
92324
92328
|
env.registerVariable("json", "optional<dyn>", {
|
|
92325
92329
|
description: "HTTP 响应体(已解析 JSON);未配置 request 时为 none"
|
|
92326
92330
|
});
|
|
92327
|
-
env
|
|
92331
|
+
extras?.data?.(env);
|
|
92328
92332
|
},
|
|
92329
92333
|
resultType: (type2) => type2.startsWith("list") || type2 === "dyn" || type2.startsWith("optional")
|
|
92330
92334
|
});
|
|
92335
|
+
return Struct({
|
|
92336
|
+
request: optional(CelRequest).annotations({
|
|
92337
|
+
title: "请求",
|
|
92338
|
+
description: "可选的 HTTP 请求表达式;未配置时数据从 `data` 表达式中读取(通常引用上下文变量)"
|
|
92339
|
+
}),
|
|
92340
|
+
data: CelRows.annotations({
|
|
92341
|
+
title: "数据",
|
|
92342
|
+
description: "返回行数据列表(`list<dyn>`)的 CEL 表达式;在配置了 `request` 时可通过 `json` 引用响应体"
|
|
92343
|
+
})
|
|
92344
|
+
}).annotations({
|
|
92345
|
+
title: "DataSource",
|
|
92346
|
+
description: "数据源配置"
|
|
92347
|
+
});
|
|
92348
|
+
}
|
|
92349
|
+
function tableDataSource(configure) {
|
|
92350
|
+
const base2 = DataSource(configure, {
|
|
92351
|
+
request: (env) => {
|
|
92352
|
+
env.registerVariable("pageIndex", "number", { description: "当前页码(从 0 开始);未启用分页时为 0" });
|
|
92353
|
+
env.registerVariable("pageSize", "number", { description: "每页行数;未启用分页时为 0" });
|
|
92354
|
+
env.registerVariable("query", "dyn", { description: QUERY_VAR_DESCRIPTION });
|
|
92355
|
+
},
|
|
92356
|
+
data: (env) => {
|
|
92357
|
+
env.registerVariable("query", "dyn", { description: QUERY_VAR_DESCRIPTION });
|
|
92358
|
+
}
|
|
92359
|
+
});
|
|
92331
92360
|
const CelTotal = Expression({
|
|
92332
92361
|
configure: (env) => {
|
|
92333
92362
|
configure(env);
|
|
@@ -92339,14 +92368,7 @@ function DataSource(configure) {
|
|
|
92339
92368
|
resultType: (type2) => type2 === "number" || type2 === "dyn" || type2.startsWith("optional")
|
|
92340
92369
|
});
|
|
92341
92370
|
return Struct({
|
|
92342
|
-
|
|
92343
|
-
title: "请求",
|
|
92344
|
-
description: "可选的 HTTP 请求表达式;未配置时数据从 `data` 表达式中读取(通常引用上下文变量)"
|
|
92345
|
-
}),
|
|
92346
|
-
data: CelRows.annotations({
|
|
92347
|
-
title: "数据",
|
|
92348
|
-
description: "返回行数据列表(`list<dyn>`)的 CEL 表达式;在配置了 `request` 时可通过 `json` 引用响应体"
|
|
92349
|
-
}),
|
|
92371
|
+
...base2.fields,
|
|
92350
92372
|
total: optional(CelTotal).annotations({
|
|
92351
92373
|
title: "总数",
|
|
92352
92374
|
description: "返回总行数(`number`)的 CEL 表达式;配置后启用服务端分页,留空则走前端分页"
|
|
@@ -92379,7 +92401,7 @@ function TableConfig(configure) {
|
|
|
92379
92401
|
const CelRowKey = CelRowAccess(configure, {
|
|
92380
92402
|
resultType: (type2) => type2 === "string" || type2 === "number" || type2 === "dyn"
|
|
92381
92403
|
});
|
|
92382
|
-
const dataSourceSchema2 =
|
|
92404
|
+
const dataSourceSchema2 = tableDataSource(configure);
|
|
92383
92405
|
const { fields: actionFields } = ActionSchemaFields((env) => {
|
|
92384
92406
|
configure(env);
|
|
92385
92407
|
env.registerVariable("selected", "list<dyn>", {
|
|
@@ -92465,21 +92487,21 @@ function defaultTableConfig() {
|
|
|
92465
92487
|
: index % 2 == 1 ? { 'background-color': 'oklch(98.5% 0 0)' } : { 'background-color': 'white' }`
|
|
92466
92488
|
};
|
|
92467
92489
|
}
|
|
92468
|
-
const type$
|
|
92469
|
-
const compatibilityDate$
|
|
92470
|
-
const metadata$
|
|
92490
|
+
const type$7 = "com.shwfed.form.field.table";
|
|
92491
|
+
const compatibilityDate$7 = "2026-05-18";
|
|
92492
|
+
const metadata$7 = {
|
|
92471
92493
|
name: "表格",
|
|
92472
92494
|
icon: "fluent:table-20-regular",
|
|
92473
92495
|
w: { initial: 12, min: 6, max: Infinity },
|
|
92474
92496
|
h: { initial: 10, min: 5, max: Infinity, grow: true }
|
|
92475
92497
|
};
|
|
92476
|
-
function schema$
|
|
92498
|
+
function schema$7(configure) {
|
|
92477
92499
|
const Table = suspend(
|
|
92478
92500
|
() => TableConfig(configure)
|
|
92479
92501
|
);
|
|
92480
92502
|
return Struct({
|
|
92481
|
-
type: Literal2(type$
|
|
92482
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
92503
|
+
type: Literal2(type$7),
|
|
92504
|
+
compatibilityDate: Literal2(compatibilityDate$7),
|
|
92483
92505
|
...commonFieldFields(configure),
|
|
92484
92506
|
label: optional(Locale.annotations({
|
|
92485
92507
|
title: "标签",
|
|
@@ -92503,31 +92525,31 @@ function schema$6(configure) {
|
|
|
92503
92525
|
description: "把一个可本地编辑的表格嵌入表单,其实时数据写入绑定路径"
|
|
92504
92526
|
});
|
|
92505
92527
|
}
|
|
92506
|
-
function defaults$
|
|
92528
|
+
function defaults$2() {
|
|
92507
92529
|
const { dataSource: _omit, ...rest } = defaultTableConfig();
|
|
92508
92530
|
return { table: rest };
|
|
92509
92531
|
}
|
|
92510
92532
|
const __vite_glob_0_20 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
92511
92533
|
__proto__: null,
|
|
92512
|
-
compatibilityDate: compatibilityDate$
|
|
92513
|
-
defaults: defaults$
|
|
92514
|
-
metadata: metadata$
|
|
92515
|
-
schema: schema$
|
|
92516
|
-
type: type$
|
|
92534
|
+
compatibilityDate: compatibilityDate$7,
|
|
92535
|
+
defaults: defaults$2,
|
|
92536
|
+
metadata: metadata$7,
|
|
92537
|
+
schema: schema$7,
|
|
92538
|
+
type: type$7
|
|
92517
92539
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
92518
|
-
const type$
|
|
92519
|
-
const compatibilityDate$
|
|
92520
|
-
const metadata$
|
|
92540
|
+
const type$6 = "com.shwfed.form.field.collapsible";
|
|
92541
|
+
const compatibilityDate$6 = "2026-05-20";
|
|
92542
|
+
const metadata$6 = {
|
|
92521
92543
|
name: "可折叠区域",
|
|
92522
92544
|
icon: "fluent:chevron-down-20-regular",
|
|
92523
92545
|
w: { initial: 12, min: 4, max: Infinity },
|
|
92524
92546
|
h: { initial: 4, min: 2, max: Infinity, grow: true }
|
|
92525
92547
|
};
|
|
92526
|
-
function schema$
|
|
92548
|
+
function schema$6(configure) {
|
|
92527
92549
|
const Unit = suspend(() => FormUnit(configure));
|
|
92528
92550
|
return Struct({
|
|
92529
|
-
type: Literal2(type$
|
|
92530
|
-
compatibilityDate: Literal2(compatibilityDate$
|
|
92551
|
+
type: Literal2(type$6),
|
|
92552
|
+
compatibilityDate: Literal2(compatibilityDate$6),
|
|
92531
92553
|
id: UUID.annotations({ description: "字段唯一标识;布局通过该 id 引用字段" }),
|
|
92532
92554
|
displayName: optional(String$.annotations({
|
|
92533
92555
|
title: "内部名称",
|
|
@@ -92551,7 +92573,7 @@ function schema$5(configure) {
|
|
|
92551
92573
|
description: "带 Markdown 标题的可折叠区域,仅用于视觉分组,不影响字段在表单状态中的层级"
|
|
92552
92574
|
});
|
|
92553
92575
|
}
|
|
92554
|
-
function defaults() {
|
|
92576
|
+
function defaults$1() {
|
|
92555
92577
|
return {
|
|
92556
92578
|
header: [{ locale: "zh", message: "" }],
|
|
92557
92579
|
unit: {
|
|
@@ -92561,6 +92583,138 @@ function defaults() {
|
|
|
92561
92583
|
};
|
|
92562
92584
|
}
|
|
92563
92585
|
const __vite_glob_0_21 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
92586
|
+
__proto__: null,
|
|
92587
|
+
compatibilityDate: compatibilityDate$6,
|
|
92588
|
+
defaults: defaults$1,
|
|
92589
|
+
metadata: metadata$6,
|
|
92590
|
+
schema: schema$6,
|
|
92591
|
+
type: type$6
|
|
92592
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
92593
|
+
const type$5 = "com.shwfed.form.field.tree.multi";
|
|
92594
|
+
const compatibilityDate$5 = "2026-05-23";
|
|
92595
|
+
const metadata$5 = {
|
|
92596
|
+
name: "树(多选)",
|
|
92597
|
+
icon: "fluent:tree-evergreen-20-regular",
|
|
92598
|
+
w: { initial: 8, min: 4, max: Infinity },
|
|
92599
|
+
h: { initial: 8, min: 4, max: Infinity, grow: true }
|
|
92600
|
+
};
|
|
92601
|
+
function schema$5(configure) {
|
|
92602
|
+
const CelBool = Expression({ configure, resultType: "bool" });
|
|
92603
|
+
const nodeConfigure = (env) => {
|
|
92604
|
+
configure(env);
|
|
92605
|
+
env.registerVariable("node", "dyn", { description: "当前节点;由 `数据` 表达式返回的每一项" });
|
|
92606
|
+
};
|
|
92607
|
+
const CelNodeKey = Expression({
|
|
92608
|
+
configure: nodeConfigure,
|
|
92609
|
+
resultType: (t) => t === "string" || t === "number" || t === "dyn"
|
|
92610
|
+
});
|
|
92611
|
+
const CelNodeChildren = Expression({
|
|
92612
|
+
configure: nodeConfigure,
|
|
92613
|
+
// Accept lists, optional lists, and `dyn` — CEL infers an empty literal
|
|
92614
|
+
// such as `[]` as `list<dyn>` which a strict `list<dyn>` predicate would
|
|
92615
|
+
// accept, but a configured expression like `has(node.kids) ? node.kids :
|
|
92616
|
+
// null` lands on `dyn` once one branch is `null`. The looser predicate
|
|
92617
|
+
// mirrors the table's `data` expression.
|
|
92618
|
+
resultType: (t) => t === "dyn" || t.startsWith("list") || t.startsWith("optional")
|
|
92619
|
+
});
|
|
92620
|
+
const CelNodeBool = Expression({ configure: nodeConfigure, resultType: "bool" });
|
|
92621
|
+
const NodeLocaleMd = LocaleMarkdown({ configure: nodeConfigure });
|
|
92622
|
+
const CelKeywords = Expression({
|
|
92623
|
+
configure: nodeConfigure,
|
|
92624
|
+
// Empty list literals (`[]`) check as `list<dyn>`, and a
|
|
92625
|
+
// `node.?keywords` access lands on `optional<dyn>` — accept either by
|
|
92626
|
+
// sharing the same loose predicate the data expression uses.
|
|
92627
|
+
resultType: (t) => t === "dyn" || t.startsWith("list") || t.startsWith("optional")
|
|
92628
|
+
});
|
|
92629
|
+
return Struct({
|
|
92630
|
+
type: Literal2(type$5),
|
|
92631
|
+
compatibilityDate: Literal2(compatibilityDate$5),
|
|
92632
|
+
...commonFieldFields(configure),
|
|
92633
|
+
label: optional(Locale.annotations({
|
|
92634
|
+
title: "标签",
|
|
92635
|
+
description: "字段前展示的文本;留空则不渲染标签"
|
|
92636
|
+
})),
|
|
92637
|
+
tooltip: optional(Locale.annotations({
|
|
92638
|
+
title: "提示",
|
|
92639
|
+
description: "鼠标悬停在标签上时展示的说明"
|
|
92640
|
+
})),
|
|
92641
|
+
binding: optional(String$.pipe(minLength(1)).annotations({
|
|
92642
|
+
title: "绑定路径",
|
|
92643
|
+
description: "写入表单状态的 `dot-prop` 路径;写入值为已勾选节点 ID 的数组;留空则为非受控字段"
|
|
92644
|
+
})),
|
|
92645
|
+
disabled: optional(CelBool.annotations({
|
|
92646
|
+
title: "禁用条件",
|
|
92647
|
+
description: "返回 `true` 时仍渲染但不可勾选"
|
|
92648
|
+
})),
|
|
92649
|
+
readonly: optional(CelBool.annotations({
|
|
92650
|
+
title: "只读条件",
|
|
92651
|
+
description: "返回 `true` 时仅以纯文本展示当前已勾选节点的标签"
|
|
92652
|
+
})),
|
|
92653
|
+
derived: derivedField(configure, "dyn"),
|
|
92654
|
+
dataSource: DataSource(configure).annotations({
|
|
92655
|
+
title: "数据源",
|
|
92656
|
+
description: "返回完整树(根节点列表)的数据源;树通过 `节点子级` 表达式逐层向下读取子级"
|
|
92657
|
+
}),
|
|
92658
|
+
nodeKey: CelNodeKey.annotations({
|
|
92659
|
+
title: "节点 ID",
|
|
92660
|
+
description: "为每个节点计算稳定唯一 ID 的 CEL 表达式,可访问 `node`;运行时以字符串形式存储"
|
|
92661
|
+
}),
|
|
92662
|
+
nodeChildren: CelNodeChildren.annotations({
|
|
92663
|
+
title: "节点子级",
|
|
92664
|
+
description: "返回当前节点的子级列表的 CEL 表达式;返回 `none` / `null` 视为叶子节点"
|
|
92665
|
+
}),
|
|
92666
|
+
nodeLabel: NodeLocaleMd.annotations({
|
|
92667
|
+
title: "节点标签",
|
|
92668
|
+
description: "节点展示的本地化文本,支持 Markdown 与 `{{ node.foo }}` / `{{ form.foo }}` 插值"
|
|
92669
|
+
}),
|
|
92670
|
+
nodeTooltip: optional(NodeLocaleMd.annotations({
|
|
92671
|
+
title: "节点提示",
|
|
92672
|
+
description: "鼠标悬停在节点上时展示的本地化提示,支持 Markdown 与插值"
|
|
92673
|
+
})),
|
|
92674
|
+
nodeSelectable: optional(CelNodeBool.annotations({
|
|
92675
|
+
title: "节点可选条件",
|
|
92676
|
+
description: "返回 `true` 表示该节点可被勾选;级联选择仍尊重该条件"
|
|
92677
|
+
})),
|
|
92678
|
+
cascade: optionalWith(Literal2("independent", "cascade-down", "cascade-both"), {
|
|
92679
|
+
default: () => "cascade-both"
|
|
92680
|
+
}).annotations({
|
|
92681
|
+
title: "级联模式",
|
|
92682
|
+
description: "`独立`:仅勾选当前节点;`向下级联`:勾选父节点同时勾选所有可选后代;`双向级联`:在向下级联基础上,父节点反映后代勾选状态(部分选中显示为半选)"
|
|
92683
|
+
}),
|
|
92684
|
+
expandAll: optionalWith(Boolean$, { default: () => false }).annotations({
|
|
92685
|
+
title: "默认全部展开",
|
|
92686
|
+
description: "开启后挂载时展开所有非叶子节点"
|
|
92687
|
+
}),
|
|
92688
|
+
filter: optional(Struct({
|
|
92689
|
+
enabled: Boolean$.annotations({ title: "启用", description: "是否在树上方显示搜索输入框" }),
|
|
92690
|
+
label: optional(Locale.annotations({
|
|
92691
|
+
title: "标签",
|
|
92692
|
+
description: "搜索输入框的浮动标签;留空则使用默认值「搜索」"
|
|
92693
|
+
})),
|
|
92694
|
+
keywords: optional(CelKeywords.annotations({
|
|
92695
|
+
title: "额外关键词",
|
|
92696
|
+
description: "返回字符串列表的 CEL 表达式,可访问 `node`;匹配规则为「节点标签 或 任一关键词」包含搜索词(不区分大小写)"
|
|
92697
|
+
}))
|
|
92698
|
+
}).annotations({
|
|
92699
|
+
title: "过滤",
|
|
92700
|
+
description: "客户端过滤;过滤不会影响已选中的节点 ID"
|
|
92701
|
+
}))
|
|
92702
|
+
}).annotations({
|
|
92703
|
+
title: "TreeMultiField",
|
|
92704
|
+
description: "基于树形数据的多选输入"
|
|
92705
|
+
});
|
|
92706
|
+
}
|
|
92707
|
+
function defaults() {
|
|
92708
|
+
return {
|
|
92709
|
+
dataSource: { data: "[]" },
|
|
92710
|
+
nodeKey: "string(node.id)",
|
|
92711
|
+
nodeChildren: "has(node.children) ? node.children : null",
|
|
92712
|
+
nodeLabel: [{ locale: "zh", message: "{{ node.label }}" }],
|
|
92713
|
+
cascade: "cascade-both",
|
|
92714
|
+
expandAll: false
|
|
92715
|
+
};
|
|
92716
|
+
}
|
|
92717
|
+
const __vite_glob_0_22 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
92564
92718
|
__proto__: null,
|
|
92565
92719
|
compatibilityDate: compatibilityDate$5,
|
|
92566
92720
|
defaults,
|
|
@@ -92590,7 +92744,8 @@ const schemaModules$1 = /* @__PURE__ */ Object.assign({
|
|
|
92590
92744
|
"../fields/2026-05-17/com.shwfed.form.field.checkbox.group/schema.ts": __vite_glob_0_18,
|
|
92591
92745
|
"../fields/2026-05-17/com.shwfed.form.field.radio.group/schema.ts": __vite_glob_0_19,
|
|
92592
92746
|
"../fields/2026-05-18/com.shwfed.form.field.table/schema.ts": __vite_glob_0_20,
|
|
92593
|
-
"../fields/2026-05-20/com.shwfed.form.field.collapsible/schema.ts": __vite_glob_0_21
|
|
92747
|
+
"../fields/2026-05-20/com.shwfed.form.field.collapsible/schema.ts": __vite_glob_0_21,
|
|
92748
|
+
"../fields/2026-05-23/com.shwfed.form.field.tree.multi/schema.ts": __vite_glob_0_22
|
|
92594
92749
|
});
|
|
92595
92750
|
const configModules$1 = /* @__PURE__ */ Object.assign({
|
|
92596
92751
|
"../fields/2026-04-22/com.shwfed.form.field.markdown/config.vue": __vite_glob_2_5,
|
|
@@ -92614,7 +92769,8 @@ const configModules$1 = /* @__PURE__ */ Object.assign({
|
|
|
92614
92769
|
"../fields/2026-05-17/com.shwfed.form.field.checkbox.group/config.vue": __vite_glob_2_5,
|
|
92615
92770
|
"../fields/2026-05-17/com.shwfed.form.field.radio.group/config.vue": __vite_glob_2_5,
|
|
92616
92771
|
"../fields/2026-05-18/com.shwfed.form.field.table/config.vue": __vite_glob_2_5,
|
|
92617
|
-
"../fields/2026-05-20/com.shwfed.form.field.collapsible/config.vue": __vite_glob_2_5
|
|
92772
|
+
"../fields/2026-05-20/com.shwfed.form.field.collapsible/config.vue": __vite_glob_2_5,
|
|
92773
|
+
"../fields/2026-05-23/com.shwfed.form.field.tree.multi/config.vue": __vite_glob_2_5
|
|
92618
92774
|
});
|
|
92619
92775
|
const runtimeModules$1 = /* @__PURE__ */ Object.assign({
|
|
92620
92776
|
"../fields/2026-04-22/com.shwfed.form.field.markdown/runtime.vue": __vite_glob_2_5,
|
|
@@ -92638,7 +92794,8 @@ const runtimeModules$1 = /* @__PURE__ */ Object.assign({
|
|
|
92638
92794
|
"../fields/2026-05-17/com.shwfed.form.field.checkbox.group/runtime.vue": __vite_glob_2_5,
|
|
92639
92795
|
"../fields/2026-05-17/com.shwfed.form.field.radio.group/runtime.vue": __vite_glob_2_5,
|
|
92640
92796
|
"../fields/2026-05-18/com.shwfed.form.field.table/runtime.vue": __vite_glob_2_5,
|
|
92641
|
-
"../fields/2026-05-20/com.shwfed.form.field.collapsible/runtime.vue": __vite_glob_2_5
|
|
92797
|
+
"../fields/2026-05-20/com.shwfed.form.field.collapsible/runtime.vue": __vite_glob_2_5,
|
|
92798
|
+
"../fields/2026-05-23/com.shwfed.form.field.tree.multi/runtime.vue": __vite_glob_2_5
|
|
92642
92799
|
});
|
|
92643
92800
|
const sourceKey = (type2, compatibilityDate2) => `${type2}@${compatibilityDate2}`;
|
|
92644
92801
|
const registry$1 = defineRegistry({
|
|
@@ -92711,7 +92868,7 @@ function getFields() {
|
|
|
92711
92868
|
}));
|
|
92712
92869
|
return _fields;
|
|
92713
92870
|
}
|
|
92714
|
-
new Proxy([], {
|
|
92871
|
+
const FIELDS = new Proxy([], {
|
|
92715
92872
|
get(_, prop) {
|
|
92716
92873
|
const list2 = getFields();
|
|
92717
92874
|
const v = list2[prop];
|
|
@@ -92728,7 +92885,9 @@ new Proxy([], {
|
|
|
92728
92885
|
}
|
|
92729
92886
|
});
|
|
92730
92887
|
function allFieldSchemas(configure) {
|
|
92731
|
-
return getFields().map((entry) => entry.schema(configure)
|
|
92888
|
+
return getFields().map((entry) => entry.schema(configure).annotations({
|
|
92889
|
+
identifier: `${entry.type}@${entry.compatibilityDate}`
|
|
92890
|
+
}));
|
|
92732
92891
|
}
|
|
92733
92892
|
const KIND$1 = "shwfed.component.form";
|
|
92734
92893
|
function unitFields(configure) {
|
|
@@ -93092,32 +93251,20 @@ function numberExpression(configure) {
|
|
|
93092
93251
|
});
|
|
93093
93252
|
}
|
|
93094
93253
|
function dataSourceSchema(configure) {
|
|
93095
|
-
const
|
|
93096
|
-
configure: (env) => {
|
|
93097
|
-
configure(env);
|
|
93098
|
-
},
|
|
93099
|
-
resultType: "HttpRequest"
|
|
93100
|
-
});
|
|
93101
|
-
const CelData = Expression({
|
|
93102
|
-
configure: (env) => {
|
|
93103
|
-
configure(env);
|
|
93104
|
-
env.registerVariable("json", "optional<dyn>", {
|
|
93105
|
-
description: "HTTP 响应体(已解析 JSON);未配置 request 时为 none"
|
|
93106
|
-
});
|
|
93107
|
-
},
|
|
93108
|
-
resultType: isListType
|
|
93109
|
-
});
|
|
93254
|
+
const base2 = DataSource(configure);
|
|
93110
93255
|
return Struct({
|
|
93111
93256
|
id: UUID.annotations({ description: "数据源唯一标识" }),
|
|
93112
93257
|
name: String$.pipe(pattern(/^[a-z_]\w*$/i)).annotations({
|
|
93113
93258
|
title: "变量名",
|
|
93114
93259
|
description: "在 X / Y 表达式中引用该数据源的 CEL 标识符(字母或下划线开头,仅含字母、数字、下划线)"
|
|
93115
93260
|
}),
|
|
93116
|
-
|
|
93261
|
+
// Chart-specific phrasing wins for chart UX: the `data` description ends
|
|
93262
|
+
// with "结果以上面的变量名暴露给 X / Y", which is chart-only context.
|
|
93263
|
+
request: base2.fields.request.annotations({
|
|
93117
93264
|
title: "请求",
|
|
93118
93265
|
description: "可选的 HTTP 请求表达式;未配置时数据直接从 `数据` 表达式读取(通常引用上下文变量)"
|
|
93119
93266
|
}),
|
|
93120
|
-
data:
|
|
93267
|
+
data: base2.fields.data.annotations({
|
|
93121
93268
|
title: "数据",
|
|
93122
93269
|
description: "返回一个列表(`list<dyn>`)的 CEL 表达式;配置了 `请求` 时可通过 `json` 引用响应体。结果以上面的变量名暴露给 X / Y"
|
|
93123
93270
|
})
|
|
@@ -93303,7 +93450,9 @@ function getOrBuildUnion(configure) {
|
|
|
93303
93450
|
}).annotations({ identifier: "PageBlock" });
|
|
93304
93451
|
unionCache.set(configure, entry);
|
|
93305
93452
|
registerBlockRef(configure, entry.blockRef);
|
|
93306
|
-
entry.members = BLOCKS.map((b) => b.schema(configure, entry.blockRef)
|
|
93453
|
+
entry.members = BLOCKS.map((b) => b.schema(configure, entry.blockRef).annotations({
|
|
93454
|
+
identifier: `${b.type}@${b.compatibilityDate}`
|
|
93455
|
+
}));
|
|
93307
93456
|
entry.union = entry.members.length === 1 ? entry.members[0] : Union2(...entry.members);
|
|
93308
93457
|
return entry;
|
|
93309
93458
|
}
|
|
@@ -93325,31 +93474,11 @@ function PageConfig(configure) {
|
|
|
93325
93474
|
description: "页面组件完整配置"
|
|
93326
93475
|
});
|
|
93327
93476
|
}
|
|
93328
|
-
const pageSchema = PageConfig(() => {
|
|
93329
|
-
});
|
|
93330
|
-
function validateConfig(input) {
|
|
93331
|
-
const result = decodeUnknownEither(pageSchema, { errors: "all" })(input);
|
|
93332
|
-
if (isRight(result)) return { valid: true };
|
|
93333
|
-
const error2 = result.left;
|
|
93334
|
-
const issues = ArrayFormatter.formatErrorSync(error2).map((i) => ({
|
|
93335
|
-
path: i.path,
|
|
93336
|
-
message: i.message,
|
|
93337
|
-
tag: i._tag
|
|
93338
|
-
}));
|
|
93339
|
-
return {
|
|
93340
|
-
valid: false,
|
|
93341
|
-
message: TreeFormatter.formatErrorSync(error2),
|
|
93342
|
-
issues
|
|
93343
|
-
};
|
|
93344
|
-
}
|
|
93345
|
-
function getSchema() {
|
|
93346
|
-
return make$2(pageSchema);
|
|
93347
|
-
}
|
|
93348
93477
|
const isObject = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
|
|
93349
|
-
const branchesOf = (node) => {
|
|
93478
|
+
const branchesOf = (node, root) => {
|
|
93350
93479
|
const list2 = node.anyOf ?? node.oneOf;
|
|
93351
93480
|
if (!Array.isArray(list2)) return void 0;
|
|
93352
|
-
return list2.filter(isObject);
|
|
93481
|
+
return list2.filter(isObject).map((b) => resolveRef(b, root)).filter(isObject);
|
|
93353
93482
|
};
|
|
93354
93483
|
const typeEnumOf = (branch) => {
|
|
93355
93484
|
const props = isObject(branch.properties) ? branch.properties : void 0;
|
|
@@ -93385,8 +93514,8 @@ const parseSegment = (raw) => {
|
|
|
93385
93514
|
if (at >= 0) return { name: s.slice(0, at), pin: s.slice(at + 1), array: array2 };
|
|
93386
93515
|
return { name: s, array: array2 };
|
|
93387
93516
|
};
|
|
93388
|
-
const describeOptions = (node) => {
|
|
93389
|
-
const branches = branchesOf(node);
|
|
93517
|
+
const describeOptions = (node, root) => {
|
|
93518
|
+
const branches = branchesOf(node, root);
|
|
93390
93519
|
if (branches) {
|
|
93391
93520
|
const grouped = /* @__PURE__ */ new Map();
|
|
93392
93521
|
for (const b of branches) {
|
|
@@ -93422,7 +93551,7 @@ function narrowSchema(root, path) {
|
|
|
93422
93551
|
};
|
|
93423
93552
|
}
|
|
93424
93553
|
const { name, pin, array: array2 } = parseSegment(raw);
|
|
93425
|
-
const branches = branchesOf(node);
|
|
93554
|
+
const branches = branchesOf(node, root);
|
|
93426
93555
|
if (branches) {
|
|
93427
93556
|
const matches = branches.filter((b) => typeEnumOf(b).includes(name));
|
|
93428
93557
|
if (matches.length === 0) {
|
|
@@ -93430,7 +93559,7 @@ function narrowSchema(root, path) {
|
|
|
93430
93559
|
ok: false,
|
|
93431
93560
|
error: `no '${name}' branch at '${walked.join("/") || "<root>"}'`,
|
|
93432
93561
|
atPath: walked.join("/"),
|
|
93433
|
-
options: describeOptions(node)
|
|
93562
|
+
options: describeOptions(node, root)
|
|
93434
93563
|
};
|
|
93435
93564
|
}
|
|
93436
93565
|
let picked;
|
|
@@ -93464,7 +93593,7 @@ function narrowSchema(root, path) {
|
|
|
93464
93593
|
ok: false,
|
|
93465
93594
|
error: `can't resolve '${name}' at '${walked.join("/") || "<root>"}'`,
|
|
93466
93595
|
atPath: walked.join("/"),
|
|
93467
|
-
options: describeOptions(node)
|
|
93596
|
+
options: describeOptions(node, root)
|
|
93468
93597
|
};
|
|
93469
93598
|
}
|
|
93470
93599
|
if (array2) {
|
|
@@ -93484,17 +93613,290 @@ function narrowSchema(root, path) {
|
|
|
93484
93613
|
node = resolveRef(node, root);
|
|
93485
93614
|
return { ok: true, schema: node, resolvedPath: walked.join("/") };
|
|
93486
93615
|
}
|
|
93616
|
+
const pageSchema = PageConfig(() => {
|
|
93617
|
+
});
|
|
93618
|
+
function validateConfig(input) {
|
|
93619
|
+
const result = decodeUnknownEither(pageSchema, { errors: "all" })(input);
|
|
93620
|
+
if (isRight(result)) return { valid: true };
|
|
93621
|
+
const error2 = result.left;
|
|
93622
|
+
const issues = ArrayFormatter.formatErrorSync(error2).map((i) => ({
|
|
93623
|
+
path: i.path,
|
|
93624
|
+
message: i.message,
|
|
93625
|
+
tag: i._tag
|
|
93626
|
+
}));
|
|
93627
|
+
return {
|
|
93628
|
+
valid: false,
|
|
93629
|
+
message: TreeFormatter.formatErrorSync(error2),
|
|
93630
|
+
issues
|
|
93631
|
+
};
|
|
93632
|
+
}
|
|
93633
|
+
const KIND_NAMESPACES = [
|
|
93634
|
+
["com.shwfed.block.", "block"],
|
|
93635
|
+
["com.shwfed.form.field.", "field"],
|
|
93636
|
+
["com.shwfed.table.column.", "column"],
|
|
93637
|
+
["com.shwfed.actions.button.", "button"],
|
|
93638
|
+
["com.shwfed.actions.item.", "item"]
|
|
93639
|
+
];
|
|
93640
|
+
function kindOfType(t) {
|
|
93641
|
+
for (const [prefix, kind] of KIND_NAMESPACES) {
|
|
93642
|
+
if (t.startsWith(prefix)) return kind;
|
|
93643
|
+
}
|
|
93644
|
+
return void 0;
|
|
93645
|
+
}
|
|
93646
|
+
const isObj = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
|
|
93647
|
+
function refId(node) {
|
|
93648
|
+
if (!isObj(node) || typeof node.$ref !== "string") return void 0;
|
|
93649
|
+
if (!node.$ref.startsWith("#/$defs/")) return void 0;
|
|
93650
|
+
return node.$ref.slice("#/$defs/".length);
|
|
93651
|
+
}
|
|
93652
|
+
function classifyDefs(defs) {
|
|
93653
|
+
const leafIds = /* @__PURE__ */ new Map();
|
|
93654
|
+
for (const [id2, def] of Object.entries(defs)) {
|
|
93655
|
+
if (!isObj(def)) continue;
|
|
93656
|
+
const props = isObj(def.properties) ? def.properties : void 0;
|
|
93657
|
+
const typeProp = props && isObj(props.type) ? props.type : void 0;
|
|
93658
|
+
const typeEnum = typeProp?.enum;
|
|
93659
|
+
if (!Array.isArray(typeEnum) || typeof typeEnum[0] !== "string") continue;
|
|
93660
|
+
const cdProp = props && isObj(props.compatibilityDate) ? props.compatibilityDate : void 0;
|
|
93661
|
+
const cdEnum = cdProp?.enum;
|
|
93662
|
+
if (!Array.isArray(cdEnum) || cdEnum.length !== 1) continue;
|
|
93663
|
+
const kind = kindOfType(typeEnum[0]);
|
|
93664
|
+
if (kind) leafIds.set(id2, kind);
|
|
93665
|
+
}
|
|
93666
|
+
const containerIds = /* @__PURE__ */ new Map();
|
|
93667
|
+
for (const [id2, def] of Object.entries(defs)) {
|
|
93668
|
+
if (!isObj(def)) continue;
|
|
93669
|
+
const arr = def.anyOf ?? def.oneOf;
|
|
93670
|
+
if (!Array.isArray(arr) || arr.length === 0) continue;
|
|
93671
|
+
const kinds = /* @__PURE__ */ new Set();
|
|
93672
|
+
let allLeaf = true;
|
|
93673
|
+
for (const branch of arr) {
|
|
93674
|
+
const bid = refId(branch);
|
|
93675
|
+
const kind = bid !== void 0 ? leafIds.get(bid) : void 0;
|
|
93676
|
+
if (!kind) {
|
|
93677
|
+
allLeaf = false;
|
|
93678
|
+
break;
|
|
93679
|
+
}
|
|
93680
|
+
kinds.add(kind);
|
|
93681
|
+
}
|
|
93682
|
+
if (allLeaf && kinds.size === 1) containerIds.set(id2, [...kinds][0]);
|
|
93683
|
+
}
|
|
93684
|
+
return { leafIds, containerIds };
|
|
93685
|
+
}
|
|
93686
|
+
function placeholder(kind) {
|
|
93687
|
+
return {
|
|
93688
|
+
"x-shwfed-slot": kind,
|
|
93689
|
+
"description": `可注册的 ${kind} 槽位。先调用 search_metadata(kind='${kind}') 列出可选 (type, compatibilityDate);再调用 get_schema(path='<type>') 获取该项的详细 schema。`
|
|
93690
|
+
};
|
|
93691
|
+
}
|
|
93692
|
+
function rewriteNode(node, leafIds, containerIds) {
|
|
93693
|
+
if (Array.isArray(node)) return node.map((n) => rewriteNode(n, leafIds, containerIds));
|
|
93694
|
+
if (!isObj(node)) return node;
|
|
93695
|
+
const arr = node.anyOf ?? node.oneOf;
|
|
93696
|
+
if (Array.isArray(arr) && arr.length > 0) {
|
|
93697
|
+
const kinds = /* @__PURE__ */ new Set();
|
|
93698
|
+
let allLeaf = true;
|
|
93699
|
+
for (const branch of arr) {
|
|
93700
|
+
const bid = refId(branch);
|
|
93701
|
+
const kind = bid !== void 0 ? leafIds.get(bid) : void 0;
|
|
93702
|
+
if (!kind) {
|
|
93703
|
+
allLeaf = false;
|
|
93704
|
+
break;
|
|
93705
|
+
}
|
|
93706
|
+
kinds.add(kind);
|
|
93707
|
+
}
|
|
93708
|
+
if (allLeaf && kinds.size === 1) return placeholder([...kinds][0]);
|
|
93709
|
+
}
|
|
93710
|
+
const id2 = refId(node);
|
|
93711
|
+
if (id2 !== void 0) {
|
|
93712
|
+
const cKind = containerIds.get(id2);
|
|
93713
|
+
if (cKind) return placeholder(cKind);
|
|
93714
|
+
const lKind = leafIds.get(id2);
|
|
93715
|
+
if (lKind) return placeholder(lKind);
|
|
93716
|
+
}
|
|
93717
|
+
const out = {};
|
|
93718
|
+
for (const [k, v] of Object.entries(node)) out[k] = rewriteNode(v, leafIds, containerIds);
|
|
93719
|
+
return out;
|
|
93720
|
+
}
|
|
93721
|
+
function collectRefs(node, sink) {
|
|
93722
|
+
if (Array.isArray(node)) {
|
|
93723
|
+
for (const n of node) collectRefs(n, sink);
|
|
93724
|
+
return;
|
|
93725
|
+
}
|
|
93726
|
+
if (!isObj(node)) return;
|
|
93727
|
+
const id2 = refId(node);
|
|
93728
|
+
if (id2 !== void 0) sink.add(id2);
|
|
93729
|
+
for (const v of Object.values(node)) collectRefs(v, sink);
|
|
93730
|
+
}
|
|
93731
|
+
function postProcessSchema(node, root) {
|
|
93732
|
+
if (!isObj(root)) return node;
|
|
93733
|
+
const defs = root.$defs ?? {};
|
|
93734
|
+
const { leafIds, containerIds } = classifyDefs(defs);
|
|
93735
|
+
const inputForRewrite = isObj(node) && node.$defs !== void 0 ? Object.fromEntries(Object.entries(node).filter(([k]) => k !== "$defs")) : node;
|
|
93736
|
+
const rewritten = rewriteNode(inputForRewrite, leafIds, containerIds);
|
|
93737
|
+
const queue = [];
|
|
93738
|
+
const seen = /* @__PURE__ */ new Set();
|
|
93739
|
+
const initial = /* @__PURE__ */ new Set();
|
|
93740
|
+
collectRefs(rewritten, initial);
|
|
93741
|
+
for (const id2 of initial) {
|
|
93742
|
+
if (!seen.has(id2)) {
|
|
93743
|
+
seen.add(id2);
|
|
93744
|
+
queue.push(id2);
|
|
93745
|
+
}
|
|
93746
|
+
}
|
|
93747
|
+
const keptDefs = {};
|
|
93748
|
+
while (queue.length > 0) {
|
|
93749
|
+
const id2 = queue.shift();
|
|
93750
|
+
if (leafIds.has(id2) || containerIds.has(id2)) continue;
|
|
93751
|
+
const def = defs[id2];
|
|
93752
|
+
if (def === void 0) continue;
|
|
93753
|
+
const rewrittenDef = rewriteNode(def, leafIds, containerIds);
|
|
93754
|
+
keptDefs[id2] = rewrittenDef;
|
|
93755
|
+
const sub = /* @__PURE__ */ new Set();
|
|
93756
|
+
collectRefs(rewrittenDef, sub);
|
|
93757
|
+
for (const s of sub) {
|
|
93758
|
+
if (!seen.has(s)) {
|
|
93759
|
+
seen.add(s);
|
|
93760
|
+
queue.push(s);
|
|
93761
|
+
}
|
|
93762
|
+
}
|
|
93763
|
+
}
|
|
93764
|
+
if (!isObj(rewritten)) return rewritten;
|
|
93765
|
+
const { $defs: _omit, ...rest } = rewritten;
|
|
93766
|
+
if (Object.keys(keptDefs).length === 0) return rest;
|
|
93767
|
+
return { ...rest, $defs: keptDefs };
|
|
93768
|
+
}
|
|
93769
|
+
function getSchema() {
|
|
93770
|
+
return make$2(pageSchema);
|
|
93771
|
+
}
|
|
93772
|
+
function lookupLeafByType(defs, type2, date2) {
|
|
93773
|
+
if (date2) {
|
|
93774
|
+
const id22 = `${type2}@${date2}`;
|
|
93775
|
+
const def = defs[id22];
|
|
93776
|
+
if (def !== void 0) return { id: id22, def };
|
|
93777
|
+
return void 0;
|
|
93778
|
+
}
|
|
93779
|
+
const candidates = Object.keys(defs).filter((k) => k.startsWith(`${type2}@`));
|
|
93780
|
+
if (candidates.length === 0) return void 0;
|
|
93781
|
+
candidates.sort();
|
|
93782
|
+
const id2 = candidates[candidates.length - 1];
|
|
93783
|
+
return { id: id2, def: defs[id2] };
|
|
93784
|
+
}
|
|
93785
|
+
function getSchemaAtPath(path) {
|
|
93786
|
+
const root = getSchema();
|
|
93787
|
+
if (!path || !path.trim()) {
|
|
93788
|
+
return { ok: true, path: "", schema: postProcessSchema(root, root) };
|
|
93789
|
+
}
|
|
93790
|
+
const trimmed = path.trim();
|
|
93791
|
+
if (!trimmed.includes("/")) {
|
|
93792
|
+
if (!isObj(root)) {
|
|
93793
|
+
return { ok: false, error: "schema root is not an object" };
|
|
93794
|
+
}
|
|
93795
|
+
const defs = root.$defs ?? {};
|
|
93796
|
+
const atIdx = trimmed.indexOf("@");
|
|
93797
|
+
const type2 = atIdx >= 0 ? trimmed.slice(0, atIdx) : trimmed;
|
|
93798
|
+
const date2 = atIdx >= 0 ? trimmed.slice(atIdx + 1) : void 0;
|
|
93799
|
+
const found = lookupLeafByType(defs, type2, date2);
|
|
93800
|
+
if (!found) {
|
|
93801
|
+
return {
|
|
93802
|
+
ok: false,
|
|
93803
|
+
error: date2 ? `no leaf '${type2}@${date2}'` : `no leaf with type '${type2}'`,
|
|
93804
|
+
options: "call search_metadata to discover available (type, compatibilityDate) values"
|
|
93805
|
+
};
|
|
93806
|
+
}
|
|
93807
|
+
return {
|
|
93808
|
+
ok: true,
|
|
93809
|
+
path: found.id,
|
|
93810
|
+
schema: postProcessSchema(found.def, root)
|
|
93811
|
+
};
|
|
93812
|
+
}
|
|
93813
|
+
const r = narrowSchema(root, trimmed);
|
|
93814
|
+
if (!r.ok) {
|
|
93815
|
+
return { ok: false, error: r.error, atPath: r.atPath, options: r.options };
|
|
93816
|
+
}
|
|
93817
|
+
return {
|
|
93818
|
+
ok: true,
|
|
93819
|
+
path: r.resolvedPath,
|
|
93820
|
+
schema: postProcessSchema(r.schema, root)
|
|
93821
|
+
};
|
|
93822
|
+
}
|
|
93823
|
+
function listMetadata(opts = {}) {
|
|
93824
|
+
const items2 = [];
|
|
93825
|
+
for (const e of BLOCKS) {
|
|
93826
|
+
items2.push({
|
|
93827
|
+
kind: "block",
|
|
93828
|
+
type: e.type,
|
|
93829
|
+
compatibilityDate: e.compatibilityDate,
|
|
93830
|
+
name: e.metadata.name,
|
|
93831
|
+
icon: e.metadata.icon
|
|
93832
|
+
});
|
|
93833
|
+
}
|
|
93834
|
+
for (const e of FIELDS) {
|
|
93835
|
+
const m = {
|
|
93836
|
+
kind: "field",
|
|
93837
|
+
type: e.type,
|
|
93838
|
+
compatibilityDate: e.compatibilityDate,
|
|
93839
|
+
name: e.metadata.name,
|
|
93840
|
+
icon: e.metadata.icon
|
|
93841
|
+
};
|
|
93842
|
+
if (e.deprecated) m.deprecated = true;
|
|
93843
|
+
if (e.supersededBy) m.supersededBy = { type: e.supersededBy.type, compatibilityDate: e.supersededBy.compatibilityDate };
|
|
93844
|
+
items2.push(m);
|
|
93845
|
+
}
|
|
93846
|
+
for (const e of COLUMNS) {
|
|
93847
|
+
const m = {
|
|
93848
|
+
kind: "column",
|
|
93849
|
+
type: e.type,
|
|
93850
|
+
compatibilityDate: e.compatibilityDate,
|
|
93851
|
+
name: e.metadata.name,
|
|
93852
|
+
icon: e.metadata.icon
|
|
93853
|
+
};
|
|
93854
|
+
if (e.deprecated) m.deprecated = true;
|
|
93855
|
+
if (e.supersededBy) m.supersededBy = { type: e.supersededBy.type, compatibilityDate: e.supersededBy.compatibilityDate };
|
|
93856
|
+
items2.push(m);
|
|
93857
|
+
}
|
|
93858
|
+
for (const e of BUTTONS) {
|
|
93859
|
+
const m = {
|
|
93860
|
+
kind: "button",
|
|
93861
|
+
type: e.type,
|
|
93862
|
+
compatibilityDate: e.compatibilityDate,
|
|
93863
|
+
name: e.metadata.name,
|
|
93864
|
+
icon: e.metadata.icon
|
|
93865
|
+
};
|
|
93866
|
+
if (e.deprecated) m.deprecated = true;
|
|
93867
|
+
items2.push(m);
|
|
93868
|
+
}
|
|
93869
|
+
for (const e of ITEMS) {
|
|
93870
|
+
items2.push({
|
|
93871
|
+
kind: "item",
|
|
93872
|
+
type: e.type,
|
|
93873
|
+
compatibilityDate: e.compatibilityDate,
|
|
93874
|
+
name: e.metadata.name,
|
|
93875
|
+
icon: e.metadata.icon
|
|
93876
|
+
});
|
|
93877
|
+
}
|
|
93878
|
+
const q = opts.query?.trim().toLowerCase();
|
|
93879
|
+
return items2.filter((m) => {
|
|
93880
|
+
if (opts.kind && m.kind !== opts.kind) return false;
|
|
93881
|
+
if (q && !m.type.toLowerCase().includes(q) && !m.name.toLowerCase().includes(q)) return false;
|
|
93882
|
+
return true;
|
|
93883
|
+
});
|
|
93884
|
+
}
|
|
93487
93885
|
const server = new McpServer({
|
|
93488
93886
|
name: "@shwfed/config",
|
|
93489
93887
|
version: "0.1.0"
|
|
93490
93888
|
}, {
|
|
93491
93889
|
instructions: [
|
|
93492
|
-
"Tools for authoring ShwfedConfig JSON.
|
|
93890
|
+
"Tools for authoring ShwfedConfig JSON. The schema is organized so the agent never pulls every registerable at once — it discovers them via `search_metadata` and fetches each one with `get_schema(path='<type>')` on demand.",
|
|
93493
93891
|
"",
|
|
93494
|
-
"
|
|
93495
|
-
"1.
|
|
93496
|
-
"2.
|
|
93497
|
-
"3.
|
|
93892
|
+
"Typical workflow:",
|
|
93893
|
+
"1. `get_schema()` with no path — returns the page skeleton. Union slots (`blocks[]`, `columns[]`, `fields[]`, `buttons[]`, `items[]`) appear as thin placeholders carrying `x-shwfed-slot: <kind>`. They do NOT enumerate the available types.",
|
|
93894
|
+
"2. `search_metadata(kind=<slot kind>)` — lists every registerable for that kind: `(type, compatibilityDate, name, icon)` plus deprecation info. Optional `query` filters by substring against `type` and `name`.",
|
|
93895
|
+
"3. `get_schema(path='<type>')` — fetches the chosen leaf's schema, with its own inner union slots also replaced by placeholders. Use `<type>@<compatibilityDate>` to pin a version; bare `<type>` picks the latest. Slash-separated paths still work for stepping through the tree (e.g. `slot/blocks[]/com.shwfed.block.form/form`).",
|
|
93896
|
+
"4. `validate_config` — validates a draft. Iterate until it returns `{ valid: true }`. CEL expressions are accepted as strings without evaluation.",
|
|
93897
|
+
"5. (Optional) `preview_config` / `stop_preview` — render the result in a localhost browser tab.",
|
|
93898
|
+
"",
|
|
93899
|
+
"Versioning rules: the same `type` may appear at multiple `compatibilityDate`s with DIFFERENT contracts — they are not interchangeable. Always pick the LATEST `compatibilityDate` for new entries (this is the default when you pass bare `<type>`). When editing an existing config that uses an older `compatibilityDate`, prefer migrating it to the latest version and tell the user you did so, instead of preserving the old version silently."
|
|
93498
93900
|
].join("\n")
|
|
93499
93901
|
});
|
|
93500
93902
|
server.registerTool("validate_config", {
|
|
@@ -93514,27 +93916,23 @@ server.registerTool("validate_config", {
|
|
|
93514
93916
|
server.registerTool("get_schema", {
|
|
93515
93917
|
title: "Get ShwfedConfig JSON Schema",
|
|
93516
93918
|
description: [
|
|
93517
|
-
"Returns
|
|
93919
|
+
"Returns a JSON Schema (draft-07) fragment for a portion of the ShwfedConfig.",
|
|
93920
|
+
"",
|
|
93921
|
+
"Without `path`, returns the page-level skeleton. Union slots collapse into thin placeholders with `x-shwfed-slot: <kind>` and a hint to call `search_metadata` and then `get_schema(path='<type>')` — the leaves themselves are not enumerated.",
|
|
93518
93922
|
"",
|
|
93519
|
-
"
|
|
93520
|
-
" - `
|
|
93521
|
-
" - `
|
|
93522
|
-
"
|
|
93523
|
-
"
|
|
93524
|
-
"
|
|
93923
|
+
"With `path`, two syntaxes are accepted:",
|
|
93924
|
+
" - `<type>` or `<type>@<compatibilityDate>` (no slash) — direct leaf lookup. Bare `<type>` picks the latest `compatibilityDate`; pin with `@<date>` for an older version. Example: `com.shwfed.form.field.text`, `com.shwfed.block.table@2026-05-06`.",
|
|
93925
|
+
" - `<segment>/<segment>/…` — step through the tree by property name, with `[]` to enter an array's `items` and `<type>` (optionally `@<date>`) to pick a union branch. Example: `slot/blocks[]/com.shwfed.block.table/columns[]/com.shwfed.table.column.text`.",
|
|
93926
|
+
"",
|
|
93927
|
+
"Inner union slots in the returned schema are also collapsed to placeholders, so a leaf fetch is bounded in size. To explore an inner slot, fetch that slot's leaf separately with another `get_schema(path='<type>')` call.",
|
|
93928
|
+
"",
|
|
93929
|
+
"Versioning: the same `type` may be published at multiple `compatibilityDate`s with incompatible contracts. For new entries, prefer the latest. For existing configs on older dates, prefer migrating to the latest and report the migration."
|
|
93525
93930
|
].join("\n"),
|
|
93526
93931
|
inputSchema: {
|
|
93527
|
-
path: string$1().optional().describe("Optional
|
|
93932
|
+
path: string$1().optional().describe("Optional path or leaf shortcut. See description for syntax.")
|
|
93528
93933
|
}
|
|
93529
93934
|
}, async ({ path }) => {
|
|
93530
|
-
const
|
|
93531
|
-
if (!path) {
|
|
93532
|
-
return {
|
|
93533
|
-
content: [{ type: "text", text: JSON.stringify(schema2, null, 2) }],
|
|
93534
|
-
structuredContent: schema2
|
|
93535
|
-
};
|
|
93536
|
-
}
|
|
93537
|
-
const result = narrowSchema(schema2, path);
|
|
93935
|
+
const result = getSchemaAtPath(path);
|
|
93538
93936
|
if (!result.ok) {
|
|
93539
93937
|
const payload2 = { error: result.error, atPath: result.atPath, options: result.options };
|
|
93540
93938
|
return {
|
|
@@ -93543,7 +93941,33 @@ server.registerTool("get_schema", {
|
|
|
93543
93941
|
isError: true
|
|
93544
93942
|
};
|
|
93545
93943
|
}
|
|
93546
|
-
const payload = { path: result.
|
|
93944
|
+
const payload = { path: result.path, schema: result.schema };
|
|
93945
|
+
return {
|
|
93946
|
+
content: [{ type: "text", text: JSON.stringify(payload, null, 2) }],
|
|
93947
|
+
structuredContent: payload
|
|
93948
|
+
};
|
|
93949
|
+
});
|
|
93950
|
+
server.registerTool("search_metadata", {
|
|
93951
|
+
title: "List or search registerable items",
|
|
93952
|
+
description: [
|
|
93953
|
+
"Returns metadata for every registerable item (block, field, column, button, item). Use this to discover what `(type, compatibilityDate)` values are valid at a given slot before calling `get_schema(path='<type>')` to fetch the chosen leaf's detailed schema.",
|
|
93954
|
+
"",
|
|
93955
|
+
"Each result carries:",
|
|
93956
|
+
" - `kind`: which slot the entry plugs into (`block` | `field` | `column` | `button` | `item`).",
|
|
93957
|
+
" - `type`, `compatibilityDate`: identity. The same `type` may appear at multiple dates with incompatible contracts.",
|
|
93958
|
+
" - `name`, `icon`: human-readable label and icon name (Iconify slug).",
|
|
93959
|
+
" - `deprecated`: present and `true` when the entry is superseded.",
|
|
93960
|
+
" - `supersededBy`: when known, the `(type, compatibilityDate)` to migrate to.",
|
|
93961
|
+
"",
|
|
93962
|
+
"Filter with `kind` (single kind) and/or `query` (case-insensitive substring against `type` and `name`). Omit both to dump everything."
|
|
93963
|
+
].join("\n"),
|
|
93964
|
+
inputSchema: {
|
|
93965
|
+
kind: _enum$1(["block", "field", "column", "button", "item"]).optional().describe("Restrict results to one slot kind."),
|
|
93966
|
+
query: string$1().optional().describe("Case-insensitive substring matched against `type` and `name`.")
|
|
93967
|
+
}
|
|
93968
|
+
}, async ({ kind, query }) => {
|
|
93969
|
+
const items2 = listMetadata({ kind, query });
|
|
93970
|
+
const payload = { count: items2.length, items: items2 };
|
|
93547
93971
|
return {
|
|
93548
93972
|
content: [{ type: "text", text: JSON.stringify(payload, null, 2) }],
|
|
93549
93973
|
structuredContent: payload
|