@shwfed/config 2.3.28 → 2.3.29

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.
Files changed (127) hide show
  1. package/dist/mcp.mjs +3124 -1268
  2. package/dist/module.json +1 -1
  3. package/dist/preview/assets/{config-fvkC2rB8.js → config-6IiXCmyu.js} +1 -1
  4. package/dist/preview/assets/{config--PcXQV_r.js → config-BJzUh1_G.js} +1 -1
  5. package/dist/preview/assets/{config-B5avpKJE.js → config-Bl80ye-i.js} +1 -1
  6. package/dist/preview/assets/{config-DDfTl9Cs.js → config-CZOeZ8ty.js} +1 -1
  7. package/dist/preview/assets/{config-CJHPt8Gx.js → config-DaZD4ZSa.js} +1 -1
  8. package/dist/preview/assets/{config-CNo3isHa.js → config-DhsbcNzx.js} +1 -1
  9. package/dist/preview/assets/{config-5KVDXgUF.js → config-Diuyh0Ex.js} +1 -1
  10. package/dist/preview/assets/{config-D0_1yZdF.js → config-aK67Rsw5.js} +1 -1
  11. package/dist/preview/assets/{config-CQHS6cZe.js → config-rpX_Mc6I.js} +1 -1
  12. package/dist/preview/assets/{definition.vue_vue_type_script_setup_true_lang-RM-qDh0R.js → definition.vue_vue_type_script_setup_true_lang-C_jU8d47.js} +1 -1
  13. package/dist/preview/assets/{index-a2QwAots.css → index-2eQR4s3q.css} +1 -1
  14. package/dist/preview/assets/index-DEF3_MKr.js +659 -0
  15. package/dist/preview/assets/index-Df-thth9.js +1 -0
  16. package/dist/preview/assets/{runtime-Dr_10emf.js → runtime-3p1K6te5.js} +1 -1
  17. package/dist/preview/assets/{runtime-C_XX6a0C.js → runtime-BcLnafic.js} +1 -1
  18. package/dist/preview/assets/{runtime-CtqwtTE_.js → runtime-CSaV-359.js} +1 -1
  19. package/dist/preview/assets/{runtime-CCbyrqQT.js → runtime-CjR8Vi5N.js} +1 -1
  20. package/dist/preview/assets/{runtime-BGTWf-O7.js → runtime-D_fJCKX_.js} +1 -1
  21. package/dist/preview/assets/{runtime-BPjZQmcY.js → runtime-DpeCgGEG.js} +1 -1
  22. package/dist/preview/assets/{runtime-DcrzodsN.js → runtime-K2a1x0TJ.js} +1 -1
  23. package/dist/preview/assets/{runtime-Dy4ZmQ-n.js → runtime-g9Zu3VNQ.js} +1 -1
  24. package/dist/preview/assets/{runtime-Bq3fmxeF.js → runtime-jTnh_6Dm.js} +1 -1
  25. package/dist/preview/index.html +2 -2
  26. package/dist/runtime/components/block-layout-editor/index.d.vue.ts +10 -2
  27. package/dist/runtime/components/block-layout-editor/index.vue +44 -8
  28. package/dist/runtime/components/block-layout-editor/index.vue.d.ts +10 -2
  29. package/dist/runtime/components/config/config.vue +35 -0
  30. package/dist/runtime/components/config/use-editor.d.ts +11 -1
  31. package/dist/runtime/components/config/use-editor.js +27 -1
  32. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/config.d.vue.ts +163 -0
  33. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/config.vue +745 -0
  34. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/config.vue.d.ts +163 -0
  35. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/runtime.d.vue.ts +8 -0
  36. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/runtime.vue +383 -0
  37. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/runtime.vue.d.ts +8 -0
  38. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/schema.d.ts +264 -0
  39. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/schema.js +183 -0
  40. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/config.d.vue.ts +163 -0
  41. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/config.vue +745 -0
  42. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/config.vue.d.ts +163 -0
  43. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/runtime.d.vue.ts +8 -0
  44. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/runtime.vue +402 -0
  45. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/runtime.vue.d.ts +8 -0
  46. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/schema.d.ts +264 -0
  47. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/schema.js +209 -0
  48. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/config.d.vue.ts +129 -0
  49. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/config.vue +618 -0
  50. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/config.vue.d.ts +129 -0
  51. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/runtime.d.vue.ts +8 -0
  52. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/runtime.vue +501 -0
  53. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/runtime.vue.d.ts +8 -0
  54. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/schema.d.ts +99 -0
  55. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/schema.js +133 -0
  56. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/config.d.vue.ts +127 -0
  57. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/config.vue +550 -0
  58. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/config.vue.d.ts +127 -0
  59. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/runtime.d.vue.ts +8 -0
  60. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/runtime.vue +496 -0
  61. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/runtime.vue.d.ts +8 -0
  62. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/schema.d.ts +96 -0
  63. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/schema.js +125 -0
  64. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/config.d.vue.ts +133 -0
  65. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/config.vue +605 -0
  66. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/config.vue.d.ts +133 -0
  67. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/runtime.d.vue.ts +8 -0
  68. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/runtime.vue +401 -0
  69. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/runtime.vue.d.ts +8 -0
  70. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/schema.d.ts +102 -0
  71. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/schema.js +142 -0
  72. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/config.d.vue.ts +131 -0
  73. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/config.vue +560 -0
  74. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/config.vue.d.ts +131 -0
  75. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/runtime.d.vue.ts +8 -0
  76. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/runtime.vue +395 -0
  77. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/runtime.vue.d.ts +8 -0
  78. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/schema.d.ts +96 -0
  79. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/schema.js +118 -0
  80. package/dist/runtime/components/form/fields/2026-05-28/tree-combobox-shared.d.ts +35 -0
  81. package/dist/runtime/components/form/fields/2026-05-28/tree-combobox-shared.js +31 -0
  82. package/dist/runtime/components/form/unit-config.vue +45 -1
  83. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/config.d.vue.ts +183 -0
  84. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/config.vue +931 -0
  85. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/config.vue.d.ts +183 -0
  86. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/runtime.d.vue.ts +9 -0
  87. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/runtime.vue +463 -0
  88. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/runtime.vue.d.ts +9 -0
  89. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/schema.d.ts +283 -0
  90. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/schema.js +275 -0
  91. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/config.d.vue.ts +183 -0
  92. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/config.vue +931 -0
  93. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/config.vue.d.ts +183 -0
  94. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/runtime.d.vue.ts +9 -0
  95. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/runtime.vue +414 -0
  96. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/runtime.vue.d.ts +9 -0
  97. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/schema.d.ts +283 -0
  98. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/schema.js +275 -0
  99. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-multi/config.d.vue.ts +133 -0
  100. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-multi/config.vue +632 -0
  101. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-multi/config.vue.d.ts +133 -0
  102. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-multi/runtime.d.vue.ts +9 -0
  103. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-multi/runtime.vue +461 -0
  104. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-multi/runtime.vue.d.ts +9 -0
  105. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-multi/schema.d.ts +93 -0
  106. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-multi/schema.js +161 -0
  107. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-single/config.d.vue.ts +131 -0
  108. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-single/config.vue +563 -0
  109. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-single/config.vue.d.ts +131 -0
  110. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-single/runtime.d.vue.ts +9 -0
  111. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-single/runtime.vue +443 -0
  112. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-single/runtime.vue.d.ts +9 -0
  113. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-single/schema.d.ts +90 -0
  114. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-single/schema.js +153 -0
  115. package/dist/runtime/components/table/columns/2026-05-28/tree-combobox-shared.d.ts +35 -0
  116. package/dist/runtime/components/table/columns/2026-05-28/tree-combobox-shared.js +31 -0
  117. package/dist/runtime/components/table/config.vue +1 -30
  118. package/dist/runtime/components/ui/command/CommandItem.d.vue.ts +7 -0
  119. package/dist/runtime/components/ui/command/CommandItem.vue +13 -4
  120. package/dist/runtime/components/ui/command/CommandItem.vue.d.ts +7 -0
  121. package/dist/runtime/share/clipboard.d.ts +26 -0
  122. package/dist/runtime/share/clipboard.js +82 -0
  123. package/dist/runtime/share/layout.d.ts +4 -0
  124. package/dist/runtime/share/layout.js +35 -0
  125. package/package.json +1 -1
  126. package/dist/preview/assets/index-DNd8J9Zv.js +0 -643
  127. package/dist/preview/assets/index-DrIMqXAa.js +0 -1
@@ -0,0 +1,264 @@
1
+ import { Schema } from 'effect';
2
+ import type { Environment } from '../../../../../vendor/cel-js/lib/index.js';
3
+ import type { MigrateFn, MigrateSource } from '../../../utils/resolve.js';
4
+ export declare const type: "com.shwfed.form.field.combobox.multi";
5
+ export declare const compatibilityDate: "2026-05-28";
6
+ export declare const metadata: {
7
+ readonly name: "下拉多选";
8
+ readonly icon: "fluent:chevron-down-20-regular";
9
+ readonly w: {
10
+ readonly initial: 8;
11
+ readonly min: 4;
12
+ readonly max: number;
13
+ };
14
+ readonly h: {
15
+ readonly initial: 2;
16
+ readonly min: 2;
17
+ readonly max: 2;
18
+ };
19
+ };
20
+ export declare function itemSchema(configure: (env: Environment) => void): Schema.Struct<{
21
+ id: Schema.refine<string, typeof Schema.String>;
22
+ label: Schema.refine<readonly [{
23
+ readonly locale: "zh";
24
+ readonly message: string;
25
+ }, ...{
26
+ readonly locale: "en" | "ja" | "ko";
27
+ readonly message: string;
28
+ }[]], Schema.TupleType<readonly [Schema.Struct<{
29
+ locale: Schema.Literal<["zh"]>;
30
+ message: Schema.SchemaClass<string, string, never>;
31
+ }>], [Schema.Struct<{
32
+ locale: Schema.Literal<["ja", "en", "ko"]>;
33
+ message: Schema.SchemaClass<string, string, never>;
34
+ }>]>>;
35
+ value: Schema.Union<[Schema.Struct<{
36
+ kind: Schema.Literal<["text"]>;
37
+ value: typeof Schema.String;
38
+ }>, Schema.Struct<{
39
+ kind: Schema.Literal<["number"]>;
40
+ value: typeof Schema.Number;
41
+ }>]>;
42
+ tooltip: Schema.optional<Schema.refine<readonly [{
43
+ readonly locale: "zh";
44
+ readonly message: string;
45
+ }, ...{
46
+ readonly locale: "en" | "ja" | "ko";
47
+ readonly message: string;
48
+ }[]], Schema.TupleType<readonly [Schema.Struct<{
49
+ locale: Schema.Literal<["zh"]>;
50
+ message: Schema.SchemaClass<string, string, never>;
51
+ }>], [Schema.Struct<{
52
+ locale: Schema.Literal<["ja", "en", "ko"]>;
53
+ message: Schema.SchemaClass<string, string, never>;
54
+ }>]>>>;
55
+ keywords: Schema.optional<Schema.Array$<typeof Schema.String>>;
56
+ }>;
57
+ export declare function remoteOptionsSchema(configure: (env: Environment) => void): Schema.Struct<{
58
+ kind: Schema.Literal<["remote"]>;
59
+ request: Schema.optional<Schema.Union<[Schema.Literal<[""]>, Schema.Schema<string, string, never>]>>;
60
+ options: Schema.Schema<string, string, never>;
61
+ optionValue: Schema.optionalWith<Schema.Schema<string, string, never>, {
62
+ default: () => string;
63
+ }>;
64
+ optionLabel: Schema.optionalWith<Schema.refine<readonly [{
65
+ readonly locale: "zh";
66
+ readonly message: string;
67
+ }, ...{
68
+ readonly locale: "en" | "ja" | "ko";
69
+ readonly message: string;
70
+ }[]], Schema.TupleType<readonly [Schema.Struct<{
71
+ locale: Schema.Literal<["zh"]>;
72
+ message: Schema.SchemaClass<string, string, never>;
73
+ }>], [Schema.Struct<{
74
+ locale: Schema.Literal<["ja", "en", "ko"]>;
75
+ message: Schema.SchemaClass<string, string, never>;
76
+ }>]>>, {
77
+ default: () => readonly [{
78
+ readonly locale: "zh";
79
+ readonly message: "";
80
+ }];
81
+ }>;
82
+ optionKeywords: Schema.optional<Schema.Schema<string, string, never>>;
83
+ }>;
84
+ export declare function optionsSchema(configure: (env: Environment) => void): Schema.Union<[Schema.Struct<{
85
+ kind: Schema.Literal<["static"]>;
86
+ items: Schema.optionalWith<Schema.Array$<Schema.Struct<{
87
+ id: Schema.refine<string, typeof Schema.String>;
88
+ label: Schema.refine<readonly [{
89
+ readonly locale: "zh";
90
+ readonly message: string;
91
+ }, ...{
92
+ readonly locale: "en" | "ja" | "ko";
93
+ readonly message: string;
94
+ }[]], Schema.TupleType<readonly [Schema.Struct<{
95
+ locale: Schema.Literal<["zh"]>;
96
+ message: Schema.SchemaClass<string, string, never>;
97
+ }>], [Schema.Struct<{
98
+ locale: Schema.Literal<["ja", "en", "ko"]>;
99
+ message: Schema.SchemaClass<string, string, never>;
100
+ }>]>>;
101
+ value: Schema.Union<[Schema.Struct<{
102
+ kind: Schema.Literal<["text"]>;
103
+ value: typeof Schema.String;
104
+ }>, Schema.Struct<{
105
+ kind: Schema.Literal<["number"]>;
106
+ value: typeof Schema.Number;
107
+ }>]>;
108
+ tooltip: Schema.optional<Schema.refine<readonly [{
109
+ readonly locale: "zh";
110
+ readonly message: string;
111
+ }, ...{
112
+ readonly locale: "en" | "ja" | "ko";
113
+ readonly message: string;
114
+ }[]], Schema.TupleType<readonly [Schema.Struct<{
115
+ locale: Schema.Literal<["zh"]>;
116
+ message: Schema.SchemaClass<string, string, never>;
117
+ }>], [Schema.Struct<{
118
+ locale: Schema.Literal<["ja", "en", "ko"]>;
119
+ message: Schema.SchemaClass<string, string, never>;
120
+ }>]>>>;
121
+ keywords: Schema.optional<Schema.Array$<typeof Schema.String>>;
122
+ }>>, {
123
+ default: () => readonly [];
124
+ }>;
125
+ }>, Schema.Struct<{
126
+ kind: Schema.Literal<["remote"]>;
127
+ request: Schema.optional<Schema.Union<[Schema.Literal<[""]>, Schema.Schema<string, string, never>]>>;
128
+ options: Schema.Schema<string, string, never>;
129
+ optionValue: Schema.optionalWith<Schema.Schema<string, string, never>, {
130
+ default: () => string;
131
+ }>;
132
+ optionLabel: Schema.optionalWith<Schema.refine<readonly [{
133
+ readonly locale: "zh";
134
+ readonly message: string;
135
+ }, ...{
136
+ readonly locale: "en" | "ja" | "ko";
137
+ readonly message: string;
138
+ }[]], Schema.TupleType<readonly [Schema.Struct<{
139
+ locale: Schema.Literal<["zh"]>;
140
+ message: Schema.SchemaClass<string, string, never>;
141
+ }>], [Schema.Struct<{
142
+ locale: Schema.Literal<["ja", "en", "ko"]>;
143
+ message: Schema.SchemaClass<string, string, never>;
144
+ }>]>>, {
145
+ default: () => readonly [{
146
+ readonly locale: "zh";
147
+ readonly message: "";
148
+ }];
149
+ }>;
150
+ optionKeywords: Schema.optional<Schema.Schema<string, string, never>>;
151
+ }>]>;
152
+ export declare function schema(configure: (env: Environment) => void): Schema.Struct<{
153
+ label: Schema.optional<Schema.TupleType<readonly [Schema.Struct<{
154
+ locale: Schema.Literal<["zh"]>;
155
+ message: Schema.SchemaClass<string, string, never>;
156
+ }>], [Schema.Struct<{
157
+ locale: Schema.Literal<["ja", "en", "ko"]>;
158
+ message: Schema.SchemaClass<string, string, never>;
159
+ }>]>>;
160
+ placeholder: Schema.optional<Schema.TupleType<readonly [Schema.Struct<{
161
+ locale: Schema.Literal<["zh"]>;
162
+ message: Schema.SchemaClass<string, string, never>;
163
+ }>], [Schema.Struct<{
164
+ locale: Schema.Literal<["ja", "en", "ko"]>;
165
+ message: Schema.SchemaClass<string, string, never>;
166
+ }>]>>;
167
+ tooltip: Schema.optional<Schema.TupleType<readonly [Schema.Struct<{
168
+ locale: Schema.Literal<["zh"]>;
169
+ message: Schema.SchemaClass<string, string, never>;
170
+ }>], [Schema.Struct<{
171
+ locale: Schema.Literal<["ja", "en", "ko"]>;
172
+ message: Schema.SchemaClass<string, string, never>;
173
+ }>]>>;
174
+ orientation: Schema.optional<Schema.Literal<["vertical", "floating"]>>;
175
+ binding: Schema.optional<Schema.refine<string, typeof Schema.String>>;
176
+ disabled: Schema.optional<Schema.Schema<string, string, never>>;
177
+ readonly: Schema.optional<Schema.Schema<string, string, never>>;
178
+ derived: Schema.optional<Schema.Struct<{
179
+ mode: Schema.Literal<["formula", "prefill"]>;
180
+ expression: Schema.Schema<string, string, never>;
181
+ }>>;
182
+ options: Schema.optionalWith<Schema.Union<[Schema.Struct<{
183
+ kind: Schema.Literal<["static"]>;
184
+ items: Schema.optionalWith<Schema.Array$<Schema.Struct<{
185
+ id: Schema.refine<string, typeof Schema.String>;
186
+ label: Schema.refine<readonly [{
187
+ readonly locale: "zh";
188
+ readonly message: string;
189
+ }, ...{
190
+ readonly locale: "en" | "ja" | "ko";
191
+ readonly message: string;
192
+ }[]], Schema.TupleType<readonly [Schema.Struct<{
193
+ locale: Schema.Literal<["zh"]>;
194
+ message: Schema.SchemaClass<string, string, never>;
195
+ }>], [Schema.Struct<{
196
+ locale: Schema.Literal<["ja", "en", "ko"]>;
197
+ message: Schema.SchemaClass<string, string, never>;
198
+ }>]>>;
199
+ value: Schema.Union<[Schema.Struct<{
200
+ kind: Schema.Literal<["text"]>;
201
+ value: typeof Schema.String;
202
+ }>, Schema.Struct<{
203
+ kind: Schema.Literal<["number"]>;
204
+ value: typeof Schema.Number;
205
+ }>]>;
206
+ tooltip: Schema.optional<Schema.refine<readonly [{
207
+ readonly locale: "zh";
208
+ readonly message: string;
209
+ }, ...{
210
+ readonly locale: "en" | "ja" | "ko";
211
+ readonly message: string;
212
+ }[]], Schema.TupleType<readonly [Schema.Struct<{
213
+ locale: Schema.Literal<["zh"]>;
214
+ message: Schema.SchemaClass<string, string, never>;
215
+ }>], [Schema.Struct<{
216
+ locale: Schema.Literal<["ja", "en", "ko"]>;
217
+ message: Schema.SchemaClass<string, string, never>;
218
+ }>]>>>;
219
+ keywords: Schema.optional<Schema.Array$<typeof Schema.String>>;
220
+ }>>, {
221
+ default: () => readonly [];
222
+ }>;
223
+ }>, Schema.Struct<{
224
+ kind: Schema.Literal<["remote"]>;
225
+ request: Schema.optional<Schema.Union<[Schema.Literal<[""]>, Schema.Schema<string, string, never>]>>;
226
+ options: Schema.Schema<string, string, never>;
227
+ optionValue: Schema.optionalWith<Schema.Schema<string, string, never>, {
228
+ default: () => string;
229
+ }>;
230
+ optionLabel: Schema.optionalWith<Schema.refine<readonly [{
231
+ readonly locale: "zh";
232
+ readonly message: string;
233
+ }, ...{
234
+ readonly locale: "en" | "ja" | "ko";
235
+ readonly message: string;
236
+ }[]], Schema.TupleType<readonly [Schema.Struct<{
237
+ locale: Schema.Literal<["zh"]>;
238
+ message: Schema.SchemaClass<string, string, never>;
239
+ }>], [Schema.Struct<{
240
+ locale: Schema.Literal<["ja", "en", "ko"]>;
241
+ message: Schema.SchemaClass<string, string, never>;
242
+ }>]>>, {
243
+ default: () => readonly [{
244
+ readonly locale: "zh";
245
+ readonly message: "";
246
+ }];
247
+ }>;
248
+ optionKeywords: Schema.optional<Schema.Schema<string, string, never>>;
249
+ }>]>, {
250
+ default: () => {
251
+ kind: "static";
252
+ items: readonly [];
253
+ };
254
+ }>;
255
+ id: Schema.refine<string, typeof Schema.String>;
256
+ displayName: Schema.optional<Schema.SchemaClass<string, string, never>>;
257
+ hidden: Schema.optional<Schema.Schema<string, string, never>>;
258
+ type: Schema.Literal<["com.shwfed.form.field.combobox.multi"]>;
259
+ compatibilityDate: Schema.Literal<["2026-05-28"]>;
260
+ }>;
261
+ export type Value = Schema.Schema.Type<ReturnType<typeof schema>>;
262
+ export declare function defaults(): Partial<Value>;
263
+ export declare const migrateFrom: ReadonlyArray<MigrateSource>;
264
+ export declare const migrate: MigrateFn;
@@ -0,0 +1,183 @@
1
+ import { Effect, Schema } from "effect";
2
+ import { Expression, LocaleMarkdown } from "../../../../../share/expression.js";
3
+ import { Locale } from "../../../../../share/locale.js";
4
+ import { commonFieldFields, derivedField, FieldOrientationSchema } from "../../../utils/common.js";
5
+ export const type = "com.shwfed.form.field.combobox.multi";
6
+ export const compatibilityDate = "2026-05-28";
7
+ export const metadata = {
8
+ name: "\u4E0B\u62C9\u591A\u9009",
9
+ icon: "fluent:chevron-down-20-regular",
10
+ w: { initial: 8, min: 4, max: Infinity },
11
+ h: { initial: 2, min: 2, max: 2 }
12
+ };
13
+ const isListType = (actual) => actual === "dyn" || actual.startsWith("list");
14
+ function configureWithOption(configure) {
15
+ return (env) => {
16
+ configure(env);
17
+ env.registerVariable("option", "dyn", { description: "`\u9009\u9879` \u8868\u8FBE\u5F0F\u4EA7\u51FA\u7684\u6570\u7EC4\u4E2D\u8FED\u4EE3\u5230\u7684\u5355\u4E2A\u5143\u7D20" });
18
+ };
19
+ }
20
+ function configureWithJson(configure) {
21
+ return (env) => {
22
+ configure(env);
23
+ env.registerVariable("json", "dyn", { description: "HTTP \u54CD\u5E94\u4F53\uFF08\u5DF2\u89E3\u6790 JSON\uFF09\uFF1B\u672A\u914D\u7F6E\u8BF7\u6C42\u6216\u8BF7\u6C42\u5931\u8D25\u65F6\u4E3A `null`" });
24
+ };
25
+ }
26
+ export function itemSchema(configure) {
27
+ const LocaleMd = LocaleMarkdown({ configure });
28
+ const TextValue = Schema.Struct({
29
+ kind: Schema.Literal("text"),
30
+ value: Schema.String
31
+ });
32
+ const NumberValue = Schema.Struct({
33
+ kind: Schema.Literal("number"),
34
+ value: Schema.Number
35
+ });
36
+ const ItemValue = Schema.Union(TextValue, NumberValue).annotations({
37
+ title: "\u503C",
38
+ description: "\u9009\u9879\u7ED1\u5B9A\u7684\u503C\uFF0C\u53EF\u4EE5\u662F\u6587\u672C\u6216\u6570\u5B57"
39
+ });
40
+ return Schema.Struct({
41
+ id: Schema.UUID.annotations({ description: "\u9009\u9879\u552F\u4E00\u6807\u8BC6\uFF0C\u7528\u4E8E\u7A33\u5B9A\u7684 v-for key" }),
42
+ label: LocaleMd.annotations({
43
+ title: "\u6807\u7B7E",
44
+ description: "\u9009\u9879\u5C55\u793A\u7684\u672C\u5730\u5316\u6587\u672C\uFF0C\u652F\u6301 Markdown \u4E0E `{{ form.foo }}` \u63D2\u503C"
45
+ }),
46
+ value: ItemValue,
47
+ tooltip: Schema.optional(LocaleMd.annotations({
48
+ title: "\u63D0\u793A",
49
+ description: "\u9F20\u6807\u60AC\u505C\u5728\u9009\u9879\u4E0A\u65F6\u5C55\u793A\u7684\u672C\u5730\u5316\u63D0\u793A\uFF0C\u652F\u6301 Markdown"
50
+ })),
51
+ keywords: Schema.optional(Schema.Array(Schema.String).annotations({
52
+ title: "\u5173\u952E\u8BCD",
53
+ description: "\u9664\u6807\u7B7E\u4E4B\u5916\u53EF\u53C2\u4E0E\u641C\u7D22\u8FC7\u6EE4\u7684\u9644\u52A0\u8BCD\u6761\u5217\u8868\uFF08\u522B\u540D\u3001\u7F16\u7801\u3001\u62FC\u97F3\u7B49\uFF09\uFF1B\u4E0D\u5C55\u793A\uFF0C\u4EC5\u7528\u4E8E\u5339\u914D"
54
+ }))
55
+ }).annotations({
56
+ title: "ComboboxMultiItem"
57
+ });
58
+ }
59
+ export function remoteOptionsSchema(configure) {
60
+ const CelRequest = Schema.Union(
61
+ Schema.Literal(""),
62
+ Expression({ configure, resultType: "HttpRequest" })
63
+ );
64
+ const CelOptions = Expression({ configure: configureWithJson(configure), resultType: isListType });
65
+ const CelOptionValue = Expression({ configure: configureWithOption(configure), resultType: "dyn" });
66
+ const LocaleOptionLabel = LocaleMarkdown({ configure: configureWithOption(configure) });
67
+ const CelKeywords = Expression({
68
+ configure: configureWithOption(configure),
69
+ resultType: (actual) => actual === "dyn" || actual.startsWith("list") || actual.startsWith("optional")
70
+ });
71
+ return Schema.Struct({
72
+ kind: Schema.Literal("remote"),
73
+ request: Schema.optional(CelRequest.annotations({
74
+ title: "\u8BF7\u6C42",
75
+ description: "\u8FD4\u56DE `HttpRequest` \u7684 CEL \u8868\u8FBE\u5F0F\uFF1B\u53EF\u8BBF\u95EE `form` \u5F53\u524D\u72B6\u6001\u3002\u7559\u7A7A\u5219\u4E0D\u53D1\u8D77\u8BF7\u6C42\uFF0C\u76F4\u63A5\u5BF9 `form` \u6C42\u503C `\u9009\u9879` \u8868\u8FBE\u5F0F\uFF08\u6B64\u65F6 `json` \u4E3A `null`\uFF09"
76
+ })),
77
+ options: CelOptions.annotations({
78
+ title: "\u9009\u9879",
79
+ description: "\u63D0\u53D6\u9009\u9879\u6570\u7EC4\u7684 CEL \u8868\u8FBE\u5F0F\uFF1B\u53EF\u8BBF\u95EE `form` \u4E0E `json`\u3002\u4F8B\uFF1A`json.data` \u6216 `[{value: 'a', label: 'A'}]`"
80
+ }),
81
+ optionValue: Schema.optionalWith(CelOptionValue.annotations({
82
+ title: "\u9009\u9879\u503C",
83
+ description: "\u4ECE\u5F53\u524D `option` \u63D0\u53D6\u5199\u5165\u7ED1\u5B9A\u7684\u503C\uFF1B\u4F8B\uFF1A`option.value`"
84
+ }), { default: () => "option" }),
85
+ optionLabel: Schema.optionalWith(LocaleOptionLabel.annotations({
86
+ title: "\u9009\u9879\u6807\u7B7E",
87
+ description: "\u6BCF\u4E2A\u9009\u9879\u5C55\u793A\u7684\u672C\u5730\u5316\u6587\u672C\uFF0C\u652F\u6301 `{{ string(option.foo) }}` \u63D2\u503C"
88
+ }), { default: () => [{ locale: "zh", message: "" }] }),
89
+ optionKeywords: Schema.optional(CelKeywords.annotations({
90
+ title: "\u5173\u952E\u8BCD",
91
+ description: "\u8FD4\u56DE\u5B57\u7B26\u4E32\u5217\u8868\u7684 CEL \u8868\u8FBE\u5F0F\uFF0C\u53EF\u8BBF\u95EE `option`\uFF1B\u8FD9\u4E9B\u8BCD\u6761\u53C2\u4E0E\u641C\u7D22\u8FC7\u6EE4\u4F46\u4E0D\u5C55\u793A\u3002\u4F8B\uFF1A`[option.code, option.pinyin]`"
92
+ }))
93
+ }).annotations({ title: "ComboboxMultiOptionsRemote", description: "\u7531 CEL \u8868\u8FBE\u5F0F\uFF08\u53EF\u9009\u8FDC\u7A0B\u62C9\u53D6\uFF09\u4EA7\u51FA\u7684\u9009\u9879\u5217\u8868" });
94
+ }
95
+ export function optionsSchema(configure) {
96
+ const Item = itemSchema(configure);
97
+ const StaticSpec = Schema.Struct({
98
+ kind: Schema.Literal("static"),
99
+ items: Schema.optionalWith(Schema.Array(Item).annotations({
100
+ title: "\u9009\u9879",
101
+ description: "\u4E0B\u62C9\u6846\u53EF\u9009\u9879\u5217\u8868"
102
+ }), { default: () => [] })
103
+ }).annotations({ title: "ComboboxMultiOptionsStatic", description: "\u9759\u6001\u914D\u7F6E\u7684\u9009\u9879\u5217\u8868" });
104
+ const RemoteSpec = remoteOptionsSchema(configure);
105
+ return Schema.Union(StaticSpec, RemoteSpec).annotations({
106
+ title: "\u9009\u9879\u6765\u6E90",
107
+ description: '\u9009\u9879\u53EF\u4EE5\u662F\u9759\u6001\u914D\u7F6E\uFF08`kind: "static"`\uFF09\u6216\u7531 CEL \u8868\u8FBE\u5F0F / \u8FDC\u7A0B\u63A5\u53E3\u4EA7\u51FA\uFF08`kind: "remote"`\uFF09'
108
+ });
109
+ }
110
+ export function schema(configure) {
111
+ const CelBool = Expression({ configure, resultType: "bool" });
112
+ const Options = optionsSchema(configure);
113
+ return Schema.Struct({
114
+ type: Schema.Literal(type),
115
+ compatibilityDate: Schema.Literal(compatibilityDate),
116
+ ...commonFieldFields(configure),
117
+ label: Schema.optional(Locale.annotations({
118
+ title: "\u6807\u7B7E",
119
+ description: "\u5B57\u6BB5\u524D\u5C55\u793A\u7684\u6587\u672C\uFF1B\u7559\u7A7A\u5219\u4E0D\u6E32\u67D3\u6807\u7B7E"
120
+ })),
121
+ placeholder: Schema.optional(Locale.annotations({
122
+ title: "\u5360\u4F4D\u7B26",
123
+ description: "\u672A\u9009\u4E2D\u4EFB\u4F55\u9009\u9879\u65F6\u8F93\u5165\u6846\u4E2D\u7684\u5360\u4F4D\u6587\u672C"
124
+ })),
125
+ tooltip: Schema.optional(Locale.annotations({
126
+ title: "\u63D0\u793A",
127
+ description: "\u9F20\u6807\u60AC\u505C\u5728\u6807\u7B7E\u4E0A\u65F6\u5C55\u793A\u7684\u8BF4\u660E"
128
+ })),
129
+ orientation: Schema.optional(FieldOrientationSchema),
130
+ binding: Schema.optional(Schema.String.pipe(Schema.minLength(1)).annotations({
131
+ title: "\u7ED1\u5B9A\u8DEF\u5F84",
132
+ description: "\u5199\u5165\u8868\u5355\u72B6\u6001\u7684 `dot-prop` \u8DEF\u5F84\uFF0C\u4F8B\u5982 `user.roles`\uFF1B\u5199\u5165\u503C\u4E3A\u5DF2\u9009\u9879 `value` \u7EC4\u6210\u7684\u6570\u7EC4\uFF1B\u7559\u7A7A\u5219\u4E3A\u975E\u53D7\u63A7\u5B57\u6BB5"
133
+ })),
134
+ disabled: Schema.optional(CelBool.annotations({
135
+ title: "\u7981\u7528\u6761\u4EF6",
136
+ description: "\u8FD4\u56DE `true` \u65F6\u4E0B\u62C9\u6846\u4ECD\u7136\u6E32\u67D3\u4F46\u4E0D\u53EF\u9009\u62E9"
137
+ })),
138
+ readonly: Schema.optional(CelBool.annotations({
139
+ title: "\u53EA\u8BFB\u6761\u4EF6",
140
+ description: "\u8FD4\u56DE `true` \u65F6\u4EC5\u4EE5\u7EAF\u6587\u672C\u5C55\u793A\u5F53\u524D\u5DF2\u9009\u9879\u7684\u6807\u7B7E"
141
+ })),
142
+ derived: derivedField(configure, "dyn"),
143
+ options: Schema.optionalWith(Options, {
144
+ default: () => ({ kind: "static", items: [] })
145
+ })
146
+ }).annotations({
147
+ title: "ComboboxMultiField",
148
+ description: "\u4E0B\u62C9\u591A\u9009\u8F93\u5165"
149
+ });
150
+ }
151
+ export function defaults() {
152
+ return {
153
+ options: { kind: "static", items: [] }
154
+ };
155
+ }
156
+ export const migrateFrom = [
157
+ { type: "com.shwfed.form.field.combobox.multi", compatibilityDate: "2026-05-25" }
158
+ ];
159
+ export const migrate = (prev) => Effect.try({
160
+ try: () => {
161
+ if (!prev || typeof prev !== "object") {
162
+ throw new Error("\u4E0B\u62C9\u591A\u9009\u8FC1\u79FB\u5931\u8D25\uFF1A\u539F\u503C\u4E0D\u662F\u5BF9\u8C61");
163
+ }
164
+ const src = prev;
165
+ const srcType = src.type;
166
+ const srcDate = src.compatibilityDate;
167
+ if (srcType === "com.shwfed.form.field.combobox.multi" && srcDate === "2026-05-25") {
168
+ const { options, optionValue, optionLabel, type: _t, compatibilityDate: _c, ...rest } = src;
169
+ const remote = { kind: "remote", request: "" };
170
+ if (typeof options === "string") remote.options = options;
171
+ if (typeof optionValue === "string") remote.optionValue = optionValue;
172
+ if (Array.isArray(optionLabel)) remote.optionLabel = optionLabel;
173
+ return {
174
+ ...rest,
175
+ type,
176
+ compatibilityDate,
177
+ options: remote
178
+ };
179
+ }
180
+ throw new Error(`\u4E0B\u62C9\u591A\u9009\u8FC1\u79FB\u5931\u8D25\uFF1A\u672A\u8BC6\u522B\u7684\u6765\u6E90 ${String(srcType)}@${String(srcDate)}`);
181
+ },
182
+ catch: (e) => e instanceof Error ? e : new Error(String(e))
183
+ });
@@ -0,0 +1,163 @@
1
+ import { type Value } from './schema.js';
2
+ type __VLS_ModelProps = {
3
+ modelValue: Value;
4
+ };
5
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
+ "update:modelValue": (value: {
7
+ readonly label?: readonly [{
8
+ readonly locale: "zh";
9
+ readonly message: string;
10
+ }, ...{
11
+ readonly locale: "en" | "ja" | "ko";
12
+ readonly message: string;
13
+ }[]] | undefined;
14
+ readonly disabled?: string | undefined;
15
+ readonly type: "com.shwfed.form.field.combobox.single";
16
+ readonly id: string;
17
+ readonly hidden?: string | undefined;
18
+ readonly tooltip?: readonly [{
19
+ readonly locale: "zh";
20
+ readonly message: string;
21
+ }, ...{
22
+ readonly locale: "en" | "ja" | "ko";
23
+ readonly message: string;
24
+ }[]] | undefined;
25
+ readonly displayName?: string | undefined;
26
+ readonly compatibilityDate: "2026-05-28";
27
+ readonly orientation?: "vertical" | "floating" | undefined;
28
+ readonly placeholder?: readonly [{
29
+ readonly locale: "zh";
30
+ readonly message: string;
31
+ }, ...{
32
+ readonly locale: "en" | "ja" | "ko";
33
+ readonly message: string;
34
+ }[]] | undefined;
35
+ readonly readonly?: string | undefined;
36
+ readonly binding?: string | undefined;
37
+ readonly derived?: {
38
+ readonly mode: "formula" | "prefill";
39
+ readonly expression: string;
40
+ } | undefined;
41
+ readonly options: {
42
+ readonly kind: "remote";
43
+ readonly request?: string | undefined;
44
+ readonly options: string;
45
+ readonly optionValue: string;
46
+ readonly optionLabel: readonly [{
47
+ readonly locale: "zh";
48
+ readonly message: string;
49
+ }, ...{
50
+ readonly locale: "en" | "ja" | "ko";
51
+ readonly message: string;
52
+ }[]];
53
+ readonly optionKeywords?: string | undefined;
54
+ } | {
55
+ readonly kind: "static";
56
+ readonly items: readonly {
57
+ readonly label: readonly [{
58
+ readonly locale: "zh";
59
+ readonly message: string;
60
+ }, ...{
61
+ readonly locale: "en" | "ja" | "ko";
62
+ readonly message: string;
63
+ }[]];
64
+ readonly id: string;
65
+ readonly tooltip?: readonly [{
66
+ readonly locale: "zh";
67
+ readonly message: string;
68
+ }, ...{
69
+ readonly locale: "en" | "ja" | "ko";
70
+ readonly message: string;
71
+ }[]] | undefined;
72
+ readonly value: {
73
+ readonly value: string;
74
+ readonly kind: "text";
75
+ } | {
76
+ readonly value: number;
77
+ readonly kind: "number";
78
+ };
79
+ readonly keywords?: readonly string[] | undefined;
80
+ }[];
81
+ };
82
+ }) => any;
83
+ }, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
84
+ "onUpdate:modelValue"?: ((value: {
85
+ readonly label?: readonly [{
86
+ readonly locale: "zh";
87
+ readonly message: string;
88
+ }, ...{
89
+ readonly locale: "en" | "ja" | "ko";
90
+ readonly message: string;
91
+ }[]] | undefined;
92
+ readonly disabled?: string | undefined;
93
+ readonly type: "com.shwfed.form.field.combobox.single";
94
+ readonly id: string;
95
+ readonly hidden?: string | undefined;
96
+ readonly tooltip?: readonly [{
97
+ readonly locale: "zh";
98
+ readonly message: string;
99
+ }, ...{
100
+ readonly locale: "en" | "ja" | "ko";
101
+ readonly message: string;
102
+ }[]] | undefined;
103
+ readonly displayName?: string | undefined;
104
+ readonly compatibilityDate: "2026-05-28";
105
+ readonly orientation?: "vertical" | "floating" | undefined;
106
+ readonly placeholder?: readonly [{
107
+ readonly locale: "zh";
108
+ readonly message: string;
109
+ }, ...{
110
+ readonly locale: "en" | "ja" | "ko";
111
+ readonly message: string;
112
+ }[]] | undefined;
113
+ readonly readonly?: string | undefined;
114
+ readonly binding?: string | undefined;
115
+ readonly derived?: {
116
+ readonly mode: "formula" | "prefill";
117
+ readonly expression: string;
118
+ } | undefined;
119
+ readonly options: {
120
+ readonly kind: "remote";
121
+ readonly request?: string | undefined;
122
+ readonly options: string;
123
+ readonly optionValue: string;
124
+ readonly optionLabel: readonly [{
125
+ readonly locale: "zh";
126
+ readonly message: string;
127
+ }, ...{
128
+ readonly locale: "en" | "ja" | "ko";
129
+ readonly message: string;
130
+ }[]];
131
+ readonly optionKeywords?: string | undefined;
132
+ } | {
133
+ readonly kind: "static";
134
+ readonly items: readonly {
135
+ readonly label: readonly [{
136
+ readonly locale: "zh";
137
+ readonly message: string;
138
+ }, ...{
139
+ readonly locale: "en" | "ja" | "ko";
140
+ readonly message: string;
141
+ }[]];
142
+ readonly id: string;
143
+ readonly tooltip?: readonly [{
144
+ readonly locale: "zh";
145
+ readonly message: string;
146
+ }, ...{
147
+ readonly locale: "en" | "ja" | "ko";
148
+ readonly message: string;
149
+ }[]] | undefined;
150
+ readonly value: {
151
+ readonly value: string;
152
+ readonly kind: "text";
153
+ } | {
154
+ readonly value: number;
155
+ readonly kind: "number";
156
+ };
157
+ readonly keywords?: readonly string[] | undefined;
158
+ }[];
159
+ };
160
+ }) => any) | undefined;
161
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
162
+ declare const _default: typeof __VLS_export;
163
+ export default _default;